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;
};