AgeCommit message (Collapse)Author
2009-12-08Linux Kroah-Hartman
2009-12-08isdn: hfc_usb: Fix read buffer overflowRoel Kluin
commit 286e633ef0ff5bb63c07b4516665da8004966fec upstream. Check whether index is within bounds before testing the element. Signed-off-by: Roel Kluin <> Cc: Karsten Keil <> Signed-off-by: Andrew Morton <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08Input: keyboard - fix braille keyboard keysym generationSamuel Thibault
commit 46a965462a1c568a7cd7dc338de4a0afa5ce61c5 upstream. Keysyms stored in key_map[] are not simply K() values, but U(K()) values, as can be seen in the KDSKBENT ioctl handler. The kernel-generated braille keysyms thus need a U() call too. Signed-off-by: Samuel Thibault <> Signed-off-by: Andrew Morton <> Signed-off-by: Dmitry Torokhov <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08acerhdf: return temperature in milidegree instead of degreePeter Feuerer
commit 7005291706341a11c094f39a756a01c9e649e5f9 upstream. Return temperature in milidegree instead of degree, as sysfs-api requires the temperature in milidegree. Signed-off-by: Peter Feuerer <> Tested-by: Borislav Petkov <> Cc: Andreas Mohr <> Signed-off-by: Andrew Morton <> Signed-off-by: Len Brown <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08acerhdf: additional BIOS versionsPeter Feuerer
commit f944915187f53810130eb1c56985e27e3cbe4a6d upstream. Added BIOS versions: Acer: AOA110-v0.3307, AOA150-v0.3301, AOA150-v0.3307 Packard Bell: AOA150-v0.3105 Signed-off-by: Peter Feuerer <> Cc: Andreas Mohr <> Cc: Borislav Petkov <> Signed-off-by: Andrew Morton <> Signed-off-by: Len Brown <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08PCI: Prevent AER driver from being loaded on non-root port PCIE devicesKenji Kaneshige
commit 30fc24b5cbc55f9e6c686e2710cc812419bddc0c upstream. A bug was seen on boards using a PLX 8518 switch device which advertises AER on each of it's transparent bridges. The AER driver was loaded for each bridge and this driver tried to access the AER source ID register whenever an interrupt occured on the shared PCI INTX lines. The source ID register does not exist on non root port PCIE device's which advertise AER and trying to access this register causes a unsupported request error on the bridge. Thus, when the next interrupt occurs, another error is found and the non existent source ID register is accessed again, and so it goes on. The result is a spammed dmesg with unsupported request PCI express errors on the bridge device that the AER driver is loaded against. Reported-by: Malcolm Crossley <> Signed-off-by: Kenji Kaneshige <> Tested-by: Malcolm Crossley <> Signed-off-by: Jesse Barnes <> Cc: Jean Delvare <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08V4L/DVB (13257): gspca - m5602-s5k4aa: Add vflip for Fujitsu Amilo Xi 2528Erik Andrén
commit 81191f694cb507c49d3c7aa6238dcc0a83ad4001 upstream. Adds a vflip quirk for the Fujitsu Amilo Xi 2528. Thanks to Evgeny for the report. Signed-off-by: Erik Andrén <> Signed-off-by: Mauro Carvalho Chehab <>
2009-12-08V4L/DVB (13256): gspca - m5602-s5k4aa: Add another MSI GX700 vflip quirkErik Andrén
commit 2339a1887dab469bb4bae56aa7eca3a5e05ecde7 upstream. Adds another vflip quirk for the MSI GX700. Thanks to John Katzmaier for reporting. Signed-off-by: Erik Andrén <> Signed-off-by: Mauro Carvalho Chehab <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08V4L/DVB (13255): gspca - m5602-s5k4aa: Add vflip quirk for the Bruneinit laptopErik Andrén
commit b6ef8836c1ff5199abd40cfba162052bc7e8af00 upstream. Adds a vflip quirk for the Bruneinit laptop. Thanks to Jörg for the report Signed-off-by: Erik Andrén <> Signed-off-by: Mauro Carvalho Chehab <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08tty/of_serial: add missing ns16550a idMichal Simek
commit 16173c7c2d79da7eb89b41acfdebd74b130f4339 upstream. Many boards have a bug-free ns16550 compatible serial port, which we should register as PORT_16550A. This introduces a new value "ns16550a" for the compatible property of of_serial to let a firmware choose that model instead of using the crippled PORT_16550 mode. Reported-by: Alon Ziv <> Signed-off-by: Michal Simek <> Signed-off-by: Arnd Bergmann <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08drm/fb: fix FBIOGET/PUT_VSCREENINFO pixel clock handlingClemens Ladisch
commit 5349ef3127c77075ff70b2014f17ae0fbcaaf199 upstream When the framebuffer driver does not publish detailed timing information for the current video mode, the correct value for the pixclock field is zero, not -1. Since pixclock is actually unsigned, the value -1 would be interpreted as 4294967295 picoseconds (i.e., about 4 milliseconds) by register_framebuffer() and userspace programs. This patch allows's fbdev driver to work. Signed-off-by: Clemens Ladisch <> Tested-by: Paulius Zaleckas <> Signed-off-by: Dave Airlie <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08acerhdf: fix fan control for AOA150 modelPeter Feuerer
commit ded0cdfc6a7673916b0878c32fa8ba566b4f8cdb upstream. - Apply Borislav Petkov's patch (convert the fancmd[] array to a real struct thus disambiguating command handling and making code more readable.) - Add BIOS product to BIOS table as AOA110 and AOA150 have different register values - Add force_product parameter to allow forcing different product - fix linker warning caused by "acerhdf_drv" not being named "acerhdf_driver" Signed-off-by: Peter Feuerer <> Cc: Andreas Mohr <> Acked-by: Borislav Petkov <> Signed-off-by: Andrew Morton <> Signed-off-by: Len Brown <> Cc: Adrian von Bidder <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08i2c: Fix userspace_device list corruptionJean Delvare
commit bbd2d9c9198c6efd449e9d395b3eaf2d03aa3bba upstream. Fix userspace_device list corruption. The corruption was caused by clients not being removed when adapters with such clients were themselves removed. Something like the following would trigger it (assuming i2c-stub gets adapter number 3): # modprobe i2c-stub chip_addr=0x50 # echo 24c08 0x50 > /sys/bus/i2c/devices/i2c-3/new_device # rmmod i2c-stub # modprobe i2c-stub chip_addr=0x50 # echo 24c08 0x50 > /sys/bus/i2c/devices/i2c-3/new_device For the records, the stack trace in the kernel logs look like this: kernel: WARNING: at lib/list_debug.c:30 __list_add+0x8b/0x90() kernel: Hardware name: (...) kernel: list_add corruption. prev->next should be next (c137fc84), but was (null). (prev=f57111b8). kernel: Modules linked in: (...) kernel: Pid: 4669, comm: bash Not tainted 2.6.32-rc8 #259 kernel: Call Trace: kernel: [<c111eb8b>] ? __list_add+0x8b/0x90 kernel: [<c111eb8b>] ? __list_add+0x8b/0x90 kernel: [<c103265c>] warn_slowpath_common+0x6c/0xc0 kernel: [<c111eb8b>] ? __list_add+0x8b/0x90 kernel: [<c10326f6>] warn_slowpath_fmt+0x26/0x30 kernel: [<c111eb8b>] __list_add+0x8b/0x90 kernel: [<c11ba165>] i2c_sysfs_new_device+0x1c5/0x250 kernel: [<c10861be>] ? might_fault+0x2e/0x80 kernel: [<c11b9fa0>] ? i2c_sysfs_new_device+0x0/0x250 kernel: [<c118c625>] dev_attr_store+0x25/0x30 kernel: [<c10e305c>] sysfs_write_file+0x9c/0xf0 kernel: [<c109d35c>] vfs_write+0x9c/0x160 kernel: [<c10e2fc0>] ? sysfs_write_file+0x0/0xf0 kernel: [<c109d4dd>] sys_write+0x3d/0x70 kernel: [<c1002ed8>] sysenter_do_call+0x12/0x36 Signed-off-by: Jean Delvare <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08ath5k: Linear PCDAC code fixesNick Kossifidis
commit d1cb0bdac180a4afdd3c001acb2618d2a62d9abe upstream. * Set correct xpd curve indices for high/low gain curves during rfbuffer setup on RF5112B with both calibration curves available. * Don't return zero min power when we have the same pcdac value twice because it breaks interpolation. Instead return the right x barrier as we do when we have equal power levels for 2 different pcdac values. Signed-off-by: Nick Kossifidis <> Acked-by: Bob Copeland <> Signed-off-by: John W. Linville <> Cc: Dan Williams <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08sky2: set carrier off in probeBrandon Philips
commit 33cb7d33a1c36e07839d08a4d1a33bf6a0f70bba upstream. Before bringing up a sky2 interface up ethtool reports "Link detected: yes". Do as ixgbe does and netif_carrier_off() on probe(). Signed-off-by: Brandon Philips <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08crypto: padlock-aes - Use the correct mask when checking whether copying is ↵Chuck Ebbert
required commit e8edb3cbd7dd8acf6c748a02d06ec1d82c4124ea upstream. Masking with PAGE_SIZE is just wrong... Signed-off-by: Chuck Ebbert <> Signed-off-by: Herbert Xu <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08b43: Fix DMA TX bounce buffer copyingMichael Buesch
commit 9a3f45116f5e08819136cd512fd7f6450ac22aa8 upstream. b43 allocates a bouncebuffer, if the supplied TX skb is in an invalid memory range for DMA. However, this is broken in that it fails to copy over some metadata to the new skb. This patch fixes three problems: * Failure to adjust the ieee80211_tx_info pointer to the new buffer. This results in a kmemcheck warning. * Failure to copy the skb cb, which contains ieee80211_tx_info, to the new skb. This results in breakage of various TX-status postprocessing (Rate control). * Failure to transfer the queue mapping. This results in the wrong queue being stopped on saturation and can result in queue overflow. Signed-off-by: Michael Buesch <> Tested-by: Christian Casteyde <> Signed-off-by: John W. Linville <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08netfilter: xt_connlimit: fix regression caused by zero family valueJan Engelhardt
commit 539054a8fa5141c9a4e9ac6a86d249e3f2bdef45 upstream. Commit v2.6.28-rc1~717^2~109^2~2 was slightly incomplete; not all instances of par->match->family were changed to par->family. References: Signed-off-by: Jan Engelhardt <> Signed-off-by: Patrick McHardy <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08netfilter: nf_nat: fix NAT issue in Kadlecsik
commit f9dd09c7f7199685601d75882447a6598be8a3e0 upstream. Vitezslav Samel discovered that since active FTP can not work over NAT. The "cause" of the problem was a fix of unacknowledged data detection with NAT (commit a3a9f79e361e864f0e9d75ebe2a0cb43d17c4272). However, actually, that fix uncovered a long standing bug in TCP conntrack: when NAT was enabled, we simply updated the max of the right edge of the segments we have seen (td_end), by the offset NAT produced with changing IP/port in the data. However, we did not update the other parameter (td_maxend) which is affected by the NAT offset. Thus that could drift away from the correct value and thus resulted breaking active FTP. The patch below fixes the issue by *not* updating the conntrack parameters from NAT, but instead taking into account the NAT offsets in conntrack in a consistent way. (Updating from NAT would be more harder and expensive because it'd need to re-calculate parameters we already calculated in conntrack.) Signed-off-by: Jozsef Kadlecsik <> Signed-off-by: Patrick McHardy <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08agp/intel: new host bridge supportZhenyu Wang
commit 9cf1e35cb025eaa52dde37df38e2750b6adb1620 upstream. Add new CPU host bridge id, needed for support Ironlake graphics device with it. No change for graphics device itself, so no need to update drm/i915. Signed-off-by: Zhenyu Wang <> Signed-off-by: Eric Anholt <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08hwmon: (adt7475) Cache limits for 60 secondsJean Delvare
commit 56e35eeebed2dcb4e1a17ad119e039cf095854ac upstream. The comment says that limits are cached for 60 seconds but the code actually caches them for only 2 seconds. Align the code on the comment, as 60 seconds makes more sense. Signed-off-by: Jean Delvare <> Acked-by: Hans de Goede <> Cc: Jordan Crouse <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08hwmon: (adt7475) Fix temperature fault flagsJean Delvare
commit cf312e077662ec3a07529551ab6e885828ccfb1d upstream. The logic of temperature fault flags is wrong, it shows faults when there are none and vice versa. Fix it. I can't believe this has been broken since the driver was added, 8 months ago, basically breaking temp1 and temp3, and nobody ever complained. Signed-off-by: Jean Delvare <> Acked-by: Hans de Goede <> Cc: Jordan Crouse <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08block: use after free bug in __blkdev_getNeil Brown
commit 960cc0f4fef607baabc2232fbd7cce5368a9dcfd upstream. commit 0762b8bde9729f10f8e6249809660ff2ec3ad735 (from 14 months ago) introduced a use-after-free bug which has just recently started manifesting in my md testing. I tried git bisect to find out what caused the bug to start manifesting, and it could have been the recent change to blk_unregister_queue (48c0d4d4c04) but the results were inconclusive. This patch certainly fixes my symptoms and looks correct as the two calls are now in the same order as elsewhere in that function. Signed-off-by: NeilBrown <> Acked-by: Tejun Heo <> Signed-off-by: Jens Axboe <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08hso: fix soft-lockupAntti Kaijanmäki
commit dcfcb256cc23c4436691b0fe677275306699d6a1 upstream. Fix soft-lockup in hso.c which is triggered on SMP machine when modem is removed while file descriptor(s) under /dev are still open: old version called kref_put() too early which resulted in destroying hso_serial and hso_device objects which were still used later on. Signed-off-by: Antti Kaijanmäki <> Signed-off-by: Andrew Morton <> Signed-off-by: David S. Miller <>
2009-12-08perf_event: Adjust frequency and unthrottle for non-group-leader eventsPaul Mackerras
commit 03541f8b69c058162e4cf9675ec9181e6a204d55 upstream. The loop in perf_ctx_adjust_freq checks the frequency of sampling event counters, and adjusts the event interval and unthrottles the event if required, and resets the interrupt count for the event. However, at present it only looks at group leaders. This means that a sampling event that is not a group leader will eventually get throttled, once its interrupt count reaches sysctl_perf_event_sample_rate/HZ --- and that is guaranteed to happen, if the event is active for long enough, since the interrupt count never gets reset. Once it is throttled it never gets unthrottled, so it basically just stops working at that point. This fixes it by making perf_ctx_adjust_freq use ctx->event_list rather than ctx->group_list. The existing spin_lock/spin_unlock around the loop makes it unnecessary to put rcu_read_lock/ rcu_read_unlock around the list_for_each_entry_rcu(). Reported-by: Mark W. Krentel <> Signed-off-by: Paul Mackerras <> Cc: Corey Ashford <> Cc: Peter Zijlstra <> LKML-Reference: <> Signed-off-by: Ingo Molnar <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08md: revert incorrect fix for read error handling in raid1.NeilBrown
commit d0e260782c3702a009645c3caa02e381dab8798b upstream. commit 4706b349f was a forward port of a fix that was needed for SLES10. But in fact it is not needed in mainline because the earlier commit dd00a99e7a fixes the same problem in a better way. Further, this commit introduces a bug in the way it interacts with the automatic read-error-correction. If, after a read error is successfully corrected, the same disk is chosen to re-read - the re-read won't be attempted but an error will be returned instead. After reverting that commit, there is the possibility that a read error on a read-only array (where read errors cannot be corrected as that requires a write) will repeatedly read the same device and continue to get an error. So in the "Array is readonly" case, fail the drive immediately on a read error. Signed-off-by: NeilBrown <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08modules: don't export section names of empty sections via sysfsHelge Deller
commit 35dead4235e2b67da7275b4122fed37099c2f462 upstream. On the parisc architecture we face for each and every loaded kernel module this kernel "badness warning": sysfs: cannot create duplicate filename '/module/ac97_bus/sections/.text' Badness at fs/sysfs/dir.c:487 Reason for that is, that on parisc all kernel modules do have multiple .text sections due to the usage of the -ffunction-sections compiler flag which is needed to reach all jump targets on this platform. An objdump on such a kernel module gives: Sections: Idx Name Size VMA LMA File off Algn 0 00000024 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 00000000 00000000 00000000 00000058 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .text.ac97_bus_match 0000001c 00000000 00000000 00000058 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 3 .text 00000000 00000000 00000000 000000d4 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE ... Since the .text sections are empty (size of 0 bytes) and won't be loaded by the kernel module loader anyway, I don't see a reason why such sections need to be listed under /sys/module/<module_name>/sections/<section_name> either. The attached patch does solve this issue by not exporting section names which are empty. This fixes bugzilla Signed-off-by: Helge Deller <> CC: CC: CC: CC: CC: Signed-off-by: Linus Torvalds <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08param: don't complain about unused module parameters.Rusty Russell
commit f066a4f6df68f03b565dfe867dde54dfeb26576e upstream. Jon confirms that recent modprobe will look in /proc/cmdline, so these cmdline options can still be used. See Reported-by: Adam Williamson <> Signed-off-by: Rusty Russell <> Signed-off-by: Linus Torvalds <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08pxamci: call mmc_remove_host() before freeing resourcesDaniel Mack
commit 5d6b1edf8ccc4b7e4e77dff3fc80882833d6186e upstream. mmc_remove_host() will cause the mmc core to switch off the bus power by eventually calling pxamci_set_ios(). This function uses the regulator or the GPIO which have been freed already. This causes the following Oops on module unload. [ 49.519649] Unable to handle kernel paging request at virtual address 30303a70 [ 49.526878] pgd = c7084000 [ 49.529563] [30303a70] *pgd=00000000 [ 49.533136] Internal error: Oops: 5 [#1] [ 49.537025] last sysfs file: /sys/devices/platform/pxa27x-ohci/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_level [ 49.547471] Modules linked in: pxamci(-) eeti_ts [ 49.552061] CPU: 0 Not tainted (2.6.32-rc8 #322) [ 49.557001] PC is at regulator_is_enabled+0x3c/0xbc [ 49.561846] LR is at regulator_is_enabled+0x30/0xbc [ 49.566691] pc : [<c01a2448>] lr : [<c01a243c>] psr: 60000013 [ 49.566702] sp : c7083e70 ip : 30303a30 fp : 00000000 [ 49.578093] r10: c705e200 r9 : c7082000 r8 : c705e2e0 [ 49.583280] r7 : c7061340 r6 : c7061340 r5 : c7083e70 r4 : 00000000 [ 49.589759] r3 : c04dc434 r2 : c04dc434 r1 : c03eecea r0 : 00000047 [ 49.596241] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 49.603329] Control: 0000397f Table: a7084018 DAC: 00000015 [ 49.609031] Process rmmod (pid: 1101, stack limit = 0xc7082278) [ 49.614908] Stack: (0xc7083e70 to 0xc7084000) [ 49.619238] 3e60: c7082000 c703c4f8 c705ea00 c04f4074 [ 49.627366] 3e80: 00000000 c705e3a0 ffffffff c0247ddc c70361a0 00000000 c705e3a0 ffffffff [ 49.635499] 3ea0: c705e200 bf006400 c78c4f00 c705e200 c705e3a0 ffffffff c705e200 ffffffff [ 49.643633] 3ec0: c04d8ac8 c02476d0 ffffffff c0247c60 c705e200 c0248678 c705e200 c0249064 [ 49.651765] 3ee0: ffffffff bf006204 c04d8ad0 c04d8ad0 c04d8ac8 bf007490 00000880 c00440c4 [ 49.659898] 3f00: 0000b748 c01c5708 bf007490 c01c44c8 c04d8ac8 c04d8afc bf007490 c01c4570 [ 49.668031] 3f20: bf007490 bf00750c c04f4258 c01c37a4 00000000 bf00750c c7083f44 c007b014 [ 49.676162] 3f40: 4000d000 6d617870 08006963 00000001 00000000 c7085000 00000001 00000000 [ 49.684287] 3f60: 4000d000 c7083f8c 00000001 bea01a54 00005401 c7ab1400 c00440c4 00082000 [ 49.692420] 3f80: bf00750c 00000880 c7083f8c 00000000 4000cfa8 00000000 00000880 bea01cc8 [ 49.700552] 3fa0: 00000081 c0043f40 00000000 00000880 bea01cc8 00000880 00000006 00000000 [ 49.708677] 3fc0: 00000000 00000880 bea01cc8 00000081 00000097 0000cca4 0000b748 00000000 [ 49.716802] 3fe0: 4001a4f0 bea01cc0 00018bf4 4001a4fc 20000010 bea01cc8 a063e021 a063e421 [ 49.724958] [<c01a2448>] (regulator_is_enabled+0x3c/0xbc) from [<c0247ddc>] (mmc_regulator_set_ocr+0x14/0xd8) [ 49.734836] [<c0247ddc>] (mmc_regulator_set_ocr+0x14/0xd8) from [<bf006400>] (pxamci_set_ios+0xd8/0x17c [pxamci]) [ 49.745044] [<bf006400>] (pxamci_set_ios+0xd8/0x17c [pxamci]) from [<c02476d0>] (mmc_power_off+0x50/0x58) [ 49.754555] [<c02476d0>] (mmc_power_off+0x50/0x58) from [<c0247c60>] (mmc_detach_bus+0x68/0xc4) [ 49.763207] [<c0247c60>] (mmc_detach_bus+0x68/0xc4) from [<c0248678>] (mmc_stop_host+0xd4/0x1bc) [ 49.771944] [<c0248678>] (mmc_stop_host+0xd4/0x1bc) from [<c0249064>] (mmc_remove_host+0xc/0x20) [ 49.780681] [<c0249064>] (mmc_remove_host+0xc/0x20) from [<bf006204>] (pxamci_remove+0xc8/0x174 [pxamci]) [ 49.790211] [<bf006204>] (pxamci_remove+0xc8/0x174 [pxamci]) from [<c01c5708>] (platform_drv_remove+0x1c/0x24) [ 49.800164] [<c01c5708>] (platform_drv_remove+0x1c/0x24) from [<c01c44c8>] (__device_release_driver+0x7c/0xc4) [ 49.810110] [<c01c44c8>] (__device_release_driver+0x7c/0xc4) from [<c01c4570>] (driver_detach+0x60/0x8c) [ 49.819535] [<c01c4570>] (driver_detach+0x60/0x8c) from [<c01c37a4>] (bus_remove_driver+0x90/0xcc) [ 49.828452] [<c01c37a4>] (bus_remove_driver+0x90/0xcc) from [<c007b014>] (sys_delete_module+0x1d8/0x254) [ 49.837891] [<c007b014>] (sys_delete_module+0x1d8/0x254) from [<c0043f40>] (ret_fast_syscall+0x0/0x28) [ 49.847145] Code: eb06c53a e596c030 e1a0500d e59f106c (e59c0040) [ 49.853566] ---[ end trace b5fa66a00cea142f ]--- Signed-off-by: Daniel Mack <> Reported-by: Sven Neumann <> Cc: Pierre Ossman <> Cc: Cc: Signed-off-by: Eric Miao <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08tty_port: handle the nonblocking open of a dead port corner caseAlan Cox
commit 8627b96dd80dca440d91fbb1ec733be25912d0dd upstream. Some drivers allow O_NDELAY of a dead port (eg for setserial to work). In that situation we must not try to raise the carrier. Signed-off-by: Alan Cox <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08USB: work around for EHCI with quirky periodic schedulesOliver Neukum
commit ee4ecb8ac63a5792bec448037d4b82ec4144f94b upstream. a quirky chipset needs periodic schedules to run for a minimum time before they can be disabled again. This enforces the requirement with a time stamp and a calculated delay Signed-off-by: Oliver Neukum <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08USB: ftdi_sio: Keep going when write errors are encountered.Eric W. Biederman
commit 0de6ab8b91f2e1e8e7fc66a8b5c5e8ca82ea16b7 upstream. The use of urb->actual_length to update tx_outstanding_bytes implicitly assumes that the number of bytes actually written is the same as the number of bytes we tried to write. On error that assumption is violated so just use transfer_buffer_length the number of bytes we intended to write to the device. If an error occurs we need to fall through and call usb_serial_port_softint to wake up processes waiting in tty_wait_until_sent. Signed-off-by: Eric W. Biederman <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08usb: amd5536udc: fixed shared interrupt bug and warning oopsThomas Dahlmann
commit c5deb832d7a3f9618b09e6eeaa91a1a845c90c65 upstream. - fixed shared interrupt bug reported by Vadim Lobanov - fixed possible warning oops on driver unload when connected - prevent interrupt flood in PIO mode ("modprobe amd5536udc use_dma=0") when using gadget ether Signed-off-by: Thomas Dahlmann <> Cc: Robert Richter <> Cc: David Brownell <> Signed-off-by: Andrew Morton <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08USB: musb_gadget: fix STALL handlingSergei Shtylyov
commit cea83241b3a84499c4f9b12f8288f787e7aa6383 upstream. The driver incorrectly cancels the mass-storage device CSW request (which leads to device reset) due to giving back URB at the head of endpoint's queue after sending each STALL handshake; stop doing that and start checking for the queue being non-empty before stalling an endpoint and disallowing stall in such case in musb_gadget_set_halt() like the other gadget drivers do. Moreover, the driver starts Rx request despite of the endpoint being halted -- fix this by moving the SendStall bit check from musb_g_rx() to rxstate(). And we also sometimes get into rxstate() with DMA still active after clearing an endpoint's halt (not clear why), so bail out in this case, similarly to what txstate() does... While at it, also do the following changes : - in musb_gadget_set_halt(), remove pointless Tx FIFO flushing (the driver does not allow stalling with non-empty Tx FIFO anyway); - in rxstate(), stop pointlessly zeroing the 'csr' variable; - in musb_gadget_set_halt(), move the 'done' label to a more proper place; - in musb_g_rx(), eliminate the 'done' label completely... Signed-off-by: Sergei Shtylyov <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08USB: EHCI: don't send Clear-TT-Buffer following a STALLAlan Stern
commit c2f6595fbdb408d3d6850cfae590c8fa93e27399 upstream. This patch (as1304) fixes a regression in ehci-hcd. Evidently some hubs don't handle Clear-TT-Buffer requests correctly, so we should avoid sending them when they don't appear to be absolutely necessary. The reported symptom is that output on a downstream audio device cuts out because the hub stops relaying isochronous packets. The patch prevents Clear-TT-Buffer requests from being sent following a STALL handshake. In theory a STALL indicates either that the downstream device sent a STALL or that no matching TT buffer could be found. In either case, the transfer is completed and the TT buffer does not remain busy, so it doesn't need to be cleared. Also, the patch fixes a minor flaw in the code that actually sends the Clear-TT-Buffer requests. Although the pipe direction isn't really used for control transfers, it should be a Send rather than a Receive. Signed-off-by: Alan Stern <> Reported-by: Javier Kohen <> CC: David Brownell <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08speedstep-ich: fix error caused by 394122ab144dae4b276d74644a2f11c44a60ac5cRusty Russell
commit 8dca15e40889e5d5e9655b03ba79c26200f760ce upstream. "[CPUFREQ] cpumask: avoid playing with cpus_allowed in speedstep-ich.c" changed the code to mistakenly pass the current cpu as the "processor" argument of speedstep_get_frequency(), whereas it should be the type of the processor. Addresses Based on a patch by Dave Mueller. Signed-off-by: Rusty Russell <> Acked-by: Dominik Brodowski <> Reported-by: Dave Mueller <> Signed-off-by: Andrew Morton <> Signed-off-by: Dave Jones <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08ipv4: additional update of dev_net(dev) to struct *net in ip_fragment.c, ↵David Ford
NULL ptr OOPS commit bbf31bf18d34caa87dd01f08bf713635593697f2 upstream. ipv4 ip_frag_reasm(), fully replace 'dev_net(dev)' with 'net', defined previously patched into 2.6.29. Between and 2.6.29, net/ipv4/ip_fragment.c was patched, changing from dev_net(dev) to container_of(...). Unfortunately the goto section (out_fail) on oversized packets inside ip_frag_reasm() didn't get touched up as well. Oversized IP packets cause a NULL pointer dereference and immediate hang. I discovered this running openvasd and my previous email on this is titled: NULL pointer dereference at 2.6.32-rc8:net/ipv4/ip_fragment.c:566 Signed-off-by: David Ford <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08V4L/DVB (13314): saa7134: set ts_force_val for the Hauppauge WinTV HVR-1150Michael Krufky
commit 22370ef5035f206283505409c9a64a595c5c7320 upstream. The Hauppauge WinTV HVR-1150 retail boards require the FORCE_TS_VALID bit to be set in order to function properly. This change will work on the early revisions on the board as well, but the final revision will not function without this change. Signed-off-by: Michael Krufky <> Signed-off-by: Mauro Carvalho Chehab <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08V4L/DVB (13313): saa7134: add support for FORCE_TS_VALID mode for mpeg ts inputMichael Krufky
commit 4007a672abd88091e3cced158ec491d41c0c454c upstream. When FORCE_TS_VALID mode is enabled, the saa713x will accept MPEG TS input without requiring TS_VALID set high. This is required for some new boards to function properly, due to the hardware design implementation. The configuration is toggled within the board setup configuration. Boards that do not have this bit set will function as before with no change. Signed-off-by: Michael Krufky <> Signed-off-by: Mauro Carvalho Chehab <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08V4L/DVB (13202): smsusb: add autodetection support for three additional ↵Michael Krufky
Hauppauge USB IDs commit 78c948ab0cc44f9c8ae397d7d9d217bb498bfa2f upstream. Add support for three new Hauppauge Device USB IDs: 2040:b900 2040:b910 2040:c000 Signed-off-by: Michael Krufky <> Signed-off-by: Mauro Carvalho Chehab <>
2009-12-08sched: Fix isolcpus boot optionRusty Russell
commit bdddd2963c0264c56f18043f6fa829d3c1d3d1c0 upstream. Anton Blanchard wrote: > We allocate and zero cpu_isolated_map after the isolcpus > __setup option has run. This means cpu_isolated_map always > ends up empty and if CPUMASK_OFFSTACK is enabled we write to a > cpumask that hasn't been allocated. I introduced this regression in 49557e620339cb13 (sched: Fix boot crash by zalloc()ing most of the cpu masks). Use the bootmem allocator if they set isolcpus=, otherwise allocate and zero like normal. Reported-by: Anton Blanchard <> Signed-off-by: Rusty Russell <> Cc: Cc: Linus Torvalds <> LKML-Reference: <> Signed-off-by: Ingo Molnar <> Tested-by: Anton Blanchard <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08sched: Fix boot crash by zalloc()ing most of the cpu masksRusty Russell
commit 49557e620339cb134127b5bfbcfecc06b77d0232 upstream. I got a boot crash when forcing cpumasks offstack on 32 bit, because find_new_ilb() returned 3 on my UP system (nohz.cpu_mask wasn't zeroed). AFAICT the others need to be zeroed too: only nohz.ilb_grp_nohz_mask is initialized before use. Signed-off-by: Rusty Russell <> Cc: Peter Zijlstra <> LKML-Reference: <> Signed-off-by: Ingo Molnar <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08sparc: Move of_set_property_mutex acquisition outside of devtree_lock grab.David S. Miller
[ Upstream commit 1c9d80ddc60f8ac26344ec3db9830e5f8016c16d ] Otherwise we try to sleep with preemption disabled, etc. Noticed by Thomas Gleixner. Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08sparc64: replace parentheses in pmul()Roel Kluin
[ Upstream commit 88b938e63e68fd35e603421f722be0f35dde1016 ] `>>' has a higher precedence than `?' so src2 evaluated to either 16 or 0 dependent on the bits set in rs2. Signed-off-by: Roel Kluin <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08sfc: Set ip_summed correctly for page buffers passed to GROBen Hutchings
[ Upstream commit 345056af41feeda506a8993474b9cbb2c66bc9fb ] Page buffers containing packets with an incorrect checksum or using a protocol not handled by hardware checksum offload were previously not passed to LRO. The conversion to GRO changed this, but did not set the ip_summed value accordingly. Signed-off-by: Ben Hutchings <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08bonding: Modify hash transmit policies to use the packet's source MAC addressJasper Spaans
[ Upstream commit d3da68310a2cf934c2ea8a99a519d8b1ccca4c56 ] Modify bonding hash transmit policies to use the psource MAC address of the packet instead of the MAC address configured for the bonding device. The old sitation conflicts with the documentation. Signed-off-by: Jasper Spaans <> Acked-by: Eric Dumazet <> Signed-off-by: Jay Vosburgh <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08net: fix sk_forward_alloc corruptionEric Dumazet
[ Upstream commit: 9d410c796067686b1e032d54ce475b7055537138 ] On UDP sockets, we must call skb_free_datagram() with socket locked, or risk sk_forward_alloc corruption. This requirement is not respected in SUNRPC. Add a convenient helper, skb_free_datagram_locked() and use it in SUNRPC Reported-by: Francis Moreau <> Signed-off-by: Eric Dumazet <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08pkt_sched: pedit use proper structJamal Hadi Salim
[ Upstream commit 53f7e35f8b7fc2f5620a863ac613bcf3080cb6ba ] This probably deserves to go into -stable. Pedit will reject a policy that is large because it uses the wrong structure in the policy validation. This fixes it. Signed-off-by: Jamal Hadi Salim <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08acenic: Pass up error code from ace_load_firmware()Ben Hutchings
[ Upstream commit 6c60e0c30c80fcd53e61701b7865a85283f8a341 ] If ace_load_firmware() fails, ace_init() cleans up but still returns 0, leading to an oops as seen in <>. It should pass the error code up. Signed-off-by: Ben Hutchings <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2009-12-08udp: Fix udp_poll() and ioctl()Eric Dumazet
[ Upstream commit 85584672012ee0c3b7b8e033a1ecf7c11878e45f ] udp_poll() can in some circumstances drop frames with incorrect checksums. Problem is we now have to lock the socket while dropping frames, or risk sk_forward corruption. This bug is present since commit 95766fff6b9a78d1 ([UDP]: Add memory accounting.) While we are at it, we can correct ioctl(SIOCINQ) to also drop bad frames. Signed-off-by: Eric Dumazet <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>