Re: Documentation/unaligned-memory-access.txt: fix incorrect comparison operator

From: Ozgur Karatas
Date: Tue Dec 20 2016 - 04:52:01 EST


20.12.2016, 02:22, "Cihangir Akturk" <cakturk@xxxxxxxxx>:
> On Sun, Dec 18, 2016 at 12:52:12AM +0200, Ozgur Karatas wrote:
>> Â17.12.2016, 19:43, "Cihangir Akturk" <cakturk@xxxxxxxxx>:
>> Â> In the actual implementation ether_addr_equal function tests for equality to 0
>> Â> when returning. It seems in commit 0d74c4 it is somehow overlooked to change
>> Â> this operator to reflect the actual function.
>>
>> Âwhy this "return" function need to be ==0? I think, u16 functions read memory but "0" is should not be equalty.
>
> XOR is true only when inputs differ. That means if inputs are the
> same, then it outputs false (0) or whatever you call it. Then we
> perform OR operation between those outputs. So if the result is 0 then
> addr1 and addr2 is equal.

Thanks for this explanation to your patch. In this case the patch mentioned is valid.
I checked, turned to "!=0" errors.

un-mem.c:29:18: error: â!â (first use in this function)
return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0;
^
Also, don't need to send patch it secon time :)

>> ÂThis way, -for the code to work- memory should be everytime unaligned !=0.
>
> Sorry I didn't quite get the point.

Regards,

~Ozgur