diff mbox series

[2/4] sata: ahsata: Fix wrong operand for checking SERR DIAG_X

Message ID 20200503142703.14903-2-peng.fan@nxp.com
State Accepted
Commit 87e2cb530fc147676319b7c639e7ce138ddf385e
Delegated to: Tom Rini
Headers show
Series [1/4] sata: ahsata: Fix resource leak | expand

Commit Message

Peng Fan May 3, 2020, 2:27 p.m. UTC
From: Ye Li <ye.li@nxp.com>

Fix coverity issue CID 3261683: Wrong operator used
(CONSTANT_EXPRESSION_RESULT) operator_confusion:
({...; __v;}) | 67108864 is always 1/true regardless of the values
of its operand. This occurs as the logical operand of !

When DIAG_X is set, the PHY COMINIT signal is detected, so
should use '&' to check whether it is set.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/ata/dwc_ahsata.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Simon Glass May 4, 2020, 2:17 p.m. UTC | #1
On Sun, 3 May 2020 at 08:04, Peng Fan <peng.fan@nxp.com> wrote:
>
> From: Ye Li <ye.li@nxp.com>
>
> Fix coverity issue CID 3261683: Wrong operator used
> (CONSTANT_EXPRESSION_RESULT) operator_confusion:
> ({...; __v;}) | 67108864 is always 1/true regardless of the values
> of its operand. This occurs as the logical operand of !
>
> When DIAG_X is set, the PHY COMINIT signal is detected, so
> should use '&' to check whether it is set.
>
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  drivers/ata/dwc_ahsata.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini May 8, 2020, 10:59 p.m. UTC | #2
On Sun, May 03, 2020 at 10:27:01PM +0800, Peng Fan wrote:

> From: Ye Li <ye.li@nxp.com>
> 
> Fix coverity issue CID 3261683: Wrong operator used
> (CONSTANT_EXPRESSION_RESULT) operator_confusion:
> ({...; __v;}) | 67108864 is always 1/true regardless of the values
> of its operand. This occurs as the logical operand of !
> 
> When DIAG_X is set, the PHY COMINIT signal is detected, so
> should use '&' to check whether it is set.
> 
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c
index a775214792..4b37a02338 100644
--- a/drivers/ata/dwc_ahsata.c
+++ b/drivers/ata/dwc_ahsata.c
@@ -223,7 +223,7 @@  static int ahci_host_init(struct ahci_uc_priv *uc_priv)
 
 		/* Wait for COMINIT bit 26 (DIAG_X) in SERR */
 		timeout = 1000;
-		while (!(readl(&port_mmio->serr) | SATA_PORT_SERR_DIAG_X)
+		while (!(readl(&port_mmio->serr) & SATA_PORT_SERR_DIAG_X)
 			&& --timeout)
 			;
 		if (timeout <= 0) {