summaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAgeFilesLines
* Merge git://git.linux-xtensa.org/kernel/xtensa-feedLinus Torvalds2007-06-0712-599/+414
|\ | | | | | | | | | | | | | | | | | | | | | | | | * git://git.linux-xtensa.org/kernel/xtensa-feed: Xtensa: use asm-generic/fcntl.h [XTENSA] Remove non-rt signal handling [XTENSA] Move common sections into bss sections [XTENSA] clean-up header files [XTENSA] Use generic 64-bit division [XTENSA] Remove multi-exported symbols from xtensa_ksyms.c [XTENSA] fix sources using deprecated assembler directive [XTENSA] Spelling fixes in arch/xtensa [XTENSA] fix bit operations in bitops.h
| * [XTENSA] Remove non-rt signal handlingChris Zankel2007-05-313-498/+334
| | | | | | | | | | | | | | | | | | | | | | The non-rt signal handling was never really used, so we don't break anything. This patch also cleans up the signal stack-frame to make it independent from the processor configuration. It also improves the method used for controlling single-stepping. We now save and restore the 'icountlevel' register that controls single stepping and set or clear the saved state to enable or disable it. Signed-off-by: Chris Zankel <chris@zankel.net>
| * [XTENSA] Move common sections into bss sectionsChris Zankel2007-05-311-8/+11
| | | | | | | | | | | | | | | | Move the fields of the COMMON sections 'swapper_pg_dir' and 'empty_zero_page' to the BSS section. Remove the unused COMMON sections 'emtpy_bad_page_table' and 'empty_bad_page'. Signed-off-by: Chris Zankel <chris@zankel.net>
| * [XTENSA] clean-up header filesChris Zankel2007-05-312-47/+32
| | | | | | | | | | | | | | | | | | | | The header files in the asm-xtensa directory are not clean and 'make headers_check' fails. This is a first patch to fix most of the header files. It removes unnecessary include statements and adds some that are required for building the kernel. The linker script required some updates or the linking stage would fail. Signed-off-by: Chris Zankel <chris@zankel.net>
| * [XTENSA] Remove multi-exported symbols from xtensa_ksyms.cChris Zankel2007-05-311-11/+0
| | | | | | | | | | | | | | | | | | This patch removes the following symbols from arch/xtensa/kernel/xtensa_ksyms.c that were already exported: memcmp, memchr, strcat, strchr, strlen, stncat, strnlen, strrchr, strstr, enable_irq, and disable_irq Signed-off-by: Chris Zankel <chris@zankel.net>
| * [XTENSA] fix sources using deprecated assembler directiveChris Zankel2007-05-312-32/+34
| | | | | | | | | | | | | | The assembler directive '.begin literal' is deprecated in the newer versions of the binutils (strncopy_user.S and strnlen_user.S). Signed-off-by: Chris Zankel <chris@zankel.net>
| * [XTENSA] Spelling fixes in arch/xtensaChris Zankel2007-05-313-3/+3
| | | | | | | | | | | | | | Spelling fixes in arch/xtensa/. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Chris Zankel <chris@zankel.net>
* | Merge branch 'master' of ↵Linus Torvalds2007-06-073-60/+65
|\ \ | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver. [SPARC64]: Fix 2 bugs in PCI Sabre bus scanning.
| * | [SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver.David S. Miller2007-06-072-54/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to access the 64-bit IRQ IMAP and ICLR registers of bus controllers 4-bytes in and as a 32-bit register word, since only the low 32-bits were relevant. This seemed like a good idea at the time. But the PCI-E controller requires full 8-byte 64-bit access to these registers, so we switched over to accessing them fully. SBUS was not adjusted properly, which broke interrupts completely. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [SPARC64]: Fix 2 bugs in PCI Sabre bus scanning.David S. Miller2007-06-071-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | If we are on hummingbird, bus runs at 66MHZ. pbm->pci_bus should be setup with the result of pci_scan_one_pbm() or else we deref NULL pointers in the error interrupt handlers. Signed-off-by: David S. Miller <davem@davemloft.net>
* | | enable interrupts in user path of page fault.Steven Rostedt2007-06-072-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a minor fix, but what is currently there is essentially wrong. In do_page_fault, if the faulting address from user code happens to be in kernel address space (int *p = (int*)-1; p = 0xbed;) then the do_page_fault handler will jump over the local_irq_enable with the goto bad_area_nosemaphore; But the first line there sees this is user code and goes through the process of sending a signal to send SIGSEGV to the user task. This whole time interrupts are disabled and the task can not be preempted by a higher priority task. This patch always enables interrupts in the user path of the bad_area_nosemaphore. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2007-06-074-12/+11
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] pxa: fix pxa27x keyboard driver [ARM] Fix 4417/1: Serial: Fix AMBA drivers locking [ARM] 4421/1: AT91: Value of _KEY fields. [ARM] Solve buggy smp_processor_id() usage [ARM] 4422/1: Fix default value handling in gpio_direction_output (PXA) [ARM] 4419/1: AT91: SAM9 USB clocks check for suspending [ARM] 4418/1: AT91: Number of programmable clocks differs [ARM] 4392/2: Do not corrupt the SP register in compressed/head.S
| * | | [ARM] Solve buggy smp_processor_id() usageRussell King2007-06-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUG: using smp_processor_id() in preemptible [00000001] code: opcontrol/427 Resolve this bug by ensuring that we're not using smp_processor_id() in a preemptable context (by disabling preemption.) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | | [ARM] 4419/1: AT91: SAM9 USB clocks check for suspendingAndrew Victor2007-06-021-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When suspending to slow-clock mode, at91_pm_verify_clocks() is called to ensure that all the clocks are disabled or in the correct state. This patch replaces the "#warning TODO" messages for the SAM9 processors with the correct code. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | | [ARM] 4418/1: AT91: Number of programmable clocks differsAndrew Victor2007-06-021-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The number of programmable clocks available on the AT91 processors can differ, therefore do not always display the contents of the PMC_PCKR(0) .. PMC_PCKR(3) registers (ie, assume there are 4 clocks). If CONFIG_AT91_PROGRAMMABLE_CLOCKS is enabled, the programmable clocks will be registered like the other system/peripheral clocks, and the state of the programmable clocks will be displayed like with the other clocks. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * | | [ARM] 4392/2: Do not corrupt the SP register in compressed/head.SCatalin Marinas2007-06-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ARMv7 support code requires a valid stack for saving/restoring registers as the whole D-cache flushing function is more complex. This patch ensures that the SP register is not corrupted. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | | | Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linusLinus Torvalds2007-06-0716-71/+110
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRS [MIPS] Fix some minor typoes in arch/mips/Kconfig. [MIPS] Remove prototype for deleted function qemu_handle_int [MIPS] Fix some system calls with long long arguments [MIPS] Make dma_map_sg handle sg elements which are longer than one page [MIPS] Drop __ARCH_WANT_SYS_FADVISE64 [MIPS] Fix VGA corruption on RM300C [MIPS] RM300: Fix MMIO problems by marking the PCI INT ACK region busy [MIPS] EMMA2RH: remove dead KGDB code [MIPS] Remove duplicate fpu enable hazard code. [MIPS] Atlas, Malta, SEAD: Remove scroll from interrupt handler.
| * | | | [MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRSAtsushi Nemoto2007-06-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the warning: arch/mips/kernel/traps.c:931: warning: 'do_default_vi' defined but not used Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Fix some minor typoes in arch/mips/Kconfig.Robert P. J. Day2007-06-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Remove prototype for deleted function qemu_handle_intRalf Baechle2007-06-061-2/+0
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Fix some system calls with long long argumentsAtsushi Nemoto2007-06-063-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * O32 fadvise64() pass long long arguments by register pairs. Add sys32 version for 64 bit kernel. * N32 readahead() can pass a long long argument by one register. No need to use sys32_readahead. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Make dma_map_sg handle sg elements which are longer than one pageThomas Bogendoerfer2007-06-061-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Fix VGA corruption on RM300CThomas Bogendoerfer2007-06-061-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... by setting DRAM config to 2MB (SNI always used that size). This also fixes video dram size detection in cirrusfb. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] RM300: Fix MMIO problems by marking the PCI INT ACK region busyThomas Bogendoerfer2007-06-061-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] EMMA2RH: remove dead KGDB codeSergei Shtylyov2007-06-061-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the cross-arch KGDB specific code which shouldn't have been there in the first place... Signed-off-by: Sergey Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Remove duplicate fpu enable hazard code.Chris Dearman2007-06-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use common code from hazards.h instead. Signed-off-by: Chris Dearman <chris@mips.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | | [MIPS] Atlas, Malta, SEAD: Remove scroll from interrupt handler.Ralf Baechle2007-06-065-29/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Aside of being handy for debugging this has never been a particularly good idea but is now getting in the way of dyntick / tickless kernels and general cleanups. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* | | | | Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6Linus Torvalds2007-06-076-9/+14
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: sh: Fix se73180 platform device registration. sh: ioremap() through PMB needs asm/mmu.h. sh: voyagergx: Fix build warnings. sh: Fix SH4-202 clock fwk set_rate() mismatch. sh: microdev: Fix compile warnings. sh: Fix in_nmi symbol build error.
| * | | | sh: Fix se73180 platform device registration.Paul Mundt2007-06-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Copy and paste error from se7343, fix it up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | | sh: ioremap() through PMB needs asm/mmu.h.Paul Mundt2007-06-041-0/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | | sh: voyagergx: Fix build warnings.Paul Mundt2007-06-041-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pr_debug() was using a %x on an unsigned long, which was making the build a bit noisy. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | | sh: Fix SH4-202 clock fwk set_rate() mismatch.Paul Mundt2007-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the SH7722 changes, ->set_rate() also takes an algo_id, SH4-202 was overlooked when this change went in. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | | sh: microdev: Fix compile warnings.Paul Mundt2007-06-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | irq.c needs linux/interrupt.h. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | | sh: Fix in_nmi symbol build error.Paul Mundt2007-06-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If CONFIG_KGDB_NMI is disabled, we're left with a stray in_nmi reference that can't be resolved. Move the symbol under the ifdef, too. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | | | Merge branch 'master' of ↵Linus Torvalds2007-06-078-42/+428
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [VIDEO] sunxvr500fb: Fix pseudo_palette array size [VIDEO] sunxvr2500fb: Fix pseudo_palette array size [VIDEO] ffb: The pseudo_palette is only 16 elements long [VIDEO]: Fix section mismatch warning in promcon. [ATA]: Back out bogus (SPARC64 && !PCI) Kconfig depends. [SPARC64]: Fill in gaps in non-PCI dma_*() NOP implementation. [SPARC64]: Fix {mc,smt}_capable(). [SPARC64]: Make core and sibling groups equal on UltraSPARC-IV. [SPARC64]: Proper multi-core scheduling support. [SPARC64]: Provide mmu statistics via sysfs. [SPARC64]: Fix service channel hypervisor function names. [SPARC64]: Export basic cpu properties via sysfs. [SPARC64]: Move topology init code into new file, sysfs.c
| * | | | | [SPARC64]: Fix {mc,smt}_capable().David S. Miller2007-06-043-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not just sun4v hypervisor platforms that should return true for this, sun4u with UltraSPARC-IV should return true too. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | | | [SPARC64]: Make core and sibling groups equal on UltraSPARC-IV.David S. Miller2007-06-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | | | [SPARC64]: Proper multi-core scheduling support.David S. Miller2007-06-044-1/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The scheduling domain hierarchy is: all cpus --> cpus that share an instruction cache --> cpus that share an integer execution unit Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | | | [SPARC64]: Provide mmu statistics via sysfs.David Miller2007-06-042-15/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the system supports hypervisor based statistics, allow them to be fetched, enabled, and disabled via sysfs. Enable and disable via the boolean: /sys/devices/systems/cpu/cpuN/mmustat_enable Statistic values are provided under: /sys/devices/systems/cpu/cpuN/mmu_status/ Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | | | [SPARC64]: Fix service channel hypervisor function names.David Miller2007-06-041-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sed 's/scv/svc/' Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | | | [SPARC64]: Export basic cpu properties via sysfs.David S. Miller2007-06-041-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cache sizes, udelay_val, and clock_tick. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | | | [SPARC64]: Move topology init code into new file, sysfs.cDavid S. Miller2007-06-043-21/+28
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, use per-cpu data for struct cpu. Calling kmalloc for each cpu in topology_init() is just plain clumsy. Signed-off-by: David S. Miller <davem@davemloft.net>
* | | | | [POWERPC] Fix building of COFF zImagesPaul Mackerras2007-06-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The COFF zImage (for booting oldworld powermacs) wasn't being built correctly because the procedure descriptor in crt0.S for the zImage entry point wasn't declared as .globl, and therefore wasn't getting pulled in from wrapper.a by the linker. This adds the necessary .globl statement. Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] spufs: Fix error handling in spufs_fill_dir()Sebastian Siewior2007-06-071-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error path in spufs_fill_dir() is broken. If d_alloc_name() or spufs_new_file() fails, spufs_prune_dir() is getting called. At this time dir->inode is not set and a NULL pointer is dereferenced by mutex_lock(). This bugfix replaces spufs_prune_dir() with a shorter version that does not touch dir->inode but simply removes all children. Signed-off-by: Sebastian Siewior <bigeasy@linux.vnet.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] spufs: Don't yield nosched contextChristoph Hellwig2007-06-071-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nosched context sould never be scheduled out, thus we must not deactivate them in spu_yield ever. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] scc_sio: Fix link failureChristoph Hellwig2007-06-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | scc_sio.o should only be built if the txx9 serial driver is actually built into the kernel. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> -- Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] cbe_cpufreq: Limit frequency via cpufreq notifier chainThomas Renninger2007-06-071-6/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and get rid of cpufreq_set_policy call that caused a build failure due interfering commits. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Christian Krafft <krafft@de.ibm.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] Fix pci_setup_phb_io_dynamic for pci_iomapArnd Bergmann2007-06-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had a problem on a system with only dynamically allocated PCI buses (using of_pci_phb_driver) in combination with libata. This setup ended up having no "primary" phb, which means that pci_io_base never got initialized and all IO port numbers are 64 bit numbers, which is larger than the PIO_MASK limit. Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] spufs scheduler: Fix wakeup racesChristoph Hellwig2007-06-071-82/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the race between checking for contexts on the runqueue and actually waking them in spu_deactive and spu_yield. The guts of spu_reschedule are split into a new helper called grab_runnable_context which shows if there is a runnable thread below a specified priority and if yes removes if from the runqueue and uses it. This function is used by the new __spu_deactivate hepler shared by preemption and spu_yield to grab a new context before deactivating a specified priority and if yes removes if from the runqueue and uses it. This function is used by the new __spu_deactivate hepler shared by preemption and spu_yield to grab a new context before deactivating the old one. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | | [POWERPC] spufs: Synchronize pte invalidation vs ps closeChristoph Hellwig2007-06-073-30/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the mapping_lock also protects access to the various address_space pointers used for tearing down the ptes on a spu context switch. Because unmap_mapping_range can sleep we need to turn mapping_lock from a spinlock into a sleeping mutex. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
OpenPOWER on IntegriCloud