summaryrefslogtreecommitdiff
path: root/arch/sparc64/kernel
AgeCommit message (Collapse)Author
2008-12-04sparc,sparc64: unify kernel/Sam Ravnborg
o Move all files from sparc64/kernel/ to sparc/kernel - rename as appropriate o Update sparc/Makefile to the changes o Update sparc/kernel/Makefile to include the sparc64 files NOTE: This commit changes link order on sparc64! Link order had to change for either of sparc32 and sparc64. And assuming sparc64 see more testing than sparc32 change link order on sparc64 where issues will be caught faster. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc,sparc64: unify asm-offsets.cSam Ravnborg
sparc64 does not use constants generated from asm-offsets but to prepare it to do so the parts that could be shared do now generate constants for sparc64 too. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: use vmlinux.lds.S from sparcSam Ravnborg
Previous commit made them identical so use the sparc version Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc,sparc64: prepare vmlinux.lds.S for unificationSam Ravnborg
This patch makes the two vmlinux.lds.S files identical and serve as documentation for the changes in each file. This mainly add stuffs to sparc32 that is otherwise only used by sparc64 and thus it should have no effect. Build tested only. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Add performance counter hypervisor calls for sun4v.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Add save_stack_trace_tsk().David S. Miller
And this allows us to indicate HAVE_LATENCYTOP_SUPPORT. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc: combine unistd_{32,64}.hStephen Rothwell
This is complicated a little because compat_audit.c wants to see only the 32bit syscall numbers, but is being built in a 64bit compile. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Make special trap return path for TRAP_NMI().David S. Miller
We don't want the rtrap path to try and run softirqs or anything like that when returning from a PIL==15 NMI. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Make %pil level 15 a pseudo-NMI.David S. Miller
So that we can profile code even in a local_irq_disable() section, only write 14 (instead of 15) into the %pil register to disable IRQs. This allows PIL level 15 to serve as a pseudo NMI. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Add interface for registering a performance counter IRQ handler.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Stop using memory barriers for atomics and locks.David S. Miller
The kernel always executes in the TSO memory model now, so none of this stuff is necessary any more. With helpful feedback from Nick Piggin. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Run the kernel always in the TSO memory model.David S. Miller
The fact of the matter is, all UltraSPARC-III and later chips only implement TSO. They don't implement PSO and RMO memory models at all. Only the Ultra-I and Ultra-II family chips implement RMO and they are only helped marginally by using this setting when executing kernel code. The big plus to doing this is that we can eliminate all of the non-Sync memory barriers in the kernel except for the ones used in the optimized memcpy/memset code (these use block load and store operations which have their own memory ordering rules). Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Rework auxio driver to save some text space.David S. Miller
Use common functions instead of inlining and duplicating logic over and over to handle the SBUS vs. EBUS cases. Before: text data bss dec hex filename 715 568 16 1299 513 arch/sparc64/kernel/auxio.o After: text data bss dec hex filename 631 568 16 1215 4bf arch/sparc64/kernel/auxio.o Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-04sparc64: Sync FPU state in VIS emulation handler.Hong H. Pham
Copy the FPU state to the task's thread_info->fpregs for the VIS emulation functions to access. Signed-off-by: Hong H. Pham <hong.pham@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-03sparc64: Fix VIS emulation bugsJoseph Myers
This patch fixes some bugs in VIS emulation that cause the GCC test failure FAIL: gcc.target/sparc/pdist-3.c execution test for both 32-bit and 64-bit testing on hardware lacking these instructions. The emulation code for the pdist instruction uses RS1(insn) for both source registers rs1 and rs2, which is obviously wrong and leads to the instruction doing nothing (the observed problem), and further inspection of the code shows that RS1 uses a shift of 24 and RD a shift of 25, which clearly cannot both be right; examining SPARC documentation indicates the correct shift for RS1 is 14. This patch fixes the bug if single-stepping over the affected instruction in the debugger, but not if the testcase is run standalone. For that, Wind River has another patch I hope they will send as a followup to this patch submission. Signed-off-by: Joseph Myers <joseph@codesourcery.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-03sparc64: Fix bug in PTRACE_SETFPREGS64 handling.Chris Torek
From: Chris Torek <chris.torek@windriver.com> >The SPARC64 kernel code for PTRACE_SETFPREGS64 appears to be an exact copy >of that for PTRACE_GETFPREGS64. This means that gdbserver and native >64-bit GDB cannot set floating-point registers. It looks like a simple typo. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-01Revert "of_platform_driver noise on sparce"Linus Torvalds
This reverts commit e669dae6141ff97d3c7566207f5de3b487dcf837, since it is incomplete, and clashes with fuller patches and the sparc 32/64 unification effort. Requested-by: David Miller <davem@davemloft.net> Acked-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-30of_platform_driver noise on sparceAl Viro
switch to __init for those; unlike powerpc sparc has no hotplug support for that stuff and their ->probe() tends to call __init functions while being declared __devinit. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-30sparc64 trivial section misannotationsAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19sparc64: wire up accept4()David Miller
This adds the sparc syscall hookups. Signed-off-by: David S. Miller <davem@davemloft.net> Cc: Ulrich Drepper <drepper@redhat.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-02Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Fix PCI resource mapping on sparc64 sparc64: Kill annoying warning when building compat_binfmt_elf.o sparc32: kernel/trace/trace.c wants DIE_OOPS sparc64: Fix __copy_{to,from}_user_inatomic defines.
2008-11-02sparc64: Fix PCI resource mapping on sparc64Max Dmitrichenko
There is a problem discovered in recent versions of ATI Mach64 driver in X.org on sparc64 architecture. In short, the driver fails to mmap MMIO aperture (PCI resource #2). I've found that kernel's __pci_mmap_make_offset() returns EINVAL. It checks whether user attempts to mmap more than the resource length, which is 0x1000 bytes in our case. But PAGE_SIZE on SPARC64 is 0x2000 and this is what actually is being mmaped. So __pci_mmap_make_offset() failed for this PCI resource. Signed-off-by: Max Dmitrichenko <dmitrmax@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-31Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Add missing null terminating entry to bq4802_match[]. sparc: use the new byteorder headers rtc-m48t59: shift zero year to 1968 on sparc (rev 2) dbri: check dma_alloc_coherent errors sparc64: remove byteshifting from out* helpers
2008-10-30sparc64: Add missing null terminating entry to bq4802_match[].David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-29rtc-m48t59: shift zero year to 1968 on sparc (rev 2)Krzysztof Helt
Shift the first year to 1968 for Sun SPARC machines. Move this logic from platform specific files to rtc driver as this fixes problems with calculating a century bit. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Tested-by: Alexander Beregalov Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-27Merge commit 'v2.6.28-rc2' into tracing/urgentIngo Molnar
2008-10-23ftrace, powerpc, sparc64, x86: remove notrace from arch ftrace fileSteven Rostedt
The entire file of ftrace.c in the arch code needs to be marked as notrace. It is much cleaner to do this from the Makefile with CFLAGS_REMOVE_ftrace.o. [ powerpc already had this in its Makefile. ] Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-10-23ftrace: remove mcount setSteven Rostedt
The arch dependent function ftrace_mcount_set was only used by the daemon start up code. This patch removes it. Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-10-22sparc64: Fix race in arch/sparc64/kernel/trampoline.SAndrea Shepard
Make arch/sparc64/kernel/trampoline.S in 2.6.27.1 lock prom_entry_lock when calling the PROM. This prevents a race condition that I observed causing a hang on startup on a 12-CPU E4500. I am not subscribed to this list, so please CC me on replies. Signed-off-by: Andrea Shepard <andrea@persephoneslair.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-16sparc64: use iommu_num_pages function in IOMMU codeJoerg Roedel
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Acked-by: David S. Miller <davem@davemloft.net> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Muli Ben-Yehuda <muli@il.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-16sparc64: rename iommu_num_pages function to iommu_nr_pagesJoerg Roedel
This is a preparation patch for introducing a generic iommu_num_pages function. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Acked-by: David S. Miller <davem@davemloft.net> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Muli Ben-Yehuda <muli@il.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-16compat: generic compat get/settimeofdayChristoph Hellwig
Nothing arch specific in get/settimeofday. The details of the timeval conversion varied a little from arch to arch, but all with the same results. Also add an extern declaration for sys_tz to linux/time.h because externs in .c files are fowned upon. I'll kill the externs in various other files in a sparate patch. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: David S. Miller <davem@davemloft.net> [ sparc bits ] Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Ralf Baechle <ralf@linux-mips.org> Acked-by: Kyle McMartin <kyle@mcmartin.ca> Cc: Matthew Wilcox <matthew@wil.cx> Cc: Grant Grundler <grundler@parisc-linux.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-16compat: move cp_compat_stat to common codeChristoph Hellwig
struct stat / compat_stat is the same on all architectures, so cp_compat_stat should be, too. Turns out it is, except that various architectures have slightly and some high2lowuid/high2lowgid or the direct assignment instead of the SET_UID/SET_GID that expands to the correct one anyway. This patch replaces the arch-specific cp_compat_stat implementations with a common one based on the x86-64 one. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: David S. Miller <davem@davemloft.net> [ sparc bits ] Acked-by: Kyle McMartin <kyle@mcmartin.ca> [ parisc bits ] Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-15cpufreq: remove policy->governor setting in drivers initializationDominik Brodowski
As policy->governor is already set to CPUFREQ_DEFAULT_GOVERNOR in the (always built-in) cpufreq core, we do not need to set it in the drivers. This fixes the sparc64 allmodconfig build failure. Also, remove a totally useles setting of ->policy in cpufreq-pxa3xx.c. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-12chmc: Mark %ver register inline asm with __volatile__David S. Miller
Otherwise GCC can try to do the register read before the guarding test on us3mc_platform() being true. If that happens we can take an exception, because %ver register reads are not allowed in privileged more on hypervisor platforms. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-12sparc64: Add missing notify_cpu_starting() call.David S. Miller
Commit e545a6140b698b2494daf0b32107bdcc5e901390 ("kernel/cpu.c: create a CPU_STARTING cpu_chain notifier") added a notify_cpu_starting() notifier event, and hit every arch except sparc64. Fix that missed case. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-11Merge branch 'master' of ↵David S. Miller
master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: sound/core/memalloc.c
2008-09-22sparc64: Fix missing devices due to PCI bridge test in of_create_pci_dev().David S. Miller
Just like in the arch/sparc64/kernel/of_device.c code fix commit 071d7f4c3b411beae08d27656e958070c43b78b4 ("sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace.") we have to check the OF device node name for "pci" instead of relying upon the 'device_type' property being there on all PCI bridges. Tested by Meelis Roos, and confirmed to make the PCI QFE devices reappear on the E3500 system. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-20sparc64: Fix disappearing PCI devices on e3500.David S. Miller
Based upon a bug report by Meelis Roos. The OF device layer builds properties by matching bus types and applying 'range' properties as appropriate, up to the root. The match for "PCI" busses is looking at the 'device_type' property, and this does work %99 of the time. But on an E3500 system with a PCI QFE card, the DEC 21153 bridge sitting above the QFE network interface devices has a 'name' of "pci", but it completely lacks a 'device_type' property. So we don't match it as a PCI bus, and subsequently we end up with no resource values at all for the devices sitting under that DEC bridge. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-16Merge branch 'master' of ↵David S. Miller
master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 Conflicts: arch/sparc64/kernel/pci_psycho.c
2008-09-16sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace.David S. Miller
Based upon a report by Meelis Roos. Any function call can try to access the current thread register via the _mcount hooks when the kernel is built with -pg (via ftrace or STACK_DEBUG). That can't be setup properly very early on during the bootup of other cpus for sun4u and some early sun4v systems. So add notrace markers to these specific functions, so that _mcount doesn't get invoked too early. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-16sparc64: Fix OOPS in psycho_pcierr_intr_other().David S. Miller
We no longer put the top-level PCI controller device into the PCI layer device list. So pbm->pci_bus->self is always NULL. Therefore, use direct PCI config space accesses to get at the PCI controller's PCI_STATUS register. Tested by Meelis Roos. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc: Fix user_regset 'n' field values.David S. Miller
As noticed by Russell King, we were not setting this properly to the number of entries, but rather the total size. This results in the core dumping code allocating waayyyy too much memory. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix PCI error interrupt registry on PSYCHO.David S. Miller
We need to pass IRQF_SHARED, otherwise we get things like: IRQ handler type mismatch for IRQ 33 current handler: PSYCHO_UE Call Trace: [000000000048394c] request_irq+0xac/0x120 [00000000007c5f6c] psycho_scan_bus+0x98/0x158 [00000000007c2bc0] pcibios_init+0xdc/0x12c [0000000000426a5c] do_one_initcall+0x1c/0x160 [00000000007c0180] kernel_init+0x9c/0xfc [0000000000427050] kernel_thread+0x30/0x60 [00000000006ae1d0] rest_init+0x10/0x60 on e3500 and similar systems. On a single board, the UE interrupts of two Psycho nodes are funneled through the same interrupt, from of_debug=3 dump: /pci@b,4000: direct translate 2ee --> 21 ... /pci@b,2000: direct translate 2ee --> 21 Decimal "33" mentioned above is the hex "21" mentioned here. Thanks to Meelis Roos for dumps and testing. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc: Fix user_regset 'n' field values.David S. Miller
As noticed by Russell King, we were not setting this properly to the number of entries, but rather the total size. This results in the core dumping code allocating waayyyy too much memory. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in chmc.cDavid S. Miller
Several constants are larger than 32-bit and need "UL" markers. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in vio.cDavid S. Miller
Several variables should be marked static. Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-12sparc64: Fix sparse warnings in pci_sun4v.cDavid S. Miller
'err' variable shadowing in pci_sun4v_probe() Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in pci.cDavid S. Miller
1) Declare pci_poke_* in pci_impl.h 2) of_create_pci_dev() should be static 3) ->setup_msi_irq() wants an unsigned int pointer not a plain int one 4) void value expression return in arch_teardown_msi_irq() Signed-off-by: David S. Miller <davem@davemloft.net>
2008-09-11sparc64: Fix sparse warnings in of_device.cDavid S. Miller
Passing unsigned int pointer where plain int pointer is expected. Signed-off-by: David S. Miller <davem@davemloft.net>