From: Rusty Russell <rusty@rustcorp.com.au>
To: David Miller <davem@davemloft.net>
Cc: Andrew Morton <akpm@linux-foundation.org>, netdev@vger.kernel.org
Subject: [PATCH] Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)
Date: Fri, 17 Oct 2008 02:37:10 +1100 [thread overview]
Message-ID: <200810170237.10755.rusty@rustcorp.com.au> (raw)
Date: Wed, 09 Jul 2008 10:28:42 +0200
From: Johannes Berg <johannes@sipsolutions.net>
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>
Cc: netdev@vger.kernel.org
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
net/bluetooth/af_bluetooth.c | 8 +-------
net/bridge/netfilter/ebtables.c | 15 +++------------
net/can/af_can.c | 4 ++--
net/core/dev.c | 2 --
net/core/rtnetlink.c | 4 ++--
net/dccp/ccid.c | 2 +-
net/decnet/dn_dev.c | 2 --
net/ipv4/devinet.c | 2 --
net/ipv4/inet_diag.c | 2 --
net/ipv4/tcp_cong.c | 4 ++--
net/netfilter/nfnetlink.c | 2 +-
net/netlink/af_netlink.c | 2 +-
net/sched/act_api.c | 2 +-
net/sched/cls_api.c | 2 +-
net/sched/ematch.c | 2 +-
net/sched/sch_api.c | 2 +-
net/socket.c | 2 +-
net/sunrpc/auth.c | 2 --
18 files changed, 18 insertions(+), 43 deletions(-)
diff -r a0f7d5208026 net/bluetooth/af_bluetooth.c
--- a/net/bluetooth/af_bluetooth.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/bluetooth/af_bluetooth.c Mon Aug 25 14:28:47 2008 +1000
@@ -37,10 +37,7 @@
#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 *ne
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;
diff -r a0f7d5208026 net/bridge/netfilter/ebtables.c
--- a/net/bridge/netfilter/ebtables.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/bridge/netfilter/ebtables.c Mon Aug 25 14:28:47 2008 +1000
@@ -288,23 +288,14 @@ find_inlist_lock_noload(struct list_head
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)
diff -r a0f7d5208026 net/can/af_can.c
--- a/net/can/af_can.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/can/af_can.c Mon Aug 25 14:28:47 2008 +1000
@@ -128,8 +128,8 @@ static int can_create(struct net *net, s
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);
diff -r a0f7d5208026 net/core/dev.c
--- a/net/core/dev.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/core/dev.c Mon Aug 25 14:28:47 2008 +1000
@@ -4882,8 +4882,6 @@ EXPORT_SYMBOL(br_fdb_put_hook);
EXPORT_SYMBOL(br_fdb_put_hook);
#endif
-#ifdef CONFIG_KMOD
EXPORT_SYMBOL(dev_load);
-#endif
EXPORT_PER_CPU_SYMBOL(softnet_data);
diff -r a0f7d5208026 net/core/rtnetlink.c
--- a/net/core/rtnetlink.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/core/rtnetlink.c Mon Aug 25 14:28:47 2008 +1000
@@ -1027,7 +1027,7 @@ static int rtnl_newlink(struct sk_buff *
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);
@@ -1116,7 +1116,7 @@ replay:
return -EOPNOTSUPP;
if (!ops) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
if (kind[0]) {
__rtnl_unlock();
request_module("rtnl-link-%s", kind);
diff -r a0f7d5208026 net/dccp/ccid.c
--- a/net/dccp/ccid.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/dccp/ccid.c Mon Aug 25 14:28:47 2008 +1000
@@ -154,7 +154,7 @@ struct ccid *ccid_new(unsigned char id,
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();
diff -r a0f7d5208026 net/decnet/dn_dev.c
--- a/net/decnet/dn_dev.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/decnet/dn_dev.c Mon Aug 25 14:28:47 2008 +1000
@@ -490,9 +490,7 @@ int dn_dev_ioctl(unsigned int cmd, void
return -EFAULT;
ifr->ifr_name[IFNAMSIZ-1] = 0;
-#ifdef CONFIG_KMOD
dev_load(&init_net, ifr->ifr_name);
-#endif
switch(cmd) {
case SIOCGIFADDR:
diff -r a0f7d5208026 net/ipv4/devinet.c
--- a/net/ipv4/devinet.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/ipv4/devinet.c Mon Aug 25 14:28:47 2008 +1000
@@ -613,9 +613,7 @@ int devinet_ioctl(struct net *net, unsig
if (colon)
*colon = 0;
-#ifdef CONFIG_KMOD
dev_load(net, ifr.ifr_name);
-#endif
switch (cmd) {
case SIOCGIFADDR: /* Get interface address */
diff -r a0f7d5208026 net/ipv4/inet_diag.c
--- a/net/ipv4/inet_diag.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/ipv4/inet_diag.c Mon Aug 25 14:28:47 2008 +1000
@@ -53,11 +53,9 @@ static DEFINE_MUTEX(inet_diag_table_mute
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])
diff -r a0f7d5208026 net/ipv4/tcp_cong.c
--- a/net/ipv4/tcp_cong.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/ipv4/tcp_cong.c Mon Aug 25 14:28:47 2008 +1000
@@ -115,7 +115,7 @@ int tcp_set_default_congestion_control(c
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 so
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();
diff -r a0f7d5208026 net/netfilter/nfnetlink.c
--- a/net/netfilter/nfnetlink.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/netfilter/nfnetlink.c Mon Aug 25 14:28:47 2008 +1000
@@ -134,7 +134,7 @@ static int nfnetlink_rcv_msg(struct sk_b
type = nlh->nlmsg_type;
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();
diff -r a0f7d5208026 net/netlink/af_netlink.c
--- a/net/netlink/af_netlink.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/netlink/af_netlink.c Mon Aug 25 14:28:47 2008 +1000
@@ -435,7 +435,7 @@ static int netlink_create(struct net *ne
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);
diff -r a0f7d5208026 net/sched/act_api.c
--- a/net/sched/act_api.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/sched/act_api.c Mon Aug 25 14:28:47 2008 +1000
@@ -494,7 +494,7 @@ struct tc_action *tcf_action_init_1(stru
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();
diff -r a0f7d5208026 net/sched/cls_api.c
--- a/net/sched/cls_api.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/sched/cls_api.c Mon Aug 25 14:28:47 2008 +1000
@@ -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];
diff -r a0f7d5208026 net/sched/ematch.c
--- a/net/sched/ematch.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/sched/ematch.c Mon Aug 25 14:28:47 2008 +1000
@@ -224,7 +224,7 @@ static int tcf_em_validate(struct tcf_pr
if (em->ops == NULL) {
err = -ENOENT;
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
__rtnl_unlock();
request_module("ematch-kind-%u", em_hdr->kind);
rtnl_lock();
diff -r a0f7d5208026 net/sched/sch_api.c
--- a/net/sched/sch_api.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/sched/sch_api.c Mon Aug 25 14:28:47 2008 +1000
@@ -764,7 +764,7 @@ qdisc_create(struct net_device *dev, str
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) {
diff -r a0f7d5208026 net/socket.c
--- a/net/socket.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/socket.c Mon Aug 25 14:28:47 2008 +1000
@@ -1142,7 +1142,7 @@ static int __sock_create(struct net *net
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
diff -r a0f7d5208026 net/sunrpc/auth.c
--- a/net/sunrpc/auth.c Mon Aug 25 14:27:58 2008 +1000
+++ b/net/sunrpc/auth.c Mon Aug 25 14:28:47 2008 +1000
@@ -83,10 +83,8 @@ rpcauth_create(rpc_authflavor_t pseudofl
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)) {
next reply other threads:[~2008-10-16 15:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-16 15:37 Rusty Russell [this message]
2008-10-16 15:46 ` [PATCH] Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely) Patrick McHardy
2008-10-16 19:50 ` David Miller
2008-10-16 22:27 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200810170237.10755.rusty@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.