Re: [Patch V2] bonding: fix potential deadlock in bond_uninit()

From: Cong Wang
Date: Thu Apr 01 2010 - 02:51:22 EST


Eric W. Biederman wrote:
Amerigo Wang <amwang@xxxxxxxxxx> writes:

bond_uninit() is invoked with rtnl_lock held, when it does destroy_workqueue()
which will potentially flush all works in this workqueue, if we hold rtnl_lock
again in the work function, it will deadlock.

So move destroy_workqueue() to destructor where rtnl_lock is not held any more,
suggested by Eric.

The error handling on creating a bond device needs to be updated as well.


You're right, I missed that part. Will update it soon.

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