On 02/28/2017 02:23 PM, Joe Perches wrote:
> On Tue, 2017-02-28 at 15:35 +0000, Bart Van Assche wrote:
>> On Tue, 2017-02-28 at 15:02 +0300, Dan Carpenter wrote:
>>> Bitwise & was obviously intended here.
> []
>>> diff --git a/include/linux/mlx4/driver.h b/include/linux/mlx4/driver.h
> []
>>> @@ -109,7 +109,7 @@ static inline void      (u8 *addr, u64 mac)
>>>     int i;
>>>  
>>>     for (i = ETH_ALEN; i > 0; i--) {
>>> -           addr[i - 1] = mac && 0xFF;
>>> +           addr[i - 1] = mac & 0xFF;
>>>             mac >>= 8;
>>>     }
>>>  }
>>
>> Is this the only place where such a loop occurs?
> 
> Seems to be.
> 
>> Should a put_unaligned_be48()
>> function be introduced?
> 
> Why?  This is used exactly once.

Really? Here is an example of another open-coded version of
put_unaligned_be48() from arch/mips/cavium-octeon/octeon-platform.c:

        new_mac[0] = (mac >> 40) & 0xff;
        new_mac[1] = (mac >> 32) & 0xff;
        new_mac[2] = (mac >> 24) & 0xff;
        new_mac[3] = (mac >> 16) & 0xff;
        new_mac[4] = (mac >> 8) & 0xff;
        new_mac[5] = mac & 0xff;

Bart.

Reply via email to