__builtin_add_overflow is gcc specific. It should be replaced with a portable version that can also be used with other compilers.
Signed-off-by: Andre Muezerie <andre...@linux.microsoft.com> --- drivers/net/ice/base/ice_nvm.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/ice/base/ice_nvm.c b/drivers/net/ice/base/ice_nvm.c index 56c6c96a95..1fc64b502c 100644 --- a/drivers/net/ice/base/ice_nvm.c +++ b/drivers/net/ice/base/ice_nvm.c @@ -3,6 +3,7 @@ */ #include "ice_common.h" +#include <rte_math.h> #define GL_MNG_DEF_DEVID 0x000B611C @@ -469,8 +470,6 @@ int ice_read_sr_word(struct ice_hw *hw, u16 offset, u16 *data) return status; } -#define check_add_overflow __builtin_add_overflow - /** * ice_get_pfa_module_tlv - Reads sub module TLV from NVM PFA * @hw: pointer to hardware structure @@ -500,7 +499,7 @@ ice_get_pfa_module_tlv(struct ice_hw *hw, u16 *module_tlv, u16 *module_tlv_len, return status; } - if (check_add_overflow(pfa_ptr, (u16)(pfa_len - 1), &max_tlv)) { + if (__rte_add_overflow_u16(pfa_ptr, (u16)(pfa_len - 1), &max_tlv)) { ice_debug(hw, ICE_DBG_INIT, "PFA starts at offset %u. PFA length of %u caused 16-bit arithmetic overflow.\n", pfa_ptr, pfa_len); return ICE_ERR_INVAL_SIZE; @@ -541,8 +540,8 @@ ice_get_pfa_module_tlv(struct ice_hw *hw, u16 *module_tlv, u16 *module_tlv_len, return ICE_ERR_INVAL_SIZE; } - if (check_add_overflow(next_tlv, (u16)2, &next_tlv) || - check_add_overflow(next_tlv, tlv_len, &next_tlv)) { + if (__rte_add_overflow_u16(next_tlv, (u16)2, &next_tlv) || + __rte_add_overflow_u16(next_tlv, tlv_len, &next_tlv)) { ice_debug(hw, ICE_DBG_INIT, "TLV of type %u and length 0x%04x caused 16-bit arithmetic overflow. The PFA starts at 0x%04x and has length of 0x%04x\n", tlv_sub_module_type, tlv_len, pfa_ptr, pfa_len); return ICE_ERR_INVAL_SIZE; -- 2.47.0.vfs.0.3