Message ID | 20231216185006.19200-1-rand.sec96@gmail.com |
---|---|
State | New |
Headers | show |
Series | scsi: fix calculation of phy_addr in mvumi_delete_internal_cmd | expand |
diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c index 0354898d7cac..675ea5dcaa21 100644 --- a/drivers/scsi/mvumi.c +++ b/drivers/scsi/mvumi.c @@ -296,7 +296,7 @@ static void mvumi_delete_internal_cmd(struct mvumi_hba *mhba, sgd_getsz(mhba, m_sg, size); phy_addr = (dma_addr_t) m_sg->baseaddr_l | - (dma_addr_t) ((m_sg->baseaddr_h << 16) << 16); + (((dma_addr_t) m_sg->baseaddr_h << 16) << 16); dma_free_coherent(&mhba->pdev->dev, size, cmd->data_buf, phy_addr);
The calculation of phy_addr in mvumi_delete_internal_cmd contained an issue where the expression '(dma_addr_t) ((m_sg->baseaddr_h << 16) << 16)' was used. This expression was found to be incorrect and useless because it always evaluates to zero, regardless of the actual value of m_sg->baseaddr_h since it's u32. This commit resolves the issue by placing the casting inside the brackets, making it more meaningful: (((dma_addr_t) m_sg->baseaddr_h << 16) << 16) The corrected expression ensures that phy_addr is calculated correctly and addresses the previous issue, preventing the unnecessary use of a zero value. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Rand Deeb <rand.sec96@gmail.com> --- drivers/scsi/mvumi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)