commit 189548642c5962e60c3667bdb3a703fe0bed12a6 Author: Linus Torvalds Date: Sun Jun 24 16:21:48 2007 -0700 Linus 2.6.22-rc6 commit a06381fec77bf88ec6c5eb6324457cb04e9ffd69 Author: Thomas Gleixner Date: Sat Jun 23 11:48:40 2007 +0200 FUTEX: Restore the dropped ERSCH fix The return value of futex_find_get_task() needs to be -ESRCH in case that the search fails. This was part of the original futex fixes and got accidentally dropped, when the futex-tidy-up patch was split out. Signed-off-by: Thomas Gleixner Cc: Ingo Molnar Cc: Stable Team Signed-off-by: Linus Torvalds commit c8cbee61c9d53ee28473ad33bbb54f6a88f5e3af Author: Tian Kevin Date: Sat Jun 23 17:16:52 2007 -0700 ACPI: preserve the ebx value in acpi_copy_wakeup_routine Register %ebx serves as the "global offset table base register" for position-independent code. For absolute code, %ebx serves as a local register and has no specified role in the function calling sequence. In either case, a function must preserve the register value for the caller. acpi_copy_wakeup_routine overrides %ebx without saving it, this may corrupt the called data. Kevin found that most time the value of Sx is saved in %esi, however sometimes compiler also uses %ebx. When this happens, suspends fails since sleep value in ebx is changed by acpi_copy_wakeup_routine. The same funtion in X86_64 doesn't have this problem. Signed-off-by: Zhang Rui Looks-okay-to: Pavel Machek Signed-off-by: Rafael J. Wysocki Cc: Len Brown Acked-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e5d2861f31474b373ce7754dc5122b414a176c64 Author: Kirill Korotaev Date: Sat Jun 23 17:16:51 2007 -0700 ext4: lost brelse in ext4_read_inode() One of error path in ext4_read_inode() leaks bh since brelse is forgoten. Signed-off-by: Kirill Korotaev Acked-by: Vasily Averin Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e4a10a362cd1df6c23fe46f449d36b3f712e2824 Author: Kirill Korotaev Date: Sat Jun 23 17:16:48 2007 -0700 ext3: lost brelse in ext3_read_inode() One of error path in ext3_read_inode() leaks bh since brelse is forgoten. Signed-off-by: Kirill Korotaev Acked-by: Vasily Averin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7b018b2888b32284e09bba9cccb5cd2e12199feb Author: Tony Jones Date: Sat Jun 23 17:16:47 2007 -0700 audit: fix oops removing watch if audit disabled Removing a watched file will oops if audit is disabled (auditctl -e 0). To reproduce: - auditctl -e 1 - touch /tmp/foo - auditctl -w /tmp/foo - auditctl -e 0 - rm /tmp/foo (or mv) Signed-off-by: Tony Jones Cc: Al Viro Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 266f5aa0970409bf1ebdf9fc4e65a1186eeed3c2 Author: Carsten Otte Date: Sat Jun 23 17:16:46 2007 -0700 ext2: disallow setting xip on remount Yan Zheng pointed out that ext2_remount lacks checking if -o xip should be enabled or not. This patch checks for presence of direct_access on the backing block device and if the blocksize meets the requirements. Signed-off-by: Carsten Otte Cc: Yan Zheng Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4f84e4be53a04a65d97bf0faa0c8f99e29bc0170 Author: Joshua Wise Date: Sat Jun 23 17:16:45 2007 -0700 x86_64: fix misplaced `continue' in mce.c Background: When a userspace application wants to know about machine check events, it opens /dev/mcelog and does a read(). Usually, we found that this interface works well, but in some cases, when the system was taking large numbers of machine check exceptions, the read() would hang. The system would output a soft-lockup warning, and the daemon reading from /dev/mcelog would suck up as much of a single CPU as it could spinning in system space. Description: This patch fixes this bug. In particular, there was a "continue" inside a timeout loop that presumably was intended to break out of the outer loop, but instead caused the inner loop to continue. This patch also makes the condition for the break-out a little more evident by changing a !time_before to a time_after_eq. Result: The read() no longer hangs in this test case. Testing: On my system, I could replicate the bug with the following command: # for i in `seq 15000`; do ./inject_sbe.sh; done where inject_sbe.sh contains commands to inject a single-bit error into the next memory write transaction. Patch: This patch is against git f1518a088bde6aea49e7c472ed6ab96178fcba3e. Signed-off-by: Joshua Wise Signed-off-by: Tim Hockin Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8aaf12142d066d3982475d58a9094c85a06a5a9 Author: Andy Whitcroft Date: Sat Jun 23 17:16:44 2007 -0700 update checkpatch.pl to version 0.06 Update to checkpatch.pl v0.06. Of note: - do { and else handled correctly as control structures for { matching - trailing whitespace correctly tripped when line otherwise empty - support for const, including const foo * const bar - multiline macros defining values correctly reported This version of checkpatch.pl can be found at the following URL: http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/checkpatch.pl-0.06 Full Changelog: Andy Whitcroft (14): Version: 0.06 cleanup the Type regular expression declarations fix up block counting end of line counts as a space for ++ and -- do { needs the same checks as if, for et al handle "const foo * const a" as a valid type add spacing checks following ; complete whitespace lines should trip trailing whitespace check else is also a block control structure badly formatted else can trip function declaration detect and report trailing statements after else types need to be terminated by a boundary multiline macros defining values should be surrounded by parentheses soften the wording of the Signed-off-by: warnings Signed-off-by: Andy Whitcroft Cc: "Randy.Dunlap" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit debee0768ea1978c6efba03206a414685e4a9ed1 Author: Christoph Lameter Date: Sat Jun 23 17:16:43 2007 -0700 slab allocators: MAX_ORDER one off fix MAX_ORDER is the first order that is not possible. Use MAX_ORDER - 1 to calculate the larges possible object size in slab.h Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 71c42157904404a37f89fff3b2536c55115823a5 Author: Dave Hansen Date: Sat Jun 23 17:16:42 2007 -0700 document nlink function These should have been documented from the beginning. Fix it. Signed-off-by: Dave Hansen Cc: Al Viro Cc: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0faa45480261a52323fe88bfab6aea1e8eb87b65 Author: Jonathan Corbet Date: Sat Jun 23 17:16:41 2007 -0700 "volatile considered harmful" Encourage developers to avoid the volatile type class in kernel code. Signed-off-by: Jonathan Corbet Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4c18a325645bf98850ca84037fff05de1836e785 Author: Jeff Dike Date: Sat Jun 23 17:16:39 2007 -0700 uml: add asm/paravirt.h Add asm-um/paravirt.h so that i386 headers that get pulled into UML don't cause build failures when they want asm/paravirt.h. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 08932a198345c80d20cfa055a45464cebb9ff93b Author: Nick Piggin Date: Sat Jun 23 17:16:37 2007 -0700 uml: use generic BUG Get UML to use the generic bug support rather than arch specific one. If I insert an artificial bug right before loading init, I get this: Kernel panic - not syncing: Kernel mode signal 4 EIP: 0023:[<0819d501>] CPU: 0 Not tainted ESP: 002b:f7fd4fbc EFLAGS: 00000246 Not tainted EAX: 00000000 EBX: 00007870 ECX: 00000013 EDX: 00007870 ESI: 0000786d EDI: 00000011 EBP: f7fd4fd8 DS: 002b ES: 002b 08273bec: [<0806e814>] show_regs+0x104/0x106 08273c08: [<08058927>] panic_exit+0x2c/0x4b 08273c18: [<08080ee7>] notifier_call_chain+0x32/0x5b 08273c38: [<08080fbd>] __atomic_notifier_call_chain+0x30/0x32 08273c54: [<08080fee>] atomic_notifier_call_chain+0x2f/0x31 08273c70: [<08073b88>] panic+0x75/0x131 08273c94: [<080586c7>] relay_signal+0x87/0x95 08273cb0: [<0806b9ee>] sig_handler_common_skas+0x9e/0x120 08273cd8: [<08067738>] sig_handler+0x28/0x4f 08273cec: [<0806792e>] handle_signal+0x53/0x89 08273d0c: [<08069f60>] hard_handler+0x18/0x28 08273d1c: [] transitions+0xf7d598b8/0xfffffff0 With this patch in place, this is how it looks: BUG: failure at init/main.c:779/init_post()! Kernel panic - not syncing: BUG! EIP: 0023:[<081a65d1>] CPU: 0 Not tainted ESP: 002b:f7f0dfbc EFLAGS: 00000246 Not tainted EAX: 00000000 EBX: 000069db ECX: 00000013 EDX: 000069db ESI: 000069d8 EDI: 00000011 EBP: f7f0dfd8 DS: 002b ES: 002b 098efedc: [<0806e9a4>] show_regs+0x104/0x106 098efef8: [<080589c7>] panic_exit+0x2c/0x4b 098eff08: [<080818d7>] notifier_call_chain+0x32/0x5b 098eff28: [<080819ad>] __atomic_notifier_call_chain+0x30/0x32 098eff44: [<080819de>] atomic_notifier_call_chain+0x2f/0x31 098eff60: [<08073f28>] panic+0x75/0x131 098eff84: [<080541d5>] init_post+0xcd/0xe8 098eff9c: [<08048ad4>] kernel_init+0x8e/0x9a 098effb4: [<08066dee>] run_kernel_thread+0x41/0x53 098effe0: [<08058e75>] new_thread_handler+0x62/0x8b 098efffc: [] 0xa55a5a5a [ jdike - added BUG_TABLE to linker script ] Signed-off-by: Nick Piggin Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b08b5ad9473a972fdd5d739080d24a84b23525ac Author: Ingo Korb Date: Sat Jun 23 17:16:35 2007 -0700 Char: stallion, fix oops during init with ISA cards The stallion driver oopses while initializing ISA cards due to an uninitialized variable. This patch changes the initialisation order to match the PCI code path. Signed-off-by: Ingo Korb Acked-by: Jiri Slaby Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 58ed2f9c75b719da4f494f24ed2d56d45f5b4959 Author: Ivan Kokshaysky Date: Sat Jun 23 17:16:35 2007 -0700 alpha: fix alignment problem in csum_ipv6_magic() Hopefully this fixes http://bugzilla.kernel.org/show_bug.cgi?id=8635 The struct in6_addr passed to csum_ipv6_magic() is 4 byte aligned, so we can't use the regular 64-bit loads. Since the cost of handling of 4 byte and 1 byte aligned 64-bit data is roughly the same, this code can cope with any src/dst [mis]alignment. Signed-off-by: Ivan Kokshaysky Cc: Richard Henderson Cc: Dustin Marquess Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 653d4876b730fedca8473481863cf700245e3582 Author: Andy Whitcroft Date: Sat Jun 23 17:16:34 2007 -0700 update checkpatch.pl to version 0.05 This version brings a some new tests, and a host of changes to fix false positives, of particular note: - detect 'var ++;' and 'var --;' as a bad combination - multistatement #defines are now checked based on statement count - multistatement #defines with initialisation correctly reported - checks the location of the inline keywords - EXPORT_SYMBOL for variables are now understood - typedefs are loosened to handle sparse etc This version of checkpatch.pl can be found at the following URL: http://www.shadowen.org/~apw/public/checkpatch/checkpatch.pl-0.05 Full Changelog: Andy Whitcroft (18): Version: 0.05 macro definition checks should be for a single statement avoid assignements only in if conditionals declarations of function pointers need no space multiline macros which are purely initialisation cannot be wrapped EXPORT_SYMBOL can also directly follow a variable definition check on the location of the inline keyword EXPORT_SYMBOL needs to allow for attributes ensure we do not find C99 // in strings handle malformed #include lines accept the {0,} form typedefs are sensible for defining function pointer parameters ensure { handling correctly handles nested switch() statements trailing whitespace checks are not anchored typedefs for sparse bitwise annotations make sense update the type matcher to include sparse annotations clean up indent and spacing Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 92c4ca5c3a5e180e9762438db235f41d192cb955 Author: Christoph Lameter Date: Sat Jun 23 17:16:33 2007 -0700 sched: fix next_interval determination in idle_balance() The intervals of domains that do not have SD_BALANCE_NEWIDLE must be considered for the calculation of the time of the next balance. Otherwise we may defer rebalancing forever. Siddha also spotted that the conversion of the balance interval to jiffies is missing. Fix that to. From: Srivatsa Vaddagiri also continue the loop if !(sd->flags & SD_LOAD_BALANCE). Tested-by: Paul E. McKenney It did in fact trigger under all three of mainline, CFS, and -rt including CFS -- see below for a couple of emails from last Friday giving results for these three on the AMD box (where it happened) and on a single-quad NUMA-Q system (where it did not, at least not with such severity). Signed-off-by: Christoph Lameter Signed-off-by: Ingo Molnar Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 849663430268db63a9c3c7467984e4e530ded901 Author: Christoph Lameter Date: Sat Jun 23 17:16:32 2007 -0700 SLUB: fix behavior if the text output of list_locations overflows PAGE_SIZE If slabs are allocated or freed from a large set of call sites (typical for the kmalloc area) then we may create more output than fits into a single PAGE and sysfs only gives us one page. The output should be truncated. This patch fixes the checks to do the truncation properly. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1e27dbe7746f3bcbcf1f9a37f31df4b886e36ce3 Author: Ben Dooks Date: Sat Jun 23 17:16:31 2007 -0700 SM501: Check SM501 ID register on initialisation When binding the driver, check the ID register for a valid identity, in case the SM501 is not functioning correctly. Signed-off-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ffd65af0e67a054e1e2393c9b0995c03c47cdc30 Author: Ben Dooks Date: Sat Jun 23 17:16:31 2007 -0700 SM501: Add Documentation/SM501.txt Add documentation for the SM501 in Documentation/SM501.txt outlining the SM501 driver. Signed-off-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 819062219abf8a78e54cad5c1c8716e6c8e7b870 Author: Ben Dooks Date: Sat Jun 23 17:16:30 2007 -0700 SM501: Clock updates and checks Ensure that the M1XCLK and MCLK are sourced from the same PLL (and refuse to bind the driver if they are not). Update the PCI to safe initialisation values, as 72MHz is the maximum clock for 33MHz PCI bus mastering. Signed-off-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5136237bc392413332b02e69ada158c307da658f Author: Ben Dooks Date: Sat Jun 23 17:16:29 2007 -0700 SM501: Fix sm501_init_reg() mask/set order The order of the set and mask operation in sm501_init_reg() was setting and then masking the bits set. Correct the order so that we do not end up with 288MHz SDRAM clocks on certain systems. Signed-off-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b5913bbd2ddebd9c2c6841986c29376e691dd396 Author: Ben Dooks Date: Sat Jun 23 17:16:29 2007 -0700 SM501: initialise SDRAM clock before bus clocks This init sequence of setting the SDRAM clock before the bus clock is recommend by Silicon Motion to stop problems with writes not sticking into registers. Signed-off-by: Vincent Sanders Signed-off-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 331d74750e69a2202f857d3af9323335d0d6879f Author: Ben Dooks Date: Sat Jun 23 17:16:28 2007 -0700 SM501: suspend support This patch adds support for suspending the core (mfd driver) of the SM501. Signed-off-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1ed8a2b3c501bedd4b35130c8a52662ccf78abad Author: Egmont Koblinger Date: Sat Jun 23 17:16:27 2007 -0700 console UTF-8 fixes (fix) Recently my console UTF-8 patch went mainline. Here is an additional patch that fixes two nasty issues and improves a third one, namely: 1. My patch changed the behavior if a glyph is not found in the Unicode mapping table. Previously for Unicode values less than 256 or 512 the kernel tried to display the glyph from that position of the glyph table, which could lead to a different accented letter being displayed. I removed this fallback possibility and changed it to display the replacement symbol. As Behdad pointed out, some fonts (e.g. sun12x22 from the kbd package) lack Unicode mapping information, hence all you get is lots of question marks. Though theoretically it's actually a user-space bug (the font should be fixed), Behdad and I both believe that it'd be good to work around in the kernel by re-introducing the fallback solution for ASCII characters only. This sounds a quite reasonable decision, since all fonts ship the ASCII characters in the first 128 positions. This way users won't be surprised by lots of question marks just because s/he issued a not-so-perfectly parameterized setfont command. As this fallback is only re-introduced for code points below 128, you still won't see an accented letter replaced by another, but at least you'll always get the English letters right. 2. My patch introduced "question mark with inverted color attributes" as a last resort fallback glyph. Though it perfectly works on VGA console, on framebuffer you may end up with question marks that are highlighed but shouldn't be, and normal characters that are accidentally highlighed. This is caused by missing FLUSHes when changing the color attribute. 3. I've updated the table of double-width character based on Markus's updated version. Only ten new code poings (one interval) is added. Signed-off-by: Egmont Koblinger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4e71e474c784dc274f28ec8bb22a5dbabc6dc7c5 Author: Cedric Le Goater Date: Sat Jun 23 17:16:25 2007 -0700 fix refcounting of nsproxy object when unshared When a namespace is unshared, a refcount on the previous nsproxy is abusively taken, leading to a memory leak of nsproxy objects. Signed-off-by: Cedric Le Goater Cc: Badari Pulavarty Cc: Herbert Poetzl Cc: Oleg Nesterov Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6d79af701d334777541136e914a9c0969b2ad307 Author: Jean Delvare Date: Sat Jun 23 17:16:24 2007 -0700 hwmon/coretemp: fix a broken error path Signed-off-by: Jean Delvare Cc: Rudolf Marek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5b5a60da281c767196427ce8144deae6ec46b389 Author: Olaf Kirch Date: Sat Jun 23 23:11:52 2007 -0700 [NET]: Make skb_seq_read unmap the last fragment Having walked through the entire skbuff, skb_seq_read would leave the last fragment mapped. As a consequence, the unwary caller would leak kmaps, and proceed with preempt_count off by one. The only (kind of non-intuitive) workaround is to use skb_seq_read_abort. This patch makes sure skb_seq_read always unmaps frag_data after having cycled through the skb's paged part. Signed-off-by: Olaf Kirch Signed-off-by: David S. Miller commit 515e06c4556bd8388db6b2bb2cd8859126932946 Author: Shannon Nelson Date: Sat Jun 23 23:09:23 2007 -0700 [NET]: Re-enable irqs before pushing pending DMA requests This moves the local_irq_enable() call in net_rx_action() to before calling the CONFIG_NET_DMA's dma_async_memcpy_issue_pending() rather than after. This shortens the irq disabled window and allows for DMA drivers that need to do their own irq hold. Signed-off-by: Shannon Nelson Signed-off-by: David S. Miller commit ddb61a57bb6df673986e6476407f97d28b02031f Author: Jens Axboe Date: Sat Jun 23 23:07:50 2007 -0700 [TCP] tcp_read_sock: Allow recv_actor() return return negative error value. tcp_read_sock() currently assumes that the recv_actor() only returns number of bytes copied. For network splice receive, we may have to return an error in some cases. So allow the actor to return a negative error value. Signed-off-by: Jens Axboe Signed-off-by: David S. Miller commit 4b2a8fb3a7f7935f62a7bbdc851789fb7c2da032 Author: Konstantin Sharlaimov Date: Sat Jun 23 23:05:54 2007 -0700 [PPP]: Fix osize too small errors when decoding mppe. The mppe_decompress() function required a buffer that is 1 byte too small when receiving a message of mru size. This fixes buffer allocation to prevent this from occurring. Signed-off-by: Konstantin Sharlaimov Signed-off-by: David S. Miller commit 7e4a6da7c2a1e0df06b71dc4ddc31910229ba9d9 Author: David S. Miller Date: Sat Jun 23 23:04:11 2007 -0700 [PPP]: Revert 606f585e363527da9feaed79465132c0c661fd9e This can cause packet buffer overflows in certain cases, the real bug will be fixed differently in a followon changeset. Signed-off-by: David S. Miller commit 64beb8f3eb3c724add64ca3272915528e10213c1 Author: Florian Westphal Date: Sat Jun 23 22:59:40 2007 -0700 [TIPC]: Fix infinite loop in netlink handler The tipc netlink config handler uses the nlmsg_pid from the request header as destination for its reply. If the application initialized nlmsg_pid to 0, the reply is looped back to the kernel, causing hangup. Fix: use nlmsg_pid of the skb that triggered the request. Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit dbbeb2f9917792b989b6269ebfe24257f9aa1618 Author: Patrick McHardy Date: Sat Jun 23 22:58:34 2007 -0700 [SKBUFF]: Fix incorrect config #ifdef around skb_copy_secmark secmark doesn't depend on CONFIG_NET_SCHED. Signed-off-by: Patrick McHardy Acked-by: James Morris Signed-off-by: David S. Miller commit d5a3d32a042126f65a008e0e5204ef92ad2ee55d Author: Venkatesh Pallipadi Date: Fri Jun 15 19:36:00 2007 -0400 ACPI: fix 2.6.20 SMP boot regression Always disable/enable interrupts in the acpi idle routine, even in the error path. This is required as the 2.6.20 change in git commit d331e739f5ad2aaa9... "Fix interrupt race in idle callback" expects the idle handler to enable interrupt before returning. There was a case in acpi idle routine, in which interrupt was not being enabled before return, which caused the system to hang at bootup, while enabling C-states on an SMP system. The signature of the hang was that "processor.nocst" was required to enable boot. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Len Brown commit af6f2b2b5ce478d77a34497f9058bc65093c761a Author: Haavard Skinnemoen Date: Sat Jun 23 15:43:48 2007 +0200 [AVR32] Update defconfigs Update defconfigs for ATNGW100 and ATSTK1002. This will enable the SLUB allocator by default on both, and will enable NFS root on ATSTK1002 (ATNGW100 had it enabled before.) Signed-off-by: Haavard Skinnemoen commit 6b84bbfc7133ee493f3e9529a42b5ee53ea69dfe Author: David Brownell Date: Fri Jun 22 19:17:57 2007 -0700 [AVR32] Initialize dma_mask and dma_coherent_mask The current at32ap7000 platform devices aren't declared as supporting DMA, so that layered drivers can't tell whether they need to manage DMA. This patch makes all those platform devices report that they support DMA. Most do, but in a few cases this is inappropriate. Signed-off-by: David Brownell Signed-off-by: Haavard Skinnemoen commit 7f8b9acae8a76fcce5f4af0dfac735a1b7b4fdbf Author: ben.nizette@iinet.net.au Date: Wed Jun 20 20:44:30 2007 +0800 [AVR32] NGW100, Remove relics of the old USART mapping scheme USART mapping used to be accomplished by the manual filling of at32_usart_map[] and at32_nr_usarts. This has now been replaced with at32_map_usart() so we can remove these variables. Signed-off-by: Ben Nizette Signed-off-by: Haavard Skinnemoen commit ab61f7d21ab7f564fce322c498e4a7d6171140db Author: Haavard Skinnemoen Date: Mon Jun 18 14:08:18 2007 +0200 [AVR32] Fix bug in invalidate_dcache_region() If (start + size) is not cacheline aligned and (start & mask) > (end & mask), the last but one cacheline won't be invalidated as it should. Fix this by rounding `end' down to the nearest cacheline boundary if it gets adjusted due to misalignment. Also flush the write buffer unconditionally -- if the dcache wrote back a line just before we invalidated it, the dirty data may be sitting in the write buffer waiting to corrupt our buffer later. Signed-off-by: Haavard Skinnemoen commit 75154f402ef18e459ff97ddece25656b6c2b329c Author: Andi Kleen Date: Sat Jun 23 02:29:25 2007 +0200 x86_64: Ignore compat mode SYSCALL when IA32_EMULATION is not defined Previously a program could switch to a compat mode segment and then execute SYSCALL and it would jump to an uninitialized MSR and crash the kernel. Instead supply a dummy target for this case. Pointed out by Jan Beulich Cc: jbeulich@novell.com Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit e2f1f19272f8de0374ad297b9806f8b6509e0013 Author: Olaf Hering Date: Sat Jun 23 02:29:24 2007 +0200 x86_64: Fix only make Macintosh drivers default on Macs Include PPC_MAC in the default too, not only MAC which only covers m68k MACs. Signed-off-by: Olaf Hering Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 9d9bbd4d247a674deb43565582151acdc22e90d1 Author: Andi Kleen Date: Sat Jun 23 02:29:23 2007 +0200 i386: Make CMPXCHG64 only dependent on PAE It is only used for PAE kernels in set_64bit. The problem is that due to a old Windows bug many CPUs need magic MSRs to enable CMPXCHG64, and we can't do that nicely early enough before it is potentially used. But since we only need it in PAE kernels so only force the checking for CMPXCHG65 with PAE. This fixes a boot failure on Transmeta Crusoe Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 8bfe6d68391af6171df789124fc3dfefeb392d9c Author: Satyam Sharma Date: Fri Jun 22 17:04:27 2007 -0700 [IPV4]: include sysctl.h from inetdevice.h When CONFIG_INET=y and CONFIG_SYSCTL=n: In file included from net/core/netpoll.c:16: include/linux/inetdevice.h:15: error: '__NET_IPV4_CONF_MAX' undeclared here (not in a function) make[2]: *** [net/core/netpoll.o] Error 1 make[1]: *** [net/core] Error 2 make: *** [net] Error 2 So #include sysctl.h from inetdevice.h. Signed-off-by: Satyam Sharma Signed-off-by: David S. Miller commit 6d5b78cdd5a17665674429400b3ed10e3ec60684 Author: YOSHIFUJI Hideaki Date: Fri Jun 22 16:07:04 2007 -0700 [IPV6] NDISC: Fix thinko to control Router Preference support. Bug reported by Haruhito Watanabe . Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller commit e2d8e314ad18d4302b3b7ea21ab8b2cb72f2b152 Author: Yasuyuki Kozakai Date: Fri Jun 22 14:10:22 2007 -0700 [NETFILTER]: nfctnetlink: Don't allow to change helper There is no realistic situation to change helper (Who wants IRC helper to track FTP traffic ?). Moreover, if we want to do that, we need to fix race issue by nfctnetlink and running helper. That will add overhead to packet processing. It wouldn't pay. So this rejects the request to change helper. The requests to add or remove helper are accepted as ever. Signed-off-by: Yasuyuki Kozakai Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit d258131aaea8a3979f82c0313b9a583130b29981 Author: Jerome Borsboom Date: Fri Jun 22 14:08:17 2007 -0700 [NETFILTER]: nf_conntrack_sip: add missing message types containing RTP info Signed-off-by: Jerome Borsboom Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit 0864a4e201b1ea442f4c8b887418a29f67e24d30 Author: Arjan van de Ven Date: Wed Jun 20 22:23:21 2007 -0700 Allow DEBUG_RODATA and KPROBES to co-exist Do not mark the kernel text read only if KPROBES is in the kernel; kprobes needs to hot-patch the kernel text to insert it's instrumentation. In this case, only mark the .rodata segment as read only. Signed-off-by: Arjan van de Ven Tested-by: S. P. Prasanna Cc: Andi Kleen Cc: William Cohen Cc: Ian McDonald Signed-off-by: Linus Torvalds commit 58229a18994215bbfe0bcd1c99d2e039f30b076b Author: Thomas Gleixner Date: Thu Jun 21 20:45:15 2007 +0000 posix-timers: Prevent softirq starvation by small intervals and SIG_IGN posix-timers which deliver an ignored signal are currently rearmed in the timer softirq: This is necessary because the timer needs to be delivered again when SIG_IGN is removed. This is not a problem, when the interval is reasonable. With high resolution timers enabled one might arm a posix timer with a very small interval and ignore the signal. This might lead to a softirq starvation when the interval is so small that the timer is requeued onto the softirq pending list right away. This problem was pointed out by Jan Kiszka. Thanks Jan ! The correct solution would be to stop the timer, when the signal is ignored and rearm it when SIG_IGN is removed. Unfortunately this requires modification in sigaction and involves non trivial sighand locking. It's too late in the release cycle for such a change. For now we just keep the timer running and enforce that the timer only fires every jiffie. This does not break anything as we keep the overrun counter correct. It adds a little inaccuracy to the timer_gettime() interface, but... The more complex change is necessary anyway to fix another short coming of the current implementation, which I discovered while looking at this problem: A pending signal is discarded when SIG_IGN is set. In case that a posixtimer signal is pending then it is discarded as well, but when SIG_IGN is removed later nothing rearms the timer. This is not new, it's that way since posix timers have been merged. So nothing to worry about right now. I have a working solution to fix all of this, but the impact is too large for both stable and 2.6.22. I'm going to send it out for review in the next days. This should go into 2.6.21.stable as well. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Cc: Jan Kiszka Cc: Ulrich Drepper Cc: Stable Team Signed-off-by: Linus Torvalds commit b9bae3402572dc50a1e084c5b1ae5117918ef0f0 Author: Hugh Dickins Date: Thu Jun 21 23:27:45 2007 +0100 page_mapping must avoid slub pages Nicolas Ferre reports oops from flush_dcache_page() on ARM when using SLUB: which reuses page->mapping as page->slab. The page_mapping() function, used by ARM and PA-RISC flush_dcache_page() implementations, must not confuse SLUB pages with those which have page->mapping set. Signed-off-by: Hugh Dickins Cc: Nicolas Ferre Cc: Christoph Lameter Cc: Andrew Morton Signed-off-by: Linus Torvalds commit 05dc16d6a175139a5872d08db56ee277ec90df5b Author: Randolph Chung Date: Tue Jun 12 14:27:32 2007 +0800 [PARISC] unwinder improvements Add special-case handling for "handle_interruption" so that we can rewind past the interruption. This is useful for seeing what caused a BUG() or WARN_ON(); otherwise the unwind stops at the interruption. Signed-off-by: Randolph Chung Signed-off-by: Kyle McMartin commit e036306aa1832963cd147849b282259a32f5ac08 Author: Randolph Chung Date: Tue Jun 12 14:27:32 2007 +0800 [PARISC] Fix unwinder on 64-bit kernels The unwinder was broken by the shift of PAGE_OFFSET in order to increase the size of the vmalloc area on 64-bit kernels. Signed-off-by: Randolph Chung Signed-off-by: Kyle McMartin commit 06b32f3ab6df4c7489729f94bdc7093c72681d4b Author: Helge Deller Date: Tue Dec 19 19:28:33 2006 +0100 [PARISC] Handle wrapping in expand_upwards() Function expand_upwards() did not guarded against wrapping around to address 0. This fixes the adjtimex02 testcase from the Linux Test Project on a 32bit PARISC kernel. [expand_upwards is only used on parisc and ia64; it looks like it does the right thing on both. --kyle] Signed-off-by: Helge Deller Cc: Tony Luck Signed-off-by: Kyle McMartin commit d2f1c0fa2b346769ac35559ae3bafccf151dd446 Author: Julian Stecklina Date: Mon Jun 18 19:56:28 2007 +0200 [PARISC] stop lcd driver from stripping initial whitespace Signed-off-by: Julian Stecklina Signed-off-by: Kyle McMartin commit c8681f14013d3ad2fc4fb4e30cfd4ea548f7a249 Author: Jack Morgenstein Date: Thu Jun 21 13:39:10 2007 -0700 IB/mlx4: Correct max_srq_wr returned from mlx4_ib_query_device() We need to keep a spare entry in the SRQ so that there always is a next WQE available when posting receives (so that we can tell the difference between a full queue and an empty queue). So subtract 1 from the value HW gives us before reporting the limit on SRQ entries to consumers. Found by Mellanox QA. Signed-off-by: Jack Morgenstein Signed-off-by: Roland Dreier commit 13ef5f44c3931dff1d75443a875e97b588d4b8f0 Author: Roland Dreier Date: Thu Jun 21 13:39:08 2007 -0700 IPoIB/cm: Remove dead definition of struct ipoib_cm_id It's completely unused. Signed-off-by: Roland Dreier commit 82c3aca6ad9004169df8f2f8c0747686fe4003b3 Author: Michael S. Tsirkin Date: Wed Jun 20 19:22:15 2007 +0300 IPoIB/cm: Fix interoperability when MTU doesn't match IPoIB connected mode currently rejects a connection request unless the supported MTU is >= the local netdevice MTU. This breaks interoperability with implementations that might have tweaked IPOIB_CM_MTU, and there's real no longer a reason to do so: this test is just a leftover from when we did not tweak MTU per-connection. Fix this by making the test as permissive as possible. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier commit 3ec7393a6858a1716e74aa81be6af76fd180021d Author: Michael S. Tsirkin Date: Tue Jun 19 13:40:41 2007 +0300 IPoIB/cm: Initialize RX before moving QP to RTR Fix a crasher bug in IPoIB CM: once a QP is in the RTR state, a receive completion (or even an asynchronous error) might be observed on this QP, so we have to initialize all of our receive data structures before moving to the RTR state. As an optimization (since modify_qp might take a long time), the jiffies update done when moving RX to the passive_ids list is also left in place to reduce the chance of the RX being misdetected as stale. This fixes bug . Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier commit 24bce5080306bd5255cbda3d6b09a29d5515b470 Author: Roland Dreier Date: Thu Jun 21 11:05:58 2007 -0700 IB/umem: Fix possible hang on process exit If ib_umem_release() is called after ib_uverbs_close() sets context->closing, then a process can get stuck in a D state, because the code boils down to if (down_write_trylock(&mm->mmap_sem)) down_write(&mm->mmap_sem); which is obviously a stupid instant deadlock. Fix the code so that we only try to take the lock once. This bug was introduced in commit f7c6a7b5 ("IB/uverbs: Export ib_umem_get()/ib_umem_release() to modules") which fortunately never made it into a release, and was reported by Pete Wyckoff . Signed-off-by: Roland Dreier commit 47d46379eb66278107947729e34a833c76dca252 Author: Wang Zhenyu Date: Thu Jun 21 13:43:18 2007 +0800 [AGPGART] intel_agp: don't load if no IGD and AGP port After i915 chip, GMCH has no AGP port. Origin bridge driver in device table will try to access illegal regs like APBASE, APSIZE, etc. This may cause problem. So mark them as NULL in the table, we won't load if no IGD got detect and bridge has no AGP port. Signed-off-by: Wang Zhenyu Signed-off-by: Dave Jones commit 216e39db112da4d25a52aeb956e7da70fdd0d94c Author: Mike Frysinger Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: add proper const volatile to addr argument to the read functions Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu commit 334280fff3f7201d0fd564fe85e0a6f035ce3f68 Author: Sonic Zhang Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: Add definition of dma_mapping_error Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu commit b9b712765738d141154b435a5bfec4adbbee25f3 Author: Mike Frysinger Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: move cond_syscall() behind __KERNEL__ like all other architectures Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu commit 86b73c8cfc8daeff554ae3e95e2a0ee77c45d499 Author: Robin Getz Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: match kernel startup messaage with new linker script Signed-off-by: Robin Getz Signed-off-by: Bryan Wu commit 9c8f1729b0a838dc0f44b77dab80890a98585964 Author: Mike Frysinger Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: add missing braces around array bfin serial init Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu commit c5d88d9e2566e7ddccb0e001446b9a39882560a3 Author: Robin Getz Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: update printk to use KERN_EMERG and reformat crash output to look like: return address: [0x0357fcc4]; contents of: 0x0357fca0: fcbc 0357 fe20 0357 0009 0000 6a8c 0345 0x0357fcb0: 000e 0000 fcc4 0357 fd44 0357 e128 00ad 0x0357fcc0: 00a0 0000 [000e] 0000 0000 0000 0080 0000 0x0357fcd0: 0000 0000 0000 0000 00a0 0000 000e 0000 instruction in [] is the offending instruction Signed-off-by: Robin Getz Signed-off-by: Bryan Wu commit 4bf3f3cbb6add01d3e6a18c73f594b73113b14f2 Author: Robin Getz Date: Thu Jun 21 11:34:16 2007 +0800 Blackfin arch: update ANOMALY handling update lists for 533, 537, and add SSYNC workaround into assembly files. Signed-off-by: Robin Getz Signed-off-by: Bryan Wu commit 5fe675e2b3e41349deb0c81667065b9cb229ea1d Author: Stas Sergeev Date: Wed Jun 20 22:42:13 2007 +0400 fix module_param mistake in it821x The attached patch fixes a trivial mistake in a MODULE_PARAM_DESC of pata_it821x driver. The parameter name in MODULE_PARAM_DESC should match the one in module_param_named. Signed-off-by: Stas Sergeev Signed-off-by: Jeff Garzik commit a3d2cc5e742f82a87fdf9e2b730f41ff381c0a73 Author: Tejun Heo Date: Tue Jun 19 18:52:56 2007 +0900 ahci: fix PORTS_IMPL override If PORTS_IMPL register is zero, ahci initialize it to full mask corresponding to nr_ports in the CAP register. hpriv->cap, which is initialized at the end of the function, is incorrectly used as value of CAP causing ahci to always override PORTS_IMPL to 0x1 if it's zero. Fix it. This fixes a bug where early ich6 ahci can only access the first port. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 3fae450c68d06b8890e1530bdd0910e938e7251d Author: Henrik Kretzschmar Date: Tue Jun 19 10:10:50 2007 +0200 kerneldoc fix in libata Fix parameter name from ata_dev_reread_id() in libata-core.c for kerneldoc. Signed-off-by: Henrik Kretzschmar Signed-off-by: Jeff Garzik commit 2f8fcebbf5c8dd2ee7eb5711c03318c011d50d39 Author: Tejun Heo Date: Mon Jun 18 14:38:41 2007 +0900 libata: more NONCQ devices More for the NCQ blacklist. One hitachi and one raptor. Other members of these families of drives are already on the list, so no surprises. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 374abf2cb16a9df8be96675c606996458872e8b3 Author: Bartlomiej Zolnierkiewicz Date: Mon Jun 11 11:40:07 2007 +0200 pata_it821x: (partially) fix DMA in RAID mode Code intended to check DMA status was checking DMA command register. Moreover firmware seems to "forget" to set DMA capable bit for the slave device (at least in RAID mode but without ITE RAID volumes) so check device ID for DMA capable bit when deciding whether to use DMA and remove DMA status check completely. Thanks to Pavol Simo for the bugreport and testing the initial fix. This change unfortunately still doesn't fix DMA in RAID mode (which works fine with IDE it821x) but Alan is working on the missing pieces (pata_it821x vs libata EH issues). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Alan Cox Cc: Tejun Heo Signed-off-by: Jeff Garzik commit 9f7897554eeca34ec23dd877cc27402bd327a1ce Author: Peer Chen Date: Thu Jun 7 18:23:12 2007 +0800 PATA: Add the MCP73/77 support to PATA driver Add the MCP73/MCP77 support to PATA driver. The patch base on kernel 2.6.22-rc4 Signed-off-by: Peer Chen Signed-off-by: Jeff Garzik commit 2090dee420911045258d50239dc2c527e4b1dd06 Author: Divy Le Ray Date: Wed May 30 10:01:50 2007 -0700 cxgb3 - MAC watchdog update Fix variables initialization and usage in the MAC watchdog. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit 7b581a0fa85464f7f765b9a66f612e7ec4ab17f9 Author: Divy Le Ray Date: Wed May 30 10:01:44 2007 -0700 cxgb3 - Stop mac RX when changing MTU Rx traffic needs to be halted when the MTU is changed to avoid a potential chip hang. Reset/restore MAC filters around a MTU change. Also fix the pause frames high materwark setting. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit c706bfb52afc9b5d115f61a8e1c0c30540feb3f4 Author: Divy Le Ray Date: Wed May 30 10:01:39 2007 -0700 cxgb3 - Fix direct XAUI support Check all lanes for link status on direct XAUI cards. Don't assume that direct XAUI always uses XGMAC 1. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit 890de332834a95450a74e5f615f4f9a0fa564623 Author: Divy Le Ray Date: Wed May 30 10:01:34 2007 -0700 cxgb3 - fix netpoll hanlder Fix netpoll handler to work with line interrupt, msi and msi-x. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit e360b5628f1d040c0e96dd9ee011196645e08aef Author: Divy Le Ray Date: Wed May 30 10:01:29 2007 -0700 cxgb3 - fix skb->dev dereference eth_type_trans() now sets skb->dev. References to skb->dev should happen after it is called. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit d41f2d17f863fcd9496748135967e71551d5873d Author: Gregory Haskins Date: Fri Jun 15 17:17:50 2007 -0400 natsemi irq flags The spinlock irq flags should be a unsigned long to properly support 64 bit Signed-off-by: Gregory Haskins Signed-off-by: Jeff Garzik commit 2cc49a5ca14348f225beb888ad383064f2a96876 Author: Tim Mann Date: Thu Jun 14 13:16:38 2007 -0700 forcedeth: use unicast receive mode for WoL I happened to notice that a system with an NVidia NIC using the forcedeth driver won't wake-on-LAN if the interface was in promiscuous mode when you power off. By experiment, it looks like the hardware needs to have NvRegPacketFilterFlags set to NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR (i.e., receive unicast packets to my address) in order for WoL to work. Jeff Garzik writes: "NVIDIA says the patch looks OK." I didn't venture to insert a signed-off-by line with his name on it, though. Signed-off-by: Tim Mann Signed-off-by: Jeff Garzik commit d46146274b2dc01fac4063d31393385117d31f58 Author: Martin Schwidefsky Date: Wed Jun 20 13:03:57 2007 +0200 s390: netiucv inlining cleanup The recent iucv rework patches re-introduced some unnecessary inlines. Remove them again. Signed-off-by: Frank Pavlic Signed-off-by: Martin Schwidefsky Signed-off-by: Jeff Garzik commit bfac0d0b6c6e20933b46f53a964c130f2f2bfa85 Author: Thomas Gleixner Date: Wed Jun 20 13:02:55 2007 +0200 s390: netiucv spinlock initializer cleanup spinlock initializer cleanup in netiucv.c Signed-off-by: Thomas Gleixner Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit 651bbc6224a95eb5bf0ccf6ecd61fc244b38d1f5 Author: Ursula Braun Date: Wed Jun 20 13:01:30 2007 +0200 s390: don't call iucv_path_connect from tasklet context net/iucv/iucv.c creates the requirement for iucv_path_connect not to be called from tasklet context anymore. An extra checking is added in case of a failing netiucv_tx to fulfil this requirement for netiucv. Signed-off-by: Ursula Braun Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit dc5bc0cabd1003b4fa358f0d54dfdc46585efb57 Author: Cornelia Huck Date: Wed Jun 20 13:00:20 2007 +0200 s390: Use ccw_device_get_id() in qeth/claw drivers Use ccw_device_get_id() to get a device number instead of parsing the ccw device's bus id. Signed-off-by: Cornelia Huck Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit cd3e76ebcb41c48ef6e706006b793d45030bae75 Author: Frank Pavlic Date: Wed Jun 20 12:59:14 2007 +0200 s390: qeth: wrong packet length in qdio header Packets Length in qdio header is broken when using EDDP on Layer2 devices. This leads to skb_under_panic on receiver system when running on z/VM GuestLAN devices. Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit add3f2fa7a6cec16d35a95b9078e1ecc80a6f332 Author: Ursula Braun Date: Wed Jun 20 12:58:02 2007 +0200 s390: avoid inconsistent lock state in qeth ipv6_regen_rndid in net/ipv6/addrconf.c makes use of "write_lock_bh" for its inet6_dev->lock. It may run in softirq-context. qeth makes use of "read_lock" for the same inet6_dev->lock. To avoid a potential deadlock situation, qeth should make use of "read_lock_bh" for its usages of inet6_dev->lock. Signed-off-by: Ursula Braun Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit d81ef0fb76ef2eb7126f64cb34217d2ddfb48483 Author: Ursula Braun Date: Wed Jun 20 12:56:49 2007 +0200 s390: qeth driver does not recover While first recovery continues, the card issues a STARTLAN command itself. In this case qeth schedules another recovery. This second recovery is cancelled because of an already running first recovery. Stop first recovery in case of 0xe080. Signed-off-by: Ursula Braun Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit d78f6642bea3b8f064dcb9a17db58593ef8cc0fb Author: Ursula Braun Date: Wed Jun 20 12:55:18 2007 +0200 s390: print correct level for HiperSockets devices For real HiperSockets the EBCDIC-ASCII conversion is not necessary. This is only needed for z/VM GuestLAN devices. Signed-off-by: Ursula Braun Signed-off-by: Frank Pavlic Signed-off-by: Jeff Garzik commit 031ae4deb095a1f18a842740459c5ae184ec931c Author: Jay Vosburgh Date: Wed Jun 13 22:11:34 2007 -0700 bonding: Fix 802.3ad no carrier on "no partner found" instance Modify carrier state determination for 802.3ad mode to comply with section 43.3.9 of IEEE 802.3, which requires that "Links that are not successful candidates for aggregation (e.g., links that are attached to other devices that cannot perform aggregation or links that have been manually configured to be non-aggregatable) are enabled to operate as individual IEEE 802.3 links." Bug reported by Laurent Chavey . This patch is an updated version of his patch that changes the wording of commentary and adds an update to the driver version. Signed-off-by: Jay Vosburgh Signed-off-by: Laurent Chavey Signed-off-by: Jeff Garzik commit 3201e656ce56ed02e9501906c18ffe16ae350a52 Author: Jay Vosburgh Date: Tue Jun 19 11:12:12 2007 -0700 bonding: Fix use after free in unregister path The following patch (based on a patch from Stephen Hemminger ) removes use after free conditions in the unregister path for the bonding master. Without this patch, an operation of the form "echo -bond0 > /sys/class/net/bonding_masters" would trigger a NULL pointer dereference in sysfs. I was not able to induce the failure with the non-sysfs code path, but for consistency I updated that code as well. I also did some testing of the bonding /proc file being open while the bond is being deleted, and didn't see any problems there. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 3a2c892daaf54b31a70785c2821771e8094188ed Author: Stephen Hemminger Date: Mon Jun 11 13:35:23 2007 -0500 spidernet: checksum and ethtool It doesn't look like spidernet hardware can really checksum all protocols, the code looks like it does IPV4 only. If so, it should use NETIF_F_IP_CSUM instead of NETIF_F_HW_CSUM. The driver doesn't need it's own get/set for ethtool tx csum, and it should use the standard ethtool_op_get_link. Signed-off-by: Stephen Hemminger Signed-off-by: Linas Vepstas Signed-off-by: Jeff Garzik commit 128c6e2e519fe7d0a15de04f3dde00700145cec4 Author: Linas Vepstas Date: Mon Jun 11 13:29:03 2007 -0500 spidernet: turn off descriptor chain end interrupt. At some point, the transmit descriptor chain end interrupt (TXDCEINT) was turned on. This is a mistake; and it damages small packet transmit performance, as it results in a huge storm of interrupts. Turn it off. Signed-off-by: Linas Vepstas Signed-off-by: Jeff Garzik commit c3d1182a538fd99b6fe5effa1ab54521c0efb1d1 Author: Linas Vepstas Date: Mon Jun 11 13:26:50 2007 -0500 spidernet: silence the ramfull messages Although the previous patch resolved issues with hangs when the RX ram full interrupt is encountered, there are still situations where lots of RX ramfull interrupts arrive, resulting in a noisy log in syslog. There is no need for this. Signed-off-by: Linas Vepstas Signed-off-by: Jeff Garzik commit 2bf27a0d4913a5f0ef38e3be510b1b3add2869ad Author: Linas Vepstas Date: Mon Jun 11 13:23:42 2007 -0500 spidernet: Don't terminate the RX ring The terminated RX ring will cause trouble during the RX ram full conditions, leading to a hung driver, as the hardware can't find the next descr. There is no real reason to terminate the RX ring; it doesn't make the operation any smooother, and it does require an extra sync. So don't do it. Signed-off-by: Linas Vepstas Signed-off-by: Jeff Garzik commit 4c4bd5a97a87670d2c368ed4ed8a8f2c93080605 Author: Linas Vepstas Date: Mon Jun 11 13:21:13 2007 -0500 spidernet: Cure RX ram full bug This patch fixes a rare deadlock that can occur when the kernel is not able to empty out the RX ring quickly enough. Below follows a detailed description of the bug and the fix. As long as the OS can empty out the RX buffers at a rate faster than the hardware can fill them, there is no problem. If, for some reason, the OS fails to empty the RX ring fast enough, the hardware GDACTDPA pointer will catch up to the head, notice the not-empty condition, ad stop. However, RX packets may still continue arriving on the wire. The spidernet chip can save some limited number of these in local RAM. When this local ram fills up, the spider chip will issue an interrupt indicating this (GHIINT0STS will show ERRINT, and the GRMFLLINT bit will be set in GHIINT1STS). When te RX ram full condition occurs, a certain bug/feature is triggered that has to be specially handled. This section describes the special handling for this condition. When the OS finally has a chance to run, it will empty out the RX ring. In particular, it will clear the descriptor on which the hardware had stopped. However, once the hardware has decided that a certain descriptor is invalid, it will not restart at that descriptor; instead it will restart at the next descr. This potentially will lead to a deadlock condition, as the tail pointer will be pointing at this descr, which, from the OS point of view, is empty; the OS will be waiting for this descr to be filled. However, the hardware has skipped this descr, and is filling the next descrs. Since the OS doesn't see this, there is a potential deadlock, with the OS waiting for one descr to fill, while the hardware is waiting for a differen set of descrs to become empty. A call to show_rx_chain() at this point indicates the nature of the problem. A typical print when the network is hung shows the following: net eth1: Spider RX RAM full, incoming packets might be discarded! net eth1: Total number of descrs=256 net eth1: Chain tail located at descr=255 net eth1: Chain head is at 255 net eth1: HW curr desc (GDACTDPA) is at 0 net eth1: Have 1 descrs with stat=xa0800000 net eth1: HW next desc (GDACNEXTDA) is at 1 net eth1: Have 127 descrs with stat=x40800101 net eth1: Have 1 descrs with stat=x40800001 net eth1: Have 126 descrs with stat=x40800101 net eth1: Last 1 descrs with stat=xa0800000 Both the tail and head pointers are pointing at descr 255, which is marked xa... which is "empty". Thus, from the OS point of view, there is nothing to be done. In particular, there is the implicit assumption that everything in front of the "empty" descr must surely also be empty, as explained in the last section. The OS is waiting for descr 255 to become non-empty, which, in this case, will never happen. The HW pointer is at descr 0. This descr is marked 0x4.. or "full". Since its already full, the hardware can do nothing more, and thus has halted processing. Notice that descrs 0 through 254 are all marked "full", while descr 254 and 255 are empty. (The "Last 1 descrs" is descr 254, since tail was at 255.) Thus, the system is deadlocked, and there can be no forward progress; the OS thinks there's nothing to do, and the hardware has nowhere to put incoming data. This bug/feature is worked around with the spider_net_resync_head_ptr() routine. When the driver receives RX interrupts, but an examination of the RX chain seems to show it is empty, then it is probable that the hardware has skipped a descr or two (sometimes dozens under heavy network conditions). The spider_net_resync_head_ptr() subroutine will search the ring for the next full descr, and the driver will resume operations there. Since this will leave "holes" in the ring, there is also a spider_net_resync_tail_ptr() that will skip over such holes. Signed-off-by: Linas Vepstas Signed-off-by: Jeff Garzik commit 83d35145c443d8394aaf1743301e79fa0a8054d7 Author: Linas Vepstas Date: Mon Jun 11 13:17:02 2007 -0500 spidernet: null out skb pointer after its been used. Avoid kernel crash in mm/slab.c due to double-free of pointer. If the ethernet interface is brought down while there is still RX traffic in flight, the device shutdown routine can end up trying to double-free an skb, leading to a crash in mm/slab.c Avoid the double-free by nulling out the skb pointer. Signed-off-by: Linas Vepstas Signed-off-by: Jeff Garzik commit 24315c5e6f508edd84e996d67daef3d1bcc72f8b Author: Kristian Høgsberg Date: Wed Jun 20 17:48:07 2007 -0400 firewire: Only set client->iso_context if allocation was successful. This patch fixes an OOPS on cdev release for an fd where iso context creation failed. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter commit 8acff0a2449aeda37204c4074976bf79f21968e3 Author: Li Yang Date: Wed Jun 20 20:23:34 2007 +0800 Fix up CREDIT entry ordering Reorder my CREDIT entry to make it in alphabetic order by last name. Signed-off-by: Li Yang Signed-off-by: Linus Torvalds commit bf8c4817427de0744e9c008d3ad5a7635e41e397 Author: Yinghai Lu Date: Wed Jun 20 12:23:39 2007 +0200 x86_64: fix link warning between for .text and .init.text WARNING: arch/x86_64/kernel/built-in.o(.text+0xace9): Section mismatch: reference to .init.text: (between 'get_mtrr_state' and 'mtrr_wrmsr') WARNING: arch/x86_64/kernel/built-in.o(.text+0xad09): Section mismatch: reference to .init.text: (between 'get_mtrr_state' and 'mtrr_wrmsr') WARNING: arch/x86_64/kernel/built-in.o(.text+0xad38): Section mismatch: reference to .init.text: (between 'get_mtrr_state' and 'mtrr_wrmsr') WARNING: drivers/built-in.o(.text+0x3a680): Section mismatch: reference to .init.text:acpi_map_pxm_to_node (between 'acpi_get_node' and 'acpi_lock_ac_dir') AK: also marked mtrr_bp_init __init to avoid some more warnings Signed-off-by: Yinghai Lu Signed-off-by: Andi Kleen Acked-by: Jan Beulich Signed-off-by: Linus Torvalds commit 018d2ad0cccfa9bb8bee1d160c353e568484a137 Author: Andi Kleen Date: Wed Jun 20 12:23:36 2007 +0200 x86: change_page_attr bandaids - Disable CLFLUSH again; it is still broken. Always do WBINVD. - Always flush in the i386 case, not only when there are deferred pages. These are both brute-force inefficient fixes, to be improved next release cycle. The changes to i386 are a little more extensive than strictly needed (some dead code added), but it is more similar to the x86-64 version now and the dead code will be used soon. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 55181000cd60334fe920c65ffbcdfe0e3f1de406 Author: Andi Kleen Date: Wed Jun 20 12:23:35 2007 +0200 x86: Disable KPROBES with DEBUG_RODATA for now Right now Kprobes cannot write to the write protected kernel text when DEBUG_RODATA is enabled. Disallow this in Kconfig for now. Temporary fix for 2.6.22. In .23 add code to temporarily unprotect it. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 9f1f79e641c548ee93fb20f69c9a404b92ee4fdd Author: Andi Kleen Date: Wed Jun 20 12:23:34 2007 +0200 x86: Only make Macintosh drivers default on Macs It's already annoying that they appear on x86 now -- that's for the 3button emulation needed on x86 macs -- but at least don't make them default. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 0e52d3281f8aa6486949478ea95c8ca85c3ffab5 Author: Andi Kleen Date: Wed Jun 20 12:23:33 2007 +0200 x86_64: Quieten Atari keyboard warnings in Kconfig Not directly related to x86, but I got tired of seeing these warnings on every kconfig update when building on a non m68k box: drivers/input/keyboard/Kconfig:170:warning: 'select' used by config symbol 'KEYBOARD_ATARI' refers to undefined symbol 'ATARI_KBD_CORE' drivers/input/mouse/Kconfig:182:warning: 'select' used by config symbol 'MOUSE_ATARI' refers to undefined symbol 'ATARI_KBD_CORE' I moved the definition of ATARI_KBD_CORE into drivers/input/keyboard/Kconfig so it's always seen by Kconfig. Cc: Geert Uytterhoeven Acked-by: Roman Zippel Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 388c19e176436707eb30a81c7e4129e08769f92b Author: Andi Kleen Date: Wed Jun 20 12:23:32 2007 +0200 x86: Disable DAC on VIA bridges Several reports that VIA bridges don't support DAC and corrupt data. I don't know if it's fixed, but let's just blacklist them all for now. It can be overwritten with iommu=usedac Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 0b622330213ce0f0ee23199e433ed73284209b46 Author: Andi Kleen Date: Wed Jun 20 12:23:31 2007 +0200 x86_64: Fix eventd/timerfd syscalls They had the same syscall number. Pointed out by Davide Libenzi Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit e412ac4971d27ea84f3d63ce425c6ab2d6a67f23 Author: Andi Kleen Date: Wed Jun 20 12:23:30 2007 +0200 x86_64: Fix readahead/sync_file_range/fadvise64 compat calls Correctly convert the u64 arguments from 32bit to 64bit. Pointed out by Heiko Carstens. I guess this proves Linus' theory that nobody uses the more exotic Linux specific syscalls. It wasn't discovered by a user. Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds commit 3b1d4ed5353af04d6aa20be2701727b9cdb2ac61 Author: Ralf Baechle Date: Wed Jun 20 22:27:10 2007 +0100 [MIPS] Don't drag a platform specific header into generic arch code. For some platforms it's definitions may conflict. So that's the one-liner. The rest is 10 square kilometers of collateral damage fixup this include used to paper over. Signed-off-by: Ralf Baechle commit c5f226c7e95bf318879fb6ae02fc0dfb0f6d408c Author: Tony Breeds Date: Wed Jun 20 15:17:29 2007 +1000 [POWERPC] Fix powermac late initcall to only run on powermac Current ppc64_defconfig kernel fails to boot on iSeries, dying with: Unable to handle kernel paging request for data at address 0x00000000 Faulting instruction address: 0xc00000000071b258 Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 iSeries NIP [c00000000071b258] .iSeries_src_init+0x34/0x64 LR [c000000000701bb4] .kernel_init+0x1fc/0x3bc Call Trace: [c000000007d0be30] [0000000000008000] 0x8000 (unreliable) [c000000007d0bea0] [c000000000701bb4] .kernel_init+0x1fc/0x3bc [c000000007d0bf90] [c0000000000262d4] .kernel_thread+0x4c/0x68 Instruction dump: e922cba8 3880ffff 78840420 f8010010 f821ff91 60000000 e8090000 78095fe3 4182002c e922cb58 e862cbb0 e9290140 f8410028 7c0903a6 e9690010 Kernel panic - not syncing: Attempted to kill init! This happens because some powermac code unconditionally sets ppc_md.progress to NULL. This patch makes sure the powermac late initcall is only run on powermac machines. Signed-off-by: Tony Breeds Signed-off-by: Paul Mackerras commit 9ba4ace39fdfe22268daca9f28c5df384ae462cf Author: Segher Boessenkool Date: Wed Jun 20 01:07:04 2007 +1000 [POWERPC] PowerPC: Prevent data exception in kernel space (32-bit) The "is_exec" branch of the protection check in do_page_fault() didn't do anything on 32-bit PowerPC. So if a userland program jumps to a page with Linux protection flags "---p", all the tests happily fall through, and handle_mm_fault() is called, which in turn calls handle_pte_fault(), which calls update_mmu_cache(), which goes flush the dcache to a page with no access rights. Boom. This fixes it. Signed-off-by: Segher Boessenkool Cc: Johannes Berg Signed-off-by: Paul Mackerras commit 7c8545e98468c53809fc06788a3b9a34dff05240 Author: Li Yang Date: Mon Jun 18 19:29:21 2007 +0800 [POWERPC] rheap - eliminates internal fragments caused by alignment The patch adds fragments caused by rh_alloc_align() back to free list, instead of allocating the whole chunk of memory. This will greatly improve memory utilization managed by rheap. It solves MURAM not enough problem with 3 UCCs enabled on MPC8323. Signed-off-by: Li Yang Acked-by: Joakim Tjernlund Signed-off-by: Kumar Gala 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 19e6454ca778e11e81497bd87c930dc0defd03d7 Author: David Howells Date: Mon Jun 18 23:30:41 2007 -0700 [AF_RXRPC]: Return the number of bytes buffered in rxrpc_send_data() Return the number of bytes buffered in rxrpc_send_data(). Signed-off-by: David Howells Signed-off-by: David S. Miller commit cc0191aeef73e5aa0c7f9a586d4bb27ed67facbb Author: Neil Horman Date: Mon Jun 18 22:33:20 2007 -0700 [IPVS]: Fix state variable on failure to start ipvs threads ip_vs currently fails to reset its ip_vs_sync_state variable if the sync thread fails to start properly. The result is that the kernel will report a running daemon when their actuall is none. If you issue the following commands: 1. ipvsadm --start-daemon master --mcast-interface bla 2. ipvsadm -L --daemon 3. ipvsadm --stop-daemon master Assuming that bla is not an actual interface, step 2 should return no data, but instead returns: $ ipvsadm -L --daemon master sync daemon (mcast=bla, syncid=0) Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit 281216177a407f78cfd650ee4391afc487577193 Author: Patrick McHardy Date: Mon Jun 18 22:30:15 2007 -0700 [XFRM]: Fix MTU calculation for non-ESP SAs My IPsec MTU optimization patch introduced a regression in MTU calculation for non-ESP SAs, the SA's header_len needs to be subtracted from the MTU if the transform doesn't provide a ->get_mtu() function. Reported-and-tested-by: Marco Berizzi Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller 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 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 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 e61ef2416b0b92828512b6cfcd0104a02b6431fe Author: Roland Dreier Date: Mon Jun 18 09:23:47 2007 -0700 IB/mlx4: Make sure inline data segments don't cross a 64 byte boundary Inline data segments in send WQEs are not allowed to cross a 64 byte boundary. We use inline data segments to hold the UD headers for MLX QPs (QP0 and QP1). A send with GRH on QP1 will have a UD header that is too big to fit in a single inline data segment without crossing a 64 byte boundary, so split the header into two inline data segments. Signed-off-by: Roland Dreier commit 5ae2a7a836be660ff1621cce1c46930f19200589 Author: Roland Dreier Date: Mon Jun 18 08:15:02 2007 -0700 IB/mlx4: Handle FW command interface rev 3 Upcoming firmware introduces command interface revision 3, which changes the way port capabilities are queried and set. Update the driver to handle both the new and old command interfaces by adding a new MLX4_FLAG_OLD_PORT_CMDS that it is set after querying the firmware interface revision and then using the correct interface based on the setting of the flag. Signed-off-by: Roland Dreier commit 082dee3216c99a838af40be403799f60bcea2e97 Author: Jack Morgenstein Date: Mon Jun 18 08:13:59 2007 -0700 IB/mlx4: Handle buffer wraparound in __mlx4_ib_cq_clean() When compacting CQ entries, we need to set the correct value of the ownership bit in case the value is different between the index we copy the CQE from and the index we copy it to. Found by Ronni Zimmerman of Mellanox. Signed-off-by: Jack Morgenstein Signed-off-by: Roland Dreier commit 54e95f8dcbd7d86f79b423e8d11053ec9a2d9946 Author: Roland Dreier Date: Mon Jun 18 08:13:53 2007 -0700 IB/mlx4: Get rid of max_inline_data calculation The calculation of max_inline_data in set_kernel_sq_size() is bogus, since it doesn't take into account the fact that inline segments may not cross a 64-byte boundary, and hence multiple inline segments will probably need to be used to post large inline sends. We don't support inline sends for kernel QPs anyway, so there's no point in doing this calculation anyway, since the field is just zeroed out a little later. So just delete the bogus calculation. Signed-off-by: Roland Dreier commit 0e6e74162164d908edf7889ac66dca09e7505745 Author: Roland Dreier Date: Mon Jun 18 08:13:48 2007 -0700 IB/mlx4: Handle new FW requirement for send request prefetching New ConnectX firmware introduces FW command interface revision 2, which requires that for each QP, a chunk of send queue entries (the "headroom") is kept marked as invalid, so that the HCA doesn't get confused if it prefetches entries that haven't been posted yet. Add code to the driver to do this, and also update the user ABI so that userspace can request that the prefetcher be turned off for userspace QPs (we just leave the prefetcher on for all kernel QPs). Unfortunately, marking send queue entries this way is confuses older firmware, so we change the driver to allow only FW command interface revisions 2. This means that users will have to update their firmware to work with the new driver, but the firmware is changing quickly and the old firmware has lots of other bugs anyway, so this shouldn't be too big a deal. Based on a patch from Jack Morgenstein . Signed-off-by: Roland Dreier 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 83dd4504456d4b5e464d6ec4a7665e2c922db67f Author: Myron Stowe Date: Mon Jun 4 16:25:37 2007 -0600 ACPICA: fix error path in new external package objects as method arguments In the routine acpi_ut_create_package_object(), if the ACPI_ALLOCATE_ZEROED() fails then ACPI_FREE(package_desc) is called as part of the cleanup. This should instead be acpi_ut_remove_reference(package_desc) in order to remove the reference acquired from acpi_ut_create_internal_object() [see the routine acpi_ut_create_buffer_object() as an example of proper functionality]. Signed-off-by: Myron Stowe Signed-off-by: Len Brown commit e7c746ef098770f863ba294adac5b30d124ba469 Author: Thomas Renninger Date: Mon Jun 18 00:40:51 2007 -0400 ACPI: gracefully print null trip-point device if acpi_bus_get_device() returns NULL, print nothing instead of " Signed-off-by: Len Brown 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 18b461796b737f94286f73710debc8649467161b Author: Carlos E. Ugarte Date: Mon Jun 4 11:49:19 2007 -0400 ieee1394: fix to ether1394_tx in ether1394.c This patch fixes a problem that occurs when packets cannot be sent across the ieee1394 bus and we return NETDEV_TX_BUSY in the net driver "hard start xmit" routine ether1394_tx. When we return NETDEV_TX_BUSY the stack will call ether1394_tx again with the same skb. So we need to restore the header to look like it did before we munged it for xmit over ieee1394. [Stefan Richter: changed whitespace, deleted a local variable] Signed-off-by: Stefan Richter commit a515958d6f77fdff1a40f8b08a9a95ac223c5d48 Author: Stefan Richter Date: Sat Jun 9 19:31:14 2007 +0200 firewire: fix hang after card ejection Signed-off-by: Stefan Richter Signed-off-by: Kristian Høgsberg 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 42c059ea2b0aac5f961253ba81c1b464d181a600 Author: Roland Dreier Date: Tue Jun 12 10:52:02 2007 -0700 IB/mlx4: Fix warning in rounding up queue sizes Doing max(1, foo) where foo is u32 generates a warning, because 1 is a signed constant. Fix this by using 1U instead. Signed-off-by: Roland Dreier commit 614c3c85b5b4c3776439d464939c123cce679dee Author: Roland Dreier Date: Tue Jun 12 10:50:42 2007 -0700 IB/mlx4: Fix handling of wq->tail for send completions Cast the increment added to wq->tail when send completions are processed to u16 to avoid using wrong values caused by standard integer promotions. The same bug was fixed in libmlx4 by Eli Cohen . Signed-off-by: Roland Dreier 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