2023-01-25 16:11:39

by Tomasz Duszynski

[permalink] [raw]
Subject: [PATCH] vfio: platform: ignore missing reset if disabled at module init

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



2023-01-30 09:05:46

by Tian, Kevin

[permalink] [raw]
Subject: RE: [PATCH] vfio: platform: ignore missing reset if disabled at module init

> 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;

2023-01-30 09:54:35

by Eric Auger

[permalink] [raw]
Subject: Re: [PATCH] vfio: platform: ignore missing reset if disabled at module init

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


2023-01-30 12:31:27

by Tomasz Duszynski

[permalink] [raw]
Subject: RE: [PATCH] vfio: platform: ignore missing reset if disabled at module init

>-----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.