From: Mahesh Bandewar <mahe...@google.com>

IPvlan checks if the master device is already used by checking a
specific device (here it's macvlan device). This is technically not
sufficient and it should just ensure the rx_handler is busy or not.
This would be a super check that includes macvlan and any other that
has already registered rx-handler.

Signed-off-by: Mahesh Bandewar <mahe...@google.com>
---
 drivers/net/ipvlan/ipvlan_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index b5c390f0f2b3..95b18f4602cf 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -102,8 +102,8 @@ static int ipvlan_port_create(struct net_device *dev)
                return -EINVAL;
        }
 
-       if (netif_is_macvlan_port(dev)) {
-               netdev_err(dev, "Master is a macvlan port.\n");
+       if (netdev_is_rx_handler_busy(dev)) {
+               netdev_err(dev, "Device is already in use.\n");
                return -EBUSY;
        }
 
-- 
2.11.0.483.g087da7b7c-goog

Reply via email to