commit edb35b1ffc686fd9b5a91902f034eb9f4d2c9f6b
Author: Thomas Fourier <fourier.thomas@gmail.com>
Date:   Fri Jul 25 10:31:06 2025 +0200

    scsi: myrs: Fix dma_alloc_coherent() error check
    
    Check for NULL return value with dma_alloc_coherent(), because DMA
    address is not always set by dma_alloc_coherent() on failure.
    
    Fixes: 77266186397c ("scsi: myrs: Add Mylex RAID controller (SCSI interface)")
    Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
    Link: https://lore.kernel.org/r/20250725083112.43975-2-fourier.thomas@gmail.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e79aa10e288c617c12ac4eb3fe7962f5c644b8fe
Author: Qianfeng Rong <rongqianfeng@vivo.com>
Date:   Fri Aug 15 20:16:05 2025 +0800

    scsi: lpfc: use min() to improve code
    
    Use min_t() to reduce the code in lpfc_sli4_driver_resource_setup() and
    lpfc_nvme_prep_io_cmd(), and improve readability.
    
    Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
    Link: https://lore.kernel.org/r/20250815121609.384914-4-rongqianfeng@vivo.com
    Reviewed-by: Justin Tee <justin.tee@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 0138c16872bdda6b5113dec1cde5f93815c9f75c
Author: Qianfeng Rong <rongqianfeng@vivo.com>
Date:   Fri Aug 15 20:16:04 2025 +0800

    scsi: hpsa: use min()/min_t() to improve code
    
    Use min()/min_t() to reduce the code in complete_scsi_command() and
    hpsa_vpd_page_supported(), and improve readability.
    
    Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
    Link: https://lore.kernel.org/r/20250815121609.384914-3-rongqianfeng@vivo.com
    Acked-by: Don Brace <don.brace@microchip.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b5940feda3dc7a12133c6589e463d2b3b6c7fe96
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Tue Aug 19 08:43:49 2025 -0700

    scsi: ufs: core: Reduce the size of struct ufshcd_lrb
    
    The size of the data structures that are used in the hot path matters
    for performance (IOPS). Hence this patch that reduces the size of struct
    ufshcd_lrb on 64-bit systems by 16 bytes. The size of this data
    structure is reduced from 152 to 136 bytes.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250819154356.2256952-1-bvanassche@acm.org
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit cb7cc0cfb38cf50c902caadee0e0e87fc38490aa
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Tue Aug 19 08:39:50 2025 -0700

    scsi: ufs: core: Only collect timestamps if monitoring is enabled
    
    Every ktime_get() call in the hot path has a measurable impact on IOPS.
    Hence, only collect timestamps if the monitoring functionality is
    enabled.
    
    See also commit 1d8613a23f3c ("scsi: ufs: core: Introduce HBA
    performance monitor sysfs nodes").
    
    Cc: Can Guo <cang@codeaurora.org>
    Cc: Bean Huo <beanhuo@micron.com>
    Cc: Daejun Park <daejun7.park@samsung.com>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250819153958.2255907-1-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6f4b10226b6b1e7d1ff3cdb006cf0f6da6eed71e
Author: Gustavo A. R. Silva <gustavoars@kernel.org>
Date:   Wed Aug 13 16:07:44 2025 -0400

    scsi: qla2xxx: Fix memcpy() field-spanning write issue
    
    purex_item.iocb is defined as a 64-element u8 array, but 64 is the
    minimum size and it can be allocated larger. This makes it a standard
    empty flex array.
    
    This was motivated by field-spanning write warnings during FPIN testing:
    
    https://lore.kernel.org/linux-nvme/20250709211919.49100-1-bgurney@redhat.com/
    
      >  kernel: memcpy: detected field-spanning write (size 60) of single field
      >  "((uint8_t *)fpin_pkt + buffer_copy_offset)"
      >  at drivers/scsi/qla2xxx/qla_isr.c:1221 (size 44)
    
    I removed the outer wrapper from the iocb flex array, so that it can be
    linked to 'purex_item.size' with '__counted_by'.
    
    These changes remove the default minimum 64-byte allocation, requiring
    further changes.
    
      In 'struct scsi_qla_host' the embedded 'default_item' is now followed
      by '__default_item_iocb[QLA_DEFAULT_PAYLOAD_SIZE]' to reserve space
      that will be used as 'default_item.iocb'. This is wrapped using the
      'TRAILING_OVERLAP()' macro helper, which effectively creates a union
      between flexible-array member 'default_item.iocb' and
      '__default_item_iocb'.
    
      Since 'struct pure_item' now contains a flexible-array member, the
      helper must be placed at the end of 'struct scsi_qla_host' to prevent
      a '-Wflex-array-member-not-at-end' warning.
    
      'qla24xx_alloc_purex_item()' is adjusted to no longer expect the
      default minimum size to be part of 'sizeof(struct purex_item)', the
      entire flexible array size is added to the structure size for
      allocation.
    
    This also slightly changes the layout of the purex_item struct, as
    2-bytes of padding are added between 'size' and 'iocb'. The resulting
    size is the same, but iocb is shifted 2-bytes (the original 'purex_item'
    structure was padded at the end, after the 64-byte defined array size).
    I don't think this is a problem.
    
    Tested-by: Bryan Gurney <bgurney@redhat.com>
    Co-developed-by: Chris Leech <cleech@redhat.com>
    Signed-off-by: Chris Leech <cleech@redhat.com>
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Link: https://lore.kernel.org/r/20250813200744.17975-10-bgurney@redhat.com
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6b5da52a1825d600cdee1dd8bf90e95fa12620f0
Author: Qianfeng Rong <rongqianfeng@vivo.com>
Date:   Wed Aug 6 20:46:33 2025 +0800

    scsi: scsi_debug: Use vcalloc() to simplify code
    
    Use vcalloc() instead of vmalloc() followed by bitmap_zero() to simplify
    the function sdebug_add_store().
    
    Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
    Link: https://lore.kernel.org/r/20250806124633.383426-3-rongqianfeng@vivo.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit daedd69abfee3a871b3a8791ffe20b398e055b87
Author: Qianfeng Rong <rongqianfeng@vivo.com>
Date:   Wed Aug 6 20:46:32 2025 +0800

    scsi: ipr: Use vmalloc_array() to simplify code
    
    Use vmalloc_array() instead of vmalloc() to simplify the function
    ipr_alloc_dump().
    
    Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
    Link: https://lore.kernel.org/r/20250806124633.383426-2-rongqianfeng@vivo.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e115d3d70ecc674df2e716e7030893424fa110fb
Author: Cryolitia PukNgae <cryolitia@uniontech.com>
Date:   Wed Aug 6 11:13:16 2025 +0800

    scsi: hpsa: Fix incorrect comment format
    
    Comments should not have a leading plus sign.
    
    Signed-off-by: Cryolitia PukNgae <cryolitia@uniontech.com>
    Link: https://lore.kernel.org/r/20250806-scsi_typo-v1-1-ec353a303b31@uniontech.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6300d5c5438724c0876828da2f6e2c1a661871fc
Author: Nitin Rawat <quic_nitirawa@quicinc.com>
Date:   Mon Aug 11 13:03:30 2025 +0530

    scsi: ufs: ufs-qcom: Fix ESI null pointer dereference
    
    ESI/MSI is a performance optimization feature that provides dedicated
    interrupts per MCQ hardware queue. This is optional feature and UFS MCQ
    should work with and without ESI feature.
    
    Commit e46a28cea29a ("scsi: ufs: qcom: Remove the MSI descriptor abuse")
    brings a regression in ESI (Enhanced System Interrupt) configuration that
    causes a null pointer dereference when Platform MSI allocation fails.
    
    The issue occurs in when platform_device_msi_init_and_alloc_irqs() in
    ufs_qcom_config_esi() fails (returns -EINVAL) but the current code uses
    __free() macro for automatic cleanup free MSI resources that were never
    successfully allocated.
    
    Unable to handle kernel NULL pointer dereference at virtual
    address 0000000000000008
    
      Call trace:
      mutex_lock+0xc/0x54 (P)
      platform_device_msi_free_irqs_all+0x1c/0x40
      ufs_qcom_config_esi+0x1d0/0x220 [ufs_qcom]
      ufshcd_config_mcq+0x28/0x104
      ufshcd_init+0xa3c/0xf40
      ufshcd_pltfrm_init+0x504/0x7d4
      ufs_qcom_probe+0x20/0x58 [ufs_qcom]
    
    Fix by restructuring the ESI configuration to try MSI allocation first,
    before any other resource allocation and instead use explicit cleanup
    instead of __free() macro to avoid cleanup of unallocated resources.
    
    Tested on SM8750 platform with MCQ enabled, both with and without
    Platform ESI support.
    
    Fixes: e46a28cea29a ("scsi: ufs: qcom: Remove the MSI descriptor abuse")
    Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
    Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
    Link: https://lore.kernel.org/r/20250811073330.20230-1-quic_nitirawa@quicinc.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 09d57d68ba9a36117eadb75d3ecf817a3c091acc
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 15 08:58:26 2025 -0700

    scsi: ufs: core: Rename ufshcd_wait_for_doorbell_clr()
    
    The name ufshcd_wait_for_doorbell_clr() refers to legacy mode. Commit
    8d077ede48c1 ("scsi: ufs: Optimize the command queueing code") added
    support for MCQ mode in this function. Since then the name of this
    function is misleading. Hence change the name of this function into
    something that is appropriate for both legacy and MCQ mode.
    
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250815155842.472867-5-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 9ee35fd43f94bf19dbd27cffc213a31314b623d2
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 15 08:58:25 2025 -0700

    scsi: ufs: core: Fix the return value documentation
    
    ufshcd_wait_for_dev_cmd() and all its callers can return an OCS error.
    OCS errors are represented by positive integers. Remove the WARN_ONCE()
    statements that complain about positive error codes and update the
    documentation.
    
    Keep the behavior of ufshcd_wait_for_dev_cmd() because this return value
    may end be passed as the second argument of bsg_job_done() and
    bsg_job_done() handles positive and negative error codes differently.
    
    Cc: Peter Wang <peter.wang@mediatek.com>
    Fixes: cc59f3b68542 ("scsi: ufs: core: Improve return value documentation")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250815155842.472867-4-bvanassche@acm.org
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e5203d89d59bfcbe1f348aa0d2dc4449a8ba644c
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 15 08:58:24 2025 -0700

    scsi: ufs: core: Remove WARN_ON_ONCE() call from ufshcd_uic_cmd_compl()
    
    The UIC completion interrupt may be disabled while an UIC command is
    being processed. When the UIC completion interrupt is reenabled, an UIC
    interrupt is triggered and the WARN_ON_ONCE(!cmd) statement is hit.
    Hence this patch that removes this kernel warning.
    
    Fixes: fcd8b0450a9a ("scsi: ufs: core: Make ufshcd_uic_cmd_compl() easier to analyze")
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250815155842.472867-3-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit eabcac808ca3ee9878223d4b49b750979029016b
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 15 08:58:23 2025 -0700

    scsi: ufs: core: Fix IRQ lock inversion for the SCSI host lock
    
    Commit 3c7ac40d7322 ("scsi: ufs: core: Delegate the interrupt service
    routine to a threaded IRQ handler") introduced an IRQ lock inversion
    issue. Fix this lock inversion by changing the spin_lock_irq() calls into
    spin_lock_irqsave() calls in code that can be called either from
    interrupt context or from thread context. This patch fixes the following
    lockdep complaint:
    
    WARNING: possible irq lock inversion dependency detected
    6.12.30-android16-5-maybe-dirty-4k #1 Tainted: G        W  OE
    --------------------------------------------------------
    kworker/u28:0/12 just changed the state of lock:
    ffffff881e29dd60 (&hba->clk_gating.lock){-...}-{2:2}, at: ufshcd_release_scsi_cmd+0x60/0x110
    but this lock took another, HARDIRQ-unsafe lock in the past:
     (shost->host_lock){+.+.}-{2:2}
    
    and interrupts could create inverse lock ordering between them.
    
    other info that might help us debug this:
     Possible interrupt unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(shost->host_lock);
                                   local_irq_disable();
                                   lock(&hba->clk_gating.lock);
                                   lock(shost->host_lock);
      <Interrupt>
        lock(&hba->clk_gating.lock);
    
     *** DEADLOCK ***
    
    4 locks held by kworker/u28:0/12:
     #0: ffffff8800ac6158 ((wq_completion)async){+.+.}-{0:0}, at: process_one_work+0x1bc/0x65c
     #1: ffffffc085c93d70 ((work_completion)(&entry->work)){+.+.}-{0:0}, at: process_one_work+0x1e4/0x65c
     #2: ffffff881e29c0e0 (&shost->scan_mutex){+.+.}-{3:3}, at: __scsi_add_device+0x74/0x120
     #3: ffffff881960ea00 (&hwq->cq_lock){-...}-{2:2}, at: ufshcd_mcq_poll_cqe_lock+0x28/0x104
    
    the shortest dependencies between 2nd lock and 1st lock:
     -> (shost->host_lock){+.+.}-{2:2} {
        HARDIRQ-ON-W at:
                          lock_acquire+0x134/0x2b4
                          _raw_spin_lock+0x48/0x64
                          ufshcd_sl_intr+0x4c/0xa08
                          ufshcd_threaded_intr+0x70/0x12c
                          irq_thread_fn+0x48/0xa8
                          irq_thread+0x130/0x1ec
                          kthread+0x110/0x134
                          ret_from_fork+0x10/0x20
        SOFTIRQ-ON-W at:
                          lock_acquire+0x134/0x2b4
                          _raw_spin_lock+0x48/0x64
                          ufshcd_sl_intr+0x4c/0xa08
                          ufshcd_threaded_intr+0x70/0x12c
                          irq_thread_fn+0x48/0xa8
                          irq_thread+0x130/0x1ec
                          kthread+0x110/0x134
                          ret_from_fork+0x10/0x20
        INITIAL USE at:
                         lock_acquire+0x134/0x2b4
                         _raw_spin_lock+0x48/0x64
                         ufshcd_sl_intr+0x4c/0xa08
                         ufshcd_threaded_intr+0x70/0x12c
                         irq_thread_fn+0x48/0xa8
                         irq_thread+0x130/0x1ec
                         kthread+0x110/0x134
                         ret_from_fork+0x10/0x20
      }
      ... key      at: [<ffffffc085ba1a98>] scsi_host_alloc.__key+0x0/0x10
      ... acquired at:
       _raw_spin_lock_irqsave+0x5c/0x80
       __ufshcd_release+0x78/0x118
       ufshcd_send_uic_cmd+0xe4/0x118
       ufshcd_dme_set_attr+0x88/0x1c8
       ufs_google_phy_initialization+0x68/0x418 [ufs]
       ufs_google_link_startup_notify+0x78/0x27c [ufs]
       ufshcd_link_startup+0x84/0x720
       ufshcd_init+0xf3c/0x1330
       ufshcd_pltfrm_init+0x728/0x7d8
       ufs_google_probe+0x30/0x84 [ufs]
       platform_probe+0xa0/0xe0
       really_probe+0x114/0x454
       __driver_probe_device+0xa4/0x160
       driver_probe_device+0x44/0x23c
       __driver_attach_async_helper+0x60/0xd4
       async_run_entry_fn+0x4c/0x17c
       process_one_work+0x26c/0x65c
       worker_thread+0x33c/0x498
       kthread+0x110/0x134
       ret_from_fork+0x10/0x20
    
    -> (&hba->clk_gating.lock){-...}-{2:2} {
       IN-HARDIRQ-W at:
                        lock_acquire+0x134/0x2b4
                        _raw_spin_lock_irqsave+0x5c/0x80
                        ufshcd_release_scsi_cmd+0x60/0x110
                        ufshcd_compl_one_cqe+0x2c0/0x3f4
                        ufshcd_mcq_poll_cqe_lock+0xb0/0x104
                        ufs_google_mcq_intr+0x80/0xa0 [ufs]
                        __handle_irq_event_percpu+0x104/0x32c
                        handle_irq_event+0x40/0x9c
                        handle_fasteoi_irq+0x170/0x2e8
                        generic_handle_domain_irq+0x58/0x80
                        gic_handle_irq+0x48/0x104
                        call_on_irq_stack+0x3c/0x50
                        do_interrupt_handler+0x7c/0xd8
                        el1_interrupt+0x34/0x58
                        el1h_64_irq_handler+0x18/0x24
                        el1h_64_irq+0x68/0x6c
                        _raw_spin_unlock_irqrestore+0x3c/0x6c
                        debug_object_assert_init+0x16c/0x21c
                        __mod_timer+0x4c/0x48c
                        schedule_timeout+0xd4/0x16c
                        io_schedule_timeout+0x48/0x70
                        do_wait_for_common+0x100/0x194
                        wait_for_completion_io_timeout+0x48/0x6c
                        blk_execute_rq+0x124/0x17c
                        scsi_execute_cmd+0x18c/0x3f8
                        scsi_probe_and_add_lun+0x204/0xd74
                        __scsi_add_device+0xbc/0x120
                        ufshcd_async_scan+0x80/0x3c0
                        async_run_entry_fn+0x4c/0x17c
                        process_one_work+0x26c/0x65c
                        worker_thread+0x33c/0x498
                        kthread+0x110/0x134
                        ret_from_fork+0x10/0x20
       INITIAL USE at:
                       lock_acquire+0x134/0x2b4
                       _raw_spin_lock_irqsave+0x5c/0x80
                       ufshcd_hold+0x34/0x14c
                       ufshcd_send_uic_cmd+0x28/0x118
                       ufshcd_dme_set_attr+0x88/0x1c8
                       ufs_google_phy_initialization+0x68/0x418 [ufs]
                       ufs_google_link_startup_notify+0x78/0x27c [ufs]
                       ufshcd_link_startup+0x84/0x720
                       ufshcd_init+0xf3c/0x1330
                       ufshcd_pltfrm_init+0x728/0x7d8
                       ufs_google_probe+0x30/0x84 [ufs]
                       platform_probe+0xa0/0xe0
                       really_probe+0x114/0x454
                       __driver_probe_device+0xa4/0x160
                       driver_probe_device+0x44/0x23c
                       __driver_attach_async_helper+0x60/0xd4
                       async_run_entry_fn+0x4c/0x17c
                       process_one_work+0x26c/0x65c
                       worker_thread+0x33c/0x498
                       kthread+0x110/0x134
                       ret_from_fork+0x10/0x20
     }
     ... key      at: [<ffffffc085ba6fe8>] ufshcd_init.__key+0x0/0x10
     ... acquired at:
       mark_lock+0x1c4/0x224
       __lock_acquire+0x438/0x2e1c
       lock_acquire+0x134/0x2b4
       _raw_spin_lock_irqsave+0x5c/0x80
       ufshcd_release_scsi_cmd+0x60/0x110
       ufshcd_compl_one_cqe+0x2c0/0x3f4
       ufshcd_mcq_poll_cqe_lock+0xb0/0x104
       ufs_google_mcq_intr+0x80/0xa0 [ufs]
       __handle_irq_event_percpu+0x104/0x32c
       handle_irq_event+0x40/0x9c
       handle_fasteoi_irq+0x170/0x2e8
       generic_handle_domain_irq+0x58/0x80
       gic_handle_irq+0x48/0x104
       call_on_irq_stack+0x3c/0x50
       do_interrupt_handler+0x7c/0xd8
       el1_interrupt+0x34/0x58
       el1h_64_irq_handler+0x18/0x24
       el1h_64_irq+0x68/0x6c
       _raw_spin_unlock_irqrestore+0x3c/0x6c
       debug_object_assert_init+0x16c/0x21c
       __mod_timer+0x4c/0x48c
       schedule_timeout+0xd4/0x16c
       io_schedule_timeout+0x48/0x70
       do_wait_for_common+0x100/0x194
       wait_for_completion_io_timeout+0x48/0x6c
       blk_execute_rq+0x124/0x17c
       scsi_execute_cmd+0x18c/0x3f8
       scsi_probe_and_add_lun+0x204/0xd74
       __scsi_add_device+0xbc/0x120
       ufshcd_async_scan+0x80/0x3c0
       async_run_entry_fn+0x4c/0x17c
       process_one_work+0x26c/0x65c
       worker_thread+0x33c/0x498
       kthread+0x110/0x134
       ret_from_fork+0x10/0x20
    
    stack backtrace:
    CPU: 6 UID: 0 PID: 12 Comm: kworker/u28:0 Tainted: G        W  OE      6.12.30-android16-5-maybe-dirty-4k #1 ccd4020fe444bdf629efc3b86df6be920b8df7d0
    Tainted: [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
    Hardware name: Spacecraft board based on MALIBU (DT)
    Workqueue: async async_run_entry_fn
    Call trace:
     dump_backtrace+0xfc/0x17c
     show_stack+0x18/0x28
     dump_stack_lvl+0x40/0xa0
     dump_stack+0x18/0x24
     print_irq_inversion_bug+0x2fc/0x304
     mark_lock_irq+0x388/0x4fc
     mark_lock+0x1c4/0x224
     __lock_acquire+0x438/0x2e1c
     lock_acquire+0x134/0x2b4
     _raw_spin_lock_irqsave+0x5c/0x80
     ufshcd_release_scsi_cmd+0x60/0x110
     ufshcd_compl_one_cqe+0x2c0/0x3f4
     ufshcd_mcq_poll_cqe_lock+0xb0/0x104
     ufs_google_mcq_intr+0x80/0xa0 [ufs dd6f385554e109da094ab91d5f7be18625a2222a]
     __handle_irq_event_percpu+0x104/0x32c
     handle_irq_event+0x40/0x9c
     handle_fasteoi_irq+0x170/0x2e8
     generic_handle_domain_irq+0x58/0x80
     gic_handle_irq+0x48/0x104
     call_on_irq_stack+0x3c/0x50
     do_interrupt_handler+0x7c/0xd8
     el1_interrupt+0x34/0x58
     el1h_64_irq_handler+0x18/0x24
     el1h_64_irq+0x68/0x6c
     _raw_spin_unlock_irqrestore+0x3c/0x6c
     debug_object_assert_init+0x16c/0x21c
     __mod_timer+0x4c/0x48c
     schedule_timeout+0xd4/0x16c
     io_schedule_timeout+0x48/0x70
     do_wait_for_common+0x100/0x194
     wait_for_completion_io_timeout+0x48/0x6c
     blk_execute_rq+0x124/0x17c
     scsi_execute_cmd+0x18c/0x3f8
     scsi_probe_and_add_lun+0x204/0xd74
     __scsi_add_device+0xbc/0x120
     ufshcd_async_scan+0x80/0x3c0
     async_run_entry_fn+0x4c/0x17c
     process_one_work+0x26c/0x65c
     worker_thread+0x33c/0x498
     kthread+0x110/0x134
     ret_from_fork+0x10/0x20
    
    Cc: Neil Armstrong <neil.armstrong@linaro.org>
    Cc: André Draszik <andre.draszik@linaro.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Fixes: 3c7ac40d7322 ("scsi: ufs: core: Delegate the interrupt service routine to a threaded IRQ handler")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250815155842.472867-2-bvanassche@acm.org
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 03f69351b63ea9583bd91c60a83d0a8573ea29fb
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:25 2025 +0200

    scsi: pm80xx: Use pm80xx_get_local_phy_id() to access phy array
    
    While the current code is perfectly fine (because we verify that the
    device is directly attached before using attached_phy to index the
    pm8001_ha->phy array), let's use the pm80xx_get_local_phy_id() helper
    anyway, to reduce the chance that someone will copy paste this pattern
    to other parts of the driver.
    
    Note that in this specific case, we still need to keep the check that
    the device is not behind an expander, because we do not want to clear
    attached_phy of the expander if a device behind the expander disappears
    (as that would disable all the other devices behind the expander).
    
    However, if it is the expander itself that disappears, attached_phy will
    be cleared, just like it would for any other directly attached device.
    
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-22-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
    Acked-by: Jack Wang <jinpu.wang@ionos.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit ad70c6bc776b53e61c8db6533c833aff0ff5da8b
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:24 2025 +0200

    scsi: pm80xx: Fix pm8001_abort_task() for chip_8006 when using an expander
    
    For a direct attached device, attached_phy contains the local phy id.
    For a device behind an expander, attached_phy contains the remote phy
    id, not the local phy id.
    
    The pm8001_ha->phy array only contains the phys of the HBA.  It does not
    contain the phys of the expander.
    
    Thus, you cannot use attached_phy to index the pm8001_ha->phy array,
    without first verifying that the device is directly attached.
    
    Use the pm80xx_get_local_phy_id() helper to make sure that we use the
    local phy id to index the array, regardless if the device is directly
    attached or not.
    
    Fixes: 869ddbdcae3b ("scsi: pm80xx: corrected SATA abort handling sequence.")
    Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-21-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit b4ec98303f9fc9b1da0053106716db6a7e002d8b
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:23 2025 +0200

    scsi: pm80xx: Add helper function to get the local phy id
    
    Avoid duplicated code by adding a helper to get the local phy id.
    
    No functional changes intended.
    
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-20-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 35e388696c3f3b6bf70e2010873c5e0c1d37d579
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:22 2025 +0200

    scsi: pm80xx: Use dev_parent_is_expander() helper
    
    Make use of the dev_parent_is_expander() helper.
    
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-19-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
    Acked-by: Jack Wang <jinpu.wang@ionos.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 3adf779489839516d61c3ead08cc148a7374b581
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:21 2025 +0200

    scsi: mvsas: Use dev_parent_is_expander() helper
    
    Make use of the dev_parent_is_expander() helper.
    
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-18-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit ad6ae22927a7ed411d892d80934610c49882a378
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:20 2025 +0200

    scsi: isci: Use dev_parent_is_expander() helper
    
    Make use of the dev_parent_is_expander() helper.
    
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-17-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 0c0188dd200e4709da72cc3d65c012f34030b950
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:19 2025 +0200

    scsi: hisi_sas: Use dev_parent_is_expander() helper
    
    Make use of the dev_parent_is_expander() helper.
    
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-16-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit e5eb72c92eb724aa14c50c7d92d1a576dd50d7e6
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:18 2025 +0200

    scsi: libsas: Add dev_parent_is_expander() helper
    
    Many libsas drivers check if the parent of the device is an expander.
    Create a helper that the libsas drivers will use in follow up commits.
    
    Suggested-by: Damien Le Moal <dlemoal@kernel.org>
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-15-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Reviewed-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 251be2f6037fb7ab399f68cd7428ff274133d693
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:17 2025 +0200

    scsi: pm80xx: Fix array-index-out-of-of-bounds on rmmod
    
    Since commit f7b705c238d1 ("scsi: pm80xx: Set phy_attached to zero when
    device is gone") UBSAN reports:
    
      UBSAN: array-index-out-of-bounds in drivers/scsi/pm8001/pm8001_sas.c:786:17
      index 28 is out of range for type 'pm8001_phy [16]'
    
    on rmmod when using an expander.
    
    For a direct attached device, attached_phy contains the local phy id.
    For a device behind an expander, attached_phy contains the remote phy
    id, not the local phy id.
    
    I.e. while pm8001_ha will have pm8001_ha->chip->n_phy local phys, for a
    device behind an expander, attached_phy can be much larger than
    pm8001_ha->chip->n_phy (depending on the amount of phys of the
    expander).
    
    E.g. on my system pm8001_ha has 8 phys with phy ids 0-7.  One of the
    ports has an expander connected.  The expander has 31 phys with phy ids
    0-30.
    
    The pm8001_ha->phy array only contains the phys of the HBA.  It does not
    contain the phys of the expander.  Thus, it is wrong to use attached_phy
    to index the pm8001_ha->phy array for a device behind an expander.
    
    Thus, we can only clear phy_attached for devices that are directly
    attached.
    
    Fixes: f7b705c238d1 ("scsi: pm80xx: Set phy_attached to zero when device is gone")
    Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-14-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Tested-by: Damien Le Moal <dlemoal@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit eeee1086073e0058243c8554738271561bde81f1
Author: Niklas Cassel <cassel@kernel.org>
Date:   Thu Aug 14 19:32:16 2025 +0200

    scsi: pm80xx: Restore support for expanders
    
    Commit 0f630c58e31a ("scsi: pm80xx: Do not use libsas port ID") broke
    support for expanders. After the commit, devices behind an expander are
    no longer detected.
    
    Simply reverting the commit restores support for devices behind an
    expander.
    
    Instead of reverting the commit (and reintroducing a helper to get the
    port), get the port directly from the lldd_port pointer in struct
    asd_sas_port.
    
    Fixes: 0f630c58e31a ("scsi: pm80xx: Do not use libsas port ID")
    Suggested-by: Igor Pylypiv <ipylypiv@google.com>
    Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
    Signed-off-by: Niklas Cassel <cassel@kernel.org>
    Link: https://lore.kernel.org/r/20250814173215.1765055-13-cassel@kernel.org
    Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
    Tested-by: Damien Le Moal <dlemoal@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit dc60a408a1dc29974bc82239b07b70c5f7fcfd31
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Aug 13 10:10:41 2025 -0700

    scsi: ufs: core: Improve IOPS
    
    Measurements have shown that IOPS improve by 2% - 3% on my UFS 4 test
    setup every time a ktime_get() call is removed from the UFS driver
    command processing path. Hence this patch that modifies
    ufshcd_clk_scaling_start_busy() such that ktime_get() is only called if
    the returned value will be used.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Link: https://lore.kernel.org/r/20250813171049.3399387-1-bvanassche@acm.org
    Reviewed-by: Bean Huo <beanhuo@micron.com>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 9dcf111dd3e7ed5fce82bb108e3a3fc001c07225
Author: Dan Carpenter <dan.carpenter@linaro.org>
Date:   Wed Aug 13 08:49:08 2025 +0300

    scsi: qla4xxx: Prevent a potential error pointer dereference
    
    The qla4xxx_get_ep_fwdb() function is supposed to return NULL on error,
    but qla4xxx_ep_connect() returns error pointers.  Propagating the error
    pointers will lead to an Oops in the caller, so change the error pointers
    to NULL.
    
    Fixes: 13483730a13b ("[SCSI] qla4xxx: fix flash/ddb support")
    Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://lore.kernel.org/r/aJwnVKS9tHsw1tEu@stanley.mountain
    Reviewed-by: Chris Leech <cleech@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 823f95575d85454ccad7d5b684aec42e57b962f6
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Tue Aug 12 16:02:59 2025 +0300

    scsi: ufs: ufs-pci: Add support for Intel Wildcat Lake
    
    Add PCI ID to support Intel Wildcat Lake, same as MTL.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20250812130259.109645-1-adrian.hunter@intel.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 5863638598f5e4f64d2f85b03f376383ca1f2ab7
Author: Alice Chao <alice.chao@mediatek.com>
Date:   Mon Aug 11 21:11:26 2025 +0800

    scsi: ufs: host: mediatek: Fix invalid access in vccqx handling
    
    Add a NULL check before accessing the 'vccqx' pointer to prevent invalid
    memory access. This ensures that the function safely handles cases where
    'vccq' and 'vccq2' are not initialized, improving the robustness of the
    power management code.
    
    Signed-off-by: Alice Chao <alice.chao@mediatek.com>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-11-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 878ed88c50bfb14d972dd3b86a1c8188c58de4e5
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:25 2025 +0800

    scsi: ufs: host: mediatek: Change reset sequence for improved stability
    
    Modify the reset sequence to ensure that the device reset pin is set low
    before the host is disabled. This change enhances the stability of the
    reset process by ensuring the correct order of operations.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-10-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit bacb96ce06c05804fae4bfd38c4058b6d4c423b3
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:24 2025 +0800

    scsi: ufs: host: mediatek: Fix UniPro setting for MT6989
    
    Set the UniPro attribute 0xD09E[4] bit to enable the 1144 functions
    specifically for the MT6989 platform. This adjustment ensures proper
    functionality and compatibility with the MT6989 hardware.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-9-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f1617ecf18aaf222482f683f44ab4b155976539d
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:23 2025 +0800

    scsi: ufs: host: mediatek: Optimize power mode change handling
    
    Optimize the power mode change process by skipping the adaptation
    setting toggle if the requested power mode configuration is already
    applied. This enhancement reduces unnecessary operations, improving
    efficiency during power mode transitions.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-8-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 979feee0cf43b32d288931649d7c6d9a5524ea55
Author: Alice Chao <alice.chao@mediatek.com>
Date:   Mon Aug 11 21:11:22 2025 +0800

    scsi: ufs: host: mediatek: Assign power mode userdata before FASTAUTO mode change
    
    Assign power mode userdata settings before transitioning to FASTAUTO
    power mode. This ensures that default timeout values are set for various
    parameters, enhancing the reliability and performance of the power mode
    change process.
    
    Signed-off-by: Alice Chao <alice.chao@mediatek.com>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-7-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 7212d624f8638f8ea8ad1ecbb80622c7987bc7a1
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:21 2025 +0800

    scsi: ufs: host: mediatek: Fix PWM mode switch issue
    
    Address a failure in switching to PWM mode by ensuring proper
    configuration of power modes and adaptation settings. The changes
    include checks for SLOW_MODE and adjustments to the desired working mode
    and adaptation configuration based on the device's power mode and
    hardware version.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-6-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 86a678a25108705657e2f3bb00c42f9e5e5d692b
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:20 2025 +0800

    scsi: ufs: host: mediatek: Fine-tune clock scaling
    
    Disable clock scaling for UFS versions below 4.0. Clock scaling is
    unnecessary for these versions, and this change ensures that the feature
    is only enabled for compatible UFS versions.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-5-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit f91c6c70d103a619c58aa02bddf3c27c6433556a
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:19 2025 +0800

    scsi: ufs: host: mediatek: Add debug information for Auto-Hibern8
    
    Enhance the clock gating logic by adding debug information for the
    Auto-Hibern8 (AHIT) register.  This additional logging aids in
    troubleshooting by providing insights into the AHIT configuration when
    the clock is not turned off as expected.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-4-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit aa86602a483ba48f51044fbaefa1ebbf6da194a4
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:18 2025 +0800

    scsi: ufs: host: mediatek: Fix auto-hibern8 timer configuration
    
    Move the configuration of the Auto-Hibern8 (AHIT) timer from the
    post-link stage to the 'fixup_dev_quirks' function. This change allows
    setting the AHIT based on the vendor requirements:
    
       (a) Samsung: 3.5 ms
       (b) Micron: 2 ms
       (c) Others: 1 ms
    
    Additionally, the clock gating timer is adjusted based on the AHIT
    scale, with a maximum setting of 10 ms. This ensures that the clock
    gating delay is appropriately configured to match the AHIT settings.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-3-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 6c00c493a344b65fb0a356cb3f328a647085687b
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 11 21:11:17 2025 +0800

    scsi: ufs: host: mediatek: Simplify variable usage
    
    Simplify the code by using 'info->vcc' instead of 'hba->vreg_info.vcc',
    as they refer to the same value. This change improves code readability.
    
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250811131423.3444014-2-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 149009f2dc6f781f490a13264eaa565281e4d490
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Thu Jul 31 09:15:54 2025 +0200

    scsi: ufs: qcom: dt-bindings: Split SM8650 and similar
    
    The binding for Qualcomm SoC UFS controllers grew and it will grow
    further.  Split SM8650 and SM8750 UFS controllers which:
    
     1. Do not reference ICE as IO address space, but as phandle,
    
     2. Have same order of clocks.
    
     3. Have MCQ I/O address space. Document that MCQ address space as
        optional to maintain backwards compatibility and because Linux
        drivers can operate perfectly fine without it (thus without MCQ
        feature).  Linux driver already uses "mcq" as possible name for
        "reg-names" property.
    
    The split allows easier review and maintenance of the binding.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20250731-dt-bindings-ufs-qcom-v2-3-53bb634bf95a@linaro.org
    Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
    Acked-by: Manivannan Sadhasivam <mani@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 655c8f511926250e0da9e8b1a9b8f1cf2c173b41
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Thu Jul 31 09:15:53 2025 +0200

    scsi: ufs: qcom: dt-bindings: Split SC7180 and similar
    
    The binding for Qualcomm SoC UFS controllers grew and it will grow
    further.  Split SC7180 and several other devices which:
    
     1. Do not reference ICE as I/O address space, but as a phandle,
    
     2. Have same order of clocks (SC7180 has one clock less than SC7280 and
        other variants in split binding).
    
    The split allows easier review and maintenance of the binding.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20250731-dt-bindings-ufs-qcom-v2-2-53bb634bf95a@linaro.org
    Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 7f224967aee7d5ad88b6db76ca161be622ae7b34
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Thu Jul 31 09:15:52 2025 +0200

    scsi: ufs: qcom: dt-bindings: Split common part to qcom,ufs-common.yaml
    
    The binding for Qualcomm SoC UFS controllers grew and it will grow
    further.  It already includes several conditionals, partially for
    difference in handling encryption block (ICE, either as phandle or as
    I/O address space) but it will further grow for MCQ.
    
    Prepare for splitting this one big binding into several ones for common
    group of devices by defining common part for all Qualcomm UFS schemas.
    
    This only moves code, no functional impact expected.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://lore.kernel.org/r/20250731-dt-bindings-ufs-qcom-v2-1-53bb634bf95a@linaro.org
    Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit fad2cf04e91fd3c4310731537bf98d1f8a0b4137
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Aug 12 10:28:05 2025 +0200

    scsi: fnic: Remove a useless struct mempool forward declaration
    
    struct mempool doesn't currently exist, and thus also isn't used in
    fnic.h, remove it.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20250812082808.371119-1-hch@lst.de
    Reviewed-by: Karan Tilak Kumar <kartilak@cisco.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 72fc388d8bc0b49fd038477b74618cc15ce18b56
Author: Waqar Hameed <waqar.hameed@axis.com>
Date:   Tue Aug 5 11:33:36 2025 +0200

    scsi: ufs: core: Remove error print for devm_add_action_or_reset()
    
    When devm_add_action_or_reset() fails, it is due to a failed memory
    allocation and will thus return -ENOMEM. dev_err_probe() doesn't do
    anything when error is -ENOMEM. Therefore, remove the useless call to
    dev_err_probe() when devm_add_action_or_reset() fails, and just return
    the value instead.
    
    Signed-off-by: Waqar Hameed <waqar.hameed@axis.com>
    Link: https://lore.kernel.org/r/pndtt2mkt8v.a.out@axis.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 7ec2bd6cd2d0ce6d6224519f895cb932ed5af667
Author: Peter Wang <peter.wang@mediatek.com>
Date:   Mon Aug 4 14:01:54 2025 +0800

    scsi: ufs: mediatek: Fix out-of-bounds access in MCQ IRQ mapping
    
    Address a potential out-of-bounds access issue when accessing
    'host->mcq_intr_info[q_index]'. The value of 'q_index' might exceed the
    valid array bounds if 'q_index == nr'.  Correct condition to 'q_index >=
    nr' to prevent accessing invalid memory.
    
    Fixes: 66e26a4b8a77 ("scsi: ufs: host: mediatek: Set IRQ affinity policy for MCQ mode")
    Cc: stable@vger.kernel.org
    Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: Peter Wang <peter.wang@mediatek.com>
    Link: https://lore.kernel.org/r/20250804060249.1387057-1-peter.wang@mediatek.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit eea6cafb5890db488fce1c69d05464214616d800
Author: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Date:   Fri Aug 1 18:52:02 2025 +0000

    scsi: lpfc: Remove redundant assignment to avoid memory leak
    
    Remove the redundant assignment if kzalloc() succeeds to avoid memory
    leak.
    
    Fixes: bd2cdd5e400f ("scsi: lpfc: NVME Initiator: Add debugfs support")
    Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
    Link: https://lore.kernel.org/r/20250801185202.42631-1-jiashengjiangcool@gmail.com
    Reviewed-by: Justin Tee <justin.tee@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit a59976116a01dad1c72460f9ed700bf4b3fdbebd
Author: Jean Delvare <jdelvare@suse.de>
Date:   Thu Jul 31 13:33:11 2025 +0200

    scsi: lpfc: Fix wrong function reference in a comment
    
    Function scsi_host_remove() doesn't exist, the actual function name is
    scsi_remove_host().
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Link: https://lore.kernel.org/r/20250731133311.52034cc4@endymion
    Reviewed-by: Justin Tee <justin.tee@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 034d319c8899e8c5c0a35c6692c7fc7e8c12c374
Author: Nitin Rawat <quic_nitirawa@quicinc.com>
Date:   Tue Jul 29 04:27:11 2025 +0530

    scsi: ufs: core: Fix interrupt handling for MCQ Mode
    
    Commit 3c7ac40d7322 ("scsi: ufs: core: Delegate the interrupt service
    routine to a threaded IRQ handler") introduced a regression where the UFS
    interrupt status register (IS) was not cleared in ufshcd_intr() when
    operating in MCQ mode. As a result, the IS register remained uncleared.
    
    This led to a persistent issue during UIC interrupts:
    ufshcd_is_auto_hibern8_error() consistently returned true because the
    UFSHCD_UIC_HIBERN8_MASK bit was set, while the active command was neither
    UIC_CMD_DME_HIBER_ENTER nor UIC_CMD_DME_HIBER_EXIT. This caused
    continuous auto hibern8 enter errors and device failed to boot.
    
    To fix this, ensure that the interrupt status register is properly
    cleared in the ufshcd_intr() function for both MCQ mode with ESI enabled.
    
    [    4.553226] ufshcd-qcom 1d84000.ufs: ufshcd_check_errors: Auto
    Hibern8 Enter failed - status: 0x00000040, upmcrs: 0x00000001
    [    4.553229] ufshcd-qcom 1d84000.ufs: ufshcd_check_errors: saved_err
    0x40 saved_uic_err 0x0
    [    4.553311] host_regs: 00000000: d5c7033f 20e0071f 00000400 00000000
    [    4.553312] host_regs: 00000010: 01000000 00010217 00000c96 00000000
    [    4.553314] host_regs: 00000020: 00000440 00170ef5 00000000 00000000
    [    4.553316] host_regs: 00000030: 0000010f 00000001 00000000 00000000
    [    4.553317] host_regs: 00000040: 00000000 00000000 00000000 00000000
    [    4.553319] host_regs: 00000050: fffdf000 0000000f 00000000 00000000
    [    4.553320] host_regs: 00000060: 00000001 80000000 00000000 00000000
    [    4.553322] host_regs: 00000070: fffde000 0000000f 00000000 00000000
    [    4.553323] host_regs: 00000080: 00000001 00000000 00000000 00000000
    [    4.553325] host_regs: 00000090: 00000002 d0020000 00000000 01930200
    
    Fixes: 3c7ac40d7322 ("scsi: ufs: core: Delegate the interrupt service routine to a threaded IRQ handler")
    Co-developed-by: Palash Kambar <quic_pkambar@quicinc.com>
    Signed-off-by: Palash Kambar <quic_pkambar@quicinc.com>
    Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
    Link: https://lore.kernel.org/r/20250728225711.29273-1-quic_nitirawa@quicinc.com
    Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-QRD
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Peter Wang <peter.wang@mediatek.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit 383cd6d879a18acdaa84c29330b25c49cbc0b490
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Tue Jul 29 07:49:30 2025 +0100

    scsi: scsi_debug: Make read-only arrays static const
    
    Don't populate the read-only arrays on the stack at run time, instead
    make them static const. Also reduces overall size.
    
    before:
       text    data     bss     dec     hex filename
     367439   89582    5952  462973   7107d drivers/scsi/scsi_debug.o
    
    after:
       text    data     bss     dec     hex filename
     365847   90702    5952  462501   70ea5 drivers/scsi/scsi_debug.o
    
    (gcc 14.2.0, x86-64)
    
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Link: https://lore.kernel.org/r/20250729064930.1659007-1-colin.i.king@gmail.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

commit a2f54ff15c3bdc0132e20aae041607e2320dbd73
Author: Damien Le Moal <dlemoal@kernel.org>
Date:   Mon Jul 28 13:17:00 2025 +0900

    scsi: core: sysfs: Correct sysfs attributes access rights
    
    The SCSI sysfs attributes "supported_mode" and "active_mode" do not
    define a store method and thus cannot be modified.  Correct the
    DEVICE_ATTR() call for these two attributes to not include S_IWUSR to
    allow write access as they are read-only.
    
    Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
    Link: https://lore.kernel.org/r/20250728041700.76660-1-dlemoal@kernel.org
    Reviewed-by: John Garry <john.g.garry@oracle.com>
    Reviewed-by: Johannes Thumshin <johannes.thumshirn@wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>