commit d53b681ce9ca7db5ef4ecb8d2cf465ae4a031264
Author: Chanwoo Lee <cw9316.lee@samsung.com>
Date:   Fri May 24 10:59:04 2024 +0900

    scsi: ufs: mcq: Fix error output and clean up ufshcd_mcq_abort()
    
    An error unrelated to ufshcd_try_to_abort_task is being logged and can
    cause confusion. Modify ufshcd_mcq_abort() to print the result of the abort
    failure. For readability, return immediately instead of 'goto'.
    
    Fixes: f1304d442077 ("scsi: ufs: mcq: Added ufshcd_mcq_abort()")
    Signed-off-by: Chanwoo Lee <cw9316.lee@samsung.com>
    Link: https://lore.kernel.org/r/20240524015904.1116005-1-cw9316.lee@samsung.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit d09c05aa35909adb7d29f92f0cd79fdcd1338ef0
Author: Martin K. Petersen <martin.petersen@oracle.com>
Date:   Mon May 20 22:30:40 2024 -0400

    scsi: core: Handle devices which return an unusually large VPD page count
    
    Peter Schneider reported that a system would no longer boot after
    updating to 6.8.4.  Peter bisected the issue and identified commit
    b5fc07a5fb56 ("scsi: core: Consult supported VPD page list prior to
    fetching page") as being the culprit.
    
    Turns out the enclosure device in Peter's system reports a byteswapped
    page length for VPD page 0. It reports "02 00" as page length instead
    of "00 02". This causes us to attempt to access 516 bytes (page length
    + header) of information despite only 2 pages being present.
    
    Limit the page search scope to the size of our VPD buffer to guard
    against devices returning a larger page count than requested.
    
    Link: https://lore.kernel.org/r/20240521023040.2703884-1-martin.petersen@oracle.com
    Fixes: b5fc07a5fb56 ("scsi: core: Consult supported VPD page list prior to fetching page")
    Cc: stable@vger.kernel.org
    Reported-by: Peter Schneider <pschneider1968@googlemail.com>
    Closes: https://lore.kernel.org/all/eec6ebbf-061b-4a7b-96dc-ea748aa4d035@googlemail.com/
    Tested-by: Peter Schneider <pschneider1968@googlemail.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e4f5f8298cf6ddae43210d236ad65ac2c6379559
Author: Deming Wang <wangdeming@inspur.com>
Date:   Mon May 13 07:59:56 2024 -0400

    scsi: mpt3sas: Add missing kerneldoc parameter descriptions
    
    Add missing kerneldoc parameter descriptions to _scsih_set_debug_level().
    
    Signed-off-by: Deming Wang <wangdeming@inspur.com>
    Link: https://lore.kernel.org/r/20240513115956.1576-1-wangdeming@inspur.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6c3bb589debd763dc4b94803ddf3c13b4fcca776
Author: Saurav Kashyap <skashyap@marvell.com>
Date:   Wed May 15 14:41:01 2024 +0530

    scsi: qedf: Set qed_slowpath_params to zero before use
    
    Zero qed_slowpath_params before use.
    
    Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Link: https://lore.kernel.org/r/20240515091101.18754-4-skashyap@marvell.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 78e88472b60936025b83eba57cffa59d3501dc07
Author: Saurav Kashyap <skashyap@marvell.com>
Date:   Wed May 15 14:41:00 2024 +0530

    scsi: qedf: Wait for stag work during unload
    
    If stag work is already scheduled and unload is called, it can lead to
    issues as unload cleans up the work element. Wait for stag work to get
    completed before cleanup during unload.
    
    Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Link: https://lore.kernel.org/r/20240515091101.18754-3-skashyap@marvell.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 51071f0831ea975fc045526dd7e17efe669dc6e1
Author: Saurav Kashyap <skashyap@marvell.com>
Date:   Wed May 15 14:40:59 2024 +0530

    scsi: qedf: Don't process stag work during unload and recovery
    
    Stag work can cause issues during unload and recovery, hence don't process
    it.
    
    Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Link: https://lore.kernel.org/r/20240515091101.18754-2-skashyap@marvell.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 9fad9d560af5c654bb38e0b07ee54a4e9acdc5cd
Author: Justin Stitt <justinstitt@google.com>
Date:   Wed May 8 17:22:51 2024 +0000

    scsi: sr: Fix unintentional arithmetic wraparound
    
    Running syzkaller with the newly reintroduced signed integer overflow
    sanitizer produces this report:
    
    [   65.194362] ------------[ cut here ]------------
    [   65.197752] UBSAN: signed-integer-overflow in ../drivers/scsi/sr_ioctl.c:436:9
    [   65.203607] -2147483648 * 177 cannot be represented in type 'int'
    [   65.207911] CPU: 2 PID: 10416 Comm: syz-executor.1 Not tainted 6.8.0-rc2-00035-gb3ef86b5a957 #1
    [   65.213585] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
    [   65.219923] Call Trace:
    [   65.221556]  <TASK>
    [   65.223029]  dump_stack_lvl+0x93/0xd0
    [   65.225573]  handle_overflow+0x171/0x1b0
    [   65.228219]  sr_select_speed+0xeb/0xf0
    [   65.230786]  ? __pm_runtime_resume+0xe6/0x130
    [   65.233606]  sr_block_ioctl+0x15d/0x1d0
    ...
    
    Historically, the signed integer overflow sanitizer did not work in the
    kernel due to its interaction with `-fwrapv` but this has since been
    changed [1] in the newest version of Clang. It was re-enabled in the kernel
    with Commit 557f8c582a9b ("ubsan: Reintroduce signed overflow sanitizer").
    
    Firstly, let's change the type of "speed" to unsigned long as
    sr_select_speed()'s only caller passes in an unsigned long anyways.
    
    $ git grep '\.select_speed'
    |       drivers/scsi/sr.c:      .select_speed           = sr_select_speed,
    ...
    |       static int cdrom_ioctl_select_speed(struct cdrom_device_info *cdi,
    |                       unsigned long arg)
    |       {
    |               ...
    |               return cdi->ops->select_speed(cdi, arg);
    |       }
    
    Next, let's add an extra check to make sure we don't exceed 0xffff/177
    (350) since 0xffff is the max speed. This has two benefits: 1) we deal
    with integer overflow before it happens and 2) we properly respect the
    max speed of 0xffff. There are some "magic" numbers here but I did not
    want to change more than what was necessary.
    
    Link: https://github.com/llvm/llvm-project/pull/82432 [1]
    Closes: https://github.com/KSPP/linux/issues/357
    Cc: linux-hardening@vger.kernel.org
    Signed-off-by: Justin Stitt <justinstitt@google.com>
    Link: https://lore.kernel.org/r/20240508-b4-b4-sio-sr_select_speed-v2-1-00b68f724290@google.com
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 10157b1fc1a762293381e9145041253420dfc6ad
Author: Martin Wilck <martin.wilck@suse.com>
Date:   Tue May 14 16:03:44 2024 +0200

    scsi: core: alua: I/O errors for ALUA state transitions
    
    When a host is configured with a few LUNs and I/O is running, injecting FC
    faults repeatedly leads to path recovery problems.  The LUNs have 4 paths
    each and 3 of them come back active after say an FC fault which makes 2 of
    the paths go down, instead of all 4. This happens after several iterations
    of continuous FC faults.
    
    Reason here is that we're returning an I/O error whenever we're
    encountering sense code 06/04/0a (LOGICAL UNIT NOT ACCESSIBLE, ASYMMETRIC
    ACCESS STATE TRANSITION) instead of retrying.
    
    [mwilck: The original patch was developed by Rajashekhar M A and Hannes
    Reinecke. I moved the code to alua_check_sense() as suggested by Mike
    Christie [1]. Evan Milne had raised the question whether pg->state should
    be set to transitioning in the UA case [2]. I believe that doing this is
    correct. SCSI_ACCESS_STATE_TRANSITIONING by itself doesn't cause I/O
    errors. Our handler schedules an RTPG, which will only result in an I/O
    error condition if the transitioning timeout expires.]
    
    [1] https://lore.kernel.org/all/0bc96e82-fdda-4187-148d-5b34f81d4942@oracle.com/
    [2] https://lore.kernel.org/all/CAGtn9r=kicnTDE2o7Gt5Y=yoidHYD7tG8XdMHEBJTBraVEoOCw@mail.gmail.com/
    
    Co-developed-by: Rajashekhar M A <rajs@netapp.com>
    Co-developed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Martin Wilck <martin.wilck@suse.com>
    Link: https://lore.kernel.org/r/20240514140344.19538-1-mwilck@suse.com
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 9f365cb8bbd0162963d6852651d7c9e30adcb7b5
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Tue May 14 13:47:23 2024 -0700

    scsi: mpi3mr: Use proper format specifier in mpi3mr_sas_port_add()
    
    When building for a 32-bit platform such as ARM or i386, for which size_t
    is unsigned int, there is a warning due to using an unsigned long format
    specifier:
    
      drivers/scsi/mpi3mr/mpi3mr_transport.c:1370:11: error: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Werror,-Wformat]
       1369 |                         ioc_warn(mrioc, "skipping port %u, max allowed value is %lu\n",
            |                                                                                 ~~~
            |                                                                                 %u
       1370 |                             i, sizeof(mr_sas_port->phy_mask) * 8);
            |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Use the proper format specifier for size_t, %zu, to resolve the warning for
    all platforms.
    
    Fixes: 3668651def2c ("scsi: mpi3mr: Sanitise num_phys")
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Link: https://lore.kernel.org/r/20240514-mpi3mr-fix-wformat-v1-1-f1ad49217e5e@kernel.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>