| From 2cfc72bd870579fbfaaa9bdcfbc0ca9b3b275bde Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 17 Jul 2020 23:56:48 +0200 |
| Subject: spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM |
| |
| From: Hauke Mehrtens <hauke@hauke-m.de> |
| |
| [ Upstream commit ba3548cf29616b58c93bbaffc3d636898d009858 ] |
| |
| The lantiq-ssc driver uses internally an own workqueue to wait till the |
| data is not only written out of the FIFO but really written to the wire. |
| This workqueue is flushed while the SPI subsystem is working in some |
| other system workqueue. |
| |
| The system workqueue is marked as WQ_MEM_RECLAIM, but the workqueue in |
| the lantiq-ssc driver does not use WQ_MEM_RECLAIM for now. Add this flag |
| too to prevent this warning. |
| |
| This fixes the following warning: |
| [ 2.975956] WARNING: CPU: 1 PID: 17 at kernel/workqueue.c:2614 check_flush_dependency+0x168/0x184 |
| [ 2.984752] workqueue: WQ_MEM_RECLAIM kblockd:blk_mq_run_work_fn is flushing !WQ_MEM_RECLAIM 1e100800.spi:0x0 |
| |
| Fixes: 891b7c5fbf61 ("mtd_blkdevs: convert to blk-mq") |
| Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> |
| Link: https://lore.kernel.org/r/20200717215648.20522-1-hauke@hauke-m.de |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/spi/spi-lantiq-ssc.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/spi/spi-lantiq-ssc.c b/drivers/spi/spi-lantiq-ssc.c |
| index 44600fb71c484..049a64451c750 100644 |
| --- a/drivers/spi/spi-lantiq-ssc.c |
| +++ b/drivers/spi/spi-lantiq-ssc.c |
| @@ -909,7 +909,7 @@ static int lantiq_ssc_probe(struct platform_device *pdev) |
| master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 8) | |
| SPI_BPW_MASK(16) | SPI_BPW_MASK(32); |
| |
| - spi->wq = alloc_ordered_workqueue(dev_name(dev), 0); |
| + spi->wq = alloc_ordered_workqueue(dev_name(dev), WQ_MEM_RECLAIM); |
| if (!spi->wq) { |
| err = -ENOMEM; |
| goto err_clk_put; |
| -- |
| 2.25.1 |
| |