1. 07 Mar, 2014 14 commits
  2. 22 Feb, 2014 26 commits
    • Borislav Petkov's avatar
      EDAC: Correct workqueue setup path · db06ad39
      Borislav Petkov authored
      commit cb6ef42e516cb8948f15e4b70dc03af8020050a2 upstream.
      
      We're using edac_mc_workq_setup() both on the init path, when
      we load an edac driver and when we change the polling period
      (edac_mc_reset_delay_period) through /sys/.../edac_mc_poll_msec.
      
      On that second path we don't need to init the workqueue which has been
      initialized already.
      
      Thanks to Tejun for workqueue insights.
      Signed-off-by: 's avatarBorislav Petkov <bp@suse.de>
      Link: http://lkml.kernel.org/r/1391457913-881-1-git-send-email-prarit@redhat.comSigned-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      db06ad39
    • Borislav Petkov's avatar
      EDAC: Poll timeout cannot be zero, p2 · ba20cf8a
      Borislav Petkov authored
      commit 9da21b1509d8aa7ab4846722817d16c72d656c91 upstream.
      
      Sanitize code even more to accept unsigned longs only and to not allow
      polling intervals below 1 second as this is unnecessary and doesn't make
      much sense anyway for polling errors.
      Signed-off-by: 's avatarBorislav Petkov <bp@suse.de>
      Link: http://lkml.kernel.org/r/1391457913-881-1-git-send-email-prarit@redhat.com
      Cc: Doug Thompson <dougthompson@xmission.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ba20cf8a
    • Prarit Bhargava's avatar
      drivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero · 64f452fc
      Prarit Bhargava authored
      commit 79040cad3f8235937e229f1b9401ba36dd5ad69b upstream.
      
      If you do
      
        echo 0 > /sys/module/edac_core/parameters/edac_mc_poll_msec
      
      the following stack trace is output because the edac module is not
      designed to poll with a timeout of zero.
      
        WARNING: CPU: 12 PID: 0 at lib/list_debug.c:33 __list_add+0xac/0xc0()
        list_add corruption. prev->next should be next (ffff8808291dd1b8), but was           (null). (prev=ffff8808286fe3f8).
        Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
        CPU: 12 PID: 0 Comm: swapper/12 Not tainted 3.13.0+ #1
        Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
        Call Trace:
         <IRQ>
          __list_add+0xac/0xc0
          __internal_add_timer+0xab/0x130
          internal_add_timer+0x17/0x40
          mod_timer_pinned+0xca/0x170
          intel_pstate_timer_func+0x28a/0x380
          call_timer_fn+0x36/0x100
          run_timer_softirq+0x1ff/0x2f0
          __do_softirq+0xf5/0x2e0
          irq_exit+0x10d/0x120
          smp_apic_timer_interrupt+0x45/0x60
          apic_timer_interrupt+0x6d/0x80
         <EOI>
          cpuidle_idle_call+0xb9/0x1f0
          arch_cpu_idle+0xe/0x30
          cpu_startup_entry+0x9e/0x240
          start_secondary+0x1e4/0x290
      
        kernel BUG at kernel/timer.c:1084!
        invalid opcode: 0000 [#1] SMP
        Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
        CPU: 12 PID: 0 Comm: swapper/12 Tainted: G        W    3.13.0+ #1
        Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
        Call Trace:
         <IRQ>
          run_timer_softirq+0x245/0x2f0
          __do_softirq+0xf5/0x2e0
          irq_exit+0x10d/0x120
          smp_apic_timer_interrupt+0x45/0x60
          apic_timer_interrupt+0x6d/0x80
         <EOI>
          cpuidle_idle_call+0xb9/0x1f0
          arch_cpu_idle+0xe/0x30
          cpu_startup_entry+0x9e/0x240
          start_secondary+0x1e4/0x290
        RIP   cascade+0x93/0xa0
      
        WARNING: CPU: 36 PID: 1154 at kernel/workqueue.c:1461 __queue_delayed_work+0xed/0x1a0()
        Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
        CPU: 36 PID: 1154 Comm: kworker/u481:3 Tainted: G        W    3.13.0+ #1
        Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
        Workqueue: edac-poller edac_mc_workq_function [edac_core]
        Call Trace:
          dump_stack+0x45/0x56
          warn_slowpath_common+0x7d/0xa0
          warn_slowpath_null+0x1a/0x20
          __queue_delayed_work+0xed/0x1a0
          queue_delayed_work_on+0x27/0x50
          edac_mc_workq_function+0x72/0xa0 [edac_core]
          process_one_work+0x17b/0x460
          worker_thread+0x11b/0x400
          kthread+0xd2/0xf0
          ret_from_fork+0x7c/0xb0
      
      This patch adds a range check in the edac_mc_poll_msec code to check for 0.
      Signed-off-by: 's avatarPrarit Bhargava <prarit@redhat.com>
      Cc: Doug Thompson <dougthompson@xmission.com>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Signed-off-by: 's avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: 's avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      64f452fc
    • Jingoo Han's avatar
      EDAC: Replace strict_strtol() with kstrtol() · 2b88adf6
      Jingoo Han authored
      commit c542b53da9ffa4fe9de61149818a06aacae531f8 upstream.
      
      The usage of strict_strtol() is not preferred, because strict_strtol()
      is obsolete. Thus, kstrtol() should be used.
      Signed-off-by: 's avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: 's avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2b88adf6
    • Krzysztof Kozlowski's avatar
      power: max17040: Fix NULL pointer dereference when there is no platform_data · d15d1e03
      Krzysztof Kozlowski authored
      commit ac323d8d807060f7c95a685a9fe861e7b6300993 upstream.
      
      Fix NULL pointer dereference of "chip->pdata" if platform_data was not
      supplied to the driver.
      
      The driver during probe stored the pointer to the platform_data:
      	chip->pdata = client->dev.platform_data;
      Later it was dereferenced in max17040_get_online() and
      max17040_get_status().
      
      If platform_data was not supplied, the NULL pointer exception would
      happen:
      
      [    6.626094] Unable to handle kernel  of a at virtual address 00000000
      [    6.628557] pgd = c0004000
      [    6.632868] [00000000] *pgd=66262564
      [    6.634636] Unable to handle kernel paging request at virtual address e6262000
      [    6.642014] pgd = de468000
      [    6.644700] [e6262000] *pgd=00000000
      [    6.648265] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
      [    6.653552] Modules linked in:
      [    6.656598] CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted 3.10.14-02717-gc58b4b4 #505
      [    6.664334] Workqueue: events max17040_work
      [    6.668488] task: dfa11b80 ti: df9f6000 task.ti: df9f6000
      [    6.673873] PC is at show_pte+0x80/0xb8
      [    6.677687] LR is at show_pte+0x3c/0xb8
      [    6.681503] pc : [<c001b7b8>]    lr : [<c001b774>]    psr: 600f0113
      [    6.681503] sp : df9f7d58  ip : 600f0113  fp : 00000009
      [    6.692965] r10: 00000000  r9 : 00000000  r8 : dfa11b80
      [    6.698171] r7 : df9f7ea0  r6 : e6262000  r5 : 00000000  r4 : 00000000
      [    6.704680] r3 : 00000000  r2 : e6262000  r1 : 600f0193  r0 : c05b3750
      [    6.711194] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      [    6.718485] Control: 10c53c7d  Table: 5e46806a  DAC: 00000015
      [    6.724218] Process kworker/0:1 (pid: 31, stack limit = 0xdf9f6238)
      [    6.730465] Stack: (0xdf9f7d58 to 0xdf9f8000)
      [    6.914325] [<c001b7b8>] (show_pte+0x80/0xb8) from [<c047107c>] (__do_kernel_fault.part.9+0x44/0x74)
      [    6.923425] [<c047107c>] (__do_kernel_fault.part.9+0x44/0x74) from [<c001bb7c>] (do_page_fault+0x2c4/0x360)
      [    6.933144] [<c001bb7c>] (do_page_fault+0x2c4/0x360) from [<c0008400>] (do_DataAbort+0x34/0x9c)
      [    6.941825] [<c0008400>] (do_DataAbort+0x34/0x9c) from [<c000e5d8>] (__dabt_svc+0x38/0x60)
      [    6.950058] Exception stack(0xdf9f7ea0 to 0xdf9f7ee8)
      [    6.955099] 7ea0: df0c1790 00000000 00000002 00000000 df0c1794 df0c1790 df0c1790 00000042
      [    6.963271] 7ec0: df0c1794 00000001 00000000 00000009 00000000 df9f7ee8 c0306268 c0306270
      [    6.971419] 7ee0: a00f0113 ffffffff
      [    6.974902] [<c000e5d8>] (__dabt_svc+0x38/0x60) from [<c0306270>] (max17040_work+0x8c/0x144)
      [    6.983317] [<c0306270>] (max17040_work+0x8c/0x144) from [<c003f364>] (process_one_work+0x138/0x440)
      [    6.992429] [<c003f364>] (process_one_work+0x138/0x440) from [<c003fa64>] (worker_thread+0x134/0x3b8)
      [    7.001628] [<c003fa64>] (worker_thread+0x134/0x3b8) from [<c00454bc>] (kthread+0xa4/0xb0)
      [    7.009875] [<c00454bc>] (kthread+0xa4/0xb0) from [<c000eb28>] (ret_from_fork+0x14/0x2c)
      [    7.017943] Code: e1a03005 e2422480 e0826104 e59f002c (e7922104)
      [    7.024017] ---[ end trace 73bc7006b9cc5c79 ]---
      Signed-off-by: 's avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Fixes: c6f4a42dSigned-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d15d1e03
    • Oleg Nesterov's avatar
      md/raid5: Fix CPU hotplug callback registration · 4d4ef86d
      Oleg Nesterov authored
      commit 789b5e0315284463617e106baad360cb9e8db3ac upstream.
      
      Subsystems that want to register CPU hotplug callbacks, as well as perform
      initialization for the CPUs that are already online, often do it as shown
      below:
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	put_online_cpus();
      
      This is wrong, since it is prone to ABBA deadlocks involving the
      cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
      with CPU hotplug operations).
      
      Interestingly, the raid5 code can actually prevent double initialization and
      hence can use the following simplified form of callback registration:
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	put_online_cpus();
      
      A hotplug operation that occurs between registering the notifier and calling
      get_online_cpus(), won't disrupt anything, because the code takes care to
      perform the memory allocations only once.
      
      So reorganize the code in raid5 this way to fix the deadlock with callback
      registration.
      
      Cc: linux-raid@vger.kernel.org
      Fixes: 36d1c647Signed-off-by: 's avatarOleg Nesterov <oleg@redhat.com>
      [Srivatsa: Fixed the unregister_cpu_notifier() deadlock, added the
      free_scratch_buffer() helper to condense code further and wrote the changelog.]
      Signed-off-by: 's avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: 's avatarNeilBrown <neilb@suse.de>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4d4ef86d
    • NeilBrown's avatar
      md/raid1: restore ability for check and repair to fix read errors. · 9f2d2899
      NeilBrown authored
      commit 1877db75589a895bbdc4c4c3f23558e57b521141 upstream.
      
      commit 30bc9b53878a9921b02e3b5bc4283ac1c6de102a
          md/raid1: fix bio handling problems in process_checks()
      
      Move the bio_reset() to a point before where BIO_UPTODATE is checked,
      so that check now always report that the bio is uptodate, even if it is not.
      
      This causes process_check() to sometimes treat read-errors as
      successful matches so the good data isn't written out.
      
      This patch preserves the flag until it is needed.
      
      Bug was introduced in 3.11, but backported to 3.10-stable (as it fixed
      an even worse bug).  So suitable for any -stable since 3.10.
      Reported-and-tested-by: 's avatarMichael Tokarev <mjt@tls.msk.ru>
      Fixed: 30bc9b53878a9921b02e3b5bc4283ac1c6de102a
      Signed-off-by: 's avatarNeilBrown <neilb@suse.de>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9f2d2899
    • Mike Marciniszyn's avatar
      IB/qib: Add missing serdes init sequence · f367fe03
      Mike Marciniszyn authored
      commit 2f75e12c4457a9b3d042c0a0d748fa198dc2ffaf upstream.
      
      Research has shown that commit a77fcf89 ("IB/qib: Use a single
      txselect module parameter for serdes tuning") missed a key serdes init
      sequence.
      
      This patch add that sequence.
      Reviewed-by: 's avatarDennis Dalessandro <dennis.dalessandro@intel.com>
      Signed-off-by: 's avatarMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: 's avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f367fe03
    • Sarah Sharp's avatar
      Revert "usbcore: set lpm_capable field for LPM capable root hubs" · 6cafd971
      Sarah Sharp authored
      commit 140e3026a57ab7d830dab2f2c57796c222db0ea9 upstream.
      
      Commit 9df89d85b407690afa46ddfbccc80bec6869971d "usbcore: set
      lpm_capable field for LPM capable root hubs" was created under the
      assumption that all USB host controllers should have USB 3.0 Link PM
      enabled for all devices under the hosts.
      
      Unfortunately, that's not the case.  The xHCI driver relies on knowledge
      of the host hardware scheduler to calculate the LPM U1/U2 timeout
      values, and it only sets lpm_capable to one for Intel host controllers
      (that have the XHCI_LPM_SUPPORT quirk set).
      
      When LPM is enabled for some Fresco Logic hosts, it causes failures with
      a AgeStar 3UBT USB 3.0 hard drive dock:
      
      Jan 11 13:59:03 sg-laptop kernel: usb 3-1: new SuperSpeed USB device number 2 using xhci_hcd
      Jan 11 13:59:03 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U1 failed.
      Jan 11 13:59:08 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U2 failed.
      Jan 11 13:59:08 sg-laptop kernel: usb-storage 3-1:1.0: USB Mass Storage device detected
      Jan 11 13:59:08 sg-laptop mtp-probe[613]: checking bus 3, device 2: "/sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/usb3/3-1"
      Jan 11 13:59:08 sg-laptop mtp-probe[613]: bus: 3, device: 2 was not an MTP device
      Jan 11 13:59:08 sg-laptop kernel: scsi6 : usb-storage 3-1:1.0
      Jan 11 13:59:13 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U1 failed.
      Jan 11 13:59:18 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U2 failed.
      Jan 11 13:59:18 sg-laptop kernel: usbcore: registered new interface driver usb-storage
      Jan 11 13:59:40 sg-laptop kernel: usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd
      Jan 11 13:59:41 sg-laptop kernel: usb 3-1: device descriptor read/8, error -71
      Jan 11 13:59:41 sg-laptop kernel: usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd
      Jan 11 13:59:46 sg-laptop kernel: usb 3-1: device descriptor read/8, error -110
      Jan 11 13:59:46 sg-laptop kernel: scsi 6:0:0:0: Device offlined - not ready after error recovery
      Jan 11 13:59:46 sg-laptop kernel: usb 3-1: USB disconnect, device number 2
      
      lspci for the affected host:
      
      04:00.0 0c03: 1b73:1000 (rev 04) (prog-if 30 [XHCI])
              Subsystem: 1043:1039
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Interrupt: pin A routed to IRQ 19
              Region 0: Memory at dd200000 (32-bit, non-prefetchable) [size=64K]
              Capabilities: [50] Power Management version 3
                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
              Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
                      Address: 0000000000000000  Data: 0000
              Capabilities: [80] Express (v1) Endpoint, MSI 00
                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us
                              ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                              MaxPayload 128 bytes, MaxReadReq 512 bytes
                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                      LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                              ClockPM- Surprise- LLActRep- BwNot-
                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                      LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
              Kernel driver in use: xhci_hcd
              Kernel modules: xhci_hcd
      
      The commit was backported to stable kernels, and will need to be
      reverted there as well.
      Signed-off-by: 's avatarSarah Sharp <sarah.a.sharp@intel.com>
      Reported-by: 's avatarSergey Galanov <sergey.e.galanov@gmail.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6cafd971
    • Raymond Wanyoike's avatar
      usb: option: blacklist ZTE MF667 net interface · 62572fa6
      Raymond Wanyoike authored
      commit 3635c7e2d59f7861afa6fa5e87e2a58860ff514d upstream.
      
      Interface #5 of 19d2:1270 is a net interface which has been submitted to the
      qmi_wwan driver so consequently remove it from the option driver.
      Signed-off-by: 's avatarRaymond Wanyoike <raymond.wanyoike@gmail.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      62572fa6
    • Alan Stern's avatar
      usb-storage: enable multi-LUN scanning when needed · 5e076f4d
      Alan Stern authored
      commit 823d12c95c666fa7ab7dad208d735f6bc6afabdc upstream.
      
      People sometimes create their own custom-configured kernels and forget
      to enable CONFIG_SCSI_MULTI_LUN.  This causes problems when they plug
      in a USB storage device (such as a card reader) with more than one
      LUN.
      
      Fortunately, we can tell fairly easily when a storage device claims to
      have more than one LUN.  When that happens, this patch asks the SCSI
      layer to probe all the LUNs automatically, regardless of the config
      setting.
      
      The patch also updates the Kconfig help text for usb-storage,
      explaining that CONFIG_SCSI_MULTI_LUN may be necessary.
      Signed-off-by: 's avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: 's avatarThomas Raschbacher <lordvan@lordvan.com>
      CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
      CC: James Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5e076f4d
    • Alan Stern's avatar
      usb-storage: restrict bcdDevice range for Super Top in Cypress ATACB · cb5238e4
      Alan Stern authored
      commit a9c143c82608bee2a36410caa56d82cd86bdc7fa upstream.
      
      The Cypress ATACB unusual-devs entry for the Super Top SATA bridge
      causes problems.  Although it was originally reported only for
      bcdDevice = 0x160, its range was much larger.  This resulted in a bug
      report for bcdDevice 0x220, so the range was capped at 0x219.  Now
      Milan reports errors with bcdDevice 0x150.
      
      Therefore this patch restricts the range to just 0x160.
      Signed-off-by: 's avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-and-tested-by: 's avatarMilan Svoboda <milan.svoboda@centrum.cz>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cb5238e4
    • Alan Stern's avatar
      usb-storage: add unusual-devs entry for BlackBerry 9000 · d563f805
      Alan Stern authored
      commit c5637e5119c43452a00e27c274356b072263ecbb upstream.
      
      This patch adds an unusual-devs entry for the BlackBerry 9000.  This
      fixes Bugzilla #22442.
      Signed-off-by: 's avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: 's avatarMoritz Moeller-Herrmann <moritz-kernel@moeller-herrmann.de>
      Tested-by: 's avatarMoritz Moeller-Herrmann <moritz-kernel@moeller-herrmann.de>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d563f805
    • Ulrich Hahn's avatar
      USB: ftdi_sio: add Tagsys RFID Reader IDs · cb0e8e3f
      Ulrich Hahn authored
      commit 76f24e3f39a1a94bab0d54e98899d64abcd9f69c upstream.
      
      Adding two more IDs to the ftdi_sio usb serial driver.
      It now connects Tagsys RFID readers.
      There might be more IDs out there for other Tagsys models.
      Signed-off-by: 's avatarUlrich Hahn <uhahn@eanco.de>
      Cc: Johan Hovold <johan@hovold.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cb0e8e3f
    • Bjørn Mork's avatar
      usb: ftdi_sio: add Mindstorms EV3 console adapter · 80750424
      Bjørn Mork authored
      commit 67847baee056892dc35efb9c3fd05ae7f075588c upstream.
      Signed-off-by: 's avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      80750424
    • K. Y. Srinivasan's avatar
      Drivers: hv: vmbus: Don't timeout during the initial connection with host · 3339d76f
      K. Y. Srinivasan authored
      commit 269f979467cf49f2ea8132316c1f00f8c9678f7c upstream.
      
      When the guest attempts to connect with the host when there may already be a
      connection with the host (as would be the case during the kdump/kexec path),
      it is difficult to guarantee timely response from the host. Starting with
      WS2012 R2, the host supports this ability to re-connect with the host
      (explicitly to support kexec). Prior to responding to the guest, the host
      needs to ensure that device states based on the previous connection to
      the host have been properly torn down. This may introduce unbounded delays.
      To deal with this issue, don't do a timed wait during the initial connect
      with the host.
      Signed-off-by: 's avatarK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3339d76f
    • Martyn Welch's avatar
      VME: Correct read/write alignment algorithm · c7677684
      Martyn Welch authored
      commit f0342e66b397947ed8c3eef8c37b5ca2d5b1bb50 upstream.
      
      In order to ensure the correct width cycles on the VME bus, the VME bridge
      drivers implement an algorithm to utilise the largest possible width reads and
      writes whilst maintaining natural alignment constraints. The algorithm
      currently looks at the start address rather than the current read/write address
      when determining whether a 16-bit width cycle is required to get to 32-bit
      alignment.  This results in incorrect alignment,
      Reported-by: 's avatarJim Strouth <james.strouth@ge.com>
      Tested-by: 's avatarJim Strouth <james.strouth@ge.com>
      Signed-off-by: 's avatarMartyn Welch <martyn.welch@ge.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c7677684
    • Alexander Usyskin's avatar
      mei: don't unset read cb ptr on reset · 24a50910
      Alexander Usyskin authored
      commit 5cb906c7035f03a3a44fecece9d3ff8fcc75d6e0 upstream.
      
      Don't set read callback to NULL during reset as
      this leads to memory leak of both cb and its buffer.
      The memory is correctly freed during mei_release.
      
      The memory leak is detectable by kmemleak if
      application has open read call while system is going through
      suspend/resume.
      
      unreferenced object 0xecead780 (size 64):
        comm "AsyncTask #1", pid 1018, jiffies 4294949621 (age 152.440s)
        hex dump (first 32 bytes):
          00 01 10 00 00 02 20 00 00 bf 30 f1 00 00 00 00  ...... ...0.....
          00 00 00 00 00 00 00 00 36 01 00 00 00 70 da e2  ........6....p..
        backtrace:
          [<c1a60aec>] kmemleak_alloc+0x3c/0xa0
          [<c131ed56>] kmem_cache_alloc_trace+0xc6/0x190
          [<c16243c9>] mei_io_cb_init+0x29/0x50
          [<c1625722>] mei_cl_read_start+0x102/0x360
          [<c16268f3>] mei_read+0x103/0x4e0
          [<c1324b09>] vfs_read+0x89/0x160
          [<c1324d5f>] SyS_read+0x4f/0x80
          [<c1a7b318>] syscall_call+0x7/0xb
          [<ffffffff>] 0xffffffff
      unreferenced object 0xe2da7000 (size 512):
        comm "AsyncTask #1", pid 1018, jiffies 4294949621 (age 152.440s)
        hex dump (first 32 bytes):
          00 6c da e2 7c 00 00 00 00 00 00 00 c0 eb 0c 59  .l..|..........Y
          1b 00 00 00 01 00 00 00 02 10 00 00 01 00 00 00  ................
        backtrace:
          [<c1a60aec>] kmemleak_alloc+0x3c/0xa0
          [<c131f127>] __kmalloc+0xe7/0x1d0
          [<c162447e>] mei_io_cb_alloc_resp_buf+0x2e/0x60
          [<c162574c>] mei_cl_read_start+0x12c/0x360
          [<c16268f3>] mei_read+0x103/0x4e0
          [<c1324b09>] vfs_read+0x89/0x160
          [<c1324d5f>] SyS_read+0x4f/0x80
          [<c1a7b318>] syscall_call+0x7/0xb
          [<ffffffff>] 0xffffffff
      Signed-off-by: 's avatarAlexander Usyskin <alexander.usyskin@intel.com>
      Signed-off-by: 's avatarTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      24a50910
    • Alexander Usyskin's avatar
      mei: clear write cb from waiting list on reset · 85153361
      Alexander Usyskin authored
      commit 30c54df7cb9b15b222529a028390b9c9582dd65e upstream.
      
      Clear write callbacks sitting in write_waiting list on reset.
      Otherwise these callbacks are left dangling and cause memory leak.
      Signed-off-by: 's avatarAlexander Usyskin <alexander.usyskin@intel.com>
      Signed-off-by: 's avatarTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      85153361
    • Marcus Folkesson's avatar
      iio: adis16400: Set timestamp as the last element in chan_spec · 016085b4
      Marcus Folkesson authored
      commit c76782d151dab7ecfdcdf9a01561c2d61d9b490f upstream.
      
      This is necessary since timestamp is calculated as the last element
      in iio_compute_scan_bytes().
      
      Without this fix any userspace code reading the layout of the buffer via
      sysfs will incorrectly interpret the data leading some nasty corruption.
      Signed-off-by: 's avatarMarcus Folkesson <marcus.folkesson@gmail.com>
      Acked-by: 's avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: 's avatarJonathan Cameron <jic23@kernel.org>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      016085b4
    • Hartmut Knaack's avatar
      staging:iio:ad799x fix error_free_irq which was freeing an irq that may not have been requested · 39779455
      Hartmut Knaack authored
      commit 38408d056188be29a6c4e17f3703c796551bb330 upstream.
      
      Only free an IRQ in error_free_irq, if it has been requested previously.
      Signed-off-by: 's avatarHartmut Knaack <knaack.h@gmx.de>
      Acked-by: 's avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: 's avatarJonathan Cameron <jic23@kernel.org>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      39779455
    • H Hartley Sweeten's avatar
      staging: comedi: adv_pci1710: fix analog output readback value · db438cf1
      H Hartley Sweeten authored
      commit 1e85c1ea1ff2a60659e790ef8ec76c7339445841 upstream.
      
      The last value written to a analog output channel is cached in the
      private data of this driver for readback.
      
      Currently, the wrong value is cached in the (*insn_write) functions.
      The current code stores the data[n] value for readback afer the loop
      has written all the values. At this time 'n' points past the end of
      the data array.
      
      Fix the functions by using a local variable to hold the data being
      written to the analog output channel. This variable is then used
      after the loop is complete to store the readback value. The current
      value is retrieved before the loop in case no values are actually
      written..
      Signed-off-by: 's avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Reviewed-by: 's avatarIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      db438cf1
    • Bjørn Mork's avatar
      usb: qcserial: add Netgear Aircard 340U · 88d48868
      Bjørn Mork authored
      commit f948dcf9e9973c05d957bc65b3185682f45feda3 upstream.
      
      This device was mentioned in an OpenWRT forum.  Seems to have a "standard"
      Sierra Wireless ifnumber to function layout:
       0: qcdm
       2: nmea
       3: modem
       8: qmi
       9: storage
      Signed-off-by: 's avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      88d48868
    • Petr Písař's avatar
      vt: Fix secure clear screen · 27f0831c
      Petr Písař authored
      commit 0930b0950a8996aa88b0d2ba4bb2bab27cc36bc7 upstream.
      
      \E[3J console code (secure clear screen) needs to update_screen(vc)
      in order to write-through blanks into off-screen video memory.
      
      This has been removed accidentally in 3.6 by:
      
      commit 81732c3b
      Author: Jean-François Moine <moinejf@free.fr>
      Date:   Thu Sep 6 19:24:13 2012 +0200
      
          tty vt: Fix line garbage in virtual console on command line edition
      Signed-off-by: 's avatarPetr Písař <petr.pisar@atlas.cz>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      27f0831c
    • Christian König's avatar
      drm/radeon: fix UVD IRQ support on SI · 41ce42d4
      Christian König authored
      commit b927e1c20462c1ad9caf4c4fa3a30e838a2d4037 upstream.
      
      Otherwise decoding isn't really useable.
      
      bug:
      https://bugs.freedesktop.org/show_bug.cgi?id=71448Signed-off-by: 's avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: 's avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      41ce42d4
    • Alex Deucher's avatar
      drm/radeon: fix UVD IRQ support on 7xx · 1dd657f5
      Alex Deucher authored
      commit 858a41c853cef2cb01de34dae334c19c1c15b237 upstream.
      
      Otherwise decoding isn't really useable.
      Signed-off-by: 's avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1dd657f5