From: tian <27392025k@gmail.com> In hw_atl_utils.c and hw_atl_utils_fw2x.c, a return value is set and then immediately overwritten by another call, which causes the original result to be lost. This may hide errors that should be returned to the caller. This patch fixes the logic to preserve the intended return values. Signed-off-by: tian <27392025k@gmail.com> --- drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c | 2 +- .../net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c index 7e88d7234b14..372f30e296ec 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c @@ -492,7 +492,7 @@ static int hw_atl_utils_init_ucp(struct aq_hw_s *self, self, self->mbox_addr, self->mbox_addr != 0U, 1000U, 10000U); - err = readx_poll_timeout_atomic(aq_fw1x_rpc_get, self, + err |= readx_poll_timeout_atomic(aq_fw1x_rpc_get, self, self->rpc_addr, self->rpc_addr != 0U, 1000U, 100000U); diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c index 4d4cfbc91e19..45b7720fd49e 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c @@ -102,12 +102,12 @@ static int aq_fw2x_init(struct aq_hw_s *self) self->mbox_addr != 0U, 1000U, 10000U); - err = readx_poll_timeout_atomic(aq_fw2x_rpc_get, + err |= readx_poll_timeout_atomic(aq_fw2x_rpc_get, self, self->rpc_addr, self->rpc_addr != 0U, 1000U, 100000U); - err = aq_fw2x_settings_get(self, &self->settings_addr); + err |= aq_fw2x_settings_get(self, &self->settings_addr); return err; } -- 2.39.5 (Apple Git-154)