X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fi2c%2Fi2c-core.c;h=6b4cc567645b4e9d936b47bc0c777a05dc9222b9;hb=aa3fc52546b847f590d86a093afd863ff9081628;hp=d231f683f5763bc286e98200fc46286b35ef65a6;hpb=00ebb6382b8d9c7c15b5f8ad230670d8161d38dd;p=~andy%2Flinux diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index d231f683f57..6b4cc567645 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -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);