On Tue, Jul 20, 2021 at 02:42:52PM -0300, Jason Gunthorpe wrote: > .write = vfio_fsl_mc_write, > @@ -625,13 +526,15 @@ static int vfio_fsl_mc_probe(struct fsl_mc_device *mc_dev) > vdev->mc_dev = mc_dev; > mutex_init(&vdev->igate); > > + ret = vfio_assign_device_set(&vdev->vdev, is_fsl_mc_bus_dprc(mc_dev) ? > + &mc_dev->dev : > + mc_dev->dev.parent); A good old if/else would be much cleaner here. But do we even need the else part? Assingning &mc_dev->dev is equivalent to the default per-device set anyway, isn't it?