• Mahesh Bandewar's avatar
    ipvlan: improvise dev_id generation logic in IPvlan · da36e13c
    Mahesh Bandewar authored
    The patch 009146d1 ("ipvlan: assign unique dev-id for each slave
    device.") used ida_simple_get() to generate dev_ids assigned to the
    slave devices. However (Eric has pointed out that) there is a shortcoming
    with that approach as it always uses the first available ID. This
    becomes a problem when a slave gets deleted and a new slave gets added.
    The ID gets reassigned causing the new slave to get the same link-local
    address. This side-effect is undesirable.
    
    This patch adds a per-port variable that keeps track of the IDs
    assigned and used as the stat-base for the IDR api. This base will be
    wrapped around when it reaches the MAX (0xFFFE) value possibly on a
    busy system where slaves are added and deleted routinely.
    
    Fixes: 009146d1 ("ipvlan: assign unique dev-id for each slave device.")
    Signed-off-by: default avatarMahesh Bandewar <maheshb@google.com>
    CC: Eric Dumazet <edumazet@google.com>
    CC: David Miller <davem@davemloft.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    da36e13c
ipvlan_main.c 22.1 KB