Blob Blame History Raw
From: Lee Duncan <lduncan@suse.com>
Date: Tue 12 Apr 2022 12:50:17 PM PDT
Subject: SCSI: iscsi: fix iscsi_endpoint changes
Patch-mainline: Never, kABI workaround
References: bsc#1197685

Patch:

> scsi-iscsi-Release-endpoint-ID-when-its-freed.patch

Changed the "id" field in iscsi_endpoint from "uint64_t" to
"int". This mitigation changes it back but treats it like
an int, using casting. All should be well unless we have
more than MAXINT endpoints.

Signed-off-by: Lee Duncan <lduncan@suse.com>
---
 drivers/scsi/scsi_transport_iscsi.c |    4 ++--
 include/scsi/scsi_transport_iscsi.h |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -174,7 +174,7 @@ static void iscsi_endpoint_release(struc
 	struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev);
 
 	mutex_lock(&iscsi_ep_idr_mutex);
-	idr_remove(&iscsi_ep_idr, ep->id);
+	idr_remove(&iscsi_ep_idr, (int)ep->id);
 	mutex_unlock(&iscsi_ep_idr_mutex);
 
 	kfree(ep);
@@ -189,7 +189,7 @@ static ssize_t
 show_ep_handle(struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev);
-	return sysfs_emit(buf, "%d\n", ep->id);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)ep->id);
 }
 static ISCSI_ATTR(ep, handle, S_IRUGO, show_ep_handle, NULL);
 
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -300,7 +300,7 @@ extern void iscsi_host_for_each_session(
 struct iscsi_endpoint {
 	void *dd_data;			/* LLD private data */
 	struct device dev;
-	int id;
+	uint64_t id;
 	struct iscsi_cls_conn *conn;
 };