If reset requirement was relaxed via module parameter errors caused by
missing reset should not be propagated down to the vfio core.
Otherwise initialization will fail.
Signed-off-by: Tomasz Duszynski <[email protected]>
Fixes: 5f6c7e0831a1 ("vfio/platform: Use the new device life cycle helpers")
---
drivers/vfio/platform/vfio_platform_common.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
index 1a0a238ffa35..c09ffab6fbe6 100644
--- a/drivers/vfio/platform/vfio_platform_common.c
+++ b/drivers/vfio/platform/vfio_platform_common.c
@@ -653,7 +653,8 @@ int vfio_platform_init_common(struct vfio_platform_device *vdev)
if (ret && vdev->reset_required)
dev_err(dev, "No reset function found for device %s\n",
vdev->name);
- return ret;
+
+ return vdev->reset_required ? ret : 0;
}
EXPORT_SYMBOL_GPL(vfio_platform_init_common);
--
2.34.1
> From: Tomasz Duszynski <[email protected]>
> Sent: Thursday, January 26, 2023 12:11 AM
> @@ -653,7 +653,8 @@ int vfio_platform_init_common(struct
> vfio_platform_device *vdev)
> if (ret && vdev->reset_required)
> dev_err(dev, "No reset function found for device %s\n",
> vdev->name);
> - return ret;
> +
> + return vdev->reset_required ? ret : 0;
> }
> EXPORT_SYMBOL_GPL(vfio_platform_init_common);
It reads slightly better to me as below:
if (ret & vdev->reset_required) {
dev_err(...);
return ret;
}
return 0;
Hi,
On 1/30/23 10:05, Tian, Kevin wrote:
>> From: Tomasz Duszynski <[email protected]>
>> Sent: Thursday, January 26, 2023 12:11 AM
>> @@ -653,7 +653,8 @@ int vfio_platform_init_common(struct
>> vfio_platform_device *vdev)
>> if (ret && vdev->reset_required)
>> dev_err(dev, "No reset function found for device %s\n",
>> vdev->name);
>> - return ret;
>> +
>> + return vdev->reset_required ? ret : 0;
>> }
>> EXPORT_SYMBOL_GPL(vfio_platform_init_common);
> It reads slightly better to me as below:
>
> if (ret & vdev->reset_required) {
> dev_err(...);
> return ret;
> }
>
> return 0;
>
agreed.
Thanks
Eric
>-----Original Message-----
>From: Tian, Kevin <[email protected]>
>Sent: Monday, January 30, 2023 10:06 AM
>To: Tomasz Duszynski <[email protected]>; Eric Auger <[email protected]>; Alex Williamson
><[email protected]>; Cornelia Huck <[email protected]>; Jason Gunthorpe <[email protected]>;
>open list:VFIO PLATFORM DRIVER <[email protected]>; open list <[email protected]>
>Cc: Jerin Jacob Kollanukkaran <[email protected]>
>Subject: [EXT] RE: [PATCH] vfio: platform: ignore missing reset if disabled at module init
>
>External Email
>
>----------------------------------------------------------------------
>> From: Tomasz Duszynski <[email protected]>
>> Sent: Thursday, January 26, 2023 12:11 AM @@ -653,7 +653,8 @@ int
>> vfio_platform_init_common(struct vfio_platform_device *vdev)
>> if (ret && vdev->reset_required)
>> dev_err(dev, "No reset function found for device %s\n",
>> vdev->name);
>> - return ret;
>> +
>> + return vdev->reset_required ? ret : 0;
>> }
>> EXPORT_SYMBOL_GPL(vfio_platform_init_common);
>
>It reads slightly better to me as below:
>
> if (ret & vdev->reset_required) {
> dev_err(...);
> return ret;
> }
>
> return 0;
Sure no problem.