On Tue, Mar 09, 2021 at 05:38:45PM -0400, Jason Gunthorpe wrote: > platform already allocates a struct vfio_platform_device with exactly > the same lifetime as vfio_device, switch to the new API and embed > vfio_device in vfio_platform_device. > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > drivers/vfio/platform/vfio_amba.c | 8 ++++--- > drivers/vfio/platform/vfio_platform.c | 21 ++++++++--------- > drivers/vfio/platform/vfio_platform_common.c | 23 +++++++------------ > drivers/vfio/platform/vfio_platform_private.h | 5 ++-- > 4 files changed, 26 insertions(+), 31 deletions(-) > > diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c > index 3626c21501017e..f970eb2a999f29 100644 > --- a/drivers/vfio/platform/vfio_amba.c > +++ b/drivers/vfio/platform/vfio_amba.c > @@ -66,16 +66,18 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) > if (ret) { > kfree(vdev->name); > kfree(vdev); > + return ret; > } > > - return ret; > + dev_set_drvdata(&adev->dev, vdev); > + return 0; Switching to goto based unwind here would be helpful as well.. Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>