Re: [PATCH v2 3/3] scsi: libsas: Handle errors in sas_ex_discover_expander()

John Garry <[email protected]>
Newsgroups org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi
Organization Oracle Corporation
Message-ID <[email protected]>
On 11/08/2026 17:22, Eshaan Deshmukh wrote:
>    	phy->port = sas_port_alloc(&parent->rphy->dev, phy_id);
> -	/* FIXME: better error handling */
> -	BUG_ON(sas_port_add(phy->port) != 0);
> +	if (!phy->port) {
> +		sas_put_device(child);
> +		return NULL;
> +	}
>    
> +	res = sas_port_add(phy->port);
> +	if (res) {

We never pay attention to the specific value of res, so it's not 
required, i.e. we can have:
	
	if (sas_port_add(phy->port)) {

You can also change the sas_discover_expander() call (not shown) for this.

> +		sas_port_free(phy->port);
> +		phy->port = NULL;
> +		sas_put_device(child);
> +		return NULL;
> +	}

There is code later after the sas_discover_expander() call which does 
the same tidy-up and more, so maybe it's better to have tidy-up labels, 
like:

if (!phy->port)
	goto out_put_device;

...

res = sas_port_add(phy->port);
if (res)
	goto out_free_port;


You get the idea...

>    
>    	switch (phy->attached_dev_type) {
>    	case SAS_EDGE_EXPANDER_DEVICE:
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.