2023-01-31 08:35:04

by Tomasz Duszynski

[permalink] [raw]
Subject: [PATCH v2] 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")
---
v2:
- return directly instead of using ternary to do that

drivers/vfio/platform/vfio_platform_common.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
index 1a0a238ffa35..7325ff463cf0 100644
--- a/drivers/vfio/platform/vfio_platform_common.c
+++ b/drivers/vfio/platform/vfio_platform_common.c
@@ -650,10 +650,13 @@ int vfio_platform_init_common(struct vfio_platform_device *vdev)
mutex_init(&vdev->igate);

ret = vfio_platform_get_reset(vdev);
- if (ret && vdev->reset_required)
+ if (ret && vdev->reset_required) {
dev_err(dev, "No reset function found for device %s\n",
vdev->name);
- return ret;
+ return ret;
+ }
+
+ return 0;
}
EXPORT_SYMBOL_GPL(vfio_platform_init_common);

--
2.34.1



2023-01-31 09:50:28

by Eric Auger

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

Hi Tomasz,

On 1/31/23 09:33, Tomasz Duszynski wrote:
> 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")
Reviewed-by: Eric Auger <[email protected]>

Thanks

Eric
> ---
> v2:
> - return directly instead of using ternary to do that
>
> drivers/vfio/platform/vfio_platform_common.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
> index 1a0a238ffa35..7325ff463cf0 100644
> --- a/drivers/vfio/platform/vfio_platform_common.c
> +++ b/drivers/vfio/platform/vfio_platform_common.c
> @@ -650,10 +650,13 @@ int vfio_platform_init_common(struct vfio_platform_device *vdev)
> mutex_init(&vdev->igate);
>
> ret = vfio_platform_get_reset(vdev);
> - if (ret && vdev->reset_required)
> + if (ret && vdev->reset_required) {
> dev_err(dev, "No reset function found for device %s\n",
> vdev->name);
> - return ret;
> + return ret;
> + }
> +
> + return 0;
> }
> EXPORT_SYMBOL_GPL(vfio_platform_init_common);
>
> --
> 2.34.1
>


2023-02-01 02:48:19

by Tian, Kevin

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

> From: Tomasz Duszynski <[email protected]>
> Sent: Tuesday, January 31, 2023 4:34 PM
>
> 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")

Reviewed-by: Kevin Tian <[email protected]>

2023-02-01 19:48:52

by Alex Williamson

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

On Tue, 31 Jan 2023 09:33:49 +0100
Tomasz Duszynski <[email protected]> wrote:

> 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")
> ---
> v2:
> - return directly instead of using ternary to do that
>
> drivers/vfio/platform/vfio_platform_common.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
> index 1a0a238ffa35..7325ff463cf0 100644
> --- a/drivers/vfio/platform/vfio_platform_common.c
> +++ b/drivers/vfio/platform/vfio_platform_common.c
> @@ -650,10 +650,13 @@ int vfio_platform_init_common(struct vfio_platform_device *vdev)
> mutex_init(&vdev->igate);
>
> ret = vfio_platform_get_reset(vdev);
> - if (ret && vdev->reset_required)
> + if (ret && vdev->reset_required) {
> dev_err(dev, "No reset function found for device %s\n",
> vdev->name);
> - return ret;
> + return ret;
> + }
> +
> + return 0;
> }
> EXPORT_SYMBOL_GPL(vfio_platform_init_common);

Applied to vfio next branch for v6.3. Thanks,

Alex