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:
Ben Hutchings 2010-01-05 03:12:36 +00:00
parent 5396cb0b53
commit ae84b00876
3 changed files with 38 additions and 0 deletions

2
debian/changelog vendored
View File

@ -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,

View File

@ -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);

View File

@ -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