On Wed, Dec 18, 2019 at 06:57:10PM +0000, Saleem, Shiraz wrote: > diff --git a/include/linux/net/intel/i40e_client.h b/include/linux/net/intel/i40e_client.h > index 7e147d3..5c81261 100644 > +++ b/include/linux/net/intel/i40e_client.h > @@ -83,11 +83,11 @@ struct i40e_params { > > /* Structure to hold Lan device info for a client device */ > struct i40e_info { > struct i40e_client_version version; I hope this isn't the inter-module versioning stuff we already Nak'd? > u8 lanmac[6]; Is this different from the mac reachable from the netdev? > struct net_device *netdev; > struct pci_dev *pcidev; > + struct virtbus_device *vdev; If there is only one of these per virtbus_device then why do we need to split the structure? > u8 __iomem *hw_addr; > u8 fid; /* function id, PF id or VF id */ > #define I40E_CLIENT_FTYPE_PF 0 > @@ -112,6 +112,11 @@ struct i40e_info { > u32 fw_build; /* firmware build number */ > }; > > +struct i40e_virtbus_device { > + struct virtbus_device vdev; > + struct i40e_info *ldev; Is the lifetime actually any better? Will ldev be freed and left danling before virtbus_device is released? Jason