20 Jul, 2012
11 commits
-
Update the references to bridge utilities and web pages
to current locationsSigned-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
commit 9ac32e1b firmware: convert e100 driver to request_firmware()
did a straight conversion of the in-driver ucode to external
files. This introduced the possibility of the driver failing
to enable an interface due to missing ucode. There was no
evaluation of the importance of the ucode at the time.Based on comments in earlier versions of this driver, and in
the source code for the FreeBSD fxp driver, we can assume that
the ucode implements the "CPU Cycle Saver" feature on supported
adapters. Although generally wanted, this is an optional
feature. The ucode source is not available, preventing it from
being included in free distributions. This creates unnecessary
problems for the end users. Doing a network install based on a
free distribution installer requires the user to download and
insert the ucode into the installer.Making the ucode optional when possible improves the user
experience and driver usability.The ucode for some adapters include a bugfix, making it
essential. We continue to fail for these adapters unless the
ucode is available.Signed-off-by: Bjørn Mork
Signed-off-by: David S. Miller -
Since commit 16626b0cc3d5afe250850f96759b241f8a403b52 the asix
driver depends on the phylib. Select phylib when the asix driver is
selected.Reported-by: Fengguang Wu
Cc: kernel-janitors@vger.kernel.org
Signed-off-by: Christian Riesch
Tested-by: Fengguang Wu
Signed-off-by: David S. Miller -
This patch adds the asix_set_eeprom() function to provide support for
programming the configuration EEPROM via ethtool.Signed-off-by: Christian Riesch
Signed-off-by: David S. Miller -
The current code for reading the EEPROM via ethtool in the asix
driver has a few issues. It cannot handle odd length values
(accesses must be aligned at 16 bit boundaries) and interprets the
offset provided by ethtool as 16 bit word offset instead as byte offset.The new code for asix_get_eeprom() introduced by this patch is
modeled after the code in
drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c
and provides read access to the entire EEPROM with arbitrary
offsets and lengths.Signed-off-by: Christian Riesch
Signed-off-by: David S. Miller -
Because there are multiple variants to the stmmac/dwmac driver, the
dts bindings should be updated to include version of the IP used.Signed-off-by: Dinh Nguyen
Acked-by: Stefan Roese
Signed-off-by: David S. Miller -
cxgb3 interface has a bad performance when VLAN is set. On my current
setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
(8 instances, 4k message).
With this patch, I am able to reach 9.5 Gbps.Signed-off-by: Breno Leitao
Signed-off-by: David S. Miller -
The Ethernet II wrapper is only used by IPX protocol, may have once
been used by Appletalk but not currently. Therefore it makes sense to
move it to the IPX dust bin and drop the exports.Build tested only.
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
include/net/dst_ops.h:28:20: warning: ‘struct sock’ declared inside parameter list
Signed-off-by: David S. Miller
-
tcp_v4_send_reset() and tcp_v4_send_ack() use a single socket
per network namespace.This leads to bad behavior on multiqueue NICS, because many cpus
contend for the socket lock and once socket lock is acquired, extra
false sharing on various socket fields slow down the operations.To better resist to attacks, we use a percpu socket. Each cpu can
run without contention, using appropriate memory (local node)Additional features :
1) We also mirror the queue_mapping of the incoming skb, so that
answers use the same queue if possible.2) Setting SOCK_USE_WRITE_QUEUE socket flag speedup sock_wfree()
3) We now limit the number of in-flight RST/ACK [1] packets
per cpu, instead of per namespace, and we honor the sysctl_wmem_default
limit dynamically. (Prior to this patch, sysctl_wmem_default value was
copied at boot time, so any further change would not affect tcp_sock
limit)[1] These packets are only generated when no socket was matched for
the incoming packet.Reported-by: Bill Sommerfeld
Signed-off-by: Eric Dumazet
Cc: Tom Herbert
Signed-off-by: David S. Miller -
Use global seqlock for the nh_exceptions. Call
fnhe_oldest with the right hash chain. Correct the diff
value for dst_set_expires.v2: after suggestions from Eric Dumazet:
* get rid of spin lock fnhe_lock, rearrange update_or_create_fnhe
* continue daddr search in rt_bind_exceptionv3:
* remove the daddr check before seqlock in rt_bind_exception
* restart lookup in rt_bind_exception on detected seqlock change,
as suggested by David MillerSigned-off-by: Julian Anastasov
Signed-off-by: David S. Miller
19 Jul, 2012
29 commits
-
Reported-by: Steffen Klassert
Signed-off-by: David S. Miller -
Use RFS infrastructure and flow steering in HW to keep CPU
affinity of rx interrupts and application per TCP stream.A flow steering filter is added to the HW whenever the RFS
ndo callback is invoked by core networking code.Because the invocation takes place in interrupt context, the
actual setup of HW is done using workqueue. Whenever new filter
is added, the driver checks for expiry of existing filters.Since there's window in time between the point where the core
RFS code invoked the ndo callback, to the point where the HW
is configured from the workqueue context, the 2nd, 3rd etc
packets from that stream will cause the net core to invoke
the callback again and again.To prevent inefficient/double configuration of the HW, the filters
are kept in a database which is indexed using hash function to enable
fast access.Signed-off-by: Amir Vadai
Signed-off-by: Or Gerlitz
Signed-off-by: David S. Miller -
Enable callers of mlx4_assign_eq to supply a pointer to cpu_rmap.
If supplied, the assigned IRQ is tracked using rmap infrastructure.Signed-off-by: Amir Vadai
Signed-off-by: Or Gerlitz
Signed-off-by: David S. Miller -
Signed-off-by: Amir Vadai
Signed-off-by: Or Gerlitz
Acked-by: Ben Hutchings
Signed-off-by: David S. Miller -
Define this macro is one common place instead of duplicating it over the code
Signed-off-by: Amir Vadai
Signed-off-by: Or Gerlitz
Signed-off-by: David S. Miller -
ip_options_compile can be called for forwarded packets,
make sure the specific-destionation address is a local one as
specified in RFC 1812, 4.2.2.2 Addresses in OptionsSigned-off-by: Julian Anastasov
Signed-off-by: David S. Miller -
Move fib_compute_spec_dst at the only place where it
is needed.Signed-off-by: Julian Anastasov
Signed-off-by: David S. Miller -
This change is just meant to defragment the flags as there are several hole
that have been introduced since several features, or the flags for them,
have been removed.Signed-off-by: Alexander Duyck
Tested-by: Phil Schmitt
Signed-off-by: Jeff Kirsher -
All of our hardware supports RSS even if it is only for a single queue. So
instead of toting around the RSS enable flag I am updating the code so that
all devices are enabled and if we want to disable RSS it is indicated via
the RSS mask.Signed-off-by: Alexander Duyck
Tested-by: Phil Schmitt
Signed-off-by: Jeff Kirsher -
This change essentially makes it so that we can enable almost all of the
features all at once. This patch allows for the combination of SR-IOV,
DCB, and FCoE in the case of the x540. It also beefs up the SR-IOV by
adding support for RSS to the PF.The testing matrix gets to be very complex for this patch as there are a
number of different features and subsets for queueing options. I tried to
narrow these down a bit by restricting the PF to only supporting 4TC DCB
when it is enabled in addition to SR-IOV.Cc: Greg Rose
Cc: John Fastabend
Signed-off-by: Alexander Duyck
Tested-by: Phil Schmitt
Tested-by: Ross Brattain
Signed-off-by: Jeff Kirsher -
This change allows all pools from the default pool forward to be enabled vi
ixgbe_configure_virtualization. This is needed as we are planning to use
queues belonging to adjacent pools for FCoE when SR-IOV and FCoE are both
enabled.In addition this patch contains some minor formatting changes as there were
a few spots that seemed to be in need of some cleanup.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
In ixgbevf_get_ringparam we could run into a NULL pointer dereference
if the rings were not allocated when we attempted the call. To prevent
that we can just access the tx/rx_ring_count values instead of attempting
to access the rings to get the count.This change corrects a memory leak and memory corruption in
ixgbevf_set_ringparam.The memory leak was due to us not freeing the resources from the ring
before overwriting them. This change corrects the memory leak by making
certain to call ixgbe_free_tx/rx_resources on the rings prior to freeing
them.The memory corruption was because we were replacing the rings but not
updating the q_vectors. It addresses the memory corruption by leaving the
rings in place and instead just copying the contents of the new rings into
the existing rings.Signed-off-by: Alexander Duyck
Acked-by: Greg Rose
Tested-by: Sibai Li
Signed-off-by: Jeff Kirsher -
There is a good bit of redundancy between the Tx checksum and segmentation
offloads. In order to reduce some of this I am moving the code for
creating a context descriptor into a separate function.Signed-off-by: Alexander Duyck
Signed-off-by: Greg Rose
Tested-by: Sibai Li
Signed-off-by: Jeff Kirsher -
This change adds the netdev to the ring structure. This allows for a
quicker transition from ring to netdev without having to go from ring to
adapter to netdev.Signed-off-by: Alexander Duyck
Signed-off-by: Greg Rose
Tested-by: Sibai Li
Signed-off-by: Jeff Kirsher -
The driver is going back one step from its' previous location before
bumping tail. This is incorrect. We should just be writing the value of
next_to_use into the tail register.Signed-off-by: Alexander Duyck
Signed-off-by: Greg Rose
Tested-by: Sibai Li
Signed-off-by: Jeff Kirsher -
We have had an issue when using ixgbe+ixgbevf and 802.1 VLAN tagging.
When attaching a VLAN to a VF, frames with a 802.1q priority appeared
untagged on the VF hence not reaching the VLAN, where frames with
priority 0 where tagged as expected and seen by the VLAN device.This seems due to the way ixgbevf is looking up the full tag
(prio+cfi+vlan) against the adapter active_vlans, as a condition to mark
the skb tagged.Signed-off-by: Pascal Bouchareine
Tested-by: Sibai Li
Signed-off-by: Jeff Kirsher -
Introduce ipv6_addr_hash() helper doing a XOR on all bits
of an IPv6 address, with an optimized x86_64 version.Use it in flow dissector, as suggested by Andrew McGregor,
to reduce hash collision probabilities in fq_codel (and other
users of flow dissector)Use it in ip6_tunnel.c and use more bit shuffling, as suggested
by David Laight, as existing hash was ignoring most of them.Use it in sunrpc and use more bit shuffling, using hash_32().
Use it in net/ipv6/addrconf.c, using hash_32() as well.
As a cleanup, use it in net/ipv4/tcp_metrics.c
Signed-off-by: Eric Dumazet
Reported-by: Andrew McGregor
Cc: Dave Taht
Cc: Tom Herbert
Cc: David Laight
Cc: Joe Perches
Signed-off-by: David S. Miller -
Cloned patch of Eric Dumazet for bonding.
Some workloads greatly benefit of IFF_XMIT_DST_RELEASE capability
on output net device, avoiding dirtying dst refcount.team currently disables IFF_XMIT_DST_RELEASE unconditionally.
If all ports have the IFF_XMIT_DST_RELEASE bit set, then
team dev can also have it in its priv_flags.Signed-off-by: Jiri Pirko
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
Enabling runtime PM support for cpsw driver
Signed-off-by: Mugunthan V N
Signed-off-by: David S. Miller -
Enabling runtime PM support for davinci mdio driver
Signed-off-by: Mugunthan V N
Signed-off-by: David S. Miller -
This patch adds the netpoll function to support netconsole. Tested and works
fine on my "JMC250 PCI Express Gigabit Ethernet Controller" (PCI ID 0250).Signed-off-by: Peter Wu
Signed-off-by: David S. Miller -
Use correct allocation flags during copy of user space fragments
to the kernel. Also "improve" couple of for loops.Signed-off-by: Krishna Kumar
Signed-off-by: David S. Miller -
add OF support for the davinci_emac driver.
Signed-off-by: Heiko Schocher
Acked-by: Sekhar Nori
Signed-off-by: Anatolij Gustschin
Cc: netdev@vger.kernel.org
Cc: davinci-linux-open-source@linux.davincidsp.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: devicetree-discuss@lists.ozlabs.org
Cc: Grant Likely
Cc: Sekhar Nori
Cc: Wolfgang Denk
Cc: Anatoly Sivov
Cc: David Miller
Signed-off-by: David S. Miller -
usb_alloc_urb() return value needs to be checked to avoid
later NULL pointer access.
Reported by rucsoftsec@gmail.com via bugzilla.kernel.org #44601.Signed-off-by: Karsten Keil
Signed-off-by: David S. Miller -
pnp_activate_dev() return value needs to be checked to make sure that
following calls calls to the PNP functions do work correctly.
Fix for report #44491 on bugzilla.kernel.org.Signed-off-by: Karsten Keil
Signed-off-by: David S. Miller -
The condition is always true so WOL will never work.
Signed-off-by: Dan Carpenter
Acked-by: Jitendra Kalsaria
Signed-off-by: David S. Miller -
Drivers should pull only ethernet header from page frag
to skb->head.Pulling 64 bytes is too much for TCP (without options) on IPv4.
However, it makes sense to pull all the frame if it fits the
128 bytes bloc allocated for skb->head, to free one page per
small incoming frame.Signed-off-by: Eric Dumazet
Cc: Po-Yu Chuang
Acked-by: Yan-Pai Chen
Signed-off-by: David S. Miller -
Sold by O2 (telefonica germany) under the name "LTE4G"
Tested-by: Thomas Schäfer
Signed-off-by: Bjørn Mork
Signed-off-by: David S. Miller -
New VTI tunnel kernel module, Kconfig and Makefile changes.
Signed-off-by: Saurabh Mohan
Reviewed-by: Stephen Hemminger
Signed-off-by: David S. Miller