From: Anoob Soman <anoob.so...@citrix.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 <eduma...@google.com>
> Signed-off-by: Anoob Soman <anoob.so...@citrix.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.

Reply via email to