summaryrefslogtreecommitdiff
path: root/drivers/i3c/master/mipi-i3c-hci
diff options
context:
space:
mode:
authorJarkko Nikula <jarkko.nikula@linux.intel.com>2024-06-28 16:15:58 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-09-12 12:11:38 +0300
commit5a022269abb22809f2a174b90f200fc4b9526058 (patch)
treec7406ef728bf118346bb00c11efeba75bfc7f453 /drivers/i3c/master/mipi-i3c-hci
parent1f489656d506c9c27ef4b245c96334e923141ffd (diff)
downloadlinux-5a022269abb22809f2a174b90f200fc4b9526058.tar.xz
i3c: mipi-i3c-hci: Error out instead on BUG_ON() in IBI DMA setup
[ Upstream commit 8a2be2f1db268ec735419e53ef04ca039fc027dc ] Definitely condition dma_get_cache_alignment * defined value > 256 during driver initialization is not reason to BUG_ON(). Turn that to graceful error out with -EINVAL. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Link: https://lore.kernel.org/r/20240628131559.502822-3-jarkko.nikula@linux.intel.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/i3c/master/mipi-i3c-hci')
-rw-r--r--drivers/i3c/master/mipi-i3c-hci/dma.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/i3c/master/mipi-i3c-hci/dma.c b/drivers/i3c/master/mipi-i3c-hci/dma.c
index 337c95d43f3f..edc3a69bfe31 100644
--- a/drivers/i3c/master/mipi-i3c-hci/dma.c
+++ b/drivers/i3c/master/mipi-i3c-hci/dma.c
@@ -291,7 +291,10 @@ static int hci_dma_init(struct i3c_hci *hci)
rh->ibi_chunk_sz = dma_get_cache_alignment();
rh->ibi_chunk_sz *= IBI_CHUNK_CACHELINES;
- BUG_ON(rh->ibi_chunk_sz > 256);
+ if (rh->ibi_chunk_sz > 256) {
+ ret = -EINVAL;
+ goto err_out;
+ }
ibi_status_ring_sz = rh->ibi_status_sz * rh->ibi_status_entries;
ibi_data_ring_sz = rh->ibi_chunk_sz * rh->ibi_chunks_total;