03 Nov, 2009
6 commits
-
This patch adds code to check the status of pci_map_single() before
allowing rx buffers to be used. It also converts the pci_map_single()
call in tg3_run_loopback() to use skb_dma_map() instead.Signed-off-by: Matt Carlson
Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
This patch prevents a PCIe tx glitch by allowing the transmitter to go
to a low power state.Signed-off-by: Matt Carlson
Reviewed-by: Michael Chan
Signed-off-by: David S. Miller -
This patch renames the PHY_ADDR preprocessor definition. The following
patch will identify a new member on the MDIO bus, so we want this
preprocessor definition to be a little more descriptive.Signed-off-by: Matt Carlson
Reviewed-by: Michael Chan
Signed-off-by: David S. Miller -
Under certain power saving conditions, 57780 asic rev devices might
disappear from the system. The fix is to disallow the PCIe PLL from
powering down.Signed-off-by: Matt Carlson
Reviewed-by: Michael Chan
Signed-off-by: David S. Miller -
The 5906 has trouble with fragments that are less than 8 bytes in size.
This patch works around the problem by pivoting the 5906's transmit
routine to tg3_start_xmit_dma_bug() and introducing a new SHORT_DMA_BUG
flag that enables code to detect and react to the problematic condition.Signed-off-by: Matt Carlson
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
This patch adds a flag for each bug workaround in
tg3_start_xmit_dma_bug(). This is prep work for the following patch.Signed-off-by: Matt Carlson
Reviewed-by: Michael Chan
Signed-off-by: David S. Miller
02 Nov, 2009
14 commits
-
Change name on vlan_rx_add, kill, register to match other driver API.
Signed-off-by: Ron Mercer
Signed-off-by: David S. Miller -
Signed-off-by: Ron Mercer
Signed-off-by: David S. Miller -
Avoids touching device refcount in datagram_send_ctl(), thanks to RCU
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Avoids touching device refcount in inet6_bind(), thanks to RCU
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Using dev_get_by_index_rcu() in ip6_tnl_rcv_ctl() & ip6_tnl_xmit_ctl()
avoids touching device refcount.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
- packet_sendmsg_spkt() can use dev_get_by_name_rcu() to avoid touching device refcount.
- packet_getname_spkt() & packet_getname() can use dev_get_by_index_rcu() to
avoid touching device refcount too.tpacket_snd() & packet_snd() can not use RCU yet because they can sleep when
allocating skb.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Use dev_get_by_name_rcu() instead of dev_get_by_name(),
to avoid touching device refcount in hotpath.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Avoids touching dev refcount in hotpath
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
All ioctls() implemented by dev_ifsioc_locked() :
SIOCGIFFLAGS, SIOCGIFMETRIC, SIOCGIFMTU, SIOCGIFHWADDR,
SIOCGIFSLAVE, SIOCGIFMAP, SIOCGIFINDEX & SIOCGIFTXQLEN
can use RCU lock instead of dev_base_lock rwlockSigned-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
We can avoid touching device refcount in icmp_send(),
using dev_get_by_index_rcu()Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Use dev_get_by_index_rcu() instead of __dev_get_by_index() and
dev_base_lock rwlockSigned-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
I tested the recent unregister many changes and got a weird,
nasty and seemingly unrelasted kernel oops. Changing
unregister_netdevice_queue to use list_move_tail fixes
the problem for me.ip link add type veth
rmmod vethls /sys/class/net/
showed one of the veth devices still present.A subsequent ip link oopsed the box.
Signed-off-by: "Eric W. Biederman"
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
Some workloads hit dev_base_lock rwlock pretty hard.
We can use RCU lookups to avoid touching this rwlock
(and avoid touching netdevice refcount)netdevices are already freed after a RCU grace period, so this patch
adds no penalty at device dismantle time.However, it adds a synchronize_rcu() call in dev_change_name()
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
1. Add API Add k8695_get_rx_enable_bit() for get Rx interrupt
enable/status bit.
2. add some comment or document about some functions and variables.
3. update driver version to "1.02"
4. add napi_enable() and napi_disable() in open/close file method.Signed-off-by: Figo.zhang
Signed-off-by: David S. Miller
31 Oct, 2009
12 commits
-
Move receive processing from event handler to a tasklet.
This should help prevent hangcheck timer from going off
when RDS is under heavy load.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
This issue was discovered by HP's Pradeep and fixed in OFED
1.3, but not fixed in later versions, since the fix's implementation
was not immediately applyable to the later code. This patch should
do the trick for 1.4+ codebases.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
Remove explicit destruction of passive connection when destroying
active end of the connection. The passive end is also on the
device's connection list, and will thus be cleaned up properly.
Panic was caused by trying to clean it up twice.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
"At rds_ib_recv_refill_one(), it first executes atomic_read(&rds_ib_allocation)
for if-condition checking,and then executes atomic_inc(&rds_ib_allocation) if the condition was
not satisfied.However, if any other code which updates rds_ib_allocation executes
between these two atomic operation executions,
it seems that it may result race condition. (especially when
rds_ib_allocation + 1 == rds_ib_sysctl_max_recv_allocation)"This patch fixes this by using atomic_inc_unless to eliminate the
possibility of allocating more than rds_ib_sysctl_max_recv_allocation
and then decrementing the count if the allocation fails. It also
makes an identical change to the iwarp transport.Reported-by: Shin Hong
Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
RDS currently supports a GET_MR sockopt to establish a
memory region (MR) for a chunk of memory. However, the fastreg
method ties a MR to a particular destination. The GET_MR_FOR_DEST
sockopt allows the remote machine to be specified, and thus
support for fastreg (aka FRWRs).Note that this patch does *not* do all of this - it simply
implements the new sockopt in terms of the old one, so applications
can begin to use the new sockopt in preparation for cutover to
FRWRs.Signed-off-by: Andy Grover
Signed-off-by: David S. Miller -
- Don't call rtnl_link_unregister if rtnl_link_register fails
- Set .priv_size so we aren't stomping on uninitialized memory
when we use netdev_priv, on bond devices created with
ip link add type bond.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller -
Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller -
This implements a basic set of rtnl link ops and takes advantage of
the fact that rtnl_link_unregister kills all of the surviving
devices to all us to kill bond_free_all. A module alias
is added so ip link add can pull in the bonding module.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller -
Manually inline the code from bond_deinit to bond_uninit. bond_uninit
is the only caller and it is short.Move the call of bond_release_all from the netdev notifier into
bond_uninit. The call site is effectively the same and performing
the call explicitly allows all the paths for destroying a
bonding device to behave the same way.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller -
Stop calling dev_get_by_name to see if the bond device already
exists. register_netdevice already does that.Stop calling bond_deinit if register_netdevice fails as bond_uninit
is guaranteed to be called if bond_init succeeds.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller -
This patch delegates the work of creating the sysfs groups
to the netdev layer and ultimately to the device layer. This
closes races between uevents.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller -
This isn't beautifully abstracted, but it is simple,
simplifies uses and so far is only needed for the bonding driver.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller
30 Oct, 2009
8 commits
-
Small cleanup of __dev_get_by_name() and __dev_get_by_index()
to use hlist_for_each_entry() : They'll look like their _rcu variant.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
In commit 23289a37e2b127dfc4de1313fba15bb4c9f0cd5b
(net: add a list_head parameter to dellink() method),
I forgot to actually use this parameter in veth_dellink.I remember feeling a bit uncomfortable about veth_close(),
because it does :netif_carrier_off(dev);
netif_carrier_off(priv->peer);Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
The temporary copy of the VLAN group is not neccessary since the lower device
is already in the process of being unregistered, if it was neccessary the
memset of the global group would introduce a race condition.With this removed, the changes to the original code are only a few lines, so
remove the new function and move the code back into vlan_device_event().Signed-off-by: Patrick McHardy
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
For USB 3.0 it is necessary that all drivers use the standard
API to reset a configuration. This removes a home-grown
implementation.Signed-off-by: Oliver Neukum
Hi David,
please take this for the next merge window.
Regards
Oliver
Signed-off-by: David S. Miller -
struct ax25_ctl_struct member `arg' is unsigned and cannot be less
than 0.Signed-off-by: Roel Kluin
Signed-off-by: David S. Miller -
Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Tentative support for newer Marvell hardware including
the Yukon-2 Optima chip. Do not have hatdware to test this yet,
code is based on vendor driver.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Changes related to support of Yukon supreme chip.
Don't have this chip version to test on,
these are reverse engineered from the vendor (GPL) driver.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller