2008-01-10 19:44:47

by Roel Kluin

[permalink] [raw]
Subject: [PATCH wireless/arlan] Replace logical- by bit-and

Totally untested patch below from linus' git tree. The && is incorrect, right?

from drivers/net/wireless/arlan.h:390:
#define ARLAN_POWER 0x40
#define ARLAN_ACCESS 0x80

Replace logical and by bit-and

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/net/wireless/arlan.h b/drivers/net/wireless/arlan.h
index 3ed1df7..7b7498f 100644
--- a/drivers/net/wireless/arlan.h
+++ b/drivers/net/wireless/arlan.h
@@ -485,7 +485,7 @@ struct arlan_private {
#define clearClearInterrupt(dev){\
writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CLEAR_INTERRUPT);}
#define setPowerOff(dev){\
- writeControlRegister(dev,readControlRegister(dev) | (ARLAN_POWER && ARLAN_ACCESS));\
+ writeControlRegister(dev, readControlRegister(dev) | (ARLAN_POWER & ARLAN_ACCESS));\
writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_ACCESS);}
#define setPowerOn(dev){\
writeControlRegister(dev,readControlRegister(dev) & ~(ARLAN_POWER)); }


2008-01-10 20:31:20

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH wireless/arlan] Replace logical- by bit-and

On Thu, 10 Jan 2008 20:15:53 +0100 Roel Kluin wrote:

> Totally untested patch below from linus' git tree. The && is incorrect, right?
>
> from drivers/net/wireless/arlan.h:390:
> #define ARLAN_POWER 0x40
> #define ARLAN_ACCESS 0x80
>
> Replace logical and by bit-and
>
> Signed-off-by: Roel Kluin <[email protected]>
> ---
> diff --git a/drivers/net/wireless/arlan.h b/drivers/net/wireless/arlan.h
> index 3ed1df7..7b7498f 100644
> --- a/drivers/net/wireless/arlan.h
> +++ b/drivers/net/wireless/arlan.h
> @@ -485,7 +485,7 @@ struct arlan_private {
> #define clearClearInterrupt(dev){\
> writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CLEAR_INTERRUPT);}
> #define setPowerOff(dev){\
> - writeControlRegister(dev,readControlRegister(dev) | (ARLAN_POWER && ARLAN_ACCESS));\
> + writeControlRegister(dev, readControlRegister(dev) | (ARLAN_POWER & ARLAN_ACCESS));\

eh? How does that help?

0x80 && 0x40 -> 0
0x80 & 0x40 -> 0

so readControlRegister() | (0)
??

Maybe it should be (ARLAN_POWER | ARLAN_ACCESS), but some
arlan developer or someone with specs should help here...


> writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_ACCESS);}
> #define setPowerOn(dev){\
> writeControlRegister(dev,readControlRegister(dev) & ~(ARLAN_POWER)); }

or am I sleeping()?
---
~Randy

2008-01-10 20:49:50

by Chuck Ebbert

[permalink] [raw]
Subject: Re: [PATCH wireless/arlan] Replace logical- by bit-and

On 01/10/2008 03:28 PM, Randy Dunlap wrote:
> On Thu, 10 Jan 2008 20:15:53 +0100 Roel Kluin wrote:
>
>> Totally untested patch below from linus' git tree. The && is incorrect, right?
>>
>> from drivers/net/wireless/arlan.h:390:
>> #define ARLAN_POWER 0x40
>> #define ARLAN_ACCESS 0x80
>>
>> Replace logical and by bit-and
>>
>> Signed-off-by: Roel Kluin <[email protected]>
>> ---
>> diff --git a/drivers/net/wireless/arlan.h b/drivers/net/wireless/arlan.h
>> index 3ed1df7..7b7498f 100644
>> --- a/drivers/net/wireless/arlan.h
>> +++ b/drivers/net/wireless/arlan.h
>> @@ -485,7 +485,7 @@ struct arlan_private {
>> #define clearClearInterrupt(dev){\
>> writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CLEAR_INTERRUPT);}
>> #define setPowerOff(dev){\
>> - writeControlRegister(dev,readControlRegister(dev) | (ARLAN_POWER && ARLAN_ACCESS));\
>> + writeControlRegister(dev, readControlRegister(dev) | (ARLAN_POWER & ARLAN_ACCESS));\
>
> eh? How does that help?
>
> 0x80 && 0x40 -> 0

1

2008-01-10 21:19:21

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH wireless/arlan] Replace logical- by bit-and

Chuck Ebbert wrote:
> On 01/10/2008 03:28 PM, Randy Dunlap wrote:

>>
>> 0x80 && 0x40 -> 0
>
> 1

duh. ack.

--
~Randy

2008-01-10 21:51:35

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH wireless/arlan] Replace logical- by bit-and

On Thu, Jan 10, 2008 at 01:16:33PM -0800, Randy Dunlap wrote:
> Chuck Ebbert wrote:
>> On 01/10/2008 03:28 PM, Randy Dunlap wrote:
>
>>>
>>> 0x80 && 0x40 -> 0
>>
>> 1
>
> duh. ack.

Well it still seems wrong, changing from an "| 1" to an "| 0".
Anyone still using Arlan that can verify the proper fix (which I'd
guess is changing "&&" to "|")?

John
--
John W. Linville
[email protected]

2008-01-10 22:19:58

by Roel Kluin

[permalink] [raw]
Subject: Re: [PATCH wireless/arlan] Replace logical- by bit-and

Randy Dunlap wrote:
> On Thu, 10 Jan 2008 20:15:53 +0100 Roel Kluin wrote:
>
>> diff --git a/drivers/net/wireless/arlan.h b/drivers/net/wireless/arlan.h
>> index 3ed1df7..7b7498f 100644
>> --- a/drivers/net/wireless/arlan.h
>> +++ b/drivers/net/wireless/arlan.h
>> @@ -485,7 +485,7 @@ struct arlan_private {
>> #define clearClearInterrupt(dev){\
>> writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CLEAR_INTERRUPT);}
>> #define setPowerOff(dev){\
>> - writeControlRegister(dev,readControlRegister(dev) | (ARLAN_POWER && ARLAN_ACCESS));\
>> + writeControlRegister(dev, readControlRegister(dev) | (ARLAN_POWER & ARLAN_ACCESS));\
>
> eh? How does that help?

Right, sorry, please ignore my patch.

> Maybe it should be (ARLAN_POWER | ARLAN_ACCESS), but some
> arlan developer or someone with specs should help here...

I have CC'd the previous maintainers