Messages in this thread | | | From | Ozgur Karatas <> | Subject | Re: Documentation/unaligned-memory-access.txt: fix incorrect comparison operator | Date | Tue, 20 Dec 2016 11:51:51 +0200 |
| |
20.12.2016, 02:22, "Cihangir Akturk" <cakturk@gmail.com>: > On Sun, Dec 18, 2016 at 12:52:12AM +0200, Ozgur Karatas wrote: >> 17.12.2016, 19:43, "Cihangir Akturk" <cakturk@gmail.com>: >> > 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
| |