mbox series

[v2,00/58] qla2xxx patches for kernel v5.4

Message ID 20190809030219.11296-1-bvanassche@acm.org (mailing list archive)
Headers show
Series qla2xxx patches for kernel v5.4 | expand

Message

Bart Van Assche Aug. 9, 2019, 3:01 a.m. UTC
Hi Martin,

The patches in this series improve the robustness of the QLogic Fibre Channel
initiator and target drivers. These patches are a result of manual code
inspection, analysis of Coverity reports and stress testing of these two
drivers. Please consider these patches for kernel version v5.4.

Thanks,

Bart.

Changes compared to v1:
- Included a regression fix for qla2xxx_eh_abort() in the second patch of this
  series (the fix Himanshu mentioned in his e-mail).
- Moved a WARN_ON_ONCE() statement from a later patch to the second patch in
  this series.
- Dropped one patch that renames a function.

Bart Van Assche (58):
  qla2xxx: Make qla2x00_abort_srb() again decrease the sp reference
    count
  qla2xxx: Really fix qla2xxx_eh_abort()
  qla2xxx: Improve Linux kernel coding style conformance
  qla2xxx: Use tabs instead of spaces for indentation
  qla2xxx: Include the <asm/unaligned.h> header file from qla_dsd.h
  qla2xxx: Remove an include directive from qla_mr.c
  qla2xxx: Remove a superfluous forward declaration
  qla2xxx: Declare the fourth ql_dump_buffer() argument const
  qla2xxx: Change the return type of qla2x00_update_ms_fdmi_iocb() into
    void
  qla2xxx: Reduce the scope of three local variables in
    qla2xxx_queuecommand()
  qla2xxx: Declare qla_tgt_cmd.cdb const
  qla2xxx: Change data_dsd into an array
  qla2xxx: Verify locking assumptions at runtime
  qla2xxx: Reduce the number of casts in GID list code
  qla2xxx: Simplify qlt_lport_dump()
  qla2xxx: Remove a superfluous pointer check
  qla2xxx: Remove two superfluous tests
  qla2xxx: Simplify qla24xx_abort_sp_done()
  qla2xxx: Fix session lookup in qlt_abort_work()
  qla2xxx: Report the firmware status code if a mailbox command fails
  qla2xxx: Do not corrupt vha->plogi_ack_list
  qla2xxx: Use strlcpy() instead of strncpy()
  qla2xxx: Complain if a mailbox command times out
  qla2xxx: Complain if parsing the version string fails
  qla2xxx: Remove dead code
  qla2xxx: Simplify a debug statement
  qla2xxx: Fix qla24xx_process_bidir_cmd()
  qla2xxx: Remove unreachable code from qla83xx_idc_lock()
  qla2xxx: Suppress a Coveritiy complaint about integer overflow
  qla2xxx: Suppress multiple Coverity complaint about out-of-bounds
    accesses
  qla2xxx: Always check the qla2x00_wait_for_hba_online() return value
  qla2xxx: Declare fourth qla2x00_set_model_info() argument const
  qla2xxx: Complain if waiting for pending commands times out
  qla2xxx: Check the PCI info string output buffer size
  qla2xxx: Use memcpy() and strlcpy() instead of strcpy() and strncpy()
  qla2xxx: Complain if a soft reset fails
  qla2xxx: Introduce the be_id_t and le_id_t data types for FC src/dst
    IDs
  qla2xxx: Change the return type of qla24xx_read_flash_data()
  qla2xxx: Check secondary image if reading the primary image fails
  qla2xxx: Make it explicit that ELS pass-through IOCBs use little
    endian
  qla2xxx: Set the responder mode if appropriate for ELS pass-through
    IOCBs
  qla2xxx: Rework key encoding in qlt_find_host_by_d_id()
  qla2xxx: Enable type checking for the SRB free and done callback
    functions
  qla2xxx: Introduce the function qla2xxx_init_sp()
  qla2xxx: Fix a race condition between aborting and completing a SCSI
    command
  qla2xxx: Make qlt_handle_abts_completion() more robust
  qla2xxx: Modify NVMe include directives
  qla2xxx: Introduce qla2xxx_get_next_handle()
  qla2xxx: Make sure that aborted commands are freed
  qla2xxx: Complain if sp->done() is not called from the completion path
  qla2xxx: Let the compiler check the type of the SCSI command context
    pointer
  qla2xxx: Remove superfluous sts_entry_* casts
  qla2xxx: Report invalid mailbox status codes
  qla2xxx: Inline the qla2x00_fcport_event_handler() function
  qla2xxx: Introduce qla2x00_els_dcmd2_free()
  qla2xxx: Remove two superfluous if-tests
  qla2xxx: Simplify qla24xx_async_abort_cmd()
  qla2xxx: Fix a NULL pointer dereference

 drivers/scsi/qla2xxx/qla_attr.c    |   6 +-
 drivers/scsi/qla2xxx/qla_bsg.c     |  19 +--
 drivers/scsi/qla2xxx/qla_dbg.c     |   3 +-
 drivers/scsi/qla2xxx/qla_def.h     | 130 ++++++++++----
 drivers/scsi/qla2xxx/qla_dfs.c     |   9 +-
 drivers/scsi/qla2xxx/qla_dsd.h     |   2 +
 drivers/scsi/qla2xxx/qla_fw.h      |   8 +-
 drivers/scsi/qla2xxx/qla_gbl.h     |  33 ++--
 drivers/scsi/qla2xxx/qla_gs.c      | 219 +++++++++---------------
 drivers/scsi/qla2xxx/qla_init.c    | 261 +++++++++++------------------
 drivers/scsi/qla2xxx/qla_inline.h  |  28 ++--
 drivers/scsi/qla2xxx/qla_iocb.c    | 221 +++++++++---------------
 drivers/scsi/qla2xxx/qla_isr.c     |  24 ++-
 drivers/scsi/qla2xxx/qla_mbx.c     |  10 +-
 drivers/scsi/qla2xxx/qla_mid.c     |   4 +-
 drivers/scsi/qla2xxx/qla_mr.c      |  67 ++++----
 drivers/scsi/qla2xxx/qla_nvme.c    |  28 +---
 drivers/scsi/qla2xxx/qla_nvme.h    |   5 +-
 drivers/scsi/qla2xxx/qla_nx.c      |  16 +-
 drivers/scsi/qla2xxx/qla_nx.h      |  14 +-
 drivers/scsi/qla2xxx/qla_nx2.c     |   2 +-
 drivers/scsi/qla2xxx/qla_os.c      | 213 ++++++++++-------------
 drivers/scsi/qla2xxx/qla_sup.c     |   8 +-
 drivers/scsi/qla2xxx/qla_target.c  | 209 +++++++++--------------
 drivers/scsi/qla2xxx/qla_target.h  |  35 ++--
 drivers/scsi/qla2xxx/qla_tmpl.c    |   7 +-
 drivers/scsi/qla2xxx/tcm_qla2xxx.c |  27 ++-
 include/linux/nvme-fc-driver.h     |   2 +
 28 files changed, 677 insertions(+), 933 deletions(-)

Comments

Himanshu Madhani Aug. 9, 2019, 2:39 p.m. UTC | #1
Hi Bart, 


On 8/8/19, 10:02 PM, "linux-scsi-owner@vger.kernel.org on behalf of Bart Van Assche" <linux-scsi-owner@vger.kernel.org on behalf of bvanassche@acm.org> wrote:

    Hi Martin,
    
    The patches in this series improve the robustness of the QLogic Fibre Channel
    initiator and target drivers. These patches are a result of manual code
    inspection, analysis of Coverity reports and stress testing of these two
    drivers. Please consider these patches for kernel version v5.4.
    
    Thanks,
    
    Bart.
    
    Changes compared to v1:
    - Included a regression fix for qla2xxx_eh_abort() in the second patch of this
      series (the fix Himanshu mentioned in his e-mail).
    - Moved a WARN_ON_ONCE() statement from a later patch to the second patch in
      this series.
    - Dropped one patch that renames a function.
    
    Bart Van Assche (58):
      qla2xxx: Make qla2x00_abort_srb() again decrease the sp reference
        count
      qla2xxx: Really fix qla2xxx_eh_abort()
      qla2xxx: Improve Linux kernel coding style conformance
      qla2xxx: Use tabs instead of spaces for indentation
      qla2xxx: Include the <asm/unaligned.h> header file from qla_dsd.h
      qla2xxx: Remove an include directive from qla_mr.c
      qla2xxx: Remove a superfluous forward declaration
      qla2xxx: Declare the fourth ql_dump_buffer() argument const
      qla2xxx: Change the return type of qla2x00_update_ms_fdmi_iocb() into
        void
      qla2xxx: Reduce the scope of three local variables in
        qla2xxx_queuecommand()
      qla2xxx: Declare qla_tgt_cmd.cdb const
      qla2xxx: Change data_dsd into an array
      qla2xxx: Verify locking assumptions at runtime
      qla2xxx: Reduce the number of casts in GID list code
      qla2xxx: Simplify qlt_lport_dump()
      qla2xxx: Remove a superfluous pointer check
      qla2xxx: Remove two superfluous tests
      qla2xxx: Simplify qla24xx_abort_sp_done()
      qla2xxx: Fix session lookup in qlt_abort_work()
      qla2xxx: Report the firmware status code if a mailbox command fails
      qla2xxx: Do not corrupt vha->plogi_ack_list
      qla2xxx: Use strlcpy() instead of strncpy()
      qla2xxx: Complain if a mailbox command times out
      qla2xxx: Complain if parsing the version string fails
      qla2xxx: Remove dead code
      qla2xxx: Simplify a debug statement
      qla2xxx: Fix qla24xx_process_bidir_cmd()
      qla2xxx: Remove unreachable code from qla83xx_idc_lock()
      qla2xxx: Suppress a Coveritiy complaint about integer overflow
      qla2xxx: Suppress multiple Coverity complaint about out-of-bounds
        accesses
      qla2xxx: Always check the qla2x00_wait_for_hba_online() return value
      qla2xxx: Declare fourth qla2x00_set_model_info() argument const
      qla2xxx: Complain if waiting for pending commands times out
      qla2xxx: Check the PCI info string output buffer size
      qla2xxx: Use memcpy() and strlcpy() instead of strcpy() and strncpy()
      qla2xxx: Complain if a soft reset fails
      qla2xxx: Introduce the be_id_t and le_id_t data types for FC src/dst
        IDs
      qla2xxx: Change the return type of qla24xx_read_flash_data()
      qla2xxx: Check secondary image if reading the primary image fails
      qla2xxx: Make it explicit that ELS pass-through IOCBs use little
        endian
      qla2xxx: Set the responder mode if appropriate for ELS pass-through
        IOCBs
      qla2xxx: Rework key encoding in qlt_find_host_by_d_id()
      qla2xxx: Enable type checking for the SRB free and done callback
        functions
      qla2xxx: Introduce the function qla2xxx_init_sp()
      qla2xxx: Fix a race condition between aborting and completing a SCSI
        command
      qla2xxx: Make qlt_handle_abts_completion() more robust
      qla2xxx: Modify NVMe include directives
      qla2xxx: Introduce qla2xxx_get_next_handle()
      qla2xxx: Make sure that aborted commands are freed
      qla2xxx: Complain if sp->done() is not called from the completion path
      qla2xxx: Let the compiler check the type of the SCSI command context
        pointer
      qla2xxx: Remove superfluous sts_entry_* casts
      qla2xxx: Report invalid mailbox status codes
      qla2xxx: Inline the qla2x00_fcport_event_handler() function
      qla2xxx: Introduce qla2x00_els_dcmd2_free()
      qla2xxx: Remove two superfluous if-tests
      qla2xxx: Simplify qla24xx_async_abort_cmd()
      qla2xxx: Fix a NULL pointer dereference
    
     drivers/scsi/qla2xxx/qla_attr.c    |   6 +-
     drivers/scsi/qla2xxx/qla_bsg.c     |  19 +--
     drivers/scsi/qla2xxx/qla_dbg.c     |   3 +-
     drivers/scsi/qla2xxx/qla_def.h     | 130 ++++++++++----
     drivers/scsi/qla2xxx/qla_dfs.c     |   9 +-
     drivers/scsi/qla2xxx/qla_dsd.h     |   2 +
     drivers/scsi/qla2xxx/qla_fw.h      |   8 +-
     drivers/scsi/qla2xxx/qla_gbl.h     |  33 ++--
     drivers/scsi/qla2xxx/qla_gs.c      | 219 +++++++++---------------
     drivers/scsi/qla2xxx/qla_init.c    | 261 +++++++++++------------------
     drivers/scsi/qla2xxx/qla_inline.h  |  28 ++--
     drivers/scsi/qla2xxx/qla_iocb.c    | 221 +++++++++---------------
     drivers/scsi/qla2xxx/qla_isr.c     |  24 ++-
     drivers/scsi/qla2xxx/qla_mbx.c     |  10 +-
     drivers/scsi/qla2xxx/qla_mid.c     |   4 +-
     drivers/scsi/qla2xxx/qla_mr.c      |  67 ++++----
     drivers/scsi/qla2xxx/qla_nvme.c    |  28 +---
     drivers/scsi/qla2xxx/qla_nvme.h    |   5 +-
     drivers/scsi/qla2xxx/qla_nx.c      |  16 +-
     drivers/scsi/qla2xxx/qla_nx.h      |  14 +-
     drivers/scsi/qla2xxx/qla_nx2.c     |   2 +-
     drivers/scsi/qla2xxx/qla_os.c      | 213 ++++++++++-------------
     drivers/scsi/qla2xxx/qla_sup.c     |   8 +-
     drivers/scsi/qla2xxx/qla_target.c  | 209 +++++++++--------------
     drivers/scsi/qla2xxx/qla_target.h  |  35 ++--
     drivers/scsi/qla2xxx/qla_tmpl.c    |   7 +-
     drivers/scsi/qla2xxx/tcm_qla2xxx.c |  27 ++-
     include/linux/nvme-fc-driver.h     |   2 +
     28 files changed, 677 insertions(+), 933 deletions(-)
    
    -- 
    2.22.0
    


Thanks for posting v2 of the series.

For the series, 

Tested-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Himanshu Madhani <hmadhani@marvell.com>
Martin K. Petersen Aug. 13, 2019, 1:35 a.m. UTC | #2
Bart,

> The patches in this series improve the robustness of the QLogic Fibre
> Channel initiator and target drivers. These patches are a result of
> manual code inspection, analysis of Coverity reports and stress
> testing of these two drivers. Please consider these patches for kernel
> version v5.4.

Applied to 5.4/scsi-queue. Thanks you!