On Fri, Apr 14, 2023 at 03:36:14PM -0600, Alex Williamson wrote: > > +static int vfio_cdx_init_device(struct vfio_device *core_vdev) > > +{ > > + struct vfio_cdx_device *vdev = > > + container_of(core_vdev, struct vfio_cdx_device, vdev); > > + struct cdx_device *cdx_dev = to_cdx_device(core_vdev->dev); > > + > > + vdev->cdx_dev = cdx_dev; > > + vdev->dev = &cdx_dev->dev; > > Both of these seem trivial to factor out of this patch, cdx_device is > always available via to_cdx_device(core_vdev->dev) and the struct > device is always available via core_vdev->dev. vdev->dev isn't even > used anywhere yet. Both the init and release functions here could be > dropped afaict. Yes please, I have a series someplace that gets rid of all these redundent ->devs we keep around everwhere. to_cdx_device(core_vdev->dev) is a good solution, maybe with a static inline. Jason