Subject: Re: [net PATCH v2 7/7] octeontx2-pf: Disable packet I/O for graceful exit

From: Simon Horman <[email-masked]>
Date: Sat, 8 Apr 2023 16:29:32 +0200

On Fri, Apr 07, 2023 at 05:53:44PM +0530, Sai Krishna wrote:
> From: Subbaraya Sundeep <[email-masked]>
> 
> At the stage of enabling packet I/O in otx2_open, If mailbox
> timeout occurs then interface ends up in down state where as
> hardware packet I/O is enabled. Hence disable packet I/O also
> before bailing out. This patch also free the LMTST per cpu structure
> on teardown, if the lmt_info pointer is not NULL.
> 
> Fixes: 1ea0166da050 ("octeontx2-pf: Fix the device state on error")
> Signed-off-by: Subbaraya Sundeep <[email-masked]>
> Signed-off-by: Sunil Kovvuri Goutham <[email-masked]>
> Signed-off-by: Sai Krishna <[email-masked]>

...

> @@ -709,7 +709,8 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  err_ptp_destroy:
>  	otx2_ptp_destroy(vf);
>  err_detach_rsrc:
> -	free_percpu(vf->hw.lmt_info);
> +	if (vf->hw.lmt_info)
> +		free_percpu(vf->hw.lmt_info);

free_percpu does nothing if it's argument is NULL.
So there is no need for the if clause added here.

>  	if (test_bit(CN10K_LMTST, &vf->hw.cap_flag))
>  		qmem_free(vf->dev, vf->dync_lmt);
>  	otx2_detach_resources(&vf->mbox);
> @@ -763,7 +764,8 @@ static void otx2vf_remove(struct pci_dev *pdev)
>  	otx2_shutdown_tc(vf);
>  	otx2vf_disable_mbox_intr(vf);
>  	otx2_detach_resources(&vf->mbox);
> -	free_percpu(vf->hw.lmt_info);
> +	if (vf->hw.lmt_info)
> +		free_percpu(vf->hw.lmt_info);

Ditto.

>  	if (test_bit(CN10K_LMTST, &vf->hw.cap_flag))
>  		qmem_free(vf->dev, vf->dync_lmt);
>  	otx2vf_vfaf_mbox_destroy(vf);
> -- 
> 2.25.1
>