Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66953
b: refs/heads/master
c: 4665079
h: refs/heads/master
i:
  66951: 7ff5bd6
v: v3
  • Loading branch information
Pavel Emelyanov authored and David S. Miller committed Oct 10, 2007
1 parent e73f397 commit 75f0de2
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d62a38d1ab350f787e4941e42a3d3e97971e38f5
refs/heads/master: 4665079cbb2a3e17de82f2ab2940b9f97f37d65e
6 changes: 3 additions & 3 deletions trunk/drivers/net/loopback.c
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ static void loopback_setup(struct net_device *dev)
}

/* Setup and register the loopback device. */
static int loopback_net_init(struct net *net)
static __net_init int loopback_net_init(struct net *net)
{
struct net_device *dev;
int err;
Expand Down Expand Up @@ -278,14 +278,14 @@ static int loopback_net_init(struct net *net)
goto out;
}

static void loopback_net_exit(struct net *net)
static __net_exit void loopback_net_exit(struct net *net)
{
struct net_device *dev = net->loopback_dev;

unregister_netdev(dev);
}

static struct pernet_operations loopback_net_ops = {
static struct pernet_operations __net_initdata loopback_net_ops = {
.init = loopback_net_init,
.exit = loopback_net_exit,
};
Expand Down
8 changes: 4 additions & 4 deletions trunk/fs/proc/proc_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ static struct inode_operations proc_net_dir_inode_operations = {
.setattr = proc_net_setattr,
};

static int proc_net_ns_init(struct net *net)
static __net_init int proc_net_ns_init(struct net *net)
{
struct proc_dir_entry *root, *netd, *net_statd;
int err;
Expand Down Expand Up @@ -178,19 +178,19 @@ static int proc_net_ns_init(struct net *net)
goto out;
}

static void proc_net_ns_exit(struct net *net)
static __net_exit void proc_net_ns_exit(struct net *net)
{
remove_proc_entry("stat", net->proc_net);
remove_proc_entry("net", net->proc_net_root);
kfree(net->proc_net_root);
}

struct pernet_operations proc_net_ns_ops = {
struct pernet_operations __net_initdata proc_net_ns_ops = {
.init = proc_net_ns_init,
.exit = proc_net_ns_exit,
};

int proc_net_init(void)
int __init proc_net_init(void)
{
proc_net_shadow = proc_mkdir("net", NULL);
proc_net_shadow->proc_iops = &proc_net_dir_inode_operations;
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/init.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
* The markers follow same syntax rules as __init / __initdata. */
#define __init_refok noinline __attribute__ ((__section__ (".text.init.refok")))
#define __initdata_refok __attribute__ ((__section__ (".data.init.refok")))
#define __exit_refok noinline __attribute__ ((__section__ (".exit.text.refok")))

#ifdef MODULE
#define __exit __attribute__ ((__section__(".exit.text"))) __cold
Expand Down
9 changes: 9 additions & 0 deletions trunk/include/net/net_namespace.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,15 @@ static inline void release_net(struct net *net)
#define for_each_net(VAR) \
list_for_each_entry(VAR, &net_namespace_list, list)

#ifdef CONFIG_NET_NS
#define __net_init
#define __net_exit
#define __net_initdata
#else
#define __net_init __init
#define __net_exit __exit_refok
#define __net_initdata __initdata
#endif

struct pernet_operations {
struct list_head list;
Expand Down
16 changes: 8 additions & 8 deletions trunk/net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -2611,7 +2611,7 @@ static const struct file_operations ptype_seq_fops = {
};


static int dev_proc_net_init(struct net *net)
static int __net_init dev_proc_net_init(struct net *net)
{
int rc = -ENOMEM;

Expand All @@ -2636,7 +2636,7 @@ static int dev_proc_net_init(struct net *net)
goto out;
}

static void dev_proc_net_exit(struct net *net)
static void __net_exit dev_proc_net_exit(struct net *net)
{
wext_proc_exit(net);

Expand All @@ -2645,7 +2645,7 @@ static void dev_proc_net_exit(struct net *net)
proc_net_remove(net, "dev");
}

static struct pernet_operations dev_proc_ops = {
static struct pernet_operations __net_initdata dev_proc_ops = {
.init = dev_proc_net_init,
.exit = dev_proc_net_exit,
};
Expand Down Expand Up @@ -4278,7 +4278,7 @@ static struct hlist_head *netdev_create_hash(void)
}

/* Initialize per network namespace state */
static int netdev_init(struct net *net)
static int __net_init netdev_init(struct net *net)
{
INIT_LIST_HEAD(&net->dev_base_head);
rwlock_init(&dev_base_lock);
Expand All @@ -4299,18 +4299,18 @@ static int netdev_init(struct net *net)
return -ENOMEM;
}

static void netdev_exit(struct net *net)
static void __net_exit netdev_exit(struct net *net)
{
kfree(net->dev_name_head);
kfree(net->dev_index_head);
}

static struct pernet_operations netdev_net_ops = {
static struct pernet_operations __net_initdata netdev_net_ops = {
.init = netdev_init,
.exit = netdev_exit,
};

static void default_device_exit(struct net *net)
static void __net_exit default_device_exit(struct net *net)
{
struct net_device *dev, *next;
/*
Expand All @@ -4336,7 +4336,7 @@ static void default_device_exit(struct net *net)
rtnl_unlock();
}

static struct pernet_operations default_device_ops = {
static struct pernet_operations __net_initdata default_device_ops = {
.exit = default_device_exit,
};

Expand Down
6 changes: 3 additions & 3 deletions trunk/net/core/dev_mcast.c
Original file line number Diff line number Diff line change
Expand Up @@ -273,19 +273,19 @@ static const struct file_operations dev_mc_seq_fops = {

#endif

static int dev_mc_net_init(struct net *net)
static int __net_init dev_mc_net_init(struct net *net)
{
if (!proc_net_fops_create(net, "dev_mcast", 0, &dev_mc_seq_fops))
return -ENOMEM;
return 0;
}

static void dev_mc_net_exit(struct net *net)
static void __net_exit dev_mc_net_exit(struct net *net)
{
proc_net_remove(net, "dev_mcast");
}

static struct pernet_operations dev_mc_net_ops = {
static struct pernet_operations __net_initdata dev_mc_net_ops = {
.init = dev_mc_net_init,
.exit = dev_mc_net_exit,
};
Expand Down
6 changes: 3 additions & 3 deletions trunk/net/netlink/af_netlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -1924,7 +1924,7 @@ static struct net_proto_family netlink_family_ops = {
.owner = THIS_MODULE, /* for consistency 8) */
};

static int netlink_net_init(struct net *net)
static int __net_init netlink_net_init(struct net *net)
{
#ifdef CONFIG_PROC_FS
if (!proc_net_fops_create(net, "netlink", 0, &netlink_seq_fops))
Expand All @@ -1933,14 +1933,14 @@ static int netlink_net_init(struct net *net)
return 0;
}

static void netlink_net_exit(struct net *net)
static void __net_exit netlink_net_exit(struct net *net)
{
#ifdef CONFIG_PROC_FS
proc_net_remove(net, "netlink");
#endif
}

static struct pernet_operations netlink_net_ops = {
static struct pernet_operations __net_initdata netlink_net_ops = {
.init = netlink_net_init,
.exit = netlink_net_exit,
};
Expand Down
1 change: 1 addition & 0 deletions trunk/scripts/mod/modpost.c
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@ static int secref_whitelist(const char *modname, const char *tosec,

/* Check for pattern 0 */
if ((strncmp(fromsec, ".text.init.refok", strlen(".text.init.refok")) == 0) ||
(strncmp(fromsec, ".exit.text.refok", strlen(".exit.text.refok")) == 0) ||
(strncmp(fromsec, ".data.init.refok", strlen(".data.init.refok")) == 0))
return 1;

Expand Down

0 comments on commit 75f0de2

Please sign in to comment.