char name[EBT_FUNCTION_MAXNAMELEN];
        } *e;
 
-       *error = mutex_lock_interruptible(mutex);
-       if (*error != 0)
-               return NULL;
-
+       mutex_lock(mutex);
        list_for_each_entry(e, head, list) {
                if (strcmp(e->name, name) == 0)
                        return e;
 
        table->private = newinfo;
        rwlock_init(&table->lock);
-       ret = mutex_lock_interruptible(&ebt_mutex);
-       if (ret != 0)
-               goto free_chainstack;
-
+       mutex_lock(&ebt_mutex);
        list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
                if (strcmp(t->name, table->name) == 0) {
                        ret = -EEXIST;
 
 
 int nf_register_afinfo(const struct nf_afinfo *afinfo)
 {
-       int err;
-
-       err = mutex_lock_interruptible(&afinfo_mutex);
-       if (err < 0)
-               return err;
+       mutex_lock(&afinfo_mutex);
        RCU_INIT_POINTER(nf_afinfo[afinfo->family], afinfo);
        mutex_unlock(&afinfo_mutex);
        return 0;
 int nf_register_hook(struct nf_hook_ops *reg)
 {
        struct nf_hook_ops *elem;
-       int err;
 
-       err = mutex_lock_interruptible(&nf_hook_mutex);
-       if (err < 0)
-               return err;
+       mutex_lock(&nf_hook_mutex);
        list_for_each_entry(elem, &nf_hooks[reg->pf][reg->hooknum], list) {
                if (reg->priority < elem->priority)
                        break;
 
            cmd == IP_VS_SO_SET_STOPDAEMON) {
                struct ip_vs_daemon_user *dm = (struct ip_vs_daemon_user *)arg;
 
-               if (mutex_lock_interruptible(&ipvs->sync_mutex)) {
-                       ret = -ERESTARTSYS;
-                       goto out_dec;
-               }
+               mutex_lock(&ipvs->sync_mutex);
                if (cmd == IP_VS_SO_SET_STARTDAEMON)
                        ret = start_sync_thread(net, dm->state, dm->mcast_ifn,
                                                dm->syncid);
                goto out_dec;
        }
 
-       if (mutex_lock_interruptible(&__ip_vs_mutex)) {
-               ret = -ERESTARTSYS;
-               goto out_dec;
-       }
-
+       mutex_lock(&__ip_vs_mutex);
        if (cmd == IP_VS_SO_SET_FLUSH) {
                /* Flush the virtual service */
                ret = ip_vs_flush(net, false);
                struct ip_vs_daemon_user d[2];
 
                memset(&d, 0, sizeof(d));
-               if (mutex_lock_interruptible(&ipvs->sync_mutex))
-                       return -ERESTARTSYS;
-
+               mutex_lock(&ipvs->sync_mutex);
                if (ipvs->sync_state & IP_VS_STATE_MASTER) {
                        d[0].state = IP_VS_STATE_MASTER;
                        strlcpy(d[0].mcast_ifn, ipvs->master_mcast_ifn,
                return ret;
        }
 
-       if (mutex_lock_interruptible(&__ip_vs_mutex))
-               return -ERESTARTSYS;
-
+       mutex_lock(&__ip_vs_mutex);
        switch (cmd) {
        case IP_VS_SO_GET_VERSION:
        {
 
        struct nf_sockopt_ops *ops;
        int ret = 0;
 
-       if (mutex_lock_interruptible(&nf_sockopt_mutex) != 0)
-               return -EINTR;
-
+       mutex_lock(&nf_sockopt_mutex);
        list_for_each_entry(ops, &nf_sockopts, list) {
                if (ops->pf == reg->pf
                    && (overlap(ops->set_optmin, ops->set_optmax,
 {
        struct nf_sockopt_ops *ops;
 
-       if (mutex_lock_interruptible(&nf_sockopt_mutex) != 0)
-               return ERR_PTR(-EINTR);
-
+       mutex_lock(&nf_sockopt_mutex);
        list_for_each_entry(ops, &nf_sockopts, list) {
                if (ops->pf == pf) {
                        if (!try_module_get(ops->owner))
 
 static const unsigned int xt_jumpstack_multiplier = 2;
 
 /* Registration hooks for targets. */
-int
-xt_register_target(struct xt_target *target)
+int xt_register_target(struct xt_target *target)
 {
        u_int8_t af = target->family;
-       int ret;
 
-       ret = mutex_lock_interruptible(&xt[af].mutex);
-       if (ret != 0)
-               return ret;
+       mutex_lock(&xt[af].mutex);
        list_add(&target->list, &xt[af].target);
        mutex_unlock(&xt[af].mutex);
-       return ret;
+       return 0;
 }
 EXPORT_SYMBOL(xt_register_target);
 
 }
 EXPORT_SYMBOL(xt_unregister_targets);
 
-int
-xt_register_match(struct xt_match *match)
+int xt_register_match(struct xt_match *match)
 {
        u_int8_t af = match->family;
-       int ret;
-
-       ret = mutex_lock_interruptible(&xt[af].mutex);
-       if (ret != 0)
-               return ret;
 
+       mutex_lock(&xt[af].mutex);
        list_add(&match->list, &xt[af].match);
        mutex_unlock(&xt[af].mutex);
-
-       return ret;
+       return 0;
 }
 EXPORT_SYMBOL(xt_register_match);
 
        struct xt_match *m;
        int err = -ENOENT;
 
-       if (mutex_lock_interruptible(&xt[af].mutex) != 0)
-               return ERR_PTR(-EINTR);
-
+       mutex_lock(&xt[af].mutex);
        list_for_each_entry(m, &xt[af].match, list) {
                if (strcmp(m->name, name) == 0) {
                        if (m->revision == revision) {
        struct xt_target *t;
        int err = -ENOENT;
 
-       if (mutex_lock_interruptible(&xt[af].mutex) != 0)
-               return ERR_PTR(-EINTR);
-
+       mutex_lock(&xt[af].mutex);
        list_for_each_entry(t, &xt[af].target, list) {
                if (strcmp(t->name, name) == 0) {
                        if (t->revision == revision) {
 {
        int have_rev, best = -1;
 
-       if (mutex_lock_interruptible(&xt[af].mutex) != 0) {
-               *err = -EINTR;
-               return 1;
-       }
+       mutex_lock(&xt[af].mutex);
        if (target == 1)
                have_rev = target_revfn(af, name, revision, &best);
        else
 {
        struct xt_table *t;
 
-       if (mutex_lock_interruptible(&xt[af].mutex) != 0)
-               return ERR_PTR(-EINTR);
-
+       mutex_lock(&xt[af].mutex);
        list_for_each_entry(t, &net->xt.tables[af], list)
                if (strcmp(t->name, name) == 0 && try_module_get(t->me))
                        return t;
                goto out;
        }
 
-       ret = mutex_lock_interruptible(&xt[table->af].mutex);
-       if (ret != 0)
-               goto out_free;
-
+       mutex_lock(&xt[table->af].mutex);
        /* Don't autoload: we'd eat our tail... */
        list_for_each_entry(t, &net->xt.tables[table->af], list) {
                if (strcmp(t->name, table->name) == 0) {
        mutex_unlock(&xt[table->af].mutex);
        return table;
 
- unlock:
+unlock:
        mutex_unlock(&xt[table->af].mutex);
-out_free:
        kfree(table);
 out:
        return ERR_PTR(ret);