Subject: Re: [PATCH 1/4] arcnet: com20020: Add com20020 io mapped version

From: Andrea Greco <[email-masked]>
Date: Tue, 22 May 2018 16:44:42 +0200

On 05/18/2018 07:51 PM, David Miller wrote:
> From: Andrea Greco <[email-masked]>
> Date: Fri, 18 May 2018 14:18:41 +0200
> 
>> In com20020.c found this:
>> /* FIXME: do this some other way! */
>> if (!dev->dev_addr[0])
>> dev->dev_addr[0] = arcnet_inb(ioaddr, 8);
>>
>> NODE-ID, must be univoque, for all arcnet network.
>> My previews idea was take random value but, this could create a
>> collision over network.
>>
>> A possible solution is:
>> In case of collision com20020 set a bit in status register.
>> Then peak a new NODE-ID and repeat this while correct NODE-ID is found.
>>
>> Other ideas is pass it via DTS.
>> But suppose have 2 same product in same network, same address same problem.
>> For this reason i prefer left standard driver behavior.
>>
>> Other ideas for solve this ?
> 
> Is there no way to obtain a unique value from the device?
> 
> If having a unique ID to talk on the ARCNET is so critical, there must
> be some way to properly allocation and use a unique ID.

Device can rise interrupt in case of Duplicate ID over the network.

> I guess this must be a general problem with this driver already.
I think arcnet network and relative NODE-ID designed during project 
phase, and address is always fixed.

In fact:
Other version of this dirver: PCI, ISA friends.
Simple work as module, and Node-ID is param of modules.

My opinion is that:
Before run `ifconfig arc0 up`, user has to setup hardware address with 
`ip link set dev arc0 address D2`.

All this is like a IP network with static address. If your IP address is 
duplicated, is not IP problem.

> You still need to address the issue of 'dev' being leaked on probe
> error paths.
For solve this,i think all considered a random address could be a good 
solution.

Regards, Andrea