path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2014-10-15r8169: add ethtool eeprom change/dump featurertl-eeprom-3.17Peter Wu2-3/+156
This adds the ability to read and change EEPROM for 93C46/93C56 serial EEPROM. Two-Wire serial interface and SPI are not supported. (Do not even try this for SPI or other chips, it may break your hardware.) Works with RTL8169SCL (driver detects RTL8169sb), with some quirks. Not sure if it is a hardware bug, but to be able to read EEPROM, one has to write something, e.g.: printf '\0\0' | ethtool -E eth0 magic 0x8169 offset 0x40 length 2 Otherwise, only zeroes are read. Another note for this NIC, one has to "enable" the eeprom by writing to it (as shown above) and then make the NIC to reload the contents from firmware such that the PCI ID gets detected correctly (10ec:8169 instead of 10ec:8129). Reload by writing 0x40 (Auto-load) to register 0x50 (9346CR): printf '\x40' | dd seek=80 bs=1 \ of=/sys/bus/pci/devices/0000:03:00.0/resource0 Then detach and rescan the PCI device (use `lspci -tv` to find parent): echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/remove echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/rescan After this, this RTL8169sb PCI GbE NIC appears to work. On a second RTL8188E onboard GbE chip, EEPROM cannot be dumped, writing also does nothing. Here, reads all return FFs. Signed-off-by: Peter Wu <>
2014-10-15libata: Un-break ATA blacklistGeorge Spelvin1-2/+2
commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream. lib/glob.c provides a new glob_match() function, with arguments in (pattern, string) order. It replaced a private function with arguments in (string, pattern) order, but I didn't swap the call site... The result was the entire ATA blacklist was effectively disabled. The lesson for today is "I f***ed up *how* badly *how* many months ago?", er, I mean "Nobody Tests RC Kernels On Legacy Hardware". This was not a subtle break, but it made it through an entire RC cycle unreported, presumably because all the people doing testing have full-featured hardware. (FWIW, the reason for the argument swap was because fnmatch() does it that way, and for a while implementing a full fnmatch() was being considered.) Fixes: 428ac5fc056e0 (libata: Use glob_match from lib/glob.c) Reported-by: Steven Honeyman <> Bugzilla: Signed-off-by: George Spelvin <> Tested-by: Steven Honeyman <> Signed-off-by: Tejun Heo <> Cc: Henrique de Moraes Holschuh <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15serial: 8250: Add Quark X1000 to 8250_pci.cBryan O'Donoghue1-0/+21
commit 1ede7dcca3c4fa15a518ab0473126f9c3e621e4c upstream. Quark X1000 contains two designware derived 8250 serial ports. Each port has a unique PCI configuration space consisting of BAR0:UART BAR1:DMA respectively. Unlike the standard 8250 the register width is 32 bits for RHR,IER etc The Quark UART has a fundamental clock @ 44.2368 MHz allowing for a bitrate of up to about 2.76 megabits per second. This patch enables standard 8250 mode Signed-off-by: Bryan O'Donoghue <> Reviewed-by: Heikki Krogerus <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15driver/base/node: remove unnecessary kfree of node struct from ↵Yasuaki Ishimatsu1-1/+0
unregister_one_node commit 33ead538f642a33b1d658782a5d14a40b5014d1f upstream. Commit 92d585ef067d ("numa: fix NULL pointer access and memory leak in unregister_one_node()") added kfree() of node struct in unregister_one_node(). But node struct is freed by node_device_release() which is called in unregister_node(). So by adding the kfree(), node struct is freed two times. While hot removing memory, the commit leads the following BUG_ON(): kernel BUG at mm/slub.c:3346! invalid opcode: 0000 [#1] SMP [...] Call Trace: [...] unregister_one_node [...] try_offline_node [...] remove_memory [...] acpi_memory_device_remove [...] acpi_bus_trim [...] acpi_bus_trim [...] acpi_device_hotplug [...] acpi_hotplug_work_fn [...] process_one_work [...] worker_thread [...] ? rescuer_thread [...] kthread [...] ? kthread_create_on_node [...] ret_from_fork [...] ? kthread_create_on_node This patch removes unnecessary kfree() from unregister_one_node(). Signed-off-by: Yasuaki Ishimatsu <> Cc: Xishi Qiu <> Fixes: 92d585ef067d "numa: fix NULL pointer access and memory leak in unregister_one_node()" Signed-off-by: Andrew Morton <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15crypto: caam - fix addressing of struct memberCristian Stoica1-3/+3
commit 4451d494b1910bf7b7f8381a637d0fe6d2142467 upstream. buf_0 and buf_1 in caam_hash_state are not next to each other. Accessing buf_1 is incorrect from &buf_0 with an offset of only size_of(buf_0). The same issue is also with buflen_0 and buflen_1 Signed-off-by: Cristian Stoica <> Signed-off-by: Herbert Xu <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15USB: Add device quirk for ASUS T100 Base Station keyboardLu Baolu2-2/+8
commit ddbe1fca0bcb87ca8c199ea873a456ca8a948567 upstream. This full-speed USB device generates spurious remote wakeup event as soon as USB_DEVICE_REMOTE_WAKEUP feature is set. As the result, Linux can't enter system suspend and S0ix power saving modes once this keyboard is used. This patch tries to introduce USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk. With this quirk set, wakeup capability will be ignored during device configure. This patch could be back-ported to kernels as old as 2.6.39. Signed-off-by: Lu Baolu <> Acked-by: Alan Stern <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15usb: musb: dsps: kill OTG timer on suspendFelipe Balbi1-0/+2
commit 468bcc2a2ca071f652009d2d20d97f2437630cae upstream. if we don't make sure to kill the timer, it could expire after we have already gated our clocks. That will trigger a Data Abort exception because we would try to access register while clock is gated. Fix that bug. Fixes 869c597 (usb: musb: dsps: add support for suspend and resume) Tested-by: Dave Gerlach <> Signed-off-by: Felipe Balbi <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15USB: cp210x: add support for Seluxit USB dongleAndreas Bomholtz1-0/+1
commit dee80ad12d2b1b304286a707fde7ab05d1fc7bab upstream. Added the Seluxit ApS USB Serial Dongle to cp210x driver. Signed-off-by: Andreas Bomholtz <> Signed-off-by: Johan Hovold <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15USB: serial: cp210x: added Ketra N1 wireless interface supportJoe Savage1-0/+1
commit bfc2d7dfdd761ae3beccdb26abebe03cef042f46 upstream. Added support for Ketra N1 wireless interface, which uses the Silicon Labs' CP2104 USB to UART bridge with customized PID 8946. Signed-off-by: Joe Savage <> Signed-off-by: Johan Hovold <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15Revert "usb: gadget: composite: dequeue cdev->req before free it in ↵Felipe Balbi1-1/+0
composite_dev_cleanup" commit bf17eba7ae1e813b0ad67cb1078dcbd7083b906e upstream. This reverts commit f2267089ea17fa97b796b1b4247e3f8957655df3. That commit causes more problem than fixes. Firstly, kfree() should be called after usb_ep_dequeue() and secondly, the way things are, we will try to dequeue a request that has already completed much more frequently than one which is pending. Cc: Li Jun <> Signed-off-by: Felipe Balbi <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15usb: gadget: f_fs: signedness bug in __ffs_func_bind_do_descs()Dan Carpenter1-1/+2
commit 85b06f5e53d17c15844ef3cd45d0c7107f0ae45c upstream. We need "idx" to be signed for the error handling to work. Fixes: 6d5c1c77bbf9 ('usb: gadget: f_fs: fix the redundant ep files problem') Acked-by: Michal Nazarewicz <> Signed-off-by: Dan Carpenter <> Signed-off-by: Felipe Balbi <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15uas: Add another ASM1051 usb-id to the uas blacklistHans de Goede1-0/+8
commit 710f1bf16ab1b1558f099b62c5011c4cbba6a7bb upstream. As most ASM1051 based devices, this one has unfixable issues with uas too. Signed-off-by: Hans de Goede <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15uas: Add US_FL_NO_ATA_1X quirk for Seagate (0bc2:ab20) drivesHans de Goede1-0/+7
commit f9554a6b199360c2f888173fd600e1eb7ff165ef upstream. Signed-off-by: Hans de Goede <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15uas: Add no-report-opcodes quirkHans de Goede3-1/+15
commit 734016b00b50a3c6a0e1fc1b7b217e783f5123a1 upstream. Besides the ASM1051 (*) needing sdev->no_report_opcodes = 1, it turns out that the JMicron JMS567 also needs it to work properly with uas (usb-storage always sets it). Since some of the scsi devs were not to keen on the idea to outrightly set sdev->no_report_opcodes = 1 for all uas devices, so add a quirk for this, and set it for the JMS567. *) Which has become a non-issue since we've completely blacklisted uas on the ASM1051 for other reasons Reported-and-tested-by: Claudio Bizzarri <> Signed-off-by: Hans de Goede <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15uas: Add a quirk for rejecting ATA_12 and ATA_16 commandsHans de Goede3-11/+31
commit 593078525c8b234a35a36ff551b8716464e86481 upstream. And set this quirk for the Seagate Expansion Desk (0bc2:2312), as that one seems to hang upon receiving an ATA_12 or ATA_16 command. While at it also add missing documentation for the u value for usb-storage quirks. Signed-off-by: Hans de Goede <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15PCI: pciehp: Fix wait time in timeout messageYinghai Lu1-1/+1
commit d433889cd5a0933fbd90f1e65bff5a8d7963cc52 upstream. When we warned about a timeout on a hotplug command, we previously printed the time between calls to pcie_write_cmd(), without accounting for any time spent actually waiting. Consider this sequence: pcie_write_cmd write SLTCTL cmd_started = jiffies # T1 pcie_write_cmd pcie_wait_cmd now = jiffies # T2 wait_event_timeout # we may wait here if (timeout) ctrl_info("Timeout on command issued %u msec ago", jiffies_to_msecs(now - cmd_started)) We previously printed (T2 - T1), but that doesn't include the time spent in wait_event_timeout(). Fix this by using the current jiffies value, not the one cached before calling wait_event_timeout(). [bhelgaas: changelog, use current jiffies instead of adding timeout] Fixes: 40b960831cfa ("PCI: pciehp: Compute timeout from hotplug command start time") Signed-off-by: Yinghai Lu <> Signed-off-by: Bjorn Helgaas <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-153c59x: fix bad split of cpu_to_le32(pci_map_single())Sylvain \\\"ythier\\\" Hitier1-1/+1
[ Upstream commit 88b09a6d958af6c458acf055ee2eb5bc9564efda ] In commit 6f2b6a3005b2c34c39f207a87667564f64f2f91a, # 3c59x: Add dma error checking and recovery the intent is to split out the mapping from the byte-swapping in order to insert a dma_mapping_error() check. Kinda this semantic patch: // See // // Beware, grouik-and-dirty! @@ expression DEV, X, Y, Z; @@ - cpu_to_le32(pci_map_single(DEV, X, Y, Z)) + dma_addr_t addr = pci_map_single(DEV, X, Y, Z); + if (dma_mapping_error(&DEV->dev, addr)) + /* snip */; + cpu_to_le32(addr) However, the #else part (of the #if DO_ZEROCOPY test) is changed this way: - cpu_to_le32(pci_map_single(DEV, X, Y, Z)) + dma_addr_t addr = cpu_to_le32(pci_map_single(DEV, X, Y, Z)); // ^^^^^^^^^^^ // That mismatches the 3 other changes! + if (dma_mapping_error(&DEV->dev, addr)) + /* snip */; + cpu_to_le32(addr) Let's remove the leftover cpu_to_le32() for coherency. v2: Better changelog. v3: Add Acked-by Fixes: 6f2b6a3005b2c34c39f207a87667564f64f2f91a # 3c59x: Add dma error checking and recovery Acked-by: Neil Horman <> Signed-off-by: Sylvain "ythier" Hitier <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15hyperv: Fix a bug in netvsc_send()KY Srinivasan1-7/+8
[ Upstream commit 3a67c9ccad926a168d8b7891537a452018368a5b ] After the packet is successfully sent, we should not touch the packet as it may have been freed. This patch is based on the work done by Long Li <>. David, please queue this up for stable. Signed-off-by: K. Y. Srinivasan <> Reported-by: Sitsofe Wheeler <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15team: avoid race condition in scheduling delayed workJoe Lawrence1-2/+2
[ Upstream commit 47549650abd13d873fd2e5fc218db19e21031074 ] When team_notify_peers and team_mcast_rejoin are called, they both reset their respective .count_pending atomic variable. Then when the actual worker function is executed, the variable is atomically decremented. This pattern introduces a potential race condition where the .count_pending rolls over and the worker function keeps rescheduling until .count_pending decrements to zero again: THREAD 1 THREAD 2 ======== ======== team_notify_peers(teamX) atomic_set count_pending = 1 schedule_delayed_work team_notify_peers(teamX) atomic_set count_pending = 1 team_notify_peers_work atomic_dec_and_test count_pending = 0 (return) schedule_delayed_work team_notify_peers_work atomic_dec_and_test count_pending = -1 schedule_delayed_work (repeat until count_pending = 0) Instead of assigning a new value to .count_pending, use atomic_add to tack-on the additional desired worker function invocations. Signed-off-by: Joe Lawrence <> Acked-by: Jiri Pirko <> Fixes: fc423ff00df3a19554414ee ("team: add peer notification") Fixes: 492b200efdd20b8fcfdac87 ("team: add support for sending multicast rejoins") Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-15net: systemport: fix bcm_sysport_insert_tsb()Florian Fainelli1-6/+7
[ Upstream commit e87474a6e697857df21cff0707a2472abceca8b3 ] Similar to commit bc23333ba11fb7f959b7e87e121122f5a0fbbca8 ("net: bcmgenet: fix bcmgenet_put_tx_csum()"), we need to return the skb pointer in case we had to reallocate the SKB headroom. Fixes: 80105befdb4b8 ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver") Signed-off-by: Florian Fainelli <> Signed-off-by: David S. Miller <> Signed-off-by: Greg Kroah-Hartman <>
2014-10-05Merge tag 'scsi-fixes' of ↵Linus Torvalds4-7/+62
git:// Pull SCSI fixes from James Bottomley: "This is a set of two small fixes, both to code which went in during the merge window: cxgb4i has a scheduling in atomic bug in its new ipv6 code and uas fails to work properly with the new scsi-mq code" * tag 'scsi-fixes' of git:// [SCSI] uas: disable use of blk-mq I/O path [SCSI] cxgb4i: avoid holding mutex in interrupt context
2014-10-03Merge branch 'i2c/for-current' of ↵Linus Torvalds2-5/+9
git:// Pull i2c fixes from Wolfram Sang: "Two i2c driver bugfixes" * 'i2c/for-current' of git:// i2c: qup: Fix order of runtime pm initialization i2c: rk3x: fix 0 length write transfers
2014-10-03Merge tag 'md/3.17-final-fix' of git:// Torvalds1-1/+17
Pull raid5 discard fix from Neil Brown: "One fix for raid5 discard issue" * tag 'md/3.17-final-fix' of git:// md/raid5: disable 'DISCARD' by default due to safety concerns.
2014-10-03Merge branch 'drm-fixes' of git:// Torvalds8-62/+65
Pull drm fixes from Dave Airlie: "Nothing too major or scary. One i915 regression fix, nouveau has a tmds regression fix, along with a regression fix for the runtime pm code for optimus laptops not restoring the display hw correctly" * 'drm-fixes' of git:// drm/nouveau: make sure display hardware is reinitialised on runtime resume drm/nouveau: punt fbcon resume out to a workqueue drm/nouveau: fix regression on original nv50 board drm/nv50/disp: fix dpms regression on certain boards drm/i915: Flush the PTEs after updating them before suspend
2014-10-03[SCSI] uas: disable use of blk-mq I/O pathChristoph Hellwig1-0/+7
The uas driver uses the block layer tag for USB3 stream IDs. With blk-mq we can get larger tag numbers that the queue depth, which breaks this assumption. A fix is under way for 3.18, but sits on top of large changes so can't easily be backported. Set the disable_blk_mq path so that a uas device can't easily crash the system when using blk-mq for SCSI. Signed-off-by: Christoph Hellwig <> Acked-by: Hans de Goede <> Signed-off-by: James Bottomley <>
2014-10-02Merge tag 'pm+acpi-3.17-final' of ↵Linus Torvalds4-11/+18
git:// Pull ACPI and power management fixes from Rafael Wysocki: "These are three regression fixes (cpufreq core, pcc-cpufreq, i915 / ACPI) and one trivial fix for a callback return value mismatch in the cpufreq integrator driver. Specifics: - A recent cpufreq core fix went too far and introduced a regression in the system suspend code path. Fix from Viresh Kumar. - An ACPI-related commit in the i915 driver that fixed backlight problems for some Thinkpads inadvertently broke a Dell machine (in 3.16). Fix from Aaron Lu. - The pcc-cpufreq driver was broken during the 3.15 cycle by a commit that put wait_event() under a spinlock by mistake. Fix that (Rafael J Wysocki). - The return value type of integrator_cpufreq_remove() is void, but should be int. Fix from Arnd Bergmann" * tag 'pm+acpi-3.17-final' of git:// cpufreq: update 'cpufreq_suspended' after stopping governors ACPI / i915: Update the condition to ignore firmware backlight change request cpufreq: integrator: fix integrator_cpufreq_remove return type cpufreq: pcc-cpufreq: Fix wait_event() under spinlock
2014-10-03Merge tag 'drm-intel-fixes-2014-10-02' of ↵Dave Airlie1-1/+13
git:// into drm-fixes final regression fix for 3.17. * tag 'drm-intel-fixes-2014-10-02' of git:// drm/i915: Flush the PTEs after updating them before suspend
2014-10-03i2c: qup: Fix order of runtime pm initializationAndy Gross1-4/+8
The runtime pm calls need to be done before populating the children via the i2c_add_adapter call. If this is not done, a child can run into issues trying to do i2c read/writes due to the pm_runtime_sync failing. Signed-off-by: Andy Gross <> Reviewed-by: Felipe Balbi <> Acked-by: Bjorn Andersson <> Signed-off-by: Wolfram Sang <> Cc:
2014-10-03i2c: rk3x: fix 0 length write transfersAlexandru M Stan1-1/+1
i2cdetect -q was broken (everything was a false positive, and no transfers were actually being sent over i2c). The way it works is by sending a 0 length write request and checking for NACK. This patch fixes the 0 length writes and actually sends them. Reported-by: Doug Anderson <> Signed-off-by: Alexandru M Stan <> Tested-by: Doug Anderson <> Tested-by: Max Schwarz <> Signed-off-by: Wolfram Sang <> Cc:
2014-10-03Merge branches 'pm-cpufreq' and 'acpi-video'Rafael J. Wysocki4-11/+18
* pm-cpufreq: cpufreq: update 'cpufreq_suspended' after stopping governors cpufreq: integrator: fix integrator_cpufreq_remove return type cpufreq: pcc-cpufreq: Fix wait_event() under spinlock * acpi-video: ACPI / i915: Update the condition to ignore firmware backlight change request
2014-10-02Merge tag 'media/v3.17-rc8' of ↵Linus Torvalds1-0/+1
git:// Pull media fix from Mauro Carvalho Chehab: "One last time regression fix at em28xx. The removal of .reset_resume broke suspend/resume on this driver for some devices. There are more fixes to be done for em28xx suspend/resume to be better handled, but I'm opting to let them to stay for a while at the media devel tree, in order to get more tests. So, for now, let's just revert this patch" * tag 'media/v3.17-rc8' of git:// Revert "[media] media: em28xx - remove reset_resume interface"
2014-10-02Merge branch 'parisc-3.17-8' of ↵Linus Torvalds1-1/+2
git:// Pull parisc fix from Helge Deller: "One late but trivial patch to fix the serial console on parisc machines which got broken during the 3.17 release cycle" * 'parisc-3.17-8' of git:// parisc: Fix serial console for machines with serial port on superio chip
2014-10-01Merge git:// Torvalds12-87/+79
Pull networking fixes from David Miller: 1) Don't halt the firmware in r8152 driver, from Hayes Wang. 2) Handle full sized 802.1ad frames in bnx2 and tg3 drivers properly, from Vlad Yasevich. 3) Don't sleep while holding tx_clean_lock in netxen driver, fix from Manish Chopra. 4) Certain kinds of ipv6 routes can end up endlessly failing the route validation test, causing it to be re-looked up over and over again. This particularly kills input route caching in TCP sockets. Fix from Hannes Frederic Sowa. 5) netvsc_start_xmit() has a use-after-free access to skb->len, fix from K Y Srinivasan. 6) Fix matching of inverted containers in ematch module, from Ignacy Gawędzki. 7) Aggregation of GRO frames via SKB ->frag_list for linear skbs isn't handled properly, regression fix from Eric Dumazet. 8) Don't test return value of ipv4_neigh_lookup(), which returns an error pointer, against NULL. From WANG Cong. 9) Fix an old regression where we mistakenly allow a double add of the same tunnel. Fixes from Steffen Klassert. 10) macvtap device delete and open can run in parallel and corrupt lists etc., fix from Vlad Yasevich. 11) Fix build error with IPV6=m NETFILTER_XT_TARGET_TPROXY=y, from Pablo Neira Ayuso. 12) rhashtable_destroy() triggers lockdep splats, fix also from Pablo. * git:// (32 commits) bna: Update Maintainer Email r8152: disable power cut for RTL8153 r8152: remove clearing bp bnx2: Correctly receive full sized 802.1ad fragmes tg3: Allow for recieve of full-size 8021AD frames r8152: fix setting RTL8152_UNPLUG netxen: Fix bug in Tx completion path. netxen: Fix BUG "sleeping function called from invalid context" ipv6: remove rt6i_genid hyperv: Fix a bug in netvsc_start_xmit() net: stmmac: fix stmmac_pci_probe failed when CONFIG_HAVE_CLK is selected ematch: Fix matching of inverted containers. gro: fix aggregation for skb using frag_list neigh: check error pointer instead of NULL for ipv4_neigh_lookup() ip6_gre: Return an error when adding an existing tunnel. ip6_vti: Return an error when adding an existing tunnel. ip6_tunnel: Return an error when adding an existing tunnel. ip6gre: add a rtnl link alias for ip6gretap net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode r8152: fix the carrier off when autoresuming ...
2014-10-02md/raid5: disable 'DISCARD' by default due to safety concerns.NeilBrown1-1/+17
It has come to my attention (thanks Martin) that 'discard_zeroes_data' is only a hint. Some devices in some cases don't do what it says on the label. The use of DISCARD in RAID5 depends on reads from discarded regions being predictably zero. If a write to a previously discarded region performs a read-modify-write cycle it assumes that the parity block was consistent with the data blocks. If all were zero, this would be the case. If some are and some aren't this would not be the case. This could lead to data corruption after a device failure when data needs to be reconstructed from the parity. As we cannot trust 'discard_zeroes_data', ignore it by default and so disallow DISCARD on all raid4/5/6 arrays. As many devices are trustworthy, and as there are benefits to using DISCARD, add a module parameter to over-ride this caution and cause DISCARD to work if discard_zeroes_data is set. If a site want to enable DISCARD on some arrays but not on others they should select DISCARD support at the filesystem level, and set the raid456 module parameter. raid456.devices_handle_discard_safely=Y As this is a data-safety issue, I believe this patch is suitable for -stable. DISCARD support for RAID456 was added in 3.7 Cc: Shaohua Li <> Cc: "Martin K. Petersen" <> Cc: Mike Snitzer <> Cc: Heinz Mauelshagen <> Cc: (3.7+) Acked-by: Martin K. Petersen <> Acked-by: Mike Snitzer <> Fixes: 620125f2bf8ff0c4969b79653b54d7bcc9d40637 Signed-off-by: NeilBrown <>
2014-10-02drm/nouveau: make sure display hardware is reinitialised on runtime resumeBen Skeggs3-53/+26
Linus commit 05c63c2ff23a80b654d6c088ac3ba21628db0173 modified the runtime suspend/resume paths to skip over display-related tasks to avoid locking issues on resume. Unfortunately, this resulted in the display hardware being left in a partially initialised state, preventing subsequent modesets from completing. This commit unifies the (many) suspend/resume paths, bringing back display (and fbcon) handling in the runtime paths. Signed-off-by: Ben Skeggs <>
2014-10-02drm/nouveau: punt fbcon resume out to a workqueueBen Skeggs2-6/+18
Preparation for some runtime pm fixes. Currently we skip over fbcon suspend/resume in the runtime path, which causes issues on resume if fbcon tries to write to the framebuffer before the BAR subdev has been resumed to restore the BAR1 VM setup. As we might be woken up via a sysfs connector, we are unable to call fb_set_suspend() in the resume path as it could make its way down to a modeset and cause all sorts of locking hilarity. To solve this, we'll just delay the fbcon resume to a workqueue. Signed-off-by: Ben Skeggs <>
2014-10-02drm/nouveau: fix regression on original nv50 boardBen Skeggs1-1/+6
Xorg (and any non-DRM client really) doesn't have permission to directly touch VRAM on nv50 and up, which the fence code prior to g84 depends on. It's less invasive to temporarily grant it premission to do so, as it previously did, than it is to rework fencenv50 to use the VM. That will come later on. Signed-off-by: Ben Skeggs <>
2014-10-02drm/nv50/disp: fix dpms regression on certain boardsBen Skeggs1-1/+2
Reported in fdo#82527 comment #2. Signed-off-by: Ben Skeggs <>
2014-10-01r8152: disable power cut for RTL8153hayeswang1-1/+1
The firmware would be clear when the power cut is enabled for RTL8153. Signed-off-by: Hayes Wang <> Signed-off-by: David S. Miller <>
2014-10-01r8152: remove clearing bphayeswang1-27/+1
The xxx_clear_bp() is used to halt the firmware. It only necessary for updating the new firmware. Besides, depend on the version of the current firmware, it may have problem to halt the firmware directly. Finally, halt the firmware would let the firmware code useless, and the bugs which are fixed by the firmware would occur. Signed-off-by: Hayes Wang <> Signed-off-by: David S. Miller <>
2014-10-01bnx2: Correctly receive full sized 802.1ad fragmesVlad Yasevich1-2/+3
This driver, similar to tg3, has a check that will cause full sized 802.1ad frames to be dropped. The frame will be larger then the standard mtu due to the presense of vlan header that has not been stripped. The driver should not drop this frame and should process it just like it does for 802.1q. CC: Sony Chacko <> CC: Signed-off-by: Vladislav Yasevich <> Signed-off-by: David S. Miller <>
2014-10-01tg3: Allow for recieve of full-size 8021AD framesVlad Yasevich1-1/+2
When receiving a vlan-tagged frame that still contains a vlan header, the length of the packet will be greater then MTU+ETH_HLEN since it will account of the extra vlan header. TG3 checks this for the case for 802.1Q, but not for 802.1ad. As a result, full sized 802.1ad frames get dropped by the card. Add a check for 802.1ad protocol when receving full sized frames. Suggested-by: Prashant Sreedharan <> CC: Prashant Sreedharan <> CC: Michael Chan <> Signed-off-by: Vladislav Yasevich <> Signed-off-by: David S. Miller <>
2014-10-01parisc: Fix serial console for machines with serial port on superio chipHelge Deller1-1/+2
Fix the serial console on machines where the serial port is located on the SuperIO chip. Signed-off-by: Helge Deller <> Cc: Peter Hurley <>
2014-10-01[SCSI] cxgb4i: avoid holding mutex in interrupt contextAnish Bhatt3-7/+55
cxgbi_inet6addr_handler() can be called in interrupt context, so use rcu protected list while finding netdev. This is observed as a scheduling in atomic oops when running over ipv6. Fixes: fc8d0590d914 ("libcxgbi: Add ipv6 api to driver") Fixes: 759a0cc5a3e1 ("cxgb4i: Add ipv6 code to driver, call into libcxgbi ipv6 api") Signed-off-by: Anish Bhatt <> Signed-off-by: Karen Xie <> Signed-off-by: Christoph Hellwig <> Signed-off-by: James Bottomley <>
2014-09-30r8152: fix setting RTL8152_UNPLUGhayeswang1-1/+5
The flag of RTL8152_UNPLUG should only be set when the device is unplugged, not each time the rtl8152_disconnect() is called. Otherwise, the device wouldn't be stopped normally. Signed-off-by: Hayes Wang <> Signed-off-by: David S. Miller <>
2014-09-30netxen: Fix bug in Tx completion path.Manish Chopra1-2/+2
o Driver is not updating sw_consumer while processing Tx completion when interface is going down. Due to this interface down path gets stuck forever waiting for NAPI to complete. Signed-off-by: Manish Chopra <> Signed-off-by: David S. Miller <>
2014-09-30netxen: Fix BUG "sleeping function called from invalid context"Manish Chopra2-2/+2
o __netxen_nic_down() function might sleep while holding spinlock_t(tx_clean_lock). Acquire this lock for only releasing TX buffers instead of taking it for whole down path. Reported-by: Mike Galbraith <> Signed-off-by: Manish Chopra <> Signed-off-by: David S. Miller <>
2014-09-30cpufreq: update 'cpufreq_suspended' after stopping governorsViresh Kumar1-3/+4
Commit 8e30444e1530 ("cpufreq: fix cpufreq suspend/resume for intel_pstate") introduced a bug where the governors wouldn't be stopped anymore for ->target{_index}() drivers during suspend. This happens because 'cpufreq_suspended' is updated before stopping the governors during suspend and due to this __cpufreq_governor() would return early due to this check: /* Don't start any governor operations if we are entering suspend */ if (cpufreq_suspended) return 0; Fixes: 8e30444e1530 ("cpufreq: fix cpufreq suspend/resume for intel_pstate") Cc: 3.15+ <> # 3.15+: 8e30444e1530 "cpufreq: fix cpufreq suspend/resume for intel_pstate" Signed-off-by: Viresh Kumar <> Signed-off-by: Rafael J. Wysocki <>
2014-09-30hyperv: Fix a bug in netvsc_start_xmit()KY Srinivasan1-1/+2
After the packet is successfully sent, we should not touch the skb as it may have been freed. This patch is based on the work done by Long Li <>. In this version of the patch I have fixed issues pointed out by David. David, please queue this up for stable. Signed-off-by: K. Y. Srinivasan <> Tested-by: Long Li <> Tested-by: Sitsofe Wheeler <> Signed-off-by: David S. Miller <>
2014-09-30ACPI / i915: Update the condition to ignore firmware backlight change requestAaron Lu1-5/+11
Some of the Thinkpads' firmware will issue a backlight change request through i915 operation region unconditionally on AC plug/unplug, the backlight level used is arbitrary and thus should be ignored. This is handled by commit 0b9f7d93ca61 (ACPI / i915: ignore firmware requests for backlight change). Then there is a Dell laptop whose vendor backlight interface also makes use of operation region to change backlight level and with the above commit, that interface no long works. The condition used to ignore the backlight change request from firmware is thus changed to: if the vendor backlight interface is not in use and the ACPI backlight interface is broken, we ignore the requests; oterwise, we keep processing them. Fixes: 0b9f7d93ca61 (ACPI / i915: ignore firmware requests for backlight change) Link: Reported-and-tested-by: Pali Rohár <> Cc: 3.16+ <> # 3.16+ Signed-off-by: Aaron Lu <> Acked-by: Daniel Vetter <> Signed-off-by: Rafael J. Wysocki <>