2022-09-19 22:07:48

by Jerry Snitselaar

[permalink] [raw]
Subject: [PATCH 0/2] dmaengine: idxd: Fix up re-enabling device workqueues

Currently if a software reset is attempted on an idxd device
the workqueues will not be re-enabled, because it will see
incorrectly see that wq->state is already set to IDXD_WQ_ENABLED.
So set the workqueue state to disabled in idxd_wq_disable_cleanup(),
and use a bitmap to track which workqueues have been enabled so they
can be re-enabled during device re-initialization.

Cc: Fenghua Yu <[email protected]>
Cc: Dave Jiang <[email protected]>
Cc: Vinod Koul <[email protected]>

Jerry Snitselaar (2):
dmaengine: idxd: Set wq state to disabled in idxd_wq_disable_cleanup()
dmaengine: idxd: track enabled workqueues in bitmap

drivers/dma/idxd/device.c | 4 +++-
drivers/dma/idxd/idxd.h | 2 ++
drivers/dma/idxd/init.c | 6 ++++++
drivers/dma/idxd/irq.c | 4 ++--
drivers/dma/idxd/sysfs.c | 1 +
5 files changed, 14 insertions(+), 3 deletions(-)

--
2.37.2


2022-09-19 22:16:14

by Dave Jiang

[permalink] [raw]
Subject: Re: [PATCH 0/2] dmaengine: idxd: Fix up re-enabling device workqueues


On 9/19/2022 2:55 PM, Jerry Snitselaar wrote:
> Currently if a software reset is attempted on an idxd device
> the workqueues will not be re-enabled, because it will see
> incorrectly see that wq->state is already set to IDXD_WQ_ENABLED.
> So set the workqueue state to disabled in idxd_wq_disable_cleanup(),
> and use a bitmap to track which workqueues have been enabled so they
> can be re-enabled during device re-initialization.
>
> Cc: Fenghua Yu <[email protected]>
> Cc: Dave Jiang <[email protected]>
> Cc: Vinod Koul <[email protected]>

For the series,

Reviewed-by: Dave Jiang <[email protected]>

Thank you Jerry!

> Jerry Snitselaar (2):
> dmaengine: idxd: Set wq state to disabled in idxd_wq_disable_cleanup()
> dmaengine: idxd: track enabled workqueues in bitmap
>
> drivers/dma/idxd/device.c | 4 +++-
> drivers/dma/idxd/idxd.h | 2 ++
> drivers/dma/idxd/init.c | 6 ++++++
> drivers/dma/idxd/irq.c | 4 ++--
> drivers/dma/idxd/sysfs.c | 1 +
> 5 files changed, 14 insertions(+), 3 deletions(-)
>