diff mbox

net: cavium: liquidio: fix check for in progress flag

Message ID 1454689839-6360-1-git-send-email-colin.king@canonical.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Colin Ian King Feb. 5, 2016, 4:30 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

smatch detected a suspicious looking bitop condition:

drivers/net/ethernet/cavium/liquidio/lio_main.c:2529
  handle_timestamp() warn: suspicious bitop condition

(skb_shinfo(skb)->tx_flags | SKBTX_IN_PROGRESS is always non-zero,
so the logic is definitely not correct.  Use & to mask the correct
bit.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/net/ethernet/cavium/liquidio/lio_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Miller Feb. 13, 2016, 11:06 a.m. UTC | #1
From: Colin King <colin.king@canonical.com>
Date: Fri,  5 Feb 2016 16:30:39 +0000

> From: Colin Ian King <colin.king@canonical.com>
> 
> smatch detected a suspicious looking bitop condition:
> 
> drivers/net/ethernet/cavium/liquidio/lio_main.c:2529
>   handle_timestamp() warn: suspicious bitop condition
> 
> (skb_shinfo(skb)->tx_flags | SKBTX_IN_PROGRESS is always non-zero,
> so the logic is definitely not correct.  Use & to mask the correct
> bit.
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>

Applied, thanks.

But this means one of the code paths was never tested...
diff mbox

Patch

diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
index 8727655..06b6be8 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
@@ -2524,7 +2524,7 @@  static void handle_timestamp(struct octeon_device *oct,
 
 	octeon_swap_8B_data(&resp->timestamp, 1);
 
-	if (unlikely((skb_shinfo(skb)->tx_flags | SKBTX_IN_PROGRESS) != 0)) {
+	if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS) != 0)) {
 		struct skb_shared_hwtstamps ts;
 		u64 ns = resp->timestamp;