pandora-kernel.git
16 years ago[NET]: Proper comment for loopback initialization order.
Denis V. Lunev [Thu, 27 Sep 2007 19:04:19 +0000 (12:04 -0700)]
[NET]: Proper comment for loopback initialization order.

Loopback device is special. It should be initialized at the very
beginning.  Initialization order has been changed by
Eric W. Biederman <ebiederm@xmission.com> and this change is non-obvious
and important enough to add proper comment.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NETNS]: Simplify the network namespace list locking rules.
Eric W. Biederman [Thu, 27 Sep 2007 05:40:08 +0000 (22:40 -0700)]
[NETNS]: Simplify the network namespace list locking rules.

Denis V. Lunev <den@sw.ru> noticed that the locking rules
for the network namespace list are over complicated and broken.

In particular the current register_netdev_notifier currently
does not take any lock making the for_each_net iteration racy
with network namespace creation and destruction. Oops.

The fact that we need to use for_each_net in rtnl_unlock() when
the rtnetlink support becomes per network namespace makes designing
the proper locking tricky.  In addition we need to be able to call
rtnl_lock() and rtnl_unlock() when we have the net_mutex held.

After thinking about it and looking at the alternatives carefully
it looks like the simplest and most maintainable solution is
to remove net_list_mutex altogether, and to use the rtnl_mutex instead.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IRDA]: Document the fact that smsc-ircc2 will not use PNP by default
Jonathan Bastien-Filiatrault [Thu, 27 Sep 2007 05:34:25 +0000 (22:34 -0700)]
[IRDA]: Document the fact that smsc-ircc2 will not use PNP by default

This avoids user confusion when they see that their device is not detected.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ATM] net/atm/lec.c: printk warning fix
Andrew Morton [Thu, 27 Sep 2007 05:31:19 +0000 (22:31 -0700)]
[ATM] net/atm/lec.c: printk warning fix

net/atm/lec.c: In function 'lec_start_xmit':
net/atm/lec.c:371: warning: format '%x' expects type 'unsigned int', but argument 4 has type 'long unsigned int'

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[PASEMI_MAC]: remove unused function
Satyam Sharma [Thu, 27 Sep 2007 05:29:51 +0000 (22:29 -0700)]
[PASEMI_MAC]: remove unused function

drivers/net/pasemi_mac.c: At top level:
drivers/net/pasemi_mac.c:89: warning: 'read_iob_reg' defined but not used

Signed-off-by: Satyam Sharma <satyam@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SPIDERNET] spider_net_ethtool: Keep up with recent netdev stats changes
Satyam Sharma [Thu, 27 Sep 2007 05:29:02 +0000 (22:29 -0700)]
[SPIDERNET] spider_net_ethtool: Keep up with recent netdev stats changes

drivers/net/spider_net_ethtool.c: In function 'spider_net_get_ethtool_stats':
drivers/net/spider_net_ethtool.c:160: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:161: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:162: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:163: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:164: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:165: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:166: error: structure has no member named 'netdev_stats'
make[2]: *** [drivers/net/spider_net_ethtool.o] Error 1

Also do another ARRAY_SIZE() cleanup while at it.

Signed-off-by: Satyam Sharma <satyam@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[WIRELESS]: Fix Kconfig.
Andrew Morton [Thu, 27 Sep 2007 05:21:28 +0000 (22:21 -0700)]
[WIRELESS]: Fix Kconfig.

Seems that a bare "depends" is no longer allowed in Sam's kbuild tree.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Move hardware header operations out of netdevice.
Stephen Hemminger [Tue, 9 Oct 2007 08:40:57 +0000 (01:40 -0700)]
[NET]: Move hardware header operations out of netdevice.

Since hardware header operations are part of the protocol class
not the device instance, make them into a separate object and
save memory.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Wrap hard_header_parse
Stephen Hemminger [Thu, 27 Sep 2007 05:13:38 +0000 (22:13 -0700)]
[NET]: Wrap hard_header_parse

Wrap the hard_header_parse function to simplify next step of
header_ops conversion.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Wrap netdevice hardware header creation.
Stephen Hemminger [Tue, 9 Oct 2007 08:36:32 +0000 (01:36 -0700)]
[NET]: Wrap netdevice hardware header creation.

Add inline for common usage of hardware header creation, and
fix bug in IPV6 mcast where the assumption about negative return is
an errno. Negative return from hard_header means not enough space
was available,(ie -N bytes).

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Remove no longer relevant comment in loopback driver.
David S. Miller [Thu, 27 Sep 2007 05:11:56 +0000 (22:11 -0700)]
[NET]: Remove no longer relevant comment in loopback driver.

It talks about __get_cpu_var() which the driver no longer
does.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Make the loopback device per network namespace.
Eric W. Biederman [Thu, 27 Sep 2007 05:10:56 +0000 (22:10 -0700)]
[NET]: Make the loopback device per network namespace.

This patch makes loopback_dev per network namespace.  Adding
code to create a different loopback device for each network
namespace and adding the code to free a loopback device
when a network namespace exits.

This patch modifies all users the loopback_dev so they
access it as init_net.loopback_dev, keeping all of the
code compiling and working.  A later pass will be needed to
update the users to use something other than the initial network
namespace.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IPV4]: When possible test for IFF_LOOPBACK and not dev == loopback_dev
Eric W. Biederman [Thu, 27 Sep 2007 05:10:06 +0000 (22:10 -0700)]
[IPV4]: When possible test for IFF_LOOPBACK and not dev == loopback_dev

Now that multiple loopback devices are becoming possible it makes
the code a little cleaner and more maintainable to test if a deivice
is th a loopback device by testing dev->flags & IFF_LOOPBACK instead
of dev == loopback_dev.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IPV4]: Remove unnecessary test for the loopback device from inetdev_destroy
Eric W. Biederman [Thu, 27 Sep 2007 05:09:25 +0000 (22:09 -0700)]
[IPV4]: Remove unnecessary test for the loopback device from inetdev_destroy

Currently we never call unregister_netdev for the loopback device so
it is impossible for us to reach inetdev_destroy with the loopback
device.  So the test in inetdev_destroy is unnecessary.

Further when testing with my network namespace patches removing
unregistering the loopback device and calling inetdev_destroy works
fine so there appears to be no reason for avoiding unregistering the
loopback device.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Dynamically allocate the per cpu counters for the loopback device.
Eric W. Biederman [Thu, 27 Sep 2007 05:08:12 +0000 (22:08 -0700)]
[NET]: Dynamically allocate the per cpu counters for the loopback device.

This patch add support for dynamically allocating the statistics counters
for the loopback device and adds appropriate device methods for allocating
and freeing the loopback device.

This completes support for creating multiple instances of the loopback
device,  in preparation for creating per network namespace instances.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Add network namespace clone & unshare support.
Eric W. Biederman [Thu, 27 Sep 2007 05:04:26 +0000 (22:04 -0700)]
[NET]: Add network namespace clone & unshare support.

This patch allows you to create a new network namespace
using sys_clone, or sys_unshare.

As the network namespace is still experimental and under development
clone and unshare support is only made available when CONFIG_NET_NS is
selected at compile time.

As this patch introduces network namespace support into code paths
that exist when the CONFIG_NET is not selected there are a few
additions made to net_namespace.h to allow a few more functions
to be used when the networking stack is not compiled in.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Fix running without sysfs
Eric W. Biederman [Thu, 27 Sep 2007 05:02:53 +0000 (22:02 -0700)]
[NET]: Fix running without sysfs

When sysfs support is compiled out the kernel still keeps and maintains
the kobject tree.  So it is not safe to skip our kobject reference counting or
to avoid becoming members of the kobject tree.  It is safe to not add
the networking specific sysfs attributes.

This patch removes the sysfs special cases from net/core/dev.c
renames functions from netdev_sysfs_xxxx to netdev_kobject_xxxx
and always compiles in net-sysfs.c

net-sysfs.c is modified with a CONFIG_SYSFS guard around the parts
that are actually sysfs specific.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[CCID3]: Remove ifdef surrounding BUG_ON
Arnaldo Carvalho de Melo [Wed, 26 Sep 2007 22:38:55 +0000 (19:38 -0300)]
[CCID3]: Remove ifdef surrounding BUG_ON

As suggested by DaveM.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Reduce the number of writable states
Gerrit Renker [Wed, 26 Sep 2007 22:36:08 +0000 (19:36 -0300)]
[DCCP]: Reduce the number of writable states

Since DCCP requires to close both ends of a connection simultaneously,
permission to write in state DCCP_CLOSING is removed in dccp_sendmsg():
 * if the sending end closed, it would encounter a write error anyhow;
 * if the other end has closed the connection, it accepts no more data.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Factor out common code for generating Resets
Gerrit Renker [Wed, 26 Sep 2007 17:35:19 +0000 (14:35 -0300)]
[DCCP]: Factor out common code for generating Resets

This factors code common to dccp_v{4,6}_ctl_send_reset into a separate function,
and adds support for filling in the Data 1 ... Data 3 fields from RFC 4340, 5.6.

It is useful to have this separate, since the following Reset codes will always
be generated from the control socket rather than via dccp_send_reset:
 * Code 3, "No Connection", cf. 8.3.1;
 * Code 4, "Packet Error" (identification for Data 1 added);
 * Code 5, "Option Error" (identification for Data 1..3 added, will be used later);
 * Code 6, "Mandatory Error" (same as Option Error);
 * Code 7, "Connection Refused" (what on Earth is the difference to "No Connection"?);
 * Code 8, "Bad Service Code";
 * Code 9, "Too Busy";
 * Code 10, "Bad Init Cookie" (not used).

Code 0 is not recommended by the RFC, the following codes would be used in
dccp_send_reset() instead, since they all relate to an established DCCP connection:
 * Code 1, "Closed";
 * Code 2, "Aborted";
 * Code 11, "Aggression Penalty" (12.3).

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Sequence number wrap-around when sending reset
Gerrit Renker [Wed, 26 Sep 2007 14:32:49 +0000 (11:32 -0300)]
[DCCP]: Sequence number wrap-around when sending reset

This replaces normal addition with mod-48 addition so that sequence number
wraparound is respected.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Rate-limit DCCP-Syncs
Gerrit Renker [Wed, 26 Sep 2007 14:31:49 +0000 (11:31 -0300)]
[DCCP]: Rate-limit DCCP-Syncs

This implements a SHOULD from RFC 4340, 7.5.4:
 "To protect against denial-of-service attacks, DCCP implementations SHOULD
  impose a rate limit on DCCP-Syncs sent in response to sequence-invalid packets,
  such as not more than eight DCCP-Syncs per second."

The rate-limit is maintained on a per-socket basis. This is a more stringent
policy than enforcing the rate-limit on a per-source-address basis and
protects against attacks with forged source addresses.

Moreover, the mechanism is deliberately kept simple. In contrast to
xrlim_allow(), bursts of Sync packets in reply to sequence-invalid packets
are not supported.  This foils such attacks where the receipt of a Sync
triggers further sequence-invalid packets. (I have tested this mechanism against
xrlim_allow algorithm for Syncs, permitting bursts just increases the problems.)

In order to keep flexibility, the timeout parameter can be set via sysctl; and
the whole mechanism can even be disabled (which is however not recommended).

The algorithm in this patch has been improved with regard to wrapping issues
thanks to a suggestion by Arnaldo.

Commiter note: Rate limited the step 6 DCCP_WARN too, as it says we're
               sending a sync.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Remove duplicate code for Reset from connected socket
Gerrit Renker [Wed, 26 Sep 2007 14:30:02 +0000 (11:30 -0300)]
[DCCP]: Remove duplicate code for Reset from connected socket

In this patch, duplicated code is removed for the case when a Reset packet is
sent from a connected socket. This code duplication is between dccp_make_reset
and dccp_transmit_skb, which already contained an (up to now entirely unused)
switch statement to fill in the reset code from the DCCP_SKB_CB.

The only thing that has been removed is the call to dst_clone(dst), since
the queue_xmit functions use sk_dst_cache anyway.

I wasn't sure which purpose inet_sk_rebuild_header served, so I left it in.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Add Support for Data 1 .. 3 fields of Reset packets
Gerrit Renker [Wed, 26 Sep 2007 14:27:56 +0000 (11:27 -0300)]
[DCCP]: Add Support for Data 1 .. 3 fields of Reset packets

This adds fields to support the informational Data 1..3 fields of the
DCCP-Reset packets (RFC 4340, 5.6), and makes minor cosmetic changes
to documentation.
Code which fills in these fields follows in subsequent patches, it is
primarily used for reporting option-processing and feature-negotiation
errors.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Add FIXME for send_delayed_ack
Gerrit Renker [Wed, 26 Sep 2007 14:26:04 +0000 (11:26 -0300)]
[DCCP]: Add FIXME for send_delayed_ack

This adds a FIXME to signal that the function dccp_send_delayed_ack is nowhere
used in the entire DCCP/CCID code.

Using a delayed Ack timer is suggested in 11.3 of RFC 4340, but it has also
rather subtle implications for the Ack-Ratio-accounting.

CCID2 does not use this (maybe it should).

I think leaving the function in is good, in case someone wants to implement
this.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[CCID3]: Move NULL-protection into function
Gerrit Renker [Wed, 26 Sep 2007 14:24:28 +0000 (11:24 -0300)]
[CCID3]: Move NULL-protection into function

This moves several instances of testing against NULL into the function which is
used to de-reference the CCID-private data.

Committer note: Made the BUG_ON depend on having CONFIG_IP_DCCP_CCID3_DEBUG, as it
                is too much to have this on production code. Also made sure that
                the macro is used only after checking if sk_state is not LISTEN,
                to make it equivalent to what we had before.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[DCCP]: Send Reset upon Sync in state REQUEST
Gerrit Renker [Wed, 26 Sep 2007 13:30:05 +0000 (10:30 -0300)]
[DCCP]: Send Reset upon Sync in state REQUEST

This fixes the code to correspond to RFC 4340, 7.5.4, which states the
exception that a Sync received in state REQUEST generates a Reset (not
a SyncAck).

To achieve this, only a small change is required. Since
dccp_rcv_request_sent_state_process() already uses the correct Reset Code
number 4 ("Packet Error"), we only need to shift the if-statement a few
lines further down.

(To test this case: replace DCCP_PKT_RESPONSE with DCCP_PKT_SYNC
                    in dccp_make_response.)

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
16 years ago[BLUETOOTH]: Make hidp_setup_input() return int
WANG Cong [Wed, 26 Sep 2007 05:57:31 +0000 (22:57 -0700)]
[BLUETOOTH]: Make hidp_setup_input() return int

This patch:
- makes hidp_setup_input() return int to indicate errors;
- checks its return value to handle errors.

And this time it is against -rc7-mm1 tree.

Thanks to roel and Marcel Holtmann for comments.

Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP] MIB: Count FRTO's successfully detected spurious RTOs
Ilpo Järvinen [Wed, 26 Sep 2007 05:47:31 +0000 (22:47 -0700)]
[TCP] MIB: Count FRTO's successfully detected spurious RTOs

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Reordered ACK's (old) SACKs not included to discarded MIB
Ilpo Järvinen [Wed, 26 Sep 2007 05:46:50 +0000 (22:46 -0700)]
[TCP]: Reordered ACK's (old) SACKs not included to discarded MIB

In case of ACK reordering, the SACK block might be valid in it's
time but is already obsoleted since we've received another kind
of confirmation about arrival of the segments through snd_una
advancement of an earlier packet.

I didn't bother to build distinguishing of valid and invalid
SACK blocks but simply made reordered SACK blocks that are too
old always not counted regardless of their "real" validity which
could be determined by using the ack field of the reordered
packet (won't be significant IMHO).

DSACKs can very well be considered useful even in this situation,
so won't do any of this for them.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Re-place highest_sack check to a more robust position
Ilpo Järvinen [Wed, 26 Sep 2007 05:44:14 +0000 (22:44 -0700)]
[TCP]: Re-place highest_sack check to a more robust position

I previously added checking to position that is rather poor as
state has already been adjusted quite a bit. Re-placing it above
all state changes should be more robust though the return should
never ever get executed regardless of its place :-).

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Parameter renaming
Gerrit Renker [Wed, 26 Sep 2007 05:42:27 +0000 (22:42 -0700)]
[DCCP]: Parameter renaming

The parameter `seq' of dccp_send_sync() is in fact an acknowledgement number
and not a sequence number - thus renamed by this patch into `ackno'.

Secondly, a `critical' warning is added when a Sync/SyncAck could not be sent.

Sanity: I have checked all other functions that are called in dccp_transmit_skb,
        there are no clashes with the use of dccpd_ack_seq; no other function is
        using this slot at the same time.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Fix Reset/Sync-Flood Bug
Gerrit Renker [Wed, 26 Sep 2007 05:41:56 +0000 (22:41 -0700)]
[DCCP]: Fix Reset/Sync-Flood Bug

This updates sequence number checking with regard to RFC 4340, 7.5.4.
Missing in the code was an exception for sequence-invalid Reset packets,
which get a Sync acknowledging GSR, instead of (as usual) P.seqno.

This can lead to an oscillating ping-pong flood of Reset packets.

In fact, it has been observed on the wire as follows:

 1. client establishes connection to server;
 2. before server can write to client, client crashes without notifying
    the server (NB: now no longer possible due to ABORT function);
 3. server sends DCCP-Data packet (has no ackno);
 4. client generates Reset "No Connection", seqno=0, increments seqno;
 5. server replies with Sync, using ackno = P.seqno;
 6. client generates Reset "No Connection" with seqno = ackno + 1;
 7. goto (5).

The difference is that now in (5) the server uses GSR.  This causes the
Reset sent by the client in (6) to become sequence-valid, so that in (7)
the vicious circle is broken; the Reset is then enqueued and causes the
socket to enter TIMEWAIT state.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Shorten variable names in dccp_check_seqno
Gerrit Renker [Wed, 26 Sep 2007 05:41:19 +0000 (22:41 -0700)]
[DCCP]: Shorten variable names in dccp_check_seqno

This patch is in part required by the next patch; it

 * replaces 6 instances of `DCCP_SKB_CB(skb)->dccpd_seq' with `seqno';
 * replaces 7 instances of `DCCP_SKB_CB(skb)->dccpd_ack_seq' with `ackno';
 * replaces 1 use of dccp_inc_seqno() by unfolding `ADD48' macro in place.

No changes in algorithm, all changes are text replacement/substitution.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Simplify interface of dccp_sample_rtt
Gerrit Renker [Wed, 26 Sep 2007 05:40:44 +0000 (22:40 -0700)]
[DCCP]: Simplify interface of dccp_sample_rtt

The third parameter of dccp_sample_rtt now becomes useless and is removed.

Also combined the subtraction of the timestamp echo and the elapsed time.
This is safe, since (a) presence of timestamp echo is tested first and (b)
elapsed time is either present and non-zero or it is not set and equals 0
due to the memset in dccp_parse_options.

To avoid measuring option-processing time, the timestamp for measuring the
initial Request/Response RTT sample is taken directly when the function is
called (the Linux implementation always adds a timestamp on the Request,
so there is no loss in doing this).

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Provide 10s of microsecond timesource
Gerrit Renker [Wed, 26 Sep 2007 05:40:13 +0000 (22:40 -0700)]
[DCCP]: Provide 10s of microsecond timesource

This provides a timesource, conveniently used for DCCP timestamps, which
returns the elapsed time in 10s of microseconds since initialisation.
This makes for a wrap-around time of about 11.9 hours, which should be
sufficient for most applications.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[DCCP]: Reuse ktime_get_real() calls again
Gerrit Renker [Wed, 26 Sep 2007 05:39:16 +0000 (22:39 -0700)]
[DCCP]: Reuse ktime_get_real() calls again

This patch reduces the number of timestamps taken in the receive path
for each packet.

The ccid3_hc_tx_update_x() routine is called in
 * the receive path for each CCID3-controlled packet
 * for the nofeedback timer (if no feedback arrives during 4 RTT)

Currently, when there is no loss, each packet gets timestamped twice.
The patch resolves this by recycling the first timestamp taken on packet
reception for RTT sampling.

When the no_feedback_timer() is called, then the timestamp argument is
simply set to NULL - so that ccid3_hc_tx_update_x() takes care of the logic.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: rename ieee80211_cfg.h to cfg.h
Michael Wu [Tue, 18 Sep 2007 21:29:21 +0000 (17:29 -0400)]
[MAC80211]: rename ieee80211_cfg.h to cfg.h

Might as well rename ieee80211_cfg.h to cfg.h to keep things consistent.

Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: kill vlan_id
Johannes Berg [Tue, 18 Sep 2007 21:29:21 +0000 (17:29 -0400)]
[MAC80211]: kill vlan_id

Each station has a vlan_id that is useless. Remove it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: kill IE parse typedef
Johannes Berg [Tue, 18 Sep 2007 21:29:21 +0000 (17:29 -0400)]
[MAC80211]: kill IE parse typedef

The parse result typedef isn't needed.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: rename ieee80211_cfg.c to cfg.c
Johannes Berg [Tue, 18 Sep 2007 21:29:20 +0000 (17:29 -0400)]
[MAC80211]: rename ieee80211_cfg.c to cfg.c

It's just painful to have the extra ieee80211_ prefix.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: print out wiphy name instead of master device
Johannes Berg [Tue, 18 Sep 2007 21:29:20 +0000 (17:29 -0400)]
[MAC80211]: print out wiphy name instead of master device

This makes mac80211 print out the wiphy name instead of the
master device name where appropriate.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: remove tx info sw_retry_attempt member
Johannes Berg [Tue, 18 Sep 2007 21:29:20 +0000 (17:29 -0400)]
[MAC80211]: remove tx info sw_retry_attempt member

This is unused.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: fix warnings introduced by the doc patches
Johannes Berg [Tue, 18 Sep 2007 21:29:20 +0000 (17:29 -0400)]
[MAC80211]: fix warnings introduced by the doc patches

This fixes a warning about NUM_IEEE80211_MODES missing
in a switch statement. Intentionally do not add a default
case so we get warnings at these places if we need to add
new modes.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: yet more documentation
Johannes Berg [Tue, 18 Sep 2007 21:29:20 +0000 (17:29 -0400)]
[MAC80211]: yet more documentation

Add more mac80211 documentation.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: remove IEEE80211_CONF_SSID_HIDDEN
Johannes Berg [Mon, 17 Sep 2007 05:29:26 +0000 (01:29 -0400)]
[MAC80211]: remove IEEE80211_CONF_SSID_HIDDEN

The IEEE80211_CONF_SSID_HIDDEN setting is not useful for any driver
we have and should be a per-interface setting anyway. Remove it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: remove key threshold stuff
Johannes Berg [Mon, 17 Sep 2007 05:29:25 +0000 (01:29 -0400)]
[MAC80211]: remove key threshold stuff

This patch removes the key threshold stuff from mac80211.
I have patches for later that add it as a per-key setting
to nl/cfg80211.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: allow drivers to indicate failed FCS/PLCP checksum
Johannes Berg [Mon, 17 Sep 2007 05:29:22 +0000 (01:29 -0400)]
[MAC80211]: allow drivers to indicate failed FCS/PLCP checksum

This patch allows drivers to indicate bad FCS/PLCP CRC to the stack and
have the stack drop packets like that except for monitor interfaces.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[LIBERTAS]: fix oops on the blackfin architecture
Vladimir Davydov [Fri, 7 Sep 2007 01:45:36 +0000 (21:45 -0400)]
[LIBERTAS]: fix oops on the blackfin architecture

Fixing memory alignment problems on the blackfin architecture (maybe on the
ARM also)

Signed-off-by: Vladimir Davydov <vladimir.davydov@promwad.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[LIBERTAS]: fix oops on the blackfin architecture
Vladimir Davydov [Fri, 7 Sep 2007 01:41:02 +0000 (21:41 -0400)]
[LIBERTAS]: fix oops on the blackfin architecture

Reserve two bytes to align pointer to the IP header.

Signed-off-by: Vladimir Davydov <vladimir.davydov@promwad.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[LIBERTAS]: fix interrupts in CF driver
Ryan Mallon [Fri, 7 Sep 2007 01:32:42 +0000 (21:32 -0400)]
[LIBERTAS]: fix interrupts in CF driver

The following patch fixes the tx transmit timeout problem, which is
caused by the interrupts being incorrectly check and masked. The patch
moves the interrupt masking code so that interrupts are enabled only
when the driver is registered and only disabled when the driver is
unregistered.

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[LIBERTAS]: set dnld_sent correctly for CF parts
Ryan Mallon [Fri, 7 Sep 2007 01:30:32 +0000 (21:30 -0400)]
[LIBERTAS]: set dnld_sent correctly for CF parts

Corrects a minor bug with priv->dnld_sent being set incorrectly in
if_cs_host_to_card.

Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43LEGACY]: Change the hardware radio enable logic and cleanup code
Larry Finger [Fri, 21 Sep 2007 01:10:07 +0000 (20:10 -0500)]
[B43LEGACY]: Change the hardware radio enable logic and cleanup code

This change cleans up the radio-related messages in several ways.

(1) The state of the rfkill switch is assumed to be on, rather than
    tested. Now, any user without such a switch will not see any
    messages. For devices with such a switch, a message will be
    logged only if the initial state is off, or if the switch is toggled.
(2) The routine for testing the switch state is no longer inline.
(3) The LED handling routine is simplified.
(4) The "Radio turned off" message that has confused some users has been
    changed to "Radio initialized".

This patch is patterned after a similar change to b43 by Michael Buesch.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43LEGACY]: Support for turning the radio off from software.
Larry Finger [Fri, 21 Sep 2007 02:11:02 +0000 (21:11 -0500)]
[B43LEGACY]: Support for turning the radio off from software.

This adds support for turning the radio off in software.
That's useful in environments, where you don't want the RF
to radiate any signals, but don't want to bring the interface down.

This patch is based on a similar patch of b43 by Michael Buesch.

Signed-off-by: Larry Finger <larry.finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43]: Support for turning the radio off from software.
Michael Buesch [Thu, 20 Sep 2007 20:14:18 +0000 (22:14 +0200)]
[B43]: Support for turning the radio off from software.

This adds support for turning the radio off in software.
That's useful in environments, where you don't want the RF
to radiate any signals, but don't want to bring the interface down.

Cc: Larry Finger <larry.finger@lwfinger.net>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43]: Remove the "radio hw enabled" message on startup.
Michael Buesch [Thu, 20 Sep 2007 20:12:58 +0000 (22:12 +0200)]
[B43]: Remove the "radio hw enabled" message on startup.

This message is useless. Only report state changes.

Cc: Larry Finger <larry.finger@lwfinger.net>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[MAC80211]: Add support for setting TX power and radio status
Michael Buesch [Thu, 20 Sep 2007 20:06:39 +0000 (22:06 +0200)]
[MAC80211]: Add support for setting TX power and radio status

This adds support for disabling the radio and setting the TXpower
through wext.
This also fixes the prism TXpower ioctl (It always overwrote the TXpower
value in ieee80211_hw_config())

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IEEE80211]: Fix softmac lockdep reports.
Johannes Berg [Thu, 4 Oct 2007 01:14:23 +0000 (18:14 -0700)]
[IEEE80211]: Fix softmac lockdep reports.

It seems I was actually able to hit this deadlock, on my quad G5 softmac
locks up more often than not. This fixes it by using an own workqueue
that can safely be flushed under RTNL.

Not sure if the patch is correct with the workqueue naming. And don't
think with the patch it doesn't continually lock up. It still does, just
doesn't invoke lockdep warnings all the time.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43]: Change loglevel of radio-enable message.
Michael Buesch [Wed, 19 Sep 2007 17:10:08 +0000 (19:10 +0200)]
[B43]: Change loglevel of radio-enable message.

Also cleanup the code a bit and remove the inline.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SSB]: Sparse fixes.
Michael Buesch [Wed, 19 Sep 2007 16:55:12 +0000 (18:55 +0200)]
[SSB]: Sparse fixes.

This fixes all Sparse warnings in SSB.
No semantics change.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[SSB]: Use ioreadX() and iowriteX() for PCI.
Michael Buesch [Wed, 19 Sep 2007 16:53:44 +0000 (18:53 +0200)]
[SSB]: Use ioreadX() and iowriteX() for PCI.

On a PCI bus use ioreadX() and iowriteX().
We map the I/O space with pci_iomap(), so we must use the correct
accessor functions, too.
readX() and writeX() are not guaranteed to accept the cookie returned
from pci_iomap() (though, it currently works on most architectures).

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43]: Don't lock irq_lock in debugfs txpower adjust
Michael Buesch [Wed, 19 Sep 2007 16:51:38 +0000 (18:51 +0200)]
[B43]: Don't lock irq_lock in debugfs txpower adjust

It's not required and the txpower adjustment must not be in atomic.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[P54PCI]: terminate pci table
Andrew Morton [Sun, 16 Sep 2007 22:08:37 +0000 (15:08 -0700)]
[P54PCI]: terminate pci table

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ZD1211RD]: add USB id for Telegent TG54USB WLAN adapter
Ulrich Kunitz [Sat, 1 Sep 2007 21:40:32 +0000 (22:40 +0100)]
[ZD1211RD]: add USB id for Telegent TG54USB WLAN adapter

Reinhard Speyerer reported at 2007-08-10 a new device.

Here are the information strings.

Product: Telegent TG54USB WLAN Adapter
USB ID: 129b:1666
Chip ID: zd1211 chip 129b:1666 v4330 high 00-01-36 RF2959_RF pa0 -----
FCC ID: N89-UW620Z

Signed-off-by: Ulrich Kunitz <kune@deine-taler.de>
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[BCM43XX]: Change radio hardware switch status printk from debug to regular
Larry Finger [Sun, 16 Sep 2007 22:26:49 +0000 (17:26 -0500)]
[BCM43XX]: Change radio hardware switch status printk from debug to regular

Some distros ship bcm43xx with debugging printout disabled. For those
BCM43xx devices with radio on/off switches, this makes it impossible
to know if the radio is on or off. This patch changes a pair of debug
printk's into ordinary printk's. It also changes the message that
prints when the radio is initialized to the off state as the old message
seems to confuse users.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[ZD1211RW]: Don't needlessly initialize variable to NULL in zd_chip
Jesper Juhl [Thu, 30 Aug 2007 22:30:31 +0000 (00:30 +0200)]
[ZD1211RW]: Don't needlessly initialize variable to NULL in zd_chip

No need to initialize to NULL when variable is never used before
it's assigned the return value of a kmalloc() call.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: note that NETIF_F_LLTX is deprecated
Christian Borntraeger [Wed, 26 Sep 2007 02:42:02 +0000 (19:42 -0700)]
[NET]: note that NETIF_F_LLTX is deprecated

Am Freitag, 21. September 2007 schrieb Herbert Xu:
> Please don't use LLTX in new drivers.  We're trying to get rid
> of it since it's
>
> 1) unnecessary;
> 2) causes problems with AF_PACKET seeing things twice.

I suggest to document that LLTX is deprecated.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[IWLWIFI]: remove per-file CFLAGS for IWL define
Zhu Yi [Wed, 26 Sep 2007 02:34:09 +0000 (19:34 -0700)]
[IWLWIFI]: remove per-file CFLAGS for IWL define

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET_SCHED]: explict hold dev tx lock
Jamal Hadi Salim [Wed, 26 Sep 2007 02:27:13 +0000 (19:27 -0700)]
[NET_SCHED]: explict hold dev tx lock

For N cpus, with full throttle traffic on all N CPUs, funneling traffic
to the same ethernet device, the devices queue lock is contended by all
N CPUs constantly. The TX lock is only contended by a max of 2 CPUS.
In the current mode of operation, after all the work of entering the
dequeue region, we may endup aborting the path if we are unable to get
the tx lock and go back to contend for the queue lock. As N goes up,
this gets worse.

The changes in this patch result in a small increase in performance
with a 4CPU (2xdual-core) with no irq binding. Both e1000 and tg3
showed similar behavior;

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NET]: Dynamically allocate the loopback device, part 2.
Daniel Lezcano [Wed, 26 Sep 2007 02:18:04 +0000 (19:18 -0700)]
[NET]: Dynamically allocate the loopback device, part 2.

Doing this makes loopback.c a better example of how to do a
simple network device, and it removes the special case
single static allocation of a struct net_device, hopefully
making maintenance easier.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Acked-By: Kirill Korotaev <dev@sw.ru>
Acked-by: Benjamin Thery <benjamin.thery@bull.net>
16 years ago[NET]: Dynamically allocate the loopback device, part 1.
Daniel Lezcano [Wed, 26 Sep 2007 02:16:28 +0000 (19:16 -0700)]
[NET]: Dynamically allocate the loopback device, part 1.

This patch replaces all occurences to the static variable
loopback_dev to a pointer loopback_dev. That provides the
mindless, trivial, uninteressting change part for the dynamic
allocation for the loopback.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Acked-By: Kirill Korotaev <dev@sw.ru>
Acked-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[NL80211]: add netlink interface to cfg80211
Johannes Berg [Thu, 20 Sep 2007 17:09:35 +0000 (13:09 -0400)]
[NL80211]: add netlink interface to cfg80211

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Minor coding style fixup.
David S. Miller [Thu, 20 Sep 2007 18:40:37 +0000 (11:40 -0700)]
[TCP]: Minor coding style fixup.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Avoid clearing sacktag hint in trivial situations
Ilpo Järvinen [Thu, 20 Sep 2007 18:37:19 +0000 (11:37 -0700)]
[TCP]: Avoid clearing sacktag hint in trivial situations

There's no reason to clear the sacktag skb hint when small part
of the rexmit queue changes. Account changes (if any) instead when
fragmenting/collapsing. RTO/FRTO do not touch SACKED_ACKED bits so
no need to discard SACK tag hint at all.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Enable SACK enhanced FRTO (RFC4138) by default
Ilpo Järvinen [Thu, 20 Sep 2007 18:36:37 +0000 (11:36 -0700)]
[TCP]: Enable SACK enhanced FRTO (RFC4138) by default

Most of the description that follows comes from my mail to
netdev (some editing done):

Main obstacle to FRTO use is its deployment as it has to be on
the sender side where as wireless link is often the receiver's
access link. Take initiative on behalf of unlucky receivers and
enable it by default in future Linux TCP senders. Also IETF
seems to interested in advancing FRTO from experimental [1].

How does FRTO help?
===================

FRTO detects spurious RTOs and avoids a number of unnecessary
retransmissions and a couple of other problems that can arise
due to incorrect guess made at RTO (i.e., that segments were
lost when they actually got delayed which is likely to occur
e.g. in wireless environments with link-layer retransmission).
Though FRTO cannot prevent the first (potentially unnecessary)
retransmission at RTO, I suspect that it won't cost that much
even if you have to pay for each bit (won't be that high
percentage out of all packets after all :-)). However, usually
when you have a spurious RTO, not only the first segment
unnecessarily retransmitted but the *whole window*. It goes like
this: all cumulative ACKs got delayed due to in-order delivery,
then TCP will actually send 1.5*original cwnd worth of data in
the RTO's slow-start when the delayed ACKs arrive (basically the
original cwnd worth of it unnecessarily). In case one is
interested in minimizing unnecessary retransmissions e.g. due to
cost, those rexmissions must never see daylight. Besides, in the
worst case the generated burst overloads the bottleneck buffers
which is likely to significantly delay the further progress of
the flow. In case of ll rexmissions, ACK compression often
occurs at the same time making the burst very "sharp edged" (in
that case TCP often loses most of the segments above high_seq
=> very bad performance too). When FRTO is enabled, those
unnecessary retransmissions are fully avoided except for the
first segment and the cwnd behavior after detected spurious RTO
is determined by the response (one can tune that by sysctl).

Basic version (non-SACK enhanced one), FRTO can fail to detect
spurious RTO as spurious and falls back to conservative
behavior. ACK lossage is much less significant than reordering,
usually the FRTO can detect spurious RTO if at least 2
cumulative ACKs from original window are preserved (excluding
the ACK that advances to high_seq). With SACK-enhanced version,
the detection is quite robust.

FRTO should remove the need to set a high lower bound for the
RTO estimator due to delay spikes that occur relatively common
in some environments (esp. in wireless/cellular ones).

[1] http://www1.ietf.org/mail-archive/web/tcpm/current/msg02862.html

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP] FRTO: Update sysctl documentation
Ilpo Järvinen [Thu, 20 Sep 2007 18:35:26 +0000 (11:35 -0700)]
[TCP] FRTO: Update sysctl documentation

Since the SACK enhanced FRTO was added, the code has been
under test numerous times so remove "experimental" claim
from the documentation. Also be a bit more verbose about
the usage.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP] FRTO: Improve interoperability with other undo_marker users
Ilpo Järvinen [Thu, 20 Sep 2007 18:34:38 +0000 (11:34 -0700)]
[TCP] FRTO: Improve interoperability with other undo_marker users

Basically this change enables it, previously other undo_marker
users were left with nothing. Reverse undo_marker logic
completely to get it set right in CA_Loss. On the other hand,
when spurious RTO is detected, clear it. Clearing might be too
heavy for some scenarios but seems safe enough starting point
for now and shouldn't have much effect except in majority of
cases (if in any).

By adding a new FLAG_ we avoid looping through write_queue when
RTO occurs.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Cleanup tcp_tso_acked and tcp_clean_rtx_queue
Ilpo Järvinen [Thu, 20 Sep 2007 18:33:43 +0000 (11:33 -0700)]
[TCP]: Cleanup tcp_tso_acked and tcp_clean_rtx_queue

Implements following cleanups:
- Comment re-placement (CodingStyle)
- tcp_tso_acked() local (wrapper-like) variable removal
  (readability)
- __-types removed (IMHO they make local variables jumpy looking
  and just was space)
- acked -> flag (naming conventions elsewhere in TCP code)
- linebreak adjustments (readability)
- nested if()s combined (reduced indentation)
- clarifying newlines added

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Move accounting from tso_acked to clean_rtx_queue
Ilpo Järvinen [Tue, 9 Oct 2007 08:28:45 +0000 (01:28 -0700)]
[TCP]: Move accounting from tso_acked to clean_rtx_queue

The accounting code is pretty much the same, so it's a shame
we do it in two places.

I'm not too sure if added fully_acked check in MTU probing is
really what we want perhaps the added end_seq could be used in
the after() comparison.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: clear_all_retrans_hints prefixed by tcp_
Ilpo Järvinen [Thu, 20 Sep 2007 18:30:48 +0000 (11:30 -0700)]
[TCP]: clear_all_retrans_hints prefixed by tcp_

In addition, fix its function comment spacing.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
16 years ago[TCP]: Make fackets_out accurate
Ilpo Järvinen [Tue, 9 Oct 2007 08:24:15 +0000 (01:24 -0700)]
[TCP]: Make fackets_out accurate

Substraction for fackets_out is unconditional when snd_una
advances, thus there's no need to do it inside the loop. Just
make sure correct bounds are honored.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[TCP]: Maintain highest_sack accurately to the highest skb
Ilpo Järvinen [Thu, 20 Sep 2007 18:28:05 +0000 (11:28 -0700)]
[TCP]: Maintain highest_sack accurately to the highest skb

In general, it should not be necessary to call tcp_fragment for
already SACKed skbs, but it's better to be safe than sorry. And
indeed, it can be called from sacktag when a DSACK arrives or
some ACK (with SACK) reordering occurs (sacktag could be made
to avoid the call in the latter case though I'm not sure if it's
worth of the trouble and added complexity to cover such marginal
case).

The collapse case has return for SACKED_ACKED case earlier, so
just WARN_ON if internal inconsistency is detected for some
reason.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago[B43]: Fix sparse warnings.
Michael Buesch [Thu, 20 Sep 2007 18:13:40 +0000 (11:13 -0700)]
[B43]: Fix sparse warnings.

The remaining warning in phy.c will be fixed later.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agocxgb3: trivial endianness annotations
Al Viro [Thu, 23 Aug 2007 07:04:12 +0000 (03:04 -0400)]
cxgb3: trivial endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago3c509: endianness
Al Viro [Thu, 23 Aug 2007 07:03:51 +0000 (03:03 -0400)]
3c509: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agodrivers/net/appletalk: endianness
Al Viro [Thu, 23 Aug 2007 07:03:13 +0000 (03:03 -0400)]
drivers/net/appletalk: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agotms380tr: trivial endianness annotations
Al Viro [Thu, 23 Aug 2007 06:57:00 +0000 (02:57 -0400)]
tms380tr: trivial endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agopppoe: endianness
Al Viro [Thu, 23 Aug 2007 06:55:33 +0000 (02:55 -0400)]
pppoe: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agovia-rhine: endianness
Al Viro [Thu, 23 Aug 2007 06:33:30 +0000 (02:33 -0400)]
via-rhine: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agor8169: endianness
Al Viro [Thu, 23 Aug 2007 06:30:16 +0000 (02:30 -0400)]
r8169: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agostarfire: trivial endianness annotations
Al Viro [Thu, 23 Aug 2007 06:29:45 +0000 (02:29 -0400)]
starfire: trivial endianness annotations

Note: we still have several fishy areas - mcast filter
and vlan handling.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agodrivers/net/irda: endianness, NULL noise
Al Viro [Thu, 23 Aug 2007 04:54:10 +0000 (00:54 -0400)]
drivers/net/irda: endianness, NULL noise

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoixgb: endianness
Al Viro [Thu, 23 Aug 2007 04:47:03 +0000 (00:47 -0400)]
ixgb: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agopcnet32: endianness
Al Viro [Thu, 23 Aug 2007 04:45:46 +0000 (00:45 -0400)]
pcnet32: endianness

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agotyphoon: trivial endianness annotations
Al Viro [Thu, 23 Aug 2007 04:44:39 +0000 (00:44 -0400)]
typhoon: trivial endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agotulip: endianness annotations
Al Viro [Thu, 23 Aug 2007 04:43:22 +0000 (00:43 -0400)]
tulip: endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoarcnet endianness annotations
Al Viro [Thu, 23 Aug 2007 02:59:11 +0000 (22:59 -0400)]
arcnet endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoamd8111e big-endian fix
Al Viro [Thu, 23 Aug 2007 01:42:28 +0000 (21:42 -0400)]
amd8111e big-endian fix

amd8111e_calc_coalesce() ends up with insane values of tx_data_rate since
->tx_bytes increments missing conversion from little- to host-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoamd8111e: trivial endianness annotations, NULL noise removal
Al Viro [Thu, 23 Aug 2007 01:37:46 +0000 (21:37 -0400)]
amd8111e: trivial endianness annotations, NULL noise removal

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago3c59x: trivial endianness annotations, NULL noise removal
Al Viro [Thu, 23 Aug 2007 01:34:46 +0000 (21:34 -0400)]
3c59x: trivial endianness annotations, NULL noise removal

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>