diff options
Diffstat (limited to 'drivers/scsi/libsas/sas_expander.c')
| -rw-r--r-- | drivers/scsi/libsas/sas_expander.c | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c index f84084bba2f0..16ad97df5ba6 100644 --- a/drivers/scsi/libsas/sas_expander.c +++ b/drivers/scsi/libsas/sas_expander.c @@ -1721,7 +1721,7 @@ static int sas_find_bcast_dev(struct domain_device *dev,  	list_for_each_entry(ch, &ex->children, siblings) {  		if (ch->dev_type == EDGE_DEV || ch->dev_type == FANOUT_DEV) {  			res = sas_find_bcast_dev(ch, src_dev); -			if (src_dev) +			if (*src_dev)  				return res;  		}  	} @@ -1769,10 +1769,12 @@ static void sas_unregister_devs_sas_addr(struct domain_device *parent,  		sas_disable_routing(parent, phy->attached_sas_addr);  	}  	memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE); -	sas_port_delete_phy(phy->port, phy->phy); -	if (phy->port->num_phys == 0) -		sas_port_delete(phy->port); -	phy->port = NULL; +	if (phy->port) { +		sas_port_delete_phy(phy->port, phy->phy); +		if (phy->port->num_phys == 0) +			sas_port_delete(phy->port); +		phy->port = NULL; +	}  }  static int sas_discover_bfs_by_root_level(struct domain_device *root, | 
