iwlwifi: pcie: fix race in Rx buffer allocator
Make sure the rx_allocator worker is canceled before running the rx_init routine. rx_init frees and re-allocates all rxb's pages. The rx_allocator worker also allocates pages for the used rxb's. Running rx_init and rx_allocator simultaniously causes a kernel panic. Fix that by canceling the work in rx_init. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
		
							parent
							
								
									0eac9abace
								
							
						
					
					
						commit
						0f22e40053
					
				| @ -902,6 +902,8 @@ static int _iwl_pcie_rx_init(struct iwl_trans *trans) | ||||
| 	} | ||||
| 	def_rxq = trans_pcie->rxq; | ||||
| 
 | ||||
| 	cancel_work_sync(&rba->rx_alloc); | ||||
| 
 | ||||
| 	spin_lock(&rba->lock); | ||||
| 	atomic_set(&rba->req_pending, 0); | ||||
| 	atomic_set(&rba->req_ready, 0); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user