14 years ago[NET] KBUILD: Add missing entries for new net headers.
YOSHIFUJI Hideaki [Thu, 28 Sep 2006 05:43:05 +0000]
[NET] KBUILD: Add missing entries for new net headers.

Add the following for userspace export by the 'headers_include'
make target: linux/fib_rules.h, linux/if_addr.h, linux/if_link.h,
linux/neighbour.h.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NET]: Move netlink interface bits to linux/if_link.h.
YOSHIFUJI Hideaki [Thu, 28 Sep 2006 05:40:19 +0000]
[NET]: Move netlink interface bits to linux/if_link.h.

Moving netlink interface bits to linux/if.h is rather troublesome for
applications including both linux/if.h (which was changed to be included
from linux/rtnetlink.h automatically) and net/if.h.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: Do not add a state whose SPI is zero to the SPI hash.
Masahide NAKAMURA [Thu, 28 Sep 2006 05:21:52 +0000]
[XFRM]: Do not add a state whose SPI is zero to the SPI hash.

SPI=0 is used for acquired IPsec SA and MIPv6 RO state.
Such state should not be added to the SPI hash
because we do not care about it on deleting path.

Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>

14 years ago[NET] loopback: minor statistics optimization
Stephen Hemminger [Thu, 28 Sep 2006 03:33:34 +0000]
[NET] loopback: minor statistics optimization

The loopback device status structure is a singleton and doesn't
need to be allocated. Add ethtool_ops hooks to show checksum always on,
and make ethtool_ops const.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IrDA]: Memory allocations cleanups
Samuel Ortiz [Thu, 28 Sep 2006 03:06:44 +0000]
[IrDA]: Memory allocations cleanups

This patch replaces the bunch of arbitrary 64 and 128 bytes alloc_skb() calls
with more accurate allocation sizes.

Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IrDA]: irda-usb needs firmware loader
Samuel Ortiz [Thu, 28 Sep 2006 03:06:16 +0000]
[IrDA]: irda-usb needs firmware loader

With the inclusion of the stir421x code, we now need to select FW_LOADER
whenever we try to build the irda-usb code.

Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IrDA]: af_irda.c cleanups
Samuel Ortiz [Thu, 28 Sep 2006 03:05:38 +0000]
[IrDA]: af_irda.c cleanups

We lock the socket when both releasing and getting a disconnected
notification. In the latter case, we also ste the socket as orphan.
This fixes a potential kernel bug that can be triggered when we get the
disconnection notification before closing the socket.

Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV6]: Disable SG for GSO unless we have checksum
Herbert Xu [Thu, 28 Sep 2006 02:03:36 +0000]
[IPV6]: Disable SG for GSO unless we have checksum

Because the system won't turn off the SG flag for us we
need to do this manually on the IPv6 path.  Otherwise we
will throw IPv6 packets with bad checksums at the hardware.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_spi_hash() annotations
Al Viro [Thu, 28 Sep 2006 01:49:35 +0000]
[XFRM]: xfrm_spi_hash() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: fl_ipsec_spi is net-endian
Al Viro [Thu, 28 Sep 2006 01:49:07 +0000]
[XFRM]: fl_ipsec_spi is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: struct xfrm_usersa_id annotations
Al Viro [Thu, 28 Sep 2006 01:48:48 +0000]
[XFRM]: struct xfrm_usersa_id annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_replay_advance() annotations
Al Viro [Thu, 28 Sep 2006 01:48:33 +0000]
[XFRM]: xfrm_replay_advance() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xrfm_replay_check() annotations
Al Viro [Thu, 28 Sep 2006 01:48:18 +0000]
[XFRM]: xrfm_replay_check() annotations

seq argument is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_parse_spi() annotations
Al Viro [Thu, 28 Sep 2006 01:47:59 +0000]
[XFRM]: xfrm_parse_spi() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: struct xfrm_id annotations
Al Viro [Thu, 28 Sep 2006 01:47:40 +0000]
[XFRM]: struct xfrm_id annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_state_lookup() annotations
Al Viro [Thu, 28 Sep 2006 01:47:24 +0000]
[XFRM]: xfrm_state_lookup() annotations

spi argument of xfrm_state_lookup() is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_alloc_spi() annotated
Al Viro [Thu, 28 Sep 2006 01:47:05 +0000]
[XFRM]: xfrm_alloc_spi() annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_address_t annotations
Al Viro [Thu, 28 Sep 2006 01:46:48 +0000]
[XFRM]: xfrm_address_t annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: addr_match() annotations
Al Viro [Thu, 28 Sep 2006 01:46:32 +0000]
[XFRM]: addr_match() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: ports in struct xfrm_selector annotated
Al Viro [Thu, 28 Sep 2006 01:46:11 +0000]
[XFRM]: ports in struct xfrm_selector annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[XFRM]: xfrm_flowi_[sd]port() annotations
Al Viro [Thu, 28 Sep 2006 01:45:50 +0000]
[XFRM]: xfrm_flowi_[sd]port() annotations

both return net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV6]: sin6_port is net-endian
Al Viro [Thu, 28 Sep 2006 01:45:27 +0000]
[IPV6]: sin6_port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV6]: IPv6 headers annotations
Al Viro [Thu, 28 Sep 2006 01:45:11 +0000]
[IPV6]: IPv6 headers annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV6]: struct in6_addr annotations
Al Viro [Thu, 28 Sep 2006 01:44:54 +0000]
[IPV6]: struct in6_addr annotations

in6_addr elements are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: inet_diag annotations
Al Viro [Thu, 28 Sep 2006 01:44:30 +0000]
[IPV4]: inet_diag annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: inet_rcv_saddr() annotations
Al Viro [Thu, 28 Sep 2006 01:44:10 +0000]
[IPV4]: inet_rcv_saddr() annotations

inet_rcv_saddr() returns net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: struct inet_timewait_sock annotations
Al Viro [Thu, 28 Sep 2006 01:43:50 +0000]
[IPV4]: struct inet_timewait_sock annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: annotate inet_lookup() and friends
Al Viro [Thu, 28 Sep 2006 01:43:33 +0000]
[IPV4]: annotate inet_lookup() and friends

inet_lookup() annotated along with helper functions (__inet_lookup(),
__inet_lookup_established(), inet_lookup_established(),
inet_lookup_listener(), __inet_lookup_listener() and inet_ehashfn())

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: INET_MATCH() annotations
Al Viro [Thu, 28 Sep 2006 01:43:07 +0000]
[IPV4]: INET_MATCH() annotations

INET_MATCH() and friends depend on an interesting set of kludges:
* there's a pair of adjacent fields in struct inet_sock - __be16 dport
followed by __u16 num.  We want to search by pair, so we combine the keys into
a single 32bit value and compare with 32bit value read from &...->dport.
* on 64bit targets we combine comparisons with pair of adjacent __be32
fields in the same way.

Make sure that we don't mix those values with anything else and that pairs
we form them from have correct types.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: FRA_{DST,SRC} annotated
Al Viro [Thu, 28 Sep 2006 01:40:27 +0000]
[IPV4]: FRA_{DST,SRC} annotated

use be32 netlink accessors for those

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: net/ipv4/fib annotations
Al Viro [Thu, 28 Sep 2006 01:40:00 +0000]
[IPV4]: net/ipv4/fib annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: mroute annotations
Al Viro [Thu, 28 Sep 2006 01:39:29 +0000]
[IPV4]: mroute annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: PIMv2 header annotations
Al Viro [Thu, 28 Sep 2006 01:39:09 +0000]
[IPV4]: PIMv2 header annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TCP] net/ipv4/tcp_output.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:38:52 +0000]
[TCP] net/ipv4/tcp_output.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4] net/ipv4/icmp.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:38:30 +0000]
[IPV4] net/ipv4/icmp.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ICMP header annotations
Al Viro [Thu, 28 Sep 2006 01:38:13 +0000]
[IPV4]: ICMP header annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[UDP] net/ipv4/udp.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:37:41 +0000]
[UDP] net/ipv4/udp.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: UDP header annotations
Al Viro [Thu, 28 Sep 2006 01:37:19 +0000]
[IPV4]: UDP header annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: inet_csk_search_req() annotations
Al Viro [Thu, 28 Sep 2006 01:36:59 +0000]
[IPV4]: inet_csk_search_req() annotations

rport argument is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4] net/ipv4/arp.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:36:36 +0000]
[IPV4] net/ipv4/arp.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ARP header annotated
Al Viro [Thu, 28 Sep 2006 01:35:47 +0000]
[IPV4]: ARP header annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: struct inet_request_sock annotations
Al Viro [Thu, 28 Sep 2006 01:35:29 +0000]
[IPV4]: struct inet_request_sock annotations

->port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TCP] net/ipv4/tcp_input.c: trivial annotations
Al Viro [Thu, 28 Sep 2006 01:35:09 +0000]
[TCP] net/ipv4/tcp_input.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: route.h annotations
Al Viro [Thu, 28 Sep 2006 01:34:41 +0000]
[IPV4]: route.h annotations

ip_route_connect(), ip_route_newports() get port numbers net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_icmp_error() annotations
Al Viro [Thu, 28 Sep 2006 01:34:21 +0000]
[IPV4]: ip_icmp_error() annotations

port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NET]: struct sock_exterr_skb annotations
Al Viro [Thu, 28 Sep 2006 01:34:02 +0000]
[NET]: struct sock_exterr_skb annotations

->port is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_local_error() annotations
Al Viro [Thu, 28 Sep 2006 01:33:40 +0000]
[IPV4]: ip_local_error() annotations

port argument is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NET]: ip ports in struct flowi are net-endian
Al Viro [Thu, 28 Sep 2006 01:33:22 +0000]
[NET]: ip ports in struct flowi are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ports in struct inet_sock are net-endian
Al Viro [Thu, 28 Sep 2006 01:33:05 +0000]
[IPV4]: ports in struct inet_sock are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TCP]: struct tcp_sock .pred_flags is net-endian
Al Viro [Thu, 28 Sep 2006 01:32:46 +0000]
[TCP]: struct tcp_sock .pred_flags is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TCP]: struct tcp_sack_block annotations
Al Viro [Thu, 28 Sep 2006 01:32:28 +0000]
[TCP]: struct tcp_sack_block annotations

Some of the instances of tcp_sack_block are host-endian, some - net-endian.
Define struct tcp_sack_block_wire identical to struct tcp_sack_block
with u32 replaced with __be32; annotate uses of tcp_sack_block replacing
net-endian ones with tcp_sack_block_wire.  Change is obviously safe since
for cc(1) __be32 is typedefed to u32.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: TCP headers annotated
Al Viro [Thu, 28 Sep 2006 01:31:51 +0000]
[IPV4]: TCP headers annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: trivial igmp annotations
Al Viro [Thu, 28 Sep 2006 01:31:32 +0000]
[IPV4]: trivial igmp annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_mc_sf_allow() annotated
Al Viro [Thu, 28 Sep 2006 01:31:10 +0000]
[IPV4]: ip_mc_sf_allow() annotated

ip_mc_sf_allow() expects addresses to be passed net-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: struct ip_sf_list and struct ip_sf_socklist annotated
Al Viro [Thu, 28 Sep 2006 01:30:52 +0000]
[IPV4]: struct ip_sf_list and struct ip_sf_socklist annotated

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: IGMP on-the-wire data is net-endian
Al Viro [Thu, 28 Sep 2006 01:30:28 +0000]
[IPV4]: IGMP on-the-wire data is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_mc_{inc,dec}_group() annotations
Al Viro [Thu, 28 Sep 2006 01:30:07 +0000]
[IPV4]: ip_mc_{inc,dec}_group() annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: annotate ipv4 address fields in struct ip_msfilter and struct ip_mreq_source
Al Viro [Thu, 28 Sep 2006 01:29:47 +0000]
[IPV4]: annotate ipv4 address fields in struct ip_msfilter and struct ip_mreq_source

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_local_error() ipv4 address argument annotated
Al Viro [Thu, 28 Sep 2006 01:29:07 +0000]
[IPV4]: ip_local_error() ipv4 address argument annotated

daddr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: trivial ip_options.c annotations
Al Viro [Thu, 28 Sep 2006 01:28:47 +0000]
[IPV4]: trivial ip_options.c annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: struct ipcm_cookie annotation
Al Viro [Thu, 28 Sep 2006 01:28:28 +0000]
[IPV4]: struct ipcm_cookie annotation

->addr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: struct ip_options annotations
Al Viro [Thu, 28 Sep 2006 01:28:07 +0000]
[IPV4]: struct ip_options annotations

->faddr is net-endian; annotated as such, variables inferred to be net-endian
annotated.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: inet_csk_search_req() (partial) annotations
Al Viro [Thu, 28 Sep 2006 01:27:47 +0000]
[IPV4]: inet_csk_search_req() (partial) annotations

raddr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: annotate address in inet_request_sock
Al Viro [Thu, 28 Sep 2006 01:27:13 +0000]
[IPV4]: annotate address in inet_request_sock

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NET_SCHED]: Fix fallout from dev->qdisc RCU change
Patrick McHardy [Wed, 27 Sep 2006 23:45:45 +0000]
[NET_SCHED]: Fix fallout from dev->qdisc RCU change

The move of qdisc destruction to a rcu callback broke locking in the
entire qdisc layer by invalidating previously valid assumptions about
the context in which changes to the qdisc tree occur.

The two assumptions were:

- since changes only happen in process context, read_lock doesn't need
  bottem half protection. Now invalid since destruction of inner qdiscs,
  classifiers, actions and estimators happens in the RCU callback unless
  they're manually deleted, resulting in dead-locks when read_lock in
  process context is interrupted by write_lock_bh in bottem half context.

- since changes only happen under the RTNL, no additional locking is
  necessary for data not used during packet processing (f.e. u32_list).
  Again, since destruction now happens in the RCU callback, this assumption
  is not valid anymore, causing races while using this data, which can
  result in corruption or use-after-free.

Instead of "fixing" this by disabling bottem halfs everywhere and adding
new locks/refcounting, this patch makes these assumptions valid again by
moving destruction back to process context. Since only the dev->qdisc
pointer is protected by RCU, but ->enqueue and the qdisc tree are still
protected by dev->qdisc_lock, destruction of the tree can be performed
immediately and only the final free needs to happen in the rcu callback
to make sure dev_queue_xmit doesn't access already freed memory.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[NET_SCHED]: HTB: fix incorrect use of RB_EMPTY_NODE
Patrick McHardy [Wed, 27 Sep 2006 23:36:23 +0000]
[NET_SCHED]: HTB: fix incorrect use of RB_EMPTY_NODE

Fix incorrect use of RB_EMPTY_NODE in htb_safe_rb_erase, which makes it
skip nodes within the rbtree instead of nodes not in the tree, resulting
in crashes later on.

The root cause for this seems to be the very counter-intuitive behaviour
of the RB_EMPTY_NODE macro, which returns _false_ when the node is empty.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: Fix order in inet_init failure path.
Olaf Kirch [Wed, 27 Sep 2006 23:33:45 +0000]
[IPV4]: Fix order in inet_init failure path.

This is just a minor buglet I came across by accident - when inet_init
fails to register raw_prot, it jumps to out_unregister_udp_proto which
should unregister UDP _and_ TCP.

Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PKTGEN]: Documentation update
Francesco Fondelli [Wed, 27 Sep 2006 23:33:05 +0000]
[PKTGEN]: Documentation update

Signed-off-by: Francesco Fondelli <francesco.fondelli@gmail.com>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PKTGEN]: DSCP support
Francesco Fondelli [Wed, 27 Sep 2006 23:32:03 +0000]
[PKTGEN]: DSCP support

Anyway, I've been asked to add support for managing DSCP codepoints,
so one can test DiffServ capable routers. It's very simple code and is
working for me.

Signed-off-by: Francesco Fondelli <francesco.fondelli@gmail.com>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PKTGEN]: vlan support
Francesco Fondelli [Wed, 27 Sep 2006 23:30:44 +0000]
[PKTGEN]: vlan support

The attached patch allows pktgen to produce 802.1Q and Q-in-Q tagged frames.
I have used it for stress test a bridge and seems ok to me.
Unfortunately I have no access to net-2.6.x git tree so the diff is against
2.6.17.13.

Signed-off-by: Francesco Fondelli <francesco.fondelli@gmail.com>
Acked-by: Steven Whitehouse <steve@chygwyn.com>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[PKT_SCHED] cls_basic: Use unsigned int when generating handle
Kim Nordlund [Wed, 27 Sep 2006 23:19:53 +0000]
[PKT_SCHED] cls_basic: Use unsigned int when generating handle

Prevents filters from being added if the first generated
handle already exists.

Signed-off-by: Kim Nordlund <kim.nordlund@nokia.com>
Signed-off-by: Thomas Graf <tgraf@suug.ch>

14 years ago[PPPOE]: Advertise PPPoE MTU
Michal Ostrowski [Wed, 27 Sep 2006 23:11:25 +0000]
[PPPOE]: Advertise PPPoE MTU

PPPoE must advertise the underlying device's MTU via the ppp channel
descriptor structure, as multilink functionality depends on it.

Signed-off-by: Michal Ostrowski <mostrows@earthlink.net>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Update version and reldate.
Michael Chan [Wed, 27 Sep 2006 23:10:35 +0000]
[TG3]: Update version and reldate.

Update version to 3.66.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Add 5709 self-test support.
Michael Chan [Wed, 27 Sep 2006 23:10:14 +0000]
[TG3]: Add 5709 self-test support.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Add 5709 PHY support.
Michael Chan [Wed, 27 Sep 2006 23:09:25 +0000]
[TG3]: Add 5709 PHY support.

Add support for the 5709 10/100 PHY.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Add basic 5906 support.
Michael Chan [Wed, 27 Sep 2006 23:06:21 +0000]
[TG3]: Add basic 5906 support.

Add support for the new 5709 device.  This is a new 10/100 Mbps chip.
The mailbox access and firmware interface are quite different from
all other tg3 chips.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Add tg3_poll_fw().
Michael Chan [Wed, 27 Sep 2006 23:03:31 +0000]
[TG3]: Add tg3_poll_fw().

Put the firmware polling logic into a separate function.  This makes
the code cleaner.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Add 5722 and 5756 support.
Michael Chan [Wed, 27 Sep 2006 23:03:07 +0000]
[TG3]: Add 5722 and 5756 support.

Add IDs to support 5722 and 5756.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: PHY fixes.
Michael Chan [Wed, 27 Sep 2006 23:02:29 +0000]
[TG3]: PHY fixes.

Some PHY related fixes:

1. Fix Serdes WoL.
2. Fix loopback test on 10/100 only devices.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Improve ASF heartbeat.
Michael Chan [Wed, 27 Sep 2006 23:00:40 +0000]
[TG3]: Improve ASF heartbeat.

Change to a different ASF heartbeat message code to improve
reliability.

There were some reports of unintended resets on real time kernels
where the timer may be slow and cause the heartbeat to be late.
Netpoll will also have the same problem because the timer irq will
be unavailable.

Using the new heartbeat code, the ASF firmware will also check the
ring condition before resetting the chip when the heartbeat is
expiring.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[TG3]: Improve 5704S autoneg.
Michael Chan [Wed, 27 Sep 2006 22:59:15 +0000]
[TG3]: Improve 5704S autoneg.

Improve 5704S autoneg logic by using a serdes_counter field to keep
track of the transient states.  This eliminates a 200 msec busy
loop in the code.  Autoneg will take its course without the driver
busy waiting for it to finish.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[Bluetooth] Support create connection cancel command
Marcel Holtmann [Tue, 26 Sep 2006 07:43:48 +0000]
[Bluetooth] Support create connection cancel command

In case of non-blocking connects it is possible that the last user
of an ACL link quits before the connection has been fully established.
This will lead to a race condition where the internal state of a
connection is closed, but the actual link has been established and is
active. In case of Bluetooth 1.2 and later devices it is possible to
call create connection cancel to abort the connect. For older devices
the disconnect timer will be used to trigger the needed disconnect.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Read local version information on device init
Marcel Holtmann [Sat, 23 Sep 2006 07:57:20 +0000]
[Bluetooth] Read local version information on device init

The local version information are needed to identify certain feature
sets of devices. They must be read on device init and stored for later
use. It is also possible to access them through the device model.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Return EINPROGRESS for non-blocking socket calls
Marcel Holtmann [Sat, 23 Sep 2006 07:54:38 +0000]
[Bluetooth] Return EINPROGRESS for non-blocking socket calls

In case of non-blocking socket calls we should return EINPROGRESS
and not EAGAIN.

Signed-off-by: Ulisses Furquim <ulissesf@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Code cleanup for the HCI UART driver
Marcel Holtmann [Thu, 21 Sep 2006 14:23:19 +0000]
[Bluetooth] Code cleanup for the HCI UART driver

This patch cleans up the Bluetooth HCI UART driver a bit.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Add support for Canyon CN-BTU1 dongle
Marcel Holtmann [Thu, 21 Sep 2006 14:19:55 +0000]
[Bluetooth] Add support for Canyon CN-BTU1 dongle

This patch adds the vendor and product id of the Canycon CN-BTU1
dongle and sets a flag to send HCI_Reset as the first command.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Handle command complete event for exit periodic inquiry
Marcel Holtmann [Thu, 21 Sep 2006 14:04:00 +0000]
[Bluetooth] Handle command complete event for exit periodic inquiry

The command complete event of the exit periodic inquiry command must
clear the HCI_INQUIRY flag and finish the HCI request.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Add HCI device identifier for SDIO cards
Marcel Holtmann [Sat, 8 Jul 2006 11:57:15 +0000]
[Bluetooth] Add HCI device identifier for SDIO cards

This patch assigns the next free HCI device identifier to Bluetooth
devices based on the SDIO interface.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Code cleanup of the drivers source code
Marcel Holtmann [Thu, 6 Jul 2006 13:45:23 +0000]
[Bluetooth] Code cleanup of the drivers source code

This patch is an attempt to cleanup the drivers source code to make all
Bluetooth drivers look more unique.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Integrate services into the driver model
Marcel Holtmann [Thu, 6 Jul 2006 11:09:02 +0000]
[Bluetooth] Integrate services into the driver model

This patch integrates the services of the Bluetooth protocols RFCOMM,
BNEP and HIDP into the driver model. This makes it possible to assign
the virtual TTY, network and input devices to a specific Bluetooth
connection.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Integrate low-level connections into the driver model
Marcel Holtmann [Thu, 6 Jul 2006 10:38:46 +0000]
[Bluetooth] Integrate low-level connections into the driver model

This patch integrates the low-level connections (ACL and SCO) into the
driver model. Every connection is presented as device with the parent
set to its host controller device.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[Bluetooth] Remove unused host controller attributes
Marcel Holtmann [Thu, 6 Jul 2006 10:34:41 +0000]
[Bluetooth] Remove unused host controller attributes

This patch removes the unused device attribute entries for the Bluetooth
host controllers.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

14 years ago[RTNETLINK]: Possible dereference in net/core/rtnetlink.c
Eric Sesterhenn [Wed, 27 Sep 2006 06:26:38 +0000]
[RTNETLINK]: Possible dereference in net/core/rtnetlink.c

another possible dereference spotted by coverity (#cid 1390).
if the nlmsg_parse() call fails, we goto errout, where we call
dev_put(), with dev still initialized to NULL.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[SUNRPC]: more sunrpc endianness annotations
Al Viro [Wed, 27 Sep 2006 05:30:23 +0000]
[SUNRPC]: more sunrpc endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[SUNRPC]: trivial endianness annotations
Alexey Dobriyan [Wed, 27 Sep 2006 05:29:38 +0000]
[SUNRPC]: trivial endianness annotations

pure s/u32/__be32/

[AV: large part based on Alexey's patches]

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[SUNRPC]: svc_{get,put}nl()
Alexey Dobriyan [Wed, 27 Sep 2006 05:28:46 +0000]
[SUNRPC]: svc_{get,put}nl()

* add svc_getnl():
Take network-endian value from buffer, convert to host-endian
and return it.
* add svc_putnl():
Take host-endian value, convert to network-endian and put it
into a buffer.
* annotate svc_getu32()/svc_putu32() as dealing with network-endian.
* convert to svc_getnl(), svc_putnl().

[AV: in large part it's a carved-up Alexey's patch]

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_build_and_send_pkt() annotations
Al Viro [Wed, 27 Sep 2006 05:27:30 +0000]
[IPV4]: ip_build_and_send_pkt() annotations

saddr and daddr are net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4]: ip_options_build() annotations
Al Viro [Wed, 27 Sep 2006 05:27:05 +0000]
[IPV4]: ip_options_build() annotations

daddr is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4] bug: broken open-coded inet_make_mask() (multipath_wrandom)
Al Viro [Wed, 27 Sep 2006 05:26:21 +0000]
[IPV4] bug: broken open-coded inet_make_mask() (multipath_wrandom)

multipath_wrandom.c::__multipath_lookup_weight() contains open-coded
attempt at inet_make_mask(); broken on big-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

14 years ago[IPV4] multipath_wrandom.c: trivial annotations
Al Viro [Wed, 27 Sep 2006 05:25:13 +0000]
[IPV4] multipath_wrandom.c: trivial annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>