mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-11-04 08:57:29 +01:00 
			
		
		
		
	offchannel: always call destroy right away on cancel
The main cancel code path was not calling destroy immediately which was not consistent with other code paths/APIs.
This commit is contained in:
		
							parent
							
								
									1a27cd1548
								
							
						
					
					
						commit
						4a8a43965f
					
				@ -208,20 +208,10 @@ void offchannel_cancel(uint64_t wdev_id, uint32_t id)
 | 
			
		||||
			goto work_done;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Call destroy now to maintain consistency with any other
 | 
			
		||||
		 * path leading to radio_work_done(). But set needs_cancel so
 | 
			
		||||
		 * the ROC command can be canceled
 | 
			
		||||
		 */
 | 
			
		||||
		if (info->destroy)
 | 
			
		||||
			info->destroy(info->error, info->user_data);
 | 
			
		||||
 | 
			
		||||
		info->destroy = NULL;
 | 
			
		||||
		info->started = NULL;
 | 
			
		||||
		info->user_data = NULL;
 | 
			
		||||
		/* Lets the ROC callback know it needs to cancel the request */
 | 
			
		||||
		info->needs_cancel = true;
 | 
			
		||||
 | 
			
		||||
		return;
 | 
			
		||||
		goto destroy;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
@ -239,6 +229,14 @@ void offchannel_cancel(uint64_t wdev_id, uint32_t id)
 | 
			
		||||
	 */
 | 
			
		||||
	offchannel_cancel_roc(info);
 | 
			
		||||
 | 
			
		||||
destroy:
 | 
			
		||||
	if (info->destroy)
 | 
			
		||||
		info->destroy(info->error, info->user_data);
 | 
			
		||||
 | 
			
		||||
	info->destroy = NULL;
 | 
			
		||||
	info->started = NULL;
 | 
			
		||||
	info->user_data = NULL;
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
 | 
			
		||||
work_done:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user