From: YueHaibing Date: Sat, 5 Nov 2022 08:07:22 +0000 (+0800) Subject: net: txgbe: Fix unsigned comparison to zero in txgbe_calc_eeprom_checksum() X-Git-Tag: v6.2-rc1~99^2~262^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e2ea7801faccc011359db5ad6af5987b513f314;p=thirdparty%2Fkernel%2Flinux.git net: txgbe: Fix unsigned comparison to zero in txgbe_calc_eeprom_checksum() The error checks on checksum for a negative error return always fails because it is unsigned and can never be negative. Fixes: 049fe5365324 ("net: txgbe: Add operations to interact with firmware") Signed-off-by: YueHaibing Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c index 9cf5fe33118ee..167f7ff731927 100644 --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c @@ -200,10 +200,11 @@ static int txgbe_calc_eeprom_checksum(struct txgbe_hw *hw, u16 *checksum) if (eeprom_ptrs) kvfree(eeprom_ptrs); - *checksum = TXGBE_EEPROM_SUM - *checksum; - if (*checksum < 0) + if (*checksum > TXGBE_EEPROM_SUM) return -EINVAL; + *checksum = TXGBE_EEPROM_SUM - *checksum; + return 0; }