From: Rusty Russell <rusty@rustcorp.com.au>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: [PATCH] Remove NPROTO.
Date: Wed, 12 Mar 2008 12:24:25 +1100 [thread overview]
Message-ID: <200803121224.25228.rusty@rustcorp.com.au> (raw)
NPROTO seems redundant; it's equal to AF_MAX/PF_MAX.
It's fairly simple to find all users and replace them appropriately.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r 1c65089f4c8f include/linux/net.h
--- a/include/linux/net.h Wed Mar 12 11:19:20 2008 +1100
+++ b/include/linux/net.h Wed Mar 12 12:21:46 2008 +1100
@@ -19,14 +19,13 @@
#define _LINUX_NET_H
#include <linux/wait.h>
+#include <linux/socket.h>
#include <asm/socket.h>
struct poll_table_struct;
struct pipe_inode_info;
struct inode;
struct net;
-
-#define NPROTO 34 /* should be enough for now.. */
#define SYS_SOCKET 1 /* sys_socket(2) */
#define SYS_BIND 2 /* sys_bind(2) */
diff -r 1c65089f4c8f include/linux/netfilter.h
--- a/include/linux/netfilter.h Wed Mar 12 11:19:20 2008 +1100
+++ b/include/linux/netfilter.h Wed Mar 12 12:21:46 2008 +1100
@@ -128,7 +128,7 @@ extern struct ctl_path nf_net_ipv4_netfi
extern struct ctl_path nf_net_ipv4_netfilter_sysctl_path[];
#endif /* CONFIG_SYSCTL */
-extern struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS];
+extern struct list_head nf_hooks[AF_MAX][NF_MAX_HOOKS];
int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
struct net_device *indev, struct net_device *outdev,
@@ -232,7 +232,7 @@ struct nf_afinfo {
int route_key_size;
};
-extern const struct nf_afinfo *nf_afinfo[NPROTO];
+extern const struct nf_afinfo *nf_afinfo[AF_MAX];
static inline const struct nf_afinfo *nf_get_afinfo(unsigned short family)
{
return rcu_dereference(nf_afinfo[family]);
diff -r 1c65089f4c8f include/net/netns/x_tables.h
--- a/include/net/netns/x_tables.h Wed Mar 12 11:19:20 2008 +1100
+++ b/include/net/netns/x_tables.h Wed Mar 12 12:21:46 2008 +1100
@@ -5,6 +5,6 @@
#include <linux/net.h>
struct netns_xt {
- struct list_head tables[NPROTO];
+ struct list_head tables[AF_MAX];
};
#endif
diff -r 1c65089f4c8f net/core/dev.c
--- a/net/core/dev.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/core/dev.c Wed Mar 12 12:21:46 2008 +1100
@@ -2247,7 +2247,7 @@ softnet_break:
goto out;
}
-static gifconf_func_t * gifconf_list [NPROTO];
+static gifconf_func_t * gifconf_list [AF_MAX];
/**
* register_gifconf - register a SIOCGIF handler
@@ -2260,7 +2260,7 @@ static gifconf_func_t * gifconf_list [NP
*/
int register_gifconf(unsigned int family, gifconf_func_t * gifconf)
{
- if (family >= NPROTO)
+ if (family >= AF_MAX)
return -EINVAL;
gifconf_list[family] = gifconf;
return 0;
@@ -2336,7 +2336,7 @@ static int dev_ifconf(struct net *net, c
total = 0;
for_each_netdev(net, dev) {
- for (i = 0; i < NPROTO; i++) {
+ for (i = 0; i < AF_MAX; i++) {
if (gifconf_list[i]) {
int done;
if (!pos)
diff -r 1c65089f4c8f net/core/rtnetlink.c
--- a/net/core/rtnetlink.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/core/rtnetlink.c Wed Mar 12 12:21:46 2008 +1100
@@ -82,7 +82,7 @@ int rtnl_trylock(void)
return mutex_trylock(&rtnl_mutex);
}
-static struct rtnl_link *rtnl_msg_handlers[NPROTO];
+static struct rtnl_link *rtnl_msg_handlers[PF_MAX];
static inline int rtm_msgindex(int msgtype)
{
@@ -143,7 +143,7 @@ int __rtnl_register(int protocol, int ms
struct rtnl_link *tab;
int msgindex;
- BUG_ON(protocol < 0 || protocol >= NPROTO);
+ BUG_ON(protocol < 0 || protocol >= PF_MAX);
msgindex = rtm_msgindex(msgtype);
tab = rtnl_msg_handlers[protocol];
@@ -197,7 +197,7 @@ int rtnl_unregister(int protocol, int ms
{
int msgindex;
- BUG_ON(protocol < 0 || protocol >= NPROTO);
+ BUG_ON(protocol < 0 || protocol >= PF_MAX);
msgindex = rtm_msgindex(msgtype);
if (rtnl_msg_handlers[protocol] == NULL)
@@ -220,7 +220,7 @@ EXPORT_SYMBOL_GPL(rtnl_unregister);
*/
void rtnl_unregister_all(int protocol)
{
- BUG_ON(protocol < 0 || protocol >= NPROTO);
+ BUG_ON(protocol < 0 || protocol >= PF_MAX);
kfree(rtnl_msg_handlers[protocol]);
rtnl_msg_handlers[protocol] = NULL;
@@ -1179,7 +1179,7 @@ static int rtnl_dump_all(struct sk_buff
if (s_idx == 0)
s_idx = 1;
- for (idx=1; idx<NPROTO; idx++) {
+ for (idx=1; idx<PF_MAX; idx++) {
int type = cb->nlh->nlmsg_type-RTM_BASE;
if (idx < s_idx || idx == PF_PACKET)
continue;
@@ -1246,7 +1246,7 @@ static int rtnetlink_rcv_msg(struct sk_b
return 0;
family = ((struct rtgenmsg*)NLMSG_DATA(nlh))->rtgen_family;
- if (family >= NPROTO)
+ if (family >= PF_MAX)
return -EAFNOSUPPORT;
sz_idx = type>>2;
diff -r 1c65089f4c8f net/netfilter/core.c
--- a/net/netfilter/core.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/netfilter/core.c Wed Mar 12 12:21:46 2008 +1100
@@ -26,7 +26,7 @@
static DEFINE_MUTEX(afinfo_mutex);
-const struct nf_afinfo *nf_afinfo[NPROTO] __read_mostly;
+const struct nf_afinfo *nf_afinfo[AF_MAX] __read_mostly;
EXPORT_SYMBOL(nf_afinfo);
int nf_register_afinfo(const struct nf_afinfo *afinfo)
@@ -51,7 +51,7 @@ void nf_unregister_afinfo(const struct n
}
EXPORT_SYMBOL_GPL(nf_unregister_afinfo);
-struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS] __read_mostly;
+struct list_head nf_hooks[AF_MAX][NF_MAX_HOOKS] __read_mostly;
EXPORT_SYMBOL(nf_hooks);
static DEFINE_MUTEX(nf_hook_mutex);
@@ -256,7 +256,7 @@ void __init netfilter_init(void)
void __init netfilter_init(void)
{
int i, h;
- for (i = 0; i < NPROTO; i++) {
+ for (i = 0; i < AF_MAX; i++) {
for (h = 0; h < NF_MAX_HOOKS; h++)
INIT_LIST_HEAD(&nf_hooks[i][h]);
}
diff -r 1c65089f4c8f net/netfilter/nf_log.c
--- a/net/netfilter/nf_log.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/netfilter/nf_log.c Wed Mar 12 12:21:46 2008 +1100
@@ -15,7 +15,7 @@
#define NF_LOG_PREFIXLEN 128
-static const struct nf_logger *nf_loggers[NPROTO] __read_mostly;
+static const struct nf_logger *nf_loggers[PF_MAX] __read_mostly;
static DEFINE_MUTEX(nf_log_mutex);
/* return EBUSY if somebody else is registered, EEXIST if the same logger
@@ -24,7 +24,7 @@ int nf_log_register(int pf, const struct
{
int ret;
- if (pf >= NPROTO)
+ if (pf >= PF_MAX)
return -EINVAL;
/* Any setup of logging members must be done before
@@ -47,7 +47,7 @@ EXPORT_SYMBOL(nf_log_register);
void nf_log_unregister_pf(int pf)
{
- if (pf >= NPROTO)
+ if (pf >= PF_MAX)
return;
mutex_lock(&nf_log_mutex);
rcu_assign_pointer(nf_loggers[pf], NULL);
@@ -63,7 +63,7 @@ void nf_log_unregister(const struct nf_l
int i;
mutex_lock(&nf_log_mutex);
- for (i = 0; i < NPROTO; i++) {
+ for (i = 0; i < PF_MAX; i++) {
if (nf_loggers[i] == logger)
rcu_assign_pointer(nf_loggers[i], NULL);
}
@@ -107,7 +107,7 @@ static void *seq_start(struct seq_file *
{
rcu_read_lock();
- if (*pos >= NPROTO)
+ if (*pos >= PF_MAX)
return NULL;
return pos;
@@ -117,7 +117,7 @@ static void *seq_next(struct seq_file *s
{
(*pos)++;
- if (*pos >= NPROTO)
+ if (*pos >= PF_MAX)
return NULL;
return pos;
diff -r 1c65089f4c8f net/netfilter/nf_queue.c
--- a/net/netfilter/nf_queue.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/netfilter/nf_queue.c Wed Mar 12 12:21:46 2008 +1100
@@ -16,7 +16,7 @@
* long term mutex. The handler must provide an an outfn() to accept packets
* for queueing and must reinject all packets it receives, no matter what.
*/
-static const struct nf_queue_handler *queue_handler[NPROTO];
+static const struct nf_queue_handler *queue_handler[PF_MAX];
static DEFINE_MUTEX(queue_handler_mutex);
@@ -26,7 +26,7 @@ int nf_register_queue_handler(int pf, co
{
int ret;
- if (pf >= NPROTO)
+ if (pf >= PF_MAX)
return -EINVAL;
mutex_lock(&queue_handler_mutex);
@@ -47,7 +47,7 @@ EXPORT_SYMBOL(nf_register_queue_handler)
/* The caller must flush their queue before this */
int nf_unregister_queue_handler(int pf, const struct nf_queue_handler *qh)
{
- if (pf >= NPROTO)
+ if (pf >= PF_MAX)
return -EINVAL;
mutex_lock(&queue_handler_mutex);
@@ -70,7 +70,7 @@ void nf_unregister_queue_handlers(const
int pf;
mutex_lock(&queue_handler_mutex);
- for (pf = 0; pf < NPROTO; pf++) {
+ for (pf = 0; pf < PF_MAX; pf++) {
if (queue_handler[pf] == qh)
rcu_assign_pointer(queue_handler[pf], NULL);
}
@@ -285,7 +285,7 @@ EXPORT_SYMBOL(nf_reinject);
#ifdef CONFIG_PROC_FS
static void *seq_start(struct seq_file *seq, loff_t *pos)
{
- if (*pos >= NPROTO)
+ if (*pos >= PF_MAX)
return NULL;
return pos;
@@ -295,7 +295,7 @@ static void *seq_next(struct seq_file *s
{
(*pos)++;
- if (*pos >= NPROTO)
+ if (*pos >= PF_MAX)
return NULL;
return pos;
diff -r 1c65089f4c8f net/netfilter/x_tables.c
--- a/net/netfilter/x_tables.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/netfilter/x_tables.c Wed Mar 12 12:21:46 2008 +1100
@@ -58,7 +58,7 @@ static struct xt_af *xt;
#define duprintf(format, args...)
#endif
-static const char *xt_prefix[NPROTO] = {
+static const char *xt_prefix[AF_MAX] = {
[AF_INET] = "ip",
[AF_INET6] = "ip6",
[NF_ARP] = "arp",
@@ -929,7 +929,7 @@ int xt_proto_init(struct net *net, int a
struct proc_dir_entry *proc;
#endif
- if (af >= NPROTO)
+ if (af >= AF_MAX)
return -EINVAL;
@@ -999,7 +999,7 @@ static int __net_init xt_net_init(struct
{
int i;
- for (i = 0; i < NPROTO; i++)
+ for (i = 0; i < ARRAY_SIZE(net->xt.tables); i++)
INIT_LIST_HEAD(&net->xt.tables[i]);
return 0;
}
@@ -1012,11 +1012,11 @@ static int __init xt_init(void)
{
int i, rv;
- xt = kmalloc(sizeof(struct xt_af) * NPROTO, GFP_KERNEL);
+ xt = kmalloc(sizeof(struct xt_af) * AF_MAX, GFP_KERNEL);
if (!xt)
return -ENOMEM;
- for (i = 0; i < NPROTO; i++) {
+ for (i = 0; i < AF_MAX; i++) {
mutex_init(&xt[i].mutex);
#ifdef CONFIG_COMPAT
mutex_init(&xt[i].compat_mutex);
diff -r 1c65089f4c8f net/socket.c
--- a/net/socket.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/socket.c Wed Mar 12 12:21:46 2008 +1100
@@ -145,7 +145,7 @@ static const struct file_operations sock
*/
static DEFINE_SPINLOCK(net_family_lock);
-static const struct net_proto_family *net_families[NPROTO] __read_mostly;
+static const struct net_proto_family *net_families[PF_MAX] __read_mostly;
/*
* Statistics counters of the socket lists
@@ -1101,7 +1101,7 @@ static int __sock_create(struct net *net
/*
* Check protocol is in range
*/
- if (family < 0 || family >= NPROTO)
+ if (family < 0 || family >= PF_MAX)
return -EAFNOSUPPORT;
if (type < 0 || type >= SOCK_MAX)
return -EINVAL;
@@ -2110,9 +2110,9 @@ int sock_register(const struct net_proto
{
int err;
- if (ops->family >= NPROTO) {
- printk(KERN_CRIT "protocol %d >= NPROTO(%d)\n", ops->family,
- NPROTO);
+ if (ops->family >= PF_MAX) {
+ printk(KERN_CRIT "protocol %d >= PF_MAX(%d)\n", ops->family,
+ PF_MAX);
return -ENOBUFS;
}
@@ -2144,7 +2144,7 @@ int sock_register(const struct net_proto
*/
void sock_unregister(int family)
{
- BUG_ON(family < 0 || family >= NPROTO);
+ BUG_ON(family < 0 || family >= PF_MAX);
spin_lock(&net_family_lock);
net_families[family] = NULL;
diff -r 1c65089f4c8f net/xfrm/xfrm_policy.c
--- a/net/xfrm/xfrm_policy.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/xfrm/xfrm_policy.c Wed Mar 12 12:21:46 2008 +1100
@@ -50,7 +50,7 @@ EXPORT_SYMBOL(xfrm_policy_count);
EXPORT_SYMBOL(xfrm_policy_count);
static DEFINE_RWLOCK(xfrm_policy_afinfo_lock);
-static struct xfrm_policy_afinfo *xfrm_policy_afinfo[NPROTO];
+static struct xfrm_policy_afinfo *xfrm_policy_afinfo[AF_MAX];
static struct kmem_cache *xfrm_dst_cache __read_mostly;
@@ -2238,7 +2238,7 @@ int xfrm_policy_register_afinfo(struct x
int err = 0;
if (unlikely(afinfo == NULL))
return -EINVAL;
- if (unlikely(afinfo->family >= NPROTO))
+ if (unlikely(afinfo->family >= AF_MAX))
return -EAFNOSUPPORT;
write_lock_bh(&xfrm_policy_afinfo_lock);
if (unlikely(xfrm_policy_afinfo[afinfo->family] != NULL))
@@ -2267,7 +2267,7 @@ int xfrm_policy_unregister_afinfo(struct
int err = 0;
if (unlikely(afinfo == NULL))
return -EINVAL;
- if (unlikely(afinfo->family >= NPROTO))
+ if (unlikely(afinfo->family >= AF_MAX))
return -EAFNOSUPPORT;
write_lock_bh(&xfrm_policy_afinfo_lock);
if (likely(xfrm_policy_afinfo[afinfo->family] != NULL)) {
@@ -2291,7 +2291,7 @@ static struct xfrm_policy_afinfo *xfrm_p
static struct xfrm_policy_afinfo *xfrm_policy_get_afinfo(unsigned short family)
{
struct xfrm_policy_afinfo *afinfo;
- if (unlikely(family >= NPROTO))
+ if (unlikely(family >= AF_MAX))
return NULL;
read_lock(&xfrm_policy_afinfo_lock);
afinfo = xfrm_policy_afinfo[family];
diff -r 1c65089f4c8f net/xfrm/xfrm_state.c
--- a/net/xfrm/xfrm_state.c Wed Mar 12 11:19:20 2008 +1100
+++ b/net/xfrm/xfrm_state.c Wed Mar 12 12:21:46 2008 +1100
@@ -187,7 +187,7 @@ EXPORT_SYMBOL(km_waitq);
EXPORT_SYMBOL(km_waitq);
static DEFINE_RWLOCK(xfrm_state_afinfo_lock);
-static struct xfrm_state_afinfo *xfrm_state_afinfo[NPROTO];
+static struct xfrm_state_afinfo *xfrm_state_afinfo[AF_MAX];
static struct work_struct xfrm_state_gc_work;
static HLIST_HEAD(xfrm_state_gc_list);
@@ -201,7 +201,7 @@ static struct xfrm_state_afinfo *xfrm_st
static struct xfrm_state_afinfo *xfrm_state_lock_afinfo(unsigned int family)
{
struct xfrm_state_afinfo *afinfo;
- if (unlikely(family >= NPROTO))
+ if (unlikely(family >= AF_MAX))
return NULL;
write_lock_bh(&xfrm_state_afinfo_lock);
afinfo = xfrm_state_afinfo[family];
@@ -1863,7 +1863,7 @@ int xfrm_state_register_afinfo(struct xf
int err = 0;
if (unlikely(afinfo == NULL))
return -EINVAL;
- if (unlikely(afinfo->family >= NPROTO))
+ if (unlikely(afinfo->family >= AF_MAX))
return -EAFNOSUPPORT;
write_lock_bh(&xfrm_state_afinfo_lock);
if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL))
@@ -1880,7 +1880,7 @@ int xfrm_state_unregister_afinfo(struct
int err = 0;
if (unlikely(afinfo == NULL))
return -EINVAL;
- if (unlikely(afinfo->family >= NPROTO))
+ if (unlikely(afinfo->family >= AF_MAX))
return -EAFNOSUPPORT;
write_lock_bh(&xfrm_state_afinfo_lock);
if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) {
@@ -1897,7 +1897,7 @@ static struct xfrm_state_afinfo *xfrm_st
static struct xfrm_state_afinfo *xfrm_state_get_afinfo(unsigned int family)
{
struct xfrm_state_afinfo *afinfo;
- if (unlikely(family >= NPROTO))
+ if (unlikely(family >= AF_MAX))
return NULL;
read_lock(&xfrm_state_afinfo_lock);
afinfo = xfrm_state_afinfo[family];
next reply other threads:[~2008-03-12 1:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-12 1:24 Rusty Russell [this message]
2008-03-12 4:14 ` [PATCH] Remove NPROTO David Miller
2008-03-12 7:34 ` Rusty Russell
2008-03-12 11:13 ` David Miller
2008-03-12 23:50 ` [PATCH] NPROTO is redundant; it's equal to AF_MAX/PF_MAX Rusty Russell
2008-03-23 0:19 ` 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=200803121224.25228.rusty@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--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.