linux/include/net
Wei Yongjun a454f0ccef xfrm: Fix initialize repl field of struct xfrm_state
Commit 'xfrm: Move IPsec replay detection functions to a separate file'
  (9fdc4883d9)
introduce repl field to struct xfrm_state, and only initialize it
under SA's netlink create path, the other path, such as pf_key,
ipcomp/ipcomp6 etc, the repl field remaining uninitialize. So if
the SA is created by pf_key, any input packet with SA's encryption
algorithm will cause panic.

    int xfrm_input()
    {
        ...
        x->repl->advance(x, seq);
        ...
    }

This patch fixed it by introduce new function __xfrm_init_state().

Pid: 0, comm: swapper Not tainted 2.6.38-next+ #14 Bochs Bochs
EIP: 0060:[<c078e5d5>] EFLAGS: 00010206 CPU: 0
EIP is at xfrm_input+0x31c/0x4cc
EAX: dd839c00 EBX: 00000084 ECX: 00000000 EDX: 01000000
ESI: dd839c00 EDI: de3a0780 EBP: dec1de88 ESP: dec1de64
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process swapper (pid: 0, ti=dec1c000 task=c09c0f20 task.ti=c0992000)
Stack:
 00000000 00000000 00000002 c0ba27c0 00100000 01000000 de3a0798 c0ba27c0
 00000033 dec1de98 c0786848 00000000 de3a0780 dec1dea4 c0786868 00000000
 dec1debc c074ee56 e1da6b8c de3a0780 c074ed44 de3a07a8 dec1decc c074ef32
Call Trace:
 [<c0786848>] xfrm4_rcv_encap+0x22/0x27
 [<c0786868>] xfrm4_rcv+0x1b/0x1d
 [<c074ee56>] ip_local_deliver_finish+0x112/0x1b1
 [<c074ed44>] ? ip_local_deliver_finish+0x0/0x1b1
 [<c074ef32>] NF_HOOK.clone.1+0x3d/0x44
 [<c074ef77>] ip_local_deliver+0x3e/0x44
 [<c074ed44>] ? ip_local_deliver_finish+0x0/0x1b1
 [<c074ec03>] ip_rcv_finish+0x30a/0x332
 [<c074e8f9>] ? ip_rcv_finish+0x0/0x332
 [<c074ef32>] NF_HOOK.clone.1+0x3d/0x44
 [<c074f188>] ip_rcv+0x20b/0x247
 [<c074e8f9>] ? ip_rcv_finish+0x0/0x332
 [<c072797d>] __netif_receive_skb+0x373/0x399
 [<c0727bc1>] netif_receive_skb+0x4b/0x51
 [<e0817e2a>] cp_rx_poll+0x210/0x2c4 [8139cp]
 [<c072818f>] net_rx_action+0x9a/0x17d
 [<c0445b5c>] __do_softirq+0xa1/0x149
 [<c0445abb>] ? __do_softirq+0x0/0x149

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-03-21 18:08:28 -07:00
..
9p net/9p: Implement syncfs 9P operation 2011-03-15 09:57:38 -05:00
bluetooth Bluetooth: Move index to common header in management interface 2011-02-27 16:56:41 -03:00
caif include/net/caif/cfctrl.h: Remove unnecessary semicolons 2010-11-15 11:07:16 -08:00
irda tty: now phase out the ioctl file pointer for good 2011-02-17 11:59:56 -08:00
iucv
netfilter Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2011-02-19 19:17:35 -08:00
netns ipvs: move struct netns_ipvs 2011-03-15 09:36:50 +09:00
phonet Phonet: allocate sock from accept syscall rather than soft IRQ 2011-03-09 11:59:32 -08:00
sctp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2011-01-19 20:25:45 -08:00
tc_act
act_api.h
addrconf.h net: kill unused macros from head file 2010-12-02 13:27:33 -08:00
af_ieee802154.h
af_rxrpc.h
af_unix.h af_unix: limit recursion level 2010-11-29 09:45:15 -08:00
ah.h ipsec: update MAX_AH_AUTH_LEN to support sha512 2011-01-13 21:48:25 -08:00
arp.h arp: allow to invalidate specific ARP entries 2011-01-10 16:10:37 -08:00
atmclip.h
ax25.h
ax88796.h
cfg80211.h wireless: add support for ethtool_ops->{get,set}_ringparam 2011-03-11 14:16:58 -05:00
checksum.h
cipso_ipv4.h
cls_cgroup.h
compat.h
datalink.h
dcbevent.h net_dcb: add application notifiers 2010-12-31 10:47:46 -08:00
dcbnl.h dcbnl: add support for retrieving peer configuration - cee 2011-03-02 21:58:55 -08:00
dn_dev.h decnet: RCU conversion and get rid of dev_base_lock 2010-11-08 13:50:08 -08:00
dn_fib.h decnet: Convert to use flowidn where applicable. 2011-03-12 15:08:55 -08:00
dn_neigh.h
dn_nsp.h
dn_route.h decnet: Convert to use flowidn where applicable. 2011-03-12 15:08:55 -08:00
dn.h decnet: Convert to use flowidn where applicable. 2011-03-12 15:08:55 -08:00
dsa.h
dsfield.h
dst_ops.h net: Implement read-only protection and COW'ing of metrics. 2011-01-26 20:51:05 -08:00
dst.h xfrm: Return dst directly from xfrm_lookup() 2011-03-02 13:27:41 -08:00
esp.h
ethoc.h
fib_rules.h fib_rules: __rcu annotates ctarget 2010-10-27 11:37:32 -07:00
flow.h decnet: Convert to use flowidn where applicable. 2011-03-12 15:08:55 -08:00
garp.h net/802: add __rcu annotations 2010-10-25 13:09:44 -07:00
gen_stats.h
genetlink.h include/net/genetlink.h: Allow genlmsg_cancel to accept a NULL argument 2011-02-03 20:47:08 -08:00
gre.h
icmp.h inetpeer: Move ICMP rate limiting state into inet_peer entries. 2011-02-04 15:59:53 -08:00
ieee80211_radiotap.h mac80211: add MCS information to radiotap 2011-01-28 15:44:29 -05:00
ieee802154_netdev.h
ieee802154.h
if_inet6.h ipv6: mcast: RCU conversion 2010-11-24 11:16:42 -08:00
inet6_connection_sock.h ipv6: Create inet6_csk_route_req(). 2010-12-02 10:59:22 -08:00
inet6_hashtables.h
inet_common.h
inet_connection_sock.h net: kill unused macros 2010-12-19 21:59:35 -08:00
inet_ecn.h
inet_frag.h
inet_hashtables.h
inet_sock.h inet: Remove explicit write references to sk/inet in ip_append_data 2011-03-01 12:35:02 -08:00
inet_timewait_sock.h net: optimize INET input path further 2010-12-09 20:05:58 -08:00
inetpeer.h inetpeer: Add redirect and PMTU discovery cached info. 2011-02-10 13:29:30 -08:00
ip6_checksum.h
ip6_fib.h ipv6: Convert to use flowi6 where applicable. 2011-03-12 15:08:54 -08:00
ip6_route.h ipv6: Convert to use flowi6 where applicable. 2011-03-12 15:08:54 -08:00
ip6_tunnel.h tunnels: add _rcu annotations 2010-10-25 13:09:45 -07:00
ip_fib.h ipv4: Pass ipv4 flow objects into fib_lookup() paths. 2011-03-12 15:08:47 -08:00
ip_vs.h IPVS: Conditionally include sysctl members of struct netns_ipvs 2011-03-15 09:37:02 +09:00
ip.h inet: Add ip_make_skb and ip_finish_skb 2011-03-01 12:35:03 -08:00
ipcomp.h
ipconfig.h
ipip.h tunnels: add __rcu annotations 2010-10-27 11:37:32 -07:00
ipv6.h ipv6: Convert to use flowi6 where applicable. 2011-03-12 15:08:54 -08:00
ipx.h
iw_handler.h
lapb.h
lib80211.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
mac80211.h mac80211: implement support for cfg80211_ops->{get,set}_ringparam 2011-03-11 15:34:10 -05:00
mip6.h
mld.h
ndisc.h net: kill unused macros from head file 2010-12-02 13:27:33 -08:00
neighbour.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-11-19 13:13:47 -08:00
net_namespace.h ipvs: move struct netns_ipvs 2011-03-15 09:36:50 +09:00
netdma.h
netevent.h net: Kill NETEVENT_PMTU_UPDATE. 2011-02-08 16:17:55 -08:00
netlabel.h
netlink.h netfilter: NFNL_SUBSYS_IPSET id and NLA_PUT_NET* macros 2011-02-01 15:20:14 +01:00
netrom.h
nexthop.h
nl802154.h
p8022.h
pkt_cls.h net: Fix range checks in tcf_valid_offset(). 2010-12-21 12:43:16 -08:00
pkt_sched.h
protocol.h net: change netdev->features to u32 2011-01-24 15:32:47 -08:00
psnap.h
raw.h
rawv6.h
red.h sched: remove unused backlog in RED stats 2011-01-12 19:00:39 -08:00
regulatory.h cfg80211: Fix regulatory bug with multiple cards and delays 2010-11-22 15:48:51 -05:00
request_sock.h
rose.h
route.h net: Put fl4_* macros to struct flowi4 and use them again. 2011-03-12 15:08:54 -08:00
rtnetlink.h rtnl: make link af-specific updates atomic 2010-11-27 22:56:08 -08:00
sch_generic.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2011-03-03 21:27:42 -08:00
scm.h scm: lower SCM_MAX_FD 2010-11-24 11:16:43 -08:00
slhc_vj.h
snmp.h net: kill unused macros from head file 2010-12-02 13:27:33 -08:00
sock.h net: add __rcu annotations to sk_wq and wq 2011-02-22 10:19:31 -08:00
stp.h
tcp_states.h
tcp.h tcp: Remove debug macro of TCP_CHECK_TIMER 2011-02-20 11:10:14 -08:00
timewait_sock.h timewait_sock: Create and use getpeer op. 2010-12-01 18:09:13 -08:00
transp_v6.h ipv6: Convert to use flowi6 where applicable. 2011-03-12 15:08:54 -08:00
udp.h udp: Switch to ip_finish_skb 2011-03-01 12:35:03 -08:00
udplite.h udp: Switch to ip_finish_skb 2011-03-01 12:35:03 -08:00
wext.h
wimax.h
wpan-phy.h
x25.h X25 remove bkl in subscription ioctls 2010-11-28 11:12:20 -08:00
x25device.h
xfrm.h xfrm: Fix initialize repl field of struct xfrm_state 2011-03-21 18:08:28 -07:00