Skip to content

Commits

Permalink
mwilck-suse-co…
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Jun 28, 2021

  1. dm mpath: add CONFIG_DM_MULTIPATH_SG_IO - failover for SG_IO

    In virtual deployments, SCSI passthrough over dm-multipath devices is a
    common setup. The qemu "pr-helper" was specifically invented for it. I
    believe that this is the most important real-world scenario for sending
    SG_IO ioctls to device-mapper devices.
    
    In this configuration, guests send SCSI IO to the hypervisor in the form of
    SG_IO ioctls issued by qemu. But on the device-mapper level, these SCSI
    ioctls aren't treated like regular IO. Until commit 2361ae5 ("dm mpath:
    switch paths in dm_blk_ioctl() code path"), no path switching was done at
    all. Worse though, if an SG_IO call fails because of a path error,
    dm-multipath doesn't retry the IO on a another path; rather, the failure is
    passed back to the guest, and paths are not marked as faulty.  This is in
    stark contrast with regular block IO of guests on dm-multipath devices, and
    certainly comes as a surprise to users who switch to SCSI passthrough in
    qemu. In general, users of dm-multipath devices would probably expect failover
    to work at least in a basic way.
    
    This patch fixes this by taking a special code path for SG_IO on dm-multipath
    targets if CONFIG_DM_MULTIPATH_SG_IO is set.  Rather then just choosing a
    single path, sending the IO to it, and failing to the caller if the IO on the
    path failed, it retries the same IO on another path for certain error codes,
    using blk_path_error() to determine if a retry would make sense for the given
    error code. Moreover, it fails the path on which the path error occurred,
    like regular block IO would.
    
    If all paths in a multipath map are failed, the behavior depends on the
    queue_if_no_path setting of the map. If it is off, multipath_prepare_ioctl()
    fails with -EIO, and the search for a valid paths is stopped. If it is on,
    the caller will block until either queuing is disabled (in which case IO will
    error out) or at least one path is reinstated (in which case IO will resume).
    This is as close to regular READ/WRITE as it gets.
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck authored and intel-lab-lkp committed Jun 28, 2021
    Copy the full SHA
    a0c6082 View commit details
    Browse the repository at this point in the history
  2. scsi: scsi_ioctl: add sg_io_to_blk_status()

    This helper converts the SCSI result in a sg_io_hdr struct to a blk_status_t.
    It will be used in the SG_IO code path for dm-multipath. Putting it into
    scsi_ioctl.c avoids open-coding SCSI specific code in the dm layer.
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck authored and intel-lab-lkp committed Jun 28, 2021
    Copy the full SHA
    259453c View commit details
    Browse the repository at this point in the history
  3. scsi: scsi_ioctl: export __scsi_result_to_blk_status()

    This makes it possible to use scsi_result_to_blk_status() from
    code that shouldn't depend on scsi_mod (e.g. device mapper).
    
    scsi_ioctl.c is selected by CONFIG_BLK_SCSI_REQUEST, which is automatically
    selected by CONFIG_SCSI.
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck authored and intel-lab-lkp committed Jun 28, 2021
    Copy the full SHA
    45bac77 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2021

  1. scsi: mvsas: Use DEVICE_ATTR_RO()/RW() macro

    Use DEVICE_ATTR_RO()/RW() macro helper instead of plain DEVICE_ATTR(),
    which makes the code a bit shorter and easier to read.
    
    Link: https://lore.kernel.org/r/20210616034419.725-5-thunder.leizhen@huawei.com
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Zhen Lei authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    2506f5d View commit details
    Browse the repository at this point in the history
  2. scsi: megaraid_mbox: Use DEVICE_ATTR_ADMIN_RO() macro

    Use DEVICE_ATTR_ADMIN_RO() macro helper instead of plain DEVICE_ATTR(),
    which makes the code a bit shorter and easier to read.
    
    Link: https://lore.kernel.org/r/20210616034419.725-4-thunder.leizhen@huawei.com
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Zhen Lei authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    4c92f89 View commit details
    Browse the repository at this point in the history
  3. scsi: qedf: Use DEVICE_ATTR_RO() macro

    Use DEVICE_ATTR_RO() macro helper instead of plain DEVICE_ATTR(), which
    makes the code a bit shorter and easier to read.
    
    Link: https://lore.kernel.org/r/20210616034419.725-3-thunder.leizhen@huawei.com
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Zhen Lei authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    80068f8 View commit details
    Browse the repository at this point in the history
  4. scsi: qedi: Use DEVICE_ATTR_RO() macro

    Use DEVICE_ATTR_RO() macro helper instead of plain DEVICE_ATTR(), which
    makes the code a bit shorter and easier to read.
    
    Link: https://lore.kernel.org/r/20210616034419.725-2-thunder.leizhen@huawei.com
    Acked-by: Manish Rangankar <mrangankar@marvell.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Zhen Lei authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    ffa6364 View commit details
    Browse the repository at this point in the history
  5. scsi: message: mptfc: Switch from pci_ to dma_ API

    The wrappers in include/linux/pci-dma-compat.h should go away.
    
    The patch has been generated with the coccinelle script below and has been
    hand modified to replace GFP_ with a correct flag.  It has been compile
    tested.
    
    When memory is allocated in 'mptfc_GetFcDevPage0()' GFP_KERNEL can be used
    because it is already used in this function and no lock is acquired in the
    between.
    
    When memory is allocated in 'mptfc_GetFcPortPage0()' and
    'mptfc_GetFcPortPage1()' GFP_KERNEL can be used because they already call
    'mpt_config()' which has an explicit 'might_sleep()'.
    
    While at it, also remove some useless casting.
    
    @@ @@
    -    PCI_DMA_BIDIRECTIONAL
    +    DMA_BIDIRECTIONAL
    
    @@ @@
    -    PCI_DMA_TODEVICE
    +    DMA_TO_DEVICE
    
    @@ @@
    -    PCI_DMA_FROMDEVICE
    +    DMA_FROM_DEVICE
    
    @@ @@
    -    PCI_DMA_NONE
    +    DMA_NONE
    
    @@
    expression e1, e2, e3;
    @@
    -    pci_alloc_consistent(e1, e2, e3)
    +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
    
    @@
    expression e1, e2, e3;
    @@
    -    pci_zalloc_consistent(e1, e2, e3)
    +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_free_consistent(e1, e2, e3, e4)
    +    dma_free_coherent(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_map_single(e1, e2, e3, e4)
    +    dma_map_single(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_unmap_single(e1, e2, e3, e4)
    +    dma_unmap_single(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4, e5;
    @@
    -    pci_map_page(e1, e2, e3, e4, e5)
    +    dma_map_page(&e1->dev, e2, e3, e4, e5)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_unmap_page(e1, e2, e3, e4)
    +    dma_unmap_page(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_map_sg(e1, e2, e3, e4)
    +    dma_map_sg(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_unmap_sg(e1, e2, e3, e4)
    +    dma_unmap_sg(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
    +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
    +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
    +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2, e3, e4;
    @@
    -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
    +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
    
    @@
    expression e1, e2;
    @@
    -    pci_dma_mapping_error(e1, e2)
    +    dma_mapping_error(&e1->dev, e2)
    
    @@
    expression e1, e2;
    @@
    -    pci_set_dma_mask(e1, e2)
    +    dma_set_mask(&e1->dev, e2)
    
    @@
    expression e1, e2;
    @@
    -    pci_set_consistent_dma_mask(e1, e2)
    +    dma_set_coherent_mask(&e1->dev, e2)
    
    Link: https://lore.kernel.org/r/95afc589713ade2110e7812159ce3e9ab453ec18.1623568121.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    tititiou36 authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    1897c5c View commit details
    Browse the repository at this point in the history
  6. scsi: be2iscsi: Fix some missing space in some messages

    Fix a few style issues reported by checkpatch.pl:
    
     - Avoid duplicated word in comment.
    
     - Add missing space in messages.
    
     - Unneeded continuation line character.
    
     - Unneeded extra spaces.
    
     - Unneeded log message after memory allocation failure.
    
    Link: https://lore.kernel.org/r/8cb62f0eb96ec7ce7a73fe97cb4490dd5121ecff.1623482155.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    tititiou36 authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    c7fa2c8 View commit details
    Browse the repository at this point in the history
  7. scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()

    If an error occurs after a pci_enable_pcie_error_reporting() call, it must
    be undone by a corresponding pci_disable_pcie_error_reporting() call, as
    already done in the remove function.
    
    Link: https://lore.kernel.org/r/77adb02cfea7f1364e5603ecf3930d8597ae356e.1623482155.git.christophe.jaillet@wanadoo.fr
    Fixes: 3567f36 ("[SCSI] be2iscsi: Fix AER handling in driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    tititiou36 authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    030e413 View commit details
    Browse the repository at this point in the history
  8. scsi: ufs: Fix build warning without CONFIG_PM

    drivers/scsi/ufs/ufshcd.c:9770:12: warning: ‘ufshcd_rpmb_resume’ defined but not used [-Wunused-function]
     static int ufshcd_rpmb_resume(struct device *dev)
                ^~~~~~~~~~~~~~~~~~
    drivers/scsi/ufs/ufshcd.c:9037:12: warning: ‘ufshcd_wl_runtime_resume’ defined but not used [-Wunused-function]
     static int ufshcd_wl_runtime_resume(struct device *dev)
                ^~~~~~~~~~~~~~~~~~~~~~~~
    drivers/scsi/ufs/ufshcd.c:9017:12: warning: ‘ufshcd_wl_runtime_suspend’ defined but not used [-Wunused-function]
     static int ufshcd_wl_runtime_suspend(struct device *dev)
                ^~~~~~~~~~~~~~~~~~~~~~~~~
    
    Move it into #ifdef block to fix this.
    
    Link: https://lore.kernel.org/r/20210617031326.36908-1-yuehaibing@huawei.com
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    YueHaibing authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    75d645a View commit details
    Browse the repository at this point in the history
  9. scsi: bnx2fc: Remove meaningless bnx2fc_abts_cleanup() return value a…

    …ssignment
    
    Commit 122c81c ("scsi: bnx2fc: Return failure if io_req is already in
    ABTS processing") made bnx2fc_eh_abort() return FAILED when io_req was
    alrady in ABTS processing, regardless of the return value of
    bnx2fc_abts_cleanup().  However, the change left the assignment of the
    return value of bnx2fc_abts_cleanup(). Remove this.
    
    This issue was discovered and resolved using Coverity Static Analysis
    Security Testing (SAST) by Synopsys, Inc.
    
    Link: https://lore.kernel.org/r/20210618164514.6299-1-sj38.park@gmail.com
    Fixes: 122c81c ("scsi: bnx2fc: Return failure if io_req is already in ABTS processing")
    Acked-by: Saurav Kashyap <skashyap@marvell.com>
    Signed-off-by: SeongJae Park <sjpark@amazon.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    sj-aws authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    73b306a View commit details
    Browse the repository at this point in the history
  10. scsi: qla2xxx: Add heartbeat check

    Use "no-op" mailbox command to check if the adapter firmware is still
    responsive.
    
    Link: https://lore.kernel.org/r/20210619052427.6440-1-njavali@marvell.com
    Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: Quinn Tran <qutran@marvell.com>
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Quinn Tran authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    d94d815 View commit details
    Browse the repository at this point in the history
  11. scsi: virtio_scsi: Do not overwrite SCSI status

    When a sense code is present we should not override the SAM status; the
    driver already sets it based on the response from the hypervisor.
    
    In addition we should only copy the sense buffer if one is actually
    provided by the hypervisor.
    
    Link: https://lore.kernel.org/r/20210622091153.29231-1-hare@suse.de
    Fixes: 464a00c ("scsi: core: Kill DRIVER_SENSE")
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Jiri Slaby <jirislaby@kernel.org>
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    hreinecke authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    c43ddbf View commit details
    Browse the repository at this point in the history
  12. scsi: libsas: Add LUN number check in .slave_alloc callback

    Offlining a SATA device connected to a hisi SAS controller and then
    scanning the host will result in detecting 255 non-existent devices:
    
      # lsscsi
      [2:0:0:0]    disk    ATA      Samsung SSD 860  2B6Q  /dev/sda
      [2:0:1:0]    disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdb
      [2:0:2:0]    disk    SEAGATE  ST600MM0006      B001  /dev/sdc
      # echo "offline" > /sys/block/sdb/device/state
      # echo "- - -" > /sys/class/scsi_host/host2/scan
      # lsscsi
      [2:0:0:0]    disk    ATA      Samsung SSD 860  2B6Q  /dev/sda
      [2:0:1:0]    disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdb
      [2:0:1:1]    disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdh
      ...
      [2:0:1:255]  disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdjb
    
    After a REPORT LUN command issued to the offline device fails, the SCSI
    midlayer tries to do a sequential scan of all devices whose LUN number is
    not 0. However, SATA does not support LUN numbers at all.
    
    Introduce a generic sas_slave_alloc() handler which will return -ENXIO for
    SATA devices if the requested LUN number is larger than 0 and make libsas
    drivers use this function as their .slave_alloc callback.
    
    Link: https://lore.kernel.org/r/20210622034037.1467088-1-yuyufen@huawei.com
    Reported-by: Wu Bo <wubo40@huawei.com>
    Suggested-by: John Garry <john.garry@huawei.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Reviewed-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Yufen Yu <yuyufen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Yufen Yu authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    49da96d View commit details
    Browse the repository at this point in the history
  13. scsi: core: Inline scsi_mq_alloc_queue()

    Since scsi_mq_alloc_queue() only has one caller, inline it. This change was
    suggested by Christoph Hellwig.
    
    Link: https://lore.kernel.org/r/20210622024654.12543-1-bvanassche@acm.org
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Ming Lei <ming.lei@redhat.com>
    Cc: Ed Tsai <ed.tsai@mediatek.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    bvanassche authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    59506ab View commit details
    Browse the repository at this point in the history
  14. scsi: aic7xxx: Fix unintentional sign extension issue on left shift o…

    …f u8
    
    The shifting of the u8 integer returned fom ahc_inb(ahc, port+3) by 24 bits
    to the left will be promoted to a 32 bit signed int and then sign-extended
    to a u64. In the event that the top bit of the u8 is set then all then all
    the upper 32 bits of the u64 end up as also being set because of the
    sign-extension. Fix this by casting the u8 values to a u64 before the 24
    bit left shift.
    
    [ This dates back to 2002, I found the offending commit from the git
    history git://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git,
    commit f58eb66 ("Update aic7xxx driver to 6.2.10...") ]
    
    Link: https://lore.kernel.org/r/20210621151727.20667-1-colin.king@canonical.com
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Addresses-Coverity: ("Unintended sign extension")
    Colin Ian King authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    332a9dd View commit details
    Browse the repository at this point in the history
  15. scsi: elx: efct: Fix vport list linkage in LIO backend

    vport is linked onto the driver's vport list at allocation, but failure
    path fails to remove it from the list.
    
    Change location of linkage until after complete vport completion.
    
    Link: https://lore.kernel.org/r/20210619155729.20049-1-jsmart2021@gmail.com
    Fixes: 692e5d7 ("scsi: elx: efct: LIO backend interface routines")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Co-developed-by: Ram Vegesna <ram.vegesna@broadcom.com>
    Signed-off-by: Ram Vegesna <ram.vegesna@broadcom.com>
    Signed-off-by: James Smart <james.smart@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    James Smart authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    f7c95d7 View commit details
    Browse the repository at this point in the history
  16. scsi: elx: libefc_sli: Fix ANDing with zero bit value

    Flags value is being set to a constant and ANDed with 0 which always
    results in 0.
    
    Remove the assignment line.
    
    Link: https://lore.kernel.org/r/20210619155641.19942-1-jsmart2021@gmail.com
    Fixes: 1628f5b ("scsi: elx: libefc_sli: Populate and post different WQEs")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Co-developed-by: Ram Vegesna <ram.vegesna@broadcom.com>
    Signed-off-by: Ram Vegesna <ram.vegesna@broadcom.com>
    Signed-off-by: James Smart <james.smart@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    James Smart authored and martinkpetersen committed Jun 23, 2021
    Copy the full SHA
    f6060eb View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2021

  1. scsi: aha1740: Avoid over-read of sense buffer

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy(), memmove(), and memset(), avoid
    intentionally reading across neighboring array fields.
    
    SCtmp->sense_buffer is 96 bytes, but ecbptr->sense is 14 bytes. Instead of
    over-reading ecbptr->sense, copy only the actual contents and zero pad the
    remaining bytes, avoiding potential over-reads.
    
    Link: https://lore.kernel.org/r/20210616212437.1727088-1-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    kees authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    041761f View commit details
    Browse the repository at this point in the history
  2. scsi: arcmsr: Avoid over-read of sense buffer

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy(), memmove(), and memset(), avoid
    intentionally reading across neighboring array fields.
    
    pcmd->sense_buffer is 96 bytes, and was being manually zero-filled.
    However, struct SENSE_DATA is 18 bytes, with ccb->arcmsr_cdb.SenseData only
    being 15 bytes, resulting in a 3 byte over-read.
    
    Copy only the contents of ccb->arcmsr_cdb.SenseData and zero fill the
    remainder, avoiding potential over-reads.
    
    Link: https://lore.kernel.org/r/20210616212428.1726958-1-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    kees authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    86a6a0b View commit details
    Browse the repository at this point in the history
  3. scsi: ips: Avoid over-read of sense buffer

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy() avoid intentionally reading across
    neighboring array fields.
    
    scb->scsi_cmd->sense_buffer is 96 bytes:
    	#define SCSI_SENSE_BUFFERSIZE        96
    
    tapeDCDB->sense_info is 56 bytes:
    	typedef struct {
    	   ...
    	   uint8_t   sense_info[56];
    	} IPS_DCDB_TABLE_TAPE, ...
    
    scb->dcdb.sense_info is 64 bytes:
    	typedef struct {
    	   ...
    	   uint8_t   sense_info[64];
    	   ...
    	} IPS_DCDB_TABLE, ...
    
    Copying 96 bytes from either was copying beyond the end of the respective
    buffers, leading to potential memory content exposures. Correctly copy the
    actual buffer contents and zero pad the remaining bytes.
    
    Link: https://lore.kernel.org/r/20210616212408.1726812-1-keescook@chromium.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    kees authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    4ab293c View commit details
    Browse the repository at this point in the history
  4. scsi: ufs: ufs-mediatek: Add missing of_node_put() in ufs_mtk_probe()

    The function is missing a of_node_put() on node. Fix this by adding the
    call before returning.
    
    Link: https://lore.kernel.org/r/1623929522-4389-1-git-send-email-zou_wei@huawei.com
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    SamuelZOU authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    d8b34a3 View commit details
    Browse the repository at this point in the history
  5. scsi: elx: libefc: Fix IRQ restore in efc_domain_dispatch_frame()

    Calling a nested spin_lock_irqsave() will overwrite the original "flags" so
    that they can not be enabled again at the end.
    
    Link: https://lore.kernel.org/r/YMyjH16k4M1yEmmU@mwanda
    Fixes: 3146240 ("scsi: elx: libefc: FC Domain state machine interfaces")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Dan Carpenter authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    7cca85d View commit details
    Browse the repository at this point in the history
  6. scsi: elx: libefc: Fix less than zero comparison of a unsigned int

    The comparison of the u32 variable rc to less than zero always false
    because it is unsigned. Fix this by making it an int.
    
    Link: https://lore.kernel.org/r/20210616170401.15831-1-colin.king@canonical.com
    Fixes: 202bfdf ("scsi: elx: libefc: FC node ELS and state handling")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Addresses-Coverity: ("Unsigned compared against 0")
    Colin Ian King authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    99cf922 View commit details
    Browse the repository at this point in the history
  7. scsi: elx: efct: Fix pointer error checking in debugfs init

    debugfs_create_xxx routines, which return pointers, are being checked for
    error by looking for NULL values. The routines may return pointer-munged
    -Exxx codes, so they should be using IS_ERR() to adapt.
    
    There are two cases:
    
     - The first case is on initial directory creation, which actually doesn't
       need to be checked. So remove the check.
    
     - Creation of the sessions subdirectory. Modify this creation to create
       under the initial directory created, and fix failure check.
    
    Link: https://lore.kernel.org/r/20210618233004.83769-1-jsmart2021@gmail.com
    Fixes: 4df84e8 ("scsi: elx: efct: Driver initialization routines")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    jsmart-gh authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    ae3272e View commit details
    Browse the repository at this point in the history
  8. scsi: elx: efct: Fix is_originator return code type

    efct_hw_iotype_is_originator() is returning a negative (-EIO) status which
    doesn't make sense for a u8 function type.
    
    Reviewing the code, the function only needs to return true/false, thus a
    bool status is most appropriate.
    
    Change the function return type and patch up the one callee as the bool
    inverses the if check.
    
    Link: https://lore.kernel.org/r/20210618231524.83179-1-jsmart2021@gmail.com
    Fixes: 4df84e8 ("scsi: elx: efct: Driver initialization routines")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    jsmart-gh authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    ca7f33c View commit details
    Browse the repository at this point in the history
  9. scsi: elx: efct: Fix link error for _bad_cmpxchg

    cmpxchg is being used on a bool type, which is requiring architecture
    support that isn't compatible with a bool.
    
    Convert variable abort_in_progress from bool to int.
    
    Link: https://lore.kernel.org/r/20210618174050.80302-1-jsmart2021@gmail.com
    Fixes: ebc076b ("scsi: elx: efct: Tie into kernel Kconfig and build process")
    Reported-by: kernel test robot <lkp@intel.com>
    Co-developed-by: Ram Vegesna <ram.vegesna@broadcom.com>
    Signed-off-by: Ram Vegesna <ram.vegesna@broadcom.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    jsmart-gh authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    d66a65b View commit details
    Browse the repository at this point in the history
  10. scsi: elx: efct: Eliminate unnecessary boolean check in efct_hw_comma…

    …nd_cancel()
    
    clang warns:
    
    drivers/scsi/elx/efct/efct_hw.c:1523:17: warning: address of array
    'ctx->buf' will always evaluate to 'true' [-Wpointer-bool-conversion]
                                  (!ctx->buf ? U32_MAX : *((u32 *)ctx->buf)));
                                   ~~~~~~^~~
    
    buf is an array in the middle of a struct so deferencing it is not a
    problem as long as ctx is not NULL. Eliminate the check, which fixes the
    warning.
    
    Link: ClangBuiltLinux#1398
    Link: https://lore.kernel.org/r/20210617063123.21239-1-nathan@kernel.org
    Fixes: 580c025 ("scsi: elx: efct: RQ buffer, memory pool allocation and deallocation APIs")
    Reviewed-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    nathanchance authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    0d7be7a View commit details
    Browse the repository at this point in the history
  11. scsi: elx: efct: Do not use id uninitialized in efct_lio_setup_session()

    clang warns:
    
    drivers/scsi/elx/efct/efct_lio.c:1216:24: warning: variable 'id' is
    uninitialized when used here [-Wuninitialized]
                          se_sess, node, id);
                                         ^~
    
    Shuffle the debug print after id's initialization so that the actual value
    is printed.
    
    Link: ClangBuiltLinux#1397
    Link: https://lore.kernel.org/r/20210617061721.2405511-1-nathan@kernel.org
    Fixes: 692e5d7 ("scsi: elx: efct: LIO backend interface routines")
    Reviewed-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    nathanchance authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    a255036 View commit details
    Browse the repository at this point in the history
  12. scsi: elx: efct: Fix error handling in efct_hw_init()

    Fix to return negative error code -ENOMEM from the error handling case
    instead of 0. Also fix typo in error message.
    
    Link: https://lore.kernel.org/r/20210617024837.1023069-1-weiyongjun1@huawei.com
    Fixes: 4df84e8 ("scsi: elx: efct: Driver initialization routines")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Reviewed-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Wei Yongjun authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    41962ab View commit details
    Browse the repository at this point in the history
  13. scsi: elx: efct: Remove redundant initialization of variable lun

    The variable "lun" is being initialized with a value that is never read, it
    is being updated later on. The assignment is redundant and can be removed.
    
    Link: https://lore.kernel.org/r/20210616171621.16176-1-colin.king@canonical.com
    Reviewed-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Addresses-Coverity: ("Unused value")
    Colin Ian King authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    61bf3fd View commit details
    Browse the repository at this point in the history
  14. scsi: elx: efct: Fix spelling mistake "Unexected" -> "Unexpected"

    There is a spelling mistake in a efc_log_info message. Fix it.
    
    Link: https://lore.kernel.org/r/20210616142637.12706-1-colin.king@canonical.com
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Colin Ian King authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    5911429 View commit details
    Browse the repository at this point in the history
  15. scsi: lpfc: Fix build error in lpfc_scsi.c

    Integration with VMID patches resulted in a build error when
    CONFIG_DEBUG_FS is disabled and driver option CONFIG_SCSI_LPFC_DEBUG_FS is
    disabled.
    
    It results in an undefined variable:
    lpfc_scsi:5595:3: error: 'uuid' undeclared (first use in this function); did you mean 'upid'?
    
    Link: https://lore.kernel.org/r/20210618171842.79710-1-jsmart2021@gmail.com
    Fixes: 33c7974 ("scsi: lpfc: vmid: Introduce VMID in I/O path")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    jsmart-gh authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    66b4d63 View commit details
    Browse the repository at this point in the history
  16. scsi: target: iscsi: Remove redundant continue statement

    The continue statement at the end of a loop has no effect, remove it.
    
    Link: https://lore.kernel.org/r/20210617114347.10247-1-colin.king@canonical.com
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Addresses-Coverity: ("Continue has no effect")
    Colin Ian King authored and martinkpetersen committed Jun 19, 2021
    Copy the full SHA
    79366f0 View commit details
    Browse the repository at this point in the history
Older