mirror of https://gitee.com/openkylin/linux.git
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
|
@ -848,6 +848,18 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
|
||||||
goto out_list;
|
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);
|
rt_mutex_init(&adap->bus_lock);
|
||||||
mutex_init(&adap->userspace_clients_lock);
|
mutex_init(&adap->userspace_clients_lock);
|
||||||
INIT_LIST_HEAD(&adap->userspace_clients);
|
INIT_LIST_HEAD(&adap->userspace_clients);
|
||||||
|
|
Loading…
Reference in New Issue