• F
    net: delete stale packet_mclist entries · 82f17091
    Francesco Ruggeri 提交于
    When an interface is deleted from a net namespace the ifindex in the
    corresponding entries in PF_PACKET sockets' mclists becomes stale.
    This can create inconsistencies if later an interface with the same ifindex
    is moved from a different namespace (not that unlikely since ifindexes are
    per-namespace).
    In particular we saw problems with dev->promiscuity, resulting
    in "promiscuity touches roof, set promiscuity failed. promiscuity
    feature of device might be broken" warnings and EOVERFLOW failures of
    setsockopt(PACKET_ADD_MEMBERSHIP).
    This patch deletes the mclist entries for interfaces that are deleted.
    Since this now causes setsockopt(PACKET_DROP_MEMBERSHIP) to fail with
    EADDRNOTAVAIL if called after the interface is deleted, also make
    packet_mc_drop not fail.
    Signed-off-by: NFrancesco Ruggeri <fruggeri@arista.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    82f17091
af_packet.c 97.1 KB