diff --git a/patch/0001-fix-os-crash-caused-by-optoe-when-class-switch.patch b/patch/0001-fix-os-crash-caused-by-optoe-when-class-switch.patch new file mode 100644 index 000000000..f58a01583 --- /dev/null +++ b/patch/0001-fix-os-crash-caused-by-optoe-when-class-switch.patch @@ -0,0 +1,36 @@ +From b8ba60c6d604fee3f61e3d1e709e86c785b075f4 Mon Sep 17 00:00:00 2001 +From: philo +Date: Mon, 1 Jul 2024 11:03:35 +0800 +Subject: [PATCH] fix os crash caused by optoe when class switch + +--- + drivers/misc/eeprom/optoe.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/misc/eeprom/optoe.c b/drivers/misc/eeprom/optoe.c +index 9129312a1..a6bdbb9d1 100644 +--- a/drivers/misc/eeprom/optoe.c ++++ b/drivers/misc/eeprom/optoe.c +@@ -941,8 +941,10 @@ static ssize_t set_dev_class(struct device *dev, + } else { + /* one-address (eg QSFP) and CMIS family */ + /* if it exists, remove 0x51 i2c address */ +- if (optoe->client[1]) ++ if (optoe->client[1]) { + i2c_unregister_device(optoe->client[1]); ++ optoe->client[1] = NULL; ++ } + optoe->bin.size = ONE_ADDR_EEPROM_SIZE; + optoe->num_addresses = 1; + } +@@ -1226,6 +1228,7 @@ static int optoe_probe(struct i2c_client *client, + if (num_addresses == 2) { + if (optoe->client[1]) + i2c_unregister_device(optoe->client[1]); ++ optoe->client[1] = NULL; + } + + kfree(optoe->writebuf); +-- +2.25.1 + diff --git a/patch/series b/patch/series index 443b5d316..4c1f48300 100755 --- a/patch/series +++ b/patch/series @@ -214,6 +214,9 @@ cisco-npu-disable-other-bars.patch # Security patch 0001-Change-the-system.map-file-permission-only-readable-.patch +# Micas patches +0001-fix-os-crash-caused-by-optoe-when-class-switch.patch + # # ############################################################