[PATCH] mctp: Fix incorrect tx flow invalidation condition in mctp-i2c

Daniel Hsu posted 1 patch 8 months, 4 weeks ago
drivers/net/mctp/mctp-i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] mctp: Fix incorrect tx flow invalidation condition in mctp-i2c
Posted by Daniel Hsu 8 months, 4 weeks ago
Previously, the condition for invalidating the tx flow in
mctp_i2c_invalidate_tx_flow() checked if `rc` was nonzero.
However, this could incorrectly trigger the invalidation
even when `rc > 0` was returned as a success status.

This patch updates the condition to explicitly check for `rc < 0`,
ensuring that only error cases trigger the invalidation.

Signed-off-by: Daniel Hsu <Daniel-Hsu@quantatw.com>
---
 drivers/net/mctp/mctp-i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mctp/mctp-i2c.c b/drivers/net/mctp/mctp-i2c.c
index d74d47dd6e04..f782d93f826e 100644
--- a/drivers/net/mctp/mctp-i2c.c
+++ b/drivers/net/mctp/mctp-i2c.c
@@ -537,7 +537,7 @@ static void mctp_i2c_xmit(struct mctp_i2c_dev *midev, struct sk_buff *skb)
 		rc = __i2c_transfer(midev->adapter, &msg, 1);
 
 		/* on tx errors, the flow can no longer be considered valid */
-		if (rc)
+		if (rc < 0)
 			mctp_i2c_invalidate_tx_flow(midev, skb);
 
 		break;
-- 
2.25.1
Re: [PATCH] mctp: Fix incorrect tx flow invalidation condition in mctp-i2c
Posted by Jeremy Kerr 8 months, 4 weeks ago
Hi Daniel,

> Previously, the condition for invalidating the tx flow in
> mctp_i2c_invalidate_tx_flow() checked if `rc` was nonzero.
> However, this could incorrectly trigger the invalidation
> even when `rc > 0` was returned as a success status.

Yes, and we should be seeing rc > 0 in normal behaviour...

> This patch updates the condition to explicitly check for `rc < 0`,
> ensuring that only error cases trigger the invalidation.

Looks good to me. I'll do some testing in my environment here, but in
the meantime:

Reviewed-by: Jeremy Kerr <jk@codeconstruct.com.au>

I figure you'll want to target the net (not net-next) tree, in which
case you'll probably need this:

Fixes: 338a93cf4a18 ("net: mctp-i2c: invalidate flows immediately on TX errors")

Thanks for the contribution.

Cheers,


Jeremy