Blame SOURCES/0020-sff-8636-Consolidate-code-between-IOCTL-and-netlink-.patch

2a1b01
From 2e122ad9aa2aa0259df1035e3ec2765d8e008394 Mon Sep 17 00:00:00 2001
2a1b01
From: Ido Schimmel <idosch@nvidia.com>
2a1b01
Date: Tue, 12 Oct 2021 16:25:19 +0300
2a1b01
Subject: [PATCH 20/35] sff-8636: Consolidate code between IOCTL and netlink
2a1b01
 paths
2a1b01
2a1b01
Now that both the netlink and IOCTL paths use the same memory map
2a1b01
structure for parsing, the code can be easily consolidated.
2a1b01
2a1b01
Note that the switch-case statement is not necessary for the netlink
2a1b01
path, as the netlink code (i.e., netlink/module-eeprom.c) already
2a1b01
performed the check, but it is required for the IOCTL path.
2a1b01
2a1b01
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
2a1b01
---
2a1b01
 qsfp.c | 29 +++++++++++++++--------------
2a1b01
 1 file changed, 15 insertions(+), 14 deletions(-)
2a1b01
2a1b01
diff --git a/qsfp.c b/qsfp.c
2a1b01
index 354b3b1ce9ff..4aa49351e6b7 100644
2a1b01
--- a/qsfp.c
2a1b01
+++ b/qsfp.c
2a1b01
@@ -898,6 +898,19 @@ static void sff8636_show_page_zero(const struct sff8636_memory_map *map)
2a1b01
 				     SFF8636_REV_COMPLIANCE_OFFSET);
2a1b01
 }
2a1b01
 
2a1b01
+static void sff8636_show_all_common(const struct sff8636_memory_map *map)
2a1b01
+{
2a1b01
+	sff8636_show_identifier(map);
2a1b01
+	switch (map->lower_memory[SFF8636_ID_OFFSET]) {
2a1b01
+	case SFF8024_ID_QSFP:
2a1b01
+	case SFF8024_ID_QSFP_PLUS:
2a1b01
+	case SFF8024_ID_QSFP28:
2a1b01
+		sff8636_show_page_zero(map);
2a1b01
+		sff8636_show_dom(map);
2a1b01
+		break;
2a1b01
+	}
2a1b01
+}
2a1b01
+
2a1b01
 static void sff8636_memory_map_init_buf(struct sff8636_memory_map *map,
2a1b01
 					const __u8 *id, __u32 eeprom_len)
2a1b01
 {
2a1b01
@@ -931,16 +944,7 @@ void sff8636_show_all_ioctl(const __u8 *id, __u32 eeprom_len)
2a1b01
 	}
2a1b01
 
2a1b01
 	sff8636_memory_map_init_buf(&map, id, eeprom_len);
2a1b01
-
2a1b01
-	sff8636_show_identifier(&map);
2a1b01
-	switch (map.lower_memory[SFF8636_ID_OFFSET]) {
2a1b01
-	case SFF8024_ID_QSFP:
2a1b01
-	case SFF8024_ID_QSFP_PLUS:
2a1b01
-	case SFF8024_ID_QSFP28:
2a1b01
-		sff8636_show_page_zero(&map);
2a1b01
-		sff8636_show_dom(&map);
2a1b01
-		break;
2a1b01
-	}
2a1b01
+	sff8636_show_all_common(&map);
2a1b01
 }
2a1b01
 
2a1b01
 static void
2a1b01
@@ -974,8 +978,5 @@ void sff8636_show_all_nl(const struct ethtool_module_eeprom *page_zero,
2a1b01
 	struct sff8636_memory_map map = {};
2a1b01
 
2a1b01
 	sff8636_memory_map_init_pages(&map, page_zero, page_three);
2a1b01
-
2a1b01
-	sff8636_show_identifier(&map);
2a1b01
-	sff8636_show_page_zero(&map);
2a1b01
-	sff8636_show_dom(&map);
2a1b01
+	sff8636_show_all_common(&map);
2a1b01
 }
2a1b01
-- 
2a1b01
2.35.1
2a1b01