Subject: Re: drivers/net/tokenring/smctr.c: logical-bitwise or confusion?

From: Roel Kluin <[email-masked]>
Date: Mon, 10 Mar 2008 02:16:31 +0100

Paul Gortmaker wrote:
> --- Roel Kluin <[email-masked]> wrote:
> 
>> drivers/net/tokenring/smctr.c:3416
>>
>> tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) || IBM_PASS_SOURCE_ADDR);
>>
>> shouldn't this be a bit-wise or?
>> from drivers/net/tokenring/smctr.h:50:
>>
>> #define      IBM_PASS_SOURCE_ADDR    0x01
> 
> Probably a safe bet that is what they meant to have. Since
> as it stands, gcc will (correctly) optimize that into:
> 
> tsv->svv[0]= 1;
> 
> which probably isn't particularly useful.
> 
> Paul.

That was what I was thinking as well.
---
logical-bitwise | confusion

Signed-off-by: Roel Kluin <[email-masked]>
---
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index 8909050..8ae5837 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -3413,7 +3413,7 @@ static int smctr_make_tx_status_code(struct net_device *dev,
         tsv->svi = TRANSMIT_STATUS_CODE;
         tsv->svl = S_TRANSMIT_STATUS_CODE;
 
-        tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) || IBM_PASS_SOURCE_ADDR);
+        tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) | IBM_PASS_SOURCE_ADDR);
 
         /* Stripped frame status of Transmitted Frame */
         tsv->svv[1] = tx_fstatus & 0xff;