mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	parport: fix attempt to write duplicate procfiles
Usually every parallel port will have a single pardev registered with
it. But ppdev driver is an exception. This userspace parallel port
driver allows to create multiple parrallel port devices for a single
parallel port. And as a result we were having a nice warning like:
"sysctl table check failed:
/dev/parport/parport0/devices/ppdev0/timeslice Sysctl already exists"
Use the same logic as used in parport_register_device() and register
the proc files only once for each parallel port.
Fixes: 6fa45a226897 ("parport: add device-model to parport subsystem")
Cc: stable <stable@vger.kernel.org> # v4.4+
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1414656
Bugzilla: https://bugs.archlinux.org/task/52322
Tested-by: James Feeney <james@nurealm.net>
Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									abda288bb2
								
							
						
					
					
						commit
						03270c6ac6
					
				
					 1 changed files with 4 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -939,8 +939,10 @@ parport_register_dev_model(struct parport *port, const char *name,
 | 
			
		|||
	 * pardevice fields. -arca
 | 
			
		||||
	 */
 | 
			
		||||
	port->ops->init_state(par_dev, par_dev->state);
 | 
			
		||||
	port->proc_device = par_dev;
 | 
			
		||||
	parport_device_proc_register(par_dev);
 | 
			
		||||
	if (!test_and_set_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags)) {
 | 
			
		||||
		port->proc_device = par_dev;
 | 
			
		||||
		parport_device_proc_register(par_dev);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return par_dev;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue