net: ipv4: handle DSA enabled master network devices
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 16 Jan 2015 17:56:01 +0000 (09:56 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Jan 2015 20:45:10 +0000 (15:45 -0500)
commit728c02089a0e3eefb02e9927bfae50490f40e72e
tree0556ec2ffded299341f152e6f6ba396e34150010
parent5bdc73800dad3ef5d06977a4b90304bd34353933
net: ipv4: handle DSA enabled master network devices

The logic to configure a network interface for kernel IP
auto-configuration is very simplistic, and does not handle the case
where a device is stacked onto another such as with DSA. This causes the
kernel not to open and configure the master network device in a DSA
switch tree, and therefore slave network devices using this master
network devices as conduit device cannot be open.

This restriction comes from a check in net/dsa/slave.c, which is
basically checking the master netdev flags for IFF_UP and returns
-ENETDOWN if it is not the case.

Automatically bringing-up DSA master network devices allows DSA slave
network devices to be used as valid interfaces for e.g: NFS root booting
by allowing kernel IP autoconfiguration to succeed on these interfaces.

On the reverse path, make sure we do not attempt to close a DSA-enabled
device as this would implicitely prevent the slave DSA network device
from operating.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ipconfig.c