rfkill: always init poll delayed work
The rfkill core didn't initialise the poll delayed work because it assumed that polling was always done by specifying the poll function. cfg80211, however, would like to start polling only later, which is a valid use case and easy to support, so change rfkill to always initialise the poll delayed work and thus allow starting polling by calling the rfkill_resume_polling() function after registration. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
		
					parent
					
						
							
								72828b1b3c
							
						
					
				
			
			
				commit
				
					
						2ec2c68c11
					
				
			
		
					 1 changed files with 6 additions and 7 deletions
				
			
		| 
						 | 
					@ -909,16 +909,15 @@ int __must_check rfkill_register(struct rfkill *rfkill)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rfkill->registered = true;
 | 
						rfkill->registered = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (rfkill->ops->poll) {
 | 
					 | 
				
			||||||
	INIT_DELAYED_WORK(&rfkill->poll_work, rfkill_poll);
 | 
						INIT_DELAYED_WORK(&rfkill->poll_work, rfkill_poll);
 | 
				
			||||||
 | 
						INIT_WORK(&rfkill->uevent_work, rfkill_uevent_work);
 | 
				
			||||||
 | 
						INIT_WORK(&rfkill->sync_work, rfkill_sync_work);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (rfkill->ops->poll)
 | 
				
			||||||
		schedule_delayed_work(&rfkill->poll_work,
 | 
							schedule_delayed_work(&rfkill->poll_work,
 | 
				
			||||||
			round_jiffies_relative(POLL_INTERVAL));
 | 
								round_jiffies_relative(POLL_INTERVAL));
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	INIT_WORK(&rfkill->uevent_work, rfkill_uevent_work);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	INIT_WORK(&rfkill->sync_work, rfkill_sync_work);
 | 
					 | 
				
			||||||
	schedule_work(&rfkill->sync_work);
 | 
						schedule_work(&rfkill->sync_work);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rfkill_send_events(rfkill, RFKILL_OP_ADD);
 | 
						rfkill_send_events(rfkill, RFKILL_OP_ADD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mutex_unlock(&rfkill_global_mutex);
 | 
						mutex_unlock(&rfkill_global_mutex);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue