commit 82d29bf6dc7317aeb0a3a13c2348ca8591965875 Author: Linus Torvalds Date: Mon Dec 10 19:48:43 2007 -0800 Linux 2.6.24-rc5 commit 7999f4b4e56d36265d789d52bb0c0bb0167346a7 Author: Jeremy Fitzhardinge Date: Mon Dec 10 13:00:41 2007 -0800 xen: relax signature check Some versions of Xen 3.x set their magic number to "xen-3.[12]", so relax the test to match them. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Linus Torvalds commit 3790ee4bd86396558eedd86faac1052cb782e4e1 Author: Eric W. Biederman Date: Mon Dec 10 15:49:36 2007 -0800 proc: remove/Fix proc generic d_revalidate Ultimately to implement /proc perfectly we need an implementation of d_revalidate because files and directories can be removed behind the back of the VFS, and d_revalidate is the only way we can let the VFS know that this has happened. Unfortunately the linux VFS can not cope with anything in the path to a mount point going away. So a proper d_revalidate method that calls d_drop also needs to call have_submounts which is moderately expensive, so you really don't want a d_revalidate method that unconditionally calls it, but instead only calls it when the backing object has really gone away. proc generic entries only disappear on module_unload (when not counting the fledgling network namespace) so it is quite rare that we actually encounter that case and has not actually caused us real world trouble yet. So until we get a proper test for keeping dentries in the dcache fix the current d_revalidate method by completely removing it. This returns us to the current status quo. So with CONFIG_NETNS=n things should look as they have always looked. For CONFIG_NETNS=y things work most of the time but there are a few rare corner cases that don't behave properly. As the network namespace is barely present in 2.6.24 this should not be a problem. Signed-off-by: Eric W. Biederman Cc: "Rafael J. Wysocki" Cc: Pavel Emelyanov Cc: "David S. Miller" Cc: Herbert Xu Cc: Alexey Dobriyan Cc: Trond Myklebust Cc: "Denis V. Lunev" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d84248bf46582a406116c55b94405c05193773b1 Author: Rini van Zetten Date: Mon Dec 10 15:49:34 2007 -0800 atmel_spi: reload RCR before TCR We have a wifi module connected to the spi bus and got sometimes FIFO overrun errors on the spi bus. After some investigation i found that the driver loads the TCR (transmit count) register before the RCR (receive count). When the transfer list is not empty the atmel_spi_next_message is called while tx and rx are enabled. As soon as the TCR is loaded, hardware starts transfer and causes a rx fifo overrun because the RCR is not loaded yet. Load the RCR before the TCR. After this patch the fifo overrun disapears at out setup. Signed-off-by: Haavard Skinnemoen Signed-off-by: Rini van Zetten Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6650e0a517bbfa1c47aa3da6b3562fcb1a066c63 Author: Joe Perches Date: Mon Dec 10 15:49:32 2007 -0800 MAINTAINERS: update stale entries Some bad email addresses are removed: linux-tr@linuxtr.net ehaase@inf.fu-berlin.de Some are updated: linux@maxim.org.za to andrew@sanpeople.com linux-kernel@linux-mips.org to linux-mips@linux-mips.org jdike@karaya.com to jdike@addtoit.com The PCMCIA entry is corrected to a web address The ZR36120 VIDEO FOR LINUX DRIVER entry is removed Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 522939d45c293388e6a360210905f9230298df16 Author: Maciej W. Rozycki Date: Mon Dec 10 15:49:31 2007 -0800 esp_scsi: fix reset cleanup spinlock recursion The esp_reset_cleanup() function is called with the host lock held and invokes starget_for_each_device() which wants to take it too. Here is a fix along the lines of shost_for_each_device()/__shost_for_each_device() adding a __starget_for_each_device() counterpart which assumes the lock has already been taken. Eventually, I think the driver should get modified so that more work is done as a softirq rather than in the interrupt context, but for now it fixes a bug that causes the spinlock debugger to fire. While at it, it fixes a small number of cosmetic problems with starget_for_each_device() too. Signed-off-by: Maciej W. Rozycki Acked-by: David S. Miller Cc: James Bottomley Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 794e64d5e9c7f088378e093a48eb36a30091d82d Author: Neil Brown Date: Mon Dec 10 15:49:30 2007 -0800 Fix NULL dereference in umem.c Fix NULL dereference in umem.c Signed-off-by: Neil Brown Tested-by: Dave Chinner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 76832d8416430d6dd0575579ca1e00d1a790f4cb Author: Julia Lawall Date: Mon Dec 10 15:49:28 2007 -0800 drivers/serial/uartlite.c: Add missing of_node_put There should be an of_node_put when breaking out of a loop that iterates using for_each_compatible_node. This was detected and fixed using the following semantic patch. (http://www.emn.fr/x-info/coccinelle/) // @@ identifier d; type T; expression e; iterator for_each_compatible_node; @@ T *d; ... for_each_compatible_node(d,...) {... when != of_node_put(d) when != e = d ( return d; | + of_node_put(d); ? return ...; ) ...} // Signed-off-by: Julia Lawall Acked-by: Grant Likely Acked-by: Peter Korsgaard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 72fad7139b6829f71d7f41f39eb30da5760d90a8 Author: Adam Litke Date: Mon Dec 10 15:49:28 2007 -0800 hugetlb: handle write-protection faults in follow_hugetlb_page The follow_hugetlb_page() fix I posted (merged as git commit 5b23dbe8173c212d6a326e35347b038705603d39) missed one case. If the pte is present, but not writable and write access is requested by the caller to get_user_pages(), the code will do the wrong thing. Rather than calling hugetlb_fault to make the pte writable, it notes the presence of the pte and continues. This simple one-liner makes sure we also fault on the pte for this case. Please apply. Signed-off-by: Adam Litke Acked-by: Dave Kleikamp Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8805f2387086a7e6a9647d0713fc075694130d6c Author: Will Newton Date: Mon Dec 10 15:49:27 2007 -0800 spi_imx: fix typo in description Signed-off-by: Will Newton Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6b1a80283908e463cbf1d96d48d7b989af0f2b2f Author: Will Newton Date: Mon Dec 10 15:49:26 2007 -0800 spi_bfin5xx: fix typo in description Signed-off-by: Will Newton Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 037cdafe42c775020e7b0e8a16ff8f52233df4c7 Author: Will Newton Date: Mon Dec 10 15:49:25 2007 -0800 pxa2xx_spi: fix typo in description Signed-off-by: Will Newton Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit da7ce6e2feb8e5b3ac3c1c365937c7ab009c76a2 Author: Roel Kluin <12o3l@tiscali.nl> Date: Mon Dec 10 15:49:24 2007 -0800 asm-h8300: parentheses around definition CLOCK_TICK_RATE Some places where CLOCK_TICK_RATE may be used incorrectly: arch/arm/mach-mx3/time.c:125: __raw_writel((v / CLOCK_TICK_RATE) - 1, MXC_GPT_GPTPR); drivers/watchdog/davinci_wdt.c:103: timer_margin = (((u64)heartbeat * CLOCK_TICK_RATE) & 0xffffffff); drivers/watchdog/davinci_wdt.c:105: timer_margin = (((u64)heartbeat * CLOCK_TICK_RATE) >> 32); drivers/watchdog/ks8695_wdt.c:64: unsigned long tval = wdt_time * CLOCK_TICK_RATE; I'm not sure whether this definition is used there, but adding parentheses should be good anyway. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 78187865efa5aec5a28a200a39153f98d8f38d4d Author: Randy Dunlap Date: Mon Dec 10 15:49:22 2007 -0800 pcmcia: fix kernel-doc comments Fix kernel-doc comments in drivers/pcmcia/: - ti113x.h does not contain kernel-doc, so don't use /** to begin a doc comment - yenta_socket.c: remove /** on non-kernel-doc comments; escape the ':' in an "http:" comment so that it won't be treated as a section heading; - cs.c: remove /** on non-kernel-doc comments & add function parameter info - ds.c: fix function parameter info Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 24601bbcacb3356657747f2e64317923feb7a1a2 Author: Andrew Morton Date: Mon Dec 10 15:49:20 2007 -0800 revert "dpt_i2o: convert to SCSI hotplug model" revert commit 55d9fcf57ba5ec427544fca7abc335cf3da78160 Author: Matthew Wilcox Date: Mon Jul 30 15:19:18 2007 -0600 [SCSI] dpt_i2o: convert to SCSI hotplug model - Delete refereces to HOSTS_C - Switch to module_init/module_exit instead of detect/release - Don't pass around the host template and rename it to adpt_template - Switch from scsi_register/scsi_unregister to scsi_host_alloc, scsi_add_host, scsi_scan_host and scsi_host_put. Because it caused (for unknown reasons) Andres' all-data-reads-as-zeroes problem, reported at http://groups.google.com/group/fa.linux.kernel/msg/083a9acff0330234 Cc: Matthew Wilcox Cc: "Salyzyn, Mark" Cc: James Bottomley Acked-by: FUJITA Tomonori Cc: Anders Henke Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 43cbe2cbdd5320f1ac785c6f016923609831effe Author: Andrew Morton Date: Mon Dec 10 15:49:13 2007 -0800 aoe: properly initialise the request_queue's backing_dev_info AOE forgot to initialise its queue's backing_dev_info, so kernels crash. (http://bugzilla.kernel.org/show_bug.cgi?id=9482) Fix that and consoldate aoeblk_gdalloc()'s error handling. Thanks be to Jon for reporting and testing. Cc: "Ed L. Cashin" Cc: Cc: "Jon Nelson" Acked-by: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a186b4a6b22fdc96a1ed63da483d267b5d00839e Author: Jarod Wilson Date: Mon Dec 3 13:43:12 2007 -0500 firewire: OHCI 1.0 Isochronous Receive support Third rendition of FireWire OHCI 1.0 Isochronous Receive support, using a zer-copy method similar to OHCI 1.1 which puts the IR data payload directly into the userspace buffer. The zero-copy implementation eliminates the video artifacts, audio popping, and buffer underrun problems seen with version 1 of this patch, as well as fixing a regression in OHCI 1.1 support introduced by version 2 of this patch. Successfully tested in OHCI 1.1 mode on the following chipsets: - NEC uPD72847 (rev 01), OHCI 1.1 (PCI) - Ti XIO2200(A) (rev 01), OHCI 1.1 (PCIe) - Ti TSB41AB2 (rev 01), OHCI 1.1 (PCI on SB Audigy) - Apple UniNorth 2 (rev 81), OHCI 1.1 (PowerBook G4 onboard) Successfully tested in OHCI 1.0 mode on the following chipsets: - Agere FW323 (rev 06), OHCI 1.0 (Mac Mini onboard) - Agere FW323 (rev 06), OHCI 1.0 (PCI) - Via VT6306 (rev 46), OHCI 1.0 (PCI) - NEC OrangeLink (rev 01), OHCI 1.0 (PCI) - NEC uPD72847 (rev 01), OHCI 1.1 (PCI) - Ti XIO2200(A) (rev 01), OHCI 1.1 (PCIe) The bulk of testing was done in an x86_64 system, but was also successfully sanity-tested on other systems, including a PPC(32) PowerBook G4 and an i686 EPIA M10k. Crude benchmarking (watching top during capture) puts the cpu utilization during capture on the EPIA's 1GHz Via C3 processor around 13%, which is down from 30% with the v1 code. Some implementation details: To maintain the same userspace API as dual-buffer mode, we set up two descriptors for every incoming packet. The first is an INPUT_MORE descriptor, pointing to a buffer large enough to hold just the packet's iso headers, immediately followed by an INPUT_LAST descriptor, pointing to a chunk of the userspace buffer big enough for the packet's data payload. With this setup, each incoming packet fills in these two descriptors in a manner that very closely emulates dual-buffer receive, to the point where the bulk of the handle_ir_* code is now identical between the two (and probably primed for some restructuring to share code between them). The only caveat I have at the moment is that neither of my OHCI 1.0 Via VT6307-based FireWire controllers work particularly well with this code for reasons I have yet to figure out. Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter commit af1bff4f1d117f99ad8a88e6532baff475fb44a5 Author: Linus Torvalds Date: Mon Dec 10 07:40:54 2007 -0800 Revert "PCI: fix IDE legacy mode resources" This reverts commit fd6e732186ab522c812ab19c2c5e5befb8ec8115, which helped up things on MIPS, but was wrong for everything else. As Ralf Baechle puts it: "It seems the whole MIPS resource managment is complicated enough (out of necessity) that only a few people actually grok it. Ioports being actually memory mapped on MIPS only makes the confusion worse, sigh." Requested-by: Benjamin Herrenschmidt Acked-by: Alan Cox Acked-by: Ralf Baechle Signed-off-by: Linus Torvalds commit 6d98bda79bea0e1be26c0767d0e9923ad3b72f2e Author: Benjamin Herrenschmidt Date: Mon Dec 10 15:29:22 2007 +1100 powerpc: Fix IDE legacy vs. native fixups PowerMac and CHRP/BriQ platforms have quirks to switch some IDE controllers from legacy mode to fully native mode. Those quirks however will not work properly anymore due to a change to the generic code to better handle legacy IDE resources. This fixes it by moving those quirk to "early" quirks (so they run before resources are probed for the devices) and clearing all BARs after the conversion to force a reallocation of sane values. Signed-off-by: Benjamin Herrenschmidt Acked-by: Alan Cox Signed-off-by: Linus Torvalds commit cf10e82bdc0d38d09dfaf46d0daf56136138ef3f Author: David Chinner Date: Fri Dec 7 14:09:11 2007 +1100 [XFS] Fix xfs_ichgtime()s broken usage of I_SYNC The recent I_LOCK->I_SYNC changes mistakenly changed xfs_ichgtime to look at I_SYNC instead of I_LOCK. This was incorrect and prevents newly created inodes from moving to the dirty list. Change this to the correct check which is for I_NEW, not I_LOCK or I_SYNC so that behaviour is correct. SGI-PV: 974225 SGI-Modid: xfs-linux-melb:xfs-kern:30204a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 978c7b2ff49597ab76ff7529a933bd366941ac25 Author: Rafael J. Wysocki Date: Fri Dec 7 14:09:02 2007 +1100 [XFS] Make xfsbufd threads freezable Fix breakage caused by commit 831441862956fffa17b9801db37e6ea1650b0f69 that did not introduce the necessary call to set_freezable() in xfs/linux-2.6/xfs_buf.c . SGI-PV: 974224 SGI-Modid: xfs-linux-melb:xfs-kern:30203a Signed-off-by: Rafael J. Wysocki Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit e89bc612d61edbcefaeb6f2244f86c0f3ec89d23 Author: Christoph Hellwig Date: Fri Dec 7 14:07:53 2007 +1100 [XFS] revert to double-buffering readdir The current readdir implementation deadlocks on a btree buffers locks because nfsd calls back into ->lookup from the filldir callback. The only short-term fix for this is to revert to the old inefficient double-buffering scheme. SGI-PV: 973377 SGI-Modid: xfs-linux-melb:xfs-kern:30201a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit a7430847fcb19297d6db833f35b9c9645c4a6395 Author: David Chinner Date: Fri Nov 23 16:30:23 2007 +1100 [XFS] Fix broken inode cluster setup. The radix tree based inode caches did away with the inode cluster hashes, replacing them with a bunch of masking and gang lookups on the radix tree. This masking got broken when moving the code to per-ag radix trees and indexing by agino # rather than straight inode number. The result is clustered inode writeback does not cluster and things can go extremely slowly when there are lots of inodes to write. Fix it up by comparing the agino # of the inode we just looked up to the index of the cluster we are looking for. Tested-by: Torsten Kaiser SGI-PV: 972915 SGI-Modid: xfs-linux-melb:xfs-kern:30033a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 77be55a5a13d9c7ddf780a93861f2fba33f8be1a Author: Lachlan McIlroy Date: Fri Nov 23 16:31:00 2007 +1100 [XFS] Clear XBF_READ_AHEAD flag on I/O completion. SGI-PV: 972554 SGI-Modid: xfs-linux-melb:xfs-kern:30128a Signed-off-by: Lachlan McIlroy Signed-off-by: Christoph Hellwig commit d1afb678ce77b930334a8a640a05b8e68178a377 Author: Lachlan McIlroy Date: Tue Nov 27 17:01:24 2007 +1100 [XFS] Fixed a few bugs in xfs_buf_associate_memory() - calculation of 'page_count' was incorrect as it did not consider the offset of 'mem' into the first page. The logic to bump 'page_count' didn't work if 'len' was <= PAGE_CACHE_SIZE (ie offset = 3k, len = 2k). - setting b_buffer_length to 'len' is incorrect if 'offset' is > 0. Set it to the total length of the buffer. - I suspect that passing a non-aligned address into mem_to_page() for the first page may have been causing issues - don't know but just tidy up that code anyway. SGI-PV: 971596 SGI-Modid: xfs-linux-melb:xfs-kern:30143a Signed-off-by: Lachlan McIlroy Signed-off-by: Christoph Hellwig commit cd57e594adc624dd9ee4c0ded3949da21ec24b2f Author: Lachlan McIlroy Date: Fri Nov 23 16:30:32 2007 +1100 [XFS] 971064 Various fixups for xfs_bulkstat(). - sanity check for NULL user buffer in xfs_ioc_bulkstat[_compat]() - remove the special case for XFS_IOC_FSBULKSTAT with count == 1. This special case causes bulkstat to fail because the special case uses xfs_bulkstat_single() instead of xfs_bulkstat() and the two functions have different semantics. xfs_bulkstat() will return the next inode after the one supplied while skipping internal inodes (ie quota inodes). xfs_bulkstate_single() will only lookup the inode supplied and return an error if it is an internal inode. - in xfs_bulkstat(), need to initialise 'lastino' to the inode supplied so in cases were we return without examining any inodes the scan wont restart back at zero. - sanity check for valid *ubcountp values. Cannot sanity check for valid ubuffer here because some users of xfs_bulkstat() don't supply a buffer. - checks against 'ubleft' (the space left in the user's buffer) should be against 'statstruct_size' which is the supplied minimum object size. The mixture of checks against statstruct_size and 0 was one of the reasons we were skipping inodes. - if the formatter function returns BULKSTAT_RV_NOTHING and an error and the error is not ENOENT or EINVAL then we need to abort the scan. ENOENT is for inodes that are no longer valid and we just skip them. EINVAL is returned if we try to lookup an internal inode so we skip them too. For a DMF scan if the inode and DMF attribute cannot fit into the space left in the user's buffer it would return ERANGE. We didn't handle this error and skipped the inode. We would continue to skip inodes until one fitted into the user's buffer or we completed the scan. - put back the recalculation of agino (that got removed with the last fix) at the end of the while loop. This is because the code at the start of the loop expects agino to be the last inode examined if it is non-zero. - if we found some inodes but then encountered an error, return success this time and the error next time. If the formatter aborted with ENOMEM we will now return this error but only if we couldn't read any inodes. Previously if we encountered ENOMEM without reading any inodes we returned a zero count and no error which falsely indicated the scan was complete. SGI-PV: 973431 SGI-Modid: xfs-linux-melb:xfs-kern:30089a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit d757762bf2f6aea954745c76b4d767067b85be9d Author: Donald Douwsma Date: Fri Nov 23 16:27:42 2007 +1100 [XFS] Fix dbflush panic in xfs_qm_sync. The recent behaviour layer removal dropped the check for quotas that have been requested at mount time but have subsequently been turned off. This results in a panic when accessing m_quotainfo which has been freed. This patch adds the check originally made by xfs_qm_syncall() to xfs_qm_sync(). SGI-PV: 969769 SGI-Modid: xfs-linux-melb:xfs-kern:29908a Signed-off-by: Donald Douwsma Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 7fd272550bd43cc1d7289ef0ab2fa50de137e767 Author: Linus Torvalds Date: Sun Dec 9 10:14:36 2007 -0800 Avoid double memclear() in SLOB/SLUB Both slob and slub react to __GFP_ZERO by clearing the allocation, which means that passing the GFP_ZERO bit down to the page allocator is just wasteful and pointless. Acked-by: Matt Mackall Reviewed-by: Pekka Enberg Signed-off-by: Linus Torvalds commit 18c32dac75b187d1a4e858f3cfdf03e844129f5e Author: Sam Ravnborg Date: Sun Dec 9 08:55:13 2007 +0100 kbuild: fix building with O=.. options The check introduced in commit: 4f1127e204377cbd2a56d112d323466f668e8334 "kbuild: fix infinite make recursion" caused certain external modules not to build and also caused 'make targz-pkg' to fail. This is a minimal fix so we revert to previous behaviour - but we do not overwrite the Makefile in the top-level directory. Signed-off-by: Sam Ravnborg Tested-by: Jay Cliburn Cc: Jay Cliburn commit 1cacc9ab8bf10e60b3ed93d7a10b070c4cbc6c9f Author: Sam Ravnborg Date: Thu Dec 6 22:20:11 2007 +0100 kbuild: fix building with redirected output. Jan Altenberg reported that building with redirected input like this failed: make O=dir oldconfig bzImage < /dev/null The problem were caused by a make silentoldconfig being run before oldconfig and with a non-recent .config the build failed because silentoldconfig requires non-redirected stdin. Silentoldconfig was run as a side-effect of having the top-level Makefile re-made by make. Introducing an empty rule for the top-level Makefile (and Kbuild.include) fixed the issue. Signed-off-by: Sam Ravnborg commit ba0f00b9fcb02b10cc9929fec660f86d1af6a41a Author: Ralf Baechle Date: Fri Nov 16 14:54:46 2007 +0000 [MIPS] Malta: Enable tickless and highres timers. Most Malta use an FPGA CPU card which rarely is good for more than 40MHz. So the performance penalta of the regular timer interrupt, especially for the VSMP kernel model is significant, even at a mere 100Hz. Signed-off-by: Ralf Baechle commit 5ef1b9a0f6cbb1269fc8b8d7704d146f22bf7aa6 Author: Ralf Baechle Date: Fri Nov 16 23:15:51 2007 +0000 [MIPS] Bigsur: Enable tickless and and highres timers. Signed-off-by: Ralf Baechle commit 8f7e7d67cbcbcfd2c72d496f01f5e4c78853ef7d Author: Atsushi Nemoto Date: Fri Nov 23 00:44:06 2007 +0900 qemu: do not enable IP7 blindly IP7 will be enabled automatically in mips_clockevent_init(), if available. Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit 0f5e49a2e2de69ee05ad8783274b0672247fd18f Author: Manuel Lauss Date: Thu Dec 6 08:11:56 2007 +0100 [MIPS] Alchemy: Fix Au1x SD controller IRQ With the introduction of MIPS_CPU_IRQ_BASE, the hardcoded IRQ number of the au1100/au1200 SD controller(s) is no longer valid. Signed-off-by: Manuel Lauss Signed-off-by: Ralf Baechle commit 6d2d419ffd83502d105014288e6af171a0a89544 Author: Chris Dearman Date: Thu Dec 6 15:35:54 2007 +0000 [MIPS] Don't byteswap writes to display when running bigendian Signed-off-by: Chris Dearman Signed-off-by: Ralf Baechle commit aa0ebec9cfb8a3fab966db75ac21d05a43f312a1 Author: Kenji Kaneshige Date: Fri Nov 9 10:51:01 2007 +0900 [IA64] Fix iosapic interrupt delivery mode for CPE If "CPEI Processor Override" bit is not set in "Platform Interrupt Source Flags" in "Platform Interrupt Sources Structure" in ACPI MADT, the target processor of CPEI is restricted to a specific CPU. Because of this, the delivery mode for CPEI should be IOSAPIC_FIXED. Signed-off-by: Kenji Kaneshige Signed-off-by: Tony Luck commit 3661999a17b0397c7a93c200b280c55958ba3593 Author: Shaohua Li Date: Tue Nov 13 14:55:20 2007 +0800 [IA64] kprobe: make kreturn probe handler stack unwind correct Restore regs->ccr_iip before kreturn probe handler runs. In this way, if probe handler does unwind, unwind can correctly get the stack trace. Fixes: http://sourceware.org/bugzilla/show_bug.cgi?id=5051 Signed-off-by: Shaohua Li Signed-off-by: Tony Luck commit 965d747264c91ed206846d74ae09f757a36a373b Author: Roel Kluin <12o3l@tiscali.nl> Date: Fri Dec 7 14:59:30 2007 -0800 [IA64] operator priority fix in acpi_map_lsapic() '!' has a higher priority than '&', so as was this won't test the first bit, but rather evaluates to false for any non-zero lsapic->lapic_flags. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Acked-by: Simon Horman Signed-off-by: Tony Luck commit c2eeb321a8f059112bdf0f8d4ac7ab35800f3f66 Author: Joe Perches Date: Mon Nov 19 17:47:53 2007 -0800 [IA64] Add missing "space" to concatenated strings Signed-off-by: Joe Perches Signed-off-by: Tony Luck commit 685c7f5d3629d558b17ee193b6d7f194e82aadf0 Author: Li Zefan Date: Wed Nov 21 14:58:26 2007 -0800 [IA64] make full use of macro efi_md_size Macro efi_md_size is defined in efi.c, and here we apply it throughout efi.c. Signed-off-by: Li Zefan Acked-by: Simon Horman Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit b898a424ed68ba73d6d4562d6370985b2e9bec61 Author: Bernhard Walle Date: Wed Nov 21 14:58:25 2007 -0800 [IA64] rename _bss to __bss_start Rename _bss to __bss_start as on other architectures. That makes it possible to use the instead of own declarations. Also add __bss_stop because that symbol exists on other architectures. Signed-off-by: Bernhard Walle Cc: "Luck, Tony" Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit afc2cf35b43ca58bd73b86b2f72af8b9bdb67ab8 Author: Mike Habeck Date: Mon Nov 26 11:19:57 2007 -0600 [IA64] SGI Altix : fix bug in sn_io_late_init() When initializing pci_controller->node to point to the closest node we need to take into consideration that a PIC PCI Bridge ASIC can be connected to a headless/memless node just like the TIOCP and TIOCE Bridge ASICs Signed-off-by: Mike Habeck Signed-off-by: Tony Luck commit 9e004ebd2dab980d663784d096aa6dc449225bd8 Author: Simon Horman Date: Fri Dec 7 14:44:05 2007 -0800 [IA64] iosapic cleanup Make some IOSAPIC functions static and remove one that is unused. Signed-off-by: Simon Horman Signed-off-by: Tony Luck commit b9ab117c2f2eac8432def6a2ea03711bfa7f35d5 Author: Shi Weihua Date: Mon Dec 3 12:57:50 2007 +0800 [IA64] signal : fix missing error checkings Not all the return value of __copy_from_user and __put_user is checked.This patch fixed it. Signed-off-by: Shi Weihua Signed-off-by: Tony Luck commit bdc2619ab95d45d434c16d5c216bc6243761f6fb Author: Andrew Morton Date: Fri Dec 7 16:10:19 2007 -0800 [IA64] export copy_page() to modules With the unionfs patch applied I get ERROR: "copy_page" [fs/unionfs/unionfs.ko] undefined! the other architectures (some, at least) export copy_page() so I guess ia64 should also do so. To do this we need to move the copy_page() functions out of lib.a and into built-in.o and add the EXPORT_SYMBOL(). Cc: Sam Ravnborg Cc: Kyle McMartin Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit ff08e657f3e7224d090dd816e00cea2c110575c4 Author: Andrew Morton Date: Fri Dec 7 14:42:08 2007 -0800 [IA64] don't assume that unwcheck.py is executable Don't assume that this file has execute permissions. For example, patch(1) loses that information. Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 1f0abae87812244ad8d68034609c86129c6b8404 Author: Andrew Morton Date: Wed Dec 5 14:32:13 2007 -0800 [IA64] increase .data.patch offset /opt/crosstool/gcc-3.4.5-glibc-2.3.6/ia64-unknown-linux-gnu/lib/gcc/ia64-unknown-linux-gnu/3.4.5/../../../../ia64-unknown-linux-gnu/bin/ld: section .data.patch [a000000000000500 -> a000000000000507] overlaps section .dynamic [a0000000000003c8 -> a000000000000507] This only appears to be a problem with strangely configured cross-compilation ... native compilers don't have this issue. But in the interests of helping others at least compile for ia64, this can go in. -Tony Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 459ad68893a84fb0881e57919340b97edbbc3dc7 Author: Tejun Heo Date: Fri Dec 7 12:46:23 2007 +0900 libata: kill spurious NCQ completion detection Spurious NCQ completion detection implemented in ahci was incorrect. On AHCI receving and processing FISes and raising interrupts are not interlocked and spurious interrupts are expected. For example, if an interrupt occurs while interrupt handler is running and the running interrupt handler handles the event the new IRQ indicated, after IRQ handler finishes, it will be executed again because IRQ pending bit is set by the new interrupt but there won't be anything to process. Please read the following message for more information. http://article.gmane.org/gmane.linux.ide/26012 This patch... * Removes all spurious IRQ whining from ahci. Spurious NCQ completion detection was completely wrong. Spurious D2H Register FIS taught us that some early drives send spurious D2H Register FIS with I bit set while NCQ commands are in progress but none of recent drives does that and even the ones which show such behavior can do NCQ fine. * Kills all NCQ blacklist entries which were added because of spurious NCQ completions. I tracked down each commit and verified all removed ones are actually added because of spurious completions. WD740ADFD-00NLR1 wasn't deleted but moved upward because the drive not only had spurious NCQ completions but also is slow on sequential data transfers if NCQ is enabled. Maxtor 7V300F0 was added by 0e3dbc01d53940fe10e5a5cfec15ede3e929c918 from Alan Cox. I can only find evidences that the drive only had troubles with spuruious completions by searching the mailing list. This entry needs to be verified and removed if it doesn't have other NCQ related problems. Signed-off-by: Tejun Heo Cc: Alan Cox Signed-off-by: Jeff Garzik commit c4f7792c021cda9bbf65d0bc2253a593fd652b91 Author: Tejun Heo Date: Thu Dec 6 15:09:43 2007 +0900 ahci: don't attach if ICH6 is in combined mode ICH6 R/Ms share PCI ID between piix and ahci modes and we've been allowing ahci to attach regardless of how BIOS configured it. However, enabling AHCI mode when the controller is in combined mode can result in unexpected behavior. Don't attach if the controller is in combined mode. Signed-off-by: Tejun Heo Cc: Bill Nottingham Signed-off-by: Jeff Garzik commit d1aa690a7d1afa673c3383bfcd6e96ddb350939a Author: Peter Schwenke Date: Wed Dec 5 10:39:49 2007 +0900 ata_piix: add Toshiba Tecra M4 to broken suspend list Add Toshiba Tecra M4 to broken suspend list. This is from OSDL bugzilla bug 7780. Signed-off-by: Peter Schwenke Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 994056d7aa884c742f58e2f2c17305bb01bf14e7 Author: Tejun Heo Date: Thu Dec 6 15:02:48 2007 +0900 ahci: fix engine reset failed message There isn't much point in reporting -EOPNOTSUPP as failure. Also the message was missing newline. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 7962024e9d16e9349d76b553326f3fa7be64305e Author: Sreenivasa Honnur Date: Wed Dec 5 23:59:28 2007 -0500 S2io: Check for register initialization completion before accesing device registers - Making sure register initialisation is complete before proceeding further. The driver must wait until initialization is complete before attempting to access any other device registers. Signed-off-by: Surjit Reang Signed-off-by: Sreenivasa Honnur Signed-off-by: Jeff Garzik commit 17cf803a57c89c5afe6d5299ac9416683c3240dd Author: Benjamin Herrenschmidt Date: Wed Dec 5 11:14:33 2007 +1100 ibm_newemac: Update file headers copyright notices This updates the copyright notices of the new EMAC driver to avoid confusion as who is to be blamed for new bugs. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit d09e18bc194c3fa8ae880df4567c719c36a73e9e Author: Valentine Barshak Date: Wed Dec 5 11:14:32 2007 +1100 ibm_newemac: Call dev_set_drvdata() before tah_reset() The patch moves dev_set_drvdata(&ofdev->dev, dev) up before tah_reset(ofdev) is called to avoid a NULL pointer dereference, since tah_reset uses drvdata. Signed-off-by: Valentine Barshak Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit 63b6cad795e0a34e8670291943df8a6f653c1931 Author: Valentine Barshak Date: Wed Dec 5 11:14:31 2007 +1100 ibm_newemac: Fix typo reading TAH channel info This patch fixes a typo in ibm_newemac/core.c (tah_port should be used instead of tah_ph) Signed-off-by: Valentine Barshak Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit 4696c3c406a8b32112f8e1f70b3db1114950dcb1 Author: Valentine Barshak Date: Wed Dec 5 11:14:31 2007 +1100 ibm_newemac: Correct opb_bus_freq value The EMAC4_MR1_OBCI(freq) macro expects freg in MHz, while opb_bus_freq is kept in Hz. Correct this. Signed-off-by: Valentine Barshak Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit 3d722562d734834282bccd97e0badd213ec311e9 Author: Hugh Blemings Date: Wed Dec 5 11:14:30 2007 +1100 ibm_newemac: Skip EMACs that are marked unused by the firmware Depending on how the 44x processors are wired, some EMAC cells might not be useable (and not connected to a PHY). However, some device-trees may choose to still expose them (since their registers are present in the MMIO space) but with an "unused" property in them. Signed-off-by: Hugh Blemings Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit bff713b562d495658093f1716a80c6ad76920e8b Author: Benjamin Herrenschmidt Date: Wed Dec 5 11:14:29 2007 +1100 ibm_newemac: Cleanup/fix support for STACR register variants There are a few variants of the STACR register that affect more than just the "AXON" version of EMAC. Replace the current test of various chip models with tests for generic properties in the device-tree. Signed-off-by: Benjamin Herrenschmidt Acked-by: Stefan Roese Signed-off-by: Jeff Garzik commit 1f57877a39105ec4d99d63d02058f6db6ca6abe0 Author: Benjamin Herrenschmidt Date: Wed Dec 5 11:14:28 2007 +1100 ibm_newemac: Cleanup/Fix RGMII MDIO support detection More than just "AXON" version of EMAC RGMII supports MDIO, so replace the current test with a generic property in the device-tree that indicates such support. Signed-off-by: Benjamin Herrenschmidt Acked-by: Stefan Roese Signed-off-by: Jeff Garzik commit 911b237d7d327db5371a762f4d8d8cd9ea763662 Author: Benjamin Herrenschmidt Date: Wed Dec 5 11:14:27 2007 +1100 ibm_newemac: Workaround reset timeout when no link With some PHYs, when the link goes away, the EMAC reset fails due to the loss of the RX clock I believe. The old EMAC driver worked around that using some internal chip-specific clock force bits that are different on various 44x implementations. This is an attempt at doing it differently, by avoiding the reset when there is no link, but forcing loopback mode instead. It seems to work on my Taishan 440GX based board so far. Signed-off-by: Benjamin Herrenschmidt Acked-by: Stefan Roese Signed-off-by: Jeff Garzik commit 968530643a0685caced9dfd6f72f20d5e7bc8fbb Author: Benjamin Herrenschmidt Date: Wed Dec 5 11:14:27 2007 +1100 ibm_newemac: Fix ZMII refcounting bug When using ZMII for MDIO only (such as 440GX with RGMII for data and ZMII for MDIO), the ZMII code would fail to properly refcount, thus triggering a BUG_ON(). Signed-off-by: Benjamin Herrenschmidt Acked-by: Stefan Roese Signed-off-by: Jeff Garzik commit 8df4538e21f7313a29fa6c5af78c08a135d44738 Author: Stefan Roese Date: Wed Dec 5 11:14:26 2007 +1100 ibm_newemac: Add ET1011c PHY support This adds support for the Agere ET1011c PHY as found on the AMCC Taishan board. Signed-off-by: Stefan Roese Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit f1f304f2e8fbc6ca80d5ef90132bd0772048f0ef Author: Stefan Roese Date: Wed Dec 5 11:14:25 2007 +1100 ibm_newemac: Add BCM5248 and Marvell 88E1111 PHY support This patch adds BCM5248 and Marvell 88E1111 PHY support to NEW EMAC driver. These PHY chips are used on PowerPC 440EPx boards. The PHY code is based on the previous work by Stefan Roese Signed-off-by: Stefan Roese Signed-off-by: Valentine Barshak Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Jeff Garzik commit abf9b902059fb1d569b64e8645a76f0fccbdbbe5 Author: Auke Kok Date: Wed Dec 5 11:57:37 2007 -0800 e100: cleanup unneeded math No need to convert to bytes and back - cleanup unneeded code. Adapted from fix from 'Roel Kluin <12o3l@tiscali.nl>' Signed-off-by: Auke Kok Signed-off-by: Jeff Garzik commit c32bc6e9b0778c891f7f3b97cd05c8cdf98b6721 Author: Roel Kluin <12o3l@tiscali.nl> Date: Wed Dec 5 11:57:30 2007 -0800 e1000: fix memcpy in e1000_get_strings drivers/net/e1000/e1000_ethtool.c:113: #define E1000_TEST_LEN sizeof(e1000_gstrings_test) / ETH_GSTRING_LEN drivers/net/e1000e/ethtool.c:106: #define E1000_TEST_LEN sizeof(e1000_gstrings_test) / ETH_GSTRING_LEN E1000_TEST_LEN*ETH_GSTRING_LEN will expand to sizeof(e1000_gstrings_test) / (ETH_GSTRING_LEN * ETH_GSTRING_LEN) A lack of parentheses around defines causes unexpected results due to operator precedences. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Auke Kok Signed-off-by: Jeff Garzik commit 70eba18b5664f90d7620905e005b89388e5fd94b Author: Eliezer Tamir Date: Wed Dec 5 16:12:39 2007 +0200 make bnx2x select ZLIB_INFLATE The bnx2x module depends on the zlib_inflate functions. The build will fail if ZLIB_INFLATE has not been selected manually or by building another module that automatically selects it. Modify BNX2X config option to 'select ZLIB_INFLATE' like BNX2 and others. This seems to fix it. Signed-off-by: Lee Schermerhorn Acked-by: Eliezer Tamir Signed-off-by: Jeff Garzik commit 75758e8aa4b7d5c651261ce653dd8d0b716e1eda Author: Divy Le Ray Date: Wed Dec 5 10:15:01 2007 -0800 cxgb3 - T3C support update Update GPIO mapping for T3C. Update xgmac for T3C support. Fix typo in mtu table. Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit fdaea7a93d097b066e76c7db6091228a84f87ec2 Author: Jay Vosburgh Date: Thu Dec 6 23:40:35 2007 -0800 bonding: Fix race at module unload Fixes a race condition in module unload. Without this change, workqueue events may fire while bonding data structures are partially freed but before bond_close() is invoked by unregister_netdevice(). Update version to 3.2.3. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 6f6652be183c8c7cb99c646dd7494ab45e4833ba Author: Jay Vosburgh Date: Thu Dec 6 23:40:34 2007 -0800 bonding: Add new layer2+3 hash for xor/802.3ad modes Add new hash for balance-xor and 802.3ad modes. Originally submitted by "Glenn Griffin" ; modified by Jay Vosburgh to move setting of hash policy out of line, tweak the documentation update and add version update to 3.2.2. Glenn's original comment follows: Included is a patch for a new xmit_hash_policy for the bonding driver that selects slaves based on MAC and IP information. This is a middle ground between what currently exists in the layer2 only policy and the layer3+4 policy. This policy strives to be fully 802.3ad compliant by transmitting every packet of any particular flow over the same link. As documented the layer3+4 policy is not fully compliant for extreme cases such as ip fragmentation, so this policy is a nice compromise for environments that require full compliance but desire more than the layer2 only policy. Signed-off-by: "Glenn Griffin" Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit b63bb739a1d24f395c09f88ff43c54c736a60453 Author: David Sterba Date: Thu Dec 6 23:40:33 2007 -0800 bonding: Fix time comparison From: David Sterba Use macros for comparing jiffies. Jiffies' wrap caused missed events and hangs. Module reinsert was needed to make bonding work again. Signed-off-by: David Sterba Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 8e4b9329080b7c37e3dcf4a7c435657d4d0f4816 Author: Wagner Ferenc Date: Thu Dec 6 23:40:32 2007 -0800 bonding: Allow setting and querying xmit policy regardless of mode From: Wagner Ferenc For consistency with the behaviour of the arp_ip_target option, let /sys/class/net/bond0/bonding/xmit_hash_policy accept and report current policy even if the bonding mode in effect does not use it. Signed-off-by: Ferenc Wagner Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 1dcdcd69549c8e439fbe97a94ff0332ed8a55558 Author: Wagner Ferenc Date: Thu Dec 6 23:40:31 2007 -0800 bonding: Coding style: break line after the if condition From: Wagner Ferenc Adhere to coding style: break line after the if condition Signed-off-by: Ferenc Wagner Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit b88436651b612be8c29b169af832d80f00f94b7f Author: Wagner Ferenc Date: Thu Dec 6 23:40:30 2007 -0800 bonding: Purely cosmetic: rename a local variable From: Wagner Ferenc Code for rendering multivalue sysfs files occurs three times in this module. Rename 'buffer' to 'buf' in the first, for the sake of consistency. Signed-off-by: Ferenc Wagner Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 16cd0160d5e7e22c2818b30bf1a1d4c262a8df8a Author: Wagner Ferenc Date: Thu Dec 6 23:40:29 2007 -0800 bonding: Return nothing for not applicable values From: Wagner Ferenc The previous code returned '\n' (that is, a single empty line) from most files, with one exception (xmit_hash_policy), where it returned 'NA\n'. This patch consolidates each file to return nothing at all if not applicable, not even a '\n'. I find this behaviour more usual, more useful, more efficient and shorter to code from both sides. Signed-off-by: Ferenc Wagner Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit 7bd4650895137760f6c686d06ca2bc174e3c861c Author: Wagner Ferenc Date: Thu Dec 6 23:40:28 2007 -0800 bonding: Remove trailing NULs from sysfs interface. From: Wagner Ferenc Also remove trailing spaces from multivalued files. This fixes output like for example: $ od -c /sys/class/net/bond0/bonding/slaves 0000000 e t h - l e f t e t h - r i g 0000020 h t \n \0 0000025 It mostly entails deleting '+1'-s after sprintf() calls: the return value of sprintf is the number of characters printed, without the closing NUL, ie. exactly what the sysfs interface requires. The three multivalue cases are different, because they also have to swallow back a trailing space. Signed-off-by: Ferenc Wagner Acked-by: Jay Vosburgh Signed-off-by: Jeff Garzik commit e17bcb43a26a7111f851b5ff6d1258ecd355de75 Author: Thomas Gleixner Date: Fri Dec 7 19:16:17 2007 +0100 ACPI: move timer broadcast before busmaster disable The timer broadcast code might access HPET, which should not be accessed after the busmaster disable. In acpi_idle_enter_simple() this change also prevents, that we modify the busmaster state without going actually idle. This might leave the ACPI bm state in a stale state, when we leave the function early in the need_resched() check. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar Acked-by: Venkatesh Pallipadi commit 167b1de3ee4e50d65a2bd0a2667c9cd48faf54f3 Author: Thomas Gleixner Date: Fri Dec 7 19:16:17 2007 +0100 clockevents: warn once when program_event() is called with negative expiry The hrtimer problem with large relative timeouts resulting in a negative expiry time went unnoticed as there is no check in the clockevents_program_event() code. Put a check there with a WARN_ONCE to avoid such problems in the future. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 62f0f61e6673e67151a7c8c0f9a09c7ea43fe2b5 Author: Thomas Gleixner Date: Fri Dec 7 19:16:17 2007 +0100 hrtimers: avoid overflow for large relative timeouts Relative hrtimers with a large timeout value might end up as negative timer values, when the current time is added in hrtimer_start(). This in turn is causing the clockevents_set_next() function to set an huge timeout and sleep for quite a long time when we have a clock source which is capable of long sleeps like HPET. With PIT this almost goes unnoticed as the maximum delta is ~27ms. The non-hrt/nohz code sorts this out in the next timer interrupt, so we never noticed that problem which has been there since the first day of hrtimers. This bug became more apparent in 2.6.24 which activates HPET on more hardware. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 8ced5f69e4bc09adcc6442e090e2e64c197246cf Author: Ingo Molnar Date: Fri Dec 7 19:02:47 2007 +0100 sched: enable early use of sched_clock() some platforms have sched_clock() implementations that cannot be called very early during wakeup. If it's called it might hang or crash in hard to debug ways. So only call update_rq_clock() [which calls sched_clock()] if sched_init() has already been called. (rq->idle is NULL before the scheduler is initialized.) Signed-off-by: Ingo Molnar commit 5f9fa8a62d6a98f5cb2ee2e00b85bfe95e45888d Author: Ingo Molnar Date: Fri Dec 7 19:02:47 2007 +0100 lockdep: make cli/sti annotation warnings clearer make cli/sti annotation warnings easier to interpret. Signed-off-by: Ingo Molnar Signed-off-by: Peter Zijlstra commit 5998a3cf327c90d0a7116eca72c0d2df2be8ecfd Author: Haavard Skinnemoen Date: Mon Dec 3 18:30:15 2007 +0100 [AVR32] Fix wrong pt_regs in critical exception handler It's not like it really matters at this point since the system is dying anyway, but handle_critical pushes too few registers on the stack so the register dump, which makes the register dump look a bit strange. This patch fixes it. Signed-off-by: Haavard Skinnemoen commit 68ca3e537f12044af05a653fa9d28b4fe80117e8 Author: Haavard Skinnemoen Date: Mon Dec 3 18:04:11 2007 +0100 [AVR32] Fix copy_to_user_page() breakage The current implementation of copy_to_user_page() gives "vaddr" to the cache instruction when trying to sync the icache with the dcache. If vaddr does not exist in the TLB, the CPU will silently abort the operation, which may result in the caches staying out of sync. To fix this, pass the "dst" parameter to flush_icache_range() instead -- we know this is valid because we just wrote to it. Signed-off-by: Haavard Skinnemoen commit 2507bc1338e43eadfef5b604d2c47e4f8180718f Author: Haavard Skinnemoen Date: Wed Nov 28 15:04:01 2007 +0100 [AVR32] Follow the rules when dealing with the OCD system The current debug trap handling code does a number of things that are illegal according to the AVR32 Architecture manual. Most importantly, it may try to schedule from Debug Mode, thus clearing the D bit, which can lead to "undefined behaviour". It seems like this works in most cases, but several people have observed somewhat unstable behaviour when debugging programs, including soft lockups. So there's definitely something which is not right with the existing code. The new code will never schedule from Debug mode, it will always exit Debug mode with a "retd" instruction, and if something not running in Debug mode needs to do something debug-related (like doing a single step), it will enter debug mode through a "breakpoint" instruction. The monitor code will then return directly to user space, bypassing its own saved registers if necessary (since we don't actually care about the trapped context, only the one that came before.) This adds three instructions to the common exception handling code, including one branch. It does not touch super-hot paths like the TLB miss handler. Signed-off-by: Haavard Skinnemoen commit 8dfe8f29cd371affcc3c6b35658dc4bd95ee7b61 Author: Haavard Skinnemoen Date: Tue Nov 27 13:31:20 2007 +0100 [AVR32] Clean up OCD register usage Generate a new set of OCD register definitions in asm/ocd.h and rename __mfdr() and __mtdr() to ocd_read() and ocd_write() respectively. The bitfield definitions are a lot more complete now, and they are entirely based on bit numbers, not masks. This is because OCD registers are frequently accessed from assembly code, where bit numbers are a lot more useful (can be fed directly to sbr, bfins, etc.) Bitfields that consist of more than one bit have two definitions: _START, which indicates the number of the first bit, and _SIZE, which indicates the number of bits. These directly correspond to the parameters taken by the bfextu, bfexts and bfins instructions. Signed-off-by: Haavard Skinnemoen commit 320516b78bf197fbf7a38ddab09e9dab75741bae Author: Haavard Skinnemoen Date: Mon Nov 26 14:34:57 2007 +0100 [AVR32] Implement irqflags trace and lockdep support Signed-off-by: Haavard Skinnemoen commit 2f0260371f428fd78ffc2287a5c5768ea8eeab97 Author: Haavard Skinnemoen Date: Fri Nov 23 20:01:59 2007 +0100 [AVR32] Implement stacktrace support Signed-off-by: Haavard Skinnemoen commit 58bd2bfebd02ff7fe84bbb36188e908223b2c7b7 Author: Haavard Skinnemoen Date: Fri Nov 23 19:25:00 2007 +0100 [AVR32] Kconfig: Use def_bool instead of bool + default Signed-off-by: Haavard Skinnemoen commit df679771ce6a6bf57012459fbd15c981deaee526 Author: Haavard Skinnemoen Date: Tue Nov 27 18:59:32 2007 +0100 [AVR32] Fix invalid status register bit definitions in asm/ptrace.h The 'H' bit is bit 29, while the 'R' bit doesn't exist. Luckily, we don't actually use any of the bits in question. Also update show_regs() to show the Debug Mask and Debug state bits. Signed-off-by: Haavard Skinnemoen commit 702f22b306c8357b3ef5012b5a8ce062e1d11b4e Author: Haavard Skinnemoen Date: Tue Nov 27 14:10:58 2007 +0100 [AVR32] Add TIF_RESTORE_SIGMASK to the work masks We really need to check TIF_RESTORE_SIGMASK before returning to userspace. The existing code does not necessarily do this. Define the work masks as a bitwise OR of the respective flags instead of a hardcoded hex value to make it easier to spot errors like this in the future. Signed-off-by: Haavard Skinnemoen commit 4aa9cb320e8081fbaec0c10eb0e077c8ca4d1ad9 Author: David Howells Date: Fri Dec 7 04:31:47 2007 -0800 [AF_RXRPC]: Add a missing goto Add a missing goto to error handling in the RXKAD security module for AF_RXRPC. Signed-off-by: David Howells Signed-off-by: David S. Miller commit b332b8bc9c67165eabdfc7d10b4a2e4cc9f937d0 Author: David S. Miller Date: Fri Dec 7 00:58:55 2007 -0800 [SPARC64]: Fix memory controller register access when non-SMP. get_cpu() always returns zero on non-SMP builds, but we really want the physical cpu number in this code in order to do the right thing. Based upon a non-SMP kernel boot failure report from Bernd Zeimetz. Signed-off-by: David S. Miller commit e35de02615f97b785dc6f73cba421cea06bcbd10 Author: Pavel Emelyanov Date: Thu Dec 6 22:52:16 2007 -0800 [VLAN]: Lost rtnl_unlock() in vlan_ioctl() The SET_VLAN_NAME_TYPE_CMD command w/o CAP_NET_ADMIN capability doesn't release the rtnl lock. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 8e71a11c9f3c09a01fcb445772ffd61b140f2479 Author: Vlad Yasevich Date: Thu Dec 6 22:50:54 2007 -0800 [SCTP]: Fix the bind_addr info during migration. During accept/migrate the code attempts to copy the addresses from the parent endpoint to the new endpoint. However, if the parent was bound to a wildcard address, then we end up pointlessly copying all of the current addresses on the system. Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller commit f26f7c480555812ca7c4037e0a50fa54afe2cb4a Author: Vlad Yasevich Date: Thu Dec 6 22:50:27 2007 -0800 [SCTP]: Add bind hash locking to the migrate code SCTP accept code tries to add a newliy created socket to a bind bucket without holding a lock. On a really busy system, that can causes slab corruptions. Add a lock around this code. Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller commit 56c99d0415e8b778c200f115b198c126243ec351 Author: Denis V. Lunev Date: Thu Dec 6 02:19:07 2007 -0800 [IPV4]: Remove prototype of ip_rt_advice ip_rt_advice has been gone, so no need to keep prototype and debug message. Signed-off-by: Denis V. Lunev Signed-off-by: David S. Miller commit 7f53878dc2618bf7c01e2135bd271ac01bd85dc9 Author: Mitsuru Chinen Date: Fri Dec 7 01:07:24 2007 -0800 [IPv4]: Reply net unreachable ICMP message IPv4 stack doesn't reply any ICMP destination unreachable message with net unreachable code when IP detagrams are being discarded because of no route could be found in the forwarding path. Incidentally, IPv6 stack replies such ICMPv6 message in the similar situation. Signed-off-by: Mitsuru Chinen Signed-off-by: David S. Miller commit dc47206e552c0850ad11f7e9a1fca0a3c92f5d65 Author: Richard Purdie Date: Sat Nov 10 13:29:04 2007 +0000 leds: Fix led trigger locking bugs Convert part of the led trigger core from rw spinlocks to rw semaphores. We're calling functions which can sleep from invalid contexts otherwise. Fixes bug #9264. Signed-off-by: Richard Purdie commit ca46f9c834913fc5d5c196d70673375cdaba6b56 Author: Mitsuru Chinen Date: Wed Dec 5 22:31:47 2007 -0800 [IPv6] SNMP: Increment OutNoRoutes when connecting to unreachable network IPv6 stack doesn't increment OutNoRoutes counter when IP datagrams is being discarded because no route could be found to transmit them to their destination. IPv6 stack should increment the counter. Incidentally, IPv4 stack increments that counter in such situation. Signed-off-by: Mitsuru Chinen Signed-off-by: David S. Miller commit 73afc9069289bdb77cf0c81cb9775dcb63894bbe Author: Andrew Morton Date: Wed Dec 5 21:35:23 2007 -0800 [BRIDGE]: Section fix. WARNING: vmlinux.o(.init.text+0x204e2): Section mismatch: reference to .exit.text:br_fdb_fini (between 'br_init' and 'br_fdb_init') Signed-off-by: Andrew Morton Signed-off-by: David S. Miller commit 0c3b091b9a7a5184011e75afa7f0206d288ddb06 Author: Mirko Lindner Date: Wed Dec 5 21:10:02 2007 -0800 [NIU]: Fix link LED handling. The LED in the current driver will not be controlled correctly. During a link change the carrier of the link is not available and the LED will never turn on. Signed-off-by: David S. Miller commit 7cc955c8fdd58c5f2c98077011a20ce10897288c Author: Grant Likely Date: Fri Dec 7 06:16:44 2007 +1100 [POWERPC] virtex bug fix: Use canonical value for AC97 interrupt xparams The ml300 and ml403 xparameters.h files use different macros for the AC97 interrupt pin assignments. This normalizes them to a canonical value similar to what EDK generates for most other devices. This is needed to get ml300 support to compile in arch/ppc. Signed-off-by: Grant Likely Acked-by: Josh Boyer Signed-off-by: Paul Mackerras commit 74d0f3338fbb3c69894968df1fedaf10c88cd0e4 Author: Pavel Machek Date: Thu Dec 6 09:50:40 2007 +0100 ACPI: suspend: old debugging hacks sneaked back Old debugging hack sneaked back during x86 merge, this removes it. Signed-off-by: Pavel Machek Acked-by: Rafael J. Wysocki Signed-off-by: Len Brown commit bee86f14d51a5a9a3b1897e301da1e415df0ba23 Author: Kumar Gala Date: Thu Dec 6 13:11:04 2007 -0600 [POWERPC] Fix swapper_pg_dir size when CONFIG_PTE_64BIT=y on FSL_BOOKE The size of swapper_pg_dir is 8k instead of 4k when using 64-bit PTEs (CONFIG_PTE_64BIT). This was reported by Cedric Hombourger Signed-off-by: Kumar Gala commit 3743d33edf4e49376384822c57c4ee5cdf2d32f8 Author: Linus Torvalds Date: Thu Dec 6 09:41:12 2007 -0800 Tiny clean-up of OPROFILE/KPROBES configuration Make the Kconfig.instrumentation file a bit easier on the eyes, and use the new ARCH_SUPPORTS_OPROFILE for x86[-64]. Signed-off-by: Linus Torvalds commit 84f4506cb788d85a50c97b399f2999f90e6272b0 Author: Kyle McMartin Date: Thu Dec 6 09:38:26 2007 -0800 [PARISC] lba_pci: pci_claim_resources disabled expansion roms radeonfb was HPMC-ing my C8000 by trying to map its expansion rom from IO_VIEW, instead of PA_VIEW. Fix seems to be to ensure that its disabled ROM is properly inserted into the resource tree. FIXME: this will result in a whinging printk for cards which share expansion ROMS, such as a quad tulip. Thankfully, it isn't harmful. Signed-off-by: Kyle McMartin commit 00a5825332769706eb2e276c101dd20269a53992 Author: Ralf Baechle Date: Thu Dec 6 16:53:19 2007 +0000 Fix oprofile configuration breakage The cleanup 09cadedbdc01f1a4bea1f427d4fb4642eaa19da9 broke the oprofile configuration for MIPS by allowing oprofile support to be built for kernel models where oprofile doesn't have a chance in hell to work. Just a dependecy list on a number of architectures is - surprise - broken and should as per past discussions probably in most considered to be broken in most cases. So I introduce a dependency for the oprofile configuration on ARCH_SUPPORTS_OPROFILE. Signed-off-by: Ralf Baechle Signed-off-by: Linus Torvalds commit 721fdf34167580ff98263c74cead8871d76936e6 Author: Kyle McMartin Date: Thu Dec 6 09:32:15 2007 -0800 [PARISC] print more than one character at a time for pdc console There's really no reason not to print more than one character at a time to the PDC console... Booting is measurably speedier, and now I don't have to watch individual characters get drawn. Signed-off-by: Kyle McMartin commit ac6aecbf0541ca277e6492fdf7c91e46e1fc4171 Author: Kyle McMartin Date: Mon Dec 3 22:04:34 2007 +0000 [PARISC] Update parisc-linux MAINTAINERS entries List changed & reordered so I'm more likely to see patches... Signed-off-by: Kyle McMartin commit 2421ba5b57ddbc3a972b9d6fb884817c39d2fff7 Author: Kyle McMartin Date: Wed Nov 28 02:17:53 2007 -0500 [PARISC] timer interrupt should not be IRQ_DISABLED The timer interrupt had accidentally been marked IRQ_DISABLED since IRQ_PER_CPU had been OR-ed in, instead of set. This had been working by accident for quite a while. Commit c642b8391cf8efc3622cc97329a0f46e7cbb70b8 changed the behaviour of IRQ_PER_CPU interrupts, which previously weren't checked for IRQ_DISABLED. Signed-off-by: Kyle McMartin commit 9d29213fd469c4c409a30b8dbb88c4efcba6e0a6 Author: Kyle McMartin Date: Wed Nov 28 02:07:35 2007 -0500 Revert "[PARISC] import necessary bits of libgcc.a" This reverts commit efb80e7e097d0888e59fbbe4ded2ac5a256f556d, it turned out to cause sporadic problems with the timer interrupt on 32-bit kernels. Needs more investigation. Signed-off-by: Kyle McMartin commit 5e2862eb5a263a0339a85545d96fb20995d67b1f Author: Ralf Baechle Date: Thu Dec 6 09:12:28 2007 +0000 [MIPS] Oprofile: Fix computation of number of counters. VSMP kernels will split the available performance counters between the two processors / cores. But don't do this when we're not on a VSMP system ... Signed-off-by: Ralf Baechle commit 0e8120e0946152720af3d73691550bba108a3826 Author: Sergei Shtylyov Date: Wed Dec 5 19:08:26 2007 +0300 [MIPS] Alchemy: fix IRQ bases Do what the commits commits f3e8d1da389fe2e514e31f6e93c690c8e1243849 and 9d360ab4a7568a8d177280f651a8a772ae52b9b9 failed to achieve -- actually convert the Alchemy code to irq_cpu. Signed-off-by: Sergei Shtylyov Signed-off-by: Ralf Baechle commit 4b36673284f86c649b9d9ec5818b1912fde556b3 Author: Sergei Shtylyov Date: Wed Dec 5 19:08:24 2007 +0300 [MIPS] Alchemy: replace ffs() with __ffs() Fix havoc wrought by commit 56f621c7f6f735311eed3f36858b402013023c18 -- au_ffs() and ffs() are equivalent, that patch should have just replaced one with another. Now replace ffs() with __ffs() which returns an unbiased bit number. Signed-off-by: Sergei Shtylyov Signed-off-by: Ralf Baechle commit f435a91e66e7776f0c73fca5af3cb87c61130ed6 Author: Ralf Baechle Date: Thu Dec 6 17:15:57 2007 +0000 [MIPS] BCM1480: Fix interrupt routing, take 2. Signed-off-by: Ralf Baechle commit 43af66e1359999e3a6e306d4ee6edfc6c7d26595 Author: Paul Mackerras Date: Thu Dec 6 16:53:35 2007 +1100 [POWERPC] Update defconfigs This updates all the defconfigs in arch/powerpc/configs except iseries and ps3, which were updated by the preceding commits. This mostly takes the defaults, except that I turned on tickless idle and high-resolution timers for everything, and turned off instrumentation support and "Fair group CPU scheduler" for the smaller/embedded platforms. Signed-off-by: Paul Mackerras commit b3330def90865ce0400f8d6919846f9201d0feff Author: Geoff Levand Date: Wed Dec 5 18:13:38 2007 +1100 [POWERPC] PS3: Update ps3_defconfig Update ps3_defconfig. Signed-off-by: Geoff Levand Signed-off-by: Paul Mackerras commit d4a76d2bdf7e1cd9006765437165fb875f17fc34 Author: Stephen Rothwell Date: Wed Nov 21 11:45:52 2007 +1100 [POWERPC] Update iseries_defconfig The notable changes here are the enabling of NO_HZ and HIGH_RES_TIMERS. Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras commit 81a3843f97cff5fef7b6006fcd2d015d3c4b569f Author: Tony Breeds Date: Tue Dec 4 16:51:44 2007 +1100 [POWERPC] Fix hardware IRQ time accounting problem. The commit fa13a5a1f25f671d084d8884be96fc48d9b68275 (sched: restore deterministic CPU accounting on powerpc), unconditionally calls update_process_tick() in system context. In the deterministic accounting case this is the correct thing to do. However, in the non-deterministic accounting case we need to not do this, since doing this results in the time accounted as hardware irq time being artificially elevated. Also this collapses 2 consecutive '#ifdef CONFIG_VIRT_CPU_ACCOUNTING' checks in time.h into one for neatness. Signed-off-by: Tony Breeds Signed-off-by: Paul Mackerras commit 97bd7919e2c1445dabbcc2686795dbb52316b923 Author: Al Viro Date: Wed Dec 5 08:46:47 2007 +0000 remove nonsense force-casts from ocfs2 endianness annotations in networking code had been in place for quite a while; in particular, sin_port and s_addr are annotated as big-endian. Code in ocfs2 had __force casts added apparently to shut the sparse warnings up; of course, these days they only serve to *produce* warnings for no reason whatsoever... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds commit 7e46aa5c8cb1347853de9ec86f3fa440f9dc9d77 Author: Al Viro Date: Wed Dec 5 08:32:52 2007 +0000 regression: bfs endianness bug BFS_FILEBLOCKS() expects struct bfs_inode * (on-disk data, with little- endian fields), not struct bfs_inode_info * (in-core stuff, with host- endian ones). It's a macro and fields with the right names are present in bfs_inode_info, so it compiles, but on big-endian host it gives bogus results. Introduced in commit f433dc56344cb72cc3de5ba0819021cec3aef807 ("Fixes to the BFS filesystem driver"). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds commit 3c50b3683a8efbf3b4b314209d86aed1a0c44d5b Author: Al Viro Date: Wed Dec 5 08:38:56 2007 +0000 fcrypt endianness misannotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds commit 79901a9738d75faba0f08547ff17d676af2f5be3 Author: Al Viro Date: Wed Dec 5 08:36:15 2007 +0000 no need to mess with KBUILD_CFLAGS on uml-i386 anymore Now that X86_32 is provided on Kconfig level for uml-i386, there's no need to play with it explicitly on Makefile level anymore. Signed-off-by: Al Viro Acked-by: Jeff Dike Signed-off-by: Linus Torvalds commit 9b5e6857b3f3acc8ab434e565b7ec87bf9f9b53c Author: Al Viro Date: Wed Dec 5 08:24:38 2007 +0000 regression: cifs endianness bug access_flags_to_mode() gets on-the-wire data (little-endian) and treats it as host-endian. Introduced in commit e01b64001359034d04c695388870936ed3d1b56b ("[CIFS] enable get mode from ACL when cifsacl mount option specified") Signed-off-by: Al Viro Signed-off-by: Linus Torvalds commit ecaf18c15aac8bb9bed7b7aa0e382fe252e275d5 Author: Eric Paris Date: Tue Dec 4 23:45:31 2007 -0800 VM/Security: add security hook to do_brk Given a specifically crafted binary do_brk() can be used to get low pages available in userspace virtual memory and can thus be used to circumvent the mmap_min_addr low memory protection. Add security checks in do_brk(). Signed-off-by: Eric Paris Acked-by: Alan Cox Cc: Stephen Smalley Cc: James Morris Cc: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 294a80a8ed004b383ab214837e1c05ca4098a717 Author: Vegard Nossum Date: Tue Dec 4 23:45:30 2007 -0800 SLUB's ksize() fails for size > 2048 I can't pass memory allocated by kmalloc() to ksize() if it is allocated by SLUB allocator and size is larger than (I guess) PAGE_SIZE / 2. The error of ksize() seems to be that it does not check if the allocation was made by SLUB or the page allocator. Reviewed-by: Pekka Enberg Tested-by: Tetsuo Handa Cc: Christoph Lameter , Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5a622f2d0f86b316b07b55a4866ecb5518dd1cf7 Author: Alexey Dobriyan Date: Tue Dec 4 23:45:28 2007 -0800 proc: fix proc_dir_entry refcounting Creating PDEs with refcount 0 and "deleted" flag has problems (see below). Switch to usual scheme: * PDE is created with refcount 1 * every de_get does +1 * every de_put() and remove_proc_entry() do -1 * once refcount reaches 0, PDE is freed. This elegantly fixes at least two following races (both observed) without introducing new locks, without abusing old locks, without spreading lock_kernel(): 1) PDE leak remove_proc_entry de_put ----------------- ------ [refcnt = 1] if (atomic_read(&de->count) == 0) if (atomic_dec_and_test(&de->count)) if (de->deleted) /* also not taken! */ free_proc_entry(de); else de->deleted = 1; [refcount=0, deleted=1] 2) use after free remove_proc_entry de_put ----------------- ------ [refcnt = 1] if (atomic_dec_and_test(&de->count)) if (atomic_read(&de->count) == 0) free_proc_entry(de); /* boom! */ if (de->deleted) free_proc_entry(de); BUG: unable to handle kernel paging request at virtual address 6b6b6b6b printing eip: c10acdda *pdpt = 00000000338f8001 *pde = 0000000000000000 Oops: 0000 [#1] PREEMPT SMP Modules linked in: af_packet ipv6 cpufreq_ondemand loop serio_raw psmouse k8temp hwmon sr_mod cdrom Pid: 23161, comm: cat Not tainted (2.6.24-rc2-8c0863403f109a43d7000b4646da4818220d501f #4) EIP: 0060:[] EFLAGS: 00210097 CPU: 1 EIP is at strnlen+0x6/0x18 EAX: 6b6b6b6b EBX: 6b6b6b6b ECX: 6b6b6b6b EDX: fffffffe ESI: c128fa3b EDI: f380bf34 EBP: ffffffff ESP: f380be44 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process cat (pid: 23161, ti=f380b000 task=f38f2570 task.ti=f380b000) Stack: c10ac4f0 00000278 c12ce000 f43cd2a8 00000163 00000000 7da86067 00000400 c128fa20 00896b18 f38325a8 c128fe20 ffffffff 00000000 c11f291e 00000400 f75be300 c128fa20 f769c9a0 c10ac779 f380bf34 f7bfee70 c1018e6b f380bf34 Call Trace: [] vsnprintf+0x2ad/0x49b [] vscnprintf+0x14/0x1f [] vprintk+0xc5/0x2f9 [] handle_fasteoi_irq+0x0/0xab [] do_IRQ+0x9f/0xb7 [] preempt_schedule_irq+0x3f/0x5b [] need_resched+0x1f/0x21 [] printk+0x1b/0x1f [] de_put+0x3d/0x50 [] proc_delete_inode+0x38/0x41 [] proc_delete_inode+0x0/0x41 [] generic_delete_inode+0x5e/0xc6 [] iput+0x60/0x62 [] d_kill+0x2d/0x46 [] dput+0xdc/0xe4 [] __fput+0xb0/0xcd [] filp_close+0x48/0x4f [] sys_close+0x67/0xa5 [] sysenter_past_esp+0x5f/0x85 ======================= Code: c9 74 0c f2 ae 74 05 bf 01 00 00 00 4f 89 fa 5f 89 d0 c3 85 c9 57 89 c7 89 d0 74 05 f2 ae 75 01 4f 89 f8 5f c3 89 c1 89 c8 eb 06 <80> 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 c3 90 90 90 57 83 c9 EIP: [] strnlen+0x6/0x18 SS:ESP 0068:f380be44 Also, remove broken usage of ->deleted from reiserfs: if sget() succeeds, module is already pinned and remove_proc_entry() can't happen => nobody can mark PDE deleted. Dummy proc root in netns code is not marked with refcount 1. AFAICS, we never get it, it's just for proper /proc/net removal. I double checked CLONE_NETNS continues to work. Patch survives many hours of modprobe/rmmod/cat loops without new bugs which can be attributed to refcounting. Signed-off-by: Alexey Dobriyan Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d4beaf4ab5f89496f2bcf67db62ad95d99bfeff6 Author: Jan Kara Date: Tue Dec 4 23:45:27 2007 -0800 jbd: Fix assertion failure in fs/jbd/checkpoint.c Before we start committing a transaction, we call __journal_clean_checkpoint_list() to cleanup transaction's written-back buffers. If this call happens to remove all of them (and there were already some buffers), __journal_remove_checkpoint() will decide to free the transaction because it isn't (yet) a committing transaction and soon we fail some assertion - the transaction really isn't ready to be freed :). We change the check in __journal_remove_checkpoint() to free only a transaction in T_FINISHED state. The locking there is subtle though (as everywhere in JBD ;(). We use j_list_lock to protect the check and a subsequent call to __journal_drop_transaction() and do the same in the end of journal_commit_transaction() which is the only place where a transaction can get to T_FINISHED state. Probably I'm too paranoid here and such locking is not really necessary - checkpoint lists are processed only from log_do_checkpoint() where a transaction must be already committed to be processed or from __journal_clean_checkpoint_list() where kjournald itself calls it and thus transaction cannot change state either. Better be safe if something changes in future... Signed-off-by: Jan Kara Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 369b8f5a70402d9fe77006cd0044c8a3fcd08430 Author: Nick Piggin Date: Tue Dec 4 23:45:25 2007 -0800 mm: fix XIP file writes Writing to XIP files at a non-page-aligned offset results in data corruption because the writes were always sent to the start of the page. Signed-off-by: Nick Piggin Cc: Christian Borntraeger Acked-by: Carsten Otte Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4670df831cb479ba57dd0fa0b8a9eb88cc7129be Author: Ben Gardner Date: Tue Dec 4 23:45:24 2007 -0800 gpio_cs5535: disable AUX on output The AMD CS5535/CS5536 GPIO has two alternate output modes: AUX-1 and AUX-2. When either AUX is enabled, the cs5535_gpio driver cannot control the output. Some BIOS code for the Geode processor enables AUX-1 for GPIO-1, which configures it as the PC BEEP output. This patch will disable AUX-1 and AUX-2 when the user enables output. Signed-of-by: Ben Gardner Cc: Richard Knutsson Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f1dad166e88a5ddca0acf8f11dea0e2bd92d8bf3 Author: Pavel Emelyanov Date: Tue Dec 4 23:45:24 2007 -0800 Avoid potential NULL dereference in unregister_sysctl_table register_sysctl_table() can return NULL sometimes, e.g. when kmalloc() returns NULL or when sysctl check fails. I've also noticed, that many (most?) code in the kernel doesn't check for the return value from register_sysctl_table() and later simply calls the unregister_sysctl_table() with potentially NULL argument. This is unlikely on a common kernel configuration, but in case we're dealing with modules and/or fault-injection support, there's a slight possibility of an OOPS. Changing all the users to check for return code from the registering does not look like a good solution - there are too many code doing this and failure in sysctl tables registration is not a good reason to abort module loading (in most of the cases). So I think, that we can just have this check in unregister_sysctl_table just to avoid accidental OOPS-es (actually, the unregister_sysctl_table() did exactly this, before the start_unregistering() appeared). Signed-off-by: Pavel Emelyanov Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 092e1fdaf35126475aef0dc70f4a2ce4f2f43052 Author: Bryan Wu Date: Tue Dec 4 23:45:23 2007 -0800 Blackfin SPI driver: reconfigure speed_hz and bits_per_word in each spi transfer - reconfigure SPI baud from speed_hz of each spi transfer - according to spi_transfer.bits_per_word to reprogram register and setup correct SPI operation handlers Signed-off-by: Bryan Wu Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 003d922618150eaab53936f57ba8a61f2b601486 Author: Bryan Wu Date: Tue Dec 4 23:45:22 2007 -0800 Blackfin SPI driver: move hard coded pin_req to board file Remove some sort of bloaty code, try to get these pin_req arrays built at compile-time - move this static things to the blackfin board file - add pin_req array to struct bfin5xx_spi_master - tested on BF537/BF548 with SPI flash Signed-off-by: Bryan Wu Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f452126c2e4b8bbfd8e41ebdf1e734e3bf18f8e9 Author: Bryan Wu Date: Tue Dec 4 23:45:22 2007 -0800 Blackfin SPI driver: use void __iomem * for regs_base Signed-off-by: Bryan Wu Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8c05008b0e464c94967ed2f20d1d661fca6790e Author: Bryan Wu Date: Tue Dec 4 23:45:21 2007 -0800 Blackfin SPI driver: use cpu_relax() to replace continue in while busywait Signed-off-by: Bryan Wu Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 07612e5f224613020c0ba17ce28e8eac052ef8ce Author: Sonic Zhang Date: Tue Dec 4 23:45:21 2007 -0800 spi: spi_bfin: resequence DMA start/stop Set correct baud for spi mmc and enable SPI only after DMA is started. Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 62310e51ac10c5e50998240e49a84d2e28377a48 Author: Bryan Wu Date: Tue Dec 4 23:45:20 2007 -0800 spi: spi_bfin: update handling of delay-after-deselect Move cs_chg_udelay handling (specific to this driver) to cs_deactive(), fixing a bug when some SPI LCD driver needs delay after cs_deactive. Fix bug reported by Cameron Barfield https://blackfin.uclinux.org/gf/project/uclinux-dist/forum/?action=ForumBrowse&forum_id=39&_forum_action=ForumMessageBrowse&thread_id=23630&feedback=Message%20replied. Cc: Cameron Barfield Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c3061abb9e95920407288cba143dc1af0babf099 Author: Bryan Wu Date: Tue Dec 4 23:45:19 2007 -0800 spi: spi_bfin: bugfix for 8..16 bit word sizes Fix bug in u16_cs_chg_reader to read data_len-2 bytes data firstly, then read out the last 2 bytes data Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb90eb00b6c28c8be5a69c6b58d5a6924f6f2ad7 Author: Bryan Wu Date: Tue Dec 4 23:45:18 2007 -0800 spi: spi_bfin: handle multiple spi_masters Move global SPI regs_base and dma_ch to struct driver_data. Test on BF54x SPI Flash with 2 spi_master devices enabled. Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3f479a65b3f49ee4f058a965e6e33d97ee467b68 Author: Sonic Zhang Date: Tue Dec 4 23:45:18 2007 -0800 spi: spi_bfin: relocate spin/waits Move spin/waits to more correct locations in bfin SPI driver. Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cc487e732089360727e60f9fdbe3ff6cc4ca3155 Author: Sonic Zhang Date: Tue Dec 4 23:45:17 2007 -0800 spi: spi_bfin: change handling of communication parameters Fix SPI driver to work with SPI flash ST M25P16 on bf548 Currently the SPI driver enables the SPI controller and sets the SPI baud register for each SPI transfer. But they should never be changed within a SPI message session, in which several SPI transfers are pumped. This patch moves SPI setting to the begining of a message session, and never disables SPI controller until an error occurs. Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 12e17c4267a5b2a5ba77bd53a62388be641534b8 Author: Sonic Zhang Date: Tue Dec 4 23:45:16 2007 -0800 spi: spi_bfin, rearrange portmux calls Move pin muxing to setup and cleanup methods. Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c4ef09449ca382da2e39b93ca9d03e3dbd5c17c Author: Sonic Zhang Date: Tue Dec 4 23:45:16 2007 -0800 spi: spi_bfin uses portmux for additional busses Use portmux mechanism to support SPI busses 1 and 2, instead of just the original bus 0. Signed-off-by: Sonic Zhang Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a32c691d7cf5c37af753255ef4843b18a31935b9 Author: Bryan Wu Date: Tue Dec 4 23:45:15 2007 -0800 spi: spi_bfin uses platform device resources Update spi driver to support multi-ports by using platform resources; tested on STAMP537+SPI_MMC, other boards need more testing. Plus other minor updates. Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2ed355165ff4ec834a75770f2a15dc87f5e06088 Author: Mike Frysinger Date: Tue Dec 4 23:45:14 2007 -0800 spi: spi_bfin, don't bypass spi framework Prevent people from setting bits in ctl_reg that the SPI framework already handles, hopefully we can one day drop ctl_reg completely Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fad91c890909aabab0d9858d50f3c8394ee16b21 Author: Bryan Wu Date: Tue Dec 4 23:45:14 2007 -0800 spi: spi_bfin handles spi_transfer.cs_change Respect per-transfer cs_change field (protocol tweaking support) by adding and using cs_active/cs_deactive functions. Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5fec5b5a4ec0d6d8b41c56e3cc7de41063cd4736 Author: Bryan Wu Date: Tue Dec 4 23:45:13 2007 -0800 spi: spi_bfin cleanups, error handling Cleanup and error handling - add error handling in SPI bus driver with selecting clients - use proper defines to access Blackfin MMRs - remove useless SSYNCs - cleaner use of portmux calls Signed-off-by: Michael Hennerich Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cc2f81a695640dd1c0cf12b35ee303460fa6d0bc Author: Michael Hennerich Date: Tue Dec 4 23:45:13 2007 -0800 spi: bfin spi uses portmux calls Use new Blackfin portmux interface, add error handling. Signed-off-by: Michael Hennerich Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 131b17d42de6194fa960132c1f62c29923c4f20c Author: Bryan Wu Date: Tue Dec 4 23:45:12 2007 -0800 spi: initial BF54x SPI support Initial BF54x SPI support - support BF54x SPI0 - clean up some code (whitespace etc) - will support multiports in the future - start using portmux calls Signed-off-by: Bryan Wu Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c24b2602af88db4489c6c3fb4b2a8e47fb15769b Author: Marc Pignat Date: Tue Dec 4 23:45:11 2007 -0800 spi: use simplified spi_sync() calling convention Given the patch which simplifies the spi_sync calling convention, this one updates the callers of that routine which tried using it according to the previous specification. (Most didn't.) Signed-off-by: Marc Pignat Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9b938b749065d6a94172ac24d9748bd66a03da4c Author: Marc Pignat Date: Tue Dec 4 23:45:10 2007 -0800 spi: simplify spi_sync() calling convention Simplify spi_sync calling convention, eliminating the need to check both the return value AND the message->status. In consequence, this corrects misbehaviours of spi_read and spi_write (which only checked the former) and their callers. Signed-off-by: Marc Pignat Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3f86f14c0fc9fdb0984e64209df2f47895a07151 Author: David Brownell Date: Tue Dec 4 23:45:10 2007 -0800 spi: at25 driver is for EEPROM not FLASH Add comment to at25 driver that it's for EEPROM chips, not FLASH chips ... the AT25 series has both types of chip, and sometimes they're even pin-compatible. The command sets are different, as is the treatment of erasure. (FLASH needs explicit erasure, but with EEPROM it's implicit.) Note that all vendors seem to have this same confusion in their *25* series SPI memory parts. Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 068f4070868c801c7d7aa1ae1193c1c854193545 Author: David Brownell Date: Tue Dec 4 23:45:09 2007 -0800 SPI: use mutex not semaphore Make spi_write_then_read() use a mutex not a binary semaphore. Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f8fcc93319faa09272185af100fb24e71b02ab03 Author: Tetsuo Handa Date: Tue Dec 4 23:45:08 2007 -0800 Add EXPORT_SYMBOL(ksize); mm/slub.c exports ksize(), but mm/slob.c and mm/slab.c don't. It's used by binfmt_flat, which can be built as a module. Signed-off-by: Tetsuo Handa Cc: Christoph Lameter Cc: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4b01a0b1613beeb01e12c78feb69e98f0da0a69a Author: Denis Cheng Date: Tue Dec 4 23:45:07 2007 -0800 mm/backing-dev.c: fix percpu_counter_destroy call bug in bdi_init this call should use the array index j, not i. But with this approach, just one int i is enough, int j is not needed. Signed-off-by: Denis Cheng Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0c664f974269bb4c3d38ba900c91a9a5d4cee5b1 Author: Evgeniy Dushistov Date: Tue Dec 4 23:45:06 2007 -0800 ufs: fix nexstep dir block size This patch fixes regression, introduced since 2.6.16. NextStep variant of UFS as OpenStep uses directory block size equals to 1024. Without this change, ufs_check_page fails in many cases. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Evgeniy Dushistov Cc: Dave Bailey Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 372a302e9a892229206aafca0352584a745bc5f3 Author: Jiri Kosina Date: Tue Dec 4 23:45:05 2007 -0800 RTC: assure proper memory ordering with respect to RTC_DEV_BUSY flag We must make sure that the RTC_DEV_BUSY flag has proper lock semantics, i.e. that the RTC_DEV_BUSY stores clearing the flag don't get reordered before the preceeding stores and loads and vice versa. Spotted by Nick Piggin. Signed-off-by: Jiri Kosina Cc: Nick Piggin Cc: David Brownell Acked-by: Alessandro Zummo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5cd17569fd0eeca510735e63a6061291e3971bf6 Author: Eric W. Biederman Date: Tue Dec 4 23:45:04 2007 -0800 fix clone(CLONE_NEWPID) Currently we are complicating the code in copy_process, the clone ABI, and if we fix the bugs sys_setsid itself, with an unnecessary open coded version of sys_setsid. So just simplify everything and don't special case the session and pgrp of the initial process in a pid namespace. Having this special case actually presents to user space the classic linux startup conditions with session == pgrp == 0 for /sbin/init. We already handle sending signals to processes in a child pid namespace. We need to handle sending signals to processes in a parent pid namespace for cases like SIGCHILD and SIGIO. This makes nothing extra visible inside a pid namespace. So this extra special case appears to have no redeeming merits. Further removing this special case increases the flexibility of how we can use pid namespaces, by not requiring the initial process in a pid namespace to be a daemon. Signed-off-by: Eric W. Biederman Cc: Oleg Nesterov Cc: Pavel Emelyanov Cc: Sukadev Bhattiprolu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e00ba3dae077f54cfd2af42e939a618caa7a3bca Author: Jeff Moyer Date: Tue Dec 4 23:45:02 2007 -0800 aio: only account I/O wait time in read_events if there are active requests On 2.6.24, top started showing 100% iowait on one CPU when a UML instance was running (but completely idle). The UML code sits in io_getevents waiting for an event to be submitted and completed. Fix this by checking ctx->reqs_active before scheduling to determine whether or not we are waiting for I/O. Signed-off-by: Jeff Moyer Cc: Zach Brown Cc: Miklos Szeredi Cc: Jeff Dike Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cde898fa80a45bb23eab2a060fc79d0913081409 Author: Thomas Gleixner Date: Wed Dec 5 15:46:09 2007 +0100 futex: correctly return -EFAULT not -EINVAL return -EFAULT not -EINVAL. Found by review. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 54561783ee99d73a086f3abbda3e44f87f6bf65b Author: Oleg Nesterov Date: Wed Dec 5 15:46:09 2007 +0100 lockdep: in_range() fix Torsten Kaiser wrote: | static inline int in_range(const void *start, const void *addr, const void *end) | { | return addr >= start && addr <= end; | } | This will return true, if addr is in the range of start (including) | to end (including). | | But debug_check_no_locks_freed() seems does: | const void *mem_to = mem_from + mem_len | -> mem_to is the last byte of the freed range, that fits in_range | lock_from = (void *)hlock->instance; | -> first byte of the lock | lock_to = (void *)(hlock->instance + 1); | -> first byte of the next lock, not last byte of the lock that is being checked! | | The test is: | if (!in_range(mem_from, lock_from, mem_to) && | !in_range(mem_from, lock_to, mem_to)) | continue; | So it tests, if the first byte of the lock is in the range that is freed ->OK | And if the first byte of the *next* lock is in the range that is freed | -> Not OK. We can also simplify in_range checks, we need only 2 comparisons, not 4. If the lock is not in memory range, it should be either at the left of range or at the right. Signed-off-by: Oleg Nesterov Signed-off-by: Ingo Molnar Signed-off-by: Peter Zijlstra commit 856848737bd944c1db3ce0a66bbf67e56bd6f77d Author: Ingo Molnar Date: Wed Dec 5 15:46:09 2007 +0100 lockdep: fix debug_show_all_locks() fix the oops that can be seen in: http://bugzilla.kernel.org/attachment.cgi?id=13828&action=view it is not safe to print the locks of running tasks. (even with this fix we have a small race - but this is a debug function after all.) Signed-off-by: Ingo Molnar Signed-off-by: Peter Zijlstra commit 41a2d6cfa3f77ec469e7e5f06b4d7ffd031f9c0e Author: Ingo Molnar Date: Wed Dec 5 15:46:09 2007 +0100 sched: style cleanups style cleanup of various changes that were done recently. no code changed: text data bss dec hex filename 23680 2542 28 26250 668a sched.o.before 23680 2542 28 26250 668a sched.o.after Signed-off-by: Ingo Molnar commit ce6bd420f43b28038a2c6e8fbb86ad24014727b6 Author: Steven Rostedt Date: Wed Dec 5 15:46:09 2007 +0100 futex: fix for futex_wait signal stack corruption David Holmes found a bug in the -rt tree with respect to pthread_cond_timedwait. After trying his test program on the latest git from mainline, I found the bug was there too. The bug he was seeing that his test program showed, was that if one were to do a "Ctrl-Z" on a process that was in the pthread_cond_timedwait, and then did a "bg" on that process, it would return with a "-ETIMEDOUT" but early. That is, the timer would go off early. Looking into this, I found the source of the problem. And it is a rather nasty bug at that. Here's the relevant code from kernel/futex.c: (not in order in the file) [...] smlinkage long sys_futex(u32 __user *uaddr, int op, u32 val, struct timespec __user *utime, u32 __user *uaddr2, u32 val3) { struct timespec ts; ktime_t t, *tp = NULL; u32 val2 = 0; int cmd = op & FUTEX_CMD_MASK; if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI)) { if (copy_from_user(&ts, utime, sizeof(ts)) != 0) return -EFAULT; if (!timespec_valid(&ts)) return -EINVAL; t = timespec_to_ktime(ts); if (cmd == FUTEX_WAIT) t = ktime_add(ktime_get(), t); tp = &t; } [...] return do_futex(uaddr, op, val, tp, uaddr2, val2, val3); } [...] long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout, u32 __user *uaddr2, u32 val2, u32 val3) { int ret; int cmd = op & FUTEX_CMD_MASK; struct rw_semaphore *fshared = NULL; if (!(op & FUTEX_PRIVATE_FLAG)) fshared = ¤t->mm->mmap_sem; switch (cmd) { case FUTEX_WAIT: ret = futex_wait(uaddr, fshared, val, timeout); [...] static int futex_wait(u32 __user *uaddr, struct rw_semaphore *fshared, u32 val, ktime_t *abs_time) { [...] struct restart_block *restart; restart = ¤t_thread_info()->restart_block; restart->fn = futex_wait_restart; restart->arg0 = (unsigned long)uaddr; restart->arg1 = (unsigned long)val; restart->arg2 = (unsigned long)abs_time; restart->arg3 = 0; if (fshared) restart->arg3 |= ARG3_SHARED; return -ERESTART_RESTARTBLOCK; [...] static long futex_wait_restart(struct restart_block *restart) { u32 __user *uaddr = (u32 __user *)restart->arg0; u32 val = (u32)restart->arg1; ktime_t *abs_time = (ktime_t *)restart->arg2; struct rw_semaphore *fshared = NULL; restart->fn = do_no_restart_syscall; if (restart->arg3 & ARG3_SHARED) fshared = ¤t->mm->mmap_sem; return (long)futex_wait(uaddr, fshared, val, abs_time); } So when the futex_wait is interrupt by a signal we break out of the hrtimer code and set up or return from signal. This code does not return back to userspace, so we set up a RESTARTBLOCK. The bug here is that we save the "abs_time" which is a pointer to the stack variable "ktime_t t" from sys_futex. This returns and unwinds the stack before we get to call our signal. On return from the signal we go to futex_wait_restart, where we update all the parameters for futex_wait and call it. But here we have a problem where abs_time is no longer valid. I verified this with print statements, and sure enough, what abs_time was set to ends up being garbage when we get to futex_wait_restart. The solution I did to solve this (with input from Linus Torvalds) was to add unions to the restart_block to allow system calls to use the restart with specific parameters. This way the futex code now saves the time in a 64bit value in the restart block instead of storing it on the stack. Note: I'm a bit nervious to add "linux/types.h" and use u32 and u64 in thread_info.h, when there's a #ifdef __KERNEL__ just below that. Not sure what that is there for. If this turns out to be a problem, I've tested this with using "unsigned int" for u32 and "unsigned long long" for u64 and it worked just the same. I'm using u32 and u64 just to be consistent with what the futex code uses. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Acked-by: Linus Torvalds commit 9cb1200a286799db897e81bc2b2c1730cfdc9c08 Author: David S. Miller Date: Tue Dec 4 00:38:22 2007 -0800 [SPARC64]: Update defconfig. Signed-off-by: David S. Miller commit b127aa8bafb3b5b555ab0e7d6f87cb8a541a3d46 Author: Julia Lawall Date: Tue Dec 4 00:33:07 2007 -0800 [SPARC]: Add missing of_node_put There should be an of_node_put when breaking out of a loop that iterates using for_each_node_by_type. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 75c6d1410caa6fea861ef3802e8b186f7685f235 Author: Cyrill Gorcunov Date: Tue Nov 20 17:32:19 2007 -0800 [SPARC64]: check for possible NULL pointer dereference This patch adds checking for possible NULL pointer dereference if of_find_property() failed. Signed-off-by: Cyrill Gorcunov Signed-off-by: David S. Miller commit 794b26e0600e3aab399f9d0f225f9e0b8782edbb Author: Joe Perches Date: Mon Nov 19 23:45:16 2007 -0800 [SPARC]: Add missing "space" Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 519c4d2debebc82b201b80fdc48643e19233eb97 Author: Joe Perches Date: Mon Nov 19 23:43:00 2007 -0800 [SPARC64]: Add missing "space" Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 55c45a3ad8e5f9488426332b7baca0261ec2f816 Author: Julia Lawall Date: Mon Nov 19 22:50:01 2007 -0800 [SPARC64]: Add missing pci_dev_put There should be a pci_dev_put when breaking out of a loop that iterates over calls to pci_get_device and similar functions. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 874a5f87f53f80b798140b07fcf81f8d3718b3cc Author: David S. Miller Date: Mon Nov 19 21:35:42 2007 -0800 [SYSCTL_CHECK]: Fix typo in KERN_SPARC_SCONS_PWROFF entry string. Based upon a report by Mikael Pettersson. Signed-off-by: David S. Miller commit 6fab2600f9eae779ac49416e651a7f160004c9ae Author: David S. Miller Date: Wed Nov 14 20:17:24 2007 -0800 [SPARC64]: Missing mdesc_release() in ldc_init(). Signed-off-by: David S. Miller commit 621544eb8c3beaa859c75850f816dd9b056a00a3 Author: Andrew Gallatin Date: Wed Dec 5 02:31:42 2007 -0800 [LRO]: fix lro_gen_skb() alignment Add a field to the lro_mgr struct so that drivers can specify how much padding is required to align layer 3 headers when a packet is copied into a freshly allocated skb by inet_lro.c:lro_gen_skb(). Without padding, skbs generated by LRO will cause alignment warnings on architectures which require strict alignment (seen on sparc64). Myri10GE is updated to use this field. Signed-off-by: Andrew Gallatin Signed-off-by: David S. Miller commit 4e67d876ce07471e02be571038d5435a825f0215 Author: Ilpo Järvinen Date: Wed Dec 5 02:25:32 2007 -0800 [TCP]: NAGLE_PUSH seems to be a wrong way around The comment in tcp_nagle_test suggests that. This bug is very very old, even 2.4.0 seems to have it. Signed-off-by: Ilpo Järvinen Signed-off-by: David S. Miller commit 52d3408150858a301a84bcbfe2f323d90d71d2ce Author: Ilpo Järvinen Date: Wed Dec 5 02:21:35 2007 -0800 [TCP]: Move prior_in_flight collect to more robust place The previous location is after sacktag processing, which affects counters tcp_packets_in_flight depends on. This may manifest as wrong behavior if new SACK blocks are present and all is clear for call to tcp_cong_avoid, which in the case of tcp_reno_cong_avoid bails out early because it thinks that TCP is not limited by cwnd. Signed-off-by: Ilpo Järvinen Signed-off-by: David S. Miller commit 3e6f049e0c4cf0606207c1a210abf50b436e9adf Author: Ilpo Järvinen Date: Wed Dec 5 02:20:21 2007 -0800 [TCP] FRTO: Use of existing funcs make code more obvious & robust Though there's little need for everything that tcp_may_send_now does (actually, even the state had to be adjusted to pass some checks FRTO does not want to occur), it's more robust to let it make the decision if sending is allowed. State adjustments needed: - Make sure snd_cwnd limit is not hit in there - Disable nagle (if necessary) through the frto_counter == 2 The result of check for frto_counter in argument to call for tcp_enter_frto_loss can just be open coded, therefore there isn't need to store the previous frto_counter past tcp_may_send_now. In addition, returns can then be combined. Signed-off-by: Ilpo Järvinen Signed-off-by: David S. Miller commit 92b05e13f16a41405c4f6c953c47b6c4bcf82d30 Author: Pavel Emelyanov Date: Wed Dec 5 02:18:48 2007 -0800 [IRDA]: Move ircomm_tty_line_info() under #ifdef CONFIG_PROC_FS The function in question is called only from ircomm_tty_read_proc, which is under this option. Move this helper to the same place. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 78f150bf94f5430fe8c34edeafe8d01706f38148 Author: Pavel Emelyanov Date: Wed Dec 5 02:18:15 2007 -0800 [ROSE]: Trivial compilation CONFIG_INET=n case The rose_rebuild_header() consists only of some variables in case INET=n, and gcc will warn us about it. Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller commit 4ac63ad6c52e9cdefbcb54ec4575ab12b78b49d9 Author: Pavel Emelyanov Date: Tue Dec 4 00:45:06 2007 -0800 [IPVS]: Fix sched registration race when checking for name collision. The register_ip_vs_scheduler() checks for the scheduler with the same name under the read-locked __ip_vs_sched_lock, then drops, takes it for writing and puts the scheduler in list. This is racy, since we can have a race window between the lock being re-locked for writing. The fix is to search the scheduler with the given name right under the write-locked __ip_vs_sched_lock. Signed-off-by: Pavel Emelyanov Acked-by: Simon Horman Signed-off-by: David S. Miller commit a014bc8f0f0a3a0cac4fef656f101cdfb77b71eb Author: Pavel Emelyanov Date: Tue Dec 4 00:43:24 2007 -0800 [IPVS]: Don't leak sysctl tables if the scheduler registration fails. In case we load lblc or lblcr module we can leak some sysctl tables if the call to register_ip_vs_scheduler() fails. I've looked at the register_ip_vs_scheduler() code and saw, that the only reason to fail is the name collision, so I think that with some 3rd party schedulers this becomes a relevant issue. No? Signed-off-by: Pavel Emelyanov Acked-by: Simon Horman Signed-off-by: David S. Miller commit 5a211a5deabcafdc764817d5b4510c767d317ddc Author: Eric Paris Date: Tue Dec 4 11:06:55 2007 -0500 VM/Security: add security hook to do_brk Given a specifically crafted binary do_brk() can be used to get low pages available in userspace virtually memory and can thus be used to circumvent the mmap_min_addr low memory protection. Add security checks in do_brk(). Signed-off-by: Eric Paris Acked-by: Alan Cox Signed-off-by: James Morris commit 7cd94146cd504016315608e297219f9fb7b1413b Author: Eric Paris Date: Mon Nov 26 18:47:40 2007 -0500 Security: round mmap hint address above mmap_min_addr If mmap_min_addr is set and a process attempts to mmap (not fixed) with a non-null hint address less than mmap_min_addr the mapping will fail the security checks. Since this is just a hint address this patch will round such a hint address above mmap_min_addr. gcj was found to try to be very frugal with vm usage and give hint addresses in the 8k-32k range. Without this patch all such programs failed and with the patch they happily get a higher address. This patch is wrappad in CONFIG_SECURITY since mmap_min_addr doesn't exist without it and there would be no security check possible no matter what. So we should not bother compiling in this rounding if it is just a waste of time. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 8869477a49c3e99def1fcdadd6bbc407fea14b45 Author: Eric Paris Date: Mon Nov 26 18:47:26 2007 -0500 security: protect from stack expantion into low vm addresses Add security checks to make sure we are not attempting to expand the stack into memory protected by mmap_min_addr Signed-off-by: Eric Paris Signed-off-by: James Morris commit ab5a91a8364c3d6fc617abc47cc81d162c01d90a Author: Eric Paris Date: Mon Nov 26 18:47:46 2007 -0500 Security: allow capable check to permit mmap or low vm space On a kernel with CONFIG_SECURITY but without an LSM which implements security_file_mmap it is impossible for an application to mmap addresses lower than mmap_min_addr. Based on a suggestion from a developer in the openwall community this patch adds a check for CAP_SYS_RAWIO. It is assumed that any process with this capability can harm the system a lot more easily than writing some stuff on the zero page and then trying to get the kernel to trip over itself. It also means that programs like X on i686 which use vm86 emulation can work even with mmap_min_addr set. Signed-off-by: Eric Paris Signed-off-by: James Morris commit d313f948309ab22797316e789a7ff8fa358176b6 Author: Stephen Smalley Date: Mon Nov 26 11:12:53 2007 -0500 SELinux: detect dead booleans Instead of using f_op to detect dead booleans, check the inode index against the number of booleans and check the dentry name against the boolean name for that index on reads and writes. This prevents incorrect use of a boolean file opened prior to a policy reload while allowing valid use of it as long as it still corresponds to the same boolean in the policy. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 0955dc03aedfb6a5565445b3f2176255b784cc6a Author: Stephen Smalley Date: Wed Nov 21 09:01:36 2007 -0500 SELinux: do not clear f_op when removing entries Do not clear f_op when removing entries since it isn't safe to do. Signed-off-by: Stephen Smalley Signed-off-by: James Morris commit 6f4a7f4183bdbd02741dcd8edbd10b8628acc5d5 Author: Anton Vorontsov Date: Tue Dec 4 16:17:33 2007 +0300 PHY: Add the phy_device_release device method. Lately I've got this nice badness on mdio bus removal: Device 'e0103120:06' does not have a release() function, it is broken and must be fixed. ------------[ cut here ]------------ Badness at drivers/base/core.c:107 NIP: c015c1a8 LR: c015c1a8 CTR: c0157488 REGS: c34bdcf0 TRAP: 0700 Not tainted (2.6.23-rc5-g9ebadfbb-dirty) MSR: 00029032 CR: 24088422 XER: 00000000 ... [c34bdda0] [c015c1a8] device_release+0x78/0x80 (unreliable) [c34bddb0] [c01354cc] kobject_cleanup+0x80/0xbc [c34bddd0] [c01365f0] kref_put+0x54/0x6c [c34bdde0] [c013543c] kobject_put+0x24/0x34 [c34bddf0] [c015c384] put_device+0x1c/0x2c [c34bde00] [c0180e84] mdiobus_unregister+0x2c/0x58 ... Though actually there is nothing broken, it just device subsystem core expects another "pattern" of resource managment. This patch implement phy device's release function, thus we're getting rid of this badness. Also small hidden bug fixed, hope none other introduced. ;-) Signed-off-by: Anton Vorontsov Acked-by: Andy Fleming Signed-off-by: Jeff Garzik commit f9663aea2a938f9dc60dbfef34b9e7847a69c947 Author: Grant Likely Date: Sat Dec 1 22:10:03 2007 -0700 gianfar: fix compile warning Eliminate an uninitialized variable warning. The code is correct, but a pointer to the automatic variable 'addr' is passed to dma_alloc_coherent. Since addr has never been initialized, and the compiler doesn't know what dma_alloc_coherent will do with it, it complains. Signed-off-by: Grant Likely Signed-off-by: Jeff Garzik commit 4352d82647f679fb8dd9440b34400fa49beedb2c Author: Olof Johansson Date: Mon Dec 3 21:34:14 2007 -0600 pasemi_mac: Fix reuse of free'd skb Turns out we're freeing the skb when we detect CRC error, but we're not clearing out info->skb. We could either clear it and have the stack reallocate it, or just leave it and the rx ring refill code will reuse the one that was allocated. Reusing a freed skb obviously caused some nasty crashes of various kind, as reported by Brent Baude and David Woodhouse. Signed-off-by: Olof Johansson Signed-off-by: Jeff Garzik commit d30f53aeb31d453a5230f526bea592af07944564 Author: Wang Chen Date: Tue Dec 4 10:01:37 2007 +0800 SMC911X: Fix using of dereferenced skb after netif_rx Signed-off-by: Wang Chen Signed-off-by: Jeff Garzik commit 8cfcbe998aa0459e20bbad61376f81c1715b25d6 Author: Stephen Hemminger Date: Mon Dec 3 17:02:17 2007 -0800 sky2: recovery deadlock fix Prevent deadlock in sky2 recovery logic. sky2_down calls napi_synchronize which gets stuck if napi was already disabled. Fix by rearranging slightly and not calling napi_disable until after both ports are stopped. The napi_disable probably is being overly paranoid, but it is safe now. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik commit 4c537e6371a9510c82eb96fb7e1e66017e0e2053 Author: Jon Smirl Date: Mon Dec 3 22:38:10 2007 +0000 Fix memory corruption in fec_mpc52xx The mpc5200 fec driver is corrupting memory. This patch fixes two bugs where the wrong skb was being referenced. Signed-off-by: Jon Smirl Acked-by: Domen Puncer Signed-off-by: Grant Likely Signed-off-by: David Woodhouse Signed-off-by: Jeff Garzik commit 0581d3f53053de597ef4956568c15785e59828ef Author: David Woodhouse Date: Mon Dec 3 04:34:32 2007 +0000 Don't claim to do IPv6 checksum offload Signed-off-by: David Woodhouse Signed-off-by: Jeff Garzik commit 4c14fe91d0209897fda4dea0102c8cd2e1ddd860 Author: Divy Le Ray Date: Sat Dec 1 15:57:17 2007 -0800 cxgb - revert file mode changes. revert inavertant file mode changes Signed-off-by: Divy Le Ray Signed-off-by: Jeff Garzik commit 943547abdfe9b4e27e36a25987909619908dffbf Author: Bartlomiej Zolnierkiewicz Date: Sun Dec 2 03:47:01 2007 +0100 pata_amd/pata_via: de-couple programming of PIO/MWDMA and UDMA timings * Don't program UDMA timings when programming PIO or MWDMA modes. This has also a nice side-effect of fixing regression added by commit 681c80b5d96076f447e8101ac4325c82d8dce508 ("libata: correct handling of SRST reset sequences") (->set_piomode method for PIO0 is called before ->cable_detect method which checks UDMA timings to get the cable type). * Bump driver version. Signed-off-by: Bartlomiej Zolnierkiewicz Tested-by: "Thomas Lindroth" Acked-by: Alan Cox Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Jeff Garzik commit 6ba8695870a5a2ebf6f3d1ee3ac1e4d96d667cf6 Author: peerchen Date: Mon Dec 3 22:20:37 2007 +0800 ahci: add the Device IDs of MCP79 AHCI controller to ahci.c Add the device IDs of legacy mode of MCP79 AHCI controller to ahci.c Signed-off-by: Peer Chen Signed-off-by: Jeff Garzik commit 306b30f74d37f289033c696285e07ce0158a5d7b Author: Mark Lord Date: Tue Dec 4 14:07:52 2007 -0500 sata_mv: Warn about HPT RocketRAID BIOS treatment of "Legacy" drives The Highpoint RocketRAID boards using Marvell 7042 chips overwrite the 9th sector of attached drives at boot time, when those drives are configured as "Legacy" (the default) in the HighPoint BIOS. This kills GRUB, and probably other stuff. But it all happens *before* Linux is even loaded. So, for now we'll log a WARNING when such boards are detected, and advise users to configure BIOS "JBOD" volumes instead, which don't appear to suffer from this problem. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 3f3debdbfb7713aa06c4370bab6bef277dfd7a37 Author: Robert Hancock Date: Sun Nov 25 16:59:36 2007 -0600 sata_nv: don't use legacy DMA in ADMA mode (v3) We need to run any DMA command with result taskfile requested in ADMA mode when the port is in ADMA mode, otherwise it may try to use the legacy DMA engine in ADMA mode which is not allowed. Enforce this with BUG_ON() since data corruption could potentially result if this happened. Also, fail any attempt to try and issue NCQ commands with result taskfile requested, since the hardware doesn't allow this. Signed-off-by: Robert Hancock Signed-off-by: Jeff Garzik commit 220821028cd764c24e60485251c4d0bc1732bdfa Author: Adrian Bunk Date: Tue Dec 4 14:35:00 2007 +0100 MAINTAINERS: remove the MTRR entry I haven't seen Richard doing MTRR related work for quite some time, and the "X86 ARCHITECTURE" entry in MAINTAINERS already covers the people currently responsible for this code. Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Signed-off-by: Linus Torvalds commit 799b37b5ee6b4c197f38611eb7f02552e4f14e70 Author: Ingo Molnar Date: Tue Dec 4 11:32:38 2007 +0100 drivers/s390/net/ctcmain.c: fix build bug SET_MODULE_OWNER() is obsolete. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit da54becc7166b5fad70538acea5e93bdd83dd8a6 Author: Andrew Morton Date: Tue Dec 4 17:19:07 2007 +0100 x86: arch_register_cpu() section fix fix this on i386 allnoconfig: WARNING: vmlinux.o(.text+0x6f2e): Section mismatch: reference to .init.text:register_cpu (between 'arch_register_cpu' and 'text_poke') Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f22d9bc1e87270586610216084b00cb2fb09abba Author: Adrian Bunk Date: Tue Dec 4 17:19:07 2007 +0100 x86: free_cache_attributes() section fix free_cache_attributes() must be __cpuinit since it calls the __cpuinit cache_remove_shared_cpu_map(). This patch fixes the following section mismatch reported by Chris Clayton: ... WARNING: vmlinux.o(.text+0x90b6): Section mismatch: reference to .init.text:cache_remove_shared_cpu_map (between 'free_cache_attributes' and 'show_level') ... Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 75bc122c2dc4d497909248e85d86139e54c8fd13 Author: Don Zickus Date: Tue Dec 4 17:19:07 2007 +0100 x86: add the word 'WARNING' in check_nmi_watchdog() output Our automated test suite looks for keywords like error, fail, warning in the boot log. In the case when the nmi watchdog is determined to be stuck in check_nmi_watchdog(), none of those keywords are displayed. This patch adds a keyword, "WARNING:", so it makes it easier to notice when the nmi watchdog isn't working correctly. Also add a proper KERN_WARNING mark to this printout. Signed-off-by: Don Zickus Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ee0011a798ba0e9134506830c58323f2bfcd2443 Author: Adrian Bunk Date: Tue Dec 4 17:19:07 2007 +0100 x86: revert CONFIG_X86_HT semantics change The recent Kconfig changes in x86 resulted in CONFIG_X86_HT no longer being set if (X86_32 && MK8). After grep'ing through the tree I think the problem is that different places have different assumptions about the semantics of CONFIG_X86_HT, either: - hyperthreading or - multicore This should be sorted out properly, but until then we should keep the 2.6.23 status quo. Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit db292ca302e83534f5f0f7139e13d7e6976e51f9 Author: Ingo Molnar Date: Tue Dec 4 17:04:39 2007 +0100 sched: default to more agressive yield for SCHED_BATCH tasks do more agressive yield for SCHED_BATCH tuned tasks: they are all about throughput anyway. This allows a gentler migration path for any apps that relied on stronger yield. Signed-off-by: Ingo Molnar commit 77034937dc4575ca0a76bf209838ecd39e804089 Author: Ingo Molnar Date: Tue Dec 4 17:04:39 2007 +0100 sched: fix crash in sys_sched_rr_get_interval() Luiz Fernando N. Capitulino reported that sched_rr_get_interval() crashes for SCHED_OTHER tasks that are on an idle runqueue. The fix is to return a 0 timeslice for tasks that are on an idle runqueue. (and which are not running, obviously) this also shrinks the code a bit: text data bss dec hex filename 47903 3934 336 52173 cbcd sched.o.before 47885 3934 336 52155 cbbb sched.o.after Reported-by: Luiz Fernando N. Capitulino Signed-off-by: Ingo Molnar commit 7af0d6f753f5adf773f99470666b50490d3379f1 Author: Heiko Carstens Date: Tue Dec 4 16:09:05 2007 +0100 [S390] Make sure the restore psw masks are initialized. In case of TRACE_IRQFLAGS the restore psw masks will not be initialized if noexec is turned on. This will lead to an immediate system crash. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit ab1809b4ed9a3aaf3b34133a776a94f9fad54cc4 Author: Christian Borntraeger Date: Tue Dec 4 16:09:04 2007 +0100 [S390] Fix compile error on 31bit without preemption Commit b8e7a54cd06b0b0174029ef3a7f5a1415a2c28f2 introduced a compile error if CONFIG_PREEMPT is not set: arch/s390/kernel/built-in.o: In function `cleanup_io_leave_insn': /space/kvm/arch/s390/kernel/entry.S:(.text+0xbfce): undefined reference to `preempt_schedule_irq' This patch hides preempt_schedule_irq if CONFIG_PREEMPT is not set. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky commit 436d1bc7fe6e78e37fe5f5022ea4d5c133d825eb Author: Christian Borntraeger Date: Tue Dec 4 16:09:03 2007 +0100 [S390] dcssblk: prevent early access without own make_request function When loading a dcss segment with the dcssblk driver, sometimes the following kind of message appears: bio too big device dcssblk0 (8 > 0) Buffer I/O error on device dcssblk0, logical block 172016 .. The fix is to move the disk registration after setting the make_request function, to avoid calls into generic_make_request for dcssblock without having the make_request function set up properly. Cc: Gerald Schaefer Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky commit 671756162cfb0b3ccbb6a0047baa3010885561a2 Author: Peter Oberparleiter Date: Tue Dec 4 16:09:02 2007 +0100 [S390] cio: add missing reprobe loop end statement Add loop end statement to prevent looping over empty subchannel sets. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky commit c94dec99f9759c41cadf0f2781846da5b40a98f6 Author: Cornelia Huck Date: Tue Dec 4 16:09:01 2007 +0100 [S390] cio: Issue SenseID per path. We may receive a unit check for every path when we issue a SenseID. Unfortunately, the channel subsystem will try on a different path every time if we use a lpm of 0xff, which will exhaust our retry counter. Therefore, revert SenseID to its previous per-path behaviour and just leave out the suspend multipath reconnect. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky commit e136e769d471e7f3d24a8f6bf9c91dcb372bd0ab Author: Rafael J. Wysocki Date: Tue Dec 4 01:11:09 2007 +0100 Freezer: Fix JFFS2 garbage collector freezing issue (rev. 2) Fix breakage caused by commit d5d8c5976d6adeddb8208c240460411e2198b393 "freezer: do not send signals to kernel threads" in jffs2_garbage_collect_thread() that assumed it would be sent signals by the freezer. Signed-off-by: Rafael J. Wysocki Cc: David Woodhouse Cc: Pete MacKay Signed-off-by: Len Brown commit 561d9a969455cb009bb15b63e1d925dc527e7a9d Author: Rafael J. Wysocki Date: Mon Dec 3 18:01:50 2007 +0100 HWMON: coretemp, suspend fix It's not permitted to unregister a device after devices have been suspended. It causes deadlocks to appear on systems with coretemp hwmon loaded.  To avoid this, we can make coretemp_cpu_callback() do nothing if the _FROZEN bit is set in action.   Also, in other cases it's generally too late to unregister the coretemp device if the CPU is already dead, so it should be unregistered on CPU_DOWN_PREPARE.   Signed-off-by: Rafael J. Wysocki Acked-by: Mark M. Hoffman Cc: Jiri Slaby Cc: Andrew Morton Signed-off-by: Len Brown commit cb43c54ca05c01533c45e4d3abfe8f99b7acf624 Author: Rafael J. Wysocki Date: Wed Nov 21 02:53:14 2007 +0100 Freezer: Fix APM emulation breakage The APM emulation is currently broken as a result of commit 831441862956fffa17b9801db37e6ea1650b0f69 "Freezer: make kernel threads nonfreezable by default" that removed the PF_NOFREEZE annotations from apm_ioctl() without adding the appropriate freezer hooks. Fix it and remove the unnecessary variable flags from apm_ioctl(). Special thanks to Franck Bui-Huu for pointing out the problem. Signed-off-by: Rafael J. Wysocki Cc: Pavel Machek Cc: Franck Bui-Huu Cc: Nigel Cunningham Signed-off-by: Len Brown commit 8baabde66c60a84781c718c28fe283ed411a7bd0 Author: Rafael J. Wysocki Date: Wed Nov 21 02:50:17 2007 +0100 Freezer: Fix s2disk resume from initrd Add appropriate freezer annotations to handle_initrd(), so that it's possible to resume from disk from an initrd. http://bugzilla.kernel.org/show_bug.cgi?id=9345 Signed-off-by: Rafael J. Wysocki Cc: Pavel Machek Cc: Nigel Cunningham Cc: Ingo Molnar Cc: Chris Friedhoff Signed-off-by: Len Brown