Andi Kleen [Mon, 10 Oct 2005 20:32:45 +0000 (22:32 +0200)]
[PATCH] x86_64: Allocate cpu local data for all possible CPUs
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>
Linus Torvalds [Mon, 10 Oct 2005 23:32:32 +0000 (16:32 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Mon, 10 Oct 2005 23:31:30 +0000 (16:31 -0700)]
Use the new "kill_proc_info_as_uid()" for USB disconnect too
All the same issues - we can't just save the pointer to the thread, we
must save the pid/uid/euid combination.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Harald Welte [Mon, 10 Oct 2005 17:44:29 +0000 (19:44 +0200)]
[PATCH] Fix signal sending in usbdevio on async URB completion
If a process issues an URB from userspace and (starts to) terminate
before the URB comes back, we run into the issue described above. This
is because the urb saves a pointer to "current" when it is posted to the
device, but there's no guarantee that this pointer is still valid
afterwards.
In fact, there are three separate issues:
1) the pointer to "current" can become invalid, since the task could be
completely gone when the URB completion comes back from the device.
2) Even if the saved task pointer is still pointing to a valid task_struct,
task_struct->sighand could have gone meanwhile.
3) Even if the process is perfectly fine, permissions may have changed,
and we can no longer send it a signal.
So what we do instead, is to save the PID and uid's of the process, and
introduce a new kill_proc_info_as_uid() function.
Signed-off-by: Harald Welte <laforge@gnumonks.org>
[ Fixed up types and added symbol exports ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David S. Miller [Mon, 10 Oct 2005 23:12:13 +0000 (16:12 -0700)]
[SPARC64]: Fix Ultra5, Ultra60, et al. boot failures.
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>
Andi Kleen [Mon, 10 Oct 2005 23:03:39 +0000 (01:03 +0200)]
[PATCH] x86_64: Fix change_page_attr cache flushing
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>
Linus Torvalds [Mon, 10 Oct 2005 17:39:26 +0000 (10:39 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-ucb
Linus Torvalds [Mon, 10 Oct 2005 17:39:14 +0000 (10:39 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Vincent Sanders [Mon, 10 Oct 2005 17:24:09 +0000 (18:24 +0100)]
[ARM] 2968/1: defconfig for the ARM Collie platform
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>
Vincent Sanders [Mon, 10 Oct 2005 17:24:08 +0000 (18:24 +0100)]
[ARM] 2967/1: defconfig for the ARM Corgi platform
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>
Vincent Sanders [Mon, 10 Oct 2005 17:24:07 +0000 (18:24 +0100)]
[ARM] 2966/1: defconfig for the ARM Poodle platform
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>
Vincent Sanders [Mon, 10 Oct 2005 17:24:06 +0000 (18:24 +0100)]
[ARM] 2965/1: defconfig for the ARM Spitz platform
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>
Nicolas Pitre [Mon, 10 Oct 2005 17:22:17 +0000 (18:22 +0100)]
[ARM] 2956/1: fix the "Fix gcc4 build errors in ucb1x00-core.c"
Patch from Nicolas Pitre
drivers/mfd/ucb1x00-core.c: In function 'ucb1x00_probe':
drivers/mfd/ucb1x00-core.c:482: error: 'ucb1x00_class' undeclared (first use in this function)
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Markus F.X.J. Oberhumer [Sun, 9 Oct 2005 16:54:23 +0000 (18:54 +0200)]
[PATCH] i386: fix stack alignment for signal handlers
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>
Benjamin Herrenschmidt [Sun, 9 Oct 2005 00:37:47 +0000 (10:37 +1000)]
[PATCH] ide: Workaround PM problem
The logic in ide_do_request() doesn't guarantee that both drives will be
serviced after a call. It may "forget" to service one in some
circumstances, including when one of the drive is suspended (it will
eventually fail to service the slave when the master is suspended for
example). This prevents the wakeup requests that gets queued on wakeup
from sleep from beeing serviced in some cases when 2 drives are sharing
an IDE bus.
The problem is deep enough in the way this code works (and there are
probably a few other problematic but rare corner cases) and fixing it
would require some major rethinking of the way IDE decides which channel
to service. This is not 2.6.14 material. However, in the meantime,
Bart has accepted this simple workaround that will fix the crash on
wakeup from sleep since this specific corner case is actually hitting
users to get into 2.6.14.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Tom Zanussi [Sun, 9 Oct 2005 15:41:32 +0000 (10:41 -0500)]
[PATCH] relayfs: fix bogus param value in call to vmap
The third param in this call to vmap shouldn't be GFP_KERNEL, which
makes no sense, but rather VM_MAP. Thanks to Al Viro for spotting
this.
Signed-off-by: Tom Zanussi <zanussi@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Mon, 10 Oct 2005 15:38:52 +0000 (08:38 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Jeff Dike [Sun, 9 Oct 2005 20:11:44 +0000 (16:11 -0400)]
[PATCH] uml: fix x86_64 with !CONFIG_FRAME_POINTER
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>
Rafael J. Wysocki [Sun, 9 Oct 2005 19:19:40 +0000 (21:19 +0200)]
[PATCH] x86_64: Set up safe page tables during resume
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>
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:53 +0000 (21:37 +0200)]
[PATCH] uml: cleanup whitespace for COW driver
Fix whitespace - I split this off the previous patch for easier review.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:45 +0000 (21:37 +0200)]
[PATCH] uml: cleanup byte order macros for COW driver
After restoring the existing code, make it work also when included in
kernelspace code (which isn't currently the case, but at least this will prevent
people from "fixing" it as just happened).
Whitespace is fixed in next patch - it cluttered the diff too much.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:35 +0000 (21:37 +0200)]
[PATCH] uml: restore include breakage, breaking binary format of COW driver
Commit
44456d37b59d8e541936ed26d8b6e08d27e88ac1, between 2.6.13-rc3 and -rc4,
was a "nice cleanup" which broke something. Revert the offending part.
It broke because:
a) because this part doesn't fall under the description
b) the author didn't know what he was doing here
c) the author didn't try to compile the existing code and see that it worked
perfectly.
d) the author didn't ask us what was happening
e) you didn't either, and somebody there should have learned that UML is a bit
different.
In fact, UML is special in linking to host libc and using its includes.
In particular, since host includes always define both __BIG_ENDIAN and
__LITTLE_ENDIAN, ntohll() macros started thinking to be in a big-endian world;
and on-disk compatibility was broken.
Many thanks go to Nix for reporting the problem and correctly diagnosing an
endianness problem.
Btw, this patch restores the previous code, which worked; but the definitions
would be uncorrect if used in kernelspace files.
Next patch addresses that.
Cc: Nix <nix@esperi.org.uk>, Olaf Hering <olh@suse.de>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:26 +0000 (21:37 +0200)]
[PATCH] uml: allow building .s/.i/.lst files from userspace files
For files which need to include glibc headers (i.e. userspace files), we
specified the correct flags only for .o, not for .s/.lst/.i. Fix this.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:18 +0000 (21:37 +0200)]
[PATCH] uml: add mode=skas0 as a synonym of skas0
Too many people were confused by skas0 and tried using "mode=skas0". And after
all, they are right - accept this.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paolo 'Blaisorblade' Giarrusso [Sun, 9 Oct 2005 19:37:05 +0000 (21:37 +0200)]
[PATCH] Uml: hide commands when not being verbose
Add a missing $(Q) to a "ln" invocation.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Steven Rostedt [Mon, 10 Oct 2005 15:13:17 +0000 (11:13 -0400)]
[PATCH] pcmcia: fix task state at pccard thread exit
The pccardd thread has a race in it that it can shutdown in the
TASK_INTERRUPTIBLE state.
Make sure we mark ourselves runnable again as we remove ourselves from
the wait queue.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ben Dooks [Mon, 10 Oct 2005 09:20:07 +0000 (10:20 +0100)]
[ARM] 2964/1: S3C2410 - serial: add .owner to driver
Patch from Ben Dooks
Initialise the driver's .owner field so that
the device driver can be referenced to the
module that owns it
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ben Dooks [Mon, 10 Oct 2005 09:20:06 +0000 (10:20 +0100)]
[ARM] 2963/1: S3C2410 - add .owner field to device_driver
Patch from Ben Dooks
Add initialisation of .owner field so that
the device driver can be referenced to the
module that owns it.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Richard Purdie [Mon, 10 Oct 2005 09:20:06 +0000 (10:20 +0100)]
[ARM] 2962/1: scoop: Allow GPIO pin suspend state to be specified
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>
Richard Purdie [Mon, 10 Oct 2005 09:17:45 +0000 (10:17 +0100)]
[ARM] 2961/1: corgi: Add missing include
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>
Richard Purdie [Mon, 10 Oct 2005 09:17:44 +0000 (10:17 +0100)]
[ARM] 2960/1: collie: Add missing scoop call parameters
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>
George G. Davis [Mon, 10 Oct 2005 09:17:44 +0000 (10:17 +0100)]
[ARM] 2959/1: Add test for invalid LDRD/STRD Rd cases in ARM alignment handler
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>
Sascha Hauer [Mon, 10 Oct 2005 09:17:43 +0000 (10:17 +0100)]
[ARM] 2958/1: fix definition in imx-regs.h
Patch from Sascha Hauer
Fix PD7_AF_UART2_DTR definition
Signed-off-by: Giancarlo Formicuccia <gformicuccia@atinno.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Sascha Hauer [Mon, 10 Oct 2005 09:17:42 +0000 (10:17 +0100)]
[ARM] 2957/1: imx UART Error handling
Patch from Sascha Hauer
Fix error path in imx_startup.
Signed-off-by: Giancarlo Formicuccia <gformicuccia@atinno.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King [Mon, 10 Oct 2005 08:48:10 +0000 (09:48 +0100)]
[ARM] Update mach-types
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Sven Hartge [Sun, 9 Oct 2005 04:12:04 +0000 (21:12 -0700)]
[SPARC64]: Fix compile error in irq.c
irq.c is missing the inclusion of asm/io.h, which causes
readb() and writeb() the be undefined.
Signed-off-by: Sven Hartge <hartge@ds9.argh.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Al Viro [Fri, 7 Oct 2005 06:46:04 +0000 (07:46 +0100)]
[PATCH] gfp flags annotations - part 1
- added typedef unsigned int __nocast gfp_t;
- replaced __nocast uses for gfp flags with gfp_t - it gives exactly
the same warnings as far as sparse is concerned, doesn't change
generated code (from gcc point of view we replaced unsigned int with
typedef) and documents what's going on far better.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jens Axboe [Fri, 7 Oct 2005 17:41:34 +0000 (19:41 +0200)]
[PATCH] scsi_ioctl: only warn for rejected commands
We should not be warning about commands that we allow, even if they are
unknown. So move the if-root-allow check up a notch.
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Sat, 8 Oct 2005 21:59:13 +0000 (14:59 -0700)]
Merge /pub/scm/linux/kernel/git/perex/alsa
Linus Torvalds [Sat, 8 Oct 2005 21:58:25 +0000 (14:58 -0700)]
Merge /linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Sat, 8 Oct 2005 21:57:46 +0000 (14:57 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sat, 8 Oct 2005 21:57:20 +0000 (14:57 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6
David Howells [Fri, 7 Oct 2005 15:41:24 +0000 (16:41 +0100)]
[PATCH] Keys: Possessor permissions should be additive
This patch makes the possessor permissions on a key additive with
user/group/other permissions on the same key.
This permits extra rights to be granted to the possessor of a key without
taking away any rights conferred by them owning the key or having common group
membership.
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Howells [Fri, 7 Oct 2005 14:07:38 +0000 (15:07 +0100)]
[PATCH] Keys: Split key permissions checking into a .c file
The attached patch splits key permissions checking out of key-ui.h and
moves it into a .c file. It's quite large and called quite a lot, and
it's about to get bigger with the addition of LSM support for keys...
key_any_permission() is also discarded as it's no longer used.
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Howells [Fri, 7 Oct 2005 14:04:52 +0000 (15:04 +0100)]
[PATCH] Keys: Add request-key process documentation
The attached patch adds documentation for the process by which request-key
works, including how it permits helper processes to gain access to the
requestor's keyrings.
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Howells [Fri, 7 Oct 2005 14:01:09 +0000 (15:01 +0100)]
[PATCH] key: plug request_key_auth memleak
Plug request_key_auth memleak. This can be triggered by unprivileged
users, so is local DoS.
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Vrabel [Fri, 7 Oct 2005 13:43:22 +0000 (14:43 +0100)]
[PATCH] yenta: fix build if YENTA && !CARDBUS
(struct pcmcia_socket).tune_bridge only exists if CONFIG_CARDBUS is set
but building yenta_socket without CardBus is valid.
Signed-off-by: David Vrabel <dvrabel@arcom.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Oleg Nesterov [Fri, 7 Oct 2005 13:46:19 +0000 (17:46 +0400)]
[PATCH] fix do_coredump() vs SIGSTOP race
Let's suppose we have 2 threads in thread group:
A - does coredump
B - has pending SIGSTOP
thread A thread B
do_coredump: get_signal_to_deliver:
lock(->sighand)
->signal->flags = SIGNAL_GROUP_EXIT
unlock(->sighand)
lock(->sighand)
signr = dequeue_signal()
->signal->flags |= SIGNAL_STOP_DEQUEUED
return SIGSTOP;
do_signal_stop:
unlock(->sighand)
coredump_wait:
zap_threads:
lock(tasklist_lock)
send SIGKILL to B
// signal_wake_up() does nothing
unlock(tasklist_lock)
lock(tasklist_lock)
lock(->sighand)
re-check sig->flags & SIGNAL_STOP_DEQUEUED, yes
set_current_state(TASK_STOPPED);
finish_stop:
schedule();
// ->state == TASK_STOPPED
wait_for_completion(&startup_done)
// waits for complete() from B,
// ->state == TASK_UNINTERRUPTIBLE
We can't wake up 'B' in any way:
SIGCONT will be ignored because handle_stop_signal() sees
->signal->flags & SIGNAL_GROUP_EXIT.
sys_kill(SIGKILL)->__group_complete_signal() will choose
uninterruptible 'A', so it can't help.
sys_tkill(B, SIGKILL) will be ignored by specific_send_sig_info()
because B already has pending SIGKILL.
This scenario is not possbile if 'A' does do_group_exit(), because
it sets sig->flags = SIGNAL_GROUP_EXIT and delivers SIGKILL to
subthreads atomically, holding both tasklist_lock and sighand->lock.
That means that do_signal_stop() will notice !SIGNAL_STOP_DEQUEUED
after re-locking ->sighand. And it is not possible to any other
thread to re-add SIGNAL_STOP_DEQUEUED later, because dequeue_signal()
can only return SIGKILL.
I think it is better to change do_coredump() to do sigaddset(SIGKILL)
and signal_wake_up() under sighand->lock, but this patch is much
simpler.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jean-Denis Boyer [Fri, 7 Oct 2005 20:44:35 +0000 (13:44 -0700)]
[ATM]: [br2684] if we free the skb, we should return 0
From: "Jean-Denis Boyer" <jdboyer@mediatrix.com>
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller [Fri, 7 Oct 2005 20:30:49 +0000 (13:30 -0700)]
[SPARC64]: Fix userland FPU state corruption.
We need to use stricter memory barriers around the block
load and store instructions we use to save and restore the
FPU register file.
Signed-off-by: David S. Miller <davem@davemloft.net>
Tom 'spot' Callaway [Fri, 7 Oct 2005 20:05:56 +0000 (13:05 -0700)]
[SPARC]: Fix p9100 framebuffer in 2.6
The attached patch fixes the p9100 framebuffer so that text is viewable
(not black on black, like it was before the patch). The linux logo
displays for a very short period of time, then is replaced by a grey
box. This leads me to believe that this framebuffer would have problems
in X, but since there hasn't been a weitek driver for X in several
millennia, this isn't something that I can confirm or deny.
But this patch does get color console working on my SPARCbook 3TX.
Signed-off-by: Tom 'spot' Callaway <tcallawa@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Clemens Ladisch [Wed, 5 Oct 2005 11:23:19 +0000 (13:23 +0200)]
[ALSA] usb-audio: add MIDI quirk for Hercules DJ Console
USB generic driver
Add a quirk entry for the external MIDI ports of the
Windows Edition of the Hercules DJ Console.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Clemens Ladisch [Wed, 5 Oct 2005 11:02:38 +0000 (13:02 +0200)]
[ALSA] usb-audio: add another ID for Hercules DJ Console
USB generic driver
Add a mixer quirk entry for the Hercules DJ Console (Windows Edition)
that uses a different USB product ID.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Takashi Iwai [Tue, 4 Oct 2005 11:50:44 +0000 (13:50 +0200)]
[ALSA] ali5451 - Don't build non-existing modem PCM
ALI5451 driver
Don't build the modem PCM if the corresponding codec isn't detected.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 4 Oct 2005 11:49:32 +0000 (13:49 +0200)]
[ALSA] emu10k1 - Fix handling of ac97_chip=2
EMU10K1/EMU10K2 driver
Fixed the handling of ac97_chip=2 capability type.
The error occurs in snd_ac97_mixer(), not in snd_ac97_bus().
Also, release the unnecessary ac97_bus object in the error path.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Clemens Ladisch [Tue, 4 Oct 2005 06:42:10 +0000 (08:42 +0200)]
[ALSA] korg1212: fix typo
KORG1212 driver
Add a missing comma that made the stateName array one entry too short.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Takashi Iwai [Fri, 30 Sep 2005 14:56:59 +0000 (16:56 +0200)]
[ALSA] emu10k1 - Fix loading of SBLive Game board
EMU10K1/EMU10K2 driver
Fixed the error at loading SBLive Game board (and possible other models).
The PCI SSIDs of this board conflicts with SB Live 5.1 Platinum, which has
no AC97 chip.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 29 Sep 2005 11:49:44 +0000 (13:49 +0200)]
[ALSA] via82xx - dxs_support entry for an ASUS mobo
VIA82xx driver
Addded a dxs_support entry for an ASUS mobo.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 29 Sep 2005 11:25:14 +0000 (13:25 +0200)]
[ALSA] Fix confliction of capture controls on ALC880 test model
HDA Codec driver
Fixed the confliction of capture controls on ALC880 'test' model.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
John W. Linville [Thu, 29 Sep 2005 11:20:45 +0000 (13:20 +0200)]
[ALSA] fix HD audio ALC882 lfe (un)mute
HDA Codec driver
Mark the ALC882 'LFE Playback Switch' as an input, like the other
playback switch settings.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
John W. Linville [Thu, 29 Sep 2005 11:18:41 +0000 (13:18 +0200)]
[ALSA] fix alc880_test_mixer typo
HDA Codec driver
Fix a typo (cut & paste) in the alc880_test_mixer structure.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
John W. Linville [Thu, 29 Sep 2005 11:13:38 +0000 (13:13 +0200)]
[ALSA] fix HD audio ALC260 mono (un)mute
HDA Codec driver
The ALC260 'Mono Playback Switch' is marked as an output in
patch_realtek.c. It actually does not work unless it is marked as an
input. Go figure... This was tested and confirmed on an HP xw4300.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Clemens Ladisch [Mon, 26 Sep 2005 07:59:57 +0000 (09:59 +0200)]
[ALSA] usb-audio: increase max buffer size
USB generic driver
Increase the maximum PCM buffer size to 1 MB. The USB driver doesn't
have any inherent buffer size limit, and big multichannel interfaces
may benefit from this.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Clemens Ladisch [Mon, 26 Sep 2005 06:55:01 +0000 (08:55 +0200)]
[ALSA] usb-audio: add another ID for the TerraTec PHASE26
USB generic driver
There is another revision of the PHASE26 with a different product ID;
add a quirk entry for that, too.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Clemens Ladisch [Tue, 20 Sep 2005 07:06:36 +0000 (09:06 +0200)]
[ALSA] usb-audio: add more Yamaha USB MIDI devices
USB generic driver
Add quirk entries for four unknown Yamaha USB MIDI devices.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Takashi Iwai [Mon, 19 Sep 2005 13:21:17 +0000 (15:21 +0200)]
[ALSA] Add iBook 1.33GHz support
PPC PMAC driver
Added the support of iBook 1.33GHz.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Clemens Ladisch [Mon, 19 Sep 2005 10:24:00 +0000 (12:24 +0200)]
[ALSA] usb-audio: add Roland RD-700SX support
USB generic driver
Add a quirk entry for the Roland RD-700SX.
This should work for the RD-300SX, too.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Takashi Iwai [Fri, 16 Sep 2005 17:07:52 +0000 (19:07 +0200)]
[ALSA] via82xx - Add a dxs whitelist entry
VIA82xx driver
Added a dxs whitelist entry for an ECS mobo.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Nicolas Pitre [Fri, 16 Sep 2005 16:50:53 +0000 (18:50 +0200)]
[ALSA] clean suspend/resume calls for ac97_bus_type
AC97 Codec
A single call to the driver suspend/resume method for each device is
enough. The level and SUSPEND_*/RESUME_* arguments are deprecated and
said to be removed eventually anyway (no other subsystem are using them
anymore except platform devices).
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Nicolas Pitre [Fri, 16 Sep 2005 16:49:22 +0000 (18:49 +0200)]
[ALSA] remove redundent assignment to the ac97 device structure
AC97 Codec
Don't use dev.platform_data to store a reference to the containing
ac97_t structure. Such assignment is redundent since we can deduce the
ac97_t structure location from the contained device structure. This
sets platform_data free for other purposes.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Nicolas Pitre [Fri, 16 Sep 2005 16:46:36 +0000 (18:46 +0200)]
[ALSA] remove bogus match method for ac97_bus
AC97 Codec
The bus_id is initialized with a generic identifier string which is not
really useful for proper driver matching. Let the driver decide what it
needs via its probe method instead.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Clemens Ladisch [Fri, 16 Sep 2005 14:56:01 +0000 (16:56 +0200)]
[ALSA] usb-audio: ignore Hercules DJ Console mixer errors
USB generic driver
Add a quirk entry for the Hercules DJ Console to ignore timeouts on
some mixer control transfers.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Dirk Opfer [Wed, 14 Sep 2005 18:52:25 +0000 (20:52 +0200)]
[ALSA] Fix pm_message_t in PXA2XX-AC97 driver
ARM PXA2XX driver
Fix pm_message_t in PXA2XX-AC97 driver.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 13 Sep 2005 09:28:53 +0000 (11:28 +0200)]
[ALSA] hda-intel - Disable DMA position auto-correction
HDA Intel driver
Disable the auto-correction of DMA position temporarily.
It doesn't work as expected yet...
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Sasha Khapyorsky [Tue, 13 Sep 2005 09:25:54 +0000 (11:25 +0200)]
[ALSA] hda-codec - 'empty' generic mfg-only codec
HDA generic driver
This creates 'empty' hda generic for unknown MFG-only codecs.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Sasha Khapyorsky [Tue, 13 Sep 2005 09:23:13 +0000 (11:23 +0200)]
[ALSA] no templated index for si3036 modem controls
AC97 Codec
No index is templated for si3036 modem controls.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Sasha Khapyorsky [Tue, 13 Sep 2005 09:21:30 +0000 (11:21 +0200)]
[ALSA] no templated index for mc97 controls
AC97 Codec
No index is templated for mdoem controls.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Daniel Ritz [Mon, 12 Sep 2005 09:47:04 +0000 (11:47 +0200)]
[ALSA] snd_opl3sa2: add missing pnp_unregister_driver() calls
OPL3SA2 driver
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Eric Kinzie [Fri, 7 Oct 2005 05:19:28 +0000 (22:19 -0700)]
[ATM]: add support for LECS addresses learned from network
From: Eric Kinzie <ekinzie@cmf.nrl.navy.mil>
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
Tom 'spot' Callaway [Fri, 7 Oct 2005 05:14:59 +0000 (22:14 -0700)]
[SPARC32]: Enable generic IOMAP.
This helps some PCI stuff build.
Signed-off-by: Tom 'spot' Callaway <tcallawa@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Linus Torvalds [Fri, 7 Oct 2005 04:54:21 +0000 (21:54 -0700)]
Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL
The nameidata "last.name" is always allocated with "__getname()", and
should always be free'd with "__putname()".
Using "putname()" without the underscores will leak memory, because the
allocation will have been hidden from the AUDITSYSCALL code.
Arguably the real bug is that the AUDITSYSCALL code is really broken,
but in the meantime this fixes the problem people see.
Reported by Robert Derr, patch by Rick Lindsley.
Acked-by: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Sridhar Samudrala [Fri, 7 Oct 2005 04:37:01 +0000 (21:37 -0700)]
[SCTP] Fix SCTP socket options to work with 32-bit apps on 64-bit kernels.
Adds alignment attribute to a few structures used with SCTP socket
options so that the sizes and offsets remain the same when built using
either 32 or 64 bit tools.
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ivan Skytte Jørgensen [Fri, 7 Oct 2005 04:36:17 +0000 (21:36 -0700)]
[SCTP] Fix sctp_get{pl}addrs() API to work with 32-bit apps on 64-bit kernels.
The old socket options are marked with a _OLD suffix so that the
existing 32-bit apps on 32-bit kernels do not break.
Signed-off-by: Ivan Skytte Jørgensen <isj-sctp@i1.dk>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller [Fri, 7 Oct 2005 03:43:54 +0000 (20:43 -0700)]
[SPARC64]: Probe for power device on ISA bus too.
Signed-off-by: David S. Miller <davem@davemloft.net>
Linus Torvalds [Thu, 6 Oct 2005 22:37:09 +0000 (15:37 -0700)]
Merge branch 'release' of /linux/kernel/git/aegl/linux-2.6
Bryan Sutula [Wed, 5 Oct 2005 17:02:06 +0000 (11:02 -0600)]
[IA64] Avoid kernel hang during CMC interrupt storm
I've noticed a kernel hang during a storm of CMC interrupts, which was
tracked down to the continual execution of the interrupt handler.
There's code in the CMC handler that's supposed to disable CMC
interrupts and switch to polling mode when it sees a bunch of CMCs.
Because disabling CMCs across all CPUs isn't safe in interrupt context,
the disable is done with a schedule_work(). But with continual CMC
interrupts, the schedule_work() never gets executed.
The following patch immediately disables CMC interrupts for the current
CPU. This then allows (at least) one CPU to ignore CMC interrupts,
execute the schedule_work() code, and disable CMC interrupts on the rest
of the CPUs.
Acked-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Bryan Sutula <Bryan.Sutula@hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Linus Torvalds [Thu, 6 Oct 2005 22:01:11 +0000 (15:01 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-ucb
Linus Torvalds [Thu, 6 Oct 2005 22:00:53 +0000 (15:00 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 6 Oct 2005 21:16:19 +0000 (14:16 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 6 Oct 2005 21:16:07 +0000 (14:16 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6
Russell King [Thu, 6 Oct 2005 12:09:42 +0000 (13:09 +0100)]
[MFD] Fix gcc4 build errors in ucb1x00-core.c
drivers/mfd/ucb1x00-core.c:555: error: static declaration of 'ucb1x00_class' follows non-static declaration
drivers/mfd/ucb1x00.h:109: error: previous declaration of 'ucb1x00_class' was here
Since ucb1x00_class isn't used by anything, remove the extern
declaration and the symbol export.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
David S. Miller [Wed, 5 Oct 2005 22:12:00 +0000 (15:12 -0700)]
[SPARC64]: Fix initrd when net booting.
By allocating early memory for the firmware page tables, we
can write over the beginning of the initrd image.
So what we do now is:
1) Read in firmware translations table while still on the
firmware's trap table.
2) Switch to Linux trap table.
3) Init bootmem.
4) Build firmware page tables using __alloc_bootmem().
And this keeps the initrd from being clobbered.
Signed-off-by: David S. Miller <davem@davemloft.net>
Catalin Marinas [Wed, 5 Oct 2005 22:06:36 +0000 (23:06 +0100)]
[ARM] 2954/1: Allow D and I cache and branch prediction disabling for ARMv6
Patch from Catalin Marinas
There is no reason to not allow these config options. They are useful when
the hardware has problems.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Martin Habets [Wed, 5 Oct 2005 19:21:36 +0000 (12:21 -0700)]
[SPARC]: Remove some duplicated sparc32 config items
Remove some duplicated items due to the inclusion of the general
drivers/Kconfig file. These are now taken from drivers/char/Kconfig,
and can be turned off there as well (which is desirable sometimes).
Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ralf Baechle [Wed, 5 Oct 2005 19:16:04 +0000 (12:16 -0700)]
[AX.25]: Fix packet socket crash
Since changeset
98a82febb6340466824c3a453738d4fbd05db81a AX.25 is passing
received IP and ARP packets to the stack through netif_rx() but we don't
set the skb->mac.raw to right value which may result in a crash with
applications that use a packet socket.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu [Wed, 5 Oct 2005 19:15:12 +0000 (12:15 -0700)]
[IPSEC]: Document that policy direction is derived from the index.
Here is a patch that adds a helper called xfrm_policy_id2dir to
document the fact that the policy direction can be and is derived
from the index.
This is based on a patch by YOSHIFUJI Hideaki and
210313105@suda.edu.cn.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
YOSHIFUJI Hideaki [Wed, 5 Oct 2005 19:11:41 +0000 (12:11 -0700)]
[IPV6]: Fix NS handing for proxy/anycast address
Timer set up by pneigh_enqueue() ended up calling ndisc_rcv()
via pndisc_redo(), which clears LOCALLY_ENQUEUED flag in
NEIGH_CB(skb) and NS was queued again.
Let's call ndisc_recv_ns() directly to avoid the loop.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stephen Hemminger [Wed, 5 Oct 2005 19:09:31 +0000 (12:09 -0700)]
[TCP]: BIC coding bug in Linux 2.6.13
Missing parenthesis in causes BIC to be slow in increasing congestion
window.
Spotted by Injong Rhee.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Yan Zheng [Wed, 5 Oct 2005 19:08:13 +0000 (12:08 -0700)]
[MCAST] ipv6: Fix address size in grec_size
Signed-Off-By: Yan Zheng <yanzheng@21cn.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Acked-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Dave Jones [Mon, 3 Oct 2005 19:02:20 +0000 (15:02 -0400)]
[PATCH] Fix drm 'debug' sysfs permissions
Just enables some extra printk's, but still.. Only the sysadmin should
be able to do that.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>