forked from mirrors/linux
		
	NFC: Do not return EBUSY when stopping a poll that's already stopped
We check for the polling flag before checking if the netlink PID caller match. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									1550bf2d59
								
							
						
					
					
						commit
						a831b91320
					
				
					 1 changed files with 9 additions and 0 deletions
				
			
		| 
						 | 
					@ -634,6 +634,15 @@ static int nfc_genl_stop_poll(struct sk_buff *skb, struct genl_info *info)
 | 
				
			||||||
	if (!dev)
 | 
						if (!dev)
 | 
				
			||||||
		return -ENODEV;
 | 
							return -ENODEV;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						device_lock(&dev->dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!dev->polling) {
 | 
				
			||||||
 | 
							device_unlock(&dev->dev);
 | 
				
			||||||
 | 
							return -EINVAL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						device_unlock(&dev->dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mutex_lock(&dev->genl_data.genl_data_mutex);
 | 
						mutex_lock(&dev->genl_data.genl_data_mutex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (dev->genl_data.poll_req_pid != info->snd_pid) {
 | 
						if (dev->genl_data.poll_req_pid != info->snd_pid) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue