20 Mar, 2012
24 commits
-
Instead of dropping the packet, we keep the skb buffer, and return
NETDEV_TX_BUSY to let upper layer retry send. This will not cause
endless loop, because the host is taking data away from ring buffer,
and we have called the stop_queue before returning NETDEV_TX_BUSY.The stop_queue was called in the function netvsc_send() in file
netvsc.c, then it returns to rndis_filter_send(), which returns to
netvsc_start_xmit() in file netvsc_drv.c. So the NETDEV_TX_BUSY is
indeed returned AFTER queue is stopped.Signed-off-by: Haiyang Zhang
Reviewed-by: K. Y. Srinivasan
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
Resolve namespace issues when FCoE or DCB is not enabled.
The issue is with certain configurations we end up with namespace
problems. A simple example:ixgbe_main.c
- defines func A()
- uses func A()ixgbe_fcoe.c
- uses func A()ixgbe.h
- has prototype for func A()For default (FCoE included) all is good. But when it isn't the namespace
checker complains about how func A() could be static.To resolve this, created a ixgbe_lib file to contain functions used
by DCB/FCoE and their helper functions so that they are always in
namespace whether or not DCB/FCoE is enabled.Signed-off-by: Jeff Kirsher
Tested-by: Phil Schmitt -
Just neatening.
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
Remove an unnecessary #define and use memcpy
instead of a loop to copy an ethernet address.Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
No need for yet another #define for this.
Convert NODE_ADDRESS_SIZE use to ETH_ALEN and remove #define.
Use memcpy instead of a loop to copy an address.Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
Just use ETH_ALEN.
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
With increasing receive window sizes, but speed of light not improved
that much, out of order queue can contain a huge number of skbs, waiting
to be moved to receive_queue when missing packets can fill the holes.Some devices happen to use fat skbs (truesize of 4096 + sizeof(struct
sk_buff)) to store regular (MTU
Cc: Neal Cardwell
Cc: Yuchung Cheng
Cc: H.K. Jerry Chu
Cc: Tom Herbert
Cc: Ilpo Järvinen
Acked-by: Neal Cardwell
Signed-off-by: David S. Miller -
Split tcp_data_queue() in two parts for better readability.
tcp_data_queue_ofo() is responsible for queueing incoming skb into out
of order queue.Change code layout so that the skb_set_owner_r() is performed only if
skb is not dropped.This is a preliminary patch before "reduce out_of_order memory use"
following patch.Signed-off-by: Eric Dumazet
Cc: Neal Cardwell
Cc: Yuchung Cheng
Cc: H.K. Jerry Chu
Cc: Tom Herbert
Cc: Ilpo Järvinen
Acked-by: Neal Cardwell
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Previously applied patch making the bnx2x statistics consistent
did not apply to old FWs. This remedies it, extending the consistent
behaviour to all drivers.Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Reported-by: Michal Schmidt
Signed-off-by: David S. Miller -
This includes changes in macros to better distinguish between the two
protocols, and slightly changed the way their macs are set.
Notice this file contains string print lines with more than 80 characters,
as to not break prints.Signed-off-by: Dmitry Kravkov
Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
The new error flags are supported by the bnx2x FW.
Signed-off-by: Dmitry Kravkov
Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
The changes were mostly made to enable back-to-back data flow with dcb.
Other changes were simply deemed as a better 'clean' initial configuration.Signed-off-by: Dmitry Kravkov
Signed-off-by: Yuval Mintz
Signed-off-by: David S. Miller -
Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
This patch reduces sparse warnings in the bnx2x code,
mostly by changing functions into static and changing
initialization of structures.Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
We've revised driver prints, changing the mask of existing prints
to allow better control over the debug messages, added prints to
error scenarios, removed unnecessary prints and corrected some spelling.
Please note that this patch contains lines with over 80 characters,
as string messages were kept in a single line.Signed-off-by: Merav Sicron
Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Yuval Mintz
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Ajit Khaparde
Signed-off-by: David S. Miller -
In flex10 mode the number of vlan slots supported is halved.
Signed-off-by: Ajit Khaparde
Signed-off-by: David S. Miller -
Signed-off-by: Ajit Khaparde
Signed-off-by: David S. Miller -
Signed-off-by: Ajit Khaparde
Signed-off-by: David S. Miller -
This patch replaces the variable name data with the variable name features
for ixgbe_fix_features and ixgbe_set_features. This helps to make some
issues more obvious such as the fact that we were disabling Rx VLAN tag
stripping when we should have been forcing it to be enabled when DCB is
enabled.In addition there was deprecated code present that was disabling the LRO
flag if we had the itr value set too low. I have updated this logic so
that we will now allow the LRO flag to be set, but will not enable RSC
until the rx-usecs value is high enough to allow enough time for Rx packet
coalescing.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher
19 Mar, 2012
12 commits
-
This patch adds support for enabling or disabling UDP RSS via the
ethtool -N rx-flow-hash command.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
This patch contains several fixes for formatting in regards to whitespace.
Signed-off-by: Alexander Duyck
Tested-by: Phil Schmitt
Signed-off-by: Jeff Kirsher -
This change fixes two minor issues. The first was the fact that we were
setting the return value to false twice in the set_rss_queues function.
The second is the fact that we should have been using "min_t(int," instead
of "min((int)" in set_fdir_queues.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
The err_eeprom and err_sw_init tags both go to the same location. So
instead of maintaining two tags this patch combines them so we only use
err_sw_init.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
This change relocates the ixgbe_poll routine so it is right next to the
interrupt routine that schedules and calls it.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
This change just cleans up some of the logic in the service_timer function
so that we can avoid unnecessary swapping of the ready value between true to
false and back to true.Signed-off-by: Alexander Duyck
Signed-off-by: Jeff Kirsher -
This change makes it so that only the 2nd cache line in the ring structure
should see frequent updates. The advantage to this is that it should
reduce the amount of cross CPU cache bouncing since only the 2nd cache line
will be changing between most network transactions.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
This change makes it so that we store the tx_flags and protocol information
to the tx_buffer_info structure sooner. This allows us to avoid unnecessary
read/write transactions since we are placing the data in the final location
earlier.Signed-off-by: Alexander Duyck
Tested-by: Stephen Ko
Signed-off-by: Jeff Kirsher -
The __netif_subqueue_stopped() just does the following:
struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
return netif_tx_queue_stopped(txq);and since we already have the txq in scope, we can just call that
directly in this case.Suggested-by: Eric Dumazet
Signed-off-by: Paul Gortmaker -
Commit 28d82dc1c4ed ("epoll: limit paths") that I did to limit the
number of possible wakeup paths in epoll is causing a few applications
to longer work (dovecot for one).The original patch is really about limiting the amount of epoll nesting
(since epoll fds can be attached to other fds). Thus, we probably can
allow an unlimited number of paths of depth 1. My current patch limits
it at 1000. And enforce the limits on paths that have a greater depth.This is captured in: https://bugzilla.redhat.com/show_bug.cgi?id=681578
Signed-off-by: Jason Baron
Cc: Andrew Morton
Signed-off-by: Linus Torvalds
18 Mar, 2012
2 commits
-
Pull networking changes from David Miller:
"1) icmp6_dst_alloc() returns NULL instead of ERR_PTR() leading to
crashes, particularly during shutdown. Reported by Dave Jones and
fixed by Eric Dumazet.2) hyperv and wimax/i2400m return NETDEV_TX_BUSY when they have
already freed the SKB, which causes crashes as to the caller this
means requeue the packet. Fixes from Eric Dumazet.3) usbnet driver doesn't allocate the right amount of headroom on
fresh RX SKBs, fix from Eric Dumazet.4) Fix regression in ip6_mc_find_dev_rcu(), as an RCU lookup it
abolutely should not take a reference to 'dev', this leads to
leaks. Fix from RonQing Li.5) Fix netfilter ctnetlink race between delete and timeout expiration.
From Pablo Neira Ayuso.6) Revert SFQ change which causes regressions, specifically queueing
to tail can lead to unavoidable flow starvation. From Eric
Dumazet.7) Fix a memory leak and a crash on corrupt firmware files in bnx2x,
from Michal Schmidt."* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
netfilter: ctnetlink: fix race between delete and timeout expiration
ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu.
wimax/i2400m: fix erroneous NETDEV_TX_BUSY use
net/hyperv: fix erroneous NETDEV_TX_BUSY use
net/usbnet: reserve headroom on rx skbs
bnx2x: fix memory leak in bnx2x_init_firmware()
bnx2x: fix a crash on corrupt firmware file
sch_sfq: revert dont put new flow at the end of flows
ipv6: fix icmp6_dst_alloc() -
Pull perf fixes from Ingo Molnar.
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf tools, x86: Build perf on older user-space as well
perf tools: Use scnprintf where applicable
perf tools: Incorrect use of snprintf results in SEGV
17 Mar, 2012
2 commits
-
Kerin Millar reported hardlockups while running `conntrackd -c'
in a busy firewall. That system (with several processors) was
acting as backup in a primary-backup setup.After several tries, I found a race condition between the deletion
operation of ctnetlink and timeout expiration. This patch fixes
this problem.Tested-by: Kerin Millar
Reported-by: Kerin Millar
Signed-off-by: Pablo Neira Ayuso
Signed-off-by: David S. Miller