lkml.org 
[lkml]   [2011]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: 2.6.39-rc6-mmotm0506 - another lockdep splat (networking this time)
    From
    Date
    Le mardi 10 mai 2011 à 04:23 +0200, Eric Dumazet a écrit :

    > Thanks for the report, I am taking a look how to fix this.
    >

    OK here is the official patch submission

    Thanks Valdis !

    [PATCH net-next-2.6] net: fix two lockdep splats

    Commit e67f88dd12f6 (net: dont hold rtnl mutex during netlink dump
    callbacks) switched rtnl protection to RCU, but we forgot to adjust two
    rcu_dereference() lockdep annotations :

    inet_get_link_af_size() or inet_fill_link_af() might be called with
    rcu_read_lock or rtnl held, so use rcu_dereference_rtnl()
    instead of rtnl_dereference()

    Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    ---
    net/ipv4/devinet.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
    index cd9ca08..6b1eb92 100644
    --- a/net/ipv4/devinet.c
    +++ b/net/ipv4/devinet.c
    @@ -1369,7 +1369,7 @@ errout:

    static size_t inet_get_link_af_size(const struct net_device *dev)
    {
    - struct in_device *in_dev = __in_dev_get_rtnl(dev);
    + struct in_device *in_dev = rcu_dereference_rtnl(dev->ip_ptr);

    if (!in_dev)
    return 0;
    @@ -1379,7 +1379,7 @@ static size_t inet_get_link_af_size(const struct net_device *dev)

    static int inet_fill_link_af(struct sk_buff *skb, const struct net_device *dev)
    {
    - struct in_device *in_dev = __in_dev_get_rtnl(dev);
    + struct in_device *in_dev = rcu_dereference_rtnl(dev->ip_ptr);
    struct nlattr *nla;
    int i;


    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-05-10 05:51    [W:0.023 / U:32.472 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site