acx-mac80211: fix scan API error that could lead to a crash
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -81,3 +81,32 @@ | |||||||
|   |   | ||||||
|  	adev->channel = channel; |  	adev->channel = channel; | ||||||
|   |   | ||||||
|  | --- a/merge.c | ||||||
|  | +++ b/merge.c | ||||||
|  | @@ -2776,7 +2776,10 @@ void acx_irq_work(struct work_struct *wo | ||||||
|  |  		/* HOST_INT_SCAN_COMPLETE */ | ||||||
|  |  		if (irqmasked & HOST_INT_SCAN_COMPLETE) { | ||||||
|  |  			if (test_bit(ACX_FLAG_SCANNING, &adev->flags)) { | ||||||
|  | -				ieee80211_scan_completed(adev->hw, false); | ||||||
|  | +				struct cfg80211_scan_info info = { | ||||||
|  | +					.aborted = false | ||||||
|  | +				}; | ||||||
|  | +				ieee80211_scan_completed(adev->hw, &info); | ||||||
|  |  				log(L_INIT, "scan completed\n"); | ||||||
|  |  				clear_bit(ACX_FLAG_SCANNING, &adev->flags); | ||||||
|  |  			} | ||||||
|  | @@ -3138,10 +3141,13 @@ int acx_op_start(struct ieee80211_hw *hw | ||||||
|  |   | ||||||
|  |  void acx_stop(acx_device_t *adev) | ||||||
|  |  { | ||||||
|  | +	struct cfg80211_scan_info info = { | ||||||
|  | +		.aborted = true | ||||||
|  | +	}; | ||||||
|  |  	acxmem_lock_flags; | ||||||
|  |   | ||||||
|  |  	if (test_bit(ACX_FLAG_SCANNING, &adev->flags)) { | ||||||
|  | -		ieee80211_scan_completed(adev->hw, true); | ||||||
|  | +		ieee80211_scan_completed(adev->hw, &info); | ||||||
|  |  		acx_issue_cmd(adev, ACX1xx_CMD_STOP_SCAN, NULL, 0); | ||||||
|  |  		clear_bit(ACX_FLAG_SCANNING, &adev->flags); | ||||||
|  |  	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau