> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf > Of Jacek Kowalski > Sent: Tuesday, July 8, 2025 10:19 AM > To: Nguyen, Anthony L <[email protected]>; Kitszel, > Przemyslaw <[email protected]>; Andrew Lunn > <[email protected]>; David S. Miller <[email protected]>; Eric > Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo > Abeni <[email protected]>; Simon Horman <[email protected]> > Cc: [email protected]; [email protected] > Subject: [Intel-wired-lan] [PATCH iwl-next v2 5/5] ixgbe: drop > unnecessary constant casts to u16 > > Remove unnecessary casts of constant values to u16. > Let the C type system do it's job. > > Signed-off-by: Jacek Kowalski <[email protected]> > Suggested-by: Simon Horman <[email protected]> > --- > drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +- > drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 2 +- > drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c > b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c > index 4ff19426ab74..cb28c26e12f2 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c > @@ -1739,7 +1739,7 @@ int ixgbe_calc_eeprom_checksum_generic(struct > ixgbe_hw *hw) > } > } > > - checksum = (u16)IXGBE_EEPROM_SUM - checksum; > + checksum = IXGBE_EEPROM_SUM - checksum; > Can't lead to different results, especially when: checksum > IXGBE_EEPROM_SUM → the result becomes negative in int, and narrowing to u16 causes unexpected wraparound?
With this patch you are changing the semantics of the code - from explicit 16bit arithmetic to full int implicit promotion which can be error-prone or compiler-dependent /* for different targets */. > return (int)checksum; > } > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > index c2353aed0120..07c4a42ea282 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c > @@ -373,7 +373,7 @@ static int ixgbe_calc_eeprom_checksum_X540(struct > ixgbe_hw *hw) > } > } > > - checksum = (u16)IXGBE_EEPROM_SUM - checksum; > + checksum = IXGBE_EEPROM_SUM - checksum; > > return (int)checksum; > } > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c > b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c > index bfa647086c70..0cc80ce8fcdc 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c > @@ -1060,7 +1060,7 @@ static int ixgbe_calc_checksum_X550(struct > ixgbe_hw *hw, u16 *buffer, > return status; > } > > - checksum = (u16)IXGBE_EEPROM_SUM - checksum; > + checksum = IXGBE_EEPROM_SUM - checksum; > > return (int)checksum; > } > -- > 2.47.2
