powerpc.git
17 years ago[NETFILTER]: nf_conntrack: simplify protocol locking
Patrick McHardy [Wed, 14 Mar 2007 23:38:48 +0000 (16:38 -0700)]
[NETFILTER]: nf_conntrack: simplify protocol locking

Now that we don't use nf_conntrack_lock anymore but a single mutex for
all protocol handling, no need to release and grab it again for sysctl
registration.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETFILTER]: nf_conntrack: remove ugly hack in l4proto registration
Patrick McHardy [Wed, 14 Mar 2007 23:38:25 +0000 (16:38 -0700)]
[NETFILTER]: nf_conntrack: remove ugly hack in l4proto registration

Remove ugly special-casing of nf_conntrack_l4proto_generic, all it
wants is its sysctl tables registered, so do that explicitly in an
init function and move the remaining protocol initialization and
cleanup code to nf_conntrack_proto.c as well.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETFILTER]: nf_conntrack: switch protocol registration/unregistration to mutex
Patrick McHardy [Wed, 14 Mar 2007 23:37:52 +0000 (16:37 -0700)]
[NETFILTER]: nf_conntrack: switch protocol registration/unregistration to mutex

The protocol lookups done by nf_conntrack are already protected by RCU,
there is no need to keep taking nf_conntrack_lock for registration
and unregistration. Switch to a mutex.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETFILTER]: Remove IPv4 only connection tracking/NAT
Patrick McHardy [Wed, 14 Mar 2007 23:37:25 +0000 (16:37 -0700)]
[NETFILTER]: Remove IPv4 only connection tracking/NAT

Remove the obsolete IPv4 only connection tracking/NAT as scheduled in
feature-removal-schedule.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETFILTER]: x_tables: remove duplicate of xt_prefix
Tobias Klauser [Wed, 14 Mar 2007 23:36:16 +0000 (16:36 -0700)]
[NETFILTER]: x_tables: remove duplicate of xt_prefix

Remove xt_proto_prefix array which duplicates xt_prefix and change all
users of xt_proto_prefix to xt_prefix.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV4] xfrm4_mode_beet: Use skb_transport_header().
David S. Miller [Fri, 20 Apr 2007 02:55:44 +0000 (19:55 -0700)]
[IPV4] xfrm4_mode_beet: Use skb_transport_header().

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_transport_header(skb)
Arnaldo Carvalho de Melo [Thu, 26 Apr 2007 01:04:18 +0000 (18:04 -0700)]
[SK_BUFF]: Introduce skb_transport_header(skb)

For the places where we need a pointer to the transport header, it is
still legal to touch skb->h.raw directly if just adding to,
subtracting from or setting it to another layer header.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SCTP]: Eliminate some pointer attributions to the skb layer headers
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 20:17:10 +0000 (17:17 -0300)]
[SCTP]: Eliminate some pointer attributions to the skb layer headers

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: More skb_reset_transport_header conversions
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 20:10:43 +0000 (17:10 -0300)]
[SK_BUFF]: More skb_reset_transport_header conversions

These are a bit more subtle, they are of this type:

-       skb->h.raw = payload;
        __skb_pull(skb, payload - skb->data);
+       skb_reset_transport_header(skb);

__skb_pull results in:

skb->data = skb->data + payload - skb->data;
skb->data = payload;

So after __skb_pull we have skb->data pointing to payload and we can
just call skb_reset_transport_header(skb), that will do:

skb->h.raw = payload;

The others are similar, allowing us to get rid of some more cases where a
pointer was being attributed to the layer headers.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce ipipv6_hdr(), remove skb->h.ipv6h
Arnaldo Carvalho de Melo [Wed, 11 Apr 2007 04:06:25 +0000 (21:06 -0700)]
[SK_BUFF]: Introduce ipipv6_hdr(), remove skb->h.ipv6h

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce ipip_hdr(), remove skb->h.ipiph
Arnaldo Carvalho de Melo [Thu, 26 Apr 2007 01:02:22 +0000 (18:02 -0700)]
[SK_BUFF]: Introduce ipip_hdr(), remove skb->h.ipiph

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce tcp_hdr(), remove skb->h.th
Arnaldo Carvalho de Melo [Wed, 11 Apr 2007 04:04:22 +0000 (21:04 -0700)]
[SK_BUFF]: Introduce tcp_hdr(), remove skb->h.th

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: Introduce tcp_hdrlen() and tcp_optlen()
Arnaldo Carvalho de Melo [Mon, 19 Mar 2007 00:43:48 +0000 (17:43 -0700)]
[TCP]: Introduce tcp_hdrlen() and tcp_optlen()

The ip_hdrlen() buddy, created to reduce the number of skb->h.th-> uses and to
avoid the longer, open coded equivalent.

Ditched a no-op in bnx2 in the process.

I wonder if we should have a BUG_ON(skb->h.th->doff < 5) in tcp_optlen()...

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce icmp_hdr(), remove skb->h.icmph
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 17:43:18 +0000 (14:43 -0300)]
[SK_BUFF]: Introduce icmp_hdr(), remove skb->h.icmph

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce udp_hdr(), remove skb->h.uh
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 17:28:48 +0000 (14:28 -0300)]
[SK_BUFF]: Introduce udp_hdr(), remove skb->h.uh

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce igmp_hdr() & friends, remove skb->h.igmph
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 17:19:23 +0000 (14:19 -0300)]
[SK_BUFF]: Introduce igmp_hdr() & friends, remove skb->h.igmph

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[ICMP6]: Introduce icmp6_hdr()
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 17:03:22 +0000 (14:03 -0300)]
[ICMP6]: Introduce icmp6_hdr()

For consistency with all the other skb->h.raw accessors.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SCTP]: Introduce sctp_hdr()
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 16:59:32 +0000 (13:59 -0300)]
[SCTP]: Introduce sctp_hdr()

For consistency with all the other skb->h.raw accessors.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_set_transport_header
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 16:51:52 +0000 (13:51 -0300)]
[SK_BUFF]: Introduce skb_set_transport_header

For the cases where the transport header is being set to a offset from
skb->data.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_transport_offset()
Arnaldo Carvalho de Melo [Thu, 26 Apr 2007 00:55:53 +0000 (17:55 -0700)]
[SK_BUFF]: Introduce skb_transport_offset()

For the quite common 'skb->h.raw - skb->data' sequence.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_reset_transport_header(skb)
Arnaldo Carvalho de Melo [Tue, 13 Mar 2007 16:06:52 +0000 (13:06 -0300)]
[SK_BUFF]: Introduce skb_reset_transport_header(skb)

For the common, open coded 'skb->h.raw = skb->data' operation, so that we can
later turn skb->h.raw into a offset, reducing the size of struct sk_buff in
64bit land while possibly keeping it as a pointer on 32bit.

This one touches just the most simple cases:

skb->h.raw = skb->data;
skb->h.raw = {skb_push|[__]skb_pull}()

The next ones will handle the slightly more "complex" cases.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce ipv6_hdr(), remove skb->nh.ipv6h
Arnaldo Carvalho de Melo [Thu, 26 Apr 2007 00:54:47 +0000 (17:54 -0700)]
[SK_BUFF]: Introduce ipv6_hdr(), remove skb->nh.ipv6h

Now the skb->nh union has just one member, .raw, i.e. it is just like the
skb->mac union, strange, no? I'm just leaving it like that till the transport
layer is done with, when we'll rename skb->mac.raw to skb->mac_header (or
->mac_header_offset?), ditto for ->{h,nh}.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce arp_hdr(), remove skb->nh.arph
Arnaldo Carvalho de Melo [Mon, 12 Mar 2007 23:56:31 +0000 (20:56 -0300)]
[SK_BUFF]: Introduce arp_hdr(), remove skb->nh.arph

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[BRIDGE]: faster compare for link local addresses
Stephen Hemminger [Mon, 12 Mar 2007 23:25:32 +0000 (16:25 -0700)]
[BRIDGE]: faster compare for link local addresses

Use logic operations rather than memcmp() to compare destination
address with link local multicast addresses.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce ip_hdr(), remove skb->nh.iph
Arnaldo Carvalho de Melo [Sat, 21 Apr 2007 05:47:35 +0000 (22:47 -0700)]
[SK_BUFF]: Introduce ip_hdr(), remove skb->nh.iph

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPMR]: Fix bug introduced when converting to skb_network_reset_header
Arnaldo Carvalho de Melo [Mon, 12 Mar 2007 23:09:36 +0000 (20:09 -0300)]
[IPMR]: Fix bug introduced when converting to skb_network_reset_header

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IP]: Introduce ip_hdrlen()
Arnaldo Carvalho de Melo [Mon, 12 Mar 2007 23:09:15 +0000 (20:09 -0300)]
[IP]: Introduce ip_hdrlen()

For the common sequence "skb->nh.iph->ihl * 4", removing a good number of open
coded skb->nh.iph uses, now to go after the rest...

Just out of curiosity, here are the idioms found to get the same result:

skb->nh.iph->ihl << 2
skb->nh.iph->ihl<<2
skb->nh.iph->ihl * 4
skb->nh.iph->ihl*4
(skb->nh.iph)->ihl * sizeof(u32)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] ipmr: Missed one conversion to skb_network_header()
Arnaldo Carvalho de Melo [Mon, 12 Mar 2007 23:05:39 +0000 (20:05 -0300)]
[SK_BUFF] ipmr: Missed one conversion to skb_network_header()

We can't access skb->nh.raw directly anymore, it will become an offset.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: show bound packet types
Stephen Hemminger [Mon, 12 Mar 2007 21:35:37 +0000 (14:35 -0700)]
[NET]: show bound packet types

Show what protocols are bound to what packet types in /proc/net/ptype
Uses kallsyms to decode function pointers if possible.
Example:
Type Device      Function
ALL  eth1     packet_rcv_spkt+0x0
0800          ip_rcv+0x0
0806          arp_rcv+0x0
86dd          :ipv6:ipv6_rcv+0x0

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: make seq_operations const
Stephen Hemminger [Mon, 12 Mar 2007 21:34:29 +0000 (14:34 -0700)]
[NET]: make seq_operations const

The seq_file operations stuff can be marked constant to
get it out of dirty cache.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: network dev read_mostly
Stephen Hemminger [Mon, 12 Mar 2007 21:33:50 +0000 (14:33 -0700)]
[NET]: network dev read_mostly

For Eric, mark packet type and network device watermarks
as read mostly.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_set_network_header
Arnaldo Carvalho de Melo [Mon, 12 Mar 2007 01:39:41 +0000 (22:39 -0300)]
[SK_BUFF]: Introduce skb_set_network_header

For the cases where the network header is being set to a offset from skb->data.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] ipmr: Another skb_push related conversion to skb_reset_network_header
Arnaldo Carvalho de Melo [Mon, 12 Mar 2007 01:38:29 +0000 (22:38 -0300)]
[SK_BUFF] ipmr: Another skb_push related conversion to skb_reset_network_header

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_network_header()
Arnaldo Carvalho de Melo [Wed, 11 Apr 2007 03:50:43 +0000 (20:50 -0700)]
[SK_BUFF]: Introduce skb_network_header()

For the places where we need a pointer to the network header, it is still legal
to touch skb->nh.raw directly if just adding to, subtracting from or setting it
to another layer header.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_network_offset()
Arnaldo Carvalho de Melo [Sun, 11 Mar 2007 01:16:10 +0000 (22:16 -0300)]
[SK_BUFF]: Introduce skb_network_offset()

For the quite common 'skb->nh.raw - skb->data' sequence.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] bonding: Set skb->nh.raw relative to skb->mac.raw
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 23:09:45 +0000 (20:09 -0300)]
[SK_BUFF] bonding: Set skb->nh.raw relative to skb->mac.raw

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] xfrm4: use skb_reset_network_header
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 22:59:16 +0000 (19:59 -0300)]
[SK_BUFF] xfrm4: use skb_reset_network_header

Setting it to skb->h.raw, which is valid, in the (to become) old pointer based
world order and in the new world of offset based layer headers.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] ipv6: More skb_reset_network_header conversions related to skb_pull
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 22:57:15 +0000 (19:57 -0300)]
[SK_BUFF] ipv6: More skb_reset_network_header conversions related to skb_pull

Now related to this form:

skb->nh.ipv6h = (struct ipv6hdr *)skb_put(skb, length);

That, as the others, is done when skb->tail is still equal to skb->data, making
the conversion to skb_reset_network_header possible.

Also one more case equivalent to skb->nh.raw = skb->data, of this form:

iph = (struct ipv6hdr *)skb->data;
<SNIP>
skb->nh.ipv6h = iph;

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Use skb_reset_network_header after skb_push
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 22:40:39 +0000 (19:40 -0300)]
[SK_BUFF]: Use skb_reset_network_header after skb_push

Some more cases where skb->nh.iph was being set that were converted
to using skb_reset_network_header.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] ipconfig: Another conversion to skb_reset_network_header related to skb_put
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 22:27:27 +0000 (19:27 -0300)]
[SK_BUFF] ipconfig: Another conversion to skb_reset_network_header related to skb_put

boot_pkt->iph is the first member, that is at skb->data, so just use
skb_reset_network_header().

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Some more skb_put cases converted to skb_reset_network_header
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 22:15:25 +0000 (19:15 -0300)]
[SK_BUFF]: Some more skb_put cases converted to skb_reset_network_header

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Some more simple skb_reset_network_header conversions
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 22:04:55 +0000 (19:04 -0300)]
[SK_BUFF]: Some more simple skb_reset_network_header conversions

This time of the type:

 skb->nh.iph = (struct iphdr *)skb->data;

That is completely equivalent to:

 skb->nh.raw = skb->data;

Wonder why people love casts... :-)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Use skb_reset_network_header where the return of __pskb_pull was being...
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 21:42:03 +0000 (18:42 -0300)]
[SK_BUFF]: Use skb_reset_network_header where the return of __pskb_pull was being used

It returns skb->data, so we can just use skb_reset_network_header after it.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Use skb_reset_network_header where the skb_pull return was being used
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 21:40:59 +0000 (18:40 -0300)]
[SK_BUFF]: Use skb_reset_network_header where the skb_pull return was being used

But only in the cases where its a newly allocated skb, i.e. one where skb->tail
is equal to skb->data, or just after skb_reserve, where this requirement is
maintained.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Use skb_reset_network_header in skb_push cases
Arnaldo Carvalho de Melo [Wed, 11 Apr 2007 03:46:21 +0000 (20:46 -0700)]
[SK_BUFF]: Use skb_reset_network_header in skb_push cases

skb_push updates and returns skb->data, so we can just call
skb_reset_network_header after the call to skb_push.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_reset_network_header(skb)
Arnaldo Carvalho de Melo [Wed, 11 Apr 2007 03:45:18 +0000 (20:45 -0700)]
[SK_BUFF]: Introduce skb_reset_network_header(skb)

For the common, open coded 'skb->nh.raw = skb->data' operation, so that we can
later turn skb->nh.raw into a offset, reducing the size of struct sk_buff in
64bit land while possibly keeping it as a pointer on 32bit.

This one touches just the most simple case, next will handle the slightly more
"complex" cases.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6]: Use skb->nh.ipv6h instead of casting skb->nh.raw
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 19:21:45 +0000 (16:21 -0300)]
[IPV6]: Use skb->nh.ipv6h instead of casting skb->nh.raw

nh.ipv6h is there exactly for this reason! Use it while it exists ;-)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[BONDING]: Introduce arp_pkt()
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 19:07:19 +0000 (16:07 -0300)]
[BONDING]: Introduce arp_pkt()

For consistency with all the other skb->nh.raw accessors.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[PPPOE]: Introduce pppoe_hdr()
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 18:56:08 +0000 (15:56 -0300)]
[PPPOE]: Introduce pppoe_hdr()

For consistency with all the other skb->nh.raw accessors.

Also do some really obvious simplifications in pppoe_recvmsg, well the
kfree_skb one is not so obvious, but free() and kfree() have the same behaviour
(hint :-) ).

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[LLC]: Kill llc_set_pdu_hdr
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 18:34:36 +0000 (15:34 -0300)]
[LLC]: Kill llc_set_pdu_hdr

We'll have skb_reset_network_header soon.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_mac_header()
Arnaldo Carvalho de Melo [Mon, 19 Mar 2007 22:33:04 +0000 (15:33 -0700)]
[SK_BUFF]: Introduce skb_mac_header()

For the places where we need a pointer to the mac header, it is still legal to
touch skb->mac.raw directly if just adding to, subtracting from or setting it
to another layer header.

This one also converts some more cases to skb_reset_mac_header() that my
regex missed as it had no spaces before nor after '=', ugh.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: Use skb_set_mac_header in tcp_collapse
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 15:48:37 +0000 (12:48 -0300)]
[TCP]: Use skb_set_mac_header in tcp_collapse

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: Do the layer header setting in tcp_collapse relative to skb->data
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 15:47:22 +0000 (12:47 -0300)]
[TCP]: Do the layer header setting in tcp_collapse relative to skb->data

That is equal to skb->head before skb_reserve, to help in the layer header
changes.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF] xfrm: Use skb_set_mac_header in the memmove cases
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 15:40:27 +0000 (12:40 -0300)]
[SK_BUFF] xfrm: Use skb_set_mac_header in the memmove cases

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_set_mac_header()
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 15:30:58 +0000 (12:30 -0300)]
[SK_BUFF]: Introduce skb_set_mac_header()

For the cases where we want to set skb->mac.raw to an offset from skb->data.

Simple cases first, the memmove ones and specially pktgen will be left for later.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[LLC]: Use skb_reset_mac_header in llc_mac_hdr_init
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 15:17:29 +0000 (12:17 -0300)]
[LLC]: Use skb_reset_mac_header in llc_mac_hdr_init

skb_push updates and returns skb->data, so we can just call
skb_reset_mac_header after the call to skb_push.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[LLC]: Use skb_reset_mac_header in llc_alloc_frame
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 15:14:56 +0000 (12:14 -0300)]
[LLC]: Use skb_reset_mac_header in llc_alloc_frame

skb->head is equal to skb->data after alloc_skb, so reset the mac header while
this is true, i.e. before skb_reserve.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SK_BUFF]: Introduce skb_reset_mac_header(skb)
Arnaldo Carvalho de Melo [Mon, 19 Mar 2007 22:30:44 +0000 (15:30 -0700)]
[SK_BUFF]: Introduce skb_reset_mac_header(skb)

For the common, open coded 'skb->mac.raw = skb->data' operation, so that we can
later turn skb->mac.raw into a offset, reducing the size of struct sk_buff in
64bit land while possibly keeping it as a pointer on 32bit.

This one touches just the most simple case, next will handle the slightly more
"complex" cases.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[ETH]: Make eth_type_trans set skb->dev like the other *_type_trans
Arnaldo Carvalho de Melo [Thu, 26 Apr 2007 00:40:23 +0000 (17:40 -0700)]
[ETH]: Make eth_type_trans set skb->dev like the other *_type_trans

One less thing for drivers writers to worry about.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[AOE]: Introduce aoe_hdr()
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 14:20:07 +0000 (11:20 -0300)]
[AOE]: Introduce aoe_hdr()

For consistency with other skb->mac.raw users.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[QETH]: Use eth_hdr()
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 14:13:59 +0000 (11:13 -0300)]
[QETH]: Use eth_hdr()

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[HIPPI/FDDI]: Make {hippi,fddi}_type_trans set skb->dev
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 13:57:13 +0000 (10:57 -0300)]
[HIPPI/FDDI]: Make {hippi,fddi}_type_trans set skb->dev

Now all the _type_trans routines are consistent in this regard.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TR]: Make tr_type_trans set skb->dev
Arnaldo Carvalho de Melo [Mon, 19 Mar 2007 22:29:16 +0000 (15:29 -0700)]
[TR]: Make tr_type_trans set skb->dev

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TR]: Use tr_hdr() were appropriate
Arnaldo Carvalho de Melo [Mon, 19 Mar 2007 22:27:07 +0000 (15:27 -0700)]
[TR]: Use tr_hdr() were appropriate

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SOCKET]: Export __sock_recv_timestamp
Arnaldo Carvalho de Melo [Sat, 10 Mar 2007 03:39:35 +0000 (00:39 -0300)]
[SOCKET]: Export __sock_recv_timestamp

Kernel: arch/x86_64/boot/bzImage is ready  (#2)
  MODPOST 1816 modules
WARNING: "__sock_recv_timestamp" [net/sctp/sctp.ko] undefined!
WARNING: "__sock_recv_timestamp" [net/packet/af_packet.ko] undefined!
WARNING: "__sock_recv_timestamp" [net/key/af_key.ko] undefined!
WARNING: "__sock_recv_timestamp" [net/ipv6/ipv6.ko] undefined!
WARNING: "__sock_recv_timestamp" [net/atm/atm.ko] undefined!
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2
make: *** [_all] Error 2

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support
Eric Dumazet [Mon, 26 Mar 2007 05:14:49 +0000 (22:14 -0700)]
[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support

Now that network timestamps use ktime_t infrastructure, we can add a new
SOL_SOCKET sockopt  SO_TIMESTAMPNS.

This command is similar to SO_TIMESTAMP, but permits transmission of
a 'timespec struct' instead of a 'timeval struct' control message.
(nanosecond resolution instead of microsecond)

Control message is labelled SCM_TIMESTAMPNS instead of SCM_TIMESTAMP

A socket cannot mix SO_TIMESTAMP and SO_TIMESTAMPNS : the two modes are
mutually exclusive.

sock_recv_timestamp() became too big to be fully inlined so I added a
__sock_recv_timestamp() helper function.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
CC: linux-arch@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[UDP]: Use __skb_pull since we have checked it won't fail with pskb_may_pull
Arnaldo Carvalho de Melo [Fri, 9 Mar 2007 21:51:54 +0000 (13:51 -0800)]
[UDP]: Use __skb_pull since we have checked it won't fail with pskb_may_pull

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: New sysctls should use __read_mostly tags
Eric Dumazet [Fri, 9 Mar 2007 06:36:37 +0000 (22:36 -0800)]
[NET]: New sysctls should use __read_mostly tags

net_msg_warn should be placed in the read_mostly section, to avoid
performance problems on SMP

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6]: Ensure to truncate result and return full length for sticky options.
YOSHIFUJI Hideaki [Fri, 9 Mar 2007 04:48:23 +0000 (20:48 -0800)]
[IPV6]: Ensure to truncate result and return full length for sticky options.

Bug noticed by Chris Wright <chrisw@sous-sol.org>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6]: Return correct result for sticky options.
YOSHIFUJI Hideaki [Mon, 19 Mar 2007 00:35:57 +0000 (17:35 -0700)]
[IPV6]: Return correct result for sticky options.

We returned incorrect result with IPV6_RTHDRDSTOPTS, IPV6_RTHDR and
IPV6_DSTOPTS.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[UDP]: deinline
Stephen Hemminger [Fri, 9 Mar 2007 04:46:41 +0000 (20:46 -0800)]
[UDP]: deinline

A couple of functions are exported or used indirectly
so it is pointless to mark them as inline.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: deinline some functions
Stephen Hemminger [Fri, 9 Mar 2007 04:46:03 +0000 (20:46 -0800)]
[NET]: deinline some functions

Several functions are marked inline or forced inline, but it
would be better to let the compiler decide.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: whitespace cleanup
Stephen Hemminger [Fri, 9 Mar 2007 04:45:19 +0000 (20:45 -0800)]
[TCP]: whitespace cleanup

Add whitespace around keywords.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV4]: cleanup
Stephen Hemminger [Fri, 9 Mar 2007 04:44:43 +0000 (20:44 -0800)]
[IPV4]: cleanup

Add whitespace around keywords.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[WIRELESS]: use ARRAY_SIZE()
Stephen Hemminger [Fri, 9 Mar 2007 04:43:49 +0000 (20:43 -0800)]
[WIRELESS]: use ARRAY_SIZE()

Use ARRAY_SIZE() macro now.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] core: whitespace cleanup
Stephen Hemminger [Wed, 11 Apr 2007 03:10:33 +0000 (20:10 -0700)]
[NET] core: whitespace cleanup

Fix whitespace around keywords. Fix indentation especially of switch
statements.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[UDP]: ipv6 style cleanup
Stephen Hemminger [Fri, 9 Mar 2007 04:42:35 +0000 (20:42 -0800)]
[UDP]: ipv6 style cleanup

Fix whitespace around keywords. Eliminate unnecessary ()'s on return
statements.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[UDP]: ipv4 whitespace cleanup
Stephen Hemminger [Fri, 9 Mar 2007 04:41:55 +0000 (20:41 -0800)]
[UDP]: ipv4 whitespace cleanup

Fix whitespace around keywords.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: Replace CONFIG_NET_DEBUG with sysctl.
Stephen Hemminger [Fri, 9 Mar 2007 04:41:08 +0000 (20:41 -0800)]
[NET]: Replace CONFIG_NET_DEBUG with sysctl.

Covert network warning messages from a compile time to runtime choice.
Removes kernel config option and replaces it with new /proc/sys/net/core/warnings.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution
Eric Dumazet [Mon, 19 Mar 2007 00:33:16 +0000 (17:33 -0700)]
[NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution

Now network timestamps use ktime_t infrastructure, we can add a new
ioctl() SIOCGSTAMPNS command to get timestamps in 'struct timespec'.
User programs can thus access to nanosecond resolution.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
CC: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP/DCCP/RANDOM]: Remove unused exports.
Adrian Bunk [Thu, 8 Mar 2007 03:33:52 +0000 (19:33 -0800)]
[TCP/DCCP/RANDOM]: Remove unused exports.

This patch removes the following not or no longer used exports:
- drivers/char/random.c: secure_tcp_sequence_number
- net/dccp/options.c: sysctl_dccp_feat_sequence_window
- net/netlink/af_netlink.c: netlink_set_err

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: Abstract out all write queue operations.
David S. Miller [Wed, 7 Mar 2007 20:12:44 +0000 (12:12 -0800)]
[TCP]: Abstract out all write queue operations.

This allows the write queue implementation to be changed,
for example, to one which allows fast interval searching.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] TIPC: Use htons() where appropriate.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 05:21:31 +0000 (14:21 +0900)]
[NET] TIPC: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] SCHED: Use htons() where appropriate.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 05:21:20 +0000 (14:21 +0900)]
[NET] SCHED: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] NETFILTER: Use htonl() where appropriate.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 05:21:00 +0000 (14:21 +0900)]
[NET] NETFILTER: Use htonl() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] IPV4: Use hton{s,l}() where appropriate.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 05:19:10 +0000 (14:19 +0900)]
[NET] IPV4: Use hton{s,l}() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] IEEE80211: Use htons() where appropriate.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 05:19:05 +0000 (14:19 +0900)]
[NET] IEEE80211: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] ETHERNET: Use htons() where appropriate.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 05:19:03 +0000 (14:19 +0900)]
[NET] ETHERNET: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] CORE: Use htons() where appropriate.
YOSHIFUJI Hideaki [Mon, 26 Mar 2007 03:13:04 +0000 (20:13 -0700)]
[NET] CORE: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] BLUETOOTH: Use cpu_to_le{16,32}() where appropriate.
YOSHIFUJI Hideaki [Mon, 26 Mar 2007 03:12:50 +0000 (20:12 -0700)]
[NET] BLUETOOTH: Use cpu_to_le{16,32}() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] ATM: Use htons() where appropriate.
YOSHIFUJI Hideaki [Mon, 26 Mar 2007 03:12:32 +0000 (20:12 -0700)]
[NET] ATM: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] 8021Q: Use htons() where appropriate.
YOSHIFUJI Hideaki [Mon, 26 Mar 2007 03:12:18 +0000 (20:12 -0700)]
[NET] 8021Q: Use htons() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET] 802: Use hton{s,l}() where appropriate.
YOSHIFUJI Hideaki [Mon, 26 Mar 2007 03:11:55 +0000 (20:11 -0700)]
[NET] 802: Use hton{s,l}() where appropriate.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[UDP]: Clean up UDP-Lite receive checksum
Herbert Xu [Mon, 26 Mar 2007 03:10:56 +0000 (20:10 -0700)]
[UDP]: Clean up UDP-Lite receive checksum

This patch eliminates some duplicate code for the verification of
receive checksums between UDP-Lite and UDP.  It does this by
introducing __skb_checksum_complete_head which is identical to
__skb_checksum_complete_head apart from the fact that it takes
a length parameter rather than computing the first skb->len bytes.

As a result UDP-Lite will be able to use hardware checksum offload
for packets which do not use partial coverage checksums.  It also
means that UDP-Lite loopback no longer does unnecessary checksum
verification.

If any NICs start support UDP-Lite this would also start working
automatically.

This patch removes the assumption that msg_flags has MSG_TRUNC clear
upon entry in recvmsg.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[UDP6]: Restore sk_filter optimisation
Herbert Xu [Wed, 7 Mar 2007 04:29:58 +0000 (20:29 -0800)]
[UDP6]: Restore sk_filter optimisation

This reverts the changeset

    [IPV6]: UDPv6 checksum.

    We always need to check UDPv6 checksum because it is mandatory.

The sk_filter optimisation has nothing to do whether we verify the
checksum.  It simply postpones it to the point when the user calls
recv or poll.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV4]: Optimize inet_getpeer()
Eric Dumazet [Wed, 7 Mar 2007 04:23:10 +0000 (20:23 -0800)]
[IPV4]: Optimize inet_getpeer()

1) Some sysctl vars are declared __read_mostly

2) We can avoid updating stack[] when doing an AVL lookup only.

    lookup() macro is extended to receive a second parameter, that may be NULL
in case of a pure lookup (no need to save the AVL path). This removes
unnecessary instructions, because compiler knows if this _stack parameter is
NULL or not.

    text size of net/ipv4/inetpeer.o is 2063 bytes instead of 2107 on x86_64

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP] TCP Yeah: cleanup
Stephen Hemminger [Wed, 7 Mar 2007 04:21:20 +0000 (20:21 -0800)]
[TCP] TCP Yeah: cleanup

Eliminate need for full 6/4/64 divide to compute queue.
Variable maxqueue was really a constant.
Fix indentation.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP] tcp_cubic: faster cube root
Stephen Hemminger [Mon, 26 Mar 2007 03:21:15 +0000 (20:21 -0700)]
[TCP] tcp_cubic: faster cube root

The Newton-Raphson method is quadratically convergent so
only a small fixed number of steps are necessary.
Therefore it is faster to unroll the loop. Since div64_64 is no longer
inline it won't cause code explosion.

Also fixes a bug that can occur if x^2 was bigger than 32 bits.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[ATM] ENI: Convert to struct timeval to ktime_t.
YOSHIFUJI Hideaki [Wed, 7 Mar 2007 04:19:26 +0000 (20:19 -0800)]
[ATM] ENI: Convert to struct timeval to ktime_t.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETLINK]: Limit NLMSG_GOODSIZE to 8K.
David S. Miller [Mon, 26 Mar 2007 03:27:59 +0000 (20:27 -0700)]
[NETLINK]: Limit NLMSG_GOODSIZE to 8K.

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