commit 7b7a57c77dccddd84b6aa02a38deee7ad97c977a Merge: 3197dac... e227e8f... Author: Linus Torvalds Date: Tue Jun 19 08:07:52 2007 -0700 Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6 * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6: sh64: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. commit 3197dac24f4f98808a47c68cdb8efeee8539add1 Merge: 710675d... 3aeb884... Author: Linus Torvalds Date: Tue Jun 19 08:07:34 2007 -0700 Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: sh: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. sh: oops_enter()/oops_exit() in die(). sh: Fix restartable syscall arg5 clobbering. commit 710675d3609b1123a40db1eb28bf34041b1d37f2 Merge: a289bbe... dc74d7f... Author: Linus Torvalds Date: Tue Jun 19 08:07:08 2007 -0700 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: [S390] Move psw_set_key. [S390] Add oops_enter()/oops_exit() calls to die(). [S390] Print list of modules on die(). [S390] Fix yet another two section mismatches. [S390] Fix zfcpdump header [S390] Missing blank when appending cio_ignore kernel parameter commit a289bbe27785a5f47dc501fa2bc18edfec147117 Merge: 41e904d... e99f056... Author: Linus Torvalds Date: Tue Jun 19 08:06:25 2007 -0700 Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 * 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6: [XFS] Update the MAINTAINERS file entry for XFS - change git repo name. [XFS] s/memclear_highpage_flush/zero_user_page/ [XFS] Update the MAINTAINERS file entry for XFS. commit dc74d7f996b465d8a95033c753d34c8b4c01c9d7 Author: Heiko Carstens Date: Tue Jun 19 13:10:06 2007 +0200 [S390] Move psw_set_key. Move psw_set_key() from ptrace.h to processor.h which is a more suitable place for it. In addition the moves makes the function invisible to user space. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit bca0fb8683b7406d3056dc53a14b0a482c367e2b Author: Heiko Carstens Date: Tue Jun 19 13:10:05 2007 +0200 [S390] Add oops_enter()/oops_exit() calls to die(). This is mainly to switch off all potentially debugging stuff that won't report anything useful after an oops happened. Besided that setting pause_on_oops will work too, but doesn't make too much sense on s390. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 0fc9bbf771ce7d41ed33300e75e74e922dde1c38 Author: Heiko Carstens Date: Tue Jun 19 13:10:04 2007 +0200 [S390] Print list of modules on die(). Print list of modules on die() like a lot of other architectures do. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 84b36a8e0c863aeea29b62f8411157192481dd2e Author: Heiko Carstens Date: Tue Jun 19 13:10:03 2007 +0200 [S390] Fix yet another two section mismatches. WARNING: arch/s390/kernel/built-in.o(.text+0xb92a): Section mismatch: reference to .init.text:start_secondary (between 'restart_addr' and 'stack_overflow') WARNING: arch/s390/appldata/built-in.o(.data+0xdc): Section mismatch: reference to .init.text: (between 'appldata_nb' and 'appldata_timer_lock') Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit ce4448238aee0144a2458874944df5a5a01a6ac6 Author: Michael Holzheu Date: Tue Jun 19 13:10:02 2007 +0200 [S390] Fix zfcpdump header Added members for volume number and real memory size to header information. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky commit 0a71a312437d444e1a45317823fda8160df37ee4 Author: Michael Holzheu Date: Tue Jun 19 13:10:01 2007 +0200 [S390] Missing blank when appending cio_ignore kernel parameter When appending the 'cio_ignore' kernel parameter to the command line, a blank has to be inserted in order to separate 'cio_ignore' from the preceding kernel parameters. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky commit e99f056b2777f3fc6871ff6347c98c0321ad2f8f Author: Tim Shimmin Date: Tue Jun 19 15:26:35 2007 +1000 [XFS] Update the MAINTAINERS file entry for XFS - change git repo name. Make the git repository bare and so give it the conventional .git suffix. Signed-off-by: Tim Shimmin commit 700716c8468d95ec6d03566a4e4fb576c3223cbc Author: Christoph Hellwig Date: Thu May 24 15:27:17 2007 +1000 [XFS] s/memclear_highpage_flush/zero_user_page/ SGI-PV: 957103 SGI-Modid: xfs-linux-melb:xfs-kern:28678a Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin commit 6a91d25c0243bf20356e51cc5dbb821cc8cc129b Merge: fa490cf... 78bfd36... Author: Tim Shimmin Date: Tue Jun 19 15:06:15 2007 +1000 Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 into for-linus commit 41e904dee22066ae7ac3a7f695b2c8bd43ce4e04 Author: Benjamin Herrenschmidt Date: Tue Jun 19 14:37:39 2007 +1000 [POWERPC] Fix snd-powermac refcounting bugs The old snd-powermac driver has some serious refcounting issues when initialisation fails, which is the case on all new machines with a layout-id since those are handled by the new snd-aoa driver. Some of those bugs seem to have been under the radar for some time (like double pci_dev_put), but one was actually added in 2.6.22 with Stephen attempt at teaching refcounting to the driver which didn't do it at all. This patch fixes both, thus removing all sort of kref errors that would happen if that driver gets loaded on a G5 machine or a recent PowerBook due to OF nodes left around with a 0 refcount. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit e227e8f3ba3bfb8e26fee783026c1425ba600037 Author: Paul Mundt Date: Tue Jun 19 12:41:32 2007 +0900 sh64: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. The current implementation only handles -ERESTARTNOHAND, whereas we also need to handle -ERESTART_RESTARTBLOCK in the handle_signal() case for restartable system calls. Follows the sh change. Signed-off-by: Paul Mundt commit 3aeb884b4ec442719a2d8aa15316415a7412efd8 Author: Paul Mundt Date: Tue Jun 19 12:33:21 2007 +0900 sh: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. The current implementation only handles -ERESTARTNOHAND, whereas we also need to handle -ERESTART_RESTARTBLOCK in the handle_signal() case for restartable system calls. As noted by Carl: This fixes the LTP test nanosleep03 - the current kernel causes -ERESTART_RESTARTBLOCK to reach user space rather than the correct -EINTR. Reported-by: Carl Shaw Signed-off-by: Paul Mundt commit fa490cfd15d7ce0900097cc4e60cfd7a76381138 Author: Linus Torvalds Date: Mon Jun 18 09:34:40 2007 -0700 Fix possible runqueue lock starvation in wait_task_inactive() Miklos Szeredi reported very long pauses (several seconds, sometimes more) on his T60 (with a Core2Duo) which he managed to track down to wait_task_inactive()'s open-coded busy-loop. He observed that an interrupt on one core tries to acquire the runqueue-lock but does not succeed in doing so for a very long time - while wait_task_inactive() on the other core loops waiting for the first core to deschedule a task (which it wont do while spinning in an interrupt handler). This rewrites wait_task_inactive() to do all its waiting optimistically without any locks taken at all, and then just double-check the end result with the proper runqueue lock held over just a very short section. If there were races in the optimistic wait, of a preemption event scheduled the process away, we simply re-synchronize, and start over. So the code now looks like this: repeat: /* Unlocked, optimistic looping! */ rq = task_rq(p); while (task_running(rq, p)) cpu_relax(); /* Get the *real* values */ rq = task_rq_lock(p, &flags); running = task_running(rq, p); array = p->array; task_rq_unlock(rq, &flags); /* Check them.. */ if (unlikely(running)) { cpu_relax(); goto repeat; } /* Preempted away? Yield if so.. */ if (unlikely(array)) { yield(); goto repeat; } Basically, that first "while()" loop is done entirely without any locking at all (and doesn't check for the case where the target process might have been preempted away), and so it's possibly "incorrect", but we don't really care. Both the runqueue used, and the "task_running()" check might be the wrong tests, but they won't oops - they just mean that we could possibly get the wrong results due to lack of locking and exit the loop early in the case of a race condition. So once we've exited the loop, we then get the proper (and careful) rq lock, and check the running/runnable state _safely_. And if it turns out that our quick-and-dirty and unsafe loop was wrong after all, we just go back and try it all again. (The patch also adds a lot of comments, which is the actual bulk of it all, to make it more obvious why we can do these things without holding the locks). Thanks to Miklos for all the testing and tracking it down. Tested-by: Miklos Szeredi Acked-by: Ingo Molnar Signed-off-by: Linus Torvalds commit a0f98a1cb7d27c656de450ba56efd31bdc59065e Author: Ingo Molnar Date: Sun Jun 17 18:37:45 2007 +0200 sched: fix SysRq-N (normalize RT tasks) Gene Heskett reported the following problem while testing CFS: SysRq-N is not always effective in normalizing tasks back to SCHED_OTHER. The reason for that turns out to be the following bug: - normalize_rt_tasks() uses for_each_process() to iterate through all tasks in the system. The problem is, this method does not iterate through all tasks, it iterates through all thread groups. The proper mechanism to enumerate over all threads is to use a do_each_thread() + while_each_thread() loop. Reported-by: Gene Heskett Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 4cc21505a09354ade787de368bd697a1bba3b213 Merge: caec4e8... 204abf2... Author: Linus Torvalds Date: Mon Jun 18 10:38:09 2007 -0700 Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] ESP: Don't forget to clear ESP_FLAG_RESETTING. [SCSI] fusion: fix for BZ 8426 - massive slowdown on SCSI CD/DVD drive commit caec4e8dc85e0644ec24aeb36285e1ba02da58cc Author: Benjamin Herrenschmidt Date: Tue Jun 12 08:16:18 2007 +1000 Fix signalfd interaction with thread-private signals Don't let signalfd dequeue private signals off other threads (in the case of things like SIGILL or SIGSEGV, trying to do so would result in undefined behaviour on who actually gets the signal, since they are force unblocked). Signed-off-by: Benjamin Herrenschmidt Acked-by: Davide Libenzi Signed-off-by: Linus Torvalds commit bd197234b0a616c8f04f6b682326a5a24b33ca92 Author: Thomas Gleixner Date: Sun Jun 17 21:11:10 2007 +0200 Revert "futex_requeue_pi optimization" This reverts commit d0aa7a70bf03b9de9e995ab272293be1f7937822. It not only introduced user space visible changes to the futex syscall, it is also non-functional and there is no way to fix it proper before the 2.6.22 release. The breakage report ( http://lkml.org/lkml/2007/5/12/17 ) went unanswered, and unfortunately it turned out that the concept is not feasible at all. It violates the rtmutex semantics badly by introducing a virtual owner, which hacks around the coupling of the user-space pi_futex and the kernel internal rt_mutex representation. At the moment the only safe option is to remove it fully as it contains user-space visible changes to broken kernel code, which we do not want to expose in the 2.6.22 release. The patch reverts the original patch mostly 1:1, but contains a couple of trivial manual cleanups which were necessary due to patches, which touched the same area of code later. Verified against the glibc tests and my own PI futex tests. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Acked-by: Ulrich Drepper Cc: Pierre Peiffer Signed-off-by: Linus Torvalds commit 5527398218aae85f37552a69fad163fa500c39e4 Author: Paul Mundt Date: Mon Jun 18 18:57:13 2007 +0900 sh: oops_enter()/oops_exit() in die(). As Russell helpfully pointed out on linux-arch: http://marc.info/?l=linux-arch&m=118208089204630&w=2 We were missing the oops_enter/exit() in the sh die() implementation. As we do support lockdep, it's beneficial to add these calls so lockdep properly disables itself in the die() case. Signed-off-by: Paul Mundt commit 69a331470ff02561cf1898eeb152ccca9f22bf53 Author: Kaz Kojima Date: Mon Jun 18 10:08:20 2007 +0900 sh: Fix restartable syscall arg5 clobbering. We use R0 as the 5th argument of syscall. When the syscall restarts after signal handling, we should restore the old value of R0. The attached patch does it. Without this patch, I've experienced random failures in the situation which signals are issued frequently. Signed-off-by: Kaz Kojima Signed-off-by: Paul Mundt commit 204abf28679cd55a8e254b18965583bb1c8bc739 Author: Thomas Bogendoerfer Date: Wed Jun 13 12:58:53 2007 -0700 [SCSI] ESP: Don't forget to clear ESP_FLAG_RESETTING. esp_reset_cleanup() does everything necessary except clear the flag, so we never exit resetting state. Signed-off-by: David S. Miller Signed-off-by: James Bottomley commit 78bfd36169398bfc07bca218952a429bf301bc55 Author: Timothy Shimmin Date: Mon Jun 11 20:42:09 2007 -0700 [XFS] Update the MAINTAINERS file entry for XFS. Remove David Chatterton from XFS entry in MAINTAINERS file. Signed-off-by: Tim Shimmin commit 29982e9acd3e81a289c73321401427d02eaa8adc Author: Doug Chapman Date: Mon May 7 15:59:46 2007 -0400 [SCSI] fusion: fix for BZ 8426 - massive slowdown on SCSI CD/DVD drive Patch for: http://bugzilla.kernel.org/show_bug.cgi?id=8426 A recent code cleanup that moved code from mptscsih to mptspi inadvertently change the order some code was called. This caused a massive slowdown (of 150x to 300x) on the CD/DVD drive on the high-end HP Integrity servers. Signed-off-by: Doug Chapman Acked-by: Eric Moore Signed-off-by: James Bottomley