[PATCH] examples/kni: clear warning about discarding const qualifier

Ferruh Yigit ferruh.yigit at xilinx.com
Tue May 31 11:22:44 CEST 2022


On 5/31/2022 10:12 AM, Bruce Richardson wrote:
> [CAUTION: External Email]
> 
> On Tue, May 31, 2022 at 08:13:04AM +0000, Ke Zhang wrote:
>> The warning info:
>> warning: passing argument 1 of ‘memcpy’ discards ‘const’
>> qualifier from pointer target type
>>
>> Compulsory type conversion to clear compile warning.
>>
>> Signed-off-by: Ke Zhang <ke1x.zhang at intel.com>
>> ---
>>   kernel/linux/kni/kni_misc.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
>> index 780187d8bf..6f9dab4732 100644
>> --- a/kernel/linux/kni/kni_misc.c
>> +++ b/kernel/linux/kni/kni_misc.c
>> @@ -403,10 +403,10 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
>>
>>        /* if user has provided a valid mac address */
>>        if (is_valid_ether_addr(dev_info.mac_addr))
>> -             memcpy(net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
>> +             memcpy((unsigned char *)net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
>>        else
>>                /* Generate random MAC address. */
>> -             eth_random_addr(net_dev->dev_addr);
>> +             eth_random_addr((uint8_t *)net_dev->dev_addr);
>>
>>        if (dev_info.mtu)
>>                net_dev->mtu = dev_info.mtu;
> 
> +Stephen H on CC, for his advice
> 
> This fix seems wrong to do. Given that it's a pointer to const char* rather
> than an actual array in the structure, is a better fix not to point the
> pointer to a new area of memory rather than trying to overwrite the old
> one?
> 

Agree that this is not proper fix.

Variable seems done const intentionally to prevent using it directly,
there are new helper functions like 'eth_hw_addr_set()', 
'eth_hw_addr_random()', .. to use with newer kernel versions.


More information about the dev mailing list