1. 07 Apr, 2017 5 commits
    • Martin K. Petersen's avatar
      scsi: sd: Fix capacity calculation with 32-bit sector_t · 7c856152
      Martin K. Petersen authored
      We previously made sure that the reported disk capacity was less than
      0xffffffff blocks when the kernel was not compiled with large sector_t
      support (CONFIG_LBDAF). However, this check assumed that the capacity
      was reported in units of 512 bytes.
      
      Add a sanity check function to ensure that we only enable disks if the
      entire reported capacity can be expressed in terms of sector_t.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarSteve Magnani <steve.magnani@digidescorp.com>
      Cc: Bart Van Assche <Bart.VanAssche@sandisk.com>
      Reviewed-by: default avatarBart Van Assche <Bart.VanAssche@sandisk.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      7c856152
    • Sawan Chandak's avatar
      scsi: qla2xxx: Add fix to read correct register value for ISP82xx. · bf6061b1
      Sawan Chandak authored
      Add fix to read correct register value for ISP82xx, during check for
      register disconnect.ISP82xx has different base register.
      
      Fixes: a465537a ("qla2xxx: Disable the adapter and skip error recovery in case of register disconnect")
      Signed-off-by: default avatarSawan Chandak <sawan.chandak@cavium.com>
      Signed-off-by: default avatarHimanshu Madhani <himanshu.madhani@cavium.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      bf6061b1
    • Chad Dupuis's avatar
      scsi: qedf: Fix crash due to unsolicited FIP VLAN response. · 8eaf7dfc
      Chad Dupuis authored
      We need to initialize qedf->fipvlan_compl in __qedf_probe so that if we
      receive an unsolicited FIP VLAN response, the system doesn't crash due
      to trying to complete an uninitialized completion.
      
      Also add a check to see if there are any waiters on the completion so we
      don't inadvertantly kick start the discovery process due to the
      unsolicited frame.
      
      Fixed the crash:
      
      <1>BUG: unable to handle kernel NULL pointer dereference at (null)
      <1>IP: [<ffffffff8105ed71>] __wake_up_common+0x31/0x90
      <4>PGD 0
      <4>Oops: 0000 [#1] SMP
      <4>last sysfs file: /sys/devices/system/cpu/online
      <4>CPU 7
      <4>Modules linked in: autofs4 nfs lockd fscache auth_rpcgss nfs_acl sunrpc target_core_iblock target_core_file target_core_pscsi target_core_mod configfs bnx2fc cnic fcoe 8021q garp stp llc ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 vfat fat uinput ipmi_devintf microcode power_meter acpi_ipmi ipmi_si ipmi_msghandler iTCO_wdt iTCO_vendor_support dcdbas sg joydev sb_edac edac_core lpc_ich mfd_core shpchp tg3 ptp pps_core ext4 jbd2 mbcache sr_mod cdrom sd_mod crc_t10dif qedi(U) iscsi_boot_sysfs libiscsi scsi_transport_iscsi uio qedf(U) libfcoe libfc scsi_transport_fc scsi_tgt qede(U) qed(U) ahci megaraid_sas wmi dm_mirror dm_region_hash dm_log dm_mod [last unloaded: speedstep_lib]
      <4>
      <4>Pid: 1485, comm: qedf_11_ll2 Not tainted 2.6.32-642.el6.x86_64 #1 Dell Inc. PowerEdge R730/0599V5
      <4>RIP: 0010:[<ffffffff8105ed71>]  [<ffffffff8105ed71>] __wake_up_common+0x31/0x90
      <4>RSP: 0018:ffff881068a83d50  EFLAGS: 00010086
      <4>RAX: ffffffffffffffe8 RBX: ffff88106bf42de0 RCX: 0000000000000000
      <4>RDX: 0000000000000000 RSI: 0000000000000003 RDI: ffff88106bf42de0
      <4>RBP: ffff881068a83d90 R08: 0000000000000000 R09: 00000000fffffffe
      <4>R10: 0000000000000000 R11: 000000000000000b R12: 0000000000000286
      <4>R13: ffff88106bf42de8 R14: 0000000000000000 R15: 0000000000000000
      <4>FS:  0000000000000000(0000) GS:ffff88089c460000(0000) knlGS:0000000000000000
      <4>CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      <4>CR2: 0000000000000000 CR3: 0000000001a8d000 CR4: 00000000001407e0
      <4>DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      <4>DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      <4>Process qedf_11_ll2 (pid: 1485, threadinfo ffff881068a80000, task ffff881068a70040)
      <4>Stack:
      <4> ffff88106ef00090 0000000300000001 ffff881068a83d90 ffff88106bf42de0
      <4><d> 0000000000000286 ffff88106bf42dd8 ffff88106bf40a50 0000000000000002
      <4><d> ffff881068a83dc0 ffffffff810634c7 ffff881000000003 000000000000000b
      <4>Call Trace:
      <4> [<ffffffff810634c7>] complete+0x47/0x60
      <4> [<ffffffffa01d37e7>] qedf_fip_recv+0x1c7/0x450 [qedf]
      <4> [<ffffffffa01cb3cb>] qedf_ll2_recv_thread+0x33b/0x510 [qedf]
      <4> [<ffffffffa01cb090>] ? qedf_ll2_recv_thread+0x0/0x510 [qedf]
      <4> [<ffffffff810a662e>] kthread+0x9e/0xc0
      <4> [<ffffffff8100c28a>] child_rip+0xa/0x20
      <4> [<ffffffff810a6590>] ? kthread+0x0/0xc0
      <4> [<ffffffff8100c280>] ? child_rip+0x0/0x20
      <4>Code: 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 89 75 cc 89 55 c8 4c 8d 6f 08 48 8b 57 08 41 89 cf 4d 89 c6 48 8d 42 e8 49 39 d5 <48> 8b 58 18 74 3f 48 83 eb 18 eb 0a 0f 1f 00 48 89 d8 48 8d 5a
      <1>RIP  [<ffffffff8105ed71>] __wake_up_common+0x31/0x90
      <4> RSP <ffff881068a83d50>
      <4>CR2: 0000000000000000
      Signed-off-by: default avatarChad Dupuis <chad.dupuis@cavium.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      8eaf7dfc
    • Martin K. Petersen's avatar
      scsi: sr: Sanity check returned mode data · a00a7862
      Martin K. Petersen authored
      Kefeng Wang discovered that old versions of the QEMU CD driver would
      return mangled mode data causing us to walk off the end of the buffer in
      an attempt to parse it. Sanity check the returned mode sense data.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
      Tested-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      a00a7862
    • Fam Zheng's avatar
      scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable · 67804145
      Fam Zheng authored
      If device reports a small max_xfer_blocks and a zero opt_xfer_blocks, we
      end up using BLK_DEF_MAX_SECTORS, which is wrong and r/w of that size
      may get error.
      
      [mkp: tweaked to avoid setting rw_max twice and added typecast]
      
      Cc: <stable@vger.kernel.org> # v4.4+
      Fixes: ca369d51 ("block/sd: Fix device-imposed transfer length limits")
      Signed-off-by: default avatarFam Zheng <famz@redhat.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      67804145
  2. 28 Mar, 2017 1 commit
  3. 23 Mar, 2017 3 commits
  4. 20 Mar, 2017 1 commit
    • John Garry's avatar
      scsi: libsas: fix ata xfer length · 9702c67c
      John Garry authored
      The total ata xfer length may not be calculated properly, in that we do
      not use the proper method to get an sg element dma length.
      
      According to the code comment, sg_dma_len() should be used after
      dma_map_sg() is called.
      
      This issue was found by turning on the SMMUv3 in front of the hisi_sas
      controller in hip07. Multiple sg elements were being combined into a
      single element, but the original first element length was being use as
      the total xfer length.
      
      Cc: <stable@vger.kernel.org>
      Fixes: ff2aeb1e ("libata: convert to chained sg")
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      9702c67c
  5. 19 Mar, 2017 3 commits
  6. 16 Mar, 2017 1 commit
  7. 15 Mar, 2017 9 commits
  8. 14 Mar, 2017 4 commits
  9. 08 Mar, 2017 2 commits
  10. 07 Mar, 2017 11 commits