GitHub/moto-9609/android_kernel_motorola_exynos9610.git
13 years agoudp: Add lockless transmit path
Herbert Xu [Tue, 1 Mar 2011 02:36:48 +0000 (02:36 +0000)]
udp: Add lockless transmit path

The UDP transmit path has been running under the socket lock
for a long time because of the corking feature.  This means that
transmitting to the same socket in multiple threads does not
scale at all.

However, as most users don't actually use corking, the locking
can be removed in the common case.

This patch creates a lockless fast path where corking is not used.

Please note that this does create a slight inaccuracy in the
enforcement of socket send buffer limits.  In particular, we
may exceed the socket limit by up to (number of CPUs) * (packet
size) because of the way the limit is computed.

As the primary purpose of socket buffers is to indicate congestion,
this should not be a great problem for now.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoudp: Switch to ip_finish_skb
Herbert Xu [Tue, 1 Mar 2011 02:36:48 +0000 (02:36 +0000)]
udp: Switch to ip_finish_skb

This patch converts UDP to use the new ip_finish_skb API.  This
would then allows us to more easily use ip_make_skb which allows
UDP to run without a socket lock.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoinet: Add ip_make_skb and ip_finish_skb
Herbert Xu [Tue, 1 Mar 2011 02:36:47 +0000 (02:36 +0000)]
inet: Add ip_make_skb and ip_finish_skb

This patch adds the helper ip_make_skb which is like ip_append_data
and ip_push_pending_frames all rolled into one, except that it does
not send the skb produced.  The sending part is carried out by
ip_send_skb, which the transport protocol can call after it has
tweaked the skb.

It is meant to be called in cases where corking is not used should
have a one-to-one correspondence to sendmsg.

This patch also adds the helper ip_finish_skb which is meant to
be replace ip_push_pending_frames when corking is required.
Previously the protocol stack would peek at the socket write
queue and add its header to the first packet.  With ip_finish_skb,
the protocol stack can directly operate on the final skb instead,
just like the non-corking case with ip_make_skb.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoinet: Remove explicit write references to sk/inet in ip_append_data
Herbert Xu [Tue, 1 Mar 2011 02:36:47 +0000 (02:36 +0000)]
inet: Remove explicit write references to sk/inet in ip_append_data

In order to allow simultaneous calls to ip_append_data on the same
socket, it must not modify any shared state in sk or inet (other
than those that are designed to allow that such as atomic counters).

This patch abstracts out write references to sk and inet_sk in
ip_append_data and its friends so that we may use the underlying
code in parallel.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoinet: Remove unused sk_sndmsg_* from UFO
Herbert Xu [Tue, 1 Mar 2011 02:36:47 +0000 (02:36 +0000)]
inet: Remove unused sk_sndmsg_* from UFO

UFO doesn't really use the sk_sndmsg_* parameters so touching
them is pointless.  It can't use them anyway since the whole
point of UFO is to use the original pages without copying.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMerge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc...
David S. Miller [Tue, 1 Mar 2011 20:24:04 +0000 (12:24 -0800)]
Merge branch 'for-davem' of git://git./linux/kernel/git/bwh/sfc-next-2.6

13 years agosfc: Bump version to 3.1
Ben Hutchings [Fri, 25 Feb 2011 00:04:42 +0000 (00:04 +0000)]
sfc: Bump version to 3.1

All features originally planned for version 3.1 (and some that
weren't) have been implemented.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Remove configurable FIFO thresholds for pause frame generation
Ben Hutchings [Thu, 24 Feb 2011 19:30:41 +0000 (19:30 +0000)]
sfc: Remove configurable FIFO thresholds for pause frame generation

In Falcon we can configure the fill levels of the RX data FIFO which
trigger the generation of pause frames (if enabled), and we have
module parameters for this.

Siena does not allow the levels to be configured (or, if it does, this
is done by the MC firmware and is not configurable by drivers).

So far as I can tell, the module parameters are not used by our
internal scripts and have not been documented (with the exception of
the short parameter descriptions).  Therefore, remove them and always
initialise Falcon with the default values.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Expose TX push and TSO counters through ethtool statistics
Ben Hutchings [Fri, 18 Feb 2011 19:14:13 +0000 (19:14 +0000)]
sfc: Expose TX push and TSO counters through ethtool statistics

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Update copyright dates
Ben Hutchings [Fri, 25 Feb 2011 00:01:34 +0000 (00:01 +0000)]
sfc: Update copyright dates

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Do not read STAT1.FAULT in efx_mdio_check_mmd()
Ben Hutchings [Thu, 24 Feb 2011 23:59:15 +0000 (23:59 +0000)]
sfc: Do not read STAT1.FAULT in efx_mdio_check_mmd()

This field does not exist in all MMDs we want to check, and all
callers allow it to be set (fault_fatal = 0).

Remove the loopback condition, as STAT2.DEVPRST should be valid
regardless of any fault.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Read MC firmware version when requested through ethtool
Ben Hutchings [Thu, 24 Feb 2011 23:57:47 +0000 (23:57 +0000)]
sfc: Read MC firmware version when requested through ethtool

We currently make no use of siena_nic_data::fw_{version,build} except
to format the firmware version for ethtool_get_drvinfo().  Since we
only read the version at start of day, this information is incorrect
after an MC firmware update.  Remove the cached version information
and read it via MCDI whenever it is requested.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Reduce size of efx_rx_buffer further by removing data member
Steve Hodgson [Thu, 24 Feb 2011 23:45:16 +0000 (23:45 +0000)]
sfc: Reduce size of efx_rx_buffer further by removing data member

Instead calculate the KVA of receive data. It's not like it's a hard sum.

[bwh: Fixed to work with GRO.]
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agosfc: Reduce size of efx_rx_buffer by unionising skb and page
Steve Hodgson [Thu, 24 Feb 2011 23:36:01 +0000 (23:36 +0000)]
sfc: Reduce size of efx_rx_buffer by unionising skb and page

[bwh: Forward-ported to net-next-2.6.]
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
13 years agobonding: use the correct size for _simple_hash()
Amerigo Wang [Sun, 27 Feb 2011 23:34:28 +0000 (23:34 +0000)]
bonding: use the correct size for _simple_hash()

Clearly it should be the size of ->ip_dst here.
Although this is harmless, but it still reads odd.

Signed-off-by: WANG Cong <amwang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoenic: Flush driver cache of registered addr lists during port profile disassociate
Roopa Prabhu [Wed, 23 Feb 2011 15:16:01 +0000 (15:16 +0000)]
enic: Flush driver cache of registered addr lists during port profile disassociate

During a port profile disassociate all address registrations for the interface
are blown away from the adapter. This patch resets the driver cache of
registered address lists to zero after a port profile disassociate.

Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: David Wang <dwang2@cisco.com>
Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoDM9000: Allow randomised ethernet address
Ben Dooks [Thu, 24 Feb 2011 03:17:12 +0000 (03:17 +0000)]
DM9000: Allow randomised ethernet address

Allow randomised ethernet address if the device does not have a valid
EEPROM or pre-set MAC address.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoqla3xxx: add missing __iomem annotation
stephen hemminger [Wed, 23 Feb 2011 07:54:27 +0000 (07:54 +0000)]
qla3xxx: add missing __iomem annotation

Add necessary annotations about pointer to io memory space
that is checked by sparse.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobonding: fix sparse warning
stephen hemminger [Wed, 23 Feb 2011 07:40:33 +0000 (07:40 +0000)]
bonding: fix sparse warning

Fix use of zero where NULL expected. And wrap long line.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet: TX timestamps for IPv6 UDP packets
Anders Berggren [Mon, 28 Feb 2011 20:32:11 +0000 (12:32 -0800)]
net: TX timestamps for IPv6 UDP packets

Enabling TX timestamps (SO_TIMESTAMPING) for IPv6 UDP packets, in
the same fashion as for IPv4. Necessary in order for NICs such as
Intel 82580 to timestamp IPv6 packets.

Signed-off-by: Anders Berggren <anders@halon.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosis900: use pci_dev->revision
Sergei Shtylyov [Mon, 28 Feb 2011 20:29:34 +0000 (12:29 -0800)]
sis900: use pci_dev->revision

This driver uses PCI_CLASS_REVISION instead of PCI_REVISION_ID, so it wasn't
converted by commit 44c10138fd4bbc4b6d6bff0873c24902f2a9da65 (PCI: Change all
drivers to use pci_device->revision).

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agollc: avoid skb_clone() if there is only one handler
Changli Gao [Tue, 22 Feb 2011 01:55:18 +0000 (01:55 +0000)]
llc: avoid skb_clone() if there is only one handler

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobnx2x: use dcb_setapp to manage negotiated application tlvs
Shmulik Ravid [Mon, 28 Feb 2011 20:19:55 +0000 (12:19 -0800)]
bnx2x: use dcb_setapp to manage negotiated application tlvs

With this patch the bnx2x uses the generic dcbnl application tlv list
instead of implementing its own get-app handler. When the driver is
alerted to a change in the DCB negotiated parameters, it calls
dcb_setapp to update the dcbnl application tlvs list making it available
to user mode applications and registered notifiers.

Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet: use pci_dev->revision, again
Sergei Shtylyov [Mon, 28 Feb 2011 19:57:33 +0000 (11:57 -0800)]
net: use pci_dev->revision, again

Several more network drivers that read the device's revision ID
from the PCI configuration register were merged after the commit
44c10138fd4bbc4b6d6bff0873c24902f2a9da65 (PCI: Change all drivers
to use pci_device->revision), so it's time to do another pass of
conversion to using the 'revision' field of 'struct pci_dev'...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Acked-by: "John W. Linville" <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet: Forgot to commit net/core/dev.c part of Jiri's ->rx_handler patch.
David S. Miller [Mon, 28 Feb 2011 18:48:59 +0000 (10:48 -0800)]
net: Forgot to commit net/core/dev.c part of Jiri's ->rx_handler patch.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet: convert bonding to use rx_handler
Jiri Pirko [Wed, 23 Feb 2011 09:05:42 +0000 (09:05 +0000)]
net: convert bonding to use rx_handler

This patch converts bonding to use rx_handler. Results in cleaner
__netif_receive_skb() with much less exceptions needed. Also
bond-specific work is moved into bond code.

Did performance test using pktgen and counting incoming packets by
iptables. No regression noted.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Reviewed-by: Nicolas de Pesloüan <nicolas.2p.debian@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Pass const xfrm_mark to xfrm_mark_put().
David S. Miller [Mon, 28 Feb 2011 07:20:19 +0000 (23:20 -0800)]
xfrm: Pass const xfrm_mark to xfrm_mark_put().

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Pass const xfrm_address_t objects to xfrm_state_lookup* and xfrm_find_acq.
David S. Miller [Mon, 28 Feb 2011 07:17:24 +0000 (23:17 -0800)]
xfrm: Pass const xfrm_address_t objects to xfrm_state_lookup* and xfrm_find_acq.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Pass const arg to xfrm_alg_len and xfrm_alg_auth_len.
David S. Miller [Mon, 28 Feb 2011 07:07:02 +0000 (23:07 -0800)]
xfrm: Pass const arg to xfrm_alg_len and xfrm_alg_auth_len.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Pass name as const to xfrm_*_get_byname().
David S. Miller [Mon, 28 Feb 2011 07:04:45 +0000 (23:04 -0800)]
xfrm: Pass name as const to xfrm_*_get_byname().

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobond: service netpoll arp queue on master device
Amerigo Wang [Thu, 17 Feb 2011 23:43:34 +0000 (23:43 +0000)]
bond: service netpoll arp queue on master device

Neil pointed out that we can't send ARP reply on behalf of slaves,
we need to move the arp queue to their bond device.

Signed-off-by: WANG Cong <amwang@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetpoll: remove IFF_IN_NETPOLL flag
Amerigo Wang [Thu, 17 Feb 2011 23:43:33 +0000 (23:43 +0000)]
netpoll: remove IFF_IN_NETPOLL flag

V4: rebase to net-next-2.6

This patch removes the flag IFF_IN_NETPOLL, we don't need it any more since
we have netpoll_tx_running() now.

Signed-off-by: WANG Cong <amwang@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobonding: sync netpoll code with bridge
Amerigo Wang [Thu, 17 Feb 2011 23:43:32 +0000 (23:43 +0000)]
bonding: sync netpoll code with bridge

V4: rebase to net-next-2.6
V3: remove an useless #ifdef.

This patch unifies the netpoll code in bonding with netpoll code in bridge,
thanks to Herbert that code is much cleaner now.

Signed-off-by: WANG Cong <amwang@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoqeth: remove needless IPA-commands in offline
Ursula Braun [Sun, 27 Feb 2011 06:41:36 +0000 (22:41 -0800)]
qeth: remove needless IPA-commands in offline

If a qeth device is set offline, data and control subchannels are
cleared, which means removal of all IP Assist Primitive settings
implicitly. There is no need to delete those settings explicitly.
This patch removes all IP Assist invocations from offline.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agopfkey: Use const where possible.
David S. Miller [Sat, 26 Feb 2011 02:07:06 +0000 (18:07 -0800)]
pfkey: Use const where possible.

This actually pointed out a (seemingly known) bug where we mangle the
pfkey header in a potentially shared SKB, which is fixed here.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosched: protocol only needed when CONFIG_NET_CLS_ACT is enabled
Hagen Paul Pfeifer [Fri, 25 Feb 2011 05:45:21 +0000 (05:45 +0000)]
sched: protocol only needed when CONFIG_NET_CLS_ACT is enabled

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoipv6: ignore rtnl_unicast() return code
Hagen Paul Pfeifer [Fri, 25 Feb 2011 05:45:20 +0000 (05:45 +0000)]
ipv6: ignore rtnl_unicast() return code

rtnl_unicast() return value is not of interest, we can silently ignore
it, save some instructions and four byte on the stack.

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoipv6: variable next is never used in this function
Hagen Paul Pfeifer [Fri, 25 Feb 2011 05:45:19 +0000 (05:45 +0000)]
ipv6: variable next is never used in this function

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoipv6: hash is calculated but not used afterwards
Hagen Paul Pfeifer [Fri, 25 Feb 2011 05:45:18 +0000 (05:45 +0000)]
ipv6: hash is calculated but not used afterwards

hash is declared and assigned but not used anymore. ipv6_addr_hash()
exhibit no side-effects.

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoipv6: totlen is declared and assigned but not used
Hagen Paul Pfeifer [Fri, 25 Feb 2011 05:45:17 +0000 (05:45 +0000)]
ipv6: totlen is declared and assigned but not used

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agodccp: newdp is declared/assigned but never be used
Hagen Paul Pfeifer [Fri, 25 Feb 2011 05:45:16 +0000 (05:45 +0000)]
dccp: newdp is declared/assigned but never be used

Declaration and assignment of newdp is removed. Usage of dccp_sk()
exhibit no side effects.

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agophonet: Protect pipe_do_remove() with appropriate ifdefs.
David S. Miller [Fri, 25 Feb 2011 19:23:22 +0000 (11:23 -0800)]
phonet: Protect pipe_do_remove() with appropriate ifdefs.

It is only used when CONFIG_PHONET_PIPECTRLR is not set.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoPhonet: fix flawed "SYN/ACK" logic
Rémi Denis-Courmont [Thu, 24 Feb 2011 23:15:01 +0000 (23:15 +0000)]
Phonet: fix flawed "SYN/ACK" logic

* Do not fail if the peer supports more or less than 3 algorithms.
 * Ignore unknown congestion control algorithms instead of failing.
 * Simplify congestion algorithm negotiation (largest is best).
 * Do not use a static buffer.
 * Fix off-by-two read overflow.
 * Avoid extra memory copy (in addition to skb_copy_bits()).

The previous code really made no sense.

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoPhonet: don't bother with transaction IDs (especially for indications)
Rémi Denis-Courmont [Thu, 24 Feb 2011 23:15:00 +0000 (23:15 +0000)]
Phonet: don't bother with transaction IDs (especially for indications)

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoPhonet: remove redumdant pep->pipe_state
Rémi Denis-Courmont [Thu, 24 Feb 2011 23:14:59 +0000 (23:14 +0000)]
Phonet: remove redumdant pep->pipe_state

sk->sk_state already contains the pipe state.

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoPhonet: use socket destination in pipe protocol
Rémi Denis-Courmont [Thu, 24 Feb 2011 23:14:58 +0000 (23:14 +0000)]
Phonet: use socket destination in pipe protocol

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoPhonet: implement per-socket destination/peer address
Rémi Denis-Courmont [Thu, 24 Feb 2011 23:14:57 +0000 (23:14 +0000)]
Phonet: implement per-socket destination/peer address

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoPhonet: allow multiple listen() and fix small race condition
Rémi Denis-Courmont [Thu, 24 Feb 2011 23:14:56 +0000 (23:14 +0000)]
Phonet: allow multiple listen() and fix small race condition

Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agortlwifi: Need to include vmalloc.h
David S. Miller [Fri, 25 Feb 2011 06:50:30 +0000 (22:50 -0800)]
rtlwifi: Need to include vmalloc.h

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosch_netem: Need to include vmalloc.h
David S. Miller [Fri, 25 Feb 2011 06:48:13 +0000 (22:48 -0800)]
sch_netem: Need to include vmalloc.h

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMerge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
David S. Miller [Fri, 25 Feb 2011 06:35:12 +0000 (22:35 -0800)]
Merge branch 'for-davem' of git://git./linux/kernel/git/linville/wireless-next-2.6

13 years agosch_choke: add choke_skb_cb
Eric Dumazet [Thu, 24 Feb 2011 17:45:41 +0000 (17:45 +0000)]
sch_choke: add choke_skb_cb

Better document choke skb->cb[] use, like we did in netem and sfb

This adds a compile time check to make sure we dont exhaust skb->cb[]
space.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Stephen Hemminger <shemminger@vyatta.com>
CC: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetem: update version and cleanup
stephen hemminger [Wed, 23 Feb 2011 13:04:22 +0000 (13:04 +0000)]
netem: update version and cleanup

Get rid of debug message that are not useful, and enable
the log messages in case of error.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetem: revised correlated loss generator
stephen hemminger [Wed, 23 Feb 2011 13:04:21 +0000 (13:04 +0000)]
netem: revised correlated loss generator

This is a patch originated with Stefano Salsano and Fabio Ludovici.
It provides several alternative loss models for use with netem.
This patch adds two state machine based loss models.

See: http://netgroup.uniroma2.it/twiki/bin/view.cgi/Main/NetemCLG

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoRevert "sch_netem: Remove classful functionality"
stephen hemminger [Wed, 23 Feb 2011 13:04:20 +0000 (13:04 +0000)]
Revert "sch_netem: Remove classful functionality"

Many users have wanted the old functionality that was lost
to be able to use pfifo as inner qdisc for netem. The reason that
netem could not be classful with the older API was because of the
limitations of the old dequeue/requeue interface; now that qdisc API has
a peek function, there is no longer a problem with using any
inner qdisc's.

This reverts commit 02201464119334690fe209849843881b8e9cfa9f.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetem: define NETEM_DIST_MAX
stephen hemminger [Wed, 23 Feb 2011 13:04:19 +0000 (13:04 +0000)]
netem: define NETEM_DIST_MAX

Rather than magic constant in code, expose the maximum size of
packet distribution table in API. In iproute2, q_netem defines
MAX_DIST as 16K already.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetem: use vmalloc for distribution table
stephen hemminger [Wed, 23 Feb 2011 13:04:18 +0000 (13:04 +0000)]
netem: use vmalloc for distribution table

The netem probability table can be large (up to 64K bytes)
which may be too large to allocate in one contiguous chunk.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonetem: cleanup dump code
stephen hemminger [Wed, 23 Feb 2011 13:04:17 +0000 (13:04 +0000)]
netem: cleanup dump code

Use nla_put_nested to update netlink attribute value.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/jkirsher/net...
David S. Miller [Fri, 25 Feb 2011 00:29:00 +0000 (16:29 -0800)]
Merge branch 'master' of /linux/kernel/git/jkirsher/net-next-2.6

13 years agoipv4: Rearrange how ip_route_newports() gets port keys.
David S. Miller [Thu, 24 Feb 2011 21:38:12 +0000 (13:38 -0800)]
ipv4: Rearrange how ip_route_newports() gets port keys.

ip_route_newports() is the only place in the entire kernel that
cares about the port members in the routing cache entry's lookup
flow key.

Therefore the only reason we store an entire flow inside of the
struct rtentry is for this one special case.

Rewrite ip_route_newports() such that:

1) The caller passes in the original port values, so we don't need
   to use the rth->fl.fl_ip_{s,d}port values to remember them.

2) The lookup flow is constructed by hand instead of being copied
   from the routing cache entry's flow.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoigb: update version string
Carolyn Wyborny [Wed, 16 Feb 2011 05:09:46 +0000 (05:09 +0000)]
igb: update version string

This will synchronize the version with the out of tree driver which
shares its functionality.

Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: Update Intel copyright notice for driver source.
Carolyn Wyborny [Thu, 17 Feb 2011 09:02:30 +0000 (09:02 +0000)]
igb: Update Intel copyright notice for driver source.

This fix updates copyright information to include current year 2011.

Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: add support for VF Transmit rate limit using iproute2
Lior Levy [Tue, 8 Feb 2011 02:28:46 +0000 (02:28 +0000)]
igb: add support for VF Transmit rate limit using iproute2

Implemented igb_ndo_set_vf_bw function which is being used
by iproute2 tool. In addition, updated igb_ndo_get_vf_config function
to show the actual rate limit to the user.

The rate limitation can be configured only when the link is up.
The rate limit value can be ranged between 0 and actual
link speed measured in Mbps. A value of '0' disables the rate limit for
this specific VF.

iproute2 usage will be 'ip link set ethX vf Y rate Z'.
After the command is made, the rate will be changed instantly.
To view the current rate limit, use 'ip link show ethX'.

The rates will be zeroed only upon driver reload or a link speed change.

This feature is being supported only by 82576 device.

Signed-off-by: Lior Levy <lior.levy@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigbvf: remove Tx hang detection
Lior Levy [Fri, 11 Feb 2011 03:38:04 +0000 (03:38 +0000)]
igbvf: remove Tx hang detection

Removed Tx hang detection mechanism from igbvf.
This mechanism has no affect and can cause false alarm message in some cases.

Signed-off-by: Lior Levy <lior.levy@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbevf: Fix name of function in function header comment
Greg Rose [Thu, 3 Feb 2011 06:54:13 +0000 (06:54 +0000)]
ixgbevf: Fix name of function in function header comment

Some of the function names in function header comments did not match
actual name of the function.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbevf: Enable jumbo frame support for X540 VF
Greg Rose [Wed, 26 Jan 2011 01:06:12 +0000 (01:06 +0000)]
ixgbevf: Enable jumbo frame support for X540 VF

The X540 controller allows jumbo frame setup on a per VF basis.  Enable
use of jumbo frames when the VF device belongs to the X540 controller.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Enable Jumbo Frames on the X540 10Gigabit Controller
Greg Rose [Wed, 26 Jan 2011 01:06:07 +0000 (01:06 +0000)]
ixgbe: Enable Jumbo Frames on the X540 10Gigabit Controller

The X540 controller supports jumbo frames in SR-IOV mode.  Allow
configuration of jumbo frames either in the PF driver or on behalf of
a VF.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoxfrm: Const'ify xfrm_address_t args to xfrm_state_find.
David S. Miller [Thu, 24 Feb 2011 06:55:45 +0000 (01:55 -0500)]
xfrm: Const'ify xfrm_address_t args to xfrm_state_find.

This required a const'ification in xfrm_init_tempstate() too.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Remove unused 'saddr' and 'daddr' args to xfrm_state_look_at.
David S. Miller [Thu, 24 Feb 2011 06:53:13 +0000 (01:53 -0500)]
xfrm: Remove unused 'saddr' and 'daddr' args to xfrm_state_look_at.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify xfrm_address_t args to __xfrm_state_lookup{,_byaddr}.
David S. Miller [Thu, 24 Feb 2011 06:51:36 +0000 (01:51 -0500)]
xfrm: Const'ify xfrm_address_t args to __xfrm_state_lookup{,_byaddr}.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify xfrm_tmpl arg to xfrm_init_tempstate.
David S. Miller [Thu, 24 Feb 2011 06:50:12 +0000 (01:50 -0500)]
xfrm: Const'ify xfrm_tmpl arg to xfrm_init_tempstate.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify xfrm_address_t args to xfrm_*_hash.
David S. Miller [Thu, 24 Feb 2011 06:47:16 +0000 (01:47 -0500)]
xfrm: Const'ify xfrm_address_t args to xfrm_*_hash.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify sec_path arg to secpath_has_nontransport.
David S. Miller [Thu, 24 Feb 2011 06:44:12 +0000 (01:44 -0500)]
xfrm: Const'ify sec_path arg to secpath_has_nontransport.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify ptr args to xfrm_policy_ok.
David S. Miller [Thu, 24 Feb 2011 06:43:33 +0000 (01:43 -0500)]
xfrm: Const'ify ptr args to xfrm_policy_ok.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify ptr args to xfrm_state_ok.
David S. Miller [Thu, 24 Feb 2011 06:43:01 +0000 (01:43 -0500)]
xfrm: Const'ify ptr args to xfrm_state_ok.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify ptr args to xfrm_state_*_check and xfrm_state_kern.
David S. Miller [Thu, 24 Feb 2011 06:42:28 +0000 (01:42 -0500)]
xfrm: Const'ify ptr args to xfrm_state_*_check and xfrm_state_kern.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify xfrm_tmpl and xfrm_state args to xfrm_state_addr_cmp.
David S. Miller [Thu, 24 Feb 2011 06:35:16 +0000 (01:35 -0500)]
xfrm: Const'ify xfrm_tmpl and xfrm_state args to xfrm_state_addr_cmp.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify selector arg to xfrm_dst_update_parent.
David S. Miller [Thu, 24 Feb 2011 06:32:54 +0000 (01:32 -0500)]
xfrm: Const'ify selector arg to xfrm_dst_update_parent.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify policy arg to clone_policy.
David S. Miller [Thu, 24 Feb 2011 06:25:41 +0000 (01:25 -0500)]
xfrm: Const'ify policy arg to clone_policy.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify policy arg to xp_net.
David S. Miller [Thu, 24 Feb 2011 06:25:19 +0000 (01:25 -0500)]
xfrm: Const'ify policy arg to xp_net.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify policy arg and local selector in xfrm_policy_match.
David S. Miller [Thu, 24 Feb 2011 06:23:30 +0000 (01:23 -0500)]
xfrm: Const'ify policy arg and local selector in xfrm_policy_match.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify local xfrm_address_t pointers in xfrm_policy_lookup_bytype.
David S. Miller [Thu, 24 Feb 2011 06:22:48 +0000 (01:22 -0500)]
xfrm: Const'ify local xfrm_address_t pointers in xfrm_policy_lookup_bytype.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify selector args in xfrm_migrate paths.
David S. Miller [Thu, 24 Feb 2011 05:35:06 +0000 (00:35 -0500)]
xfrm: Const'ify selector args in xfrm_migrate paths.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify address args to hash helpers.
David S. Miller [Thu, 24 Feb 2011 05:33:19 +0000 (00:33 -0500)]
xfrm: Const'ify address args to hash helpers.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify pointer args to km_migrate() and implementations.
David S. Miller [Thu, 24 Feb 2011 05:28:01 +0000 (00:28 -0500)]
xfrm: Const'ify pointer args to km_migrate() and implementations.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify pointer args to migrate_tmpl_match and xfrm_migrate_check
David S. Miller [Thu, 24 Feb 2011 05:21:08 +0000 (00:21 -0500)]
xfrm: Const'ify pointer args to migrate_tmpl_match and xfrm_migrate_check

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify address argument to xfrm_addr_any()
David S. Miller [Thu, 24 Feb 2011 05:19:59 +0000 (00:19 -0500)]
xfrm: Const'ify address argument to xfrm_addr_any()

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify address arguments to xfrm_addr_cmp()
David S. Miller [Thu, 24 Feb 2011 05:19:13 +0000 (00:19 -0500)]
xfrm: Const'ify address arguments to xfrm_addr_cmp()

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify address arguments to __xfrm_dst_lookup()
David S. Miller [Thu, 24 Feb 2011 05:16:53 +0000 (00:16 -0500)]
xfrm: Const'ify address arguments to __xfrm_dst_lookup()

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify address arguments to ->dst_lookup()
David S. Miller [Thu, 24 Feb 2011 05:14:45 +0000 (00:14 -0500)]
xfrm: Const'ify address arguments to ->dst_lookup()

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify selector argument to xfrm_selector_match()
David S. Miller [Thu, 24 Feb 2011 05:12:25 +0000 (00:12 -0500)]
xfrm: Const'ify selector argument to xfrm_selector_match()

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Const'ify tmpl and address arguments to ->init_temprop()
David S. Miller [Thu, 24 Feb 2011 05:07:20 +0000 (00:07 -0500)]
xfrm: Const'ify tmpl and address arguments to ->init_temprop()

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoxfrm: Pass km_event pointers around as const when possible.
David S. Miller [Thu, 24 Feb 2011 05:02:38 +0000 (00:02 -0500)]
xfrm: Pass km_event pointers around as const when possible.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMerge branch 'tipc-Feb23-2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg...
David S. Miller [Thu, 24 Feb 2011 04:47:56 +0000 (20:47 -0800)]
Merge branch 'tipc-Feb23-2011' of git://git./linux/kernel/git/paulg/net-next-2.6

13 years agotipc: Avoid reliable broadcast preparation for NACK messages
Allan Stephens [Tue, 25 Jan 2011 21:12:39 +0000 (16:12 -0500)]
tipc: Avoid reliable broadcast preparation for NACK messages

Enhance TIPC to skip unnecessary (and, in some cases, redundant)
preparation work when sending a broadcast link NACK message, since this
preparation is only required for broadcast messages that are sent in a
reliable manner. This change also fixes a bug that caused NACK messages
to be improperly counted as "TX packets" in TIPC's broadcast link
statistics.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Remove unused message header field for requested number of links
Allan Stephens [Tue, 25 Jan 2011 19:39:59 +0000 (14:39 -0500)]
tipc: Remove unused message header field for requested number of links

Eliminates support for the "number of requested links" field in a neighbor
discovery message. This field was never used and has been removed from
the TIPC 2.0 protocol specification.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Remove support for per-connection message sequence numbering
Allan Stephens [Tue, 25 Jan 2011 18:33:31 +0000 (13:33 -0500)]
tipc: Remove support for per-connection message sequence numbering

Eliminates TIPC's prototype support for message sequence numbering
on routable connections (i.e. connections requiring more than one hop).
This capability isn't currently used, and can be removed since TIPC
only supports systems in which all inter-node communication can be
achieved in a single hop.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Add in missing lock during link initialization
Allan Stephens [Mon, 24 Jan 2011 21:22:43 +0000 (16:22 -0500)]
tipc: Add in missing lock during link initialization

Ensure that the routine that starts up processing on a newly created
link endpoint takes the spinlock of the node object that owns the link,
to prevent possible conflicts with processing involving other links
owned by that node object.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Fix port counter handling to correct congestion control
Allan Stephens [Mon, 24 Jan 2011 20:02:14 +0000 (15:02 -0500)]
tipc: Fix port counter handling to correct congestion control

Modifies TIPC's congestion control between a connected port and its
peer so that it works as documented. The following changes have been
made:

1) The counter of the number of messages sent by a port now starts
   at zero, rather than one. This prevents the port from reporting port
   congestion one message earlier than it was supposed to.

2) The counter of the number of messages sent by a port is now
   incremented only if a non-empty message is sent successfully.
   This prevents the port from becoming permanently congested if
   too many send attempts are unsuccessful because of congestion
   (or other reasons). It also removes the risk that empty hand-
   shaking messages used during connection setup might cause the
   port to report congestion earlier than it was supposed to.

3) The counter of the number of unacknowledged messages received by
   a port controlled by an internal TIPC service is now incremented
   only if the message is non-empty, in order to be consistent with
   the aforementioned changes.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Minor optimization to topology service connection establishment
Allan Stephens [Fri, 21 Jan 2011 14:45:33 +0000 (09:45 -0500)]
tipc: Minor optimization to topology service connection establishment

Eliminates a local iovec structure containing no data, which was
previously used during the establishment of a topology service connection,
since the same effect can be achieved by passing in a NULL pointer and
an iovec length of zero.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>