Re: [PATCH net-next v8 1/8] bnxt_en: Add auxiliary driver support

From: Jakub Kicinski
Date: Tue Jan 24 2023 - 01:33:43 EST


On Thu, 19 Jan 2023 22:05:28 -0800 Ajit Khaparde wrote:
> @@ -13212,6 +13214,7 @@ static void bnxt_remove_one(struct pci_dev *pdev)
> kfree(bp->rss_indir_tbl);
> bp->rss_indir_tbl = NULL;
> bnxt_free_port_stats(bp);
> + bnxt_aux_priv_free(bp);
> free_netdev(dev);

You're still freeing the memory in which struct device sits regardless
of its reference count.

Greg, is it legal to call:

auxiliary_device_delete(adev); // AKA device_del(&auxdev->dev);
auxiliary_device_uninit(adev); // AKA put_device(&auxdev->dev);
free(adev); // frees struct device

? I tried to explain this three times, maybe there's some wait during
device_del() I'm not seeing which makes this safe :S