diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2005-07-06 01:40:10 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-07-06 01:40:10 +0400 |
commit | 30e224d76f34e041c30df66a4dcbeeb53556ea3f (patch) | |
tree | 0a2d6bb1e699a1df9b9350f5c5a235d825673248 /net/ipv4/af_inet.c | |
parent | a31488ca4b8476a8dd301b21388631df52d05c5a (diff) | |
download | linux-30e224d76f34e041c30df66a4dcbeeb53556ea3f.tar.xz |
[IPV4]: Fix crash in ip_rcv while booting related to netconsole
Makes IPv4 ip_rcv registration happen last in af_inet.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r-- | net/ipv4/af_inet.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 658e7977924d..ef7468376ae6 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1009,6 +1009,15 @@ static int __init init_ipv4_mibs(void) static int ipv4_proc_init(void); extern void ipfrag_init(void); +/* + * IP protocol layer initialiser + */ + +static struct packet_type ip_packet_type = { + .type = __constant_htons(ETH_P_IP), + .func = ip_rcv, +}; + static int __init inet_init(void) { struct sk_buff *dummy_skb; @@ -1102,6 +1111,8 @@ static int __init inet_init(void) ipfrag_init(); + dev_add_pack(&ip_packet_type); + rc = 0; out: return rc; |