eeprom_ptrs should be freed before returned.
Fixes: 049fe5365324 ("net: txgbe: Add operations to interact with firmware")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
eeprom_ptrs);
if (status != 0) {
wx_err(wxhw, "Failed to read EEPROM image\n");
+ kvfree(eeprom_ptrs);
return status;
}
local_buffer = eeprom_ptrs;
if (i != wxhw->eeprom.sw_region_offset + TXGBE_EEPROM_CHECKSUM)
*checksum += local_buffer[i];
+ if (eeprom_ptrs)
+ kvfree(eeprom_ptrs);
+
*checksum = TXGBE_EEPROM_SUM - *checksum;
if (*checksum < 0)
return -EINVAL;
- if (eeprom_ptrs)
- kvfree(eeprom_ptrs);
-
return 0;
}