iwlagn: fix dangling scan request
authorJohannes Berg <johannes.berg@intel.com>
Thu, 22 Sep 2011 21:59:04 +0000 (14:59 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 26 Sep 2011 18:55:50 +0000 (14:55 -0400)
commit6c80c39d9a6986a566c30d797aae37bfb697eea3
tree8ce4d0e71e4daacf3724ab15a8265f1a53926325
parent1b9ca0272ffae212e726380f66777b30a56ed7a5
iwlagn: fix dangling scan request

If iwl_scan_initiate() fails for any reason,
priv->scan_request and priv->scan_vif are left
dangling. This can lead to a crash later when
iwl_bg_scan_completed() tries to run a pending
scan request.

In practice, this seems to be very rare due to
the STATUS_SCANNING check earlier. That check,
however, is wrong -- it should allow a scan to
be queued when a reset/roc scan is going on.
When a normal scan is already going on, a new
one can't be issued by mac80211, so that code
can be removed completely. I introduced this
bug when adding off-channel support in commit
266af4c745952e9bebf687dd68af58df553cb59d.

Cc: stable@kernel.org [3.0]
Reported-by: Peng Yan <peng.yan@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-scan.c