diff options
Diffstat (limited to 'drivers/infiniband/hw/i40iw/i40iw_utils.c')
| -rw-r--r-- | drivers/infiniband/hw/i40iw/i40iw_utils.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/drivers/infiniband/hw/i40iw/i40iw_utils.c b/drivers/infiniband/hw/i40iw/i40iw_utils.c index 337410f40860..016524683e17 100644 --- a/drivers/infiniband/hw/i40iw/i40iw_utils.c +++ b/drivers/infiniband/hw/i40iw/i40iw_utils.c @@ -174,10 +174,14 @@ int i40iw_inetaddr_event(struct notifier_block *notifier,  		rcu_read_lock();  		in = __in_dev_get_rcu(upper_dev); -		if (!in->ifa_list) -			local_ipaddr = 0; -		else -			local_ipaddr = ntohl(in->ifa_list->ifa_address); +		local_ipaddr = 0; +		if (in) { +			struct in_ifaddr *ifa; + +			ifa = rcu_dereference(in->ifa_list); +			if (ifa) +				local_ipaddr = ntohl(ifa->ifa_address); +		}  		rcu_read_unlock();  	} else { | 

