mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
ipvlan: play well with macvlan device
If a device is already a macvlan port then refuse to use it as an ipvlan port in the early stage of port creation. thost1:~# ip link add link eth0 mvl0 type macvlan thost1:~# echo $? 0 thost1:~# ip link add link eth0 ipvl0 type ipvlan RTNETLINK answers: Device or resource busy thost1:~# echo $? 2 thost1:~# Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2f33e7d59c
commit
764e433b3c
1 changed files with 6 additions and 0 deletions
|
@ -38,6 +38,12 @@ static int ipvlan_port_create(struct net_device *dev)
|
||||||
netdev_err(dev, "Master is either lo or non-ether device\n");
|
netdev_err(dev, "Master is either lo or non-ether device\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (netif_is_macvlan_port(dev)) {
|
||||||
|
netdev_err(dev, "Master is a macvlan port.\n");
|
||||||
|
return -EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
port = kzalloc(sizeof(struct ipvl_port), GFP_KERNEL);
|
port = kzalloc(sizeof(struct ipvl_port), GFP_KERNEL);
|
||||||
if (!port)
|
if (!port)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Loading…
Add table
Reference in a new issue