commit 4ad193b43f6da6f15e19eda338c71e5b41383912 Merge: cebd770... 97bb812... Author: Linus Torvalds Date: Fri Aug 15 11:52:40 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: wm8990: Implement speaker volume PGA ALSA: wm8990: Fix routing of left DAC to speaker mixer ALSA: virtuoso: add Xonar D1 support commit cebd7709d396b59ff53b95fa3c4d9febbd4c010f Author: Jean Delvare Date: Fri Aug 15 10:58:05 2008 +0200 hwmon-vid: Fix AMD K8 VID decoding Not all AMD K8 have 6 VID pins, contrary to what was assumed in commit 116d0486bdefc11f71e567cadf0c47f788b4dd06. This commit broke support of older CPU models which have only 5 VID pins: http://bugzilla.kernel.org/show_bug.cgi?id=11329 We need two entries in the hwmon-vid table, one for 5-bit VID models (K8 revision <= E) and one for 6-bit VID models (K8 revision >= F). This fixes bug #11329. Signed-off-by: Jean Delvare Acked-by: Frank Myhr Tested-by: Jean-Luc Coulon Signed-off-by: Linus Torvalds commit cd98a04a59e2f94fa64d5bf1e26498d27427d5e7 Author: Ingo Molnar Date: Wed Aug 13 18:02:18 2008 +0200 x86: add MAP_STACK mmap flag as per this discussion: http://lkml.org/lkml/2008/8/12/423 Pardo reported that 64-bit threaded apps, if their stacks exceed the combined size of ~4GB, slow down drastically in pthread_create() - because glibc uses MAP_32BIT to allocate the stacks. The use of MAP_32BIT is a legacy hack - to speed up context switching on certain early model 64-bit P4 CPUs. So introduce a new flag to be used by glibc instead, to not constrain 64-bit apps like this. glibc can switch to this new flag straight away - it will be ignored by the kernel. If those old CPUs ever matter to anyone, support for it can be implemented. Signed-off-by: Ingo Molnar Acked-by: Ulrich Drepper Signed-off-by: Linus Torvalds commit 45edb89ffd6386f95a7a9e1e5461b0e61c76aa14 Merge: 8c9a9dd... ad66133... Author: Linus Torvalds Date: Fri Aug 15 11:02:35 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: [CIFS] mount of IPC$ breaks with iget patch [CIFS] remove trailing whitespace [CIFS] if get root inode fails during mount, cleanup tree connection commit 8c9a9dd0fa3a269d380eaae2dc1bee39e865fae1 Author: Alan Cox Date: Fri Aug 15 10:39:38 2008 +0100 tty: remove resize window special case This moves it to being a tty operation. That removes special cases and now also means that resize can be picked up by um and other non vt consoles which may have a resize operation. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit 21d3bdb1606311a2900eabccfcb5a887952e2c44 Merge: 3141eb6... c78c7e3... Author: Linus Torvalds Date: Fri Aug 15 10:33:07 2008 -0700 Merge branch 'linux-next' of git://git.infradead.org/~dedekind/ubifs-2.6 * 'linux-next' of git://git.infradead.org/~dedekind/ubifs-2.6: (29 commits) UBIFS: xattr bugfixes UBIFS: remove unneeded check UBIFS: few commentary fixes UBIFS: fix budgeting request alignment in xattr code UBIFS: improve arguments checking in debugging messages UBIFS: always set i_generation to 0 UBIFS: correct spelling of "thrice". UBIFS: support splice_write UBIFS: minor tweaks in commit UBIFS: reserve more space for index UBIFS: print pid in dump function UBIFS: align inode data to eight UBIFS: improve budgeting checks UBIFS: correct orphan deletion order UBIFS: fix typos in comments UBIFS: do not union creat_sqnum and del_cmtno UBIFS: optimize deletions UBIFS: increment commit number earlier UBIFS: remove another unneeded function parameter UBIFS: remove unneeded function parameter ... commit 3141eb6c50f1dafa99874e702d8b444034e2bb10 Merge: 7db9cbb... 56ac36d... Author: Linus Torvalds Date: Fri Aug 15 09:30:24 2008 -0700 Merge branch 'for-linus' of git://neil.brown.name/md * 'for-linus' of git://neil.brown.name/md: md: cancel check/repair requests when recovery is needed Allow raid10 resync to happening in larger chunks. Allow faulty devices to be removed from a readonly array. Don't let a blocked_rdev interfere with read request in raid5/6 Fail safely when trying to grow an array with a write-intent bitmap. Restore force switch of md array to readonly at reboot time. Make writes to md/safe_mode_delay immediately effective. commit 7db9cbb3748c46b80e5c99ffa91945b8dd4ed5e5 Merge: ffaa5b9... cbbdece... Author: Linus Torvalds Date: Fri Aug 15 09:28:16 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: xilinx_ps2 - fix warning Input: bcm5974 - implement autosuspend support Input: bcm5974 - add driver for Macbook Air and Pro Penryn touchpads Input: paper over a bug in Synaptics X driver Input: evdev - split EVIOCGBIT handlig into a separate function Input: i8042 - Add Dritek quirk for Acer TravelMate 4280 Input: xpad - add Pelican Eclipse D-Pad to the list of devices Input: gpio-keys - make gpio_keys_device_driver static Input: gpio-keys - fix possible NULL pointer dereference Input: wm97xx - enable sub-drivers by default commit ffaa5b984a9322bbd5d9a7f0814ca2ce70feebe5 Merge: 024b246... 0f24562... Author: Linus Torvalds Date: Fri Aug 15 09:26:37 2008 -0700 Merge branch 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-2.6 * 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-2.6: ACPI: Fix thermal shutdowns ACPI: bounds check IRQ to prevent memory corruption ACPI: Avoid bogus EC timeout when EC is in Polling mode ACPI : Add the EC dmi table to fix the incorrect ECDT table ACPI: Properly clear flags on false-positives and send uevent on sudden unplug acpi: trivial cleanups acer-wmi: Fix wireless and bluetooth on early AMW0 v2 laptops ACPI: WMI: Set instance for query block calls ACPICA: Additional error checking for pathname utilities ACPICA: Fix possible memory leak in Unload() operator ACPICA: Fix memory leak when deleting thermal/processor objects commit 024b246ed24492d6c2ee14c34d742b137fce1b94 Author: Linus Torvalds Date: Fri Aug 15 09:19:40 2008 -0700 alpha: move include/asm-alpha to arch/alpha/include/asm Sam Ravnborg did the build-test that the direct header file move works, I'm just committing it. This is a pure move: mkdir arch/alpha/include git mv include/asm-alpha arch/alpha/include/asm with no other changes. Requested-and-tested-by: Sam Ravnborg Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Linus Torvalds commit 97bb8129e5deb3c0584391a5d2348966732e2233 Author: Mark Brown Date: Fri Aug 15 16:22:33 2008 +0100 ALSA: wm8990: Implement speaker volume PGA The latest revisions of the WM8990 provide a programmable gain amplifier for the speaker - configure the register cache and implement controls for this. Older revisions of the device ignore writes to these controls. Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 436a74593c34275807fadef20344bbaca251b8d1 Author: Mark Brown Date: Fri Aug 15 16:22:32 2008 +0100 ALSA: wm8990: Fix routing of left DAC to speaker mixer Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai commit 9419fc1c957d600093baaea247fef23cca3b4e93 Author: Bob Copeland Date: Fri Aug 15 00:40:47 2008 -0700 omfs: fix oops when file metadata is corrupted A fuzzed fileystem image failed with OMFS when the extent count was used in a loop without being checked against the max number of extents. It also provoked a signed division for an array index that was checked as if unsigned, leading to index by -1. omfsck will be updated to fix these cases, in the meantime bail out gracefully. Reported-by: Eric Sesterhenn Signed-off-by: Bob Copeland Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c963343a1150106819773e828c9b237ed977615b Author: Bob Copeland Date: Fri Aug 15 00:40:46 2008 -0700 omfs: fix potential oops when directory size is corrupted Testing with a modified fsfuzzer reveals a couple of locations in omfs where filesystem variables are ultimately used as loop counters with insufficient sanity checking. In this case, dir->i_size is used to compute the number of buckets in the directory hash. If too large, readdir will overrun a buffer. Since it's an invariant that dir->i_size is equal to the sysblock size, and we already sanity check that, just use that value instead. This fixes the following oops: BUG: unable to handle kernel paging request at c978e004 IP: [] omfs_readdir+0x18e/0x32f Oops: 0000 [#1] PREEMPT DEBUG_PAGEALLOC Modules linked in: Pid: 4796, comm: ls Not tainted (2.6.27-rc2 #12) EIP: 0060:[] EFLAGS: 00010287 CPU: 0 EIP is at omfs_readdir+0x18e/0x32f EAX: c978d000 EBX: 00000000 ECX: cbfcfaf8 EDX: cb2cf100 ESI: 00001000 EDI: 00000800 EBP: cb2d3f68 ESP: cb2d3f0c DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068 Process ls (pid: 4796, ti=cb2d3000 task=cb175f40 task.ti=cb2d3000) Stack: 00000002 00000000 00000000 c018a820 cb2d3f94 cb2cf100 cbfb0000 ffffff10 cbfb3b80 cbfcfaf8 000001c9 00000a09 00000000 00000000 00000000 cbfcfbc8 c9697000 cbfb3b80 22222222 00001000 c08e6cd0 cb2cf100 cbfb3b80 cb2d3f88 Call Trace: [] ? filldir64+0x0/0xcd [] ? vfs_readdir+0x56/0x82 [] ? filldir64+0x0/0xcd [] ? sys_getdents64+0x5e/0xa0 [] ? sysenter_do_call+0x12/0x31 ======================= Code: 00 89 f0 89 f3 0f ac f8 14 81 e3 ff ff 0f 00 48 8d 14 c5 b8 01 00 00 89 45 cc 89 55 f0 e9 8c 01 00 00 8b 4d c8 8b 75 f0 8b 41 18 <8b> 54 30 04 8b 04 30 31 f6 89 5d dc 89 d1 8b 55 b8 0f c8 0f c9 Reported-by: Eric Sesterhenn Signed-off-by: Bob Copeland Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be4de35263f59ca1f4740edfffbfb02cc3f2189e Author: Dave Chinner Date: Fri Aug 15 00:40:44 2008 -0700 completions: uninline try_wait_for_completion and completion_done m68k fails to build with these functions inlined in completion.h. Move them out of line into sched.c and export them to avoid this problem. Signed-off-by: Dave Chinner Cc: Geert Uytterhoeven Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e48880e02e7e7ead9daa47fe3a20486f550668d3 Author: David Brownell Date: Fri Aug 15 00:40:44 2008 -0700 spi: bugfix spi_add_device() with duplicate chipselects When reviewing a recent patch I noticed a potential trouble spot in the registration of new SPI devices. The SPI master driver is told to set the device up before adding it to the driver model, so that it's always properly set up when probe() is called. (This is important, because in the case of inverted chipselects, this device can make the bus misbehave until it's properly deselected. It's got to be set up even if no driver binds to the device.) The trouble spot is that it doesn't first verify that no other device has been added using that chipselect. If such a device has been added, its configuration gets trashed. (Fortunately this has not been a common error!) The fix here adds an explicit check, and a mutex to protect the relevant critical region. [akpm@linux-foundation.org: make the lock local to spi_add_device()] Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7d455e0030eeab820773e7786605be4d9e56a04b Author: Chris Mason Date: Fri Aug 15 00:40:43 2008 -0700 fs/inode.c: properly init address_space->writeback_index write_cache_pages() uses i_mapping->writeback_index to pick up where it left off the last time a given inode was found by pdflush or balance_dirty_pages (or anyone else who sets wbc->range_cyclic) alloc_inode() should set it to a sane value so that writeback doesn't start in the middle of a file. It is somewhat difficult to notice the bug since write_cache_pages will loop around to the start of the file and the elevator helps hide the resulting seeks. For whatever reason, Btrfs hits this often. Unpatched, untarring 30 copies of the linux kernel in series runs at 47MB/s on a single sata drive. With this fix, it jumps to 62MB/s. Signed-off-by: Chris Mason Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 75312619e8cd47265da210189cca57ab09640b18 Author: Jack Steiner Date: Fri Aug 15 00:40:42 2008 -0700 MAINTAINERS: add maintainers for GRU, XPC, XPNET and XP Add MAINTAINERS for GRU, XPNET, XPC and XP drivers. Signed-off-by: Jack Steiner Cc: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 34c86c1e622ec77ba81c01969003bbc8e15156f3 Author: Darrick J. Wong Date: Fri Aug 15 00:40:41 2008 -0700 coretemp: recognize Nehalem CPUs Add in the CPUID for Nehalem chips. Signed-off-by: Darrick J. Wong Cc: Kent Liu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb15e7f286e3ecf3e85e06ad9b0019096e43a613 Author: Darrick J. Wong Date: Fri Aug 15 00:40:41 2008 -0700 ibmaem: don't query the entire sensor repository when reading energy meter Currently, all sensors are read when the energy meter is queried via sysfs. This introduces a considerable amount of delay and variation in the sysfs reading, which is not desirable when trying to profile energy use. Therefore, read only the energy meters when a sysfs query comes in for them, and don't cache the results so that we always get the latest reading. Signed-off-by: Darrick J. Wong Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9c5413eac5199b8457689eb2c9d9e75138356bd6 Author: Darrick J. Wong Date: Fri Aug 15 00:40:40 2008 -0700 ibmaem: prevent infinite probing loop on x3650 M2 systems On older machines, probing for a nonexistent AEM interface returned an IPMI error; when we saw this, we'd stop probing. On the x3650 M2 and (presumably) later, we are returned a value indicating success and a buffer full of garbage or zeroes. This causes the probe function to run in an infinite loop. To fix this, we add one last check--if the interface number we're looking for is higher than the number of interfaces that AEM claims to have, stop probing. Signed-off-by: Darrick J. Wong Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit eb93b7df7e66597fa807e34a0f812ffff7ff165b Author: Darrick J. Wong Date: Fri Aug 15 00:40:40 2008 -0700 ibmaem: update the documentation to reflect the current name Minor documentation update to reflect the current full name of the power management hardware interface and reflows the text a bit. Signed-off-by: Darrick J. Wong Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4ef664b5bc93bbfe28513165216a8c9f4fad5314 Author: Alistair John Strachan Date: Fri Aug 15 00:40:39 2008 -0700 abituguru3: prefer DMI probing to manual probing Previously the driver was only using DMI to prevent smbus probing on non-Abit motherboards. However, since the manual probing method is brittle and prone to failure on some Abit motherboards (esp. the Abit IP35 Pro) it is better to use DMI to also read the board name and then decide whether or not to probe the bus. At the moment, we do not have a list of valid DMI name strings to use for existing and supported motherboards. This patch only implements DMI probing for the IP35 Pro. For motherboards that can not yet use DMI probing, a warning will be printed to the kernel log asking those users to email me their dmidecode output. The existing manual probing mechanism will be used if CONFIG_DMI is not enabled, if DMI probing fails (for DMI-unsupported motherboards), or if DMI probing fails and the "force" option is set (for DMI-supported motherboards). Ideally in the longer term this manual probing method would be removed. This patch should be safe to apply as it does not change the probing behaviour for most of the supported motherboards, just the IP35 Pro, which already has regressions filed against it in 2.6.26. Addresses http://bugzilla.kernel.org/show_bug.cgi?id=11212 Signed-off-by: Alistair John Strachan Acked-by: Hans de Goede Cc: "Mark M. Hoffman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 249e3c85afb972d8ae8b6da269e7c85f931b9849 Author: Alistair John Strachan Date: Fri Aug 15 00:40:37 2008 -0700 abituguru3: update MAINTAINERS Hans passed maintainership of the abituguru3 hwmon driver onto me. Add a new entry to the MAINTAINERS file for the abituguru3 driver and assign it to me. Also update the existing UGURU entry to indicate that Hans is only responsible for the abituguru driver. Signed-off-by: Alistair John Strachan Acked-by: Hans de Goede Cc: Jean Delvare Cc: "Mark M. Hoffman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 963d96b53e1f4ebf4db0b8b7ba71ff7b438fbee0 Author: Darrick J. Wong Date: Fri Aug 15 00:40:36 2008 -0700 i5k_amb: provide labels for temperature sensors Export the sensor -> channel/dimm mapping in tempX_label. Signed-off-by: Darrick J. Wong Cc: "Mark M. Hoffman" Cc: Jean Delvare Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d42139a3fbd9793cf3747287e8f5c1ae06e06942 Author: Marc Pignat Date: Fri Aug 15 00:40:34 2008 -0700 hwmon: ADC124S501 generic driver SPI driver for analog to digital converters national semiconductor ADC081S101, ADC124S501, ... Code for 8 channels by Tobias Himmer. This driver adds support for National Semiconductor ADCS chip family, where: * bb is the resolution in number of bits (8, 10, 12) * c is the number of channels (1, 2, 4, 8) * sss is the maximum conversion speed (021 for 200 kSPS, 051 for 500 kSPS and 101 for 1 MSPS) [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Marc Pignat Cc: Tobias Himmer Cc: "Mark M. Hoffman" Cc: Jean Delvare Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 16a515fd0cd3711a7da464d36009f18cd8e23f07 Author: Michael Borisov Date: Fri Aug 15 00:40:32 2008 -0700 drivers/hwmon/w83791d.c: fix unused var warning drivers/hwmon/w83791d.c: In function `w83791d_probe': drivers/hwmon/w83791d.c:1049: warning: unused variable `val1' Signed-off-by: Michael Borisov Cc: "Mark M. Hoffman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f91a79fe86a0becdf2506c189cdde154e82c787c Author: Guilherme M. Schroeder Date: Fri Aug 15 00:40:32 2008 -0700 applesmc: add support for Macbook Add support for Macbook v3 (sensors and accelerometer). Signed-off-by: Nicolas Boichat Cc: "Mark M. Hoffman" Cc: Jean Delvare Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9f86f28df14e06b12908d6475ee2462f0555bf34 Author: Roberto De Ioris Date: Fri Aug 15 00:40:30 2008 -0700 applesmc: support for Intel iMac This adds support for fans and temperature sensors on intel iMac. Tested on iMac 24" 2.8ghz (iMac8,1), it supports the following sensors: cpu A ambient gpu gpu diode gpu heatsink hd bay 1 memory controller optical drive power Signed-off-by: Roberto De Ioris Cc: Nicolas Boichat Cc: Jean Delvare Cc: Mark M. Hoffman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fdfaa4833f984c6f8d44afb1fed6c0c775e6e67b Author: York Sun Date: Fri Aug 15 00:40:29 2008 -0700 freescale DIU: bug fix: add sanity check for AOI position AOI position cannot be negative. Signed-off-by: York Sun Cc: Kumar Gala Cc: "Antonino A. Daplas" Cc: Krzysztof Helt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ae5591e3f4754478b397a4e09ebd7cf4774ef88e Author: York Sun Date: Fri Aug 15 00:40:28 2008 -0700 freescale DIU: add virtual resolution and panning support Application can now have the virtual resoltuion and use FBIOPAN_DISPLAY ioctl to pan. Signed-off-by: York Sun Cc: Kumar Gala Cc: "Antonino A. Daplas" Cc: Krzysztof Helt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8c5a1cf0ad3ac5fcdf51314a63b16a440870f6a2 Author: Andrew Morton Date: Fri Aug 15 00:40:27 2008 -0700 kexec: use a mutex for locking rather than xchg() Functionally the same, but more conventional. Cc: Huang Ying Tested-by: Vivek Goyal Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3122c331190e9d1622bf1c8cf6ce3b17cca67c9e Author: Huang Ying Date: Fri Aug 15 00:40:26 2008 -0700 kexec jump: fix for ftrace Ftrace depends on some processor state that we destroyed during kexec and restored by restore_processor_state(). So save_processor_state() and restore_processor_state() are moved into machine_kexec() and ftrace is restored after restore_processor_state(). Signed-off-by: Huang Ying Cc: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Ingo Molnar Cc: Steven Rostedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9bdeb7b5d34f197dea7859d24475943395ffea5e Author: Huang Ying Date: Fri Aug 15 00:40:25 2008 -0700 kexec jump: __ftrace_enabled_save/restore Add __ftrace_enabled_save/restore, used to disable ftrace for a while. Now, this is used by kexec jump, which need a version without lock, for general situation, a locked version should be used. Signed-off-by: Huang Ying Cc: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Ingo Molnar Cc: Steven Rostedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 73bd9c72a29be1e8de008186eea55d333a938804 Author: Huang Ying Date: Fri Aug 15 00:40:24 2008 -0700 kexec jump: in sync with hibernation implementation Add device_pm_lock() and device_pm_unlock() in kernel_kexec() in sync with current hibernation implementation. Signed-off-by: Huang Ying Acked-by: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ca195b7f6da3d5dde0bb85a7c322d7de73352653 Author: Huang Ying Date: Fri Aug 15 00:40:24 2008 -0700 kexec jump: remove duplication of kexec_restart_prepare() Call kernel_restart_prepare() in kernel_kexec() instead of duplicating the code. Signed-off-by: Huang Ying Acked-by: Pavel Machek Acked-by: Vivek Goyal Cc: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fb45daa69d287b394eca1619b3fadff7c0215c71 Author: Huang Ying Date: Fri Aug 15 00:40:23 2008 -0700 kexec jump: check code size in control page Kexec/Kexec-jump require code size in control page is less than PAGE_SIZE/2. This patch add link-time checking for this. ASSERT() of ld link script is used as the link-time checking mechanism. [akpm@linux-foundation.org: build fix] Signed-off-by: Huang Ying Cc: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Acked-by: Vivek Goyal Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 163f6876f5c3ff8215e900b93779e960a56b3694 Author: Huang Ying Date: Fri Aug 15 00:40:22 2008 -0700 kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE Rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE, because control page is used for not only code on some platform. For example in kexec jump, it is used for data and stack too. [akpm@linux-foundation.org: unbreak powerpc and arm, finish conversion] Signed-off-by: Huang Ying Cc: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Ingo Molnar Cc: Russell King Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7ade3fcc1fe2801336112027a884070c9ca451af Author: Huang Ying Date: Fri Aug 15 00:40:21 2008 -0700 kexec jump: clean up #ifdef and comments Move if (kexec_image->preserve_context) { ... } into #ifdef CONFIG_KEXEC_JUMP to make code looks cleaner. Fix no longer correct comments of kernel_kexec(). Signed-off-by: Huang Ying Acked-by: Vivek Goyal Cc: Pavel Machek Cc: "Rafael J. Wysocki" Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4cd69b986ebf0f8da93f82ffbb89c032ee09c2e1 Author: Huang Ying Date: Fri Aug 15 00:40:20 2008 -0700 kexec: fix compilation warning on xchg(&kexec_lock, 0) in kernel_kexec() kernel/kexec.c: In function 'kernel_kexec': kernel/kexec.c:1506: warning: value computed is not used Signed-off-by: Huang Ying Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ce289e89726948b50a58c9e8f4e81174a8c9c254 Author: Marcin Slusarz Date: Fri Aug 15 00:40:19 2008 -0700 suspend: fix section mismatch warning - register_nosave_region WARNING: vmlinux.o(.text+0xe684): Section mismatch in reference from the function register_nosave_region() to the function .init.text:__register_nosave_region() The function register_nosave_region() references the function __init __register_nosave_region(). This is often because register_nosave_region lacks a __init annotation or the annotation of __register_nosave_region is wrong. register_nosave_region calls __init function and is called only from __init functions Signed-off-by: Marcin Slusarz Acked-by: Rafael J. Wysocki Cc: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6acb2eceff80027bd67a204227c6c8effd464c25 Author: Michael Kerrisk Date: Fri Aug 15 00:40:18 2008 -0700 Documentation/vm/page_migration: update reference to numa_maps + fix download URI With man-pages-3.07, the numa_maps documentation home is now proc(5), so the reference in Documentation/vm/page_migration needs updating. (Cliff/Lee are removing numa_maps.5 from the numactl package.) Also, the download location for the numactl package changed a while back. This patch fixes both things, as well as a typo (provided-->provides). Signed-off-by: Michael Kerrisk Cc: Cliff Wickman Cc: Lee Schermerhorn Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 627240aaa92a4dc00d25584910b5f205e963747b Author: Mikulas Patocka Date: Fri Aug 15 00:40:17 2008 -0700 bootmem allocator: alloc_bootmem_core(): page-align the end offset This is the minimal sequence that jams the allocator: void *p, *q, *r; p = alloc_bootmem(PAGE_SIZE); q = alloc_bootmem(64); free_bootmem(p, PAGE_SIZE); p = alloc_bootmem(PAGE_SIZE); r = alloc_bootmem(64); after this sequence (assuming that the allocator was empty or page-aligned before), pointer "q" will be equal to pointer "r". What's hapenning inside the allocator: p = alloc_bootmem(PAGE_SIZE); in allocator: last_end_off == PAGE_SIZE, bitmap contains bits 10000... q = alloc_bootmem(64); in allocator: last_end_off == PAGE_SIZE + 64, bitmap contains 11000... free_bootmem(p, PAGE_SIZE); in allocator: last_end_off == PAGE_SIZE + 64, bitmap contains 01000... p = alloc_bootmem(PAGE_SIZE); in allocator: last_end_off == PAGE_SIZE, bitmap contains 11000... r = alloc_bootmem(64); and now: it finds bit "2", as a place where to allocate (sidx) it hits the condition if (bdata->last_end_off && PFN_DOWN(bdata->last_end_off) + 1 == sidx)) start_off = ALIGN(bdata->last_end_off, align); -you can see that the condition is true, so it assigns start_off = ALIGN(bdata->last_end_off, align); (that is PAGE_SIZE) and allocates over already allocated block. With the patch it tries to continue at the end of previous allocation only if the previous allocation ended in the middle of the page. Signed-off-by: Mikulas Patocka Acked-by: Johannes Weiner Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0f2456236459f3ddef48a8a75d10b2d6ecf1a93d Merge: 3c7db22... 9d699ed... afd7301... fa46d35... 9f497bc... 5c742b4... d005741... Author: Andi Kleen Date: Fri Aug 15 03:30:00 2008 +0200 Merge branches 'acpica-release-fixes', 'ec-fix', 'dock', 'irq-bounds', 'thermal-fix', 'wmi' and 'acpi-cleanups' into release-2.6.27 commit 9f497bcc695fb828da023d74ad3c966b1e58ad21 Author: Milan Broz Date: Tue Aug 12 17:48:27 2008 +0200 ACPI: Fix thermal shutdowns Do not use unsigned int if there is test for negative number... See drivers/acpi/processor_perflib.c static unsigned int ignore_ppc = -1; ... if (event == CPUFREQ_START && ignore_ppc <= 0) { ignore_ppc = 0; ... Signed-off-by: Milan Broz Signed-off-by: Andi Kleen commit fa46d3526461e8aa7c0fb39cc1b98ac656695a43 Author: Bjorn Helgaas Date: Fri Aug 1 15:58:17 2008 -0600 ACPI: bounds check IRQ to prevent memory corruption acpi_penalize_isa_irq() should validate irq before using it to index the acpi_irq_penalty[] table. Here's the path I'm concerned about: pnpacpi_parse_allocated_irqresource() { ... irq = acpi_register_gsi(gsi, triggering, polarity); if (irq >= 0) pcibios_penalize_isa_irq(irq, 1); There's no guarantee that acpi_register_gsi() will return an IRQ within the bounds of acpi_irq_penalty[]. I have not seen a failure I can attribute to this. However, ACPI_MAX_IRQS is only 256, and I'm pretty sure ia64 can have IRQs larger than that. I think this should go in 2.6.27. Signed-off-by: Bjorn Helgaas Signed-off-by: Andi Kleen commit 9d699ed92a459cb408e2577e8bbeabc8ec3989e1 Author: Zhao Yakui Date: Mon Aug 11 10:33:31 2008 +0800 ACPI: Avoid bogus EC timeout when EC is in Polling mode When EC is in Polling mode, OS will check the EC status continually by using the following source code: clear_bit(EC_FLAGS_WAIT_GPE, &ec->flags); while (time_before(jiffies, delay)) { if (acpi_ec_check_status(ec, event)) return 0; msleep(1); } But msleep is realized by the function of schedule_timeout. At the same time although one process is already waken up by some events, it won't be scheduled immediately. So maybe there exists the following phenomena: a. The current jiffies is already after the predefined jiffies. But before timeout happens, OS has no chance to check the EC status again. b. If preemptible schedule is enabled, maybe preempt schedule will happen before checking loop. When the process is resumed again, maybe timeout already happens, which means that OS has no chance to check the EC status. In such case maybe EC status is already what OS expects when timeout happens. But OS has no chance to check the EC status and regards it as AE_TIME. So it will be more appropriate that OS will try to check the EC status again when timeout happens. If the EC status is what we expect, it won't be regarded as timeout. Only when the EC status is not what we expect, it will be regarded as timeout, which means that EC controller can't give a response in time. http://bugzilla.kernel.org/show_bug.cgi?id=9823 http://bugzilla.kernel.org/show_bug.cgi?id=11141 Signed-off-by: Zhao Yakui Signed-off-by: Zhang Rui Signed-off-by: Andi Kleen commit 2500822bf4eb0179ef80e5b072c1e0fa83037381 Author: Zhao Yakui Date: Tue Aug 12 10:40:10 2008 +0800 ACPI : Add the EC dmi table to fix the incorrect ECDT table On some ASUS laptops the ECDT gives the incorrect command/status & Data I/O register address. AK: it seems like the command/data addresses are exchanged. In such case it will cause that EC device can't be initialized correctly. To add the EC dmi table is to fix this issue. If the laptop falls into the EC dmi table, the EC command/data I/O address will be fixed. AK: Add comments describing this better http://bugzilla.kernel.org/show_bug.cgi?id=9399 Signed-off-by: Zhao Yakui tested-by : Jan Kasprzak Signed-off-by: Andi Kleen commit afd7301ddb762b66bf1831b0820b402e5d2c439d Author: Holger Macht Date: Wed Aug 6 17:56:01 2008 +0200 ACPI: Properly clear flags on false-positives and send uevent on sudden unplug Some devices emit a ACPI_NOTIFY_DEVICE_CHECK while physically unplugging even if the software undock has already been done and dock_present() check fails. However, the internal flags need to be cleared (complete_undock()). Also, even notify userspace if the dock station suddently went away without proper software undocking. This happens on a Acer TravelMate 3000 Signed-off-by: Holger Macht Signed-off-by: Andi Kleen commit d0057413a7a277e104cf315faa1b55b60b4a5482 Author: Pavel Machek Date: Tue Aug 12 12:24:34 2008 +0200 acpi: trivial cleanups Trivial cleanups for ACPI. Fix misspelling in printk(), fix mismerge, add file header. AK: removed file header Signed-off-by: Pavel Machek Signed-off-by: Andi Kleen commit 5c742b45dd5fbbb6cf74d3378341704f4b23c5e8 Author: Carlos Corbacho Date: Wed Aug 6 19:13:56 2008 +0100 acer-wmi: Fix wireless and bluetooth on early AMW0 v2 laptops In the old acer_acpi, I discovered that on some of the newer AMW0 laptops that supported the WMID methods, they don't work properly for setting the wireless and bluetooth values. So for the AMW0 V2 laptops, we want to use both the 'old' AMW0 and the 'new' WMID methods for setting wireless & bluetooth to guarantee we always enable it. This was fixed in acer_acpi some time ago, but I forgot to port the patch over to acer-wmi when it was merged. (Without this patch, early AMW0 V2 laptops such as the Aspire 5040 won't work with acer-wmi, where-as they did with the old acer_acpi). AK: fix compilation Signed-off-by: Carlos Corbacho CC: stable@kernel.org Signed-off-by: Andi Kleen commit dab36ad8d50dc9424dfc4926f62aaf9bd52dcf13 Author: Carlos Corbacho Date: Sat Aug 2 17:28:45 2008 +0100 ACPI: WMI: Set instance for query block calls Although the necessary data structure was set up, it was never actually passed in, so data block calls have only been working by sheer chance. (On Acer laptops. the data block methods we've been calling never look at the instance value, hence acer-wmi never triggered this before). f3454ae8104efb2dbf0d08ec42c6f5d0fe9225bc brought this to light. Signed-off-by: Carlos Corbacho Signed-off-by: Andi Kleen commit 3c7db22a194d3b53584047425af82b4e1e03d9f7 Author: Bob Moore Date: Mon Aug 4 11:13:01 2008 +0800 ACPICA: Additional error checking for pathname utilities Add error check after all calls to acpi_ns_get_pathname_length. Add status return from acpi_ns_build_external_path and check after all calls. Add parameter validation to acpi_ut_initialize_buffer. Reported by and initial patch by Ingo Molnar. http://lkml.org/lkml/2008/7/21/176 Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Andi Kleen commit d3ff268a0149fce8835f6d48ab481d5e3321e0f7 Author: Lin Ming Date: Fri Jul 4 10:51:41 2008 +0800 ACPICA: Fix possible memory leak in Unload() operator The DdbHandle returned by Load() does not have its reference count decremented during unload, leading to a memory leak. Lin Ming. Signed-off-by: Lin Ming Signed-off-by: Bob Moore Signed-off-by: Andi Kleen commit 2843ae7734075f5d7072cf1230758bf8cf840af7 Author: Bob Moore Date: Fri Jul 4 10:41:41 2008 +0800 ACPICA: Fix memory leak when deleting thermal/processor objects Fixes a possible memory leak when thermal and processor objects are deleted. Any associated notify handlers (and objects) were not being deleted. Fiodor Suietov. BZ 506 http://www.acpica.org/bugzilla/show_bug.cgi?id=506 Signed-off-by: Fiodor Suietov Signed-off-by: Bob Moore Signed-off-by: Lin Ming Signed-off-by: Andi Kleen commit c78c7e35a4709b55d3126624662c8f6d7e3d1a5e Author: Artem Bityutskiy Date: Tue Aug 12 16:30:12 2008 +0300 UBIFS: xattr bugfixes Xattr code has not been tested for a while and there were serveral bugs. One of them is using wrong inode in 'ubifs_jnl_change_xattr()'. The other is a deadlock in 'ubifs_setxattr()': the i_mutex is locked in 'cap_inode_need_killpriv()' path, so deadlock happens when 'ubifs_setxattr()' tries to lock it again. Thanks to Zoltan Sogor for finding these bugs. Signed-off-by: Artem Bityutskiy commit 5430c72b14a06b12e8fe46bca18ca0d7095fb717 Author: Clemens Ladisch Date: Mon Jul 28 10:28:43 2008 +0200 ALSA: virtuoso: add Xonar D1 support Add support for the Asus Xonar D1. It is the same as the DX, but without the external power detection. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit ad661334b8ae421154b121ee6ad3b56807adbf11 Author: Steve French Date: Tue Aug 12 14:14:40 2008 +0000 [CIFS] mount of IPC$ breaks with iget patch In looking at network named pipe support on cifs, I noticed that Dave Howell's iget patch: iget: stop CIFS from using iget() and read_inode() broke mounts to IPC$ (the interprocess communication share), and don't handle the error case (when getting info on the root inode fails). Thanks to Gunter who noted a typo in a debug line in the original version of this patch. CC: David Howells CC: Gunter Kukkukk CC: Stable Kernel Signed-off-by: Steve French commit b635acec48bcaa9183fcbf4e3955616b0d4119b5 Merge: 9921b25... ca6d1b1... Author: Linus Torvalds Date: Wed Aug 13 20:50:10 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (47 commits) usb: musb: pass configuration specifics via pdata usb: musb: fix hanging when rmmod gadget driver USB: Add MUSB and TUSB support USB: serial: remove CONFIG_USB_DEBUG from sierra and option drivers USB: Add vendor/product id of ZTE MF628 to option USB: quirk PLL power down mode USB: omap_udc: fix compilation with debug enabled usb: cdc-acm: drain writes on close usb: cdc-acm: stop dropping tx buffers usb: cdc-acm: bugfix release() usb gadget: issue notifications from ACM function usb gadget: remove needless struct members USB: sh: r8a66597-hcd: fix disconnect regression USB: isp1301: fix compilation USB: fix compiler warning fix usb-storage: unusual_devs entry for Nokia 5300 USB: cdc-acm.c: Fix compile warnings USB: BandRich BandLuxe C150/C250 HSPA Data Card Driver USB: ftdi_sio: add support for PHI Fisco data cable (FT232BM based, VID/PID 0403:e40b) usb: isp1760: don't be noisy about short packets. ... commit 9921b256bb7402143a5bf0b722582562b6485eb8 Merge: 7a49efa... 9e2b2dc... Author: Linus Torvalds Date: Wed Aug 13 20:49:37 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: CRED: Introduce credential access wrappers commit 7a49efae71397cf7e9299bbb22b2d12f7cf12428 Merge: 0ff8285... 877aced... Author: Linus Torvalds Date: Wed Aug 13 20:48:46 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (56 commits) netns: Fix crash by making igmp per namespace bnx2x: Version update bnx2x: Checkpatch compliance bnx2x: Spelling mistakes bnx2x: Minor code improvements bnx2x: Driver info bnx2x: 1G LED does not turn off bnx2x: 8073 PHY changes bnx2x: Change GPIO for any port bnx2x: Pause settings bnx2x: Link order with external PHY bnx2x: No LRO without Rx checksum bnx2x: Wrong structure size bnx2x: WoL capability bnx2x: Clearing MAC addresses filters bnx2x: Delay in while loops bnx2x: PBA Table Page Alignment Workaround bnx2x: Self-test false positive bnx2x: Memory allocation bnx2x: HW attention lock ... commit 0ff8285075a1242dbc969b6b4b1719d692931a02 Merge: 8d0968a... 6f63e78... Author: Linus Torvalds Date: Wed Aug 13 20:48:25 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Handle stack trace attempts before irqstacks are setup. sparc64: Implement IRQ stacks. sparc: remove include of linux/of_device.h from asm/of_device.h sparc64: Fix recursion in stack overflow detection handling. sparc/drivers: use linux/of_device.h instead of asm/of_device.h sparc64: Don't MAGIC_SYSRQ ifdef smp_fetch_global_regs and support code. commit ca6d1b1333bc2e61e37982de1f28d8604c232414 Author: Felipe Balbi Date: Fri Aug 8 12:40:54 2008 +0300 usb: musb: pass configuration specifics via pdata Use platform_data to pass musb configuration-specific details to musb driver. This patch will prevent that other platforms selecting HAVE_CLK and enabling musb won't break tree building. The other parts of it will come when linux-omap merge up more omap2/3 board-files. Signed-off-by: Felipe Balbi Acked-by: Paul Mundt Signed-off-by: Greg Kroah-Hartman commit f362a47560070ec0aaf68ac6b45901eeed1c844f Author: Felipe Balbi Date: Mon Aug 4 13:53:52 2008 +0300 usb: musb: fix hanging when rmmod gadget driver If we try to modprobe a second gadget driver before rmmoding the first one, the reference for the first gadget driver would get NULLed avoiding usb to change gadget drivers later. Cc: David Brownell Cc: Tony Lindgren Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 550a7375fe720924241f0eb76e4a5c1a3eb8c32f Author: Felipe Balbi Date: Thu Jul 24 12:27:36 2008 +0300 USB: Add MUSB and TUSB support This patch adds support for MUSB and TUSB controllers integrated into omap2430 and davinci. It also adds support for external tusb6010 controller. Cc: David Brownell Cc: Tony Lindgren Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit f331e40ee8e4861e1d82310b1af7cf75de7370ac Author: Greg Kroah-Hartman Date: Tue Aug 12 12:04:50 2008 +0700 USB: serial: remove CONFIG_USB_DEBUG from sierra and option drivers These drivers should not be relying on CONFIG_USB_DEBUG. By doing this, it prevents users of kernels that do not enable this option from enabling debugging in these drivers, unlike all other usb-serial drivers. Cc: Matthias Urlichs Cc: Kevin Lloyd Signed-off-by: Greg Kroah-Hartman commit 6188a83f7264edebe9b8ee10ad7b2136d3531ea6 Author: Oliver Martin Date: Sat Aug 9 04:49:26 2008 +0200 USB: Add vendor/product id of ZTE MF628 to option This adds the vendor and product id (19d2:0015) of the ZTE MF628 HSDPA modem to the option driver. It still needs a mode switch command issued beforehand, this is currently handled by a userspace tool. Signed-off-by: Oliver Martin Signed-off-by: Greg Kroah-Hartman commit ab1666c1364a209e6141d7c14e47a42b5f00eca2 Author: Libin Yang Date: Fri Aug 8 15:03:31 2008 +0800 USB: quirk PLL power down mode On some AMD 700 series southbridges, ISO OUT transfers (such as audio playback through speakers) on the USB OHCI controller may be corrupted when an A-Link express power saving feature is active. PLL power down mode in conjunction with link power management feature L1 being enabled is the bad combination ... this patch prevents them from being enabled when ISO transfers are pending. Signed-off-by: Crane Cai Signed-off-by: Libin Yang Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit e12cc34527dcd945597c860c25aba92883a4a6a4 Author: Dmitry Baryshkov Date: Thu Aug 7 16:29:25 2008 +0400 USB: omap_udc: fix compilation with debug enabled Signed-off-by: Dmitry Baryshkov Acked-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit e5fbab51b4219fbd1dab28666affe38a920b5f7e Author: David Brownell Date: Wed Aug 6 18:46:10 2008 -0700 usb: cdc-acm: drain writes on close Add a mechanism to let the write queue drain naturally before closing the TTY, rather than always losing that data. There is a timeout, so it can't wait too long. Provide missing locking inside acm_wb_is_avail(); it matters more now. Note, this presumes an earlier patch was applied, removing a call to this routine where the lock was held. Slightly improved diagnostics on write URB completion, so we can tell when a write URB gets killed and, if so, how much data it wrote first ... and so that I/O path is normally silent (and can't much change timings). Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 934da4635c2d05cef474e5243ef05df95b2ad264 Author: David Brownell Date: Wed Aug 6 18:44:12 2008 -0700 usb: cdc-acm: stop dropping tx buffers The "increase cdc-acm write throughput" patch left in place two now-obsolete mechanisms, either of which can make the cdc-acm driver drop TX data (nasty!). This patch removes them: - The write_ready flag ... if an URB and buffer were found, they can (and should!) always be used. - TX path acm_wb_is_used() ... used when the buffer was just allocated, so that check is pointless. Also fix a won't-yet-matter leak of a write buffer on a disconnect path. Signed-off-by: David Brownell Cc: David Engraf Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 672c4e1843c54227ff1bdf1fdd96f9c45c56aa85 Author: David Brownell Date: Wed Aug 6 18:41:12 2008 -0700 usb: cdc-acm: bugfix release() Bugfixes to the usb_driver_release_interface() usage; (a) make sure releasing *either* interface first will release the other, instead of insisting it be the control interface; (b) remove the recently-added self-deadlock. (The "fix disconnect bug in cdc-acm" patch was incomplete and incorrect.) Plus a small "sparse" fix: rename a local variable so it doesn't shadow a function parameter. Signed-off-by: David Brownell Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 1f1ba11b64947051fc32aa15fcccef6463b433f7 Author: David Brownell Date: Wed Aug 6 18:49:57 2008 -0700 usb gadget: issue notifications from ACM function Update the CDC-ACM gadget code to support the peripheral-to-host notifications when the tty is opened or closed, or issues a BREAK. The serial framework code calls new generic hooks; right now only CDC-ACM uses those hooks. This resolves several REVISIT comments in the code. (Based on a patch from Felipe Balbi.) Note that this doesn't expose USB_CDC_CAP_BRK to the host, since this code still rejects USB_CDC_REQ_SEND_BREAK control requests for host-to-peripheral BREAK signaling (received via /dev/ttyGS*). Signed-off-by: David Brownell Cc: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 630c7aa80152881980e45c11584f22476f71959b Author: David Brownell Date: Wed Aug 6 18:48:52 2008 -0700 usb gadget: remove needless struct members This removes some unused members from the various USB functions. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 54d0be9e3af1e20c3d0c3cc3eba50d33da24229c Author: Yoshihiro Shimoda Date: Fri Jul 11 18:53:45 2008 +0900 USB: sh: r8a66597-hcd: fix disconnect regression fix the regression in commit 29fab0cd897519be9009ba8c898410ab83b378e9 that this driver executed reconnection processing when disconnected some devices. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit cbbcb9b0c7e4d1fd90cf54427382dae525773dc2 Author: Dmitry Baryshkov Date: Thu Aug 7 16:29:24 2008 +0400 USB: isp1301: fix compilation Signed-off-by: Dmitry Baryshkov Acked-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 9ff78433f0aeb1f731a22a90206b685df4eaf52e Author: Alan Stern Date: Thu Aug 7 13:04:51 2008 -0400 USB: fix compiler warning fix This patch (as1123b) fixes a compiler warning: do_unbind_rebind() is defined but not used if CONFIG_PM=n. Problem originally found and initial patch submitted by Alexander Beregalov . Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit d28525f8866244a77b677c0470d4859cb2b6c2a8 Author: Alan Stern Date: Thu Aug 7 13:02:40 2008 -0400 usb-storage: unusual_devs entry for Nokia 5300 This patch (as1120) adds an unusual_devs entry for the Nokia 5300. Maybe once Nokia releases the Symbian code we'll be able to fix all the problems it has with the USB mass-storage protocol. Signed-off-by: Alan Stern Tested-by: Cedric Godin Signed-off-by: Greg Kroah-Hartman commit 81eb8adfcec210a820ad9872ffb242482c976b8d Author: Takashi Iwai Date: Thu Jul 31 19:06:13 2008 +0200 USB: cdc-acm.c: Fix compile warnings The irq flags should be unsigned long. CC [M] drivers/usb/class/cdc-acm.o drivers/usb/class/cdc-acm.c: In function 'acm_waker': drivers/usb/class/cdc-acm.c:527: warning: comparison of distinct pointer types lacks a cast drivers/usb/class/cdc-acm.c:529: warning: comparison of distinct pointer types lacks a cast Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman commit bf3fc82895f4f501da9daef44d057749fe900c3e Author: Leon Leong Date: Fri Aug 1 11:40:12 2008 +0800 USB: BandRich BandLuxe C150/C250 HSPA Data Card Driver This patch adds the Product ID for the BandLuxe C150/C250 3.5G data card series from BandRich Inc. After detection, the data card works fine. It was patched against kernel 2.6.27-rc1 with -mm patch Signed-off-by: Leon Leong Signed-off-by: Greg Kroah-Hartman commit a5f6239949de78a9f33120d76f084928cb234a15 Author: Lex Ross Date: Wed Aug 6 16:25:08 2008 +0400 USB: ftdi_sio: add support for PHI Fisco data cable (FT232BM based, VID/PID 0403:e40b) Support for PHI Fisco USB to Serial data cable (FTDI FT232BM based). PHI Fisco cable is supplied for connecting Philips Xenium 9@9++ mobile phones. PIDs were missing. Tested successfully with PHI Fisco Data Cable (VID/PID 0403:e40b) Signed-off-by: Lex V. Ross Signed-off-by: Greg Kroah-Hartman commit 7839b5162d7d6c100f70a036be1e1f2b072857bc Author: Sebastian Siewior Date: Thu Jul 17 20:09:29 2008 +0200 usb: isp1760: don't be noisy about short packets. According to Alan Stern, short packets are quite normal under certain circumstances. This printk was triggered by usb to serial converters on every packet and some usb sticks triggered a few of those while plugging the stick. This printks are now hidden unless USB debug mode is activated. Cc: Alan Stern Signed-off-by: Sebastian Siewior Signed-off-by: Greg Kroah-Hartman commit 3f02a957d5eb0eeb01207a799086f2b347077f71 Author: Enrico Scholz Date: Thu Jul 17 20:09:30 2008 +0200 usb: ISP1760: improve pre-fetch timing ISP1760 requires a delay of 90ns between programming the address and reading the data. Current driver solves this by a mdelay(1) which is very heavy weighted and slow. This patch applies the workaround from the ISP1760 FAQ by using two different banks for PTD and payload data and using a common wait for them. This wait is done by an additional ISP1760 access (whose timing constraints guarantee the 90ns delay). This improves speed when reading from an USB stick from: $ time dd if=/dev/sda of=/dev/zero bs=65536 count=1638 real 1m 15.43s user 0m 0.44s sys 0m 39.46s to $ time dd if=/dev/sda of=/dev/zero bs=65536 count=1638 real 0m 18.53s user 0m 0.16s sys 0m 12.97s [bigeasy@linutronix.de: fixed comment formating, moved define into header file, obey 80 char rule] Signed-off-by: Enrico Scholz Signed-off-by: Sebastian Siewior Signed-off-by: Greg Kroah-Hartman commit a36c27dfd1003e6d6842fe77faaf868e3e6e9062 Author: Sebastian Siewior Date: Thu Jul 17 20:09:28 2008 +0200 usb: return error code instead of 0 in the enqueue function. if the enqueue function returns -ESHUTDOWN or -ENOMEM then we return 0 instead of an error. This leads to a timeout and then to a dequeue request of an not enqueued urb. Signed-off-by: Sebastian Siewior Signed-off-by: Greg Kroah-Hartman commit 937ef73d5075997a8d1777abf217a48bef2ce029 Author: David Brownell Date: Mon Jul 7 12:16:08 2008 -0700 USB: serial gadget: rx path data loss fixes Update RX path handling in new serial gadget code to cope better with RX blockage: queue every RX packet until its contents can safely be passed up to the ldisc. Most of the RX path work is now done in the RX tasklet, instead of just the final "push to ldisc" step. This addresses some cases of data loss: - A longstanding serial gadget bug: when tty_insert_flip_string() didn't copy the entire buffer, the rest of the characters were dropped! Now that packet stays queued until the rest of its data is pushed to the ldisc. - Another longstanding issue: in the unlikely case that an RX transfer returns data and also reports a fault, that data is no longer discarded. - In the recently added RX throttling logic: it needs to stop pushing data into the TTY layer, instead of just not submitting new USB read requests. When the TTY is throttled long enough, backpressure will eventually make the OUT endpoint NAK. Also: an #ifdef is removed (no longer necessary); and start switching to a better convention for debug messages (prefix them with tty name). Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit e8b24450a635bbbd3a2b4c2649eef060c742ebc0 Author: Dmitry Baryshkov Date: Sun Jul 6 14:26:30 2008 +0400 USB: Hook start_hnp into ohci struct Signed-off-by: Dmitry Baryshkov Acked-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 1133cd8adf34709e1857d1491e9fae5597b51ad5 Author: Dmitry Baryshkov Date: Sun Jul 6 23:35:01 2008 +0400 USB: ohci: make distrust_firmware a quirk Signed-off-by: Dmitry Baryshkov Acked-by: David Brownell Cc: Alan Stern Signed-off-by: Greg Kroah-Hartman commit f0fa74634c0c686618b5318748bde233772a1a8d Author: Oliver Neukum Date: Fri Jul 4 10:10:53 2008 +0200 USB: update to Documentation this mentions a new deadlock due to advanced power management. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 230ffc75b7b842db5710d30d3a2fc61f9d6f50df Author: Simon Arlott Date: Sat Jul 12 22:19:48 2008 +0100 USB: cxacru: Fix printk format flag in error message "#%x" should have been "%#x" Signed-off-by: Simon Arlott Signed-off-by: Greg Kroah-Hartman commit 51cdc1c103dcb7cf1ca280843308a2e32847f9ce Author: Jost Diederichs Date: Sat Jul 12 22:37:05 2008 -0700 USB: usb-storage Motorola Phone Razr v3xx US_FL_FIX_CAPACITY patch add razr v3xx US_FL_FIX_CAPACITY flag to unusual_devs.h in usb-storage This is another Motorola phone that incorrectly reports the sector count (off by one). Problem Description: io errors when mounting phone's sd-card via the phones usb port Steps to reproduce: mount Motorola Razr v3xx phones sd-card on Linux Desktop via usb cable. Phones USB port must be in memory card mode. DEBUG output: Jul 9 19:32:41 micky kernel: Buffer I/O error on device sdd, logical block 3970048 Jul 9 19:32:41 micky kernel: sd 11:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK Jul 9 19:32:41 micky kernel: sd 11:0:0:0: [sdd] Sense Key : Medium Error [current] Jul 9 19:32:41 micky kernel: sd 11:0:0:0: [sdd] Add. Sense: No additional sense information Jul 9 19:32:41 micky kernel: end_request: I/O error, dev sdd, sector 3970048 From: Jost Diederichs Signed-off-by: Greg Kroah-Hartman commit 32fe5e393455d87db4988af03915634304870fb4 Author: Kevin Lloyd Date: Thu Jul 10 14:14:57 2008 -0700 USB Storage Sierra: TRU-Install feature update This patch upgrades the support for the Sierra Wireless TRU-Install feature (i.e. zeroCD) to allow for future support of Linux enabled TRU-Install devices. By default all devices that do not have a Linux enabled TRU-Install device (i.e. the device does not have a Linux package on the virtual CD partition) will be switched into "modem mode." Devices that do contain a Linux package in the TRU-Install virtual CD will be allowed to enumerate as a CD-Rom so that either (a) a user can install the packaged software or (b) a user-space application (e.g. udev) can switch it to modem mode. This patch does allow for manual override by adding a usb-storage module parameter 'swi_tru_install' which can force the modem into either mode regardless of what packages it contains. Signed-off-by: Kevin Lloyd Signed-off-by: Greg Kroah-Hartman commit 0585e4dfe5670d3ccb77bf86551a657699e9e52e Author: Kevin Lloyd Date: Thu Jul 10 14:14:54 2008 -0700 USB Serial Sierra: TRU-Install feature update Moves responsbility of TRU-Install (i.e. ZeroCD) to the usb-storage driver. See patch 04/04 of this set. Signed-off-by: Kevin Lloyd Signed-off-by: Greg Kroah-Hartman commit e3173b22eb7b50a23af60e12bab7a29d4b24f284 Author: Kevin Lloyd Date: Thu Jul 10 14:14:51 2008 -0700 USB Serial Sierra: Dynamic interface detection This patch changes the method by which the number of ports per interface is assigned so that it is more dynamic and calculated on the fly (as opposed to hard coding it). This will allow for faster and easier addition of products. Signed-off-by: Kevin Lloyd Signed-off-by: Greg Kroah-Hartman commit 4e0fee82619937acb13806ffc901d3920b947286 Author: Kevin Lloyd Date: Thu Jul 10 14:14:47 2008 -0700 USB Serial Sierra: clean-up Very minor changes to clean up sierra code. Adds a prefix to debug messages so that Sierra messages are easily recognized. Removes extraneous code. This targets kernel 2.6.26-rc9 Signed-off-by: Kevin Lloyd Signed-off-by: Greg Kroah-Hartman commit 8c809681ba0289afd0ed7bbb63679a0568dd441d Author: Tollef Fog Heen Date: Tue Jul 22 09:28:05 2008 +0200 USB: pl2023: Remove USB id (4348:5523) handled by ch341 USB ID 4348:5523 is handled by the ch341 driver. Remove it from the pl2023 driver. Reverts 002e8f2c80c6be76bb312940bc278fc10b2b2487. Signed-off-by: Tollef Fog Heen Cc: stable Signed-off-by: Greg Kroah-Hartman commit 368ee6469c327364ea10082a348f91c1f5ba47f7 Author: Alan Stern Date: Mon Jul 21 10:08:28 2008 -0400 usb-storage: unusual_devs entries for iRiver T10 and Datafab CF+SM reader This patch (as1115) adds unusual_devs entries with the IGNORE_RESIDE flag for the iRiver T10 and the Simple Tech/Datafab CF+SM card reader. Apparently these devices provide reasonable residue values for READ and WRITE operations, but not for others like INQUIRY or READ CAPACITY. This fixes the iRiver T10 problem reported in Bugzilla #11125. Signed-off-by: Alan Stern Cc: stable Signed-off-by: Greg Kroah-Hartman commit 3bea302d6aa61f2371a63e9ad81eaa373fd66441 Author: Simon Arlott Date: Mon Jul 21 20:44:50 2008 +0100 USB: Move usb/mon/ up to misc options in Kconfig This makes "USB Monitor" appear under "Miscellaneous USB options" section instead of in the middle of device specific drivers in the "USB Imaging devices" section. Signed-off-by: Simon Arlott Signed-off-by: Greg Kroah-Hartman commit 59f4ff2ecff4cef36378928cec891785b402e80c Author: Alan Stern Date: Tue Jul 29 11:58:06 2008 -0400 usb-storage: automatically recognize bad residues This patch (as1119) will help to reduce the clutter of usb-storage's unusual_devs file by automatically detecting some devices that need the IGNORE_RESIDUE flag. The idea is that devices should never return a non-zero residue for an INQUIRY or a READ CAPACITY command unless they failed to transfer all the requested data. So if one of these commands transfers a standard amount of data but there is a positive residue, we know that the residue is bogus and we can set the flag. This fixes the problems reported in Bugzilla #11125. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 1a21175a615ed346e8043f5e9d60a672266b84b4 Author: Alan Stern Date: Wed Jul 30 11:31:50 2008 -0400 USB: fix interface unregistration logic This patch (as1122) fixes a bug: When an interface is unregistered, its children (sysfs files and endpoint devices) are unregistered after it instead of before. Signed-off-by: Alan Stern Tested-by: Kay Sievers Cc: stable Signed-off-by: Greg Kroah-Hartman commit 0282b7f2a874e72c18fcd5a112ccf67f71ba7f5c Author: Alan Stern Date: Tue Jul 29 12:01:04 2008 -0400 usb-serial: don't release unregistered minors This patch (as1121) fixes a bug in the USB serial core. When a device is unregistered, the core will give back its minors -- even if the device hasn't been assigned any! The patch reserves the highest minor value (255) to mean that no minor was assigned. It also removes some dead code and does a small style fixup. Signed-off-by: Alan Stern Cc: stable Signed-off-by: Greg Kroah-Hartman commit e67d70f2f55d90c79dcb384ad5b798f0f9a68085 Author: Felipe Balbi Date: Thu Jul 17 17:26:49 2008 +0300 usb: gadget: protect gadget_chips.h from been included twice Without it, we might have trouble when trying to write some composite gadget drivers. Cc: David Brownell Cc: Greg KH Signed-off-by: Felipe Balbi Acked-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit b9a097f26e55968cbc52e30a4a2e73d32d7604ce Author: Dave Jones Date: Mon Jul 14 13:28:34 2008 -0400 USB: usb-storage: quirk around v1.11 firmware on Nikon D4 usb-storage: quirk around v1.11 firmware on Nikon D40 https://bugzilla.redhat.com/show_bug.cgi?id=454028 Just as in earlier firmware versions, we need to perform this quirk for the latest version too. Speculatively do the entry for the D80 too, as they seem to have the same firmware problems historically. Signed-off-by: Dave Jones Cc: Johannes Berg Cc: Alan Stern Cc: stable Signed-off-by: Greg Kroah-Hartman commit 38b375d9610e2467cb793a84d17c6f65e44cdb39 Author: Alan Stern Date: Mon Jul 21 09:56:26 2008 -0400 USB: OHCI: fix system hang caused by earlier patch This patch (as1114) fixes a problem that was revealed by an earlier patch (as1069b). Some broken controllers seem never to turn off their RHCS interrupt status bit, even when told to do so. As a result they generate an interrupt storm and hang the system. The patch avoids enabling RHSC interrupt requests when the RHCS status bit is already set. This should have no adverse affects on normal controllers, since they won't set the status bit until a root-hub status change actually occurs, in which case we wouldn't enable RHSC interrupt requests anyway -- we would wait until the status change had been processed and cleared. Signed-off-by: Alan Stern Tested by: Andrey Borzenkov Signed-off-by: Greg Kroah-Hartman commit fa41019c7aa172fde075849834409d23eb49f582 Author: Alexander Beregalov Date: Tue Jul 29 05:54:31 2008 +0400 usb/core/driver: fix warning usb/core/driver: fix warning: drivers/usb/core/driver.c:834: warning: 'do_unbind_rebind' defined but not used Signed-off-by: Alexander Beregalov Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit f4f4d58734916e816d4b4a7cf61b3fc22ce02683 Author: Alan Stern Date: Mon Jul 28 10:39:28 2008 -0400 USB: add missing kerneldoc line for "needs_binding" This patch (as1117) adds a kerneldoc line for the "needs_binding" field in struct usb_interface. It was accidentally omitted when the field was added. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit a00c3cadc2bf50b3c925acdb3d0e5789b1650498 Author: Frederik Kriewitz Date: Wed Jul 30 16:53:41 2008 +0200 USB: ftdi_sio: add support for Luminance Stellaris Evaluation/Development Kits The Patch adds support for Luminance Stellaris Evaluation/Development Kits (FTDI 2232C based). The PIDs were missing. Successfully tested with a Stellaris LM3S8962 Evaluation kit. Signed-off-by: Frederik Kriewitz Cc: stable Signed-off-by: Greg Kroah-Hartman commit b5894a500127fce1db1309db5f9ca8b77a2ac266 Author: André Schenk Date: Mon Jul 28 15:48:46 2008 +0200 USB: ftdi_sio: Add USB Product Id for ELV HS485 USB product id registration for the ELV HS485 USB adapter (www.elv.de) to their home automation bus system. Applies to 2.6.26. Signed-off-by: Andre Schenk Cc: stable Signed-off-by: Greg Kroah-Hartman commit c728df70ab0dd59b8ccdc3c611ea88925e6697db Author: David Brownell Date: Sat Jul 26 08:06:24 2008 -0700 USB: fix USB boot crash, ecm_do_notify(), list_add corruption. prev->next should be next (ffff88003b8f82f8) This fixes a BUG() turned up by Ingo via randconfig testing, where CONFIG_LIST_DEBUG turned up list corruption. The corruption was caused by the dummy_hcd (single-machine test harness for gadget and HCD code) trashing the request queue when driven by the new CDC composite gadget an I/O pattern that was previously uncommon. Fix suggested by Alan Stern. Signed-off-by: David Brownell Tested-by: Ingo Molnar Signed-off-by: Greg Kroah-Hartman commit 88d987d6db2a14b191f4eb21cc623dae31e28e9d Author: Wolfgang Mües Date: Tue Jul 29 11:54:43 2008 +0200 usb: auerswald: remove driver (obsolete) This patch removes the auerswald USB driver from the linux kernel 2.6.26. This driver was included into the kernel mainly to connect to the ISDN framework. This was done in linux 2.4.x. For 2.6.x, due to the fragile and moving ISDN support, this connection was never realized, and the only use of this driver was for device configuration. In the age of DSL, the demand of ISDN support is getting very low. Meanwhile, with the advent of libusb, an userspace driver was done for the device configuration which works fine for linux and mac. (Thanks to the libusb developers!). The userspace driver is downloadable from the auerswald web site. So this driver is obsolete now and has to be removed. Many thanks to all developers which helped me to bring this driver up and working. Signed-off-by: Wolfgang Muees Signed-off-by: Greg Kroah-Hartman commit 6f63e781eaf6a741fc65f773017154b20ed4ce3b Author: David S. Miller Date: Wed Aug 13 17:17:52 2008 -0700 sparc64: Handle stack trace attempts before irqstacks are setup. Things like lockdep can try to do stack backtraces before the irqstack blocks have been setup. So don't try to match their ranges so early on. Also, remove unused variable in save_stack_trace(). Signed-off-by: David S. Miller commit 9e2b2dc4133f65272a6d3c5dcb2ce63f8a87cae9 Author: David Howells Date: Wed Aug 13 16:20:04 2008 +0100 CRED: Introduce credential access wrappers The patches that are intended to introduce copy-on-write credentials for 2.6.28 require abstraction of access to some fields of the task structure, particularly for the case of one task accessing another's credentials where RCU will have to be observed. Introduced here are trivial no-op versions of the desired accessors for current and other tasks so that other subsystems can start to be converted over more easily. Wrappers are introduced into a new header (linux/cred.h) for UID/GID, EUID/EGID, SUID/SGID, FSUID/FSGID, cap_effective and current's subscribed user_struct. These wrappers are macros because the ordering between header files mitigates against making them inline functions. linux/cred.h is #included from linux/sched.h. Further, XFS is modified such that it no longer defines and uses parameterised versions of current_fs[ug]id(), thus getting rid of the namespace collision otherwise incurred. Signed-off-by: David Howells Signed-off-by: James Morris commit 877acedc0d3ea07f7b36573ed2f1f479c2c1eefd Author: Daniel Lezcano Date: Wed Aug 13 16:15:57 2008 -0700 netns: Fix crash by making igmp per namespace This patch makes the multicast socket to be per namespace. When a network namespace is created, other than the init_net and a multicast packet is received, the kernel goes to a hang or a kernel panic. How to reproduce ? * create a child network namespace * create a pair virtual device veth * ip link add type veth * move one side to the pair network device to the child namespace * ip link set netns dev veth1 * ping -I veth0 224.0.0.1 The bug appears because the function ip_mc_init_dev does not initialize the different multicast fields as it exits because it is not the init_net. BUG: soft lockup - CPU#0 stuck for 61s! [avahi-daemon:2695] Modules linked in: irq event stamp: 50350 hardirqs last enabled at (50349): [] _spin_unlock_irqrestore+0x34/0x39 hardirqs last disabled at (50350): [] schedule+0x9f/0x5ff softirqs last enabled at (45712): [] ip_setsockopt+0x8e7/0x909 softirqs last disabled at (45710): [] _spin_lock_bh+0x8/0x27 Pid: 2695, comm: avahi-daemon Not tainted (2.6.27-rc2-00029-g0872073 #3) EIP: 0060:[] EFLAGS: 00000297 CPU: 0 EIP is at __read_lock_failed+0x8/0x10 EAX: c4f38810 EBX: c4f38810 ECX: 00000000 EDX: c04cc22e ESI: fb0000e0 EDI: 00000011 EBP: 0f02000a ESP: c4e3faa0 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 CR0: 8005003b CR2: 44618a40 CR3: 04e37000 CR4: 000006d0 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: ffff0ff0 DR7: 00000400 [] ? _raw_read_lock+0x23/0x25 [] ? ip_check_mc+0x1c/0x83 [] ? ip_route_input+0x229/0xe92 [] ? trace_hardirqs_on_thunk+0xc/0x10 [] ? do_IRQ+0x69/0x7d [] ? restore_nocheck_notrace+0x0/0xe [] ? ip_rcv+0x227/0x505 [] ? netif_receive_skb+0xfe/0x2b3 [] ? netif_receive_skb+0x26c/0x2b3 [] ? process_backlog+0x73/0xbd [] ? net_rx_action+0xc1/0x1ae [] ? __do_softirq+0x7b/0xef [] ? do_softirq+0x37/0x4d [] ? dev_queue_xmit+0x3d4/0x40b [] ? local_bh_enable+0x96/0xab [] ? dev_queue_xmit+0x3d4/0x40b [] ? _local_bh_enable+0x79/0x88 [] ? neigh_resolve_output+0x20f/0x239 [] ? ip_finish_output+0x1df/0x209 [] ? ip_dev_loopback_xmit+0x62/0x66 [] ? ip_local_out+0x15/0x17 [] ? ip_push_pending_frames+0x25c/0x2bb [] ? udp_push_pending_frames+0x2bb/0x30e [] ? udp_sendmsg+0x413/0x51d [] ? udp_sendmsg+0x433/0x51d [] ? inet_sendmsg+0x35/0x3f [] ? sock_sendmsg+0xb8/0xd1 [] ? autoremove_wake_function+0x0/0x2b [] ? copy_from_user+0x32/0x5e [] ? copy_from_user+0x32/0x5e [] ? sys_sendmsg+0x18d/0x1f0 [] ? pipe_write+0x3cb/0x3d7 [] ? do_sync_write+0xbe/0x105 [] ? autoremove_wake_function+0x0/0x2b [] ? sys_socketcall+0x176/0x1b0 [] ? syscall_trace_enter+0x6c/0x7b [] ? syscall_call+0x7/0xb Signed-off-by: Daniel Lezcano Signed-off-by: David S. Miller commit 1bb5bd2c713cdf19794996fafd7b48da4c4b0113 Author: Eilon Greenstein Date: Wed Aug 13 15:59:45 2008 -0700 bnx2x: Version update Version update Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 6378c0253175e400525ac0efac9dd29f4e573cbf Author: Eilon Greenstein Date: Wed Aug 13 15:59:25 2008 -0700 bnx2x: Checkpatch compliance Checkpatch compliance The latest version of checkpatch found the following style errors in the code Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 3347162995d23bc13f6f99c02ae89814babcaec2 Author: Eilon Greenstein Date: Wed Aug 13 15:59:08 2008 -0700 bnx2x: Spelling mistakes Spelling mistakes Spelling has to L's in it... Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 3196a88a8593748bad24824ef5eb8e5aa99698c9 Author: Eilon Greenstein Date: Wed Aug 13 15:58:49 2008 -0700 bnx2x: Minor code improvements Minor code improvements Small changes to make the code a little bit more efficient and mostly more readable: - Using unified macros for EMAC_RD/WR which looks like normal REG_RD/WR - Removing the NIG_WR since it did nothing and was only confusing - On bnx2x_panic_dump, print only the used parts of the rings - define parameters only on the branch they are needed and not at the beginning of the function - using NETIF_MSG_INTR and not private BNX2X_MSG_SP for debug prints Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit f0e53a847a4435f3226f5e385503f792f5f99ce2 Author: Eilon Greenstein Date: Wed Aug 13 15:58:30 2008 -0700 bnx2x: Driver info Driver info The internal FW which is downloaded by the driver should not be displayed - it is only causing confusion and it is redundant since it can be concluded from the driver version. Display only FW which is burned on the board nvram Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 345b5d52b93113d3ce82f97c2a783319fbf0fdfd Author: Eilon Greenstein Date: Wed Aug 13 15:58:12 2008 -0700 bnx2x: 1G LED does not turn off 1G LED does not turn off The 1G LED was not switched to off when the link was lost Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 6bbca910e621d82b3ca93a99af9b59eb1ff3cbcd Author: Yaniv Rosner Date: Wed Aug 13 15:57:28 2008 -0700 bnx2x: 8073 PHY changes 8073 PHY changes The initial support we had for this PHY needs some serious changing. The major change is that this PHY should be initialized only when the first function is loaded and not for each function. The official SPI-ROM of this PHY was released and it requires some changes in the initialization code as well Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 17de50b7f71d176375e9d4d67ffce42482e5515f Author: Eilon Greenstein Date: Wed Aug 13 15:56:59 2008 -0700 bnx2x: Change GPIO for any port Change GPIO for any port The set GPIO function should receive the port index to allow changing the GPIO of another port. This is needed for the common init phase (one the first driver is loaded for the chip) Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 8c99e7b0436473593a68e740d1032909bc5335a1 Author: Yaniv Rosner Date: Wed Aug 13 15:56:17 2008 -0700 bnx2x: Pause settings Pause settings - 1G pause was not working due to missing write to the emac block (TX_MODE_FLOW_EN) - The flow control should use the negotiated result (after autoneg) so we should save both the requested autoneg and the result - The HW credits with flow control at 1G speed were not optimized and caused low throughput - It is recommended to turn off flow control if the MTU is bigger than 5000B due to internal buffers size Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 57963ed94c27e94a7533434da5943195ea072a35 Author: Yaniv Rosner Date: Wed Aug 13 15:55:28 2008 -0700 bnx2x: Link order with external PHY Link order with external PHY When external PHY exists (second chip with the PHY to translate to another physical medium) the link with the eternal PHY and the network should be established before setting the link between the 5771x and the PHY. This is the right order and it is important when using autoneg - the link to the network should use the autoneg and the link between the two chips should be forced to the network result. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit df0f23439a69eb5ca30668612f1c4e20041b5341 Author: Vladislav Zolotarov Date: Wed Aug 13 15:53:38 2008 -0700 bnx2x: No LRO without Rx checksum No LRO without Rx checksum Disabling LRO when Rx checksum is disabled Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 353029896a5ed6cf42f4ce45729851b23c94d874 Author: Yitchak Gertner Date: Wed Aug 13 15:53:12 2008 -0700 bnx2x: Wrong structure size Wrong structure size The wrong structure was used in the sizeof to clear (luckily both structures have the same size in this version...) Signed-off-by: Yitchak Gertner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 72ce58c328d7131d96280135f8be858603522911 Author: Eilon Greenstein Date: Wed Aug 13 15:52:46 2008 -0700 bnx2x: WoL capability WoL capability All designs reported WoL capability regardless of HW limitations - check if this device is actually capable of WoL Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 3101c2bc9043c1499158837648a29dd79ee2f5e7 Author: Yitchak Gertner Date: Wed Aug 13 15:52:28 2008 -0700 bnx2x: Clearing MAC addresses filters Clearing MAC addresses filters When the driver unloads, it should clear the MAC addresses filters in the HW - this prevents packets from entering the chip when the driver is re-loaded before initializing the right filters Signed-off-by: Yitchak Gertner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 12469401bc5aebb1c1482db1253c986cf8221281 Author: Yitchak Gertner Date: Wed Aug 13 15:52:08 2008 -0700 bnx2x: Delay in while loops Delay in while loops The delay in the loop should be after the change. This has very little effect (can save one delay) but it is the right thing to do Signed-off-by: Yitchak Gertner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 5c862848172846a7aa88d0a564eb8998ecac2f0d Author: Eilon Greenstein Date: Wed Aug 13 15:51:48 2008 -0700 bnx2x: PBA Table Page Alignment Workaround PBA Table Page Alignment Workaround The PBA table starts on the middle of the page and that's causing very low performance with virtualization. The solution is not to update via the BAR directly but via chip access to the same memory Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 9dabc4242f7e51d98a71af7ee11a36e637897f9e Author: Yitchak Gertner Date: Wed Aug 13 15:51:28 2008 -0700 bnx2x: Self-test false positive Self-test false positive - The memory test should use a mask according to the chip type - In the register test, check the port only once and not inside the for loop (not causing a failure - just ugly) Signed-off-by: Yitchak Gertner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 326262307bad2391a6393bb1968ed9a9a16fc617 Author: Eilon Greenstein Date: Wed Aug 13 15:51:07 2008 -0700 bnx2x: Memory allocation Memory allocation - The CQE ring was allocated to the max size even for a chip that does not support it. Fixed to allocate according to the chip type to save memory - The rx_page_ring was not freed on driver unload Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 3fcaf2e566b9cf8ccd16bcda3440717236de163d Author: Eilon Greenstein Date: Wed Aug 13 15:50:45 2008 -0700 bnx2x: HW attention lock HW attention lock Making sure that only one function will handle the HW attention. This makes the device parameter aeu_mask redundant so it is removed Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 4a37fb660c5505e0ee7ae16d80a06e85affe3055 Author: Yitchak Gertner Date: Wed Aug 13 15:50:23 2008 -0700 bnx2x: HW lock mechanism HW lock mechanism Enhancing the HW lock to work per function and not only per port - this is needed for the next patch that protects races over HW attention detection between the different functions. At this chance, changing the functions names to be more inline with the current naming convention Signed-off-by: Yitchak Gertner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit da5a662a2326931bef25f0e534c9c1702f862399 Author: Vladislav Zolotarov Date: Wed Aug 13 15:50:00 2008 -0700 bnx2x: Load/Unload under traffic Load/Unload under traffic Few issues were found when loading and unloading under traffic: - When receiving Tx interrupt call netif_wake_queue if the queue is stopped but the state is open - Check that interrupts are enabled before doing anything else on the msix_fp_int function - In nic_load, enable the interrupts only when needed and ready for it - Function stop_leading returns status since it can fail - Add 1ms delay when unloading the driver to validate that there are no open transactions that already started by the FW - Splitting the "has work" function into Tx and Rx so the same function will be used on unload and interrupts - Do not request for WoL if only resetting the device (save the time that it takes the FW to set the link after reset) - Fixing the device reset after iSCSI boot and before driver load - all internal buffers must be cleared before the driver is loaded Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 471de716b782fb55ae0fdc040cf2722caffeeb94 Author: Eilon Greenstein Date: Wed Aug 13 15:49:35 2008 -0700 bnx2x: FW Internal Memory structure FW Internal Memory structure The FW uses data structures on the chip internal memory to aggregate the connections when TPA is enabled. The driver was clearing the wrong offsets and therefore one function could cause another function to loose packets. Changing the initialization of the chip internal memory to clear only the relevant memory for each function which is being loaded Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 66e855f3f5197fec1162c5235fdb5f92b956d618 Author: Yitchak Gertner Date: Wed Aug 13 15:49:05 2008 -0700 bnx2x: Statistics Statistics - Making sure that each drop is accounted for in the driver statistics - Clearing the FW statistics when driver is loaded to prevent inconsistency with HW statistics - Once error is detected (bnx2x_panic_dump), stop the statistics before other actions (currently it is stopped last and can corrupt the data) - Adding HW checksum error counter to the statistics - Removing unused variable stats_ticks - Using macros instead of magic numbers to indicate which statistics are shared per port and which are per function Signed-off-by: Yitchak Gertner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 1adcd8bee37f494e22aee856467e994ae086ae45 Author: Eilon Greenstein Date: Wed Aug 13 15:48:29 2008 -0700 bnx2x: Not dropping packets with L3/L4 checksum error Not dropping packets with L3/L4 checksum error Those packets should be passed to the OS. The problem is clear in forwarding mode. Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 19680c4850c1e5c2b4371388637c7ce86b8570b6 Author: Eilon Greenstein Date: Wed Aug 13 15:47:33 2008 -0700 bnx2x: FW (bootcode) interface fixes FW (bootcode) interface fixes - Making sure that the device will not cause kernel panic of the bootcode is corrupted or missing - Removing module debug parameter "nomcp" since no one should work without the bootcode (this is a left over from the chip bring up days) - Instead of waiting fix amount of time for bootcode response, sample it every 10ms (usually the answer is ready after less than 10ms) Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 8d0968abd03ec6b407df117adc773562386702fa Merge: 9ea319b... e491401... Author: Linus Torvalds Date: Wed Aug 13 15:24:35 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: padlock - fix VIA PadLock instruction usage with irq_ts_save/restore() crypto: hash - Add missing top-level functions crypto: hash - Fix digest size check for digest type crypto: tcrypt - Fix AEAD chunk testing crypto: talitos - Add handling for SEC 3.x treatment of link table commit d4766692e72422f3b0f0e9ac6773d92baad07d51 Author: Jarek Poplawski Date: Wed Aug 13 15:20:24 2008 -0700 pkt_sched: Protect gen estimators under est_lock. gen_kill_estimator() required rtnl_lock() protection, but since it is moved to an RCU callback __qdisc_destroy() let's use est_lock instead. Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller commit b9a3b1102bc80b4044224494100f67de132d5448 Author: David S. Miller Date: Wed Aug 13 15:18:38 2008 -0700 pkt_sched: Fix queue quiescence testing in dev_deactivate(). Based upon discussions with Jarek P. and Herbert Xu. First, we're testing the wrong qdisc. We just reset the device queue qdiscs to &noop_qdisc and checking it's state is completely pointless here. We want to wait until the previous qdisc that was sitting at the ->qdisc pointer is not busy any more. And that would be ->qdisc_sleeping. Because of how we propagate the samples qdisc pointer down into qdisc_run and friends via per-cpu ->output_queue and netif_schedule, we have to wait also for the __QDISC_STATE_SCHED bit to clear as well. Signed-off-by: David S. Miller commit 9ea319b61613085f501a79cf8d405cb221d084f3 Merge: 3e11acd... c6a7b0f... Author: Linus Torvalds Date: Wed Aug 13 15:17:49 2008 -0700 Merge git://oss.sgi.com:8090/xfs/linux-2.6 * git://oss.sgi.com:8090/xfs/linux-2.6: (45 commits) [XFS] Fix use after free in xfs_log_done(). [XFS] Make xfs_bmap_*_count_leaves void. [XFS] Use KM_NOFS for debug trace buffers [XFS] use KM_MAYFAIL in xfs_mountfs [XFS] refactor xfs_mount_free [XFS] don't call xfs_freesb from xfs_unmountfs [XFS] xfs_unmountfs should return void [XFS] cleanup xfs_mountfs [XFS] move root inode IRELE into xfs_unmountfs [XFS] stop using file_update_time [XFS] optimize xfs_ichgtime [XFS] update timestamp in xfs_ialloc manually [XFS] remove the sema_t from XFS. [XFS] replace dquot flush semaphore with a completion [XFS] replace inode flush semaphore with a completion [XFS] extend completions to provide XFS object flush requirements [XFS] replace the XFS buf iodone semaphore with a completion [XFS] clean up stale references to semaphores [XFS] use get_unaligned_* helpers [XFS] Fix compile failure in xfs_buf_trace() ... commit 26b284de54a5ca3dfbe2fd9a51ac1923e80085a2 Author: Jarek Poplawski Date: Wed Aug 13 15:16:43 2008 -0700 pkt_sched: Fix oops in htb_delete. Recent changes introduced a bug in htb_delete(): cl->parent->children counter update misses checking cl->parent for NULL, which is used for root classes, so deleting them causes an oops. Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller commit 3e11acd4306d558249c31cf6cac09f218f2de52e Merge: 758db3f... 5140934... Author: Linus Torvalds Date: Wed Aug 13 15:16:10 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm: dlm: rename structs dlm: add missing kfrees commit 64c00d81b5c2491bd140b3c8eb2e8c351513f971 Author: Andrew Gallatin Date: Wed Aug 13 15:16:00 2008 -0700 pktgen: prevent pktgen from using bad tx queue With the new multi-queue transmit code, it is possible to accidentally make pktgen pick a non-existing tx queue simply by using a stale script to drive pktgen. Access to this non-existing tx queue will then trigger a bad memory access and kill the machine. For example, setting "queue_map_max 2" will cause my machine to die when accessing a garbage spinlock in the non-existing tx queue: BUG: spinlock bad magic on CPU#0, kpktgend_0/564 lock: ffff88001ddf6718, .magic: ffffffff, .owner: /-1, .owner_cpu: 0 Pid: 564, comm: kpktgend_0 Not tainted 2.6.27-rc3 #35 Call Trace: [] spin_bug+0xa4/0xac [] _raw_spin_lock+0x23/0x123 [] _spin_lock_bh+0x17/0x1b [] pktgen_thread_worker+0xa97/0x1002 [] ? finish_task_switch+0x38/0x97 [] ? autoremove_wake_function+0x0/0x36 [] ? autoremove_wake_function+0x0/0x36 [] ? pktgen_thread_worker+0x0/0x1002 [] kthread+0x44/0x6d [] child_rip+0xa/0x11 [] ? kthread+0x0/0x6d [] ? child_rip+0x0/0x11 The attached patch adds some sanity checking to prevent these sorts of configuration errors. Signed-off-by: Andrew Gallatin Signed-off-by: David S. Miller commit 758db3f2118703a1e36374dae5d58bed963e7e0d Author: Linus Torvalds Date: Wed Aug 13 14:26:22 2008 -0700 [h8300] move include/asm-h8300 to arch/h8300/include/asm Done as a script (well, a single "git mv" actually) on request from Yoshinori Sato as a way to avoid a huge diff. Requested-by: Yoshinori Sato Cc: Sam Ravnborg Cc: Andrew Morton Signed-off-by: Linus Torvalds commit 3e8a0a559c66ee9e7468195691a56fefc3589740 Author: Arnaldo Carvalho de Melo Date: Wed Aug 13 13:48:39 2008 -0700 dccp: change L/R must have at least one byte in the dccpsf_val field Thanks to Eugene Teo for reporting this problem. Signed-off-by: Eugene Teo Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit c1e24df27fb1058739789126db6ad1b1ef719346 Author: Jean-Christophe DUBOIS Date: Wed Aug 13 13:35:37 2008 -0700 xfrm: remove unnecessary variable in xfrm_output_resume() 2nd try Small fix removing an unnecessary intermediate variable. Signed-off-by: Jean-Christophe DUBOIS Signed-off-by: David S. Miller commit 51409340d240dabe66adb49f645588c3a802d055 Author: David Teigland Date: Thu Jul 31 09:31:53 2008 -0500 dlm: rename structs Add a dlm_ prefix to the struct names in config.c. This resolves a conflict with struct node in particular, when include/linux/node.h happens to be included. Reported-by: Andrew Morton Signed-off-by: David Teigland commit cb980d9a3ec3d39e30e0a4c473df528c09e0dcf3 Author: David Teigland Date: Tue Jul 29 15:21:19 2008 -0500 dlm: add missing kfrees A couple of unlikely error conditions were missing a kfree on the error exit path. Reported-by: Juha Leppanen Signed-off-by: David Teigland commit 720b499c806200d06f4f22c668d46db784117089 Author: Artem Bityutskiy Date: Wed Aug 13 16:16:31 2008 +0300 UBIFS: remove unneeded check Commit d70b67c8bc72ee23b55381bd6a884f4796692f77 fixed VFS and it never calls FS lookup function in deleted directories now. We may remove corresponding UBIFS check. Signed-off-by: Artem Bityutskiy commit 0a883a05c54b326bcf99c0902af28dae0386be0a Author: Artem Bityutskiy Date: Wed Aug 13 14:13:26 2008 +0300 UBIFS: few commentary fixes Signed-off-by: Artem Bityutskiy commit e49140120c88eb99db1a9172d9ac224c0f2bbdd2 Author: Suresh Siddha Date: Wed Aug 13 22:02:26 2008 +1000 crypto: padlock - fix VIA PadLock instruction usage with irq_ts_save/restore() Wolfgang Walter reported this oops on his via C3 using padlock for AES-encryption: ################################################################## BUG: unable to handle kernel NULL pointer dereference at 000001f0 IP: [] __switch_to+0x30/0x117 *pde = 00000000 Oops: 0002 [#1] PREEMPT Modules linked in: Pid: 2071, comm: sleep Not tainted (2.6.26 #11) EIP: 0060:[] EFLAGS: 00010002 CPU: 0 EIP is at __switch_to+0x30/0x117 EAX: 00000000 EBX: c0493300 ECX: dc48dd00 EDX: c0493300 ESI: dc48dd00 EDI: c0493530 EBP: c04cff8c ESP: c04cff7c DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068 Process sleep (pid: 2071, ti=c04ce000 task=dc48dd00 task.ti=d2fe6000) Stack: dc48df30 c0493300 00000000 00000000 d2fe7f44 c03b5b43 c04cffc8 00000046 c0131856 0000005a dc472d3c c0493300 c0493470 d983ae00 00002696 00000000 c0239f54 00000000 c04c4000 c04cffd8 c01025fe c04f3740 00049800 c04cffe0 Call Trace: [] ? schedule+0x285/0x2ff [] ? pm_qos_requirement+0x3c/0x53 [] ? acpi_processor_idle+0x0/0x434 [] ? cpu_idle+0x73/0x7f [] ? rest_init+0x61/0x63 ======================= Wolfgang also found out that adding kernel_fpu_begin() and kernel_fpu_end() around the padlock instructions fix the oops. Suresh wrote: These padlock instructions though don't use/touch SSE registers, but it behaves similar to other SSE instructions. For example, it might cause DNA faults when cr0.ts is set. While this is a spurious DNA trap, it might cause oops with the recent fpu code changes. This is the code sequence that is probably causing this problem: a) new app is getting exec'd and it is somewhere in between start_thread() and flush_old_exec() in the load_xyz_binary() b) At pont "a", task's fpu state (like TS_USEDFPU, used_math() etc) is cleared. c) Now we get an interrupt/softirq which starts using these encrypt/decrypt routines in the network stack. This generates a math fault (as cr0.ts is '1') which sets TS_USEDFPU and restores the math that is in the task's xstate. d) Return to exec code path, which does start_thread() which does free_thread_xstate() and sets xstate pointer to NULL while the TS_USEDFPU is still set. e) At the next context switch from the new exec'd task to another task, we have a scenarios where TS_USEDFPU is set but xstate pointer is null. This can cause an oops during unlazy_fpu() in __switch_to() Now: 1) This should happen with or with out pre-emption. Viro also encountered similar problem with out CONFIG_PREEMPT. 2) kernel_fpu_begin() and kernel_fpu_end() will fix this problem, because kernel_fpu_begin() will manually do a clts() and won't run in to the situation of setting TS_USEDFPU in step "c" above. 3) This was working before the fpu changes, because its a spurious math fault which doesn't corrupt any fpu/sse registers and the task's math state was always in an allocated state. With out the recent lazy fpu allocation changes, while we don't see oops, there is a possible race still present in older kernels(for example, while kernel is using kernel_fpu_begin() in some optimized clear/copy page and an interrupt/softirq happens which uses these padlock instructions generating DNA fault). This is the failing scenario that existed even before the lazy fpu allocation changes: 0. CPU's TS flag is set 1. kernel using FPU in some optimized copy routine and while doing kernel_fpu_begin() takes an interrupt just before doing clts() 2. Takes an interrupt and ipsec uses padlock instruction. And we take a DNA fault as TS flag is still set. 3. We handle the DNA fault and set TS_USEDFPU and clear cr0.ts 4. We complete the padlock routine 5. Go back to step-1, which resumes clts() in kernel_fpu_begin(), finishes the optimized copy routine and does kernel_fpu_end(). At this point, we have cr0.ts again set to '1' but the task's TS_USEFPU is stilll set and not cleared. 6. Now kernel resumes its user operation. And at the next context switch, kernel sees it has do a FP save as TS_USEDFPU is still set and then will do a unlazy_fpu() in __switch_to(). unlazy_fpu() will take a DNA fault, as cr0.ts is '1' and now, because we are in __switch_to(), math_state_restore() will get confused and will restore the next task's FP state and will save it in prev tasks's FP state. Remember, in __switch_to() we are already on the stack of the next task but take a DNA fault for the prev task. This causes the fpu leakage. Fix the padlock instruction usage by calling them inside the context of new routines irq_ts_save/restore(), which clear/restore cr0.ts manually in the interrupt context. This will not generate spurious DNA in the context of the interrupt which will fix the oops encountered and the possible FPU leakage issue. Reported-and-bisected-by: Wolfgang Walter Signed-off-by: Suresh Siddha Signed-off-by: Herbert Xu commit 318e5313923197e71a94f7b18835151649384b7f Author: Herbert Xu Date: Tue Aug 5 13:34:30 2008 +0800 crypto: hash - Add missing top-level functions The top-level functions init/update/final were missing for ahash. Signed-off-by: Herbert Xu commit dbaaba1d0abf6871c7db6e3d15a46206bc386db1 Author: Herbert Xu Date: Sun Aug 3 21:19:43 2008 +0800 crypto: hash - Fix digest size check for digest type The changeset ca786dc738f4f583b57b1bba7a335b5e8233f4b0 crypto: hash - Fixed digest size check missed one spot for the digest type. This patch corrects that error. Signed-off-by: Herbert Xu commit f176e632efad33aeb2d3c5ddfa86861c0d60553c Author: Herbert Xu Date: Wed Jul 30 16:23:51 2008 +0800 crypto: tcrypt - Fix AEAD chunk testing My changeset 4b22f0ddb6564210c9ded7ba25b2a1007733e784 crypto: tcrpyt - Remove unnecessary kmap/kunmap calls introduced a typo that broke AEAD chunk testing. In particular, axbuf should really be xbuf. There is also an issue with testing the last segment when encrypting. The additional part produced by AEAD wasn't tested. Similarly, on decryption the additional part of the AEAD input is mistaken for corruption. Signed-off-by: Herbert Xu commit f3c85bc1bc72b4cc8d58664a490a9d42bdb6565a Author: Lee Nipper Date: Wed Jul 30 16:26:57 2008 +0800 crypto: talitos - Add handling for SEC 3.x treatment of link table Later SEC revision requires the link table (used for scatter/gather) to have an extra entry to account for the total length in descriptor [4], which contains cipher Input and ICV. This only applies to decrypt, not encrypt. Without this change, on 837x, a gather return/length error results when a decryption uses a link table to gather the fragments. This is observed by doing a ping with size of 1447 or larger with AES, or a ping with size 1455 or larger with 3des. So, add check for SEC compatible "fsl,3.0" for using extra link table entry. Signed-off-by: Lee Nipper Signed-off-by: Kim Phillips Signed-off-by: Herbert Xu commit 36723873b664fb6b5cfe06d291df948126e43f50 Author: Jamal Hadi Salim Date: Wed Aug 13 02:41:45 2008 -0700 net-sched: fix Action flushing return code Flushing must consistently return ENOMEM on failure of any allocation Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller commit f97017cdefefdb6a0e19266024b0c6f9fd411eeb Author: Jamal Hadi Salim Date: Wed Aug 13 02:41:22 2008 -0700 net-sched: Fix actions flushing Flushing of actions has been broken since we changed the semantics of netlink parsed tb[X] to mean X is an attribute type. This makes the flushing work. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller commit 34093d055e09d1bb549efc11c8d448373437bbe4 Author: Julien Brunel Date: Wed Aug 13 02:40:48 2008 -0700 net/rxrpc: Use an IS_ERR test rather than a NULL test In case of error, the function rxrpc_get_transport returns an ERR pointer, but never returns a NULL pointer. So after a call to this function, a NULL test should be replaced by an IS_ERR test. A simplified version of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @correct_null_test@ expression x,E; statement S1, S2; @@ x = rxrpc_get_transport(...) <... when != x = E if ( ( - x@p2 != NULL + ! IS_ERR ( x ) | - x@p2 == NULL + IS_ERR( x ) ) ) S1 else S2 ...> ? x = E; // Signed-off-by: Julien Brunel Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 317900cb010f4aca0e3cb14a02d0ddcc44ddafa7 Author: Jamal Hadi Salim Date: Wed Aug 13 02:39:56 2008 -0700 wext: Send name on events In the minimal the wireless extensions oughta send at least the name in addition to the ifindex. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller commit 6bf90b2bf4084a64bbcf96a0b93dc64c77288028 Author: Rami Rosen Date: Wed Aug 13 02:35:39 2008 -0700 ipv6: Kill unused ip6_prohibit_entry and ip6_blk_hole_entry declarations. This patch removes ip6_prohibit_entry and ip6_blk_hole_entry declarations from include/net/ip6_route.h as they are unused. Signed-off-by: Rami Rosen Signed-off-by: David S. Miller commit 83ac794f15d2311d8e9e641c73618011f2f7f0a1 Author: Rami Rosen Date: Wed Aug 13 02:34:39 2008 -0700 ipv6: ip6_route.h cleanup. This patch removes rt6_lock declaration from include/net/ip6_route.h as it is unused. Signed-off-by: Rami Rosen Signed-off-by: David S. Miller commit 6ced0b3f1e1c089caf8798485423a093744b6a48 Author: Andrew Morton Date: Wed Aug 13 02:32:06 2008 -0700 net/tipc/subscr.c: don't use ___constant_swab32 It's an internal implementation detail which we _should_ be free to change. So we did, and it promptly broke. The compiler shold be able to work out when to use the __constant version anyway. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller commit 83f36f3f35f4f83fa346bfff58a5deabc78370e5 Author: David S. Miller Date: Wed Aug 13 02:13:34 2008 -0700 pkt_sched: Add queue stopped test back to qdisc_run(). Based upon a bug report by Andrew Gallatin on netdev with subject "CPU utilization increased in 2.6.27rc" In commit 37437bb2e1ae8af470dfcd5b4ff454110894ccaf ("pkt_sched: Schedule qdiscs instead of netdev_queue.") the test of the queue being stopped was erroneously removed from qdisc_run(). When the TX queue of the device fills up, this omission causes lots of extraneous useless work to be queued up to softirq context, where we'll just return immediately because the device is still stuffed up. Signed-off-by: David S. Miller commit 5e0115e500fe9dd2ca11e6f92db9123204f1327a Author: Brian Haley Date: Wed Aug 13 01:58:57 2008 -0700 ipv6: Fix OOPS, ip -f inet6 route get fec0::1, linux-2.6.26, ip6_route_output, rt6_fill_node+0x175 Alexey Dobriyan wrote: > On Thu, Aug 07, 2008 at 07:00:56PM +0200, John Gumb wrote: >> Scenario: no ipv6 default route set. > >> # ip -f inet6 route get fec0::1 >> >> BUG: unable to handle kernel NULL pointer dereference at 00000000 >> IP: [] rt6_fill_node+0x175/0x3b0 >> EIP is at rt6_fill_node+0x175/0x3b0 > > 0xffffffff80424dd3 is in rt6_fill_node (net/ipv6/route.c:2191). > 2186 } else > 2187 #endif > 2188 NLA_PUT_U32(skb, RTA_IIF, iif); > 2189 } else if (dst) { > 2190 struct in6_addr saddr_buf; > 2191 ====> if (ipv6_dev_get_saddr(ip6_dst_idev(&rt->u.dst)->dev, > ^^^^^^^^^^^^^^^^^^^^^^^^ > NULL > > 2192 dst, 0, &saddr_buf) == 0) > 2193 NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf); > 2194 } The commit that changed this can't be reverted easily, but the patch below works for me. Fix NULL de-reference in rt6_fill_node() when there's no IPv6 input device present in the dst entry. Signed-off-by: Brian Haley Signed-off-by: David S. Miller commit 5acd6ff8ac09eb71f3aef2ccccefab658be8aff4 Author: Zoltan Sogor Date: Tue Aug 12 13:54:54 2008 +0300 UBIFS: fix budgeting request alignment in xattr code Data length has to be aligned in the budgeting request. Code in xattr.c did not do this. Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 840dc6b891d521f18bf081bd5a32e4a1f8110abc Author: Artem Bityutskiy Date: Fri Aug 1 18:13:37 2008 +0300 UBIFS: improve arguments checking in debugging messages Use "if (0) printk()" construct in debugging print macros to make the debugging messages be checked even if debugging is off. This patch also removes some unneeded spaces and blank lines. Signed-off-by: Artem Bityutskiy commit 81ffa38e1558f54db190e2d11e7260ab09c4acf2 Author: Adrian Hunter Date: Fri Aug 1 15:35:08 2008 +0300 UBIFS: always set i_generation to 0 UBIFS does not presently re-use inode numbers, so leaving i_generation zero is most appropriate for now. Signed-off-by: Adrian Hunter Signed-off-by: Artem Bityutskiy commit 3a13252c6f3a029ac992a36910e945f361482797 Author: Adrian Hunter Date: Wed Jul 30 12:18:02 2008 +0300 UBIFS: correct spelling of "thrice". Signed-off-by: Adrian Hunter commit 22bc7fa8c5da09805edc6a6199ce81373b2c207d Author: Zoltan Sogor Date: Mon Jul 28 16:28:49 2008 +0200 UBIFS: support splice_write Signed-off-by: Zoltan Sogor Signed-off-by: Artem Bityutskiy commit 0010f18afc5f8ba25e1d20e3165894c32a65af02 Author: Artem Bityutskiy Date: Fri Jul 25 16:39:44 2008 +0300 UBIFS: minor tweaks in commit No functional changes, just lessen the amount of indentations. Signed-off-by: Artem Bityutskiy commit b364b41aeb0289be402be83eebca92eb90bfcb8b Author: Artem Bityutskiy Date: Fri Jul 25 14:38:51 2008 +0300 UBIFS: reserve more space for index At the moment UBIFS reserves twice old index size space for the index. But this is not enough in some cases, because if the indexing node are very fragmented and there are many small gaps, while the dirty index has big znodes - in-the-gaps method would fail. Thus, reserve trise as more, in which case we are guaranteed that we can commit in any case. Signed-off-by: Artem Bityutskiy commit 1de9415906bccab51fb74c6adf575948610f0909 Author: Artem Bityutskiy Date: Fri Jul 25 12:58:38 2008 +0300 UBIFS: print pid in dump function Useful when something fails and there are many processes racing. Signed-off-by: Artem Bityutskiy commit dab4b4d2f915a65022343012a795f4ae4ae7e83c Author: Artem Bityutskiy Date: Thu Jul 24 14:52:45 2008 +0300 UBIFS: align inode data to eight UBIFS aligns node lengths to 8, so budgeting has to do the same. Well, direntry, inode, and page budgets are already aligned, but not inode data budget (e.g., data in special devices or symlinks). Do this for inode data as well. Also, add corresponding debugging checks. Signed-off-by: Artem Bityutskiy commit 547000da6412c45456ff2ff44a171d01027bd727 Author: Artem Bityutskiy Date: Thu Jul 24 14:42:05 2008 +0300 UBIFS: improve budgeting checks Budgeting is a crucial UBIFS subsystem - add more assertions to improve requests checking. This is not compiled in when UBIFS debugging is disabled. Signed-off-by: Artem Bityutskiy commit f769108424a19c7758546d1d7d19f098b1a33759 Author: Adrian Hunter Date: Wed Jul 23 16:55:55 2008 +0300 UBIFS: correct orphan deletion order The debug function that checks orphans, does so using the TNC mutex. That means it will not see a correct picture if the inode is removed from the orphan tree before it is removed from TNC. Signed-off-by: Adrian Hunter commit 7d62ff2c396470bb62a3853f14d3962eac1da974 Author: Adrian Hunter Date: Wed Jul 23 15:48:39 2008 +0300 UBIFS: fix typos in comments Signed-off-by: Adrian Hunter commit bc813355c704e5916a86dd4b96fd226bfa3fc6ca Author: Adrian Hunter Date: Wed Jul 23 15:23:11 2008 +0300 UBIFS: do not union creat_sqnum and del_cmtno The values in these two fields need to be preserved independently and so a union cannot be used. Signed-off-by: Adrian Hunter commit de94eb558b542873d3f6f9ede1b8575fb5662248 Author: Artem Bityutskiy Date: Tue Jul 22 13:06:20 2008 +0300 UBIFS: optimize deletions Every time anything is deleted, UBIFS writes the deletion inode node twice - once in 'ubifs_jnl_update()' and the second time in 'ubifs_jnl_write_inode()'. However, the second write is not needed if no commit happened after 'ubifs_jnl_update()'. This patch checks that condition and avoids writing the deletion inode for the second time. Signed-off-by: Artem Bityutskiy commit 014eb04b03202dc75c1c749df4246d98045f5e69 Author: Artem Bityutskiy Date: Mon Jul 21 17:14:29 2008 +0300 UBIFS: increment commit number earlier Increment the commit number at the beginnig of the commit, instead of doing this after the commit. This is needed for further optimizations. Signed-off-by: Artem Bityutskiy commit fd6c6b51e3677937090314b20b00f2194900d81b Author: Artem Bityutskiy Date: Tue Jul 22 12:19:09 2008 +0300 UBIFS: remove another unneeded function parameter The 'last_reference' parameter of 'pack_inode()' is not really needed because 'inode->i_nlink' may be tested instead. Zap it. Signed-off-by: Artem Bityutskiy commit 1f28681ad34a0c7e51dc5070c84b53f7bd34f44c Author: Artem Bityutskiy Date: Tue Jul 22 12:06:13 2008 +0300 UBIFS: remove unneeded function parameter Simplify 'ubifs_jnl_write_inode()' by removing the 'deletion' parameter which is not really needed because we may test inode->i_nlink and check whether this is a deletion or not. Signed-off-by: Artem Bityutskiy commit fbfa6c884aae2aff479eb8c996c564b1a34eae30 Author: Artem Bityutskiy Date: Tue Jul 22 11:52:52 2008 +0300 UBIFS: do not write orphans back Orphan inodes are deleted inodes which will disappear after FS re-mount. There is not need to write orphan inodes back, because they are not needed on the flash media. So optimize orphans a little by not writing them back. Just mark them as clean, free the budget, and report success to VFS. Signed-off-by: Artem Bityutskiy commit ff46d7b3e0870a70331b069372c36fbc43018c2d Author: Adrian Hunter Date: Mon Jul 21 15:39:05 2008 +0300 UBIFS: make ubifs_ro_mode() not inline We use ubifs_ro_mode() quite a lot, and not in fast-path, so there is no reason to blow the code up by having it inlined. Also, we usually want R/O mode change to be seen to other CPUs as soon as possible, so when we make this a function call, we will automatically have a memory barrier. Signed-off-by: Adrian Hunter Signed-off-by: Artem Bityutskiy commit 2fb42b11f61cbcef7dfc225c1d26c4511436583d Author: Adrian Hunter Date: Fri Jul 18 17:56:37 2008 +0300 UBIFS: ensure UBIFS switches to read-only on error UBI transparently handles write errors by automatically copying and remapping the affected eraseblock. If UBI is unable to do that, for example its pool of eraseblocks reserved for bad block handling is empty, then the error is propagated to UBIFS. UBIFS must protect the media from falling into an inconsistent state by immediately switching to read-only mode. In the case of log updates, this was not being done. Signed-off-by: Adrian Hunter commit 16dfd804b44ef7156d1c201f100bd0d9dc6b7c4b Author: Adrian Hunter Date: Fri Jul 18 16:47:41 2008 +0300 UBIFS: fix error return in failure mode UBIFS recovery testing debug facility simulates media failures. When simulating an IO error, the error code returned must be -EIO but it was not always if the user switched off the debug recovery testing option at the same time. Signed-off-by: Adrian Hunter commit 1e0f358e29cc91c8eb09e10cbf1f6bb58a62c795 Author: Artem Bityutskiy Date: Mon Jul 21 10:59:53 2008 +0300 UBIFS: free budget in delete_inode as well Although the inode is marked as clean when it is being deleted, it might stay and be used as orphan, and be marked as dirty. So we have to free the budget when we delete it. Signed-off-by: Artem Bityutskiy commit 7d32c2bb143fa1ca3b0c420feb08a832d65395be Author: Artem Bityutskiy Date: Fri Jul 18 18:54:29 2008 +0300 UBIFS: improve debugging 1. Print inode mode in some of debugging messages 2. Add few more useful assertions Signed-off-by: Artem Bityutskiy commit 182854b46f9feb6f1b03abe747bb2beeebf2adb0 Author: Artem Bityutskiy Date: Fri Jul 18 18:54:29 2008 +0300 UBIFS: fix budgeting calculations The 'ubifs_release_dirty_inode_budget()' was buggy and incorrectly freed the budget, which led to not freeing all dirty data budget. This patch fixes that. Also, this patch fixes ubifs_mkdir() which passed 1 in dirty_ino_d, which makes no sense. Well, it is harmless though. Also, add few more useful assertions. And improve few debugging messages. Signed-off-by: Artem Bityutskiy commit ce769caa50a3fc835b4fc1a6e1463ada127a2e8a Author: Artem Bityutskiy Date: Fri Jul 18 12:54:21 2008 +0300 UBIFS: print volume name as well We encouredge people to mount using volume name, not device numbers. So print the name of the mounted UBI volume, not just IDs. Signed-off-by: Artem Bityutskiy commit 2e244d08369b510923fe8290d40d51b0e88bfebe Author: Sebastian Siewior Date: Thu Jul 17 14:16:09 2008 +0200 Documentation: fix typo in ubifs.txt Signed-off-by: Sebastian Siewior Signed-off-by: Artem Bityutskiy commit c6a7b0f8a49aa71792dd108efc535435f462bf79 Author: Lachlan McIlroy Date: Wed Aug 13 16:52:50 2008 +1000 [XFS] Fix use after free in xfs_log_done(). The ticket allocation code got reworked in 2.6.26 and we now free tickets whereas before we used to cache them so the use-after-free went undetected. SGI-PV: 985525 SGI-Modid: xfs-linux-melb:xfs-kern:31877a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit c94312de223644e2f18e7064ae8cafa14e5c6ef6 Author: Ruben Porras Date: Wed Aug 13 16:52:25 2008 +1000 [XFS] Make xfs_bmap_*_count_leaves void. xfs_bmap_count_leaves and xfs_bmap_disk_count_leaves always return always 0, make them void. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31844a Signed-off-by: Ruben Porras Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit 5695ef46ef02ba1c6658daa46e6879a2d4f52f5f Author: Lachlan McIlroy Date: Wed Aug 13 16:51:57 2008 +1000 [XFS] Use KM_NOFS for debug trace buffers Use KM_NOFS to prevent recursion back into the filesystem which can cause deadlocks. In the case of xfs_iread() we hold the lock on the inode cluster buffer while allocating memory for the trace buffers. If we recurse back into XFS to flush data that may require a transaction to allocate extents which needs log space. This can deadlock with the xfsaild thread which can't push the tail of the log because it is trying to get the inode cluster buffer lock. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31838a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit d62c251fe4a06144255291cffd68cbadf3bf002f Author: Christoph Hellwig Date: Wed Aug 13 16:51:29 2008 +1000 [XFS] use KM_MAYFAIL in xfs_mountfs Use KM_MAYFAIL for the m_perag allocation, we can deal with the error easily and blocking forever during mount is not a good idea either. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31837a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ff4f038c6bbb27044a84adbcd27bc237d7237e66 Author: Christoph Hellwig Date: Wed Aug 13 16:50:47 2008 +1000 [XFS] refactor xfs_mount_free xfs_mount_free mostly frees the perag data, which is something that is duplicated in the mount error path. Move the XFS_QM_DONE call to the caller and remove the useless mutex_destroy/spinlock_destroy calls so that we can re-use it for the mount error path. Also rename it to xfs_free_perag to reflect what it does. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31836a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 6203300e5e9121440b27d3ed0b9fe2a64cb62b53 Author: Christoph Hellwig Date: Wed Aug 13 16:50:21 2008 +1000 [XFS] don't call xfs_freesb from xfs_unmountfs xfs_readsb is called before xfs_mount so xfs_freesb should be called after xfs_unmountfs, too. This means it now happens after a few things during the of xfs_unmount which all have nothing to do with the superblock. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31835a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 41b5c2e77a0221cf07ac127afa122add67ac5418 Author: Christoph Hellwig Date: Wed Aug 13 16:49:57 2008 +1000 [XFS] xfs_unmountfs should return void xfs_unmounts can't and shouldn't return errors so declare it as returning void. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31833a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 4249023a5d14f28d4e68ba15d24d25c0e5be71a6 Author: Christoph Hellwig Date: Wed Aug 13 16:49:32 2008 +1000 [XFS] cleanup xfs_mountfs Remove all the useless flags and code keyed off it in xfs_mountfs. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31831a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 77508ec8e6ed72c9ba8ca74248a7aabd664e3f57 Author: Christoph Hellwig Date: Wed Aug 13 16:49:04 2008 +1000 [XFS] move root inode IRELE into xfs_unmountfs The root inode is allocated in xfs_mountfs so it should be release in xfs_unmountfs. For the unmount case that means we do it after the the xfs_sync(mp, SYNC_WAIT | SYNC_CLOSE) in the forced shutdown case and the dmapi unmount event. Note that both reference the rip variable which might be freed by that time in case inode flushing has kicked in, so strictly speaking this might count as a bug fix SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31830a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 3a76c1ea07ee4e9da7c8e476e43be7e1b2bf24fb Author: Christoph Hellwig Date: Wed Aug 13 16:48:12 2008 +1000 [XFS] stop using file_update_time xfs_ichtime updates the xfs_inode and Linux inode timestamps just fine, no need to call file_update_time and then copy the values over to the XFS inode. The only additional thing in file_update_time are checks not applicable to the write path. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31829a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit 8e5975c82f66bce36955f38e9abc259d5143a72a Author: Christoph Hellwig Date: Wed Aug 13 16:45:13 2008 +1000 [XFS] optimize xfs_ichgtime Port a little optmization from file_update_time to xfs_ichgtime, and only update the timestamp and mark the inode dirty if the timestamp actually changes in the timer tick resultion supported by the running kernel. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31827a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit dff35fd41f252476cba7f761d7204dd9f47d739e Author: Christoph Hellwig Date: Wed Aug 13 16:44:15 2008 +1000 [XFS] update timestamp in xfs_ialloc manually In xfs_ialloc we just want to set all timestamps to the current time. We don't need to mark the inode dirty like xfs_ichgtime does, and we don't need nor want the opimizations in xfs_ichgtime that I will introduce in the next patch. So just opencode the timestamp update in xfs_ialloc, and remove the new unused XFS_ICHGTIME_ACC case in xfs_ichgtime. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31825a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ab4a9b04a33c97dd17495f943447f5a15ecf2b51 Author: David Chinner Date: Wed Aug 13 16:42:10 2008 +1000 [XFS] remove the sema_t from XFS. Now that all users of the sema_t are gone from XFS we can finally kill it. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31823a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit e1f49cf20cea18e3d1963939fe8612a75e319fbd Author: David Chinner Date: Wed Aug 13 16:41:43 2008 +1000 [XFS] replace dquot flush semaphore with a completion Use the new completion flush code to implement the dquot flush lock. Removes one of the final users of semaphores in the XFS code base. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31822a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit c63942d3eeffb98219e05d0976862ab9907d297d Author: David Chinner Date: Wed Aug 13 16:41:16 2008 +1000 [XFS] replace inode flush semaphore with a completion Use the new completion flush code to implement the inode flush lock. Removes one of the final users of semaphores in the XFS code base. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31817a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 39d2f1ab2a36ac527a6c41cfe689f50c239eaca3 Author: David Chinner Date: Wed Aug 13 16:40:43 2008 +1000 [XFS] extend completions to provide XFS object flush requirements XFS object flushing doesn't quite match existing completion semantics. It mixed exclusive access with completion. That is, we need to mark an object as being flushed before flushing it to disk, and then block any other attempt to flush it until the completion occurs. We do this but adding an extra count to the completion before we start using them. However, we still need to determine if there is a completion in progress, and allow no-blocking attempts fo completions to decrement the count. To do this we introduce: int try_wait_for_completion(struct completion *x) returns a failure status if done == 0, otherwise decrements done to zero and returns a "started" status. This is provided to allow counted completions to begin safely while holding object locks in inverted order. int completion_done(struct completion *x) returns 1 if there is no waiter, 0 if there is a waiter (i.e. a completion in progress). This replaces the use of semaphores for providing this exclusion and completion mechanism. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31816a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit b4dd330b9e0c9c78ebff754e72563b148f05e9e0 Author: David Chinner Date: Wed Aug 13 16:36:11 2008 +1000 [XFS] replace the XFS buf iodone semaphore with a completion The xfs_buf_t b_iodonesema is really just a semaphore that wants to be a completion. Change it to a completion and remove the last user of the sema_t from XFS. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31815a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 12017faf387437c01ff63bbe46b629550b15bd70 Author: David Chinner Date: Wed Aug 13 16:34:31 2008 +1000 [XFS] clean up stale references to semaphores A lot of code has been converted away from semaphores, but there are still comments that reference semaphore behaviour. The log code is the worst offender. Update the comments to reflect what the code really does now. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31814a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 597bca6378e0273a5d16346c941cab1ec2e0116d Author: Harvey Harrison Date: Wed Aug 13 16:29:21 2008 +1000 [XFS] use get_unaligned_* helpers SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31813a Signed-off-by: Harvey Harrison Signed-off-by: Lachlan McIlroy commit d63f154a36c4ec7c2826874371887cecae375ebb Author: Lachlan McIlroy Date: Wed Aug 13 16:28:40 2008 +1000 [XFS] Fix compile failure in xfs_buf_trace() SGI-PV: 957103 SGI-Modid: xfs-linux-melb:xfs-kern:31804a Signed-off-by: Lachlan McIlroy commit 169d6227a71da125913c69c381643a8ae89da62d Author: Christoph Hellwig Date: Wed Aug 13 16:25:27 2008 +1000 [XFS] Use the same btree_cur union member for alloc and inobt trees. The alloc and inobt btree use the same agbp/agno pair in the btree_cur union. Make them use the same bc_private.a union member so that code for these two short form btree implementations can be shared. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31788a Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit cdcf43335cbb2380e533441e007e0c4ec42634d5 Author: Christoph Hellwig Date: Wed Aug 13 16:23:50 2008 +1000 [XFS] small cleanups in xfs_btree.c Remove unneeded xfs_btree_get_block forward declaration. Move xfs_btree_firstrec next to xfs_btree_lastrec. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31787a Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 41be8bed1f3168f34386f3a15d63682cfd586b8e Author: Christoph Hellwig Date: Wed Aug 13 16:23:13 2008 +1000 [XFS] sanitize xfs_initialize_vnode Sanitize setting up the Linux indode. Setting up the xfs_inode <-> inode link is opencoded in xfs_iget_core now because that's the only place it needs to be done, xfs_initialize_vnode is renamed to xfs_setup_inode and loses all superflous paramaters. The check for I_NEW is removed because it always is true and the di_mode check moves into xfs_iget_core because it's only needed there. xfs_set_inodeops and xfs_revalidate_inode are merged into xfs_setup_inode and the whole things is moved into xfs_iops.c where it belongs. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31782a Signed-off-by: Christoph Hellwig Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 5ec7f8c7d14a3ea6bf920b3350f5c5d3527cb837 Author: Christoph Hellwig Date: Wed Aug 13 16:22:40 2008 +1000 [XFS] kill bhv_vnode_t All remaining bhv_vnode_t instance are in code that's more or less Linux specific. (Well, for xfs_acl.c that could be argued, but that code is on the removal list, too). So just do an s/bhv_vnode_t/struct inode/ over the whole tree. We can clean up variable naming and some useless helpers later. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31781a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit df80c933f9eb01a7af3812bbe437e38205386304 Author: Christoph Hellwig Date: Wed Aug 13 16:22:09 2008 +1000 [XFS] remove some easy bhv_vnode_t instances In various places we can just move a VFS_I call into the argument list of called functions/macros instead of having a local bhv_vnode_t. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31776a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit e1cccd917be7364f81b5dc4e33ee3a6e0db21a99 Author: Christoph Hellwig Date: Wed Aug 13 16:18:07 2008 +1000 [XFS] kill xfs_lock_dir_and_entry When multiple inodes are locked in XFS it happens in order of the inode number, with the everything but the first inode trylocked if any of the previous inodes is in the AIL. Except for the sorting of the inodes this logic is implemented in xfs_lock_inodes, but also partially duplicated in xfs_lock_dir_and_entry in a particularly stupid way adds a lock roundtrip if the inode ordering is not optimal. This patch adds a new helper xfs_lock_two_inodes that takes two inodes and locks them in the most optimal way according to the above locking protocol and uses it for all places that want to lock two inodes. The only caller of xfs_lock_inodes is xfs_rename which might lock up to four inodes. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31772a Signed-off-by: Christoph Hellwig Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit 1550d0b0b08bc34c0c37a86bd884b1a70782104e Author: Christoph Hellwig Date: Wed Aug 13 16:17:37 2008 +1000 [XFS] kill INDUCE_IO_ERROR All the error injection is already enabled through ifdef DEBUG, so kill the never set second cpp symbol to activate it without the rest of the debugging infrastructure. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31771a Signed-off-by: Christoph Hellwig Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 907f49a8f552acc5d75635e86d567f05daf5c0d8 Author: Christoph Hellwig Date: Wed Aug 13 16:13:45 2008 +1000 [XFS] implement IHOLD/IRELE directly Now that all direct calls to VN_HOLD/VN_RELE are gone we can implement IHOLD/IRELE directly. For the IHOLD case also replace igrab with a direct increment of i_count because we are guaranteed to already have a live and referenced inode by the VFS. Also remove the vn_hold statistic because it's been rather meaningless for some time with most references done by other callers. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31764a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 0b1f917730dc2276fadbd9813ac3666abd7b1cbd Author: Christoph Hellwig Date: Wed Aug 13 16:13:09 2008 +1000 [XFS] remove remaining VN_HOLD calls Use IHOLD(ip) instead of VN_HOLD(VFS_I(ip)). SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31765a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 604323ca760beebf00a07153706dcbe7128324e0 Author: Christoph Hellwig Date: Wed Aug 13 16:12:37 2008 +1000 [XFS] remove spurious VN_HOLD/VN_RELE calls from xfs_acl.c All the ACL routines are called from inode operations which are guaranteed to have a referenced inode by the VFS, so there's no need for the ACL code to grab another temporary one. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31763a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 863890cd90e8b213f7028036c6e2200d93223527 Author: Christoph Hellwig Date: Wed Aug 13 16:12:05 2008 +1000 [XFS] kill vn_to_inode bhv_vnode_t is just a typedef for struct inode, so there's no need for a helper to convert between the two. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31761a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit a19d033cd2cc66120f01b370ec081d67b59b7924 Author: Christoph Hellwig Date: Wed Aug 13 16:11:26 2008 +1000 [XFS] Remove vn_from_inode() bhv_vnode_t is just a typedef for struct inode, so there's no need for a helper to convert between the two. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31760a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 39dab9d7daf5f664a3569378107a2cb284c8a594 Author: Eric Sandeen Date: Wed Aug 13 16:10:52 2008 +1000 [XFS] remove shouting-indirection macros from xfs_trans.h SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31758a Signed-off-by: Eric Sandeen Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit db7a2c71d287686eef1d4df1565fa32f89a9fe68 Author: Eric Sandeen Date: Wed Aug 13 16:09:25 2008 +1000 [XFS] convert xfs to use ERR_CAST Looks like somehow xfs got missed in the conversion that took place in e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f, "Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) " SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31757a Signed-off-by: Eric Sandeen Acked-by: David Howells Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: David Howells Signed-off-by: Lachlan McIlroy commit cdeb380aa2ca3b8f8ba3736f2469f5818eadb9aa Author: Eric Sandeen Date: Wed Aug 13 16:07:53 2008 +1000 [XFS] remove INT_GET and friends Thanks to hch's endian work, INT_GET etc are no longer used, and may as well be removed. INT_SET is still used in the acl code, though. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31756a Signed-off-by: Eric Sandeen Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 322ff6b8cd54feb1c4c0426630f3642ab1dd2176 Author: Niv Sardi Date: Wed Aug 13 16:05:49 2008 +1000 [XFS] Move xfs_attr_rolltrans to xfs_trans_roll Move it from the attr code to the transaction code and make the attr code call the new function. We rolltrans is really usefull whenever we want to use rolling transaction, should be generic, it isn't dependent on any part of the attr code anyway. We use this excuse to change all the: if ((error = xfs_attr_rolltrans())) calls into: error = xfs_trans_roll(); if (error) SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31729a Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit a738159df2b97398f960978272944cbdd8f726ef Author: Christoph Hellwig Date: Wed Aug 13 16:04:05 2008 +1000 [XFS] don't leak m_fsname/m_rtname/m_logname Add a helper to free the m_fsname/m_rtname/m_logname allocations and use it properly for all mount failure cases. Also switch the allocations for these to kstrdup while we're at it. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31728a Signed-off-by: Christoph Hellwig Signed-off-by: Niv Sardi Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 5e9da7b7a1edfc75a839b0269935393fa347f38b Author: Niv Sardi Date: Wed Aug 13 16:03:35 2008 +1000 [XFS] Move attr log alloc size calculator to another function. We will need that to be able to calculate the size of log we need for a specific attr (for Create+EA). The local flag is needed so that we can fail if we run into ENOSPC when trying to alloc blocks. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31727a Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit 6785073ba138a2f0dc575c332c1812b713670b6a Author: David Chinner Date: Wed Aug 13 16:02:51 2008 +1000 [XFS] Use KM_NOFS for incore inode extent tree allocation V2 If we allow incore extent tree allocations to recurse into the filesystem under memory pressure, new delayed allocations through xfs_iomap_write_delay() can deadlock on themselves if memory reclaim tries to write back dirty pages from that inode. It will deadlock in xfs_iomap_write_allocate() trying to take the ilock we already hold. This can also show up as complex ABBA deadlocks when multiple threads are triggering memory reclaim when trying to allocate extents. The main cause of this is the fact that delayed allocation is not done in a transaction, so KM_NOFS is not automatically added to the allocations to prevent this recursion. Mark all allocations done for the incore inode extent tree as KM_NOFS to ensure they never recurse back into the filesystem. Version 2: o KM_NOFS implies KM_SLEEP, so just use KM_NOFS SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31726a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit e6064d30c3407db7f8c19d5538ec847b29e47e30 Author: David Chinner Date: Wed Aug 13 16:01:45 2008 +1000 [XFS] XFS: Kill xfs_vtoi() xfs_vtoi() is redundant and only unsed in small sections of code. Replace them with widely used XFS_I() inline and kill xfs_vtoi(). SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31725a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit e4f7529108d01bf66af8ebecd6be2b98d8db30ce Author: David Chinner Date: Wed Aug 13 16:00:45 2008 +1000 [XFS] Kill shouty XFS_ITOV() macro Replace XFS_ITOV() with the new VFS_I() inline. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31724a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 705db4a24e0576f30d736de3c49623b4686ce473 Author: David Chinner Date: Wed Aug 13 15:47:43 2008 +1000 [XFS] kill shouty XFS_ITOV_NULL macro Replace XFS_ITOV_NULL() with the new VFS_I() inline. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31722a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 016516462575d28fab3354f762cad16c86c09116 Author: David Chinner Date: Wed Aug 13 15:45:15 2008 +1000 [XFS] Avoid directly referencing the VFS inode. In several places we directly convert from the XFS inode to the linux (VFS) inode by a simple deference of ip->i_vnode. We should not do this - a helper function should be used to extract the VFS inode from the XFS inode. Introduce the function VFS_I() to extract the VFS inode from the XFS inode. The name was chosen to match XFS_I() which is used to extract the XFS inode from the VFS inode. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31720a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 3790689fa3c771bba6bafb7dee3e8389dd0b55bc Author: Lachlan McIlroy Date: Wed Aug 13 15:42:10 2008 +1000 [XFS] Do not access buffers after dropping reference count We should not access a buffer after dropping it's reference count otherwise we could race with another thread that releases the final reference count and frees the buffer causing us to access potentially unmapped memory. The bug this change fixes only occured on DEBUG XFS since the offending code was in an ASSERT. SGI-PV: 984429 SGI-Modid: xfs-linux-melb:xfs-kern:31715a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit 79071eb0b2f142b9cc6531d04fa2915943938b5e Author: David Chinner Date: Wed Aug 13 15:41:12 2008 +1000 [XFS] Use the generic bitops rather than implementing them ourselves. This keeps xfs_lowbit64 as it was since there aren't good generic helpers there ... Patch inspired by Andi Kleen. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31472a Signed-off-by: David Chinner Signed-off-by: Eric Sandeen Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit 4f70f7a91bffdcc39f088748dc678953eb9a3fbd Author: David S. Miller Date: Tue Aug 12 18:33:56 2008 -0700 sparc64: Implement IRQ stacks. Signed-off-by: David S. Miller commit e34456825de0d3ac4c4e8fe0bdc6b599404ea06f Author: Stephen Rothwell Date: Tue Aug 12 17:45:23 2008 -0700 sparc: remove include of linux/of_device.h from asm/of_device.h Now that all the direct includes of asm/of_device.h are gone, this is safe to do. Signed-off-by: Stephen Rothwell Signed-off-by: David S. Miller commit c7498081a6f5d96c9f3243b6b5e020352903bfd2 Author: David S. Miller Date: Tue Aug 12 02:03:49 2008 -0700 sparc64: Fix recursion in stack overflow detection handling. The calls down into prom_printf() when we detect an overflowed stack can recurse again since the overflow stack will be "below" the current kernel stack limit. Prevent this by just returning straight if we are on the stack overflow safe stack already. Signed-off-by: David S. Miller commit 987c402ac31988f7ecdb38b657bcfeea5831d479 Author: Gerrit Renker Date: Mon Aug 11 18:17:17 2008 -0700 skbuff: Code readability NiT Inserting a space between the `-' improved the C readability (some languages allow hyphens within functions and variable names, which is confusing). Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 1cfa26661a85549063e369e2b40275eeaa7b923c Author: Jarek Poplawski Date: Mon Aug 11 18:11:06 2008 -0700 pkt_sched: Add BH protection for qdisc_stab_lock. Since qdisc_stab_lock is used in qdisc_put_stab(), which is called in BH context from __qdisc_destroy() RCU callback, softirq safe locking is needed. Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller commit 0a37c10ed460872d41259659f7f589edebdc42b7 Merge: 37cc678... e93615d... Author: David S. Miller Date: Mon Aug 11 18:04:35 2008 -0700 Merge branch 'stealer/ipvs/for-davem' of git://git.stealer.net/linux-2.6 commit 54b4602d5fe50571362e101138d24edb9cf82d29 Author: Steve French Date: Mon Aug 11 22:31:40 2008 +0000 [CIFS] remove trailing whitespace Signed-off-by: Steve French commit 2c731afb0d4ba16018b400c75665fbdb8feb2175 Author: Steve French Date: Mon Aug 11 22:28:53 2008 +0000 [CIFS] if get root inode fails during mount, cleanup tree connection CC: Stable Kernel Signed-off-by: Steve French commit 37cc6780170f6f4fc3f9746d6a9bb2da1d999d7b Author: Simon Horman Date: Mon Aug 11 14:33:40 2008 -0700 ipvs: add lvs-devel as a list contact Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit c6ed413ddcfb66e9d3e1318060271391c7659dd3 Author: Stephen Rothwell Date: Mon Aug 11 14:30:53 2008 -0700 sparc/drivers: use linux/of_device.h instead of asm/of_device.h Signed-off-by: Stephen Rothwell Signed-off-by: David S. Miller commit e93615d0866a974afc7148172f8382e2af48c985 Author: Simon Horman Date: Mon Aug 11 17:19:14 2008 +1000 ipvs: Explictly clear ip_vs_stats members In order to align the coding styles of ip_vs_zero_stats() and its child-function ip_vs_zero_estimator(), clear ip_vs_stats members explicitlty rather than doing a limited memset(). This was chosen over modifying ip_vs_zero_estimator() to use memset() as it is more robust against changes in members in the relevant structures. memset() would be prefered if all members of the structure were to be cleared. Cc: Sven Wegener Signed-off-by: Simon Horman Signed-off-by: Sven Wegener commit 519e49e888458649dde453d36c08b7f3432525dc Author: Sven Wegener Date: Sun Aug 10 18:24:41 2008 +0000 ipvs: No need to zero out ip_vs_stats during initialization It's a global variable and automatically initialized to zero. And now we can also initialize the lock at compile time. Signed-off-by: Sven Wegener Acked-by: Simon Horman commit 3a14a313f9b406c37ab7e3f855b060eb8587b8c7 Author: Sven Wegener Date: Sun Aug 10 18:24:41 2008 +0000 ipvs: Embed estimator object into stats object There's no reason for dynamically allocating an estimator object for every stats object. Directly embed an estimator object into every stats object and switch to using the kernel-provided list implementation. This makes the code much simpler and faster, as we do not need to traverse the list of all estimators to find the one belonging to a stats object. There's no need to use an rwlock, as we only have one reader. Also reorder the members of the estimator structure slightly to avoid padding overhead. This can't be done with the stats object as the members are currently copied to our user space object via memcpy() and changing it would break ABI. Signed-off-by: Sven Wegener Acked-by: Simon Horman commit 5587da55fbf332ab8d1b37637536f94bc373867f Author: Sven Wegener Date: Sun Aug 10 18:24:40 2008 +0000 ipvs: Mark net_vs_ctl_path const Signed-off-by: Sven Wegener Acked-by: Simon Horman commit 048cf48b897bcae9e6fa8b46b6976dab5e710e3c Author: Sven Wegener Date: Sun Aug 10 18:24:35 2008 +0000 ipvs: Annotate init functions with __init Being able to discard these functions saves a couple of bytes at runtime. The cleanup functions can't be annotated with __exit as they are also called from init functions. Signed-off-by: Sven Wegener Acked-by: Simon Horman commit d149ccc9cf85cdf089c1b2189ade111305712b0c Author: Sven Wegener Date: Sun Aug 10 09:18:02 2008 +0000 ipvs: Initialize schedulers' struct list_head at compile time No need to do it at runtime and this saves a couple of bytes in the text section. Signed-off-by: Sven Wegener Acked-by: Simon Horman commit 66a0be47200fff30f8c482ea584052c6affb08cb Author: Sven Wegener Date: Sun Aug 10 09:18:02 2008 +0000 ipvs: Use list_empty() instead of open-coding the same functionality Signed-off-by: Sven Wegener Acked-by: Simon Horman commit afdd614071aef652f5a3e2a06965de049dd8339b Author: Sven Wegener Date: Sun Aug 10 09:18:01 2008 +0000 ipvs: Use ARRAY_SIZE() Signed-off-by: Sven Wegener Acked-by: Simon Horman commit 8ab19ea36c5c5340ff598e4d15fc084eb65671dc Author: Sven Wegener Date: Sun Aug 10 09:17:59 2008 +0000 ipvs: Fix possible deadlock in estimator code There is a slight chance for a deadlock in the estimator code. We can't call del_timer_sync() while holding our lock, as the timer might be active and spinning for the lock on another cpu. Work around this issue by using try_to_del_timer_sync() and releasing the lock. We could actually delete the timer outside of our lock, as the add and kill functions are only every called from userspace via [gs]etsockopt() and are serialized by a mutex, but better make this explicit. Signed-off-by: Sven Wegener Cc: stable Acked-by: Simon Horman commit bc0fde2fad007a81ecffceb25a893a6c3f1ed767 Author: Sven Wegener Date: Sun Aug 10 09:14:05 2008 +0000 ipvs: Fix possible deadlock in sync code Commit 998e7a76804b7a273a0460c2cdd5a51fa9856717 ("ipvs: Use kthread_run() instead of doing a double-fork via kernel_thread()") introduced a possible deadlock in the sync code. We need to use the _bh versions for the lock, as the lock is also accessed from a bottom half. Signed-off-by: Sven Wegener Acked-by: Simon Horman commit cbbdece3048d0844b1cc6f4f8d18085e190721d7 Author: Andrew Morton Date: Sun Aug 10 23:06:25 2008 -0400 Input: xilinx_ps2 - fix warning drivers/input/serio/xilinx_ps2.c:272: warning: cast from pointer to integer of different size Signed-off-by: Andrew Morton Signed-off-by: Dmitry Torokhov commit b6b7922fbda63040946cac8251d5618ee7880e8a Author: David S. Miller Date: Sat Aug 9 16:25:26 2008 -0700 sparc64: Don't MAGIC_SYSRQ ifdef smp_fetch_global_regs and support code. Based upon a report and initial patch by Friedrich Oslage. The intention is to provide this facility for __trigger_all_cpu_backtrace even if MAGIC_SYSRQ is not set. The only part that should have MAGIC_SYSRQ ifdef protection is the sparc_globalreg_op sysrq regitration and immediate code. Signed-off-by: David S. Miller commit d97106ea52aa57e63ff40d04479016836bbb5a4e Author: Herbert Xu Date: Sat Aug 9 00:35:05 2008 -0700 udp: Drop socket lock for encapsulated packets The socket lock is there to protect the normal UDP receive path. Encapsulation UDP sockets don't need that protection. In fact the locking is deadly for them as they may contain another UDP packet within, possibly with the same addresses. Also the nested bit was copied from TCP. TCP needs it because of accept(2) spawning sockets. This simply doesn't apply to UDP so I've removed it. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit 8123b421e8ed944671d7241323ed3198cccb4041 Author: David S. Miller Date: Fri Aug 8 23:23:39 2008 -0700 pkt_sched: Fix ingress deletion and filter attachment. Based upon bug reports by Stephen Hemminger. We still had some cases using ->qdisc instead of ->qdisc_sleeping. Also, qdisc_lookup() should return ingress qdiscs. Signed-off-by: David S. Miller commit 88da765f4d5f59f67a7a51c8f5d608a836b32133 Author: Dmitry Torokhov Date: Fri Aug 8 14:59:32 2008 -0400 Input: bcm5974 - implement autosuspend support Signed-off-by: Dmitry Torokhov commit f89bd95c5c946776f116ffeb997653d4193d6a35 Author: Henrik Rydberg Date: Fri Aug 8 14:59:30 2008 -0400 Input: bcm5974 - add driver for Macbook Air and Pro Penryn touchpads This driver adds support for the multitouch trackpad on the new Apple Macbook Air and Macbook Pro Penryn laptops. It replaces the appletouch driver on those computers, and integrates well with the synaptics driver of the Xorg system. [dtor@mail.ru: various cleanups] Signed-off-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov commit e4ddcb0a6bf04d53ce77b4eb87bbbb32c4261d11 Merge: f2afa77... 6e86841... Author: Dmitry Torokhov Date: Fri Aug 8 16:21:02 2008 -0400 Merge commit 'v2.6.27-rc1' into for-linus commit f2afa7711f8585ffc088ba538b9a510e0d5dca12 Author: Dmitry Torokhov Date: Fri Aug 8 11:46:53 2008 -0400 Input: paper over a bug in Synaptics X driver Signed-off-by: Dmitry Torokhov commit 5402a7349d26875f69c184badf87b88541b1cf6c Author: Linus Torvalds Date: Tue Aug 5 11:42:42 2008 -0400 Input: evdev - split EVIOCGBIT handlig into a separate function Signed-off-by: Linus Torvalds Signed-off-by: Dmitry Torokhov commit 56ac36d722d0d27c03599d1245ac0ab59e474e5c Author: Dan Williams Date: Thu Aug 7 10:02:47 2008 -0700 md: cancel check/repair requests when recovery is needed If a 'repair' is requested when an array is in a position to 'recover' raid1 will perform the repair while md believes a recovery is happening. Address this at both ends, i.e. cancel check/repair requests upon detecting a recover condition and do not call ->spare_active after completing a check/repair. Signed-off-by: Dan Williams commit 8e4ae1017a555662d698ea4616dcfe71b17d3732 Author: Carlos Corbacho Date: Wed Aug 6 14:28:43 2008 -0400 Input: i8042 - Add Dritek quirk for Acer TravelMate 4280 Reported-by: Mattias Jernberg Signed-off-by: Carlos Corbacho Signed-off-by: Dmitry Torokhov commit 0310fa216decc3ecfab41f327638fa48a81f3735 Author: NeilBrown Date: Tue Aug 5 15:54:14 2008 +1000 Allow raid10 resync to happening in larger chunks. The raid10 resync/recovery code currently limits the amount of in-flight resync IO to 2Meg. This was copied from raid1 where it seems quite adequate. However for raid10, some layouts require a bit of seeking to perform a resync, and allowing a larger buffer size means that the seeking can be significantly reduced. There is probably no real need to limit the amount of in-flight IO at all. Any shortage of memory will naturally reduce the amount of buffer space available down to a set minimum, and any concurrent normal IO will quickly cause resync IO to back off. The only problem would be that normal IO has to wait for all resync IO to finish, so a very large amount of resync IO could cause unpleasant latency when normal IO starts up. So: increase RESYNC_DEPTH to allow 32Meg of buffer (if memory is available) which seems to be a good amount. Also reduce the amount of memory reserved as there is no need to keep 2Meg just for resync if memory is tight. Thanks to Keld for the suggestion. Cc: Keld Jørn Simonsen Signed-off-by: NeilBrown commit c89a8eee61540df04fc83f32f51ef0f46ec018b1 Author: NeilBrown Date: Tue Aug 5 15:54:13 2008 +1000 Allow faulty devices to be removed from a readonly array. Removing faulty devices from an array is a two stage process. First the device is moved from being a part of the active array to being similar to a spare device. Then it can be removed by a request from user space. The first step is currently not performed for read-only arrays, so the second step can never succeed. So allow readonly arrays to remove failed devices (which aren't blocked). Signed-off-by: NeilBrown commit ac4090d24c6a26211bc4523d920376e054d4f3f8 Author: NeilBrown Date: Tue Aug 5 15:54:13 2008 +1000 Don't let a blocked_rdev interfere with read request in raid5/6 When we have externally managed metadata, we need to mark a failed device as 'Blocked' and not allow any writes until that device have been marked as faulty in the metadata and the Blocked flag has been removed. However it is perfectly OK to allow read requests when there is a Blocked device, and with a readonly array, there may not be any metadata-handler watching for blocked devices. So in raid5/raid6 only allow a Blocked device to interfere with Write request or resync. Read requests go through untouched. raid1 and raid10 already differentiate between read and write properly. Signed-off-by: NeilBrown commit dba034eef2456d2a9f9a76806846c97acf6c3ad1 Author: NeilBrown Date: Tue Aug 5 15:54:13 2008 +1000 Fail safely when trying to grow an array with a write-intent bitmap. We cannot currently change the size of a write-intent bitmap. So if we change the size of an array which has such a bitmap, it tries to set bits beyond the end of the bitmap. For now, simply reject any request to change the size of an array which has a bitmap. mdadm can remove the bitmap and add a new one after the array has changed size. Signed-off-by: NeilBrown commit 2b25000bf5157c28d8591f03f0575248a8cbd900 Author: NeilBrown Date: Tue Aug 5 15:54:13 2008 +1000 Restore force switch of md array to readonly at reboot time. A recent patch allowed do_md_stop to know whether it was being called via an ioctl or not, and thus where to allow for an extra open file descriptor when checking if it is in use. This broke then switch to readonly performed by the shutdown notifier, which needs to work even when the array is still (apparently) active (as md doesn't get told when the filesystem becomes readonly). So restore this feature by pretending that there can be lots of file descriptors open, but we still want do_md_stop to switch to readonly. Signed-off-by: NeilBrown commit 19052c0e85a3e9d3b7d190b29fcdbf0e6c105381 Author: NeilBrown Date: Tue Aug 5 15:54:13 2008 +1000 Make writes to md/safe_mode_delay immediately effective. If we reduce the 'safe_mode_delay', it could still wait for the old delay to completely expire before doing anything about safe_mode. Thus the effect if the change is delayed. To make the effect more immediate, run the timeout function immediately if the delay was reduced. This may cause it to run slightly earlier that required, but that is the safer option. Signed-off-by: NeilBrown commit d488d3ed009ab16eeda230cd1d42e394e868f32a Author: Harley Laue Date: Wed Jul 30 10:46:39 2008 -0400 Input: xpad - add Pelican Eclipse D-Pad to the list of devices Signed-off-by: Harley Laue Signed-off-by: Dmitry Torokhov commit 9b07044cd8bd15fb5991e9b27136979a43538636 Author: Uwe Kleine-König Date: Wed Jul 30 10:34:02 2008 -0400 Input: gpio-keys - make gpio_keys_device_driver static This fixes the sparse warning symbol 'gpio_keys_device_driver' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König Signed-off-by: Dmitry Torokhov commit 74dd4393445ba37b79041d92de6ff7e7b68a4aec Author: Uwe Kleine-König Date: Wed Jul 30 10:33:43 2008 -0400 Input: gpio-keys - fix possible NULL pointer dereference bdata->button is used in gpio_check_button but never initialized. Having a device with debounce_interval != 0 without this patch resulted on an oops on my machine. Signed-off-by: Uwe Kleine-König Signed-off-by: Dmitry Torokhov commit 558a171d778293176bf70bc34e18a92faef5bfa1 Author: Mark Brown Date: Tue Jul 29 01:14:59 2008 -0400 Input: wm97xx - enable sub-drivers by default Currently the support for each WM97xx touchscreen model is compiled out by default, meaning that the default configuration when the driver is built is for it to support no hardware. This is suboptimal and leads to problems like distribution kernels shipping a non-functional driver. Change the default to support all controllers and update the help text to reflect this. Signed-off-by: Mark Brown Signed-off-by: Dmitry Torokhov