lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <5743B923.4090307@codeaurora.org> Date: Mon, 23 May 2016 22:14:59 -0400 From: Sinan Kaya <okaya@...eaurora.org> To: Eric Auger <eric.auger@...aro.org>, kvm@...r.kernel.org, timur@...eaurora.org, cov@...eaurora.org, jcm@...hat.com Cc: linux-acpi@...r.kernel.org, agross@...eaurora.org, linux-arm-msm@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, Baptiste Reynal <b.reynal@...tualopensystems.com>, Alex Williamson <alex.williamson@...hat.com>, linux-kernel@...r.kernel.org Subject: Re: [PATCH V5 2/6] vfio: platform: move reset call to a common function On 5/23/2016 9:02 AM, Eric Auger wrote: > Hi Sinan, > On 05/16/2016 04:13 AM, Sinan Kaya wrote: >> The reset call sequence seems to replicate itself multiple times >> across the file. Grouping them together for maintenance reasons. >> >> Signed-off-by: Sinan Kaya <okaya@...eaurora.org> >> --- >> drivers/vfio/platform/vfio_platform_common.c | 31 ++++++++++++++-------------- >> 1 file changed, 15 insertions(+), 16 deletions(-) >> >> diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c >> index 08fd7c2..cb91dd3 100644 >> --- a/drivers/vfio/platform/vfio_platform_common.c >> +++ b/drivers/vfio/platform/vfio_platform_common.c >> @@ -134,6 +134,18 @@ static void vfio_platform_regions_cleanup(struct vfio_platform_device *vdev) >> kfree(vdev->regions); >> } >> >> +static int vfio_platform_call_reset(struct vfio_platform_device *vdev) >> +{ >> + if (vdev->of_reset) { >> + dev_info(vdev->device, "reset\n"); >> + vdev->of_reset(vdev); >> + return 0; > you should return vdev->of_reset(vdev) to keep the existing > VFIO_DEVICE_RESET ioctl behavior will do. > > Once fixed, Reviewed-by: Eric Auger <eric.auger@...aro.org> > thanks. > Besides, but this goes beyond the scope of your series, maybe we should > reconsider in the future what happens in case the reset fails on > open/release. > I like giving an error immediately to be honest on open. > Best Regards > > Eric >> + } >> + >> + dev_warn(vdev->device, "no reset function found!\n"); >> + return -EINVAL; >> +} >> + >> static void vfio_platform_release(void *device_data) >> { >> struct vfio_platform_device *vdev = device_data; >> @@ -141,12 +153,7 @@ static void vfio_platform_release(void *device_data) >> mutex_lock(&driver_lock); >> >> if (!(--vdev->refcnt)) { >> - if (vdev->of_reset) { >> - dev_info(vdev->device, "reset\n"); >> - vdev->of_reset(vdev); >> - } else { >> - dev_warn(vdev->device, "no reset function found!\n"); >> - } >> + vfio_platform_call_reset(vdev); >> vfio_platform_regions_cleanup(vdev); >> vfio_platform_irq_cleanup(vdev); >> } >> @@ -175,12 +182,7 @@ static int vfio_platform_open(void *device_data) >> if (ret) >> goto err_irq; >> >> - if (vdev->of_reset) { >> - dev_info(vdev->device, "reset\n"); >> - vdev->of_reset(vdev); >> - } else { >> - dev_warn(vdev->device, "no reset function found!\n"); >> - } >> + vfio_platform_call_reset(vdev); >> } >> >> vdev->refcnt++; >> @@ -312,10 +314,7 @@ static long vfio_platform_ioctl(void *device_data, >> return ret; >> >> } else if (cmd == VFIO_DEVICE_RESET) { >> - if (vdev->of_reset) >> - return vdev->of_reset(vdev); >> - else >> - return -EINVAL; >> + return vfio_platform_call_reset(vdev); >> } >> >> return -ENOTTY; >> > -- Sinan Kaya Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
Powered by blists - more mailing lists