net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)
authorJohannes Berg <johannes@sipsolutions.net>
Thu, 16 Oct 2008 22:24:51 +0000 (15:24 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Oct 2008 22:24:51 +0000 (15:24 -0700)
Some code here depends on CONFIG_KMOD to not try to load
protocol modules or similar, replace by CONFIG_MODULES
where more than just request_module depends on CONFIG_KMOD
and and also use try_then_request_module in ebtables.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
20 files changed:
net/bluetooth/af_bluetooth.c
net/bridge/netfilter/ebtables.c
net/can/af_can.c
net/core/dev.c
net/core/rtnetlink.c
net/dccp/ccid.c
net/decnet/dn_dev.c
net/ipv4/devinet.c
net/ipv4/inet_diag.c
net/ipv4/tcp_cong.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nfnetlink.c
net/netlink/af_netlink.c
net/phonet/af_phonet.c
net/sched/act_api.c
net/sched/cls_api.c
net/sched/ematch.c
net/sched/sch_api.c
net/socket.c
net/sunrpc/auth.c

index f6348e078aa434077bf26c57ffb8f0eabf4ecbe3..8f9431a12c6f36ed5f8d3ad2b28f765120824d7b 100644 (file)
 #include <linux/poll.h>
 #include <net/sock.h>
 #include <asm/ioctls.h>
-
-#if defined(CONFIG_KMOD)
 #include <linux/kmod.h>
-#endif
 
 #include <net/bluetooth/bluetooth.h>
 
@@ -145,11 +142,8 @@ static int bt_sock_create(struct net *net, struct socket *sock, int proto)
        if (proto < 0 || proto >= BT_MAX_PROTO)
                return -EINVAL;
 
-#if defined(CONFIG_KMOD)
-       if (!bt_proto[proto]) {
+       if (!bt_proto[proto])
                request_module("bt-proto-%d", proto);
-       }
-#endif
 
        err = -EPROTONOSUPPORT;
 
index 5bb88eb0aad43c928c5d43877a2497121dec832d..0fa208e86405ceab189042dd36e03fd3e6b893fd 100644 (file)
@@ -305,23 +305,14 @@ find_inlist_lock_noload(struct list_head *head, const char *name, int *error,
        return NULL;
 }
 
-#ifndef CONFIG_KMOD
-#define find_inlist_lock(h,n,p,e,m) find_inlist_lock_noload((h),(n),(e),(m))
-#else
 static void *
 find_inlist_lock(struct list_head *head, const char *name, const char *prefix,
    int *error, struct mutex *mutex)
 {
-       void *ret;
-
-       ret = find_inlist_lock_noload(head, name, error, mutex);
-       if (!ret) {
-               request_module("%s%s", prefix, name);
-               ret = find_inlist_lock_noload(head, name, error, mutex);
-       }
-       return ret;
+       return try_then_request_module(
+                       find_inlist_lock_noload(head, name, error, mutex),
+                       "%s%s", prefix, name);
 }
-#endif
 
 static inline struct ebt_table *
 find_table_lock(const char *name, int *error, struct mutex *mutex)
index 8035fbf526ae24e5fabff5b1c588abb8769e3c67..7d4d2b3c137ef6b84598d9bebd50b1a69dfaf707 100644 (file)
@@ -128,8 +128,8 @@ static int can_create(struct net *net, struct socket *sock, int protocol)
        if (net != &init_net)
                return -EAFNOSUPPORT;
 
-#ifdef CONFIG_KMOD
-       /* try to load protocol module, when CONFIG_KMOD is defined */
+#ifdef CONFIG_MODULES
+       /* try to load protocol module kernel is modular */
        if (!proto_tab[protocol]) {
                err = request_module("can-proto-%d", protocol);
 
index 1408a083fe4e28c790f5f1184544993fed6642f2..868ec0ba8b77dc7088c28816238b2ee557316e01 100644 (file)
@@ -4956,8 +4956,6 @@ EXPORT_SYMBOL(br_fdb_get_hook);
 EXPORT_SYMBOL(br_fdb_put_hook);
 #endif
 
-#ifdef CONFIG_KMOD
 EXPORT_SYMBOL(dev_load);
-#endif
 
 EXPORT_PER_CPU_SYMBOL(softnet_data);
index 3630131fa1fa37e3245301e719db583d0d63db59..31f29d2989fd207b65229cb562bc6105b79a6ca1 100644 (file)
@@ -1040,7 +1040,7 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
        struct nlattr *linkinfo[IFLA_INFO_MAX+1];
        int err;
 
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 replay:
 #endif
        err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy);
@@ -1129,7 +1129,7 @@ replay:
                        return -EOPNOTSUPP;
 
                if (!ops) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
                        if (kind[0]) {
                                __rtnl_unlock();
                                request_module("rtnl-link-%s", kind);
index 4809753d12aed1c4e6304f02d97e7a301fc44680..8fe931a3d7a1b1b7240a3421b7af0c404afae375 100644 (file)
@@ -154,7 +154,7 @@ struct ccid *ccid_new(unsigned char id, struct sock *sk, int rx, gfp_t gfp)
        struct ccid *ccid = NULL;
 
        ccids_read_lock();
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
        if (ccids[id] == NULL) {
                /* We only try to load if in process context */
                ccids_read_unlock();
index ba352588e344f2eb79e853877c1af30028c6331d..4fd4a4f74e82e892a2580e5d13be8dbe416e8975 100644 (file)
@@ -490,9 +490,7 @@ int dn_dev_ioctl(unsigned int cmd, void __user *arg)
                return -EFAULT;
        ifr->ifr_name[IFNAMSIZ-1] = 0;
 
-#ifdef CONFIG_KMOD
        dev_load(&init_net, ifr->ifr_name);
-#endif
 
        switch(cmd) {
                case SIOCGIFADDR:
index b12dae2b0b2dbcc527eee09a5d7309ffd4852ebc..abef49376ac8aabda5db9834f5ba0b402dc76c4c 100644 (file)
@@ -613,9 +613,7 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
        if (colon)
                *colon = 0;
 
-#ifdef CONFIG_KMOD
        dev_load(net, ifr.ifr_name);
-#endif
 
        switch (cmd) {
        case SIOCGIFADDR:       /* Get interface address */
index 89cb047ab31436d42a6f2dd8cf0e0c7a70c438f1..564230dabcb8a7ff172bed468a4257dd0a11616f 100644 (file)
@@ -53,11 +53,9 @@ static DEFINE_MUTEX(inet_diag_table_mutex);
 
 static const struct inet_diag_handler *inet_diag_lock_handler(int type)
 {
-#ifdef CONFIG_KMOD
        if (!inet_diag_table[type])
                request_module("net-pf-%d-proto-%d-type-%d", PF_NETLINK,
                               NETLINK_INET_DIAG, type);
-#endif
 
        mutex_lock(&inet_diag_table_mutex);
        if (!inet_diag_table[type])
index 6a250828b767aef7f037a3cf10d10b1dd74625cb..4ec5b4e97c4e2bc97a07e5887167e26b265b9e72 100644 (file)
@@ -115,7 +115,7 @@ int tcp_set_default_congestion_control(const char *name)
 
        spin_lock(&tcp_cong_list_lock);
        ca = tcp_ca_find(name);
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
        if (!ca && capable(CAP_SYS_MODULE)) {
                spin_unlock(&tcp_cong_list_lock);
 
@@ -244,7 +244,7 @@ int tcp_set_congestion_control(struct sock *sk, const char *name)
        if (ca == icsk->icsk_ca_ops)
                goto out;
 
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
        /* not found attempt to autoload module */
        if (!ca && capable(CAP_SYS_MODULE)) {
                rcu_read_unlock();
index 08e82d64eb6f4db6aad440c14f39ad7efd09f29a..2e4ad9671e19c0203915a13e7b7108aa65f34a54 100644 (file)
@@ -822,7 +822,7 @@ ctnetlink_parse_nat_setup(struct nf_conn *ct,
 
        parse_nat_setup = rcu_dereference(nfnetlink_parse_nat_setup_hook);
        if (!parse_nat_setup) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
                rcu_read_unlock();
                nfnl_unlock();
                if (request_module("nf-nat-ipv4") < 0) {
index 4739f9f961d8ea7e306021251b1676248318f72a..9c0ba17a1ddb771ea8fc58b3bfd7ae55b245cceb 100644 (file)
@@ -137,7 +137,7 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 replay:
        ss = nfnetlink_get_subsys(type);
        if (!ss) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
                nfnl_unlock();
                request_module("nfnetlink-subsys-%d", NFNL_SUBSYS_ID(type));
                nfnl_lock();
index 2fd8afac5f7126955e70152b1f4c4315583ecba1..480184a857d21abdf72886d795679b64996399b1 100644 (file)
@@ -435,7 +435,7 @@ static int netlink_create(struct net *net, struct socket *sock, int protocol)
                return -EPROTONOSUPPORT;
 
        netlink_lock_table();
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
        if (!nl_table[protocol].registered) {
                netlink_unlock_table();
                request_module("net-pf-%d-proto-%d", PF_NETLINK, protocol);
index 9e9c6fce11aad1ff98a79675c1c840aa79dec4de..b9d97effebe32ac3c276bf4dee94cda5da4fb7cf 100644 (file)
@@ -67,11 +67,10 @@ static int pn_socket_create(struct net *net, struct socket *sock, int protocol)
        }
 
        pnp = phonet_proto_get(protocol);
-#ifdef CONFIG_KMOD
        if (pnp == NULL &&
            request_module("net-pf-%d-proto-%d", PF_PHONET, protocol) == 0)
                pnp = phonet_proto_get(protocol);
-#endif
+
        if (pnp == NULL)
                return -EPROTONOSUPPORT;
        if (sock->type != pnp->sock_type) {
index 9974b3f04f05cfe54142d7d55cd762021509c8e5..8f457f1e0acf86b16911688b938b262f566669fb 100644 (file)
@@ -494,7 +494,7 @@ struct tc_action *tcf_action_init_1(struct nlattr *nla, struct nlattr *est,
 
        a_o = tc_lookup_action_n(act_name);
        if (a_o == NULL) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
                rtnl_unlock();
                request_module("act_%s", act_name);
                rtnl_lock();
index 8eb79e92e94cb82348a7cf76e8399f46f86426a7..16e7ac9774e5aeab547d6aee1fabcab56efc7480 100644 (file)
@@ -227,7 +227,7 @@ replay:
                err = -ENOENT;
                tp_ops = tcf_proto_lookup_ops(tca[TCA_KIND]);
                if (tp_ops == NULL) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
                        struct nlattr *kind = tca[TCA_KIND];
                        char name[IFNAMSIZ];
 
index 5e6f82e0e6f3ca7c092e3a1628d69b416604d0f5..e82519e548d70c747f602bc179ca487f120ef5af 100644 (file)
@@ -224,7 +224,7 @@ static int tcf_em_validate(struct tcf_proto *tp,
 
                if (em->ops == NULL) {
                        err = -ENOENT;
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
                        __rtnl_unlock();
                        request_module("ematch-kind-%u", em_hdr->kind);
                        rtnl_lock();
index 1122c952aa99bd17f78f3de3d6c6d6600c3d81b5..b16ad2972c6b527dc2013a5dfb4108ad35ef8197 100644 (file)
@@ -764,7 +764,7 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
        struct qdisc_size_table *stab;
 
        ops = qdisc_lookup_ops(kind);
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
        if (ops == NULL && kind != NULL) {
                char name[IFNAMSIZ];
                if (nla_strlcpy(name, kind, IFNAMSIZ) < IFNAMSIZ) {
index 3e8d4e35c08f3892e615959f60b0855e72f348a1..2b7a4b5c9b7254c2ca0534cd174de5bb004a7659 100644 (file)
@@ -1142,7 +1142,7 @@ static int __sock_create(struct net *net, int family, int type, int protocol,
 
        sock->type = type;
 
-#if defined(CONFIG_KMOD)
+#ifdef CONFIG_MODULES
        /* Attempt to load a protocol module if the find failed.
         *
         * 12/09/1996 Marcin: But! this makes REALLY only sense, if the user
index 6bfea9ed6869f4142d356b468a70493817b233b7..436bf1b4b76c4fb428df75b948b82df4ff566629 100644 (file)
@@ -83,10 +83,8 @@ rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt)
        if (flavor >= RPC_AUTH_MAXFLAVOR)
                goto out;
 
-#ifdef CONFIG_KMOD
        if ((ops = auth_flavors[flavor]) == NULL)
                request_module("rpc-auth-%u", flavor);
-#endif
        spin_lock(&rpc_authflavor_lock);
        ops = auth_flavors[flavor];
        if (ops == NULL || !try_module_get(ops->owner)) {