[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170217.111333.106912523796144773.davem@davemloft.net>
Date: Fri, 17 Feb 2017 11:13:33 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: anoob.soman@...rix.com
Cc: netdev@...r.kernel.org, eric.dumazet@...il.com
Subject: Re: [PATCH v3 net] packet: Do not call fanout_release from atomic
contexts
From: Anoob Soman <anoob.soman@...rix.com>
Date: Wed, 15 Feb 2017 20:25:39 +0000
> Commit 6664498280cf ("packet: call fanout_release, while UNREGISTERING a
> netdev"), unfortunately, introduced the following issues.
...
> To fix the above problems, remove the call to fanout_release() under
> rcu_read_lock(). Instead, call __dev_remove_pack(&fanout->prot_hook) and
> netdev_run_todo will be happy that &dev->ptype_specific list is empty. In order
> to achieve this, I moved dev_{add,remove}_pack() out of fanout_{add,release} to
> __fanout_{link,unlink}. So, call to {,__}unregister_prot_hook() will make sure
> fanout->prot_hook is removed as well.
>
> Fixes: 6664498280cf ("packet: call fanout_release, while UNREGISTERING a netdev")
> Reported-by: Eric Dumazet <edumazet@...gle.com>
> Signed-off-by: Anoob Soman <anoob.soman@...rix.com>
> ---
> Changes in v3:
> - Removed extra variable from fanout_release(), per Eric's suggestion.
> Changes in v2:
> - Incorporated Eric's suggestion to do fanout_release_data() and kfree() after
> synchronize_net()
Applied and queued up for -stable, thanks.
Powered by blists - more mailing lists