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
f3617e92
Commit
f3617e92
authored
Feb 23, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/tg3-2.6
into ppc970.osdl.org:/home/torvalds/v2.5/linux
parents
15af2865
6302eefc
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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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 @
f3617e92
...
@@ -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