From: Uwe Kleine-König u.kleine-koenig@pengutronix.de
[ Upstream commit 5b495ac8fe03b9e0d2e775f9064c3e2a340ff440 ]
vfio_platform_remove_common() cannot return non-NULL in vfio_amba_remove() as the latter is only called if vfio_amba_probe() returned success.
Diagnosed-by: Arnd Bergmann arnd@arndb.de Acked-by: Eric Auger eric.auger@redhat.com Link: https://lore.kernel.org/r/20210126165835.687514-4-u.kleine-koenig@pengutroni... Signed-off-by: Uwe Kleine-König u.kleine-koenig@pengutronix.de Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/vfio/platform/vfio_amba.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c index 9636a2afaecd..7b3ebf1558e1 100644 --- a/drivers/vfio/platform/vfio_amba.c +++ b/drivers/vfio/platform/vfio_amba.c @@ -73,16 +73,12 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id)
static int vfio_amba_remove(struct amba_device *adev) { - struct vfio_platform_device *vdev; - - vdev = vfio_platform_remove_common(&adev->dev); - if (vdev) { - kfree(vdev->name); - kfree(vdev); - return 0; - } + struct vfio_platform_device *vdev = + vfio_platform_remove_common(&adev->dev);
- return -EINVAL; + kfree(vdev->name); + kfree(vdev); + return 0; }
static const struct amba_id pl330_ids[] = {