public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dmaengine: avoid map_cnt overflow with CONFIG_DMA_ENGINE_RAID
@ 2018-01-08 15:50 Zi Yan
  2018-01-12 16:56 ` Vinod Koul
  2018-02-05  5:39 ` Vinod Koul
  0 siblings, 2 replies; 4+ messages in thread
From: Zi Yan @ 2018-01-08 15:50 UTC (permalink / raw)
  To: dmaengine; +Cc: linux-kernel, Zi Yan, Vinod Koul, Dan Williams

From: Zi Yan <zi.yan@cs.rutgers.edu>

When CONFIG_DMA_ENGINE_RAID is enabled, unmap pool size can reach to
256. But in struct dmaengine_unmap_data, map_cnt is only u8, wrapping
to 0, if the unmap pool is maximally used. This triggers BUG() when
struct dmaengine_unmap_data is freed. Use u16 to fix the problem.

Signed-off-by: Zi Yan <zi.yan@cs.rutgers.edu>
---
 include/linux/dmaengine.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index f838764993eb..861be5cab1df 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -470,7 +470,11 @@ typedef void (*dma_async_tx_callback_result)(void *dma_async_param,
 				const struct dmaengine_result *result);
 
 struct dmaengine_unmap_data {
+#if IS_ENABLED(CONFIG_DMA_ENGINE_RAID)
+	u16 map_cnt;
+#else
 	u8 map_cnt;
+#endif
 	u8 to_cnt;
 	u8 from_cnt;
 	u8 bidi_cnt;
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-02-05  5:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-08 15:50 [PATCH] dmaengine: avoid map_cnt overflow with CONFIG_DMA_ENGINE_RAID Zi Yan
2018-01-12 16:56 ` Vinod Koul
2018-01-16 20:00   ` Zi Yan
2018-02-05  5:39 ` Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox