aboutsummaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAge
* [PATCH] powerpc: replace use of _GLOBAL with .globlKumar Gala2005-10-17
| | | | | | | | The _GLOBAL() macro is for text symbols only. Changed to using .globl for .data symbols. Signed-off-by: Kumar K. Gala <kumar.gala@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: Make CONFIG_PROC_DEVICETREE independent of CONFIG_PPC_OFPaul Mackerras2005-10-17
| | | | | | ... since all platforms will have a device tree. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: Clear the BSS at the start of early_init with ARCH=ppcPaul Mackerras2005-10-17
| | | | Signed-off-by: Paul Mackerras <paulus@samba.org>
* ppc: Fix various compile errors resulting from ptrace.c mergePaul Mackerras2005-10-17
| | | | | | | This introduces flush_{fp,altivec,spe}_to_thread and fixes a branch-too-far error in linking. Signed-off-by: Paul Mackerras <paulus@samba.org>
* ppc: Use the merged of_device.c from arch/powerpc/kernelPaul Mackerras2005-10-17
| | | | Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: Merge syscalls.c and sys_ppc32.c.Paul Mackerras2005-10-17
| | | | Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: Initialize btext subsystem later, after prom_initPaul Mackerras2005-10-17
| | | | | | | | | | | | We were initializing the btext stuff from prom_init(), thus breaking the rule that all communication between prom_init() and the rest of the kernel has to be via the flattened device tree. This removes the btext initialization calls from prom_init() and initializes it instead after the device tree is unflattened. It would be nice to do it earlier, but that needs some more infrastructure to find the properties we need in the flattened device tree. Signed-off-by: Paul Mackerras <paulus@samba.org>
* ppc32: use L1_CACHE_SHIFT/L1_CACHE_BYTESStephen Rothwell2005-10-16
| | | | | | instead of L1_CACHE_LINE_SIZE and LG_L1_CACHE_LINE_SIZE Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: move iSeries/HvCallPci.h to platforms/iseries/call_pci.hStephen Rothwell2005-10-14
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: move iSeries/HvCallHpt.h to platforms/iseries/call_hpt.hStephen Rothwell2005-10-14
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: eliminate DsaAddr from pci_dnStephen Rothwell2005-10-14
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: remove ISERIES_[SUB]BUS macrosStephen Rothwell2005-10-14
| | | | | | This allows us to simplify a couple of things. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: move iSeries/iSeries_pci.h to platforms/iseriesStephen Rothwell2005-10-14
| | | | | | | | The only real user of this file outside platforms/iseries was drivers/net/iseries_veth.c but all it wanted was ISERIES_HV_ADDR() so we move that to abs_addr.h (and lowercase it). Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: fix uname -mStephen Rothwell2005-10-13
| | | | | | | It will now give ppc64 on 64bit platforms and ppc on 32bit platforms. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: merge ptrace.cStephen Rothwell2005-10-13
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* ppc64: use powerpc of_device.cStephen Rothwell2005-10-13
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* ppc64: fix arch/ppc64/kernel/MakefileStephen Rothwell2005-10-13
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* ppc64: merge binfmt_elf32.cStephen Rothwell2005-10-12
| | | | | | and use start_thread for both 32 and 64 bit bineries. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: make 64 bit binaries workStephen Rothwell2005-10-12
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: create 32 bit LOADADDR macroStephen Rothwell2005-10-12
| | | | | | and use it in misc_32.S Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: consolidate cputable.cStephen Rothwell2005-10-12
| | | | | | Also simplify arch/ppc64/kernel/Makefile Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Bring in some changes made to arch/ppc and include/asm-ppc64Paul Mackerras2005-10-12
| | | | | | | | Recent commits upstream have changed files which are currently duplicated in arch/powerpc and include/asm-powerpc. This updates them with the corresponding changes. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: Move default hash table size calculation to hash_utils_64.cPaul Mackerras2005-10-12
| | | | | | | | | We weren't computing the size of the hash table correctly on iSeries because the relevant code in prom.c was #ifdef CONFIG_PPC_PSERIES. This moves the code to hash_utils_64.c, makes it unconditional, and cleans it up a bit. Signed-off-by: Paul Mackerras <paulus@samba.org>
* Merge from Linus' treePaul Mackerras2005-10-12
|\
| * Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds2005-10-11
| |\
| | * [SPARC64]: Fix net booting on Ultra5David S. Miller2005-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were not doing alignment properly when remapping the kernel image. What we want is a 4MB aligned physical address to map at KERNBASE. Mistakedly we were 4MB aligning the virtual address where the kernel initially sits, that's wrong. Instead, we should PAGE align the virtual address, then 4MB align the physical address result the prom gives to us. Signed-off-by: David S. Miller <davem@davemloft.net>
| | * [SPARC32]: Revert IOMAP change eb98129eec7fa605f0407dfd92d40ee8ddf5cd9aDavid S. Miller2005-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Breakage noted by Al Viro. It breaks non-PCI builds, it's probably better to have a more direct implementation on sparc32, and which driver actually needs this is still questionable. We can resolve this in 2.6.15 Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [PATCH] ppc64: Add R_PPC64_TOC16 module relocPeter Bergner2005-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer gcc's are generating this relocation, so the module loader needs to handle it. Signed-off-by: Peter Bergner <bergner@vnet.ibm.com> Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] m32r: trap handler code for illegal trapsHirokazu Takata2005-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch prevents illegal traps from causing m32r kernel's infinite loop execution. Signed-off-by: Naoto Sugai <sugai@isl.melco.co.jp> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] ppc highmem fixPaolo Galtieri2005-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've noticed that the calculations for seg_size and nr_segs in __dma_sync_page_highmem() (arch/ppc/kernel/dma-mapping.c) are wrong. The incorrect calculations can result in either an oops or a panic when running fsck depending on the size of the partition. The problem with the seg_size calculation is that it can result in a negative number if size is offset > size. The problem with the nr_segs caculation is returns the wrong number of segments, e.g. it returns 1 when size is 200 and offset is 4095, when it should return 2 or more. Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] ppc64: Fix PCI hotplugAnton Blanchard2005-10-11
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | pSeries_irq_bus_setup is marked __devinit but references s7a_workaround which is marked __initdata. Depending on who got the memory for s7a_workaround (and if the value was now positive), it was possible for PCI hotplugged devices to have 3 subtracted from their interrupt number. This would happen randomly and caused me much confusion :) Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] i386: Don't discard upper 32bits of HWCR on K8Andi Kleen2005-10-10
| | | | | | | | | | | | | | | | | | | | | | Need to use long long, not long when RMWing a MSR. I think it's harmless right now, but still should be better fixed if AMD adds any bits in the upper 32bit of HWCR. Bug was introduced with the TLB flush filter fix for i386 Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] x86_64: Allocate cpu local data for all possible CPUsAndi Kleen2005-10-10
| | | | | | | | | | | | | | | | | | CPU hotplug fills up the possible map to NR_CPUs, but it did that after setting up per CPU data. This lead to CPU data not getting allocated for all possible CPUs, which lead to various side effects. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds2005-10-10
| |\
| | * [SPARC64]: Fix Ultra5, Ultra60, et al. boot failures.David S. Miller2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the boot processor, we need to do the move onto the Linux trap table a little bit differently else we'll take unhandlable faults in the firmware address space. Previously we would do the following: 1) Disable PSTATE_IE in %pstate. 2) Set %tba by hand to sparc64_ttable_tl0 3) Initialize alternate, mmu, and interrupt global trap registers. 4) Call prom_set_traptable() That doesn't work very well actually with the way we boot the kernel VM these days. It worked by luck on many systems because the firmware accesses for the prom_set_traptable() call happened to be loaded into the TLB already, something we cannot assume. So the new scheme is this: 1) Clear PSTATE_IE in %pstate and set %pil to 15 2) Call prom_set_traptable() 3) Initialize alternate, mmu, and interrupt global trap registers. and this works quite well. This sequence has been moved into a callable function in assembler named setup-trap_table(). The idea is that eventually trampoline.S can use this code as well. That isn't possible currently due to some complications, but eventually we should be able to do it. Thanks to Meelis Roos for the Ultra5 boot failure report. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [PATCH] x86_64: Fix change_page_attr cache flushingAndi Kleen2005-10-10
| |/ | | | | | | | | | | | | | | | | | | | | Noticed by Terence Ripperda Undo wrong change in global_flush_tlb. We need to flush the caches in all cases, not just when pages were reverted. This was a bogus optimization added earlier, but it was wrong. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2005-10-10
| |\
| | * [ARM] 2968/1: defconfig for the ARM Collie platformVincent Sanders2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Vincent Sanders Add a defconfig for the ARM Collie platform Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] 2967/1: defconfig for the ARM Corgi platformVincent Sanders2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Vincent Sanders Add a defconfig for the ARM Corgi Zarus platform Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] 2966/1: defconfig for the ARM Poodle platformVincent Sanders2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Vincent Sanders Add a defconfig for the ARM Poodle Zarus platform Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] 2965/1: defconfig for the ARM Spitz platformVincent Sanders2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Vincent Sanders Add a defconfig for the ARM Spitz Zarus platform Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | [PATCH] i386: fix stack alignment for signal handlersMarkus F.X.J. Oberhumer2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the setup of the alignment of the signal frame, so that all signal handlers are run with a properly aligned stack frame. The current code "over-aligns" the stack pointer so that the stack frame is effectively always mis-aligned by 4 bytes. But what we really want is that on function entry ((sp + 4) & 15) == 0, which matches what would happen if the stack were aligned before a "call" instruction. Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2005-10-10
| |\|
| | * [ARM] 2962/1: scoop: Allow GPIO pin suspend state to be specifiedRichard Purdie2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Richard Purdie Allow the GPIO pin suspend states to be specified for SCOOP devices. This is needed for correct operation on the spitz platform. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] 2961/1: corgi: Add missing includeRichard Purdie2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Richard Purdie Add a missing include from corgi.c Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] 2960/1: collie: Add missing scoop call parametersRichard Purdie2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Richard Purdie Add some missing parameters from the scoop calls on collie. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] 2959/1: Add test for invalid LDRD/STRD Rd cases in ARM alignment handlerGeorge G. Davis2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from George G. Davis Add test for invalid LDRD/STRD Rd cases in ARM alignment handler and restore SWP printk KERN_ERR. Signed-off-by: Steve Longerbeam <slongerbeam@mvista.com> Signed-off-by: George G. Davis <gdavis@mvista.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] Update mach-typesRussell King2005-10-10
| | | | | | | | | | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | [PATCH] uml: fix x86_64 with !CONFIG_FRAME_POINTERJeff Dike2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UML/x86_64 doesn't run when built with frame pointers disabled. There was an implicit frame pointer assumption in the stub segfault handler. With frame pointers disabled, UML dies on handling its first page fault. The container-of part of this is from Paolo Giarrusso <blaisorblade@yahoo.it>. Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] x86_64: Set up safe page tables during resumeRafael J. Wysocki2005-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch makes swsusp avoid the possible temporary corruption of page translation tables during resume on x86-64. This is achieved by creating a copy of the relevant page tables that will not be modified by swsusp and can be safely used by it on resume. The problem is that during resume on x86-64 swsusp may temporarily corrupt the page tables used for the direct mapping of RAM. If that happens, a page fault occurs and cannot be handled properly, which leads to the solid hang of the affected system. This leads to the loss of the system's state from before suspend and may result in the loss of data or the corruption of filesystems, so it is a serious issue. Also, it appears to happen quite often (for me, as often as 50% of the time). The problem is related to the fact that (at least) one of the PMD entries used in the direct memory mapping (starting at PAGE_OFFSET) points to a page table the physical address of which is much greater than the physical address of the PMD entry itself. Moreover, unfortunately, the physical address of the page table before suspend (i.e. the one stored in the suspend image) happens to be different to the physical address of the corresponding page table used during resume (i.e. the one that is valid right before swsusp_arch_resume() in arch/x86_64/kernel/suspend_asm.S is executed). Thus while the image is restored, the "offending" PMD entry gets overwritten, so it does not point to the right physical address any more (i.e. there's no page table at the address pointed to by it, because it points to the address the page table has been at during suspend). Consequently, if the PMD entry is used later on, and it _is_ used in the process of copying the image pages, a page fault occurs, but it cannot be handled in the normal way and the system hangs. In principle we can call create_resume_mapping() from swsusp_arch_resume() (ie. from suspend_asm.S), but then the memory allocations in create_resume_mapping(), resume_pud_mapping(), and resume_pmd_mapping() must be made carefully so that we use _only_ NosaveFree pages in them (the other pages are overwritten by the loop in swsusp_arch_resume()). Additionally, we are in atomic context at that time, so we cannot use GFP_KERNEL. Moreover, if one of the allocations fails, we should free all of the allocated pages, so we need to trace them somehow. All of this is done in the appended patch, except that the functions populating the page tables are located in arch/x86_64/kernel/suspend.c rather than in init.c. It may be done in a more elegan way in the future, with the help of some swsusp patches that are in the works now. [AK: move some externs into headers, renamed a function] Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>