lantiq: Fix warning in SPI driver
This fixes a warning in the SPI driver at bootup. This warning is seen in kernel 5.4 on lantiq deives. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		| @@ -0,0 +1,35 @@ | |||||||
|  | From 907137d9ef048e7d0282c28e47b32aa4084ad395 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Hauke Mehrtens <hauke@hauke-m.de> | ||||||
|  | Date: Mon, 6 Jul 2020 00:05:12 +0200 | ||||||
|  | Subject: [PATCH v2] spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM | ||||||
|  |  | ||||||
|  | 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> | ||||||
|  | --- | ||||||
|  |  drivers/spi/spi-lantiq-ssc.c | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  |  | ||||||
|  | --- a/drivers/spi/spi-lantiq-ssc.c | ||||||
|  | +++ b/drivers/spi/spi-lantiq-ssc.c | ||||||
|  | @@ -907,7 +907,7 @@ static int lantiq_ssc_probe(struct platf | ||||||
|  |  	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; | ||||||
		Reference in New Issue
	
	Block a user
	 Hauke Mehrtens
					Hauke Mehrtens