via-velocity: Give RX descriptors to the NIC later on open or MTU change (Closes: #508527)
svn path=/dists/trunk/linux-2.6/; revision=14891
This commit is contained in:
parent
5396cb0b53
commit
ae84b00876
|
@ -5,6 +5,8 @@ linux-2.6 (2.6.32-4) UNRELEASED; urgency=low
|
|||
in maintainer scripts (Closes: #558077)
|
||||
* modules: Skip empty sections when exporting section notes
|
||||
(Closes: #563036)
|
||||
* via-velocity: Give RX descriptors to the NIC later on open or MTU change
|
||||
(Closes: #508527)
|
||||
|
||||
[ maximilian attems ]
|
||||
* topconfig set CAN_EMS_USB, BT_MRVL, BT_MRVL_SDIO, BE2ISCSI, SCSI_PMCRAID,
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Subject: [PATCH] via-velocity: Give RX descriptors to the NIC later on open or MTU change
|
||||
|
||||
velocity_open() calls velocity_give_many_rx_descs(), which gives RX
|
||||
descriptors to the NIC, before installing an interrupt handler or
|
||||
calling velocity_init_registers(). I think this is very unsafe and it
|
||||
appears to explain the bug report <http://bugs.debian.org/508527>.
|
||||
|
||||
On MTU change, velocity_give_many_rx_descs() is again called before
|
||||
velocity_init_registers(). I'm not sure whether this is unsafe but
|
||||
it does look wrong.
|
||||
|
||||
Therefore, move the calls to velocity_give_many_rx_descs() after
|
||||
request_irq() and velocity_init_registers().
|
||||
|
||||
--- a/drivers/net/via-velocity.c
|
||||
+++ b/drivers/net/via-velocity.c
|
||||
@@ -2237,8 +2237,6 @@ static int velocity_open(struct net_device *dev)
|
||||
/* Ensure chip is running */
|
||||
pci_set_power_state(vptr->pdev, PCI_D0);
|
||||
|
||||
- velocity_give_many_rx_descs(vptr);
|
||||
-
|
||||
velocity_init_registers(vptr, VELOCITY_INIT_COLD);
|
||||
|
||||
ret = request_irq(vptr->pdev->irq, velocity_intr, IRQF_SHARED,
|
||||
@@ -2250,6 +2248,8 @@ static int velocity_open(struct net_device *dev)
|
||||
goto out;
|
||||
}
|
||||
|
||||
+ velocity_give_many_rx_descs(vptr);
|
||||
+
|
||||
mac_enable_int(vptr->mac_regs);
|
||||
netif_start_queue(dev);
|
||||
napi_enable(&vptr->napi);
|
|
@ -1,2 +1,3 @@
|
|||
+ bugfix/all/modules-Skip-empty-section-notes.patch
|
||||
+ features/arm/early-printk.patch
|
||||
+ bugfix/all/via-velocity-give-rx-descriptors-later.patch
|
||||
|
|
Loading…
Reference in New Issue