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

From: Simon Horman
Date: Sat Apr 08 2023 - 10:29:54 EST


On Fri, Apr 07, 2023 at 05:53:44PM +0530, Sai Krishna wrote:
> From: Subbaraya Sundeep <sbhatta@xxxxxxxxxxx>
>
> 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 <sbhatta@xxxxxxxxxxx>
> Signed-off-by: Sunil Kovvuri Goutham <sgoutham@xxxxxxxxxxx>
> Signed-off-by: Sai Krishna <saikrishnag@xxxxxxxxxxx>

...

> @@ -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
>