]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Apr 2024 13:55:51 +0000 (15:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Apr 2024 13:55:51 +0000 (15:55 +0200)
added patches:
scsi-libsas-add-a-helper-sas_get_sas_addr_and_dev_type.patch

queue-6.1/scsi-libsas-add-a-helper-sas_get_sas_addr_and_dev_type.patch [new file with mode: 0644]
queue-6.1/scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch
queue-6.1/series

diff --git a/queue-6.1/scsi-libsas-add-a-helper-sas_get_sas_addr_and_dev_type.patch b/queue-6.1/scsi-libsas-add-a-helper-sas_get_sas_addr_and_dev_type.patch
new file mode 100644 (file)
index 0000000..316c5ca
--- /dev/null
@@ -0,0 +1,56 @@
+From a57345279fd311ba679b8083feb0eec5272c7729 Mon Sep 17 00:00:00 2001
+From: Xingui Yang <yangxingui@huawei.com>
+Date: Thu, 7 Mar 2024 14:14:12 +0000
+Subject: scsi: libsas: Add a helper sas_get_sas_addr_and_dev_type()
+
+From: Xingui Yang <yangxingui@huawei.com>
+
+commit a57345279fd311ba679b8083feb0eec5272c7729 upstream.
+
+Add a helper to get attached_sas_addr and device type from disc_resp.
+
+Suggested-by: John Garry <john.g.garry@oracle.com>
+Signed-off-by: Xingui Yang <yangxingui@huawei.com>
+Link: https://lore.kernel.org/r/20240307141413.48049-2-yangxingui@huawei.com
+Reviewed-by: John Garry <john.g.garry@oracle.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/scsi/libsas/sas_expander.c |   19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+--- a/drivers/scsi/libsas/sas_expander.c
++++ b/drivers/scsi/libsas/sas_expander.c
+@@ -1651,6 +1651,16 @@ out_err:
+ /* ---------- Domain revalidation ---------- */
++static void sas_get_sas_addr_and_dev_type(struct smp_disc_resp *disc_resp,
++                                        u8 *sas_addr,
++                                        enum sas_device_type *type)
++{
++      memcpy(sas_addr, disc_resp->disc.attached_sas_addr, SAS_ADDR_SIZE);
++      *type = to_dev_type(&disc_resp->disc);
++      if (*type == SAS_PHY_UNUSED)
++              memset(sas_addr, 0, SAS_ADDR_SIZE);
++}
++
+ static int sas_get_phy_discover(struct domain_device *dev,
+                               int phy_id, struct smp_disc_resp *disc_resp)
+ {
+@@ -1704,13 +1714,8 @@ int sas_get_phy_attached_dev(struct doma
+               return -ENOMEM;
+       res = sas_get_phy_discover(dev, phy_id, disc_resp);
+-      if (res == 0) {
+-              memcpy(sas_addr, disc_resp->disc.attached_sas_addr,
+-                     SAS_ADDR_SIZE);
+-              *type = to_dev_type(&disc_resp->disc);
+-              if (*type == 0)
+-                      memset(sas_addr, 0, SAS_ADDR_SIZE);
+-      }
++      if (res == 0)
++              sas_get_sas_addr_and_dev_type(disc_resp, sas_addr, type);
+       kfree(disc_resp);
+       return res;
+ }
index c189df030f55f230e2a1df974461a03ee09f5424..819b584137c63f2b9a572e2d2fb0646c4cf5e211 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/scsi/libsas/sas_expander.c
 +++ b/drivers/scsi/libsas/sas_expander.c
-@@ -1972,6 +1972,7 @@ static int sas_rediscover_dev(struct dom
+@@ -1977,6 +1977,7 @@ static int sas_rediscover_dev(struct dom
        struct expander_device *ex = &dev->ex_dev;
        struct ex_phy *phy = &ex->ex_phy[phy_id];
        enum sas_device_type type = SAS_PHY_UNUSED;
@@ -38,7 +38,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        u8 sas_addr[SAS_ADDR_SIZE];
        char msg[80] = "";
        int res;
-@@ -1983,33 +1984,41 @@ static int sas_rediscover_dev(struct dom
+@@ -1988,33 +1989,41 @@ static int sas_rediscover_dev(struct dom
                 SAS_ADDR(dev->sas_addr), phy_id, msg);
  
        memset(sas_addr, 0, SAS_ADDR_SIZE);
@@ -88,7 +88,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        } else if (SAS_ADDR(sas_addr) == SAS_ADDR(phy->attached_sas_addr) &&
                   dev_type_flutter(type, phy->attached_dev_type)) {
                struct domain_device *ata_dev = sas_ex_to_ata(dev, phy_id);
-@@ -2021,7 +2030,7 @@ static int sas_rediscover_dev(struct dom
+@@ -2026,7 +2035,7 @@ static int sas_rediscover_dev(struct dom
                        action = ", needs recovery";
                pr_debug("ex %016llx phy%02d broadcast flutter%s\n",
                         SAS_ADDR(dev->sas_addr), phy_id, action);
@@ -97,7 +97,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        }
  
        /* we always have to delete the old device when we went here */
-@@ -2030,7 +2039,10 @@ static int sas_rediscover_dev(struct dom
+@@ -2035,7 +2044,10 @@ static int sas_rediscover_dev(struct dom
                SAS_ADDR(phy->attached_sas_addr));
        sas_unregister_devs_sas_addr(dev, phy_id, last);
  
index 692aba1e2f07cf23e3d79213147935e5380db757..fb5f419c72ccb66a48370e95af1eee2b0b6aab4c 100644 (file)
@@ -265,4 +265,5 @@ x86-cpu-enable-stibp-on-amd-if-automatic-ibrs-is-enabled.patch
 tls-fix-use-after-free-on-failed-backlog-decryption.patch
 scsi-lpfc-correct-size-for-cmdwqe-rspwqe-for-memset.patch
 scsi-lpfc-correct-size-for-wqe-for-memset.patch
+scsi-libsas-add-a-helper-sas_get_sas_addr_and_dev_type.patch
 scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch