13 years ago[TCP_IPV4]: Use kmemdup where appropriate
Arnaldo Carvalho de Melo [Fri, 17 Nov 2006 13:06:01 +0000]
[TCP_IPV4]: Use kmemdup where appropriate

Also use a variable to avoid the longish tp->md5sig_info-> use
in tcp_v4_md5_do_add.

Code diff stats:

[acme@newtoy net-2.6.20]$ codiff /tmp/tcp_ipv4.o.before /tmp/tcp_ipv4.o.after
/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv4/tcp_ipv4.c:
  tcp_v4_md5_do_add     |  -62
  tcp_v4_syn_recv_sock  |  -32
  tcp_v4_parse_md5_keys |  -86
 3 functions changed, 180 bytes removed
[acme@newtoy net-2.6.20]$

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[TCP_IPV4]: CodingStyle cleanups, no code change
Arnaldo Carvalho de Melo [Fri, 17 Nov 2006 12:57:30 +0000]
[TCP_IPV4]: CodingStyle cleanups, no code change

Mostly related to CONFIG_TCP_MD5SIG recent merge.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP] CCID2: Code optimizations
Andrea Bittau [Thu, 16 Nov 2006 16:28:40 +0000]
[DCCP] CCID2: Code optimizations

These are code optimizations which are relevant when dealing with large
windows.  They are not coded the way I would like to, but they do the job for
the short-term.  This patch should be more neat.

Commiter note: Changed the seqno comparisions to use {after,before}48 to handle
               wrapping.

Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[NET]: Conditionally use bh_lock_sock_nested in sk_receive_skb
Arnaldo Carvalho de Melo [Thu, 16 Nov 2006 16:06:06 +0000]
[NET]: Conditionally use bh_lock_sock_nested in sk_receive_skb

Spotted by Ian McDonald, tentatively fixed by Gerrit Renker:

http://www.mail-archive.com/dccp%40vger.kernel.org/msg00599.html

Rewritten not to unroll sk_receive_skb, in the common case, i.e. no lock
debugging, its optimized away.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: One NET_INC_STATS() could be NET_INC_STATS_BH in dccp_v4_err()
Arnaldo Carvalho de Melo [Thu, 16 Nov 2006 14:23:58 +0000]
[DCCP]: One NET_INC_STATS() could be NET_INC_STATS_BH in dccp_v4_err()

Spotted by Eric Dumazet in tcp_v4_rcv().

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Introduce DCCP_{BUG{_ON},CRIT} macros, use enum:8 for the ccid3 states
Gerrit Renker [Wed, 15 Nov 2006 23:27:47 +0000]
[DCCP]: Introduce DCCP_{BUG{_ON},CRIT} macros, use enum:8 for the ccid3 states

This patch tackles the following problem:
       * the ccid3_hc_{t,r}x_sock define ccid3hc{t,r}x_state as `u8', but
         in reality there can only be a few, pre-defined enum names
       * this necessitates addiditional checking for unexpected values
         which would otherwise be caught by the compiler

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[UDPLite]: udplite.h needs ip6_checksum.h
David S. Miller [Wed, 15 Nov 2006 09:09:32 +0000]
[UDPLite]: udplite.h needs ip6_checksum.h

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[NET/IPv4]: Make udp_push_pending_frames static
Gerrit Renker [Wed, 15 Nov 2006 08:44:49 +0000]
[NET/IPv4]: Make udp_push_pending_frames static

udp_push_pending_frames is only referenced within
net/ipv4/udp.c and hence can remain static.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[IPV6]: udp.c build fix
David S. Miller [Wed, 15 Nov 2006 06:09:20 +0000]
[IPV6]: udp.c build fix

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[NET]: More dccp endianness annotations.
Al Viro [Wed, 15 Nov 2006 05:51:36 +0000]
[NET]: More dccp endianness annotations.

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

13 years ago[NET]: Preliminaty annotation of skb->csum.
Al Viro [Wed, 15 Nov 2006 05:44:08 +0000]
[NET]: Preliminaty annotation of skb->csum.

It's still not completely right; we need to split it into anon unions
of __wsum and unsigned - for cases when we use it for partial checksum
and for offset of checksum in skb

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

13 years ago[NET] driver/s390/net: Checksum annotations.
Al Viro [Wed, 15 Nov 2006 05:43:44 +0000]
[NET] driver/s390/net: Checksum annotations.

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

13 years ago[NET]: netfilter checksum annotations
Al Viro [Wed, 15 Nov 2006 05:43:23 +0000]
[NET]: netfilter checksum annotations

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

13 years ago[NET]: ipvs checksum annotations.
Al Viro [Thu, 16 Nov 2006 10:41:18 +0000]
[NET]: ipvs checksum annotations.

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

13 years ago[NET]: IP header modifier helpers annotations.
Al Viro [Wed, 15 Nov 2006 05:42:26 +0000]
[NET]: IP header modifier helpers annotations.

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

13 years ago[NET]: Make mangling a checksum (0 -> 0xffff on the wire) explicit.
Al Viro [Thu, 16 Nov 2006 10:36:50 +0000]
[NET]: Make mangling a checksum (0 -> 0xffff on the wire) explicit.

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

13 years ago[NET]: Annotate __skb_checksum_complete() and friends.
Al Viro [Wed, 15 Nov 2006 05:40:42 +0000]
[NET]: Annotate __skb_checksum_complete() and friends.

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

13 years ago[NET]: Annotate ip_vs_checksum_complete() and callers.
Al Viro [Wed, 15 Nov 2006 05:37:50 +0000]
[NET]: Annotate ip_vs_checksum_complete() and callers.

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

13 years ago[NET]: Annotate skb_copy_and_csum_bits() and callers.
Al Viro [Wed, 15 Nov 2006 05:37:33 +0000]
[NET]: Annotate skb_copy_and_csum_bits() and callers.

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

13 years ago[NET]: Annotate skb_checksum() and callers.
Al Viro [Wed, 15 Nov 2006 05:37:14 +0000]
[NET]: Annotate skb_checksum() and callers.

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

13 years ago[NET]: Annotate callers of the reset of checksum.h stuff.
Al Viro [Wed, 15 Nov 2006 05:36:54 +0000]
[NET]: Annotate callers of the reset of checksum.h stuff.

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

13 years ago[NET]: Annotate callers of csum_partial_copy_...() and csum_and_copy...() in net/*
Al Viro [Wed, 15 Nov 2006 05:36:34 +0000]
[NET]: Annotate callers of csum_partial_copy_...() and csum_and_copy...() in net/*

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

13 years ago[NET]: Annotate csum_partial() callers in net/*
Al Viro [Wed, 15 Nov 2006 05:36:14 +0000]
[NET]: Annotate csum_partial() callers in net/*

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

13 years ago[NET]: annotate csum_ipv6_magic() callers in net/*
Al Viro [Wed, 15 Nov 2006 05:35:48 +0000]
[NET]: annotate csum_ipv6_magic() callers in net/*

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

13 years ago[NET]: Annotate csum_tcpudp_magic() callers in net/*
Al Viro [Wed, 15 Nov 2006 05:28:51 +0000]
[NET]: Annotate csum_tcpudp_magic() callers in net/*

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

13 years ago[NET]: Annotate csum_tcpudp_magic() callers in net/*
Al Viro [Wed, 15 Nov 2006 05:28:24 +0000]
[NET]: Annotate csum_tcpudp_magic() callers in net/*

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

13 years ago[NET]: Annotate callers of csum_tcpudp_nofold() in net/*
Al Viro [Wed, 15 Nov 2006 05:26:08 +0000]
[NET]: Annotate callers of csum_tcpudp_nofold() in net/*

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

13 years ago[NET]: Annotate callers of csum_fold() in net/*
Al Viro [Wed, 15 Nov 2006 05:24:49 +0000]
[NET]: Annotate callers of csum_fold() in net/*

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

13 years ago[NET]: Annotate checksums in on-the-wire packets.
Al Viro [Wed, 15 Nov 2006 05:24:30 +0000]
[NET]: Annotate checksums in on-the-wire packets.

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

13 years ago[NET]: Generic checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:23:59 +0000]
[NET]: Generic checksum annotations and cleanups.

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

13 years ago[NET]: XTENSA checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:23:40 +0000]
[NET]: XTENSA checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill csum_partial_copy_fromuser
* kill csum_partial_copy
* kill useless shifts
* usual ntohs->shift

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

13 years ago[NET]: SPARC64 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:23:20 +0000]
[NET]: SPARC64 checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill useless shift

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

13 years ago[NET]: SPARC checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:22:56 +0000]
[NET]: SPARC checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill bogus access_ok() in csum_partial_copy_from_user (the only caller checks)
* kill useless shift

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

13 years ago[NET]: SH checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:22:35 +0000]
[NET]: SH checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill useless shifts
* usual ntohs->shift

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

13 years ago[NET]: S390 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:22:18 +0000]
[NET]: S390 checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill useless shifts

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

13 years ago[NET]: POWERPC checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:21:58 +0000]
[NET]: POWERPC checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill useless shifts

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

13 years ago[NET]: I386 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:21:37 +0000]
[NET]: I386 checksum annotations and cleanups.

* sanitize prototypes, annotate
* usual ntohs->shift

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

13 years ago[NET]: AVR32 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:21:15 +0000]
[NET]: AVR32 checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill useless shifts
* kill useless ntohs (it's big-endian, for fsck sake!)

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

13 years ago[NET]: ARM26 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:20:51 +0000]
[NET]: ARM26 checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill csum_partial_copy

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

13 years ago[NET]: ARM checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:20:28 +0000]
[NET]: ARM checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill csum_partial_copy
* usual ntohs->shift, this time in assembler part

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

13 years ago[NET]: X86_64 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:20:08 +0000]
[NET]: X86_64 checksum annotations and cleanups.

* sanitize prototypes, annotate
* usual ntohs->shift

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

13 years ago[NET]: V850 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:19:44 +0000]
[NET]: V850 checksum annotations and cleanups.

* sanitize prototypes, annotate
* collapse csum_partial_copy
* usual ntohs->shift

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

13 years ago[NET]: UML checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:19:22 +0000]
[NET]: UML checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill csum_partial_copy_fromuser
* kill shift-by-16 in checksum calculations
* ntohs->shift in checksum calculations

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

13 years ago[NET]: SH64 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:19:01 +0000]
[NET]: SH64 checksum annotations and cleanups.

* sanitize prototypes, annotate
* collapse csum_partial_copy
* kill csum_partial_copy_fromuser
* ntohs->shift in checksum calculation

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

13 years ago[NET]: PARISC checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:18:39 +0000]
[NET]: PARISC checksum annotations and cleanups.

* sanitized prototypes, annotated
* kill shift-by-16 in checksum calculation

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

13 years ago[NET]: MIPS checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:18:18 +0000]
[NET]: MIPS checksum annotations and cleanups.

* sanitize prototypes, annotate
* kill shift-by-16 in checksum calculations
* htons->shift in l-e checksum calculations

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

13 years ago[NET]: M68Knommu checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:17:56 +0000]
[NET]: M68Knommu checksum annotations and cleanups.

* sanitize prototypes, annotated
* collapsed csum_partial_copy()

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

13 years ago[NET]: M68K checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:17:19 +0000]
[NET]: M68K checksum annotations and cleanups.

* sanitize prototypes, annotate

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

13 years ago[NET]: M32R checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:16:55 +0000]
[NET]: M32R checksum annotations and cleanups.

* sanitize prototypes, annotate
* ntohs -> shift in checksum calculations in l-e case
* kill shift-by-16 in checksum calculations

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

13 years ago[NET]: IA64 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:16:30 +0000]
[NET]: IA64 checksum annotations and cleanups.

* sanitize prototypes, annotate
* ntohs -> shift in checksum calculations
* kill access_ok() in csum_partial_copy_from_user
* collapse do_csum_partial_copy_from_user

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

13 years ago[NET]: H8300 checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:16:07 +0000]
[NET]: H8300 checksum annotations and cleanups.

* sanitize prototypes and annotate
* collapse csum_partial_copy

NB: csum_partial() is almost certainly still buggy.

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

13 years ago[NET]: FRV checksum annotations.
Al Viro [Wed, 15 Nov 2006 05:15:40 +0000]
[NET]: FRV checksum annotations.

* sanitize prototypes and annotate
* collapse csum_partial_copy

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

13 years ago[NET]: Cris checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:15:19 +0000]
[NET]: Cris checksum annotations and cleanups.

* sanitize prototypes and annotate
* kill cast-as-lvalue abuses in csum_partial()
* usual ntohs-equals-shift for checksum purposes

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

13 years ago[NET]: Alpha checksum annotations and cleanups.
Al Viro [Wed, 15 Nov 2006 05:14:53 +0000]
[NET]: Alpha checksum annotations and cleanups.

* sanitize prototypes and annotate
* kill useless access_ok() in csum_partial_copy_from_user() (the only
caller checks it already).
* do_csum_partial_copy_from_user() is not needed now
* replace htons(len) with len << 8 - they are the same wrt checksums
on little-endian.

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

13 years ago[NET]: Introduce types for checksums.
Al Viro [Wed, 15 Nov 2006 05:14:18 +0000]
[NET]: Introduce types for checksums.

New types - for 16bit checksums and "unfolded" 32bit variant.

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

13 years ago[NET]: Kill direct includes of asm/checksum.h
Al Viro [Wed, 15 Nov 2006 05:13:53 +0000]
[NET]: Kill direct includes of asm/checksum.h

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

13 years ago[IPVS]: Annotate ..._app_hashkey().
Al Viro [Wed, 15 Nov 2006 05:13:28 +0000]
[IPVS]: Annotate ..._app_hashkey().

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

13 years ago[NET]: Annotate net_srandom().
Al Viro [Wed, 15 Nov 2006 05:12:29 +0000]
[NET]: Annotate net_srandom().

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

13 years ago[BRIDGE]: Annotations.
Al Viro [Wed, 15 Nov 2006 05:11:51 +0000]
[BRIDGE]: Annotations.

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

13 years ago[ATM]: Annotations.
Al Viro [Wed, 15 Nov 2006 05:11:29 +0000]
[ATM]: Annotations.

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

13 years ago[NETFILTER]: More trivial annotations.
Al Viro [Wed, 15 Nov 2006 05:11:08 +0000]
[NETFILTER]: More trivial annotations.

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

13 years ago[IPV6]: __ipv6_addr_diff() annotations and cleanup.
Al Viro [Wed, 15 Nov 2006 04:56:33 +0000]
[IPV6]: __ipv6_addr_diff() annotations and cleanup.

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

13 years ago[IPV6]: Misc endianness annotations.
Al Viro [Wed, 15 Nov 2006 04:56:00 +0000]
[IPV6]: Misc endianness annotations.

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

13 years ago[RANDOM]: Annotate random.h IP helpers.
Al Viro [Wed, 15 Nov 2006 04:52:19 +0000]
[RANDOM]: Annotate random.h IP helpers.

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

13 years ago[IPV6]: Assorted trivial endianness annotations.
Al Viro [Wed, 15 Nov 2006 04:51:49 +0000]
[IPV6]: Assorted trivial endianness annotations.

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

13 years ago[NET] net/core: Annotations.
Al Viro [Wed, 15 Nov 2006 04:48:11 +0000]
[NET] net/core: Annotations.

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

13 years ago[IRDA]: Trivial annotations.
Al Viro [Wed, 15 Nov 2006 04:47:46 +0000]
[IRDA]: Trivial annotations.

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

13 years ago[NETPOLL]: Minor coding-style cleanups.
David S. Miller [Wed, 15 Nov 2006 04:40:49 +0000]
[NETPOLL]: Minor coding-style cleanups.

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[NET]: Supporting UDP-Lite (RFC 3828) in Linux
Gerrit Renker [Mon, 27 Nov 2006 19:10:57 +0000]
[NET]: Supporting UDP-Lite (RFC 3828) in Linux

This is a revision of the previously submitted patch, which alters
the way files are organized and compiled in the following manner:

* UDP and UDP-Lite now use separate object files
* source file dependencies resolved via header files
  net/ipv{4,6}/udp_impl.h
* order of inclusion files in udp.c/udplite.c adapted
  accordingly

[NET/IPv4]: Support for the UDP-Lite protocol (RFC 3828)

This patch adds support for UDP-Lite to the IPv4 stack, provided as an
extension to the existing UDPv4 code:
        * generic routines are all located in net/ipv4/udp.c
        * UDP-Lite specific routines are in net/ipv4/udplite.c
        * MIB/statistics support in /proc/net/snmp and /proc/net/udplite
        * shared API with extensions for partial checksum coverage

[NET/IPv6]: Extension for UDP-Lite over IPv6

It extends the existing UDPv6 code base with support for UDP-Lite
in the same manner as per UDPv4. In particular,
        * UDPv6 generic and shared code is in net/ipv6/udp.c
        * UDP-Litev6 specific extensions are in net/ipv6/udplite.c
        * MIB/statistics support in /proc/net/snmp6 and /proc/net/udplite6
        * support for IPV6_ADDRFORM
        * aligned the coding style of protocol initialisation with af_inet6.c
        * made the error handling in udpv6_queue_rcv_skb consistent;
          to return `-1' on error on all error cases
        * consolidation of shared code

[NET]: UDP-Lite Documentation and basic XFRM/Netfilter support

The UDP-Lite patch further provides
        * API documentation for UDP-Lite
        * basic xfrm support
        * basic netfilter support for IPv4 and IPv6 (LOG target)

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[IPv6] prefix: Convert RTM_NEWPREFIX notifications to use the new netlink api
Thomas Graf [Wed, 15 Nov 2006 03:54:19 +0000]
[IPv6] prefix: Convert RTM_NEWPREFIX notifications to use the new netlink api

RTM_GETPREFIX is completely unused and is thus removed.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[IPv6] iflink: Convert IPv6's RTM_GETLINK to use the new netlink api
Thomas Graf [Wed, 15 Nov 2006 03:53:58 +0000]
[IPv6] iflink: Convert IPv6's RTM_GETLINK to use the new netlink api

By replacing the current method of exporting the device configuration
which included allocating a temporary buffer, copying ipv6_devconf
into it and copying that buffer into the message with a method that
uses nla_reserve() allowing to copy the device configuration directly
into the skb data buffer, a GFP_ATOMIC allocation could be removed.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[TCP]: Fix some warning when MD5 is disabled.
David S. Miller [Wed, 15 Nov 2006 03:53:22 +0000]
[TCP]: Fix some warning when MD5 is disabled.

Just some mis-placed ifdefs:

net/ipv4/tcp_minisocks.c: In function ‘tcp_twsk_destructor’:
net/ipv4/tcp_minisocks.c:364: warning: unused variable ‘twsk’
net/ipv6/tcp_ipv6.c:1846: warning: ‘tcp_sock_ipv6_specific’ defined but not used
net/ipv6/tcp_ipv6.c:1877: warning: ‘tcp_sock_ipv6_mapped_specific’ defined but not used

Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[GENL]: Add genlmsg_put_reply() to simplify building reply headers
Thomas Graf [Wed, 15 Nov 2006 03:46:02 +0000]
[GENL]: Add genlmsg_put_reply() to simplify building reply headers

By modyfing genlmsg_put() to take a genl_family and by adding
genlmsg_put_reply() the process of constructing the netlink
and generic netlink headers is simplified.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[GENL]: Add genlmsg_reply() to simply unicast replies to requests
Thomas Graf [Wed, 15 Nov 2006 03:45:27 +0000]
[GENL]: Add genlmsg_reply() to simply unicast replies to requests

A generic netlink user has no interest in knowing how to
address the source of the original request.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[GENL]: Add genlmsg_new() to allocate generic netlink messages
Thomas Graf [Wed, 15 Nov 2006 03:44:52 +0000]
[GENL]: Add genlmsg_new() to allocate generic netlink messages

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[TCP]: MD5 Signature Option (RFC2385) support.
YOSHIFUJI Hideaki [Wed, 15 Nov 2006 03:07:45 +0000]
[TCP]: MD5 Signature Option (RFC2385) support.

Based on implementation by Rick Payne.

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

13 years agonetpoll header cleanup
Stephen Hemminger [Thu, 26 Oct 2006 22:46:56 +0000]
netpoll header cleanup

As Steve left netpoll beast, hopefully not to return soon.
He noticed that the header was messy. He straightened it
up and polished it a little, then waved goodbye.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll queue cleanup
Stephen Hemminger [Thu, 26 Oct 2006 22:46:55 +0000]
netpoll queue cleanup

The beast had a long and not very happy history. At one
point, a friend (netdump) had asked that he open up a little.
Well, the friend was long gone now, and the beast had
this dangling piece hanging (netpoll_queue).

It wasn't hard to stitch the netpoll_queue back in
where it belonged and make everything tidy.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll retry cleanup
Stephen Hemminger [Thu, 26 Oct 2006 22:46:54 +0000]
netpoll retry cleanup

The netpoll beast was still not happy. If the beast got
clogged pipes, it tended to stare blankly off in space
for a long time.

The problem couldn't be completely fixed because the
beast talked with irq's disabled. But it could be made
less painful and shorter.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll deferred transmit path
Stephen Hemminger [Thu, 26 Oct 2006 22:46:53 +0000]
netpoll deferred transmit path

When the netpoll beast got busy, he tended to babble.
Instead of talking out of his large mouth as normal,
he tended to try to snort out other orifices. This lead
to words (skbs) ending up in odd places (like NIT) that
he did not intend.

The normal way of talking wouldn't work, but he could
at least change to using the same tone all the time.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll setup error handling
Stephen Hemminger [Thu, 26 Oct 2006 22:46:52 +0000]
netpoll setup error handling

The beast was not always healthy. When it was sick,
it tended to be laconic and not tell anyone the real problem.
A few small changes had it telling the world about its
problems, if they really wanted to hear.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll per device txq
Stephen Hemminger [Thu, 26 Oct 2006 22:46:51 +0000]
netpoll per device txq

When the netpoll beast got really busy, it tended to clog
things, so it stored them for later. But the beast was putting
all it's skb's in one basket. This was bad because maybe some
pipes were clogged and others were not.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll info leak
Stephen Hemminger [Thu, 26 Oct 2006 22:46:50 +0000]
netpoll info leak

After looking harder, Steve noticed that the netpoll
beast leaked a little every time it shutdown for a nap.
Not a big leak, but a nuisance kind of thing.

He took out his refcount duct tape and patched the
leak. It was overkill since there was already other
locking in that area, but it looked clean and wouldn't
attract fleas.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years agonetpoll: private skb pool (rev3)
Stephen Hemminger [Tue, 14 Nov 2006 18:43:58 +0000]
netpoll: private skb pool (rev3)

It was a dark and stormy night when Steve first saw the
netpoll beast. The beast was odd, and misshapen but not
extremely ugly.

"Let me take off one of your warts" he said. This wart
is where you tried to make an skb list yourself. If the
beast had ever run out of memory, he would have stupefied
himself unnecessarily.

The first try was painful, so he tried again till the bleeding
stopped. And again, and again...

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>

13 years ago[DCCP] ACKVEC: Optimization - Do not traverse records if none will be found
Andrea Bittau [Tue, 14 Nov 2006 15:19:45 +0000]
[DCCP] ACKVEC: Optimization - Do not traverse records if none will be found

Do not traverse the list of ack vector records [proportional to window size]
when we know we will not find what we are looking for.  This is especially
useful because ack vectors are checked twice:
1) Upon parsing of options.
2) Upon notification of a new ack.

All of the work will occur during check #1.  Therefore, when check #2 is
performed, no new work will be done.  This is now "detected" and there is no
performance hit when doing #2.

Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Miscellaneous code tidy-ups
Gerrit Renker [Tue, 14 Nov 2006 14:57:34 +0000]
[DCCP]: Miscellaneous code tidy-ups

This patch does not change code; it performs some trivial clean/tidy-ups:

  * removal of a `debug_prefix' string in favour of the
    already existing dccp_role(sk)

  * add documentation of structures and constants

  * separated out the cases for invalid packets (step 1
    of the packet validation)

  * removing duplicate statements

  * combining declaration & initialisation

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Make feature negotiation more readable
Gerrit Renker [Tue, 14 Nov 2006 14:48:10 +0000]
[DCCP]: Make feature negotiation more readable

This patch replaces cryptic feature negotiation messages of type

Oct 31 15:42:20 kernel: dccp_feat_change: feat change type=32 feat=1
Oct 31 15:42:21 kernel: dccp_feat_change: feat change type=34 feat=1
Oct 31 15:42:21 kernel: dccp_feat_change: feat change type=32 feat=5

into ones of type:

Nov  2 13:54:45 kernel: dccp_feat_change: ChangeL(CCID (1), 3)
Nov  2 13:54:45 kernel: dccp_feat_change: ChangeR(CCID (1), 3)
Nov  2 13:54:45 kernel: dccp_feat_change: ChangeL(Ack Ratio (5), 2)

Also,
* completed the feature number list wrt RFC 4340 sec. 6.4
* annotating which ones have been implemented so far
* implemented rudimentary sanity checking in feat.c (FIXMEs)
* some minor fixes

Commiter note: uninlined dccp_feat_name and dccp_feat_typename, for
               consistency with dccp_{state,packet}_name, that, BTW,
               should be compiled only if CONFIG_IP_DCCP_DEBUG is
               selected, leaving this to another cset tho. Also
               shortened dccp_feat_negotiation_debug to dccp_feat_debug.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCPv6]: Resolve conditional build problem
Gerrit Renker [Tue, 14 Nov 2006 13:50:36 +0000]
[DCCPv6]: Resolve conditional build problem

Resolves the problem that if IPv6 was configured `y' and DCCP `m' then
dccp_ipv6 was not built as a module. With this change, dccp_ipv6 is built
as a module whenever DCCP *OR* IPv6 are configured as modules; it will be
built-in only if both DCCP = `y' and IPV6 = `y'.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[TCP/DCCP]: Introduce net_xmit_eval
Gerrit Renker [Tue, 14 Nov 2006 13:21:36 +0000]
[TCP/DCCP]: Introduce net_xmit_eval

Throughout the TCP/DCCP (and tunnelling) code, it often happens that the
return code of a transmit function needs to be tested against NET_XMIT_CN
which is a value that does not indicate a strict error condition.

This patch uses a macro for these recurring situations which is consistent
with the already existing macro net_xmit_errno, saving on duplicated code.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[SCTP]: Cleanup of the sctp state table code.
Peter Zijlstra [Tue, 14 Nov 2006 00:19:07 +0000]
[SCTP]: Cleanup of the sctp state table code.

I noticed an insane high density of repeated characters fixable by a
simple regular expression:

  % s/{.fn = \([^,]*\),[[:space:]]\+\(\\\n[[:space:]]\+\)\?.name = "\1"}/TYPE_SCTP_FUNC(\1)/g

(NOTE: the .name for .fn = sctp_sf_do_9_2_start_shutdown didn't match)

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[ATM] ambassador,firestream: "-1 >>" is implementation defined
Alexey Dobriyan [Tue, 14 Nov 2006 00:12:08 +0000]
[ATM] ambassador,firestream: "-1 >>" is implementation defined

6.5.7(5): The result of E1 >> E2 is E1 right-shifted E2 bit positions.
...
If E1 has a signed type and a negative value, the resulting value
is implementation defined.

So, cast -1 to unsigned type to make result well-defined.

[ Modified to use ~0U based upon recommendation from Al Viro. -DaveM ]

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[SELinux]: Add support for DCCP
James Morris [Tue, 14 Nov 2006 00:09:01 +0000]
[SELinux]: Add support for DCCP

This patch implements SELinux kernel support for DCCP
(http://linux-net.osdl.org/index.php/DCCP), which is similar in
operation to TCP in terms of connected state between peers.

The SELinux support for DCCP is thus modeled on existing handling of
TCP.

A new DCCP socket class is introduced, to allow protocol
differentation.  The permissions for this class inherit all of the
socket permissions, as well as the current TCP permissions (node_bind,
name_bind etc). IPv4 and IPv6 are supported, although labeled
networking is not, at this stage.

Patches for SELinux userspace are at:
http://people.redhat.com/jmorris/selinux/dccp/user/

I've performed some basic testing, and it seems to be working as
expected.  Adding policy support is similar to TCP, the only real
difference being that it's a different protocol.

Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[NET]: The scheduled removal of the frame diverter.
Adrian Bunk [Tue, 14 Nov 2006 00:02:22 +0000]
[NET]: The scheduled removal of the frame diverter.

This patch contains the scheduled removal of the frame diverter.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

13 years ago[DCCPv6]: Choose a genuine initial sequence number
Gerrit Renker [Mon, 13 Nov 2006 15:34:38 +0000]
[DCCPv6]: Choose a genuine initial sequence number

This
* resolves a FIXME - DCCPv6 connections started all with
  an initial sequence number of 1;
* provides a redirection `secure_dccpv6_sequence_number'
  in case the init_sequence_v6 code should be updated later;
* concentrates the update of S.GAR into dccp_connect_init();
* removes a duplicate dccp_update_gss() in ipv4.c;
* uses inet->dport instead of usin->sin_port, due to the
  following assignment in dccp_v4_connect():
  inet->dport = usin->sin_port;

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Remove redundant statements in init_sequence (ISS)
Gerrit Renker [Mon, 13 Nov 2006 15:31:50 +0000]
[DCCP]: Remove redundant statements in init_sequence (ISS)

This patch removes the following redundancies:

 1) The test skb->protocol == htons(ETH_P_IPV6) in dccp_v6_init_sequence
    is always true since
     * dccp_v6_conn_request() is the only calling function
     * dccp_v6_conn_request() redirects all skb's with ETH_P_IP to
       dccp_v4_conn_request()

 2) The first argument, `struct sock *sk', of dccp_v{4,6}_init_sequence()
    is never used.

(This is similar for tcp_v{4,6}_init_sequence, an analogous patch has been
 submitted to netdev and merged.)

By the way - are the `sport' / `dport' arguments in the right order?
I have made them consistent among calls but they seem to be in the
reverse order.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Remove forward declarations in timer.c
Gerrit Renker [Mon, 13 Nov 2006 15:26:51 +0000]
[DCCP]: Remove forward declarations in timer.c

This removes 3 forward declarations by reordering 2 functions.

No code change at all.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Introduce a consistent naming scheme for sysctls
Gerrit Renker [Mon, 13 Nov 2006 15:25:41 +0000]
[DCCP]: Introduce a consistent naming scheme for sysctls

In order to make their function clearer and obtain a consistent naming
scheme to identify sysctls, all existing DCCP sysctls have been prefixed
with `sysctl_dccp', following the same convention as used by TCP.

Feature-specific sysctls retain the `feat' in the middle, although the
`default' has been dropped, since it is obvious from use.

Also removed a duplicate `dccp_feat_default_sequence_window' in ipv4.c.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Add sysctls to control retransmission behaviour
Gerrit Renker [Mon, 13 Nov 2006 15:23:52 +0000]
[DCCP]: Add sysctls to control retransmission behaviour

This adds 3 sysctls which govern the retransmission behaviour of DCCP control
packets (3way handshake, feature negotiation).

It removes 4 FIXMEs from the code.

The close resemblance of sysctl variables to their TCP analogues is emphasised
not only by their name, but also by giving them the same initial values.
This is useful since there is not much practical experience with DCCP yet.

Furthermore, with regard to the previous patch, it is now possible to limit
the number of keepalive-Responses by setting net.dccp.default.request_retries
(also a bit like in TCP).

Lastly, added documentation of all existing DCCP sysctls.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>

13 years ago[DCCP]: Increment sequence numbers on retransmitted Response packets
Gerrit Renker [Mon, 13 Nov 2006 15:12:07 +0000]
[DCCP]: Increment sequence numbers on retransmitted Response packets

Problem:

13 years ago[DCCP]: Update comments on precisely which packets can be retransmitted
Gerrit Renker [Mon, 13 Nov 2006 15:07:51 +0000]
[DCCP]: Update comments on precisely which packets can be retransmitted

This updates program documentation: spell out precise conditions about
which packets are eligible for retransmission (which is actually quite
hard to extract from RFC 4340).

It is based on the following table derived from RFC 4340:

+-----------+---------------------------------+---------------------+
|   Type    | Retransmit?                     |  Remark             |
+-----------+---------------------------------+---------------------+
| Request   |  in client-REQUEST state        | sec. 8.1.1          |
| Response  |  NEVER                          | SHOULD NOT, 8.1.3   |
| Data      |  NEVER                          | unreliable protocol |
| Ack       |  possible in client-PARTOPEN    | sec. 8.1.5          |
| DataAck   |  NEVER                          | unreliable protocol |
| CloseReq  |  only in server-CLOSEREQ state  | MUST, sec. 8.3      |
| Close     |  in node-CLOSING state          | MUST, sec. 8.3      |
+-----------+-------------------------------------------------------+
| Reset     |  only in response to other packets                    |
| Sync      |  only in response to sequence-invalid packets (7.5.4) |
| SyncAck   |  only in response to Sync packets                     |
+-----------+-------------------------------------------------------+

Hence the only packets eligible for retransmission are:
       * Requests in client-REQUEST  state (sec. 8.1.1)
       * Acks     in client-PARTOPEN state (sec. 8.1.5)
       * CloseReq in server-CLOSEREQ state (sec. 8.3)
       * Close    in   node-CLOSING  state (sec. 8.3)

I had meant to put in a check for these types too, but have left that
for later.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>