Re: rfc: treewide replace local ethernet broadcast char arrays with a global ?
On Tue, 2018-03-20 at 13:07 -0700, Florian Fainelli wrote: > On 03/20/2018 01:00 PM, Joe Perches wrote: > > Treewide there are ~60 declarations of a ethernet broadcast > > address as a 6 byte array that are later used as either an > > output for vsprintf extension %pM or as a source array to > > copy or compare. > > > > Perhaps it'd be useful to declare a global static const u8[] > > in net somewhere instead to save the text/data space of these > > duplicate declarations. > > I could have sworn that such a thing existed already within > include/linux/etherdevice.h but it is only eth_reserved_addr_base and > friends as well as is_broadcast_ether_addr(). How about you do it? I hadn't noticed eth_reserved_addr_base before and it does seem incorrectly specified as static definitions in .h files for what should be extern are odd. Real question is, if the global ethernet broadcast address array is deemed useful, where to put the definition. The extern declaration should definitely be in etherdevice.h Maybe net/ethernet/eth.c ?
Re: rfc: treewide replace local ethernet broadcast char arrays with a global ?
On 03/20/2018 01:00 PM, Joe Perches wrote: > Treewide there are ~60 declarations of a ethernet broadcast > address as a 6 byte array that are later used as either an > output for vsprintf extension %pM or as a source array to > copy or compare. > > Perhaps it'd be useful to declare a global static const u8[] > in net somewhere instead to save the text/data space of these > duplicate declarations. I could have sworn that such a thing existed already within include/linux/etherdevice.h but it is only eth_reserved_addr_base and friends as well as is_broadcast_ether_addr(). How about you do it? > > $ grep-2.5.4 -n --include=*.[ch] > "\b(?:static\s+)?(?:const\s+)?(?:char|unsigned\s+char|u8)\s+\w+\s*\[\s*(?:ETH_ALEN|6)\s*\]\s*=\s*\{\s*(?:(?i:0xff|255),\s*){5,5}\s*(?i:0xff|255)\s*\}" > * | \ > grep -P "\.[ch]:\d+:" > -- Florian
rfc: treewide replace local ethernet broadcast char arrays with a global ?
Treewide there are ~60 declarations of a ethernet broadcast address as a 6 byte array that are later used as either an output for vsprintf extension %pM or as a source array to copy or compare. Perhaps it'd be useful to declare a global static const u8[] in net somewhere instead to save the text/data space of these duplicate declarations. $ grep-2.5.4 -n --include=*.[ch] "\b(?:static\s+)?(?:const\s+)?(?:char|unsigned\s+char|u8)\s+\w+\s*\[\s*(?:ETH_ALEN|6)\s*\]\s*=\s*\{\s*(?:(?i:0xff|255),\s*){5,5}\s*(?i:0xff|255)\s*\}" * | \ grep -P "\.[ch]:\d+:"