Commit 2b2b283c authored by Colin Ian King's avatar Colin Ian King Committed by Boris Brezillon

i3c: master: dw: fix mask operation by using the correct operator

The masking operation on status is using a bitwise 'or' rather than
a bitwise 'and' operator, and hence the result is always non-zero
which is probably not what is intended. Fix this by using the correct
operator.

Detected by CoverityScan, CID#1475523 ("Wrong operator used")

Fixes: 88acc98a712a ("i3c: master: Add driver for Synopsys DesignWare IP")
Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Acked-by: default avatarVitor Soares <vitor.soares@synopsys.com>
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
parent 16da99cf
......@@ -1085,7 +1085,7 @@ static irqreturn_t dw_i3c_master_irq_handler(int irq, void *dev_id)
spin_lock(&master->xferqueue.lock);
dw_i3c_master_end_xfer_locked(master, status);
if (status | INTR_TRANSFER_ERR_STAT)
if (status & INTR_TRANSFER_ERR_STAT)
writel(INTR_TRANSFER_ERR_STAT, master->regs + INTR_STATUS);
spin_unlock(&master->xferqueue.lock);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment