kernel-fxtec-pro1x/include/net
Pavel Emelyanov fa86d322d8 [NEIGH]: Fix race between pneigh deletion and ipv6's ndisc_recv_ns (v3).
Proxy neighbors do not have any reference counting, so any caller
of pneigh_lookup (unless it's a netlink triggered add/del routine)
should _not_ perform any actions on the found proxy entry. 

There's one exception from this rule - the ipv6's ndisc_recv_ns() 
uses found entry to check the flags for NTF_ROUTER.

This creates a race between the ndisc and pneigh_delete - after 
the pneigh is returned to the caller, the nd_tbl.lock is dropped 
and the deleting procedure may proceed.

One of the fixes would be to add a reference counting, but this
problem exists for ndisc only. Besides such a patch would be too 
big for -rc4.

So I propose to introduce a __pneigh_lookup() which is supposed
to be called with the lock held and use it in ndisc code to check
the flags on alive pneigh entry.


Changes from v2:
As David noticed, Exported the __pneigh_lookup() to ipv6 module. 
The checkpatch generates a warning on it, since the EXPORT_SYMBOL 
does not follow the symbol itself, but in this file all the 
exports come at the end, so I decided no to break this harmony.

Changes from v1:
Fixed comments from YOSHIFUJI - indentation of prototype in header
and the pndisc_check_router() name - and a compilation fix, pointed
by Daniel - the is_routed was (falsely) considered as uninitialized
by gcc.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-03-24 14:48:59 -07:00
..
9p 9p: add support for sticky bit 2008-02-06 19:25:06 -06:00
bluetooth bluetooth: Make hci_sock_cleanup() return void 2008-03-05 18:47:03 -08:00
irda irda: replace __inline with inline 2008-03-05 18:37:16 -08:00
iucv [AF_IUCV]: postpone receival of iucv-packets 2007-10-10 16:54:51 -07:00
netfilter [NETFILTER]: nf_conntrack: replace horrible hack with ksize() 2008-03-10 16:43:41 -07:00
netns [NETFILTER]: arp_tables: per-netns arp_tables FILTER 2008-01-31 19:27:41 -08:00
sctp [SCTP]: Fix build warnings with IPV6 disabled. 2008-03-21 15:40:47 -07:00
tc_act [PKT_SCHED]: Add stateless NAT 2007-10-10 16:53:11 -07:00
tipc [TIPC]: Kill unused static inline (x5) 2008-02-07 18:17:13 -08:00
act_api.h [NET_SCHED]: act_api: use PTR_ERR in tcf_action_init/tcf_action_get 2008-01-28 15:11:17 -08:00
addrconf.h [IPV4]: Enable use of 240/4 address space. 2008-01-28 15:08:44 -08:00
af_rxrpc.h [AF_RXRPC]: Add an interface to the AF_RXRPC module for the AFS filesystem to use 2007-04-26 15:50:17 -07:00
af_unix.h [AF_UNIX]: Remove unused declaration of sysctl_unix_max_dgram_qlen. 2008-01-28 14:57:13 -08:00
ah.h [IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr 2007-10-10 16:55:55 -07:00
arp.h [NETFILTER]: ebtables: remove casts, use consts 2008-01-31 19:27:33 -08:00
atmclip.h
ax25.h [AX25] ax25_ds_timer: use mod_timer instead of add_timer 2008-02-12 17:53:34 -08:00
ax88796.h ax88796: add 93cx6 eeprom support 2007-10-10 16:53:56 -07:00
cfg80211.h cfg80211/nl80211: implement station attribute retrieval 2008-01-28 14:59:52 -08:00
checksum.h [NET]: Move netfilter checksum helpers to net/core/utils.c 2008-01-28 14:55:14 -08:00
cipso_ipv4.h [NetLabel]: consolidate the struct socket/sock handling to just struct sock 2007-06-08 13:33:09 -07:00
compat.h
datalink.h
dn.h [DECNET]: Another unnecessary net/tcp.h inclusion in net/dn.h 2007-07-10 23:02:12 -07:00
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h [NET]: Wrap netdevice hardware header creation. 2007-10-10 16:52:50 -07:00
dsfield.h [NET]: Constify include/net/dsfield.h 2008-01-28 14:55:58 -08:00
dst.h [NET]: Fix tbench regression in 2.6.25-rc1 2008-03-12 22:52:37 -07:00
esp.h [IPSEC]: Use crypto_aead and authenc in ESP 2008-01-31 19:27:02 -08:00
fib_rules.h [NETNS]: Process FIB rule action in the context of the namespace. 2008-01-28 15:08:14 -08:00
flow.h [IPV4]: Remove unused multipath cached routing defintion in net/flow.h 2008-01-28 15:00:20 -08:00
gen_stats.h [NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API 2008-01-28 15:11:10 -08:00
genetlink.h [GENETLINK]: Dynamic multicast groups. 2007-07-18 15:47:52 -07:00
icmp.h [IPV4]: Add ICMPMsgStats MIB (RFC 4293) 2007-10-10 16:51:28 -07:00
ieee80211.h ieee80211: fix misannotations 2008-01-28 15:08:48 -08:00
ieee80211_crypt.h [PATCH] Update my email address from jkmaline@cc.hut.fi to j@w1.fi 2007-04-28 11:01:01 -04:00
ieee80211_radiotap.h [MAC80211]: Add get_unaligned to ieee80211_get_radiotap_len 2007-10-10 16:47:40 -07:00
ieee80211softmac.h [IEEE80211]: Fix softmac lockdep reports. 2007-10-10 16:52:22 -07:00
ieee80211softmac_wx.h
if_inet6.h [IPV6]: Reorg struct ifmcaddr6 to save some bytes 2008-02-03 04:28:54 -08:00
inet6_connection_sock.h
inet6_hashtables.h [SOCK] proto: Add hashinfo member to struct proto 2008-02-03 04:28:52 -08:00
inet_common.h [INET]: Remove leftover prototypes from include/net/inet_common.h 2007-11-12 21:02:51 -08:00
inet_connection_sock.h [SOCK] proto: Add hashinfo member to struct proto 2008-02-03 04:28:52 -08:00
inet_ecn.h [INET]: Give outer DSCP directly to ip*_copy_dscp 2008-01-28 14:53:45 -08:00
inet_frag.h [NETNS][FRAGS]: Make the pernet subsystem for fragments. 2008-01-28 15:10:40 -08:00
inet_hashtables.h [INET]: Fix accidentally broken inet(6)_hash_connect's port offset calculations. 2008-02-05 03:14:44 -08:00
inet_sock.h [TCP]: Improve ipv4 established hash function. 2008-03-04 14:28:41 -08:00
inet_timewait_sock.h [INET_TIMEWAIT_SOCK]: Reorganize struct inet_timewait_sock to save some bytes 2008-02-03 04:28:54 -08:00
inetpeer.h [INET]: Use list_head-s in inetpeer.c 2007-11-12 21:27:28 -08:00
ip.h [NETNS][FRAGS]: Make the mem counter per-namespace. 2008-01-28 15:10:36 -08:00
ip6_checksum.h
ip6_fib.h [IPV6] Minor cleanup: remove unused definitions in net/ip6_fib.h 2008-02-07 18:11:49 -08:00
ip6_route.h [IPV6] Minor clenup: remove two unused definitions in net/ip6_route.h 2008-02-07 18:10:19 -08:00
ip6_tunnel.h [IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly. 2008-02-23 20:19:20 -08:00
ip_fib.h [IPV4]: Fix compile error building without CONFIG_FS_PROC 2008-02-05 02:54:16 -08:00
ip_vs.h [IPVS]: Switch to using ctl_paths. 2008-01-28 15:01:08 -08:00
ipcomp.h [IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr 2007-10-10 16:55:55 -07:00
ipconfig.h
ipip.h [IPV4]: Add ip_local_out 2008-01-28 14:53:47 -08:00
ipv6.h [IPV6]: Fix sysctl compilation error. 2008-02-05 02:57:59 -08:00
ipx.h
iw_handler.h [NL80211]: add netlink interface to cfg80211 2007-10-10 16:52:14 -07:00
lapb.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h mac80211: add unified BSS configuration 2008-01-28 15:09:43 -08:00
mip6.h [IPV6] MIP6: Loadable module support for MIPv6. 2007-07-10 22:15:42 -07:00
ndisc.h [IPV6]: remove unused method declaration (net/ndisc.h). 2008-02-12 22:06:53 -08:00
neighbour.h [NEIGH]: Fix race between pneigh deletion and ipv6's ndisc_recv_ns (v3). 2008-03-24 14:48:59 -07:00
net_namespace.h [NET]: Make /proc/net a symlink on /proc/self/net (v3) 2008-03-07 11:08:40 -08:00
netdma.h
netevent.h [NET]: Remove unnecessary inclusion of dst.h 2008-01-28 14:53:38 -08:00
netlabel.h NetLabel: introduce a new kernel configuration API for NetLabel 2008-02-05 09:44:20 -08:00
netlink.h [NETLINK]: Add nla_append() 2008-01-28 15:11:09 -08:00
netrom.h
nexthop.h
p8022.h
pkt_cls.h [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
pkt_sched.h [NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API 2008-01-28 15:11:10 -08:00
protocol.h [IPV6]: make inet6_register_protosw to return an error code 2008-01-28 14:57:12 -08:00
psnap.h
raw.h [RAW]: Wrong content of the /proc/net/raw6. 2008-01-31 19:27:26 -08:00
rawv6.h [IPv6] RAW: Compact the API for the kernel 2008-01-28 14:54:29 -08:00
red.h
request_sock.h [INET]: Fix potential kfree on vmalloc-ed area of request_sock_queue 2007-11-15 02:57:06 -08:00
rose.h [ROSE]: Fix rose.ko oops on unload 2007-10-07 23:44:17 -07:00
route.h [IPV4] route cache: Introduce rt_genid for smooth cache invalidation 2008-01-31 19:28:27 -08:00
rtnetlink.h [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
sch_generic.h [NET_SCHED]: Convert classifiers from rtnetlink to new netlink API 2008-01-28 15:11:11 -08:00
scm.h pid namespaces: changes to show virtual ids to user 2007-10-19 11:53:40 -07:00
slhc_vj.h
snmp.h [XFRM]: Define packet dropping statistics. 2008-01-28 14:59:38 -08:00
sock.h net: fix kernel-doc warnings in header files 2008-02-18 20:52:13 -08:00
syncppp.h
tcp.h [TCP]: Uninline tcp_is_cwnd_limited 2008-01-28 15:01:48 -08:00
tcp_states.h
timewait_sock.h
transp_v6.h [IPV6]: make the protocol initialization to return an error code 2008-01-28 14:57:13 -08:00
udp.h [NET]: prot_inuse cleanups and optimizations 2008-01-28 15:00:36 -08:00
udplite.h [UDP]: Restore missing inDatagrams increments 2008-01-28 14:56:33 -08:00
wext.h [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
wireless.h [WIRELESS] cfg80211: New wireless config infrastructure. 2007-04-25 22:29:41 -07:00
x25.h
x25device.h
xfrm.h xfrm: ->eth_proto is __be16 2008-03-17 22:49:16 -07:00