Commit b53e1781 authored by Jarkko Nikula's avatar Jarkko Nikula Committed by Heyuan Wang
Browse files

i3c: mipi-i3c-hci: Error out instead on BUG_ON() in IBI DMA setup

stable inclusion
from stable-v6.6.51
commit 5a022269abb22809f2a174b90f200fc4b9526058
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAVU96
CVE: CVE-2024-47665

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5a022269abb2



--------------------------------

[ 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: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
Link: https://lore.kernel.org/r/20240628131559.502822-3-jarkko.nikula@linux.intel.com


Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarwangheyuan <wangheyuan2@h-partners.com>
parent 2eada988
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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;