1. 09 Jun, 2012 24 commits
    • Clemens Ladisch's avatar
      ALSA: usb-audio: fix rate_list memory leak · a6923156
      Clemens Ladisch authored
      commit 5cd5d7c4 upstream.
      
      The array of sample rates is reallocated every time when opening
      the PCM device, but was freed only once when unplugging the device.
      Reported-by: default avatar"Alexander E. Patrakov" <patrakov@gmail.com>
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a6923156
    • Michael Gruetzner's avatar
      Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C · 08bbb19d
      Michael Gruetzner authored
      commit 85d59726 upstream.
      
      Add Foxconn/Hon Hai AR5BBU22 Bluetooth Module( 0x489:0xE03C) to
      the blacklist of btusb module and add it to the ath3k module to properly
      load the firmware in Kernel 3.3.4
      The device is integrated in  e.g. some  Acer Aspire 7750G.
      
      Output from /sys/kernel/debug/usb/devices:
      
      T:  Bus=01 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#=  6 Spd=12   MxCh= 0
      D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=0489 ProdID=e03c Rev= 0.02
      S:  Manufacturer=Atheros Communications
      S:  Product=Bluetooth USB Host Controller
      S:  SerialNumber=Alaska Day 2006
      C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
      Signed-off-by: default avatarMichael Gruetzner <mgruetzn@gmx.de>
      Signed-off-by: default avatarGustavo Padovan <gustavo@padovan.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      08bbb19d
    • Steven Harms's avatar
      Add Foxconn / Hon Hai IDs for btusb module · 2ae5f906
      Steven Harms authored
      commit 98514036 upstream.
      
      This change adds 0x0489:0xe033 to the btusb module.
      
      This bluetooth usb device is integrated in the Acer TimelineX AS4830TG-6808 notebook.
      
      Output from /sys/kernel/debug/usb/devices:
      
      T:  Bus=01 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#=  4 Spd=12   MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=0489 ProdID=e033 Rev= 2.29
      S:  Manufacturer=Broadcom Corp
      S:  Product=Acer Module
      S:  SerialNumber=60D819F74101
      C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: default avatarSteven Harms <sjharms@gmail.com>
      Signed-off-by: default avatarGustavo Padovan <gustavo@padovan.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2ae5f906
    • Don Zickus's avatar
      Bluetooth: btusb: typo in Broadcom SoftSailing id · b278d462
      Don Zickus authored
      commit 2e8b5063 upstream.
      
      I was trying to backport the following commit to RHEL-6
      
          From 0cea73465cd22373c5cd43a3edd25fbd4bb532ef Mon Sep 17 00:00:00 2001
          From: Oliver Neukum <oliver@neukum.org>
          Date: Wed, 21 Sep 2011 11:37:15 +0200
          Subject: [PATCH] btusb: add device entry for Broadcom SoftSailing
      
      and noticed it wasn't working on an HP Elitebook.  Looking into the patch I
      noticed a very subtle typo in the ids.  The patch has '0x05ac' instead of
      '0x0a5c'.  A snippet of the lsusb -v output also shows this:
      
      Bus 002 Device 003: ID 0a5c:21e1 Broadcom Corp.
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass          255 Vendor Specific Class
        bDeviceSubClass         1
        bDeviceProtocol         1
        bMaxPacketSize0        64
        idVendor           0x0a5c Broadcom Corp.
        idProduct          0x21e1
        bcdDevice            1.12
        iManufacturer           1 Broadcom Corp
        iProduct                2 BCM20702A0
        iSerial                 3 60D819F0338C
        bNumConfigurations      1
      
      Looking at other Broadcom ids, the fix matches them whereas the original patch
      matches Apple's ids.
      
      Tested on an HP Elitebook 8760w.  The btusb binds and the userspace stuff loads
      correctly.
      
      Cc: Oliver Neukum <oliver@neukum.org>
      Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
      Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b278d462
    • Manoj Iyer's avatar
      Bluetooth: btusb: Add vendor specific ID (0489 e042) for BCM20702A0 · 604e4dfc
      Manoj Iyer authored
      commit 79cd7602 upstream.
      
      T: Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
      D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
      P: Vendor=0489 ProdID=e042 Rev=01.12
      S: Manufacturer=Broadcom Corp
      S: Product=BCM20702A0
      S: SerialNumber=E4D53DCA61B5
      C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Reported-by: default avatarDennis Chua <dennis.chua@canonical.com>
      Signed-off-by: default avatarManoj Iyer <manoj.iyer@canonical.com>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      604e4dfc
    • João Paulo Rechi Vita's avatar
      Bluetooth: btusb: Add USB device ID "0a5c 21e8" · 5cfd6dca
      João Paulo Rechi Vita authored
      commit 6dfc326f upstream.
      
      One more vendor-specific ID for BCM20702A0.
      
      T:  Bus=01 Lev=03 Prnt=05 Port=02 Cnt=01 Dev#=  9 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=0a5c ProdID=21e8 Rev=01.12
      S:  Manufacturer=Broadcom Corp
      S:  Product=BCM20702A0
      S:  SerialNumber=00027221F4E2
      C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: default avatarJoão Paulo Rechi Vita <jprvita@openbossa.org>
      Acked-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5cfd6dca
    • James M. Leddy's avatar
      Bluetooth: btusb: add support for BCM20702A0 [0a5c:21e6] · 6241414b
      James M. Leddy authored
      commit 0a4eaeeb upstream.
      
      Add another vendor specific ID for BCM20702A0.  This has been tested and
      works on hardware with this device.
      
      output of usb-devices:
      T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=04 Dev#= 6 Spd=12 MxCh= 0
      D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
      P: Vendor=0a5c ProdID=21e6 Rev=01.12
      S: Manufacturer=Broadcom Corp
      S: Product=BCM20702A0
      S: SerialNumber=D0DF9AFB227B
      C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: default avatarJames M. Leddy <james.leddy@canonical.com>
      Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6241414b
    • Manoj Iyer's avatar
      Bluetooth: btusb: Add vendor specific ID (0a5c 21f3) for BCM20702A0 · 3a4f179e
      Manoj Iyer authored
      commit 37305cf6 upstream.
      
      T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=03 Dev#= 5 Spd=12 MxCh= 0
      D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
      P: Vendor=0a5c ProdID=21f3 Rev=01.12
      S: Manufacturer=Broadcom Corp
      S: Product=BCM20702A0
      S: SerialNumber=74DE2B344A7B
      C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: default avatarManoj Iyer <manoj.iyer@canonical.com>
      Tested-by: default avatarDennis Chua <dennis.chua@canonical.com>
      Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3a4f179e
    • Jesse Sung's avatar
      Bluetooth: Add support for BCM20702A0 [0a5c:21e3] · 4a520924
      Jesse Sung authored
      commit c0190925 upstream.
      
      Add another vendor specific ID for BCM20702A0.
      
      output of usb-devices:
      T: Bus=06 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
      D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
      P: Vendor=0a5c ProdID=21e3 Rev=01.12
      S: Manufacturer=Broadcom Corp
      S: Product=BCM20702A0
      S: SerialNumber=9439E5CBF66C
      C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: default avatarWen-chien Jesse Sung <jesse.sung@canonical.com>
      Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4a520924
    • Wen-chien Jesse Sung's avatar
      Bluetooth: Add support for Broadcom BCM20702A0 · f109bcfe
      Wen-chien Jesse Sung authored
      commit d13431ca upstream.
      
      Since this device declares itself as vendor specific, must add
      a new entry to device ID table to support it.
      
      usb-device output of this device:
      
      T:  Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=413c ProdID=8197 Rev=01.12
      S:  Manufacturer=Broadcom Corp
      S:  Product=BCM20702A0
      S:  SerialNumber=D0DF9AA9C9F1
      C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: default avatarWen-chien Jesse Sung <jesse.sung@canonical.com>
      Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
      Cc: Jonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f109bcfe
    • Daniel Vetter's avatar
      drm/i915: wait for a vblank to pass after tv detect · 2d8666ac
      Daniel Vetter authored
      commit bf2125e2 upstream.
      
      Otherwise the hw will get confused and result in a black screen.
      
      This regression has been most likely introduce in
      
      commit 974b9331
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Sun Sep 5 00:44:20 2010 +0100
      
          drm/i915/tv: Poll for DAC state change
      
      That commit replace the first msleep(20) with a busy-loop, but failed
      to keep the 2nd msleep around. Later on we've replaced all these
      msleep(20) by proper vblanks.
      
      For reference also see the commit in xf86-video-intel:
      
      commit 1142be53eb8d2ee8a9b60ace5d49f0ba27332275
      Author: Jesse Barnes <jbarnes@hobbes.lan>
      Date:   Mon Jun 9 08:52:59 2008 -0700
      
          Fix TV programming:  add vblank wait after TV_CTL writes
      
          Fxies FDO bug #14000; we need to wait for vblank after
          writing TV_CTL or following "DPMS on" calls may not actually enable the output.
      
      v2: As suggested by Chris Wilson, add a small comment to ensure that
      no one accidentally removes this vblank wait again - there really
      seems to be no sane explanation for why we need it, but it is
      required.
      
      Launchpad: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/763688Reported-and-Tested-by: default avatarRobert Lowery <rglowery@exemail.com.au>
      Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
      Acked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2d8666ac
    • Daniel Vetter's avatar
      drm/i915: properly handle interlaced bit for sdvo dtd conversion · da94f654
      Daniel Vetter authored
      commit 59d92bfa upstream.
      
      We've simply ignored this, which isn't too great. With this, interlaced
      1080i works on my HDMI screen connected through sdvo. For no apparent
      reason anything else still doesn't work as it should.
      
      While at it, give these magic numbers in the dtd proper names and
      add a comment that they match with EDID detailed timings.
      
      v2: Actually use the right bit for interlaced.
      Tested-by: default avatarPeter Ross <pross@xvid.org>
      Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      da94f654
    • Alex Deucher's avatar
      drm/radeon: fix XFX quirk · 0fe9c3d3
      Alex Deucher authored
      commit 1ebf169a upstream.
      
      Only override the ddc bus if the connector doesn't have
      a valid one.  The existing code overrode the ddc bus for
      all connectors even if it had ddc bus.
      
      Fixes ddc on another XFX card with the same pci ids that
      was broken by the quirk overwriting the correct ddc bus.
      Reported-by: default avatarMehdi Aqadjani Memar <m.aqadjanimemar@student.ru.nl>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0fe9c3d3
    • Trond Myklebust's avatar
      NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO · 6ab59025
      Trond Myklebust authored
      commit fb13bfa7 upstream.
      
      If a file OPEN is denied due to a share lock, the resulting
      NFS4ERR_SHARE_DENIED is currently mapped to the default EIO.
      This patch adds a more appropriate mapping, and brings Linux
      into line with what Solaris 10 does.
      
      See https://bugzilla.kernel.org/show_bug.cgi?id=43286Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ab59025
    • Eyal Shapira's avatar
      mac80211: fix ADDBA declined after suspend with wowlan · 6ec1d66c
      Eyal Shapira authored
      commit 7b21aea0 upstream.
      
      WLAN_STA_BLOCK_BA is set while suspending but doesn't get cleared
      when resuming in case of wowlan. This causes further ADDBA requests
      received to be rejected. Fix it by clearing it in the wowlan path
      as well.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Reviewed-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ec1d66c
    • David Woodhouse's avatar
      solos-pci: Fix DMA support · 65ec0e1c
      David Woodhouse authored
      commit b4bd8ad9 upstream.
      
      DMA support has finally made its way to the top of the TODO list, having
      realised that a Geode using MMIO can't keep up with two ADSL2+ lines
      each running at 21Mb/s.
      
      This patch fixes a couple of bugs in the DMA support in the driver, so
      once the corresponding FPGA update is complete and tested everything
      should work properly.
      
      We weren't storing the currently-transmitting skb, so we were never
      unmapping it and never freeing/popping it when the TX was done.
      And the addition of pci_set_master() is fairly self-explanatory.
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      65ec0e1c
    • James Bottomley's avatar
      PARISC: fix TLB fault path on PA2.0 narrow systems · b5035120
      James Bottomley authored
      commit 2f649c1f upstream.
      
      commit 5e185581
      Author: James Bottomley <JBottomley@Parallels.com>
      
          [PARISC] fix PA1.1 oops on boot
      
      Didn't quite fix the crash on boot.  It moved it from PA1.1 processors to
      PA2.0 narrow kernels.  The final fix is to make sure the [id]tlb_miss_20 paths
      also work.  Even on narrow systems, these paths require using the wide
      instructions becuase the tlb insertion format is wide.  Fix this by
      conditioning the dep[wd],z on whether we're being called from _11 or _20[w]
      paths.
      Tested-by: default avatarHelge Deller <deller@gmx.de>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b5035120
    • John David Anglin's avatar
      PARISC: fix boot failure on 32-bit systems caused by branch stubs placed before .text · 488f1224
      John David Anglin authored
      commit ed5fb247 upstream.
      
      In certain configurations, the resulting kernel becomes too large to boot
      because the linker places the long branch stubs for the merged .text section
      at the very start of the image.  As a result, the initial transfer of control
      jumps to an unexpected location.  Fix this by placing the head text in a
      separate section so the stubs for .text are not at the start of the image.
      Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      488f1224
    • Shirish Pargaonkar's avatar
      cifs: fix oops while traversing open file list (try #4) · 93b71523
      Shirish Pargaonkar authored
      commit 2c0c2a08 upstream.
      
      While traversing the linked list of open file handles, if the identfied
      file handle is invalid, a reopen is attempted and if it fails, we
      resume traversing where we stopped and cifs can oops while accessing
      invalid next element, for list might have changed.
      
      So mark the invalid file handle and attempt reopen if no
      valid file handle is found in rest of the list.
      If reopen fails, move the invalid file handle to the end of the list
      and start traversing the list again from the begining.
      Repeat this four times before giving up and returning an error if
      file reopen keeps failing.
      Signed-off-by: default avatarShirish Pargaonkar <shirishpargaonkar@gmail.com>
      Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      93b71523
    • Meenakshi Venkataraman's avatar
      iwlwifi: update BT traffic load states correctly · e48fdd4d
      Meenakshi Venkataraman authored
      commit 882dde8e upstream.
      
      When BT traffic load changes from its
      previous state, a new LQ command needs to be
      sent down to the firmware. This needs to
      be done only once per change. The state
      variable that keeps track of this change is
      last_bt_traffic_load. However, it was not
      being updated when the change had been
      handled. Not updating this variable was
      causing a flood of advanced BT config
      commands to be sent to the firmware. Fix
      this.
      Signed-off-by: default avatarMeenakshi Venkataraman <meenakshi.venkataraman@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e48fdd4d
    • Andrea Arcangeli's avatar
      mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race condition · 2d363e95
      Andrea Arcangeli authored
      commit 26c19178 upstream.
      
      When holding the mmap_sem for reading, pmd_offset_map_lock should only
      run on a pmd_t that has been read atomically from the pmdp pointer,
      otherwise we may read only half of it leading to this crash.
      
      PID: 11679  TASK: f06e8000  CPU: 3   COMMAND: "do_race_2_panic"
       #0 [f06a9dd8] crash_kexec at c049b5ec
       #1 [f06a9e2c] oops_end at c083d1c2
       #2 [f06a9e40] no_context at c0433ded
       #3 [f06a9e64] bad_area_nosemaphore at c043401a
       #4 [f06a9e6c] __do_page_fault at c0434493
       #5 [f06a9eec] do_page_fault at c083eb45
       #6 [f06a9f04] error_code (via page_fault) at c083c5d5
          EAX: 01fb470c EBX: fff35000 ECX: 00000003 EDX: 00000100 EBP:
          00000000
          DS:  007b     ESI: 9e201000 ES:  007b     EDI: 01fb4700 GS:  00e0
          CS:  0060     EIP: c083bc14 ERR: ffffffff EFLAGS: 00010246
       #7 [f06a9f38] _spin_lock at c083bc14
       #8 [f06a9f44] sys_mincore at c0507b7d
       #9 [f06a9fb0] system_call at c083becd
                               start           len
          EAX: ffffffda  EBX: 9e200000  ECX: 00001000  EDX: 6228537f
          DS:  007b      ESI: 00000000  ES:  007b      EDI: 003d0f00
          SS:  007b      ESP: 62285354  EBP: 62285388  GS:  0033
          CS:  0073      EIP: 00291416  ERR: 000000da  EFLAGS: 00000286
      
      This should be a longstanding bug affecting x86 32bit PAE without THP.
      Only archs with 64bit large pmd_t and 32bit unsigned long should be
      affected.
      
      With THP enabled the barrier() in pmd_none_or_trans_huge_or_clear_bad()
      would partly hide the bug when the pmd transition from none to stable,
      by forcing a re-read of the *pmd in pmd_offset_map_lock, but when THP is
      enabled a new set of problem arises by the fact could then transition
      freely in any of the none, pmd_trans_huge or pmd_trans_stable states.
      So making the barrier in pmd_none_or_trans_huge_or_clear_bad()
      unconditional isn't good idea and it would be a flakey solution.
      
      This should be fully fixed by introducing a pmd_read_atomic that reads
      the pmd in order with THP disabled, or by reading the pmd atomically
      with cmpxchg8b with THP enabled.
      
      Luckily this new race condition only triggers in the places that must
      already be covered by pmd_none_or_trans_huge_or_clear_bad() so the fix
      is localized there but this bug is not related to THP.
      
      NOTE: this can trigger on x86 32bit systems with PAE enabled with more
      than 4G of ram, otherwise the high part of the pmd will never risk to be
      truncated because it would be zero at all times, in turn so hiding the
      SMP race.
      
      This bug was discovered and fully debugged by Ulrich, quote:
      
      ----
      [..]
      pmd_none_or_trans_huge_or_clear_bad() loads the content of edx and
      eax.
      
          496 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t
          *pmd)
          497 {
          498         /* depend on compiler for an atomic pmd read */
          499         pmd_t pmdval = *pmd;
      
                                      // edi = pmd pointer
      0xc0507a74 <sys_mincore+548>:   mov    0x8(%esp),%edi
      ...
                                      // edx = PTE page table high address
      0xc0507a84 <sys_mincore+564>:   mov    0x4(%edi),%edx
      ...
                                      // eax = PTE page table low address
      0xc0507a8e <sys_mincore+574>:   mov    (%edi),%eax
      
      [..]
      
      Please note that the PMD is not read atomically. These are two "mov"
      instructions where the high order bits of the PMD entry are fetched
      first. Hence, the above machine code is prone to the following race.
      
      -  The PMD entry {high|low} is 0x0000000000000000.
         The "mov" at 0xc0507a84 loads 0x00000000 into edx.
      
      -  A page fault (on another CPU) sneaks in between the two "mov"
         instructions and instantiates the PMD.
      
      -  The PMD entry {high|low} is now 0x00000003fda38067.
         The "mov" at 0xc0507a8e loads 0xfda38067 into eax.
      ----
      Reported-by: default avatarUlrich Obergfell <uobergfe@redhat.com>
      Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Larry Woodman <lwoodman@redhat.com>
      Cc: Petr Matousek <pmatouse@redhat.com>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2d363e95
    • Michal Hocko's avatar
      mm: consider all swapped back pages in used-once logic · dce59c2f
      Michal Hocko authored
      commit e4898273 upstream.
      
      Commit 64574746 ("vmscan: detect mapped file pages used only once")
      made mapped pages have another round in inactive list because they might
      be just short lived and so we could consider them again next time.  This
      heuristic helps to reduce pressure on the active list with a streaming
      IO worklods.
      
      This patch fixes a regression introduced by this commit for heavy shmem
      based workloads because unlike Anon pages, which are excluded from this
      heuristic because they are usually long lived, shmem pages are handled
      as a regular page cache.
      
      This doesn't work quite well, unfortunately, if the workload is mostly
      backed by shmem (in memory database sitting on 80% of memory) with a
      streaming IO in the background (backup - up to 20% of memory).  Anon
      inactive list is full of (dirty) shmem pages when watermarks are hit.
      Shmem pages are kept in the inactive list (they are referenced) in the
      first round and it is hard to reclaim anything else so we reach lower
      scanning priorities very quickly which leads to an excessive swap out.
      
      Let's fix this by excluding all swap backed pages (they tend to be long
      lived wrt.  the regular page cache anyway) from used-once heuristic and
      rather activate them if they are referenced.
      
      The customer's workload is shmem backed database (80% of RAM) and they
      are measuring transactions/s with an IO in the background (20%).
      Transactions touch more or less random rows in the table.  The
      transaction rate fell by a factor of 3 (in the worst case) because of
      commit 64574746.  This patch restores the previous numbers.
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dce59c2f
    • Jun'ichi Nomura's avatar
      SCSI: Fix dm-multipath starvation when scsi host is busy · f4090d82
      Jun'ichi Nomura authored
      commit b7e94a16 upstream.
      
      block congestion control doesn't have any concept of fairness across
      multiple queues.  This means that if SCSI reports the host as busy in
      the queue congestion control it can result in an unfair starvation
      situation in dm-mp if there are multiple multipath devices on the same
      host.  For example:
      http://www.redhat.com/archives/dm-devel/2012-May/msg00123.html
      
      The fix for this is to report only the sdev busy state (and ignore the
      host busy state) in the block congestion control call back.
      The host is still congested, but the SCSI subsystem will sort out the
      congestion in a fair way because it knows the relation between the
      queues and the host.
      
      [jejb: fixed up trailing whitespace]
      Reported-by: default avatarBernd Schubert <bernd.schubert@itwm.fraunhofer.de>
      Tested-by: default avatarBernd Schubert <bernd.schubert@itwm.fraunhofer.de>
      Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f4090d82
    • James Bottomley's avatar
      SCSI: fix scsi_wait_scan · af9c3bad
      James Bottomley authored
      commit 1ff2f403 upstream.
      
      Commit  c7510859
      Author: Rafael J. Wysocki <rjw@sisk.pl>
      Date:   Sun Apr 12 20:06:56 2009 +0200
      
          PM/Hibernate: Wait for SCSI devices scan to complete during resume
      
      Broke the scsi_wait_scan module in 2.6.30.  Apparently debian still uses it so
      fix it and backport to stable before removing it in 3.6.
      
      The breakage is caused because the function template in
      include/scsi/scsi_scan.h is defined to be a nop unless SCSI is built in.
      That means that in the modular case (which is every distro), the
      scsi_wait_scan module does a simple async_synchronize_full() instead of
      waiting for scans.
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      af9c3bad
  2. 01 Jun, 2012 16 commits