prima: Resolve deadlock during random mac address generation

SME global lock is acquired before processing scan response
message in SME layer. As part of processing this scan response,
scan done callback is invoked in HDD layer which further tries
to acquire mac spoof lock to request new random mac address.
If hdd_processSpoofMacAddrRequest is invoked in kernel context
at the same time, there is possibility of deadlock as
hdd_processSpoofMacAddrRequest tries to acquire mac spoof lock
first and then sme global lock. If this sme global lock is already
acquired during scan done callback and waiting for mac spoof lock
before requesting for new random mac address, then there is possibility
of deadlock. Fix this by handling random mac address generation as
part of work queue so that sme global lock can be released immediately
without waiting for mac spoof lock.

Change-Id: I6b3b481b82e04d8e31eda6710905c16ec77e526f
CRs-Fixed: 936165
5 files changed
tree: f4f6147f6fa3699da5897a0f694c27152c7bee5b
  1. CORE/
  2. firmware_bin/
  3. riva/
  4. Android.mk
  5. Kbuild
  6. Kconfig
  7. Makefile