forked from mirrors/linux
		
	i2c: Sanity checks on adapter registration
Make sure I2C adapters being registered have the required struct fields set. If they don't, problems will happen later. Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
		
							parent
							
								
									e1e18ee1cb
								
							
						
					
					
						commit
						2236baa75f
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -848,6 +848,18 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
 | 
			
		|||
		goto out_list;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Sanity checks */
 | 
			
		||||
	if (unlikely(adap->name[0] == '\0')) {
 | 
			
		||||
		pr_err("i2c-core: Attempt to register an adapter with "
 | 
			
		||||
		       "no name!\n");
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
	if (unlikely(!adap->algo)) {
 | 
			
		||||
		pr_err("i2c-core: Attempt to register adapter '%s' with "
 | 
			
		||||
		       "no algo!\n", adap->name);
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	rt_mutex_init(&adap->bus_lock);
 | 
			
		||||
	mutex_init(&adap->userspace_clients_lock);
 | 
			
		||||
	INIT_LIST_HEAD(&adap->userspace_clients);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue