• Xiaotian Feng's avatar
    net dst: fix percpu_counter list corruption and poison overwritten · 41bb78b4
    Xiaotian Feng authored
    There're some percpu_counter list corruption and poison overwritten warnings
    in recent kernel, which is resulted by fc66f95c.
    
    commit fc66f95c switches to use percpu_counter, in ip6_route_net_init, kernel
    init the percpu_counter for dst entries, but, the percpu_counter is never destroyed
    in ip6_route_net_exit. So if the related data is freed by kernel, the freed percpu_counter
    is still on the list, then if we insert/remove other percpu_counter, list corruption
    resulted. Also, if the insert/remove option modifies the ->prev,->next pointer of
    the freed value, the poison overwritten is resulted then.
    
    With the following patch, the percpu_counter list corruption and poison overwritten
    warnings disappeared.
    Signed-off-by: default avatarXiaotian Feng <dfeng@redhat.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
    Cc: "Pekka Savola (ipv6)" <pekkas@netcore.fi>
    Cc: James Morris <jmorris@namei.org>
    Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
    Cc: Patrick McHardy <kaber@trash.net>
    Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    41bb78b4
route.c 68.1 KB