Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751662AbdDBOpk (ORCPT ); Sun, 2 Apr 2017 10:45:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44554 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751460AbdDBOph (ORCPT ); Sun, 2 Apr 2017 10:45:37 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com CE63785540 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=eric.auger@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com CE63785540 Subject: Re: [PATCH 4/5] vfio: platform: Convert to use devm_*() To: Leo Yan , Russell King , Dmitry Torokhov , Alessandro Zummo , Alexandre Belloni , Linus Walleij , Baptiste Reynal , Alex Williamson , Jaroslav Kysela , Takashi Iwai , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, rtc-linux@googlegroups.com, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, alsa-devel@alsa-project.org References: <1490539314-9681-1-git-send-email-leo.yan@linaro.org> <1490539314-9681-5-git-send-email-leo.yan@linaro.org> From: Auger Eric Message-ID: <10625a88-3d6d-de52-8299-3ba0031317f8@redhat.com> Date: Sun, 2 Apr 2017 16:45:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1490539314-9681-5-git-send-email-leo.yan@linaro.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Sun, 02 Apr 2017 14:45:37 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2551 Lines: 93 Hi Leo, On 26/03/2017 16:41, Leo Yan wrote: > Convert driver to use devm_*() APIs so rely on driver model core layer > to manage resources. This eliminates error path boilerplate and makes > code neat. > > This patch also renames amba_id structure, the old code used some code > which directly copied from other driver. > > Signed-off-by: Leo Yan Looks good to me Reviewed-by: Eric Auger May be interesting to go further converting as well the vfio-platform driver but this can be done later on. Thanks Eric > --- > drivers/vfio/platform/vfio_amba.c | 25 ++++++++----------------- > 1 file changed, 8 insertions(+), 17 deletions(-) > > diff --git a/drivers/vfio/platform/vfio_amba.c b/drivers/vfio/platform/vfio_amba.c > index 31372fb..433db1f 100644 > --- a/drivers/vfio/platform/vfio_amba.c > +++ b/drivers/vfio/platform/vfio_amba.c > @@ -53,15 +53,14 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) > struct vfio_platform_device *vdev; > int ret; > > - vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); > + vdev = devm_kzalloc(&adev->dev, sizeof(*vdev), GFP_KERNEL); > if (!vdev) > return -ENOMEM; > > - vdev->name = kasprintf(GFP_KERNEL, "vfio-amba-%08x", adev->periphid); > - if (!vdev->name) { > - kfree(vdev); > + vdev->name = devm_kasprintf(&adev->dev, GFP_KERNEL, > + "vfio-amba-%08x", adev->periphid); > + if (!vdev->name) > return -ENOMEM; > - } > > vdev->opaque = (void *) adev; > vdev->flags = VFIO_DEVICE_FLAGS_AMBA; > @@ -71,11 +70,6 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id) > vdev->reset_required = false; > > ret = vfio_platform_probe_common(vdev, &adev->dev); > - if (ret) { > - kfree(vdev->name); > - kfree(vdev); > - } > - > return ret; > } > > @@ -84,25 +78,22 @@ 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); > + if (vdev) > return 0; > - } > > return -EINVAL; > } > > -static struct amba_id pl330_ids[] = { > +static struct amba_id vfio_ids[] = { > { 0, 0 }, > }; > > -MODULE_DEVICE_TABLE(amba, pl330_ids); > +MODULE_DEVICE_TABLE(amba, vfio_ids); > > static struct amba_driver vfio_amba_driver = { > .probe = vfio_amba_probe, > .remove = vfio_amba_remove, > - .id_table = pl330_ids, > + .id_table = vfio_ids, > .drv = { > .name = "vfio-amba", > .owner = THIS_MODULE, >