Re: [PATCH] net:switchdev: fix to release the lock before function return to avoid deadlock

From: Jiri Pirko
Date: Tue Dec 06 2016 - 07:29:41 EST


Tue, Dec 06, 2016 at 11:09:24AM CET, feng.deng@xxxxxxxxxxxxxxxxxx wrote:
>before switchdev_deferred_dequeue() normal return,show release the lock,
>if not,maybe there will be deadlock sometimes
>
>Signed-off-by: Feng Deng <feng.deng@xxxxxxxxxxxxxxxxxx>
>---
> net/switchdev/switchdev.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c
>index 3b95fe9..c0a1ad4 100644
>--- a/net/switchdev/switchdev.c
>+++ b/net/switchdev/switchdev.c
>@@ -120,6 +120,7 @@ static struct switchdev_deferred_item *switchdev_deferred_dequeue(void)
> dfitem = list_first_entry(&deferred,
> struct switchdev_deferred_item, list);
> list_del(&dfitem->list);
>+ spin_unlock_bh(&deferred_lock);
> unlock:
> spin_unlock_bh(&deferred_lock);

You are joking right?