commit ce8c2293be47999584908069e78bf6d94beadc53 Merge: 41e9d34... ee6a99b... Author: Linus Torvalds Date: Thu Jul 19 10:23:21 2007 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (25 commits) [TG3]: Fix msi issue with kexec/kdump. [NET] XFRM: Fix whitespace errors. [NET] TIPC: Fix whitespace errors. [NET] SUNRPC: Fix whitespace errors. [NET] SCTP: Fix whitespace errors. [NET] RXRPC: Fix whitespace errors. [NET] ROSE: Fix whitespace errors. [NET] RFKILL: Fix whitespace errors. [NET] PACKET: Fix whitespace errors. [NET] NETROM: Fix whitespace errors. [NET] NETFILTER: Fix whitespace errors. [NET] IPV4: Fix whitespace errors. [NET] DCCP: Fix whitespace errors. [NET] CORE: Fix whitespace errors. [NET] BLUETOOTH: Fix whitespace errors. [NET] AX25: Fix whitespace errors. [PATCH] mac80211: remove rtnl locking in ieee80211_sta.c [PATCH] mac80211: fix GCC warning on 64bit platforms [GENETLINK]: Dynamic multicast groups. [NETLIKN]: Allow removing multicast groups. ... commit 41e9d344bf52c57ec16648d08618b61d3f1d4bdc Author: Jens Axboe Date: Thu Jul 19 08:13:01 2007 +0200 IDE: fix termination of non-fs requests ide-disk calls ide_end_request(drive, 0, 0); to finish an unknown request, but this doesn't work so well for non-fs requests, since ide_end_request() internally looks at ->hard_cur_sectors to see how much data to end. Only file system requests store a transfer value in there, pc requests fill out ->data_len as a byte based transfer value instead. Since we ask to end 0 bytes of that request, it will never be terminated and ide-disk gets stuck in a loop "handling" that same request over and over. Switch __ide_end_request() to take a byte based transfer count, and adjust ide_end_request() to look at the right field to determine how much IO to end when it's being passed in 0. Acked-by: Bartlomiej Zolnierkiewicz Tested-By: Giacomo Catenazzi Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds commit 275afcac9953ece0828972edeab9684cfe1a5ef3 Author: Andrew Morton Date: Thu Jul 19 01:50:35 2007 -0700 afs build fix Bruce and David's patches clashed. fs/afs/flock.c: In function 'afs_do_getlk': fs/afs/flock.c:459: error: void value not ignored as it ought to be Cc: "J. Bruce Fields" Acked-by: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ed2c12f323e8fafbc94f9bcfb924f9df36e64dc7 Author: Andrew Morton Date: Thu Jul 19 01:50:35 2007 -0700 kernel/sysctl.c: finish off the warning comments I've been chasing these comments around this file all week. Hopefully we're straight now. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 87f24c3ac399e82c578e71311251f00618fc5203 Author: Doug Thompson Date: Thu Jul 19 01:50:34 2007 -0700 drivers/edac: add to edac docs Updated the EDAC kernel documentation Signed-off-by: Doug Thompson Cc: Greg KH Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b2a4ac0c2860b27670bce99e8c9c281bf431c272 Author: Doug Thompson Date: Thu Jul 19 01:50:33 2007 -0700 drivers/edac: fix edac_device sysfs corner case bug Some simple fixes to properly reference counter values from the block attribute level of edac_device objects. Properly sequencing the array pointer was added, resulting in correct identification of block level attributes from their base class functions. Added more verbose debug statement for event tracking. Also during some corner testing, found a bug in the store/show sequence of operations for the block attribute/controls management. An old intermediate structure for 'blocks' was still in the processing pipeline. This patch removes that old structure and correctly utilizes the new struct edac_dev_sysfs_block_attribute for passing control from the sysfs to the low level store/show function of the edac driver. Now the proper kobj pointer to passed downward to the store/show functions. Signed-off-by: Doug Thompson Cc: Greg KH Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ba9a5918c86762fa7fae353c635bb6ed5221dfb8 Author: Douglas Thompson Date: Thu Jul 19 01:50:32 2007 -0700 drivers/edac: add to maintainers new info Update maintainer information on edac components Signed-off-by: Doug Thompson Cc: Greg KH Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 420390f06a5afd3e130b960ef99bc4bd4286e535 Author: Ranganathan Desikan Date: Thu Jul 19 01:50:31 2007 -0700 drivers/edac: new i82975x driver New EDAC driver for the i82975x memory controller chipset Used on ASUS motherboards [akpm@linux-foundation.org: fix multiple coding-style bloopers] Signed-off-by: Signed-off-by: Ranganathan Desikan Signed-off-by: Doug Thompson Cc: Greg KH Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bf52fa4a26567bfbf5b1d30f84cf0226e61d26cd Author: Doug Thompson Date: Thu Jul 19 01:50:30 2007 -0700 drivers/edac: fix workq reset deadlock Fix mutex locking deadlock on the device controller linked list. Was calling a lock then a function that could call the same lock. Moved the cancel workq function to outside the lock Added some short circuit logic in the workq code Added comments of description Code tidying Signed-off-by: Doug Thompson Cc: Greg KH Cc: Alan Cox Cc: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fb3fb2068775a1363265edc00870aa5e2f0e3631 Author: Doug Thompson Date: Thu Jul 19 01:50:30 2007 -0700 drivers/edac: code tidying on export-gpl Change EXPORT_SYMBOLs to EXPORT_SYMBOLS_GPL Tidy changes: blank lines, inline removal, add comment Signed-off-by: Doug Thompson Cc: Greg KH Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1c3631ff1f805cb72644fcde02b7c58950f21cd5 Author: Douglas Thompson Date: Thu Jul 19 01:50:29 2007 -0700 drivers/edac: fix edac_device sysfs completion code With feedback, this patch corrects operation of the kobject release operation on kobjects, attributes and controls for the edac_device. Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Doug Thompson Acked-by: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8096cfafbb7ad3cb1a286ae7e8086167f4ebb4b6 Author: Doug Thompson Date: Thu Jul 19 01:50:27 2007 -0700 drivers/edac: fix edac_mc sysfs completion code This patch refactors the 'releasing' of kobjects for the edac_mc type of device. The correct pattern of kobject release is followed. As internal kobjs are allocated they bump a ref count on the top level kobj. It in turn has a module ref count on the edac_core module. When internal kobjects are released, they dec the ref count on the top level kobj. When the top level kobj reaches zero, it decrements the ref count on the edac_core object, allow it to be unloaded, as all resources have all now been released. Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Doug Thompson Acked-by: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d45e7823baf655ced91c7987fb4ba9aae990ad6d Author: Doug Thompson Date: Thu Jul 19 01:50:27 2007 -0700 drivers/edac: fix edac_device init apis Refactoring of sysfs code necessitated the refactoring of the edac_device_alloc() and edac_device_add_device() apis, of moving the index value to the alloc() function. This patch alters the in tree drivers to utilize this new api signature. Having the index value performed later created a chicken-and-the-egg issue. Moving it to the alloc() function allows for creating the necessary sysfs entries with the proper index number Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Doug Thompson Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b8f6f9755248026f21282e25cac49a1af698056c Author: Doug Thompson Date: Thu Jul 19 01:50:26 2007 -0700 drivers/edac: fix edac_mc init apis Refactoring of sysfs code necessitated the refactoring of the edac_mc_alloc() and edac_mc_add_mc() apis, of moving the index value to the alloc() function. This patch alters the in tree drivers to utilize this new api signature. Having the index value performed later created a chicken-and-the-egg issue. Moving it to the alloc() function allows for creating the necessary sysfs entries with the proper index number Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Doug Thompson Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fd309a9d8e63e9176759d00630b65d772ae06e0c Author: Douglas Thompson Date: Thu Jul 19 01:50:25 2007 -0700 drivers/edac: fix leaf sysfs attribute This patch fixes and enhances the driver level set of sysfs attributes that can be added to the 'block' level of an edac_device type of driver. There is a controller information structure, which contains one or more instances of device. Each instance will have one or more blocks of device specific counters. This patch fixes the ability to have more detailed attributes/controls for each of the 'blocks', providing for the addition of controls/attributes from the low level driver to user space via sysfs. Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Douglas Thompson Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7d8536fb484360f35c0a9e3631641948bf168e2b Author: Egor Martovetsky Date: Thu Jul 19 01:50:24 2007 -0700 drivers/edac: new pasemi driver NEW EDAC driver for the memory controllers on PA Semi PA6T-1682M. Changes since last submission: * Rebased on top of 2.6.22-rc4-mm2 with the EDAC changes merged there. * Minor checkpatch.pl cleanups * Renamed ctl_name * Added dev_name * edac_mc.h -> edac_core.h [akpm@linux-foundation.org: make printk more informative] Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Egor Martovetsky Signed-off-by: Olof Johansson Signed-off-by: Doug Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7297c2617f6465d7862e156d4db5d812744280f1 Author: Mark Grondona Date: Thu Jul 19 01:50:23 2007 -0700 drivers/edac: fix e752x reversed csrows Found a 'reversal' decoding bug in the driver. This patch fixes that mapping to correctly display the CSROW entries in their proper order. Users will be enable to correctly identifiy the failing DIMM with this fix. [akpm@linux-foundation.org: unneeded (and undesirable) cast of void*] Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Mark Grondona Signed-off-by: Doug Thompson Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0ca84761faeb9d49301d45b39859411c7a124690 Author: Doug Thompson Date: Thu Jul 19 01:50:22 2007 -0700 drivers/edac: fix edac_device semaphore to mutex A previous patch changed the edac_mc src file from semaphore usage to mutex This patch changes the edac_device src file as well, from semaphore use to mutex operation. Use a mutex primitive for mutex operations, as it does not require a semaphore Cc: Alan Cox alan@lxorguk.ukuu.org.uk Signed-off-by: Doug Thompson Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7f065e723b02afb0d36a2aae8e6d206ba2667fc6 Author: Douglas Thompson Date: Thu Jul 19 01:50:22 2007 -0700 drivers/edac: remove file edac_mc.h Removed the no-longer-needed file edac_mc.h Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 494d0d55bcc7ef94c744a59779327e45a27f7801 Author: Douglas Thompson Date: Thu Jul 19 01:50:21 2007 -0700 drivers/edac: mod edac_opt_state_to_string function Refactored the function edac_op_state_toString() to be edac_op_state_to_string() for consistent style, and its callers Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7391c6dcab3094610cb99bbd559beaa282582eac Author: Douglas Thompson Date: Thu Jul 19 01:50:21 2007 -0700 drivers/edac: mod edac_align_ptr function Refactor the edac_align_ptr() function to reduce the noise of casting the aligned pointer to the various types of data objects and modified its callers to its new signature Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 52490c8d07680a7ecc3c1a70a16841455d37e96a Author: Douglas Thompson Date: Thu Jul 19 01:50:20 2007 -0700 drivers/edac: edac_device code tidying For the file edac_device.c perform some coding style enhancements Add some function header comments Made for better readability commands Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b2ccaecad2b00bf7bc72d5b864425daf43a4080d Author: Douglas Thompson Date: Thu Jul 19 01:50:19 2007 -0700 drivers/edac: i5000 code tidying Various code style conformance patches on the i5000 driver Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f044091ca4c0b05be8f83748d76d4fbba4fc74cf Author: Douglas Thompson Date: Thu Jul 19 01:50:19 2007 -0700 drivers/edac: remove null from statics Patches to conform to coding style, namely static don't need to be initialized to NULL nor '0', as that is the default Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 977c76bd687585f4528c6c9c6966842955771f52 Author: Marisuz Kozlowski Date: Thu Jul 19 01:50:18 2007 -0700 drivers/edac: i5000 define typo Found a typo in one of the #defines in the driver MTR_DIM_RANKS --> MTR_DIMM_RANK Signed-off-by: Marisuz Kozlowski Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 53078ca84b1c01f36c306d1f52e2f88c7bb2f9e4 Author: Douglas Thompson Date: Thu Jul 19 01:50:17 2007 -0700 include/linux/pci_id.h: add amd northbridge defines pci_ids.h needs two of the AMD NB device-ids namely, Addressmap and the Memory Controller devices This patch adds those to the pci_id.h include file Signed-off-by: Douglas Thompson Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1c52152b3008b7bdcc3b94d0be4d0b814dce1530 Author: Douglas Thompson Date: Thu Jul 19 01:50:17 2007 -0700 drivers/edac: fix ignored return i82875p Compiling this module gave a warning that the return value of 'pci_bus_add_device()' was not checked. This patch adds that check and an output message Signed-off-by: Douglas Thompson Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 654ede200fe028373852bbca387ab4834ddb7228 Author: Jason Uhlenkott Date: Thu Jul 19 01:50:16 2007 -0700 drivers/edac: mod race fix i82875p If ERRSTS indicates that there's no error then we don't need to bother reading the other registers. In addition to making the common case faster, this actually fixes a small race where we don't see an error but we clear the error bits anyway, potentially wiping away info on an error that happened in the interim (or where a CE arrives between the first and second read of ERRSTS, causing us to falsely claim "UE overwrote CE"). Signed-off-by: Jason Uhlenkott Signed-off-by: Douglas Thompson Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b113a3f7e85d7f97c8383a88a5bc7c2ea8daeb2f Author: Douglas Thompson Date: Thu Jul 19 01:50:15 2007 -0700 drivers/edac: add mips and ppc visibility 1) Remove an old CVS ID string 2) change EDAC from a tristate option to a simple bool option 3) In addition to the X86 arch, PPC and MIPS also have drivers in the submission queue. This patch turns on the EDAC flag for those archs. Each driver will have its respective 'depends on ARCH' set. Signed-off-by: Douglas Thompson Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 052dfb45ccb5ea354a426b52556bcfee75b9d2f5 Author: Douglas Thompson Date: Thu Jul 19 01:50:13 2007 -0700 drivers/edac: cleanup spaces-gotos after Lindent messup This patch fixes some remnant spaces inserted by the use of Lindent. Seems Lindent adds some spaces when it shoulded. These have been fixed. In addition, goto targets have issues, these have been fixed in this patch. Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6bc7840411b8c7fe11e1879d882c88119d1c033e Author: Douglas Thompson Date: Thu Jul 19 01:50:12 2007 -0700 drivers/edac: update MAINTAINERS files for EDAC Added new maintainers for the new EDAC drivers. Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8cb2a39831b25f2289a2a6571666a135e475035c Author: Douglas Thompson Date: Thu Jul 19 01:50:12 2007 -0700 drivers/edac: add info kconfig Kconfig - modified the help of EDAC Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d391a7b8147d12b0e5141fb65829856fb0c289dc Author: Douglas Thompson Date: Thu Jul 19 01:50:11 2007 -0700 drivers/edac: device output clenaup The error handling output strings needed to be refactored for better displaying of the error informaton. Also needed to added offset_value for output as well Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 42a8e397a80c277afb2aeb22232bc70114035bb1 Author: Douglas Thompson Date: Thu Jul 19 01:50:10 2007 -0700 drivers/edac: add device sysfs attributes Added new controls for the edac_device and edac_mc sysfs folder. These can be initialized by the low level driver to provide misc controls into the low level driver for its use Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 456a2f9552e7849475f4aea1a9aa4c0e54b3ddda Author: Dave Jiang Date: Thu Jul 19 01:50:10 2007 -0700 drivers/edac: drivers to use new PCI operation Move x86 drivers to new pci controller setup Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cddbfcacf02dc2d5b074fc2717358a7529a190db Author: Douglas Thompson Date: Thu Jul 19 01:50:08 2007 -0700 drivers/edac: Lindent r82600 Run r82600_edac.c file through Lindent for cleanup Signed-off-by: Douglas Thompson Signed-off-by: Dave Jiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 11116601092c42364892d3f59c8f4a8a30916867 Author: Douglas Thompson Date: Thu Jul 19 01:50:07 2007 -0700 drivers/edac: Lindent i82443bxgx Run i82443bxgx.c file through Lindent for cleanup Signed-off-by: Douglas Thompson Signed-off-by: Dave Jiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 203333cbbaae3941504c2b6e92850783bf361b6f Author: Dave Jiang Date: Thu Jul 19 01:50:06 2007 -0700 drivers/edac: Lindent e752x Run e752x_edac.c file through Lindent for cleanup Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 466b71d58413a515a8029b4eccf98c08b8bb5aca Author: Dave Jiang Date: Thu Jul 19 01:50:05 2007 -0700 drivers/edac: Lindent i82875p Lindent cleanup of i82875p_edac driver Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b4e8b37201d647e4b4abb89d57ebdb8c739d5405 Author: Dave Jiang Date: Thu Jul 19 01:50:04 2007 -0700 drivers/edac: Lindent i82860 Lindent cleanup of i82860 edac driver Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 36b8289e249f800a57a4c908a9a7e91345f516ef Author: Dave Jiang Date: Thu Jul 19 01:50:04 2007 -0700 drivers/edac: Lindent i3000 Lindent cleanup of i3000_edac driver Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 849a4c375a8e06cd000399dceb25888d356d021f Author: Dave Jiang Date: Thu Jul 19 01:50:03 2007 -0700 drivers/edac: Lindent e7xxx Lindent cleanup of e7xxx_edac driver Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f4aff426533f62c46d4e4d104572d838d35034eb Author: Douglas Thompson Date: Thu Jul 19 01:50:03 2007 -0700 drivers/edac: Lindent i5000 Ran e752x_edac.c file through Lindent for cleanup Signed-off-by: Douglas Thompson Signed-off-by: Dave Jiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 67cb2b61225601ef1ead842c7a012bb6da19f847 Author: Douglas Thompson Date: Thu Jul 19 01:50:02 2007 -0700 drivers/edac: Lindent amd76x Ran this driver through Lindent for cleanup Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 86aa8cb7bc47fe786df073246055d69d98e6330a Author: Douglas Thompson Date: Thu Jul 19 01:50:01 2007 -0700 drivers/edac: cleanup workq ifdefs The origin of this code comes from patches at sourceforge, that allow EDAC to be updated to various kernels. With kernel version 2.6.20 a new workq system was installed, thus the patches needed to be modified based on the kernel version. For submitting to the latest kernel.org those #ifdefs are removed Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 542b25881a6ae1bf0804d4d39bf8b4d2cfc25e42 Author: Douglas Thompson Date: Thu Jul 19 01:50:01 2007 -0700 drivers/edac: edac_device sysfs cleanup Removal of some old dead and disabled code from the edac_device sysfs code Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 079708b9173595bf74b31b14c36e946359ae6c7e Author: Douglas Thompson Date: Thu Jul 19 01:49:58 2007 -0700 drivers/edac: core Lindent cleanup Run the EDAC CORE files through Lindent for cleanup Signed-off-by: Douglas Thompson Signed-off-by: Dave Jiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4de78c6877ec21142582ac19453c2d453d1ea298 Author: Dave Jiang Date: Thu Jul 19 01:49:54 2007 -0700 drivers/edac: mod PCI poll names Fixup poll values for MC and PCI. Also make mc function names unique to mc. Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 66ee2f940ac8ab25f0c43a1e717d25dc46bfe74d Author: Dave Jiang Date: Thu Jul 19 01:49:54 2007 -0700 drivers/edac: mod assert_error check Change error check and clear variable from an atomic to an int Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Linus Torvalds commit 91b99041c1d577ded1da599ddc28cec2e07253cf Author: Dave Jiang Date: Thu Jul 19 01:49:52 2007 -0700 drivers/edac: updated PCI monitoring Moving PCI to a per-instance device model This should include the correct sysfs setup as well. Please review. Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 81d87cb13e367bb804bf44889ae0de7369705d6c Author: Dave Jiang Date: Thu Jul 19 01:49:52 2007 -0700 drivers/edac: mod MC to use workq instead of kthread Move the memory controller object to work queue based implementation from the kernel thread based. Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 535c6a53035d8911f6b90455550c5fde0da7b866 Author: Jason Uhlenkott Date: Thu Jul 19 01:49:48 2007 -0700 drivers/edac: new inte 30x0 MC driver Here's a driver for the Intel 3000 and 3010 memory controllers, relative to today's Sourceforge code drop. This has only had light testing (I've yet to actually see it handle a memory error) but it detects my hardware correctly. Signed-off-by: Jason Uhlenkott Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c4192705fec85219086231a1c0fa61e8776e2c3b Author: Dave Jiang Date: Thu Jul 19 01:49:47 2007 -0700 drivers/edac: add dev_name getter function Move dev_name() macro to a more generic interface since it's not possible to determine whether a device is pci, platform, or of_device easily. Now each low level driver sets the name into the control structure, and the EDAC core references the control structure for the information. Better abstraction. Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 20bcb7a81dee21bfa3408f03f46b2891c9b5c84b Author: Douglas Thompson Date: Thu Jul 19 01:49:47 2007 -0700 drivers/edac: mod use edac_core.h In the refactoring of edac_mc.c into several subsystem files, the header file edac_mc.h became meaningless. A new header file edac_core.h was created. All the files that previously included "edac_mc.h" are changed to include "edac_core.h". Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c0d121720220584bba2876b032e58a076b843fa1 Author: Dave Jiang Date: Thu Jul 19 01:49:46 2007 -0700 drivers/edac: add new nmi rescan Provides a way for NMI reported errors on x86 to notify the EDAC subsystem pending ECC errors by writing to a software state variable. Here's the reworked patch. I added an EDAC stub to the kernel so we can have variables that are in the kernel even if EDAC is a module. I also implemented the idea of using the chip driver to select error detection mode via module parameter and eliminate the kernel compile option. Please review/test. Thx! Also, I only made changes to some of the chipset drivers since I am unfamiliar with the other ones. We can add similar changes as we go. Signed-off-by: Dave Jiang Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 28f96eeafc89643d411d54c258788a8573576127 Author: Andrew Morton Date: Thu Jul 19 01:49:45 2007 -0700 drivers/edac-new-i82443bxgz-mc-driver: mark as broken It will claim the PCI devices from under intel_agp.ko's feet. Greg is brewing some fix for that. Cc: Douglas Thompson Cc: Tim Small Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5a2c675c891960f86c025d4ab3d3904364bf4f96 Author: Tim Small Date: Thu Jul 19 01:49:42 2007 -0700 drivers/edac: new i82443bxgz MC driver This is a NEW EDAC Memory Controller driver for the 440BX chipset (I82443BXGX) created and submitted by Timm Small Signed-off-by: Tim Small Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 522a94bd1e18a2acf9428f48db585a2fc816559e Author: Douglas Thompson Date: Thu Jul 19 01:49:41 2007 -0700 drivers/edac: core.h fix scrubdefs Patch to fix some scrubbing #defines in the edac_core.h file Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit eb60705ac5a9869b2d078f0b472ea64b9b52b684 Author: Eric Wollesen Date: Thu Jul 19 01:49:39 2007 -0700 drivers/edac: new intel 5000 MC driver Eric Wollesen ported the Bluesmoke Memory Controller driver (written by Doug Thompson) for the Intel 5000X/V/P (Blackford/Greencreek) chipset to the in kernel EDAC model. This patch incorporates the module for the 5000X/V/P chipset family [m.kozlowski@tuxland.pl: edac i5000 parenthesis balance fix] Signed-off-by: Eric Wollesen Signed-off-by: Doug Thompson Signed-off-by: Mariusz Kozlowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 63b7df9101895d1f0a259c567b3bab949a23075f Author: Matthias Kaehlcke Date: Thu Jul 19 01:49:38 2007 -0700 drivers/edac: change from semaphore to mutex operation The EDAC core code uses a semaphore as mutex. use the mutex API instead of the (binary) semaphore. Matthaias wrote this, but since I had some patches ahead of it, I need to modify it to follow my patches. Signed-off-by: Matthias Kaehlcke Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1a9b85e6b36cdd046b0a354c38af20a7155272b8 Author: Dave Jiang Date: Thu Jul 19 01:49:38 2007 -0700 drivers/edac: mc sysfs add missing mem types Adding missing mem types for use in the sysfs presentation file for Memory Controller device objects. Signed-off-by: Dave Jiang Signed-off-by: Doug Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e27e3dac651771fe3250f6305dee277bce29fc5d Author: Douglas Thompson Date: Thu Jul 19 01:49:36 2007 -0700 drivers/edac: add edac_device class This patch adds the new 'class' of object to be managed, named: 'edac_device'. As a peer of the 'edac_mc' class of object, it provides a non-memory centric view of an ERROR DETECTING device in hardware. It provides a sysfs interface and an abstraction for varioius EDAC type devices. Multiple 'instances' within the class are possible, with each 'instance' able to have multiple 'blocks', and each 'block' having 'attributes'. At the 'block' level there are the 'ce_count' and 'ue_count' fields which the device driver can update and/or call edac_device_handle_XX() functions. At each higher level are additional 'total' count fields, which are a summation of counts below that level. This 'edac_device' has been used to capture and present ECC errors which are found in a a L1 and L2 system on a per CORE/CPU basis. Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c9281d76c1c0b130f79d5fc021084e9749959d4 Author: Douglas Thompson Date: Thu Jul 19 01:49:33 2007 -0700 drivers/edac: split out functions to unique files This is a large patch to refactor the original EDAC module in the kernel and to break it up into better file granularity, such that each source file contains a given subsystem of the EDAC CORE. Originally, the EDAC 'core' was contained in one source file: edac_mc.c with it corresponding edac_mc.h file. Now, there are the following files: edac_module.c The main module init/exit function and other overhead edac_mc.c Code handling the edac_mc class of object edac_mc_sysfs.c Code handling for sysfs presentation edac_pci_sysfs.c Code handling for PCI sysfs presentation edac_core.h CORE .h include file for 'edac_mc' and 'edac_device' drivers edac_module.h Internal CORE .h include file This forms a foundation upon which a later patch can create the 'edac_device' class of object code in a new file 'edac_device.c'. Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d56933e018b14fc7cad322f413eecc6cb6edf12e Author: Douglas Thompson Date: Thu Jul 19 01:49:32 2007 -0700 drivers/edac: add RDDR2 memory types Add Registered RDDR2 memory types for displaying DDR2 memories Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2da1c119fd999cb834b4fe0c1a5a8c36195df1cb Author: Adrian Bunk Date: Thu Jul 19 01:49:32 2007 -0700 drivers/edac: core: make functions static This patch makes needlessly global code static, in the edac core Signed-off-by: Adrian Bunk Cc: Doug Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5da0831c598f94582bce6bb0a55b8de2f9897cb1 Author: Douglas Thompson Date: Thu Jul 19 01:49:31 2007 -0700 drivers/edac: add edac_mc_find API This simple patch adds an important CORE API for EDAC that EDAC drivers can use to find their edac_mc control structure by passing a mem_ctl_info 'instance' value Needed for subsequent patches Signed-off-by: Douglas Thompson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8ca47e00690914a9e5e6c734baa37c829a2f2fa1 Author: Rusty Russell Date: Thu Jul 19 01:49:29 2007 -0700 lguest: the documentation, example launcher A brief document describing how to use lguest. Because lguest doesn't have an ABI we also include an example launcher in the Documentation directory. [jmorris@namei.org: Fix up nat example in documentation] Signed-off-by: Rusty Russell Cc: Andi Kleen Signed-off-by: James Morris Cc: Matias Zabaljauregui Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b754416bfe9adac6468e45fba244d77f52048aeb Author: Rusty Russell Date: Thu Jul 19 01:49:29 2007 -0700 lguest: the block driver Lguest block driver A simple block driver for lguest. Signed-off-by: Rusty Russell Cc: Andi Kleen Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d503e2fa5aecef99675c5a81b61321a5407bf61f Author: Rusty Russell Date: Thu Jul 19 01:49:28 2007 -0700 lguest: the net driver Lguest net driver A simple net driver for lguest. [akpm@linux-foundation.org: include fix] Signed-off-by: Rusty Russell Cc: Andi Kleen Cc: Jeff Garzik Acked-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3f8c4d3f82c564e5e27c6375fe17544f694359dc Author: Rusty Russell Date: Thu Jul 19 01:49:27 2007 -0700 lguest: the console driver A simple console driver for lguest. Signed-off-by: Rusty Russell Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 709e89266b60eff444fc512400321eb02d2474eb Author: Rusty Russell Date: Thu Jul 19 01:49:27 2007 -0700 lguest: the Makefile and Kconfig This is the Kconfig and Makefile to allow lguest to actually be compiled. Signed-off-by: Rusty Russell Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6db7016d17b235a24e0c1544c202defa47ae7247 Author: Rusty Russell Date: Thu Jul 19 01:49:26 2007 -0700 lguest: the asm offsets This is the structure offsets required by lg.ko's switcher.S. Unfortunately we don't have infrastructure for private asm-offsets creation. Signed-off-by: Rusty Russell Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d7e28ffe6c74416b54345d6004fd0964c115b12c Author: Rusty Russell Date: Thu Jul 19 01:49:23 2007 -0700 lguest: the host code This is the code for the "lg.ko" module, which allows lguest guests to be launched. [akpm@linux-foundation.org: update for futex-new-private-futexes] [akpm@linux-foundation.org: build fix] [jmorris@namei.org: lguest: use hrtimers] [akpm@linux-foundation.org: x86_64 build fix] Signed-off-by: Rusty Russell Cc: Andi Kleen Cc: Eric Dumazet Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 07ad157f6e5d228be78acd5cea0291e5d0360398 Author: Rusty Russell Date: Thu Jul 19 01:49:22 2007 -0700 lguest: the guest code lguest is a simple hypervisor for Linux on Linux. Unlike kvm it doesn't need VT/SVM hardware. Unlike Xen it's simply "modprobe and go". Unlike both, it's 5000 lines and self-contained. Performance is ok, but not great (-30% on kernel compile). But given its hackability, I expect this to improve, along with the paravirt_ops code which it supplies a complete example for. There's also a 64-bit version being worked on and other craziness. But most of all, lguest is awesome fun! Too much of the kernel is a big ball of hair. lguest is simple enough to dive into and hack, plus has some warts which scream "fork me!". This patch: This is the code and headers required to make an i386 kernel an lguest guest. Signed-off-by: Rusty Russell Cc: Andi Kleen Cc: Jeremy Fitzhardinge Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5992b6dac0d23a2b51a1ccbaf8f1a2e62097b12b Author: Rusty Russell Date: Thu Jul 19 01:49:21 2007 -0700 lguest: export symbols for lguest as a module lguest does some fairly lowlevel things to support a host, which normal modules don't need: math_state_restore: When the guest triggers a Device Not Available fault, we need to be able to restore the FPU __put_task_struct: We need to hold a reference to another task for inter-guest I/O, and put_task_struct() is an inline function which calls __put_task_struct. access_process_vm: We need to access another task for inter-guest I/O. map_vm_area & __get_vm_area: We need to map the switcher shim (ie. monitor) at 0xFFC01000. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 57deb52622f3700d154e32662f36cd5f4053f6ed Author: Alessandro Zummo Date: Thu Jul 19 01:49:21 2007 -0700 RTC: add periodic irq support to rtc-cmos Adds support for periodic irq enabling in rtc-cmos. This could be used by the ALSA driver and is already being tested with the zaptel ztdummy module. Signed-off-by: Alessandro Zummo Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c7d51402d2a64c5b96531f9900bb368020ebbbbb Author: J. Bruce Fields Date: Thu Jul 19 01:49:20 2007 -0700 knfsd: clean up EX_RDONLY Share a little common code, reverse the arguments for consistency, drop the unnecessary "inline", and lowercase the name. Signed-off-by: "J. Bruce Fields" Acked-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e22841c637dc8b308b40f59d64a5b6683d458ab7 Author: J. Bruce Fields Date: Thu Jul 19 01:49:20 2007 -0700 knfsd: move EX_RDONLY out of header EX_RDONLY is only called in one place; just put it there. Signed-off-by: "J. Bruce Fields" Acked-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5d3dbbeaf56d0365ac6b5c0a0da0bd31cc4781e1 Author: J. Bruce Fields Date: Thu Jul 19 01:49:19 2007 -0700 nfsd: remove unnecessary NULL checks from nfsd_cross_mnt We can now assume that rqst_exp_get_by_name() does not return NULL; so clean up some unnecessary checks. Signed-off-by: "J. Bruce Fields" Acked-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9a25b96c1f6e1a3c85c9524f3046c7c75d8fecc7 Author: J. Bruce Fields Date: Thu Jul 19 01:49:18 2007 -0700 nfsd: return errors, not NULL, from export functions I converted the various export-returning functions to return -ENOENT instead of NULL, but missed a few cases. This particular case could cause actual bugs in the case of a krb5 client that doesn't match any ip-based client and that is trying to access a filesystem not exported to krb5 clients. Signed-off-by: "J. Bruce Fields" Acked-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a280df32db291f41b3922ac218674be526af5b9b Author: J. Bruce Fields Date: Thu Jul 19 01:49:18 2007 -0700 nfsd: fix possible read-ahead cache and export table corruption The value of nperbucket calculated here is too small--we should be rounding up instead of down--with the result that the index j in the following loop can overflow the raparm_hash array. At least in my case, the next thing in memory turns out to be export_table, so the symptoms I see are crashes caused by the appearance of four zeroed-out export entries in the first bucket of the hash table of exports (which were actually entries in the readahead cache, a pointer to which had been written to the export table in this initialization code). It looks like the bug was probably introduced with commit fce1456a19f5c08b688c29f00ef90fdfa074c79b ("knfsd: make the readahead params cache SMP-friendly"). Cc: Cc: Greg Banks Signed-off-by: "J. Bruce Fields" Acked-by: NeilBrown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d688abf50bd5a30d2c44dea2a72dd59052cd3cce Author: Andrew Morton Date: Thu Jul 19 01:49:17 2007 -0700 move page writeback acounting out of macros page-writeback accounting is presently performed in the page-flags macros. This is inconsistent and a bit ugly and makes it awkward to implement per-backing_dev under-writeback page accounting. So move this accounting down to the callsite(s). Acked-by: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6819457d2cb7fe4fdb0fc3655b6b6dc71a86bee9 Author: Thomas Gleixner Date: Thu Jul 19 01:49:16 2007 -0700 timer.c: cleanup recently introduced whitespace damage Signed-off-by: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 71120f183bff04ba4f7ba3cc554202061912d548 Author: Thomas Gleixner Date: Thu Jul 19 01:49:16 2007 -0700 timekeeping: fixup shadow variable argument clocksource_adjust() has a clock argument, which shadows the file global clock variable. Fix this up. Signed-off-by: Thomas Gleixner Cc: john stultz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 10146801e8b960d7473e350b60458d9d5a2be1cf Author: Greg Ungerer Date: Thu Jul 19 01:49:15 2007 -0700 m68knommu: remove is_in_rom() function Remove is_in_rom() function. It doesn't actually serve the purpose it was intended to. If you look at the use of it _access_ok() (which is the only use of it) then it is obvious that most of memory is marked as access_ok. No point having is_in_rom() then, so remove it. Signed-off-by: Greg Ungerer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a4c8b9159000018b0c641b844795a4de4e954582 Author: Greg Ungerer Date: Thu Jul 19 01:49:14 2007 -0700 m68knommu: start dump from exception stack In die_if_kernel() start the stack dump at the exception-time SP, not at the SP with all the saved registers; the stack below exception-time sp contains only exception-saved values and is already printed in details just before. Signed-off-by: Philippe De Muyter Signed-off-by: Greg Ungerer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2502b667ea835ee16685c74b2a0d89ba8afe117a Author: Greg Ungerer Date: Thu Jul 19 01:49:12 2007 -0700 m68knommu: generic irq handling Change the m68knommu irq handling to use the generic irq framework. Signed-off-by: Greg Ungerer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f8af0bb890d6cdcb09ec042c128e217a7c500355 Author: Akinobu Mita Date: Thu Jul 19 01:49:12 2007 -0700 hugetlb: use set_compound_page_dtor Use appropriate accessor function to set compound page destructor function. Cc: William Irwin Signed-off-by: Akinobu Mita Acked-by: Adam Litke Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7ed5cb2b73d0c4165c0504c95454fade0c0bf3d9 Author: Hugh Dickins Date: Thu Jul 19 01:49:11 2007 -0700 Remove nid_lock from alloc_fresh_huge_page The fix to that race in alloc_fresh_huge_page() which could give an illegal node ID did not need nid_lock at all: the fix was to replace static int nid by static int prev_nid and do the work on local int nid. nid_lock did make sure that racers strictly roundrobin the nodes, but that's not something we need to enforce strictly. Kill nid_lock. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e3aded3cc289113c7bc729ef4cb75e56d9aa71be Author: Alexey Dobriyan Date: Thu Jul 19 01:49:10 2007 -0700 isdn/sc: compile breakage re check_reset() There is check_reset() -- global function in drivers/isdn/sc/ There is check_reset -- variable holding module param in aacraid driver. On allyesconfig they clash with: LD drivers/built-in.o drivers/isdn/built-in.o: In function `check_reset': : multiple definition of `check_reset' drivers/scsi/built-in.o:(.data+0xe458): first defined here ld: Warning: size of symbol `check_reset' changed from 4 in drivers/scsi/built-in.o to 219 in drivers/isdn/built-in.o ld: Warning: type of symbol `check_reset' changed from 1 to 2 in drivers/isdn/built-in.o Rename the former. Signed-off-by: Alexey Dobriyan Cc: Karsten Keil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7ac674f52778b95450509357435320be1d795248 Author: Benjamin Herrenschmidt Date: Thu Jul 19 01:49:10 2007 -0700 vmalloc_32 should use GFP_KERNEL I've noticed lots of failures of vmalloc_32 on machines where it shouldn't have failed unless it was doing an atomic operation. Looking closely, I noticed that: #if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) #define GFP_VMALLOC32 GFP_DMA32 #elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA) #define GFP_VMALLOC32 GFP_DMA #else #define GFP_VMALLOC32 GFP_KERNEL #endif Which seems to be incorrect, it should always -or- in the DMA flags on top of GFP_KERNEL, thus this patch. This fixes frequent errors launchin X with the nouveau DRM for example. Signed-off-by: Benjamin Herrenschmidt Cc: Andi Kleen Cc: Dave Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ea02e3dde3509ffa7fda7f8de9c8a366e03f7bbd Author: David Howells Date: Thu Jul 19 01:49:09 2007 -0700 FRV: work around a possible compiler bug Work around a possible bug in the FRV compiler. What appears to be happening is that gcc resolves the __builtin_constant_p() in kmalloc() to true, but then fails to reduce the therefore constant conditions in the if-statements it guards to constant results. When compiling with -O2 or -Os, one single spurious error crops up in cpuup_callback() in mm/slab.c. This can be avoided by making the memsize variable const. Signed-off-by: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3abf7afd406866a84276d3ed04f4edf6070c9cb5 Author: Andrew Morton Date: Thu Jul 19 01:49:08 2007 -0700 dequeue_huge_page() warning fix mm/hugetlb.c: In function `dequeue_huge_page': mm/hugetlb.c:72: warning: 'nid' might be used uninitialized in this function Cc: Christoph Lameter Cc: Adam Litke Cc: David Gibson Cc: William Lee Irwin III Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dd00cc486ab1c17049a535413d1751ef3482141c Author: Yoann Padioleau Date: Thu Jul 19 01:49:03 2007 -0700 some kmalloc/memset ->kzalloc (tree wide) Transform some calls to kmalloc/memset to a single kzalloc (or kcalloc). Here is a short excerpt of the semantic patch performing this transformation: @@ type T2; expression x; identifier f,fld; expression E; expression E1,E2; expression e1,e2,e3,y; statement S; @@ x = - kmalloc + kzalloc (E1,E2) ... when != \(x->fld=E;\|y=f(...,x,...);\|f(...,x,...);\|x=E;\|while(...) S\|for(e1;e2;e3) S\) - memset((T2)x,0,E1); @@ expression E1,E2,E3; @@ - kzalloc(E1 * E2,E3) + kcalloc(E1,E2,E3) [akpm@linux-foundation.org: get kcalloc args the right way around] Signed-off-by: Yoann Padioleau Cc: Richard Henderson Cc: Ivan Kokshaysky Acked-by: Russell King Cc: Bryan Wu Acked-by: Jiri Slaby Cc: Dave Airlie Acked-by: Roland Dreier Cc: Jiri Kosina Acked-by: Dmitry Torokhov Cc: Benjamin Herrenschmidt Acked-by: Mauro Carvalho Chehab Acked-by: Pierre Ossman Cc: Jeff Garzik Cc: "David S. Miller" Acked-by: Greg KH Cc: James Bottomley Cc: "Antonino A. Daplas" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3b5ad0797c0e4049001f961a8b58f1d0ce532072 Author: Johannes Berg Date: Thu Jul 19 01:49:02 2007 -0700 stacktrace: fix header file for !CONFIG_STACKTRACE The print_stack_trace macro in stacktrace.h has a wrong number of arguments, fix it. Signed-off-by: Johannes Berg Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c71063c9c9dc232d0d51f936f237f7dc5681e8e3 Author: Johannes Berg Date: Thu Jul 19 01:49:02 2007 -0700 lockdep debugging: give stacktrace for init_error When I started adding support for lockdep to 64-bit powerpc, I got a lockdep_init_error and with this patch was able to pinpoint why and where to put lockdep_init(). Let's support this generally for others adding lockdep support to their architecture. Signed-off-by: Johannes Berg Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d38e1d5aaee384698fcef9455d6e2df1d062a1d0 Author: Peter Zijlstra Date: Thu Jul 19 01:49:01 2007 -0700 lockstat: better class name representation optionally add class->name_version and class->subclass to the class name Signed-off-by: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 96645678cd726e87ce42a0664de71e047e32bca4 Author: Peter Zijlstra Date: Thu Jul 19 01:49:00 2007 -0700 lockstat: measure lock bouncing __acquire | lock _____ | \ | __contended | | | wait | _______/ |/ | __acquired | __release | unlock We measure acquisition and contention bouncing. This is done by recording a cpu stamp in each lock instance. Contention bouncing requires the cpu stamp to be set on acquisition. Hence we move __acquired into the generic path. __acquired is then used to measure acquisition bouncing by comparing the current cpu with the old stamp before replacing it. __contended is used to measure contention bouncing (only useful for preemptable locks) [akpm@linux-foundation.org: cleanups] Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 443aef0eddfa44c158d1b94ebb431a70638fcab4 Author: Peter Zijlstra Date: Thu Jul 19 01:49:00 2007 -0700 lockdep: fixup sk_callback_lock annotation the two init sites resulted in inconsistend names for the lock class. Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4b32d0a4e9ec07808a5c406a416c6576c986b047 Author: Peter Zijlstra Date: Thu Jul 19 01:48:59 2007 -0700 lockdep: various fixes - update the copyright notices - use the default hash function - fix a thinko in a BUILD_BUG_ON - add a WARN_ON to spot inconsitent naming - fix a termination issue in /proc/lock_stat [akpm@linux-foundation.org: cleanups] Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4fe87745a6722d42ff27a60768c77958fa1fc498 Author: Peter Zijlstra Date: Thu Jul 19 01:48:58 2007 -0700 lockstat: hook into spinlock_t, rwlock_t, rwsem and mutex Call the new lockstat tracking functions from the various lock primitives. Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Acked-by: Jason Baron Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c46261de0d98372112d8edf16f74ce418a268d46 Author: Peter Zijlstra Date: Thu Jul 19 01:48:57 2007 -0700 lockstat: human readability tweaks Present all this fancy new lock statistics information: *warning, _wide_ output ahead* (output edited for purpose of brevity) # cat /proc/lock_stat lock_stat version 0.1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- class name contentions waittime-min waittime-max waittime-total acquisitions holdtime-min holdtime-max holdtime-total ----------------------------------------------------------------------------------------------------------------------------------------------------------------- &inode->i_mutex: 14458 6.57 398832.75 2469412.23 6768876 0.34 11398383.65 339410830.89 --------------- &inode->i_mutex 4486 [] pipe_wait+0x86/0x8d &inode->i_mutex 0 [] pipe_write_fasync+0x29/0x5d &inode->i_mutex 0 [] pipe_read+0x74/0x3a5 &inode->i_mutex 0 [] do_lookup+0x81/0x1ae ................................................................................................................................................................. &inode->i_data.tree_lock-W: 491 0.27 62.47 493.89 2477833 0.39 468.89 1146584.25 &inode->i_data.tree_lock-R: 65 0.44 4.27 48.78 26288792 0.36 184.62 10197458.24 -------------------------- &inode->i_data.tree_lock 46 [] __do_page_cache_readahead+0x69/0x24f &inode->i_data.tree_lock 31 [] add_to_page_cache+0x31/0xba &inode->i_data.tree_lock 0 [] __do_page_cache_readahead+0xc2/0x24f &inode->i_data.tree_lock 0 [] find_get_page+0x1a/0x58 ................................................................................................................................................................. proc_inum_idr.lock: 0 0.00 0.00 0.00 36 0.00 65.60 148.26 proc_subdir_lock: 0 0.00 0.00 0.00 3049859 0.00 106.81 1563212.42 shrinker_rwsem-W: 0 0.00 0.00 0.00 5 0.00 1.73 3.68 shrinker_rwsem-R: 0 0.00 0.00 0.00 633 2.57 246.57 10909.76 'contentions' and 'acquisitions' are the number of such events measured (since the last reset). The waittime- and holdtime- (min, max, total) numbers are presented in microseconds. If there are any contention points, the lock class is presented in the block format (as i_mutex and tree_lock above), otherwise a single line of output is presented. The output is sorted on absolute number of contentions (read + write), this should get the worst offenders presented first, so that: # grep : /proc/lock_stat | head will quickly show who's bad. The stats can be reset using: # echo 0 > /proc/lock_stat [bunk@stusta.de: make 2 functions static] [akpm@linux-foundation.org: fix printk warning] Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Acked-by: Jason Baron Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f20786ff4da51e56b1956acf30be2552be266746 Author: Peter Zijlstra Date: Thu Jul 19 01:48:56 2007 -0700 lockstat: core infrastructure Introduce the core lock statistics code. Lock statistics provides lock wait-time and hold-time (as well as the count of corresponding contention and acquisitions events). Also, the first few call-sites that encounter contention are tracked. Lock wait-time is the time spent waiting on the lock. This provides insight into the locking scheme, that is, a heavily contended lock is indicative of a too coarse locking scheme. Lock hold-time is the duration the lock was held, this provides a reference for the wait-time numbers, so they can be put into perspective. 1) lock 2) ... do stuff .. unlock 3) The time between 1 and 2 is the wait-time. The time between 2 and 3 is the hold-time. The lockdep held-lock tracking code is reused, because it already collects locks into meaningful groups (classes), and because it is an existing infrastructure for lock instrumentation. Currently lockdep tracks lock acquisition with two hooks: lock() lock_acquire() _lock() ... code protected by lock ... unlock() lock_release() _unlock() We need to extend this with two more hooks, in order to measure contention. lock_contended() - used to measure contention events lock_acquired() - completion of the contention These are then placed the following way: lock() lock_acquire() if (!_try_lock()) lock_contended() _lock() lock_acquired() ... do locked stuff ... unlock() lock_release() _unlock() (Note: the try_lock() 'trick' is used to avoid instrumenting all platform dependent lock primitive implementations.) It is also possible to toggle the two lockdep features at runtime using: /proc/sys/kernel/prove_locking /proc/sys/kernel/lock_stat (esp. turning off the O(n^2) prove_locking functionaliy can help) [akpm@linux-foundation.org: build fixes] [akpm@linux-foundation.org: nuke unneeded ifdefs] Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Acked-by: Jason Baron Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8e18257d29238311e82085152741f0c3aa18b74d Author: Peter Zijlstra Date: Thu Jul 19 01:48:54 2007 -0700 lockdep: reduce the ifdeffery Move code around to get fewer but larger #ifdef sections. Break some in-function #ifdefs out into their own functions. Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ca58abcb4a6d52ee2db1b1130cea3ca2a76677b9 Author: Peter Zijlstra Date: Thu Jul 19 01:48:53 2007 -0700 lockdep: sanitise CONFIG_PROVE_LOCKING Ensure that all of the lock dependency tracking code is under CONFIG_PROVE_LOCKING. This allows us to use the held lock tracking code for other purposes. Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Acked-by: Jason Baron Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 21f8ca3bf6198bd21e3c4cc820af2ccf753a6ec8 Author: Peter Zijlstra Date: Thu Jul 19 01:48:53 2007 -0700 fix raw_spinlock_t vs lockdep Use the lockdep infrastructure to track lock contention and other lock statistics. It tracks lock contention events, and the first four unique call-sites that encountered contention. It also measures lock wait-time and hold-time in nanoseconds. The minimum and maximum times are tracked, as well as a total (which together with the number of event can give the avg). All statistics are done per lock class, per write (exclusive state) and per read (shared state). The statistics are collected per-cpu, so that the collection overhead is minimized via having no global cachemisses. This new lock statistics feature is independent of the lock dependency checking traditionally done by lockdep; it just shares the lock tracking code. It is also possible to enable both and runtime disabled either component - thereby avoiding the O(n^2) lock chain walks for instance. This patch: raw_spinlock_t should not use lockdep (and doesn't) since lockdep itself relies on it. Signed-off-by: Peter Zijlstra Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5b7f13bd26a0c1d394a1a1f2bb6de5130c3a3843 Author: Jan Harkes Date: Thu Jul 19 01:48:52 2007 -0700 coda: update module information Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3cf01f28c303be34f18cb4f6204cf1bdfe12ba7c Author: Jan Harkes Date: Thu Jul 19 01:48:51 2007 -0700 coda: remove statistics counters from /proc/fs/coda Similar information can easily be obtained with strace -c. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a1b0aa87647493c0201821ab884e86298d5da7d6 Author: Jan Harkes Date: Thu Jul 19 01:48:50 2007 -0700 coda: remove struct coda_sb_info The sb_info structure only contains a single pointer to the character device, there is no need for the added indirection. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5fd31e9a67dd6c80e49240514cf854c1f054aca2 Author: Jan Harkes Date: Thu Jul 19 01:48:49 2007 -0700 coda: cleanup downcall handler Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ed36f723676b208053d0655cee7e7f1601a2d356 Author: Jan Harkes Date: Thu Jul 19 01:48:49 2007 -0700 coda: cleanup coda_lookup, use dsplice_alias Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 970648eb03cca7d7405f9a3a5d3fe29929e48aa6 Author: Jan Harkes Date: Thu Jul 19 01:48:48 2007 -0700 coda: ignore returned values when upcalls return errors Venus returns an ENOENT error on open, so we shouldn't try to grab the filehandle for the returned fd. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 37461e1957e6262278342a0c1a78e46996b7ff88 Author: Jan Harkes Date: Thu Jul 19 01:48:48 2007 -0700 coda: replace upc_alloc/upc_free with kmalloc/kfree Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 978752534e94b50c8078b229134a37bad9db88b2 Author: Jan Harkes Date: Thu Jul 19 01:48:47 2007 -0700 coda: avoid lockdep warning in coda_readdir Signed-off-by: Jan Harkes Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d9664c95afe5baa92ea56eff6a1c18e7b7a2cbe7 Author: Jan Harkes Date: Thu Jul 19 01:48:46 2007 -0700 coda: block signals during upcall processing We ignore signals for about 30 seconds to give userspace a chance to see the upcall. As we did not block signals we ended up in a busy loop for the remainder of the period when a signal is received. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fe71b5f3871af2c281a08acd4bedd2da25e46bc3 Author: Jan Harkes Date: Thu Jul 19 01:48:46 2007 -0700 coda: cleanup for upcall handling path Make the code that processes upcall responses more straightforward, uncovered at least one bad assumption. We trusted that vc_inuse would be 0 when upcalls are aborted, however the device may have been reopened. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 87065519633af79e0577e32a58dcd9cf3c45a8a0 Author: Jan Harkes Date: Thu Jul 19 01:48:45 2007 -0700 coda: cleanup /dev/cfs open and close handling - Make sure device index is not a negative number. - Unlink queued requests when the device is closed to avoid passing them to the next opener. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ed31a7dd636b296746c131b7386023aa1ef84309 Author: Jan Harkes Date: Thu Jul 19 01:48:44 2007 -0700 coda: use ilookup5 Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fac1f0e34026a656174102ebad4d1cd71cd4fe2c Author: Jan Harkes Date: Thu Jul 19 01:48:44 2007 -0700 coda: coda doesn't track atime Set MS_NOATIME flag to avoid unnecessary calls when the coda inode is accessed. Also, set statfs.f_bsize to 4k. 1k is obviously too small for the suggested IO size. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8c6d21528406ec719aaea9d589876fd105c31646 Author: Jan Harkes Date: Thu Jul 19 01:48:43 2007 -0700 coda: allow removal of busy directories A directory without children may still be busy when it is the cwd for some process. We can safely remove such a directory because the VFS prevents further operations. Also we don't need to call d_delete as it is already called in vfs_rmdir. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d728900cd5502927158db747c653007cf72e2e49 Author: Jan Harkes Date: Thu Jul 19 01:48:43 2007 -0700 coda: fix nlink updates for directories The Coda client sets the directory link count to 1 when it isn't sure how many subdirectories we have. In this case we shouldn't change the link count in the kernel when a subdirectory is created or removed. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 56ee3547940f895a2cf20f2ac462fbeaee55fa2a Author: Jan Harkes Date: Thu Jul 19 01:48:42 2007 -0700 coda: correctly invalidate cached access rights Change the epoch value to forces a refresh instead of clearing the cached rights mask and block all further accesses to the object. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 38c2e4370da495813ca93d7cad31ed5090e8c310 Author: Jan Harkes Date: Thu Jul 19 01:48:41 2007 -0700 coda: do not grab an uninitialized fd when the open upcall returns an error When open fails the fd in the response is uninitialized and we ended up taking a reference on the file struct and never released it. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 18991197b4b588255ccabf472ebc84db7b66a19c Author: Roland McGrath Date: Thu Jul 19 01:48:40 2007 -0700 Use --build-id ld option This change passes the --build-id when linking the kernel and when linking modules, if ld supports it. This is a new GNU ld option that synthesizes an ELF note section inside the read-only data. The note in this section contains unique identifying bits called the "build ID", which are generated so as to be different for any two linked ELF files that aren't identical. The build ID can be recovered from stripped files, memory dumps, etc. and used to look up the original program built, locate debuginfo or other details or history associated with it. For normal program linking, the compiler passes --build-id to ld by default, but the option is needed when using ld directly as we do. Signed-off-by: Roland McGrath Cc: Andi Kleen Cc: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit da1a679cde9b12d6e331f43d2d92a234f2d1f9b0 Author: Roland McGrath Date: Thu Jul 19 01:48:39 2007 -0700 Add /sys/kernel/notes This patch adds the /sys/kernel/notes magic file. Reading this delivers the contents of the kernel's .notes section. This lets userland easily glean any detailed information about the running kernel's build that was stored there at compile time. Signed-off-by: Roland McGrath Cc: Andi Kleen Cc: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 86ead9caf9a9f265f6065c46080d046230e25d78 Author: Roland McGrath Date: Thu Jul 19 01:48:39 2007 -0700 s390: Put allocated ELF notes in read-only data segment This changes the s390 linker script to use the asm-generic NOTES macro so that ELF note sections with SHF_ALLOC set are linked into the kernel image along with other read-only data. The PT_NOTE also points to their location. This paves the way for putting useful build-time information into ELF notes that can be found easily later in a kernel memory dump. Signed-off-by: Roland McGrath Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8fb775ee582999ea45503f0c4e9393c2df065a81 Author: Roland McGrath Date: Thu Jul 19 01:48:38 2007 -0700 powerpc: Put allocated ELF notes in read-only data segment This changes the powerpc linker script to use the asm-generic NOTES macro so that ELF note sections with SHF_ALLOC set are linked into the kernel image along with other read-only data. The PT_NOTE also points to their location. This paves the way for putting useful build-time information into ELF notes that can be found easily later in a kernel memory dump. Signed-off-by: Roland McGrath Cc: Paul Mackerras Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit caf45dd92677b2001123cc06b5835052ccfee76f Author: Roland McGrath Date: Thu Jul 19 01:48:37 2007 -0700 alpha: Put allocated ELF notes in read-only data segment This changes the alpha linker script to use the asm-generic NOTES macro so that ELF note sections with SHF_ALLOC set are linked into the kernel image along with other read-only data. The PT_NOTE also points to their location. This paves the way for putting useful build-time information into ELF notes that can be found easily later in a kernel memory dump. Signed-off-by: Roland McGrath Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e1d5b8f24a887caded5ae3ceb2f341d4fbd1861 Author: Roland McGrath Date: Thu Jul 19 01:48:37 2007 -0700 x86_64: Put allocated ELF notes in read-only data segment This changes the x86_64 linker script to use the asm-generic NOTES macro so that ELF note sections with SHF_ALLOC set are linked into the kernel image along with other read-only data. The PT_NOTE also points to their location. This paves the way for putting useful build-time information into ELF notes that can be found easily later in a kernel memory dump. Signed-off-by: Roland McGrath Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cbe87121f1545bb3e98ae114519bf0c4db27d6ab Author: Roland McGrath Date: Thu Jul 19 01:48:36 2007 -0700 i386: Put allocated ELF notes in read-only data segment This changes the i386 linker script and the asm-generic macro it uses so that ELF note sections with SHF_ALLOC set are linked into the kernel image along with other read-only data. The PT_NOTE also points to their location. This paves the way for putting useful build-time information into ELF notes that can be found easily later in a kernel memory dump. Signed-off-by: Roland McGrath Cc: Andi Kleen Cc: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b38bd33a6bf5095736620ca8e85fe61820c2d312 Author: Mingming Cao Date: Thu Jul 19 01:48:35 2007 -0700 fix ext4/JBD2 build warnings Looking at the current linus-git tree jbd_debug() define in include/linux/jbd2.h extern u8 journal_enable_debug; #define jbd_debug(n, f, a...) \ do { \ if ((n) <= journal_enable_debug) { \ printk (KERN_DEBUG "(%s, %d): %s: ", \ __FILE__, __LINE__, __FUNCTION__); \ printk (f, ## a); \ } \ } while (0) > fs/ext4/inode.c: In function ‘ext4_write_inode’: > fs/ext4/inode.c:2906: warning: comparison is always true due to limited > range of data type > > fs/jbd2/recovery.c: In function ‘jbd2_journal_recover’: > fs/jbd2/recovery.c:254: warning: comparison is always true due to > limited range of data type > fs/jbd2/recovery.c:257: warning: comparison is always true due to > limited range of data type > > fs/jbd2/recovery.c: In function ‘jbd2_journal_skip_recovery’: > fs/jbd2/recovery.c:301: warning: comparison is always true due to > limited range of data type > Noticed all warnings are occurs when the debug level is 0. Then found the "jbd2: Move jbd2-debug file to debugfs" patch http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0f49d5d019afa4e94253bfc92f0daca3badb990b changed the jbd2_journal_enable_debug from int type to u8, makes the jbd_debug comparision is always true when the debugging level is 0. Thus the compile warning occurs. Thought about changing the jbd2_journal_enable_debug data type back to int, but can't, because the jbd2-debug is moved to debug fs, where calling debugfs_create_u8() to create the debugfs entry needs the value to be u8 type. Even if we changed the data type back to int, the code is still buggy, kernel should not print jbd2 debug message if the jbd2_journal_enable_debug is set to 0. But this is not the case. The fix is change the level of debugging to 1. The same should fixed in ext3/JBD, but currently ext3 jbd-debug via /proc fs is broken, so we probably should fix it all together. Signed-off-by: Mingming Cao Cc: Jeff Garzik Cc: Theodore Tso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f0a594c1c74fedbd838402e7372030311be8cc6e Author: Andy Whitcroft Date: Thu Jul 19 01:48:34 2007 -0700 update checkpatch.pl to version 0.08 This version brings a number of new checks, and a number of bug fixes. Of note: - warnings for multiple assignments per line - warnings for multiple declarations per line - checks for single statement blocks with braces This patch includes an update for feature-removal-schedule.txt to better target checks. Andy Whitcroft (12): Version: 0.08 only apply printk checks where there is a string literal allow suppression of errors for when no patch is found warn about multiple assignments warn on declaration of multiple variables check for kfree() with needless null check check for single statement braced blocks check for aggregate initialisation on the next line handle the => operator check for spaces between function name and open parenthesis move to explicit Check: entries in feature-removal-schedule.txt handle pointer attributes Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4b8a8b812edd7067fffcc4a85b8aa3adae081535 Author: Rolf Eike Beer Date: Thu Jul 19 01:48:33 2007 -0700 Typo: fro -> from Signed-off-by: Rolf Eike Beer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit aa781aeb49752e5654241b53368c80362ad7bea3 Author: Ingo Molnar Date: Thu Jul 19 01:48:32 2007 -0700 add POSIX clocks and timers maintainer Update the MAINTAINERS file: Thomas Gleixner has been the de-facto maintainer of POSIX timers and clocks for quite some time. Signed-off-by: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 01c55ed3260e130f152b7fbab2e18f23980b59a4 Author: Adrian Bunk Date: Thu Jul 19 01:48:32 2007 -0700 kernel/relay.c: make functions static Signed-off-by: Adrian Bunk Cc: Tom Zanussi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb90110dcb9e93bf79e3c988abc6cbcabd46d57f Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:31 2007 -0700 coredump masking: documentation for /proc/pid/coredump_filter This patch adds the documentation for /proc//coredump_filter. Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Cc: "Randy.Dunlap" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ee78b0a61f0514ffc3d59257fbe6863b43477829 Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:30 2007 -0700 coredump masking: ELF-FDPIC: enable core dump filtering This patch enables core dump filtering for ELF-FDPIC-formatted core file. Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e2e00906a06f7e74c49ca0ca85b960f270c83d5e Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:30 2007 -0700 coredump masking: ELF-FDPIC: remove an unused argument This patch removes an unused argument from elf_fdpic_dump_segments(). Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a1b59e802f846b6b0e057507386068fcc6dff442 Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:29 2007 -0700 coredump masking: ELF: enable core dump filtering This patch enables core dump filtering for ELF-formatted core file. Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3cb4a0bb1e773e3c41800b33a3f7dab32bd06c64 Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:28 2007 -0700 coredump masking: add an interface for core dump filter This patch adds an interface to set/reset flags which determines each memory segment should be dumped or not when a core file is generated. /proc//coredump_filter file is provided to access the flags. You can change the flag status for a particular process by writing to or reading from the file. The flag status is inherited to the child process when it is created. Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6c5d523826dc639df709ed0f88c5d2ce25379652 Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:27 2007 -0700 coredump masking: reimplementation of dumpable using two flags This patch changes mm_struct.dumpable to a pair of bit flags. set_dumpable() converts three-value dumpable to two flags and stores it into lower two bits of mm_struct.flags instead of mm_struct.dumpable. get_dumpable() behaves in the opposite way. [akpm@linux-foundation.org: export set_dumpable] Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 76fdbb25f963de5dc1e308325f0578a2f92b1c2d Author: Kawai, Hidehiro Date: Thu Jul 19 01:48:26 2007 -0700 coredump masking: bound suid_dumpable sysctl This patch series is version 5 of the core dump masking feature, which controls which VMAs should be dumped based on their memory types and per-process flags. I adopted most of Andrew's suggestion at the previous version. He also suggested using system call instead of /proc// interface, I decided to use the latter continuously because adding new system call with pid argument will give a big impact on the kernel. You can access the per-process flags via /proc//coredump_filter interface. coredump_filter represents a bitmask of memory types, and if a bit is set, VMAs of corresponding memory type are written into a core file when the process is dumped. The bitmask is inherited from the parent process when a process is created. The original purpose is to avoid longtime system slowdown when a number of processes which share a huge shared memory are dumped at the same time. To achieve this purpose, this patch series adds an ability to suppress dumping anonymous shared memory for specified processes. In this version, three other memory types are also supported. Here are the coredump_filter bits: bit 0: anonymous private memory bit 1: anonymous shared memory bit 2: file-backed private memory bit 3: file-backed shared memory The default value of coredump_filter is 0x3. This means the new core dump routine has the same behavior as conventional behavior by default. In this version, coredump_filter bits and mm.dumpable are merged into mm.flags, and it is accessed by atomic bitops. The supported core file formats are ELF and ELF-FDPIC. ELF has been tested, but ELF-FDPIC has not been built and tested because I don't have the test environment. This patch limits a value of suid_dumpable sysctl to the range of 0 to 2. Signed-off-by: Hidehiro Kawai Cc: Alan Cox Cc: David Howells Cc: Hugh Dickins Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 86fd6dfc0990d81123dca19541554426c9e9de3e Author: Randy Dunlap Date: Thu Jul 19 01:48:25 2007 -0700 docbook: don't reference file without kernel-doc Remove include/linux/rmap.h from kernel-api.tmpl since it no longer contains kernel-doc. Fixes this warning: Warning(linux-2.6.22//include/linux/rmap.h): no structured comments found Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cdccb316c0860b26ad52f622a7592122a62d02b4 Author: Randy Dunlap Date: Thu Jul 19 01:48:25 2007 -0700 kernel-doc: fix leading dot in man-mode output If a parameter description begins with a '.', this indicates a "request" for "man" mode output (*roff), so it needs special handling. Problem case is in include/asm-i386/atomic.h for function atomic_add_unless(): * @u: ...unless v is equal to u. This parameter description is currently not printed in man mode output. [akpm@linux-foundation.org: cleanup] Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 51f5a0c8f63990fcb6e09ed52be348df58c9e416 Author: Randy Dunlap Date: Thu Jul 19 01:48:24 2007 -0700 kernel-doc: strip C99 comments Strip C99-style comments from the input stream. /*...*/ comments are already stripped. C99 comments confuse the kernel-doc script. Also update some comments. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5f8c7c98ae3888cf0a2cf320f514f75cc92f00be Author: Randy Dunlap Date: Thu Jul 19 01:48:24 2007 -0700 kernel-doc: fix unnamed struct/union warning Fix kernel-doc warning: Warning(linux-2.6.22-rc2-git2/include/linux/skbuff.h:316): No description found for parameter '}' which is caused by nested anonymous structs/unions ending with: }; }; Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2ac534bc127bcf31f8cb76f65b1b0b7cba5e81ac Author: Randy Dunlap Date: Thu Jul 19 01:48:23 2007 -0700 kernel-doc: add tools doc in Makefile Add kernel-doc tools info in Makefile. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f79c20f52532d38fd0aee7ef64e138cc1613c484 Author: Josef 'Jeff' Sipek Date: Thu Jul 19 01:48:22 2007 -0700 fs: remove path_walk export Signed-off-by: Josef 'Jeff' Sipek Cc: Al Viro Acked-by: Christoph Hellwig Cc: Trond Myklebust Cc: Neil Brown Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c4a7808fc3d7a346d5d12e0d69d76d66d821488b Author: Josef 'Jeff' Sipek Date: Thu Jul 19 01:48:22 2007 -0700 fs: mark link_path_walk static Signed-off-by: Josef 'Jeff' Sipek Cc: Al Viro Acked-by: Christoph Hellwig Cc: Trond Myklebust Cc: Neil Brown Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 16b6287a5286e872abece4f42a6eb5899157a836 Author: Josef 'Jeff' Sipek Date: Thu Jul 19 01:48:21 2007 -0700 nfsctl: use vfs_path_lookup use vfs_path_lookup instead of open-coding the necessary functionality. Signed-off-by: Josef 'Jeff' Sipek Acked-by: NeilBrown Cc: Al Viro Acked-by: Christoph Hellwig Cc: Trond Myklebust Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4ac4efc1f5575a268417f80ef4059aee383f8331 Author: Josef 'Jeff' Sipek Date: Thu Jul 19 01:48:20 2007 -0700 sunrpc: use vfs_path_lookup use vfs_path_lookup instead of open-coding the necessary functionality. Signed-off-by: Josef 'Jeff' Sipek Acked-by: Trond Myklebust Cc: Al Viro Acked-by: Christoph Hellwig Cc: Neil Brown Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 16f1820028d660d9da9c03b2ae7e98253c11795b Author: Josef 'Jeff' Sipek Date: Thu Jul 19 01:48:18 2007 -0700 fs: introduce vfs_path_lookup Stackable file systems, among others, frequently need to lookup paths or path components starting from an arbitrary point in the namespace (identified by a dentry and a vfsmount). Currently, such file systems use lookup_one_len, which is frowned upon [1] as it does not pass the lookup intent along; not passing a lookup intent, for example, can trigger BUG_ON's when stacking on top of NFSv4. The first patch introduces a new lookup function to allow lookup starting from an arbitrary point in the namespace. This approach has been suggested by Christoph Hellwig [2]. The second patch changes sunrpc to use vfs_path_lookup. The third patch changes nfsctl.c to use vfs_path_lookup. The fourth patch marks link_path_walk static. The fifth, and last patch, unexports path_walk because it is no longer unnecessary to call it directly, and using the new vfs_path_lookup is cleaner. For example, the following snippet of code, looks up "some/path/component" in a directory pointed to by parent_{dentry,vfsmnt}: err = vfs_path_lookup(parent_dentry, parent_vfsmnt, "some/path/component", 0, &nd); if (!err) { /* exits */ ... /* once done, release the references */ path_release(&nd); } else if (err == -ENOENT) { /* doesn't exist */ } else { /* other error */ } VFS functions such as lookup_create can be used on the nameidata structure to pass the create intent to the file system. Signed-off-by: Josef 'Jeff' Sipek Cc: Al Viro Acked-by: Christoph Hellwig Cc: Trond Myklebust Cc: Neil Brown Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b6a2fea39318e43fee84fa7b0b90d68bed92d2ba Author: Ollie Wild Date: Thu Jul 19 01:48:16 2007 -0700 mm: variable length argument support Remove the arg+env limit of MAX_ARG_PAGES by copying the strings directly from the old mm into the new mm. We create the new mm before the binfmt code runs, and place the new stack at the very top of the address space. Once the binfmt code runs and figures out where the stack should be, we move it downwards. It is a bit peculiar in that we have one task with two mm's, one of which is inactive. [a.p.zijlstra@chello.nl: limit stack size] Signed-off-by: Ollie Wild Signed-off-by: Peter Zijlstra Cc: Cc: Hugh Dickins [bunk@stusta.de: unexport bprm_mm_init] Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bdf4c48af20a3b0f01671799ace345e3d49576da Author: Peter Zijlstra Date: Thu Jul 19 01:48:15 2007 -0700 audit: rework execve audit The purpose of audit_bprm() is to log the argv array to a userspace daemon at the end of the execve system call. Since user-space hasn't had time to run, this array is still in pristine state on the process' stack; so no need to copy it, we can just grab it from there. In order to minimize the damage to audit_log_*() copy each string into a temporary kernel buffer first. Currently the audit code requires that the full argument vector fits in a single packet. So currently it does clip the argv size to a (sysctl) limit, but only when execve auditing is enabled. If the audit protocol gets extended to allow for multiple packets this check can be removed. Signed-off-by: Peter Zijlstra Signed-off-by: Ollie Wild Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b111757c50ee30dad162192df6168e270a90c252 Author: Peter Zijlstra Date: Thu Jul 19 01:48:14 2007 -0700 arch: personality independent stack top New arch macro STACK_TOP_MAX it gives the larges valid stack address for the architecture in question. It differs from STACK_TOP in that it will not distinguish between personalities but will always return the largest possible address. This is used to create the initial stack on execve, which we will move down to the proper location once the binfmt code has figured out where that is. Signed-off-by: Peter Zijlstra Signed-off-by: Ollie Wild Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f34e3b61f2be9628bd41244f3ecc42009c5eced5 Author: Fenghua Yu Date: Thu Jul 19 01:48:13 2007 -0700 use the new percpu interface for shared data Currently most of the per cpu data, which is accessed by different cpus, has a ____cacheline_aligned_in_smp attribute. Move all this data to the new per cpu shared data section: .data.percpu.shared_aligned. This will seperate the percpu data which is referenced frequently by other cpus from the local only percpu data. Signed-off-by: Fenghua Yu Acked-by: Suresh Siddha Cc: Rusty Russell Cc: Christoph Lameter Cc: "Luck, Tony" Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5fb7dc37dc16fbc8b80d81318a582201ef7e280d Author: Fenghua Yu Date: Thu Jul 19 01:48:12 2007 -0700 define new percpu interface for shared data per cpu data section contains two types of data. One set which is exclusively accessed by the local cpu and the other set which is per cpu, but also shared by remote cpus. In the current kernel, these two sets are not clearely separated out. This can potentially cause the same data cacheline shared between the two sets of data, which will result in unnecessary bouncing of the cacheline between cpus. One way to fix the problem is to cacheline align the remotely accessed per cpu data, both at the beginning and at the end. Because of the padding at both ends, this will likely cause some memory wastage and also the interface to achieve this is not clean. This patch: Moves the remotely accessed per cpu data (which is currently marked as ____cacheline_aligned_in_smp) into a different section, where all the data elements are cacheline aligned. And as such, this differentiates the local only data and remotely accessed data cleanly. Signed-off-by: Fenghua Yu Acked-by: Suresh Siddha Cc: Rusty Russell Cc: Christoph Lameter Cc: Cc: "Luck, Tony" Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3d7e33825d8799115dd2495c9944badd3272a623 Author: Michael Ellerman Date: Thu Jul 19 01:48:11 2007 -0700 jprobes: make jprobes a little safer for users I realise jprobes are a razor-blades-included type of interface, but that doesn't mean we can't try and make them safer to use. This guy I know once wrote code like this: struct jprobe jp = { .kp.symbol_name = "foo", .entry = "jprobe_foo" }; And then his kernel exploded. Oops. This patch adds an arch hook, arch_deref_entry_point() (I don't like it either) which takes the void * in a struct jprobe, and gives back the text address that it represents. We can then use that in register_jprobe() to check that the entry point we're passed is actually in the kernel text, rather than just some random value. Signed-off-by: Michael Ellerman Cc: Prasanna S Panchamukhi Acked-by: Ananth N Mavinakayanahalli Cc: Anil S Keshavamurthy Cc: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9e367d859297b9377d65574f538cf52730e9eda8 Author: Michael Ellerman Date: Thu Jul 19 01:48:10 2007 -0700 jprobes: remove JPROBE_ENTRY() AFAICT now that jprobe.entry is a void *, JPROBE_ENTRY doesn't do anything useful - so remove it .. I've left a do-nothing version so that out-of-tree jprobes code will still compile without modifications. Signed-off-by: Michael Ellerman Cc: Prasanna S Panchamukhi Acked-by: Ananth N Mavinakayanahalli Cc: Anil S Keshavamurthy Cc: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 81eae375eceba481ca4c605d42913871f093f6d5 Author: Michael Ellerman Date: Thu Jul 19 01:48:09 2007 -0700 jprobes: make struct jprobe.entry a void * Currently jprobe.entry is a kprobe_opcode_t *, but that's a lie. On some platforms it doesn't point to an opcode at all, it points to a function descriptor. It's really a pointer to something that the arch code can turn into a function entry point. And that's what actually happens, none of the generic code ever looks at jprobe.entry, it's only ever dereferenced by arch code. So just make it a void *. Signed-off-by: Michael Ellerman Cc: Prasanna S Panchamukhi Acked-by: Ananth N Mavinakayanahalli Cc: Anil S Keshavamurthy Cc: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f9acc8c7b35a100f3a9e0e6977f7807b0169f9a5 Author: Fengguang Wu Date: Thu Jul 19 01:48:08 2007 -0700 readahead: sanify file_ra_state names Rename some file_ra_state variables and remove some accessors. It results in much simpler code. Kudos to Rusty! Signed-off-by: Fengguang Wu Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cf914a7d656e62b9dd3e0dffe4f62b953ae6048d Author: Rusty Russell Date: Thu Jul 19 01:48:08 2007 -0700 readahead: split ondemand readahead interface into two functions Split ondemand readahead interface into two functions. I think this makes it a little clearer for non-readahead experts (like Rusty). Internally they both call ondemand_readahead(), but the page argument is changed to an obvious boolean flag. Signed-off-by: Rusty Russell Signed-off-by: Fengguang Wu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fe3cba17c49471e99d3421e675fc8b3deaaf0b70 Author: Fengguang Wu Date: Thu Jul 19 01:48:07 2007 -0700 mm: share PG_readahead and PG_reclaim Share the same page flag bit for PG_readahead and PG_reclaim. One is used only on file reads, another is only for emergency writes. One is used mostly for fresh/young pages, another is for old pages. Combinations of possible interactions are: a) clear PG_reclaim => implicit clear of PG_readahead it will delay an asynchronous readahead into a synchronous one it actually does _good_ for readahead: the pages will be reclaimed soon, it's readahead thrashing! in this case, synchronous readahead makes more sense. b) clear PG_readahead => implicit clear of PG_reclaim one(and only one) page will not be reclaimed in time it can be avoided by checking PageWriteback(page) in readahead first c) set PG_reclaim => implicit set of PG_readahead will confuse readahead and make it restart the size rampup process it's a trivial problem, and can mostly be avoided by checking PageWriteback(page) first in readahead d) set PG_readahead => implicit set of PG_reclaim PG_readahead will never be set on already cached pages. PG_reclaim will always be cleared on dirtying a page. so not a problem. In summary, a) we get better behavior b,d) possible interactions can be avoided c) racy condition exists that might affect readahead, but the chance is _really_ low, and the hurt on readahead is trivial. Compound pages also use PG_reclaim, but for now they do not interact with reclaim/readahead code. Signed-off-by: Fengguang Wu Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8983910a4045fa21022cfccf76ed13eb40fd7f5 Author: Fengguang Wu Date: Thu Jul 19 01:48:06 2007 -0700 readahead: pass real splice size Pass real splice size to page_cache_readahead_ondemand(). The splice code works in chunks of 16 pages internally. The readahead code should be told of the overall splice size, instead of the internal chunk size. Otherwize bad things may happen. Imagine some 17-page random splice reads. The code before this patch will result in two readahead calls: readahead(16); readahead(1); That leads to one 16-page I/O and one 32-page I/O: one extra I/O and 31 readahead miss pages. Signed-off-by: Fengguang Wu Cc: Jens Axboe Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 431a4820bfcdf7ff530e745230bafb06c9bf2d6d Author: Fengguang Wu Date: Thu Jul 19 01:48:05 2007 -0700 readahead: move synchronous readahead call out of splice loop Move synchronous page_cache_readahead_ondemand() call out of splice loop. This avoids one pointless page allocation/insertion in case of non-zero ra_pages, or many pointless readahead calls in case of zero ra_pages. Note that if a user sets ra_pages to less than PIPE_BUFFERS=16 pages, he will not get expected readahead behavior anyway. The splice code works in batches of 16 pages, which can be taken as another form of synchronous readahead. Signed-off-by: Fengguang Wu Cc: Jens Axboe Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c743d96b6d2ff55a94df7b5ac7c74987bb9c343b Author: Fengguang Wu Date: Thu Jul 19 01:48:04 2007 -0700 readahead: remove the old algorithm Remove the old readahead algorithm. Signed-off-by: Fengguang Wu Cc: Steven Pratt Cc: Ram Pai Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dc7868fcb9a73990e6f30371c1be465c436a7a7f Author: Fengguang Wu Date: Thu Jul 19 01:48:04 2007 -0700 readahead: convert ext3/ext4 invocations Convert ext3/ext4 dir reads to use on-demand readahead. Readahead for dirs operates _not_ on file level, but on blockdev level. This makes a difference when the data blocks are not continuous. And the read routine is somehow opaque: there's no handy info about the status of current page. So a simplified call scheme is employed: to call into readahead whenever the current page falls out of readahead windows. Signed-off-by: Fengguang Wu Cc: Steven Pratt Cc: Ram Pai Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a08a166fe77d9f9ad88ed6d06b97e73453661f89 Author: Fengguang Wu Date: Thu Jul 19 01:48:03 2007 -0700 readahead: convert splice invocations Convert splice reads to use on-demand readahead. Signed-off-by: Fengguang Wu Cc: Steven Pratt Cc: Ram Pai Cc: Jens Axboe Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3ea89ee86a82e9fbde37018d9b9e92a552e5fd13 Author: Fengguang Wu Date: Thu Jul 19 01:48:02 2007 -0700 readahead: convert filemap invocations Convert filemap reads to use on-demand readahead. The new call scheme is to - call readahead on non-cached page - call readahead on look-ahead page - update prev_index when finished with the read request Signed-off-by: Fengguang Wu Cc: Steven Pratt Cc: Ram Pai Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 122a21d11cbfda6d1e33cbc8ae9e4c4ee2f1886e Author: Fengguang Wu Date: Thu Jul 19 01:48:01 2007 -0700 readahead: on-demand readahead logic This is a minimal readahead algorithm that aims to replace the current one. It is more flexible and reliable, while maintaining almost the same behavior and performance. Also it is full integrated with adaptive readahead. It is designed to be called on demand: - on a missing page, to do synchronous readahead - on a lookahead page, to do asynchronous readahead In this way it eliminated the awkward workarounds for cache hit/miss, readahead thrashing, retried read, and unaligned read. It also adopts the data structure introduced by adaptive readahead, parameterizes readahead pipelining with `lookahead_index', and reduces the current/ahead windows to one single window. HEURISTICS The logic deals with four cases: - sequential-next found a consistent readahead wi