20 Sep, 2007
3 commits
-
This patch fixes a crash caused by an interrupt coming in when an IRQ stack
is being torn down. When this happens, handle_signal will loop, setting up
the IRQ stack again because the tearing down had finished, and handling
whatever signals had come in.However, to_irq_stack returns a mask of pending signals to be handled, plus
bit zero is set if the IRQ stack was already active, and thus shouldn't be
torn down. This causes a problem because when handle_signal goes around
the loop, sig will be zero, and to_irq_stack will duly set bit zero in the
returned mask, faking handle_signal into believing that it shouldn't tear
down the IRQ stack and return thread_info pointers back to their original
values.This will eventually cause a crash, as the IRQ stack thread_info will
continue pointing to the original task_struct and an interrupt will look
into it after it has been freed.The fix is to stop passing a signal number into to_irq_stack. Rather, the
pending signals mask is initialized beforehand with the bit for sig already
set. References to sig in to_irq_stack can be replaced with references to
the mask.[akpm@linux-foundation.org: use UL]
Signed-off-by: Jeff Dike
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Xen ignores all updates to cr4, and some versions will kill the domain if
you try to change its value. Just ignore all changes.Signed-off-by: Jeremy Fitzhardinge
Cc: Andi Kleen
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
I found a type mismatch in UML that makes host block devices unusable as ubd
devices on x86_64 and other 64 bits systems (segfault of the mm subsystem):In block/ioctl.c, the following lines show that the BLKGETSIZE ioctl expects
a pointer to a long:case BLKGETSIZE:
if ((bdev->bd_inode->i_size >> 9) > ~0UL)
return -EFBIG;
return put_ulong(arg, bdev->bd_inode->i_size >> 9);In arch/um/os-Linux/file.c, os_file_size calls it with an int.
The ioctl_list man page should be fixed as well.
Cc: Jeff Dike
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Sep, 2007
3 commits
-
When NR_CPUS is smaller than the cpu probed, let the user
know that the cpu won't be used.Suggested by Al Viro.
Signed-off-by: David S. Miller
-
As noted by Al Viro, when we try to call prom_set_trap_table()
in the SMP trampoline code we try to take the PROM call spinlock
which doesn't work because the current thread pointer isn't
valid yet and lockdep depends upon that being correct.Furthermore, we cannot set the current thread pointer register
because it can't be properly dereferenced until we return from
prom_set_trap_table(). Kernel TLB misses only work after that
call.So do the PROM call to set the trap table directly instead of
going through the OBP library C code, and thus avoid the lock
altogether.These calls are guarenteed to be serialized fully.
Since there are now no calls to the prom_set_trap_table{_sun4v}()
library functions, they can be deleted.Signed-off-by: David S. Miller
-
Signed-off-by: David S. Miller
15 Sep, 2007
10 commits
-
* git://git.linux-xtensa.org/kernel/xtensa-feed:
[patch 1/2] Xtensa: enable arbitary tty speed setting ioctls
[patch 2/2] xtensa console.c: remove duplicate #include
[XTENSA] Add support for cache-aliasing
[XTENSA] Add kernel module support
[XTENSA] Add support for executable/non-executable feature in the mmu
[XTENSA] Use the generic version of get_order
[XTENSA] Initialize semaphore_wake_lock
[XTENSA] Add typecast macro for constants
[XTENSA] Fix timer instabilities.
[XTENSA] Fix fadvise64_64
[XTENSA] Remove extraneous include statement
[XTENSA] Move string-io functions to io.c from pci.c
[XTENSA] Move pre-initialized structures to init_task.c
[XTENSA] Add freestanding option to CFLAGS
[XTENSA] Add getpgrp system-call to unistd.h
[XTENSA] add missing system calls
[XTENSA] fix wrong usage of __init and __initdata in traps.c -
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6:
Blackfin arch: fix some bugs in lib/string.h functions found by our string testing modules
Blackfin arch: fix the aliased write macros
Blackfin arch: Update/Fix PM support add new pm_ops valid -
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 4567/1: Fix 'Oops - undefined instruction' when CONFIG_VFP=y on non VFP device
[ARM] realview: disable second GIC on RevB MPCore platforms -
Another issue with 20Kc's WAIT, waiting for more details. With the
2.6.23 release immindent simply disable the use of WAIT instead of a
more fancy workaround.Signed-off-by: Ralf Baechle
-
Signed-off-by: Maciej W. Rozycki
Signed-off-by: Ralf Baechle -
Fairly cosmetic as it would only affect VSMP / SMTC kernels that don't
use vectored interrupts.Found by Beth.
Signed-off-by: Ralf Baechle
-
It refer to CPU_PROFILING.
arch/mips/kernel/time.c: In function 'local_timer_interrupt':
arch/mips/kernel/time.c:142: error: implicit declaration of function 'profile_tick'
arch/mips/kernel/time.c:142: error: 'CPU_PROFILING' undeclared (first use in this function)
arch/mips/kernel/time.c:142: error: (Each undeclared identifier is reported only once
arch/mips/kernel/time.c:142: error: for each function it appears in.)Signed-off-by: Yoichi Yuasa
Signed-off-by: Ralf Baechle -
Signed-off-by: Ralf Baechle
-
CC arch/mips/kernel/rtlx.o
cc1: warnings being treated as errors
arch/mips/kernel/rtlx.c:59: warning: 'irq' defined but not used
arch/mips/kernel/rtlx.c:60: warning: 'irq_num' defined but not usedSigned-off-by: Ralf Baechle
-
CC arch/mips/kernel/rtlx.o
arch/mips/kernel/rtlx.c: In function 'rtlx_init':
arch/mips/kernel/rtlx.c:114: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'long unsigned int'Signed-off-by: Ralf Baechle
13 Sep, 2007
7 commits
-
vfp_init() takes care of the condition when CONFIG_VFP=y but no real VFP
device exists. However, when this condition is true, a compiler might
misplace code lines in a way that will break this support. (To be more
specific - fmrx(FPSID) might be executed before vfp_testing_entry
assignment, which will end up with Oops - undefined instruction).
This patch adds a barrier() to guarantee the right execution ordering.Signed-off-by: Assaf Hoffman
Signed-off-by: Russell King -
The second GIC asserts a permanent interrupt on Rev.B MPCore platforms.
Disable initialisation of this GIC to avoid unbootable systems.Signed-off-by: Russell King
-
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Move serial_dev_init to device_initcall()
[POWERPC] Enable GENERIC_ISA_DMA if FSL_ULI1575 to fix compile issue
[POWERPC] cpm2: Fix off-by-one error in setbrg().
[PPC] 8xx: Fix r3 trashing due to 8MB TLB page instantiation
[POWERPC] 8{5,6}xx: Fix build issue with !CONFIG_PCI -
With the I/O space rewrite by BenH, the legacy_serial serial_dev_init()
initcall is now called before I/O space is setup, but it's dependent on
it being available.Since there's no way to make dependencies between initcalls, we'll just
have to move it to device_initcall(). Yes, it's suboptimal but I'm not
aware of any better solution at this time, and it fixes a regression
from 2.6.22.Signed-off-by: Olof Johansson
Signed-off-by: Paul Mackerras -
Fix a compile error when the directory above the kernel source contains
a file named "kernel". Originally from Ben LaHaise, modified based on
feedback from Sam RavnborgSigned-off-by: Andi Kleen
Cc: Sam Ravnborg
Cc: Ben LaHaise
Signed-off-by: Linus Torvalds -
AK: Removed the unlikelies because gcc heuristics default to unlikely
AK: for test == NULL and for negative returns.Cc: Venkatesh Pallipadi
Cc: Ashok Raj
Cc: Akinobu Mita
Signed-off-by: Jan Beulich
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
vdso vgetns() didn't mask the time source offset calculation, which
could lead to time problems with 32bit HPET. Add the masking.Thanks to Chuck Ebbert for tracking this down.
Signed-off-by: Andi Kleen
Cc: Chuck Ebbert
Signed-off-by: Linus Torvalds
12 Sep, 2007
17 commits
-
Since the ULI1575 has a ISA bus we need to enable the generic ISA dma
support for drivers that might expect it. Without this we get compile
errors like the following:ound/built-in.o: In function `claim_dma_lock':
/home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
/home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
sound/built-in.o: In function `release_dma_lock':
/home/galak/git/linux-8572/include/asm/dma.h:195: undefined reference to `dma_spin_lock'
sound/built-in.o: In function `claim_dma_lock':
/home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
/home/galak/git/linux-8572/include/asm/dma.h:189: undefined reference to `dma_spin_lock'
sound/built-in.o:/home/galak/git/linux-8572/include/asm/dma.h:195: more undefined references to `dma_spin_lock' follow
make: *** [.tmp_vmlinux1] Error 1Signed-off-by: Kumar Gala
-
On the root PCI bus, the OBP device tree lists device 3 twice.
Once as 'pm' and once as 'lomp'.Everything goes downhill from there.
Ignore the second instance to workaround this.
Thanks to Kövedi_Krisztián for the bug report and
testing the fix.Signed-off-by: David S. Miller
-
Revert
commit 656dad312fb41ed95ef08325e9df9bece3aacbbb
Author: Ingo Molnar
Date: Sat Feb 10 01:46:36 2007 -0800[PATCH] highmem: catch illegal nesting
Catch illegally nested kmap_atomic()s even if the page that is mapped by
the 'inner' instance is from lowmem.This avoids spuriously zapped kmap-atomic ptes and turns hard to find
crashes into clear asserts at the bug site.Problem is, a get_zeroed_page(GFP_KERNEL) from interrupt context will trigger
this check if non-irq code on this CPU holds a KM_USER0 mapping. But that
get_zeroed_page() will never be altering the kmap slot anyway due to the
GFP_KERNEL.Cc: Christoph Lameter
Cc: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Signed-off-by: Robert P. J. Day
Acked-by: Satyam Sharma
Cc: Yoshinori Sato
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
[MIPS] Fix aliasing bug in copy_user_highpage.
[MIPS] IP22: fix wrong argument order
[MIPS] IP22: Fix wrong check for second HPC
[MIPS] Ocelot: remove remaining bits
[MIPS] TLB: Fix instruction bitmasks
[MIPS] R10000: Fix wrong test in dma-default.c
[MIPS] Provide empty irq_enable_hazard definition for legacy and R1 cores.
[MIPS] Sibyte: Remove broken dependency on EXPERIMENTAL from SIBYTE_SB1xxx_SOC.
[MIPS] Kconfig: whitespace cleanup.
[MIPS] PCI: Set need_domain_info if controller domain index is non-zero.
[MIPS] BCM1480: Fix computation of interrupt mask address register.
[MIPS] i8259: Add disable method.
[MIPS] tty: add the new ioctls and definitions. -
Copy_user_highpage was written assuming it was only being called for
breaking COW pages in which case the source page isn't cached as in
marked cachable under it kernel virtual address. If it is called anyway
the aliasing avoidance strategy implemented by kmap_coherent will fail.
Avoid the use of kmap_coherent for pages marked dirty and to avoid
another instance of this sort of bug, place a BUG_ON in kmap_coherent.Signed-off-by: Ralf Baechle
-
Fix wrong argument order; this is just a minimal fix for the half baked
redadb/writeb() conversion.Signed-off-by: Thomas Bogendoerfer
Signed-off-by: Ralf Baechle -
Wrong check for the second hpc on fullhouse machines, caused DBEs on
SGI IndysSigned-off-by: Thomas Bogendoerfer
Signed-off-by: Ralf Baechle -
Signed-off-by: Yoichi Yuasa
Signed-off-by: Ralf Baechle -
Signed-Off-By: Thiemo Seufer
Signed-off-by: Ralf Baechle -
Signed-off-by: Maxime Bizon
Signed-off-by: Ralf Baechle -
Otherwise Kconfig will produce a nonsenical .config for a kernel that is
neither 32-bit nor 64-bit.Signed-off-by: Ralf Baechle
-
Signed-off-by: Ralf Baechle
-
This fixes this little funny:
bigsur:/proc/bus/pci# ls -l
total 0
dr-xr-xr-x 2 root root 0 Aug 28 19:31 00
dr-xr-xr-x 2 root root 0 Aug 28 19:31 00
dr-xr-xr-x 2 root root 0 Aug 28 19:31 01
dr-xr-xr-x 2 root root 0 Aug 28 19:31 03
-r--r--r-- 1 root root 0 Aug 28 19:31 devicesSigned-off-by: Ralf Baechle
-
CC arch/mips/sibyte/bcm1480/irq.o
arch/mips/sibyte/bcm1480/irq.c: In function 'bcm1480_mask_irq':
arch/mips/sibyte/bcm1480/irq.c:112: warning: cast to pointer from integer of different size
arch/mips/sibyte/bcm1480/irq.c:114: warning: cast to pointer from integer of different size
arch/mips/sibyte/bcm1480/irq.c: In function 'bcm1480_unmask_irq':
arch/mips/sibyte/bcm1480/irq.c:130: warning: cast to pointer from integer of different size
arch/mips/sibyte/bcm1480/irq.c:132: warning: cast to pointer from integer of different sizeSigned-off-by: Ralf Baechle
-
After 76d2160147f43f982dfe881404cfde9fd0a9da21, the qemu NE2000 was
frequently producing WATCHDOG timeouts.Signed-off-by: Kyungmin Park
Cc: Ralf Baechle
Cc: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Ralf Baechle