18 May, 2010
26 commits
-
New firmware fixes a performance regression on small packets.
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Dump the correct MCP registers and add EMAC_RX_STATUS register during
NETDEV_WATCHDOG for debugging.Signed-off-by: Eddie Wai
Signed-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Device state need to be mark as FAILED, if fail to start firmware.
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Removing register defines which are not used by Qlgoic CNA device.
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Reset/set DEV_UP bit during allocation and deallocation of resources.
Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
By default fw is loaded from flash, user can
change this priority using load_fw_file module param.Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Added lrobytes to it.
Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Append mac address to adapter name.
Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Fixes memory leak in error path when memory allocation
for adapter data structures fails.Signed-off-by: Anirban Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
If the platform data for the mii_bus is missing, gracefully error out
rather than deference NULL pointers.Signed-off-by: Sonic Zhang
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
Have the low level MDIO functions pass back up timeout information so we
don't waste time polling them multiple times when there is a problem, and
so we don't let higher layers think the device is available when it isn't.Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
Rather than using the Receive All Frames (RAF) bit to enable promiscuous
mode, use the Promiscuous (PR) bit. This lowers overhead at runtime as
we let the hardware process the packets that should actually be checked.Signed-off-by: Sonic Zhang
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
Note that WOL works only in PM Suspend Standby Mode (Sleep Mode).
Signed-off-by: Michael Hennerich
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
Otherwise we might be get a setting mismatch from a previous module or
bootloader and what the driver currently expects.Signed-off-by: Sonic Zhang
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
IP checksum is based on 16-bit one's complement algorithm, so to deduce a
value from checksum is equal to add its complement.Unfortunately, the Blackfin on-chip MAC checksum logic only works when the
IP packet has a header length of 20 bytes. This is true for most IPv4
packets, but not for IPv6 packets or IPv4 packets which use header options.
So only use the hardware checksum when appropriate.Signed-off-by: Sonic Zhang
Signed-off-by: Jon Kowal
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
The skb buffer isn't actually used until we finish transferring and pass
it up to higher layers, so only invalidate the range once before we start
receiving actual data. This also avoids the problem with data invalidating
on Blackfin systems -- there is no invalidate-only, just invalidate+flush.
So when running in writeback mode, there is the small (but not uncommon)
possibility of the flush overwriting valid DMA-ed data from the cache.Signed-off-by: Sonic Zhang
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
Signed-off-by: Peter Meerwald
Signed-off-by: Graf Yang
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
Newer on-chip MAC peripherals support IEEE 1588 PTP in the hardware, so
extend the driver to support this functionality.Signed-off-by: Barry Song
Signed-off-by: Mike Frysinger
Signed-off-by: David S. Miller -
TCP outgoing packets can avoid two atomic ops, and dirtying
of previously higly contended cache line using new refdst
infrastructure.Note 1: loopback device excluded because of !IFF_XMIT_DST_RELEASE
Note 2: UDP packets dsts are built before ip_queue_xmit().Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Use ip_route_input_noref() in ip fast path, to avoid two atomic ops per
incoming packet.Note: loopback is excluded from this optimization in ip_rcv_finish()
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
ip_route_input() is the version returning a refcounted dst, while
ip_route_input_noref() returns a non refcounted one.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Use low order bit of skb->_skb_dst to tell dst is not refcounted.
Change _skb_dst to _skb_refdst to make sure all uses are catched.
skb_dst() returns the dst, regardless of noref bit set or not, but
with a lockdep check to make sure a noref dst is not given if current
user is not rcu protected.New skb_dst_set_noref() helper to set an notrefcounted dst on a skb.
(with lockdep check)skb_dst_drop() drops a reference only if skb dst was refcounted.
skb_dst_force() helper is used to force a refcount on dst, when skb
is queued and not anymore RCU protected.Use skb_dst_force() in __sk_add_backlog(), __dev_xmit_skb() if
!IFF_XMIT_DST_RELEASE or skb enqueued on qdisc queue, in
sock_queue_rcv_skb(), in __nf_queue().Use skb_dst_force() in dev_requeue_skb().
Note: dst_use_noref() still dirties dst, we might transform it
later to do one dirtying per jiffies.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
If CONFIG_SMP=y, then we own a queue spinlock, we can avoid the atomic
test_and_set_bit() from napi_schedule_prep().We now have same number of atomic ops per netif_rx() calls than with
pre-RPS kernel.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Using this driver can cause unaligned accesses in the IP layer
This has been fixed by aligning the skb data correctly using the
spare room left over by the 4 byte header inserted between packets
by the device.Signed-off-by: Neil Jones
Signed-off-by: David S. Miller -
Adds support for resuming from suspend for IBM virtual ethernet devices.
We may have lost an interrupt over the suspend, so we just kick the
interrupt handler to process anything that is outstanding.Signed-off-by: Brian King
Signed-off-by: David S. Miller -
as addrlabels with an interface index are left alone when the
interface gets removed this results in addrlabels that can no
longer be removed.Restrict validation of index to adding new addrlabels.
Signed-off-by: Florian Westphal
Signed-off-by: David S. Miller
17 May, 2010
1 commit
-
Conflicts:
include/linux/if_link.h
16 May, 2010
13 commits
-
Now we have a set of nested attributes:
IFLA_VFINFO_LIST (NESTED)
IFLA_VF_INFO (NESTED)
IFLA_VF_MAC
IFLA_VF_VLAN
IFLA_VF_TX_RATEThis allows a single set to operate on multiple attributes if desired.
Among other things, it means a dump can be replayed to set state.The current interface has yet to be released, so this seems like
something to consider for 2.6.34.Signed-off-by: Chris Wright
Signed-off-by: David S. Miller -
Synchronize access to the drivers configuration interface.
Also do not allow configuration changes during online/offline
transition.Signed-off-by: Frank Blaschka
Signed-off-by: David S. Miller -
z/OS may activate Optimized Latency Mode (OLM) for a connection
through an OSA Express3 adapter, which reduces the number of
allowed concurrent connections, if adapter is used in shared mode.
Create a meaningful message, if activation of an OSA-connection fails
due to an active OLM-connection on the shared OSA-adapter.Signed-off-by: Ursula Braun
Signed-off-by: Frank Blaschka
Signed-off-by: David S. Miller -
OSA supports HW TX checksumming in layer 3 mode. Enable this
feature and remove software fallback used for TSO. Cleanup
checksum bits to indicate OSA can do checksumming only for
IPv4 TCP and UDP.Signed-off-by: Frank Blaschka
Signed-off-by: David S. Miller -
transport may be free before ICMP proto unreachable timer expire, so
we should delete active ICMP proto unreachable timer when transport
is going away.Signed-off-by: Wei Yongjun
Acked-by: Vlad Yasevich
Signed-off-by: David S. Miller -
vlan/macvlan start_xmit() can inform caller of congestion with
NET_XMIT_CN return value. This doesnt mean packet was dropped.
Increment normal stat counters instead of tx_dropped.Signed-off-by: Eric Dumazet
Acked-by: Patrick McHardy
Signed-off-by: David S. Miller -
TCP-MD5 sessions have intermittent failures, when route cache is
invalidated. ip_queue_xmit() has to find a new route, calls
sk_setup_caps(sk, &rt->u.dst), destroying thesk->sk_route_caps &= ~NETIF_F_GSO_MASK
that MD5 desperately try to make all over its way (from
tcp_transmit_skb() for example)So we send few bad packets, and everything is fine when
tcp_transmit_skb() is called again for this socket.Since ip_queue_xmit() is at a lower level than TCP-MD5, I chose to use a
socket field, sk_route_nocaps, containing bits to mask on sk_route_caps.Reported-by: Bhaskar Dutta
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
TCP MD5 support uses percpu data for temporary storage. It currently
disables preemption so that same storage cannot be reclaimed by another
thread on same cpu.We also have to make sure a softirq handler wont try to use also same
context. Various bug reports demonstrated corruptions.Fix is to disable preemption and BH.
Reported-by: Bhaskar Dutta
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
With RPS inclusion, skb timestamping is not consistent in RX path.
If netif_receive_skb() is used, its deferred after RPS dispatch.
If netif_rx() is used, its done before RPS dispatch.
This can give strange tcpdump timestamps results.
I think timestamping should be done as soon as possible in the receive
path, to get meaningful values (ie timestamps taken at the time packet
was delivered by NIC driver to our stack), even if NAPI already can
defer timestamping a bit (RPS can help to reduce the gap)Tom Herbert prefer to sample timestamps after RPS dispatch. In case
sampling is expensive (HPET/acpi_pm on x86), this makes sense.Let admins switch from one mode to another, using a new
sysctl, /proc/sys/net/core/netdev_tstamp_prequeueIts default value (1), means timestamps are taken as soon as possible,
before backlog queueing, giving accurate timestamps.Setting a 0 value permits to sample timestamps when processing backlog,
after RPS dispatch, to lower the load of the pre-RPS cpu.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
I mistakenly had the error path to use num_pols to decide how
many policies we need to drop (cruft from earlier patch set
version which did not handle socket policies right).This is wrong since normally we do not keep explicit references
(instead we hold reference to the cache entry which holds references
to policies). drop_pols is set to num_pols if we are holding the
references, so use that. Otherwise we eventually BUG_ON inside
xfrm_policy_destroy due to premature policy deletion.Signed-off-by: Timo Teras
Signed-off-by: David S. Miller -
Now there's null check here and also again in the hook. Looking at bridge bits
which are simmilar, port structure is rcu_dereferenced right away in
handle_bridge and passed to hook. Looks nicer.Signed-off-by: Jiri Pirko
Acked-by: Patrick McHardy
Signed-off-by: David S. Miller -
This replace the PCI DMA state API (include/linux/pci-dma.h) with the
DMA equivalents since the PCI DMA state API will be obsolete.No functional change.
For further information about the background:
http://marc.info/?l=linux-netdev&m=127037540020276&w=2
Signed-off-by: FUJITA Tomonori
Acked-by: Stephen Hemminger
Signed-off-by: David S. Miller -
(Dropped the infiniband part, because Tetsuo modified the related code,
I will send a separate patch for it once this is accepted.)This patch introduces /proc/sys/net/ipv4/ip_local_reserved_ports which
allows users to reserve ports for third-party applications.The reserved ports will not be used by automatic port assignments
(e.g. when calling connect() or bind() with port number 0). Explicit
port allocation behavior is unchanged.Signed-off-by: Octavian Purdila
Signed-off-by: WANG Cong
Cc: Neil Horman
Cc: Eric Dumazet
Cc: Eric W. Biederman
Signed-off-by: David S. Miller