[U-Boot] [u-boot PATCH v4 04/10] ti: common: board_detect: commodify ethaddr environment setting code

Roger Quadros rogerq at ti.com
Tue Mar 14 10:52:13 UTC 2017


On 13/03/17 15:15, Felipe Balbi wrote:
> 
> Hi,
> 
> Roger Quadros <rogerq at ti.com> writes:
>> +void board_ti_set_ethaddr(int index)
>> +{
>> +	uint8_t mac_addr[6];
>> +	int i;
>> +	u64 mac1, mac2;
>> +	u8 mac_addr1[6], mac_addr2[6];
>> +	int num_macs;
>> +	/*
>> +	 * Export any Ethernet MAC addresses from EEPROM.
>> +	 * The 2 MAC addresses in EEPROM define the address range.
>> +	 */
>> +	board_ti_get_eth_mac_addr(0, mac_addr1);
>> +	board_ti_get_eth_mac_addr(1, mac_addr2);
>> +
>> +	if (is_valid_ethaddr(mac_addr1) && is_valid_ethaddr(mac_addr2)) {
>> +		mac1 = mac_to_u64(mac_addr1);
>> +		mac2 = mac_to_u64(mac_addr2);
>> +
>> +		/* must contain an address range */
>> +		num_macs = mac2 - mac1 + 1;
>> +		/* <= 50 to protect against user programming error */
>> +		if (num_macs > 0 && num_macs <= 50) {
> 
> if user programs a range > 50, then you do nothing. How about allowing
> up to 50 addresses?
> 
> Something like:
> 
> 	if (num_macs < 0)
>         	bail_out();
> 
> 	if (num_macs > 50) {
> 		printf("Too many addresses. %d > 50\n", num_macs);
>                 num_macs = 50;
> 	}
> 
> this also mean you can reduce indentation level for the for loop.
> 

Good idea.

-- 
cheers,
-roger


More information about the U-Boot mailing list