Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
6302eefc
Commit
6302eefc
authored
Feb 22, 2004
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge davem@nuts.davemloft.net:/disk1/BK/net-2.6
into kernel.bkbits.net:/home/davem/net-2.6
parents
5d12615b
0cf37130
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
67 additions
and
100 deletions
+67
-100
drivers/net/pppoe.c
drivers/net/pppoe.c
+20
-16
include/linux/skbuff.h
include/linux/skbuff.h
+0
-3
include/net/ip6_tunnel.h
include/net/ip6_tunnel.h
+0
-6
include/net/ipip.h
include/net/ipip.h
+0
-2
net/core/neighbour.c
net/core/neighbour.c
+4
-0
net/core/sock.c
net/core/sock.c
+10
-0
net/decnet/dn_dev.c
net/decnet/dn_dev.c
+4
-22
net/ipv4/af_inet.c
net/ipv4/af_inet.c
+0
-10
net/ipv4/icmp.c
net/ipv4/icmp.c
+7
-1
net/ipv4/inetpeer.c
net/ipv4/inetpeer.c
+3
-0
net/ipv4/ip_gre.c
net/ipv4/ip_gre.c
+1
-3
net/ipv4/ipip.c
net/ipv4/ipip.c
+1
-3
net/ipv4/ipmr.c
net/ipv4/ipmr.c
+3
-0
net/ipv6/af_inet6.c
net/ipv6/af_inet6.c
+0
-29
net/ipv6/icmp.c
net/ipv6/icmp.c
+7
-1
net/ipv6/ip6_fib.c
net/ipv6/ip6_fib.c
+2
-0
net/ipv6/ip6_tunnel.c
net/ipv6/ip6_tunnel.c
+2
-4
net/ipv6/route.c
net/ipv6/route.c
+3
-0
No files found.
drivers/net/pppoe.c
View file @
6302eefc
...
@@ -1075,6 +1075,20 @@ static struct file_operations pppoe_seq_fops = {
...
@@ -1075,6 +1075,20 @@ static struct file_operations pppoe_seq_fops = {
.
llseek
=
seq_lseek
,
.
llseek
=
seq_lseek
,
.
release
=
seq_release
,
.
release
=
seq_release
,
};
};
static
int
__init
pppoe_proc_init
(
void
)
{
struct
proc_dir_entry
*
p
;
p
=
create_proc_entry
(
"pppoe"
,
S_IRUGO
,
proc_net
);
if
(
!
p
)
return
-
ENOMEM
;
p
->
proc_fops
=
&
pppoe_seq_fops
;
return
0
;
}
#else
/* CONFIG_PROC_FS */
static
inline
int
pppoe_proc_init
(
void
)
{
return
0
;
}
#endif
/* CONFIG_PROC_FS */
#endif
/* CONFIG_PROC_FS */
/* ->ioctl are set at pppox_create */
/* ->ioctl are set at pppox_create */
...
@@ -1111,26 +1125,18 @@ static int __init pppoe_init(void)
...
@@ -1111,26 +1125,18 @@ static int __init pppoe_init(void)
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
#ifdef CONFIG_PROC_FS
{
err
=
pppoe_proc_init
();
struct
proc_dir_entry
*
p
=
create_proc_entry
(
"pppoe"
,
S_IRUGO
,
if
(
err
)
{
proc_net
);
unregister_pppox_proto
(
PX_PROTO_OE
);
err
=
-
ENOMEM
;
goto
out
;
if
(
!
p
)
}
goto
out_unregister
;
p
->
proc_fops
=
&
pppoe_seq_fops
;
err
=
0
;
}
#endif
/* CONFIG_PROC_FS */
dev_add_pack
(
&
pppoes_ptype
);
dev_add_pack
(
&
pppoes_ptype
);
dev_add_pack
(
&
pppoed_ptype
);
dev_add_pack
(
&
pppoed_ptype
);
register_netdevice_notifier
(
&
pppoe_notifier
);
register_netdevice_notifier
(
&
pppoe_notifier
);
out:
out:
return
err
;
return
err
;
out_unregister:
unregister_pppox_proto
(
PX_PROTO_OE
);
goto
out
;
}
}
static
void
__exit
pppoe_exit
(
void
)
static
void
__exit
pppoe_exit
(
void
)
...
@@ -1139,9 +1145,7 @@ static void __exit pppoe_exit(void)
...
@@ -1139,9 +1145,7 @@ static void __exit pppoe_exit(void)
dev_remove_pack
(
&
pppoes_ptype
);
dev_remove_pack
(
&
pppoes_ptype
);
dev_remove_pack
(
&
pppoed_ptype
);
dev_remove_pack
(
&
pppoed_ptype
);
unregister_netdevice_notifier
(
&
pppoe_notifier
);
unregister_netdevice_notifier
(
&
pppoe_notifier
);
#ifdef CONFIG_PROC_FS
remove_proc_entry
(
"pppoe"
,
proc_net
);
remove_proc_entry
(
"pppoe"
,
proc_net
);
#endif
}
}
module_init
(
pppoe_init
);
module_init
(
pppoe_init
);
...
...
include/linux/skbuff.h
View file @
6302eefc
...
@@ -274,9 +274,6 @@ struct sk_buff {
...
@@ -274,9 +274,6 @@ struct sk_buff {
*
end
;
*
end
;
};
};
#define SK_WMEM_MAX 65535
#define SK_RMEM_MAX 65535
#ifdef __KERNEL__
#ifdef __KERNEL__
/*
/*
* Handling routines are only of interest to the kernel
* Handling routines are only of interest to the kernel
...
...
include/net/ip6_tunnel.h
View file @
6302eefc
...
@@ -37,10 +37,4 @@ struct ipv6_tlv_tnl_enc_lim {
...
@@ -37,10 +37,4 @@ struct ipv6_tlv_tnl_enc_lim {
__u8
encap_limit
;
/* tunnel encapsulation limit */
__u8
encap_limit
;
/* tunnel encapsulation limit */
}
__attribute__
((
packed
));
}
__attribute__
((
packed
));
#ifdef __KERNEL__
#ifdef CONFIG_IPV6_TUNNEL
extern
int
__init
ip6_tunnel_init
(
void
);
extern
void
ip6_tunnel_cleanup
(
void
);
#endif
#endif
#endif
#endif
include/net/ipip.h
View file @
6302eefc
...
@@ -45,8 +45,6 @@ struct ip_tunnel
...
@@ -45,8 +45,6 @@ struct ip_tunnel
} while (0)
} while (0)
extern
int
ipip_init
(
void
);
extern
int
ipgre_init
(
void
);
extern
int
sit_init
(
void
);
extern
int
sit_init
(
void
);
extern
void
sit_cleanup
(
void
);
extern
void
sit_cleanup
(
void
);
...
...
net/core/neighbour.c
View file @
6302eefc
...
@@ -1167,6 +1167,10 @@ void neigh_table_init(struct neigh_table *tbl)
...
@@ -1167,6 +1167,10 @@ void neigh_table_init(struct neigh_table *tbl)
tbl
->
entry_size
,
tbl
->
entry_size
,
0
,
SLAB_HWCACHE_ALIGN
,
0
,
SLAB_HWCACHE_ALIGN
,
NULL
,
NULL
);
NULL
,
NULL
);
if
(
!
tbl
->
kmem_cachep
)
panic
(
"cannot create neighbour cache"
);
tbl
->
lock
=
RW_LOCK_UNLOCKED
;
tbl
->
lock
=
RW_LOCK_UNLOCKED
;
init_timer
(
&
tbl
->
gc_timer
);
init_timer
(
&
tbl
->
gc_timer
);
tbl
->
gc_timer
.
data
=
(
unsigned
long
)
tbl
;
tbl
->
gc_timer
.
data
=
(
unsigned
long
)
tbl
;
...
...
net/core/sock.c
View file @
6302eefc
...
@@ -126,6 +126,16 @@
...
@@ -126,6 +126,16 @@
#include <net/tcp.h>
#include <net/tcp.h>
#endif
#endif
/* Take into consideration the size of the struct sk_buff overhead in the
* determination of these values, since that is non-constant across
* platforms. This makes socket queueing behavior and performance
* not depend upon such differences.
*/
#define _SK_MEM_PACKETS 256
#define _SK_MEM_OVERHEAD (sizeof(struct sk_buff) + 256)
#define SK_WMEM_MAX (_SK_MEM_OVERHEAD * _SK_MEM_PACKETS)
#define SK_RMEM_MAX (_SK_MEM_OVERHEAD * _SK_MEM_PACKETS)
/* Run time adjustable parameters. */
/* Run time adjustable parameters. */
__u32
sysctl_wmem_max
=
SK_WMEM_MAX
;
__u32
sysctl_wmem_max
=
SK_WMEM_MAX
;
__u32
sysctl_rmem_max
=
SK_RMEM_MAX
;
__u32
sysctl_rmem_max
=
SK_RMEM_MAX
;
...
...
net/decnet/dn_dev.c
View file @
6302eefc
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/net.h>
#include <linux/net.h>
#include <linux/netdevice.h>
#include <linux/netdevice.h>
...
@@ -1470,16 +1471,13 @@ static struct rtnetlink_link dnet_rtnetlink_table[RTM_MAX-RTM_BASE+1] =
...
@@ -1470,16 +1471,13 @@ static struct rtnetlink_link dnet_rtnetlink_table[RTM_MAX-RTM_BASE+1] =
};
};
#ifdef MODULE
static
int
__initdata
addr
[
2
];
static
int
addr
[
2
];
static
int
__initdata
num
;
module_param_array
(
addr
,
int
,
num
,
0444
);
MODULE_PARM
(
addr
,
"2i"
);
MODULE_PARM_DESC
(
addr
,
"The DECnet address of this machine: area,node"
);
MODULE_PARM_DESC
(
addr
,
"The DECnet address of this machine: area,node"
);
#endif
void
__init
dn_dev_init
(
void
)
void
__init
dn_dev_init
(
void
)
{
{
#ifdef MODULE
if
(
addr
[
0
]
>
63
||
addr
[
0
]
<
0
)
{
if
(
addr
[
0
]
>
63
||
addr
[
0
]
<
0
)
{
printk
(
KERN_ERR
"DECnet: Area must be between 0 and 63"
);
printk
(
KERN_ERR
"DECnet: Area must be between 0 and 63"
);
return
;
return
;
...
@@ -1491,7 +1489,6 @@ void __init dn_dev_init(void)
...
@@ -1491,7 +1489,6 @@ void __init dn_dev_init(void)
}
}
decnet_address
=
dn_htons
((
addr
[
0
]
<<
10
)
|
addr
[
1
]);
decnet_address
=
dn_htons
((
addr
[
0
]
<<
10
)
|
addr
[
1
]);
#endif
dn_dev_devices_on
();
dn_dev_devices_on
();
#ifdef CONFIG_DECNET_SIOCGIFCONF
#ifdef CONFIG_DECNET_SIOCGIFCONF
...
@@ -1531,18 +1528,3 @@ void __exit dn_dev_cleanup(void)
...
@@ -1531,18 +1528,3 @@ void __exit dn_dev_cleanup(void)
dn_dev_devices_off
();
dn_dev_devices_off
();
}
}
#ifndef MODULE
static
int
__init
decnet_setup
(
char
*
str
)
{
unsigned
short
area
=
simple_strtoul
(
str
,
&
str
,
0
);
unsigned
short
node
=
simple_strtoul
(
*
str
>
0
?
++
str
:
str
,
&
str
,
0
);
decnet_address
=
dn_htons
(
area
<<
10
|
node
);
return
1
;
}
__setup
(
"decnet="
,
decnet_setup
);
#endif
net/ipv4/af_inet.c
View file @
6302eefc
...
@@ -1167,16 +1167,6 @@ static int __init inet_init(void)
...
@@ -1167,16 +1167,6 @@ static int __init inet_init(void)
icmp_init
(
&
inet_family_ops
);
icmp_init
(
&
inet_family_ops
);
/* I wish inet_add_protocol had no constructor hook...
I had to move IPIP from net/ipv4/protocol.c :-( --ANK
*/
#ifdef CONFIG_NET_IPIP
ipip_init
();
#endif
#ifdef CONFIG_NET_IPGRE
ipgre_init
();
#endif
/*
/*
* Initialise the multicast router
* Initialise the multicast router
*/
*/
...
...
net/ipv4/icmp.c
View file @
6302eefc
...
@@ -1115,7 +1115,13 @@ void __init icmp_init(struct net_proto_family *ops)
...
@@ -1115,7 +1115,13 @@ void __init icmp_init(struct net_proto_family *ops)
panic
(
"Failed to create the ICMP control socket.
\n
"
);
panic
(
"Failed to create the ICMP control socket.
\n
"
);
per_cpu
(
__icmp_socket
,
i
)
->
sk
->
sk_allocation
=
GFP_ATOMIC
;
per_cpu
(
__icmp_socket
,
i
)
->
sk
->
sk_allocation
=
GFP_ATOMIC
;
per_cpu
(
__icmp_socket
,
i
)
->
sk
->
sk_sndbuf
=
SK_WMEM_MAX
*
2
;
/* Enough space for 2 64K ICMP packets, including
* sk_buff struct overhead.
*/
per_cpu
(
__icmp_socket
,
i
)
->
sk
->
sk_sndbuf
=
(
2
*
((
64
*
1024
)
+
sizeof
(
struct
sk_buff
)));
inet
=
inet_sk
(
per_cpu
(
__icmp_socket
,
i
)
->
sk
);
inet
=
inet_sk
(
per_cpu
(
__icmp_socket
,
i
)
->
sk
);
inet
->
uc_ttl
=
-
1
;
inet
->
uc_ttl
=
-
1
;
inet
->
pmtudisc
=
IP_PMTUDISC_DONT
;
inet
->
pmtudisc
=
IP_PMTUDISC_DONT
;
...
...
net/ipv4/inetpeer.c
View file @
6302eefc
...
@@ -129,6 +129,9 @@ void __init inet_initpeers(void)
...
@@ -129,6 +129,9 @@ void __init inet_initpeers(void)
0
,
SLAB_HWCACHE_ALIGN
,
0
,
SLAB_HWCACHE_ALIGN
,
NULL
,
NULL
);
NULL
,
NULL
);
if
(
!
peer_cachep
)
panic
(
"cannot create inet_peer_cache"
);
/* All the timers, started at system startup tend
/* All the timers, started at system startup tend
to synchronize. Perturb it a bit.
to synchronize. Perturb it a bit.
*/
*/
...
...
net/ipv4/ip_gre.c
View file @
6302eefc
...
@@ -1250,7 +1250,7 @@ static struct inet_protocol ipgre_protocol = {
...
@@ -1250,7 +1250,7 @@ static struct inet_protocol ipgre_protocol = {
* And now the modules code and kernel interface.
* And now the modules code and kernel interface.
*/
*/
int
__init
ipgre_init
(
void
)
static
int
__init
ipgre_init
(
void
)
{
{
int
err
=
-
EINVAL
;
int
err
=
-
EINVAL
;
...
@@ -1288,8 +1288,6 @@ void ipgre_fini(void)
...
@@ -1288,8 +1288,6 @@ void ipgre_fini(void)
unregister_netdev
(
ipgre_fb_tunnel_dev
);
unregister_netdev
(
ipgre_fb_tunnel_dev
);
}
}
#ifdef MODULE
module_init
(
ipgre_init
);
module_init
(
ipgre_init
);
#endif
module_exit
(
ipgre_fini
);
module_exit
(
ipgre_fini
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
net/ipv4/ipip.c
View file @
6302eefc
...
@@ -872,7 +872,7 @@ static struct xfrm_tunnel ipip_handler = {
...
@@ -872,7 +872,7 @@ static struct xfrm_tunnel ipip_handler = {
static
char
banner
[]
__initdata
=
static
char
banner
[]
__initdata
=
KERN_INFO
"IPv4 over IPv4 tunneling driver
\n
"
;
KERN_INFO
"IPv4 over IPv4 tunneling driver
\n
"
;
int
__init
ipip_init
(
void
)
static
int
__init
ipip_init
(
void
)
{
{
int
err
;
int
err
;
...
@@ -911,8 +911,6 @@ static void __exit ipip_fini(void)
...
@@ -911,8 +911,6 @@ static void __exit ipip_fini(void)
unregister_netdev
(
ipip_fb_tunnel_dev
);
unregister_netdev
(
ipip_fb_tunnel_dev
);
}
}
#ifdef MODULE
module_init
(
ipip_init
);
module_init
(
ipip_init
);
#endif
module_exit
(
ipip_fini
);
module_exit
(
ipip_fini
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
net/ipv4/ipmr.c
View file @
6302eefc
...
@@ -1892,6 +1892,9 @@ void __init ip_mr_init(void)
...
@@ -1892,6 +1892,9 @@ void __init ip_mr_init(void)
sizeof
(
struct
mfc_cache
),
sizeof
(
struct
mfc_cache
),
0
,
SLAB_HWCACHE_ALIGN
,
0
,
SLAB_HWCACHE_ALIGN
,
NULL
,
NULL
);
NULL
,
NULL
);
if
(
!
mrt_cachep
)
panic
(
"cannot allocate ip_mrt_cache"
);
init_timer
(
&
ipmr_expire_timer
);
init_timer
(
&
ipmr_expire_timer
);
ipmr_expire_timer
.
function
=
ipmr_expire_process
;
ipmr_expire_timer
.
function
=
ipmr_expire_process
;
register_netdevice_notifier
(
&
ip_mr_notifier
);
register_netdevice_notifier
(
&
ip_mr_notifier
);
...
...
net/ipv6/af_inet6.c
View file @
6302eefc
...
@@ -63,12 +63,6 @@
...
@@ -63,12 +63,6 @@
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/system.h>
#if 0 /*def MODULE*/
static int unloadable; /* XX: Turn to one when all is ok within the
module for allowing unload */
MODULE_PARM(unloadable, "i");
#endif
MODULE_AUTHOR
(
"Cast of dozens"
);
MODULE_AUTHOR
(
"Cast of dozens"
);
MODULE_DESCRIPTION
(
"IPv6 protocol stack for Linux"
);
MODULE_DESCRIPTION
(
"IPv6 protocol stack for Linux"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
...
@@ -557,17 +551,6 @@ struct net_proto_family inet6_family_ops = {
...
@@ -557,17 +551,6 @@ struct net_proto_family inet6_family_ops = {
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
};
};
#ifdef MODULE
#if 0 /* FIXME --RR */
int ipv6_unload(void)
{
if (!unloadable) return 1;
/* We keep internally 3 raw sockets */
return atomic_read(&(__this_module.uc.usecount)) - 3;
}
#endif
#endif
#ifdef CONFIG_SYSCTL
#ifdef CONFIG_SYSCTL
extern
void
ipv6_sysctl_register
(
void
);
extern
void
ipv6_sysctl_register
(
void
);
extern
void
ipv6_sysctl_unregister
(
void
);
extern
void
ipv6_sysctl_unregister
(
void
);
...
@@ -788,11 +771,6 @@ static int __init inet6_init(void)
...
@@ -788,11 +771,6 @@ static int __init inet6_init(void)
err
=
ndisc_init
(
&
inet6_family_ops
);
err
=
ndisc_init
(
&
inet6_family_ops
);
if
(
err
)
if
(
err
)
goto
ndisc_fail
;
goto
ndisc_fail
;
#ifdef CONFIG_IPV6_TUNNEL
err
=
ip6_tunnel_init
();
if
(
err
)
goto
ip6_tunnel_fail
;
#endif
err
=
igmp6_init
(
&
inet6_family_ops
);
err
=
igmp6_init
(
&
inet6_family_ops
);
if
(
err
)
if
(
err
)
goto
igmp_fail
;
goto
igmp_fail
;
...
@@ -846,10 +824,6 @@ static int __init inet6_init(void)
...
@@ -846,10 +824,6 @@ static int __init inet6_init(void)
igmp6_cleanup
();
igmp6_cleanup
();
#endif
#endif
igmp_fail:
igmp_fail:
#ifdef CONFIG_IPV6_TUNNEL
ip6_tunnel_cleanup
();
ip6_tunnel_fail:
#endif
ndisc_cleanup
();
ndisc_cleanup
();
ndisc_fail:
ndisc_fail:
icmpv6_cleanup
();
icmpv6_cleanup
();
...
@@ -882,9 +856,6 @@ static void __exit inet6_exit(void)
...
@@ -882,9 +856,6 @@ static void __exit inet6_exit(void)
ip6_route_cleanup
();
ip6_route_cleanup
();
ipv6_packet_cleanup
();
ipv6_packet_cleanup
();
igmp6_cleanup
();
igmp6_cleanup
();
#ifdef CONFIG_IPV6_TUNNEL
ip6_tunnel_cleanup
();
#endif
ndisc_cleanup
();
ndisc_cleanup
();
icmpv6_cleanup
();
icmpv6_cleanup
();
#ifdef CONFIG_SYSCTL
#ifdef CONFIG_SYSCTL
...
...
net/ipv6/icmp.c
View file @
6302eefc
...
@@ -693,7 +693,13 @@ int __init icmpv6_init(struct net_proto_family *ops)
...
@@ -693,7 +693,13 @@ int __init icmpv6_init(struct net_proto_family *ops)
sk
=
per_cpu
(
__icmpv6_socket
,
i
)
->
sk
;
sk
=
per_cpu
(
__icmpv6_socket
,
i
)
->
sk
;
sk
->
sk_allocation
=
GFP_ATOMIC
;
sk
->
sk_allocation
=
GFP_ATOMIC
;
sk
->
sk_sndbuf
=
SK_WMEM_MAX
*
2
;
/* Enough space for 2 64K ICMP packets, including
* sk_buff struct overhead.
*/
sk
->
sk_sndbuf
=
(
2
*
((
64
*
1024
)
+
sizeof
(
struct
sk_buff
)));
sk
->
sk_prot
->
unhash
(
sk
);
sk
->
sk_prot
->
unhash
(
sk
);
}
}
...
...
net/ipv6/ip6_fib.c
View file @
6302eefc
...
@@ -1239,6 +1239,8 @@ void __init fib6_init(void)
...
@@ -1239,6 +1239,8 @@ void __init fib6_init(void)
sizeof
(
struct
fib6_node
),
sizeof
(
struct
fib6_node
),
0
,
SLAB_HWCACHE_ALIGN
,
0
,
SLAB_HWCACHE_ALIGN
,
NULL
,
NULL
);
NULL
,
NULL
);
if
(
!
fib6_node_kmem
)
panic
(
"cannot create fib6_nodes cache"
);
}
}
void
__exit
fib6_gc_cleanup
(
void
)
void
__exit
fib6_gc_cleanup
(
void
)
...
...
net/ipv6/ip6_tunnel.c
View file @
6302eefc
...
@@ -1100,7 +1100,7 @@ static struct inet6_protocol ip6ip6_protocol = {
...
@@ -1100,7 +1100,7 @@ static struct inet6_protocol ip6ip6_protocol = {
* Return: 0 on success
* Return: 0 on success
**/
**/
int
__init
ip6_tunnel_init
(
void
)
static
int
__init
ip6_tunnel_init
(
void
)
{
{
int
err
;
int
err
;
...
@@ -1131,13 +1131,11 @@ int __init ip6_tunnel_init(void)
...
@@ -1131,13 +1131,11 @@ int __init ip6_tunnel_init(void)
* ip6_tunnel_cleanup - free resources and unregister protocol
* ip6_tunnel_cleanup - free resources and unregister protocol
**/
**/
void
ip6_tunnel_cleanup
(
void
)
static
void
__exit
ip6_tunnel_cleanup
(
void
)
{
{
unregister_netdev
(
ip6ip6_fb_tnl_dev
);
unregister_netdev
(
ip6ip6_fb_tnl_dev
);
inet6_del_protocol
(
&
ip6ip6_protocol
,
IPPROTO_IPV6
);
inet6_del_protocol
(
&
ip6ip6_protocol
,
IPPROTO_IPV6
);
}
}
#ifdef MODULE
module_init
(
ip6_tunnel_init
);
module_init
(
ip6_tunnel_init
);
module_exit
(
ip6_tunnel_cleanup
);
module_exit
(
ip6_tunnel_cleanup
);
#endif
net/ipv6/route.c
View file @
6302eefc
...
@@ -1988,6 +1988,9 @@ void __init ip6_route_init(void)
...
@@ -1988,6 +1988,9 @@ void __init ip6_route_init(void)
sizeof
(
struct
rt6_info
),
sizeof
(
struct
rt6_info
),
0
,
SLAB_HWCACHE_ALIGN
,
0
,
SLAB_HWCACHE_ALIGN
,
NULL
,
NULL
);
NULL
,
NULL
);
if
(
!
ip6_dst_ops
.
kmem_cachep
)
panic
(
"cannot create ip6_dst_cache"
);
fib6_init
();
fib6_init
();
#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
p
=
proc_net_create
(
"ipv6_route"
,
0
,
rt6_proc_info
);
p
=
proc_net_create
(
"ipv6_route"
,
0
,
rt6_proc_info
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment