X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fw1%2Fw1_family.c;h=88c517a4c178fa7ed9f884aed5dd55d465c401e3;hb=bd6fe9e14589ab39bdabb942773b3ed669fa5738;hp=3941fb05b8e1631984a0f96ea0093e785c790e61;hpb=7785925dd8e0d2f389d4a9168f1683c6b249a552;p=linux-2.6 diff --git a/drivers/w1/w1_family.c b/drivers/w1/w1_family.c index 3941fb05b8..88c517a4c1 100644 --- a/drivers/w1/w1_family.c +++ b/drivers/w1/w1_family.c @@ -27,14 +27,7 @@ DEFINE_SPINLOCK(w1_flock); static LIST_HEAD(w1_families); - -static int w1_check_family(struct w1_family *f) -{ - if (!f->fops->rname || !f->fops->rbin || !f->fops->rval || !f->fops->rvalname) - return -EINVAL; - - return 0; -} +extern void w1_reconnect_slaves(struct w1_family *f); int w1_register_family(struct w1_family *newf) { @@ -42,9 +35,6 @@ int w1_register_family(struct w1_family *newf) struct w1_family *f; int ret = 0; - if (w1_check_family(newf)) - return -EINVAL; - spin_lock(&w1_flock); list_for_each_safe(ent, n, &w1_families) { f = list_entry(ent, struct w1_family, family_entry); @@ -60,9 +50,10 @@ int w1_register_family(struct w1_family *newf) newf->need_exit = 0; list_add_tail(&newf->family_entry, &w1_families); } - spin_unlock(&w1_flock); + w1_reconnect_slaves(newf); + return ret; }