Smatch warns that 'fops' is dereferenced at line 66 before being checked for NULL at line 85. The current code inconsistently assumes 'fops' might be NULL at lines 62 and 85, while dereferencing it without a check at line 66. Move the NULL check to the beginning of the function immediately after 'fops' is initialized. This ensures safety for all subsequent dereferences and allows the removal of redundant checks. Signed-off-by: Zeeshan Ahmad --- net/core/failover.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/core/failover.c b/net/core/failover.c index 2a140b3ea669..88e376be0255 100644 --- a/net/core/failover.c +++ b/net/core/failover.c @@ -56,10 +56,10 @@ static int failover_slave_register(struct net_device *slave_dev) ASSERT_RTNL(); failover_dev = failover_get_bymac(slave_dev->perm_addr, &fops); - if (!failover_dev) + if (!failover_dev || !fops) goto done; - if (fops && fops->slave_pre_register && + if (fops->slave_pre_register && fops->slave_pre_register(slave_dev, failover_dev)) goto done; @@ -82,7 +82,7 @@ static int failover_slave_register(struct net_device *slave_dev) slave_dev->priv_flags |= (IFF_FAILOVER_SLAVE | IFF_NO_ADDRCONF); - if (fops && fops->slave_register && + if (fops->slave_register && !fops->slave_register(slave_dev, failover_dev)) return NOTIFY_OK; -- 2.43.0