From: Michal Kazior Date: Mon, 14 Jul 2014 13:07:29 +0000 (+0300) Subject: ath10k: fix unregister deadlock when fw probe fails X-Git-Tag: omap-for-v3.17/fixes-against-rc2~149^2~73^2~41^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a491a920ff5c22cc09700a2660f6eac55b1ce4c1;p=pandora-kernel.git ath10k: fix unregister deadlock when fw probe fails If firmware probing worker failed it called device_release_driver() which synchronously called remove() pci callback. The callback in turn waited for the worker that called it to finish resulting in a deadlock. Waiting for a completion instead of a worker, like some other drivers do, doesn't seem like the best idea either: Syscall Worker probe_fw() rmmod dev_lock() pci->remove() wait_for_completion() complete_all() device_release_driver() dev_lock() [sleep] free(ar) dev_unlock() [resume] There's no guarantee that Worker upon resuming can still access any data/code of the module. Leaving device bound to a driver is not as harmful as deadlocking so remove the call to device_release_driver() while a proper solution is figured out. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo --- Reading git-diff-tree failed