David Miller [mailto:da...@davemloft.net] 
> Sent: Thursday, October 09, 2014 3:45 AM
[..]
> I think a much simpler fix is to take rtnl_lock() in the workqueue
> function and suspend/resume ops.
> 
> Every other place you are adding the mutex already holds the RTNL
> mutex.

If I use the rtnl_lock(), I get a dead lock when enabling autosuspend.

Case 1:
   autosuspend before calling open.
   rtnl_lock()
   call open
   try to autoresume and rtl8152_resume is called.
   dead lock occurs.

Case 2:
   autosuspend occurs.
   rtnl_lock()
   call close
   try to autoresume and rtl8152_resume is called.
   dead lock occurs.
 
Best Regards,
Hayes
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to