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: Colin Ian King <colin.king@canonical.com>
Acked-by: Vitor Soares <vitor.soares@synopsys.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
This commit is contained in:
Colin Ian King 2018-11-16 18:42:23 +00:00 committed by Boris Brezillon
parent 16da99cf0e
commit 2b2b283c05

View File

@ -1085,7 +1085,7 @@ static irqreturn_t dw_i3c_master_irq_handler(int irq, void *dev_id)
spin_lock(&master->xferqueue.lock); spin_lock(&master->xferqueue.lock);
dw_i3c_master_end_xfer_locked(master, status); 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); writel(INTR_TRANSFER_ERR_STAT, master->regs + INTR_STATUS);
spin_unlock(&master->xferqueue.lock); spin_unlock(&master->xferqueue.lock);