aboutsummaryrefslogtreecommitdiffstats
path: root/queue-5.4
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-04-01 15:56:47 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-04-01 15:57:05 +0200
commit963e2e9597db54ff15205c5c0cde8331e0e734e4 (patch)
tree4b3e21aef24ab99f5cdca2aaba0d021d2ff268a2 /queue-5.4
parente7cb18d23ec8ed96bcaa45bc2d80f08996251637 (diff)
downloadstable-queue-963e2e9597db54ff15205c5c0cde8331e0e734e4.tar.gz
drop libsas patch
Diffstat (limited to 'queue-5.4')
-rw-r--r--queue-5.4/scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch111
-rw-r--r--queue-5.4/series1
2 files changed, 0 insertions, 112 deletions
diff --git a/queue-5.4/scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch b/queue-5.4/scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch
deleted file mode 100644
index 84a5c020e2..0000000000
--- a/queue-5.4/scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 8e68a458bcf5b5cb9c3624598bae28f08251601f Mon Sep 17 00:00:00 2001
-From: Xingui Yang <yangxingui@huawei.com>
-Date: Thu, 7 Mar 2024 14:14:13 +0000
-Subject: scsi: libsas: Fix disk not being scanned in after being removed
-
-From: Xingui Yang <yangxingui@huawei.com>
-
-commit 8e68a458bcf5b5cb9c3624598bae28f08251601f upstream.
-
-As of commit d8649fc1c5e4 ("scsi: libsas: Do discovery on empty PHY to
-update PHY info"), do discovery will send a new SMP_DISCOVER and update
-phy->phy_change_count. We found that if the disk is reconnected and phy
-change_count changes at this time, the disk scanning process will not be
-triggered.
-
-Therefore, call sas_set_ex_phy() to update the PHY info with the results of
-the last query. And because the previous phy info will be used when calling
-sas_unregister_devs_sas_addr(), sas_unregister_devs_sas_addr() should be
-called before sas_set_ex_phy().
-
-Fixes: d8649fc1c5e4 ("scsi: libsas: Do discovery on empty PHY to update PHY info")
-Signed-off-by: Xingui Yang <yangxingui@huawei.com>
-Link: https://lore.kernel.org/r/20240307141413.48049-3-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 | 32 ++++++++++++++++++++++----------
- 1 file changed, 22 insertions(+), 10 deletions(-)
-
---- a/drivers/scsi/libsas/sas_expander.c
-+++ b/drivers/scsi/libsas/sas_expander.c
-@@ -1997,6 +1997,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;
-+ struct smp_disc_resp *disc_resp;
- u8 sas_addr[SAS_ADDR_SIZE];
- char msg[80] = "";
- int res;
-@@ -2008,33 +2009,41 @@ static int sas_rediscover_dev(struct dom
- SAS_ADDR(dev->sas_addr), phy_id, msg);
-
- memset(sas_addr, 0, SAS_ADDR_SIZE);
-- res = sas_get_phy_attached_dev(dev, phy_id, sas_addr, &type);
-+ disc_resp = alloc_smp_resp(DISCOVER_RESP_SIZE);
-+ if (!disc_resp)
-+ return -ENOMEM;
-+
-+ res = sas_get_phy_discover(dev, phy_id, disc_resp);
- switch (res) {
- case SMP_RESP_NO_PHY:
- phy->phy_state = PHY_NOT_PRESENT;
- sas_unregister_devs_sas_addr(dev, phy_id, last);
-- return res;
-+ goto out_free_resp;
- case SMP_RESP_PHY_VACANT:
- phy->phy_state = PHY_VACANT;
- sas_unregister_devs_sas_addr(dev, phy_id, last);
-- return res;
-+ goto out_free_resp;
- case SMP_RESP_FUNC_ACC:
- break;
- case -ECOMM:
- break;
- default:
-- return res;
-+ goto out_free_resp;
- }
-
-+ if (res == 0)
-+ sas_get_sas_addr_and_dev_type(disc_resp, sas_addr, &type);
-+
- if ((SAS_ADDR(sas_addr) == 0) || (res == -ECOMM)) {
- phy->phy_state = PHY_EMPTY;
- sas_unregister_devs_sas_addr(dev, phy_id, last);
- /*
-- * Even though the PHY is empty, for convenience we discover
-- * the PHY to update the PHY info, like negotiated linkrate.
-+ * Even though the PHY is empty, for convenience we update
-+ * the PHY info, like negotiated linkrate.
- */
-- sas_ex_phy_discover(dev, phy_id);
-- return res;
-+ if (res == 0)
-+ sas_set_ex_phy(dev, phy_id, disc_resp);
-+ goto out_free_resp;
- } 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);
-@@ -2046,7 +2055,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);
-- return res;
-+ goto out_free_resp;
- }
-
- /* we always have to delete the old device when we went here */
-@@ -2055,7 +2064,10 @@ static int sas_rediscover_dev(struct dom
- SAS_ADDR(phy->attached_sas_addr));
- sas_unregister_devs_sas_addr(dev, phy_id, last);
-
-- return sas_discover_new(dev, phy_id);
-+ res = sas_discover_new(dev, phy_id);
-+out_free_resp:
-+ kfree(disc_resp);
-+ return res;
- }
-
- /**
diff --git a/queue-5.4/series b/queue-5.4/series
index 6c9ce6ac78..fa926984d9 100644
--- a/queue-5.4/series
+++ b/queue-5.4/series
@@ -125,4 +125,3 @@ usb-udc-remove-warning-when-queue-disabled-ep.patch
scsi-qla2xxx-fix-command-flush-on-cable-pull.patch
x86-cpu-enable-stibp-on-amd-if-automatic-ibrs-is-enabled.patch
scsi-lpfc-correct-size-for-wqe-for-memset.patch
-scsi-libsas-fix-disk-not-being-scanned-in-after-being-removed.patch