diff mbox series

[1/1] ipr: system crashes when seeing type 20 error

Message ID 1624587085-10073-1-git-send-email-wenxiong@linux.vnet.ibm.com (mailing list archive)
State Accepted
Commit 7df47cdf199c2d014716d1baa252aa6021063443
Headers show
Series [1/1] ipr: system crashes when seeing type 20 error | expand

Commit Message

wenxiong@linux.vnet.ibm.com June 25, 2021, 2:11 a.m. UTC
From: Wen Xiong <wenxiong@linux.vnet.ibm.com>

Test team saw "4041: Incomplete multipath connection between enclosure
and device" when IO drawers/drives have bad connections. System crashes
when handling this type 20 errors.

[    5.332452] ipr: 3/00-06-09: 4041: Incomplete multipath connection between enclosure and device
[    5.332460] ipr: 3/00-06-09: The IOA failed to detect an expected path to a device
[    5.332465] ipr: 3/00-06-09: Inactive path is failed: Resource Path=3/00-04-09
[    5.332471] ipr: 3/00-06-09: Functional IOA port: Resource Path=3/00-04, Link rate=unknown, WWN=5005076059C38E05
[    5.332478] ipr: 3/00-06-09: Incorrectly connected Device LUN: Resource Path=3/00-00-00-00-00-00-00-00-00-20-00-00-24-00-00-00-0, Link rate=unknown, WWN=0020000024000000
[    5.332487] ipr: 3/00-06-09: Path element=FF: Resource Path=3/50-05-07-60-45-56-5A-9C-00-00-00-00-00-00-00-00-0, Link rate=unknown WWN=0000000000000000
[    5.332492] ipr: 00000000: 54520EC8 00000000 00000000 4E532050
[    5.332495] ipr: 00000010: 45522054 49434B3D 00000050 278130E6
[    5.332498] ipr: 00000020: 033B5300 03282584 4C4D00E0 278039F3
[    5.332501] ipr: 00000030: 033B5180 03282404 4C4D00E0 276A0282
[    5.332504] ipr: 00000040: 033B5000 03281E04 447000E0 27697D19
[    5.332507] ipr: 00000050: 033B4E80 03281D84 447000E0 27690524
[    5.332509] ipr: 00000060: 033B4D00 03281C84 447000E0 27687FDA
[    5.332512] ipr: 00000070: 033B4B80 03281C04 447000E0 2767E787
[    5.332515] ipr: 00000080: 033B4A00 03281B04 447000E0 27674F0A

Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>

---
 drivers/scsi/ipr.c | 4 ++--
 drivers/scsi/ipr.h | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

Brian King June 29, 2021, 5:33 p.m. UTC | #1
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Martin K. Petersen June 29, 2021, 8:46 p.m. UTC | #2
> Test team saw "4041: Incomplete multipath connection between enclosure
> and device" when IO drawers/drives have bad connections. System
> crashes when handling this type 20 errors.

Applied to 5.14/scsi-staging, thanks!
diff mbox series

Patch

diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 30c30a1db5b1..5d78f7e939a3 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -1300,7 +1300,7 @@  static char *__ipr_format_res_path(u8 *res_path, char *buffer, int len)
 
 	*p = '\0';
 	p += scnprintf(p, buffer + len - p, "%02X", res_path[0]);
-	for (i = 1; res_path[i] != 0xff && ((i * 3) < len); i++)
+	for (i = 1; res_path[i] != 0xff && i < IPR_RES_PATH_BYTES; i++)
 		p += scnprintf(p, buffer + len - p, "-%02X", res_path[i]);
 
 	return buffer;
@@ -1323,7 +1323,7 @@  static char *ipr_format_res_path(struct ipr_ioa_cfg *ioa_cfg,
 
 	*p = '\0';
 	p += scnprintf(p, buffer + len - p, "%d/", ioa_cfg->host->host_no);
-	__ipr_format_res_path(res_path, p, len - (buffer - p));
+	__ipr_format_res_path(res_path, p, len - (p - buffer));
 	return buffer;
 }
 
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index 783ee03ad9ea..69444d21fca1 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -428,6 +428,7 @@  struct ipr_config_table_entry64 {
 	__be64 lun;
 	__be64 lun_wwn[2];
 #define IPR_MAX_RES_PATH_LENGTH		48
+#define IPR_RES_PATH_BYTES		8
 	__be64 res_path;
 	struct ipr_std_inq_data std_inq_data;
 	u8 reserved2[4];