[kernel] r14891 - in dists/trunk/linux-2.6/debian: . patches/bugfix/all patches/series
Ben Hutchings
benh at alioth.debian.org
Tue Jan 5 03:12:39 UTC 2010
Author: benh
Date: Tue Jan 5 03:12:36 2010
New Revision: 14891
Log:
via-velocity: Give RX descriptors to the NIC later on open or MTU change (Closes: #508527)
Added:
dists/trunk/linux-2.6/debian/patches/bugfix/all/via-velocity-give-rx-descriptors-later.patch
Modified:
dists/trunk/linux-2.6/debian/changelog
dists/trunk/linux-2.6/debian/patches/series/4
Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog Tue Jan 5 03:08:23 2010 (r14890)
+++ dists/trunk/linux-2.6/debian/changelog Tue Jan 5 03:12:36 2010 (r14891)
@@ -5,6 +5,8 @@
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,
Added: dists/trunk/linux-2.6/debian/patches/bugfix/all/via-velocity-give-rx-descriptors-later.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/via-velocity-give-rx-descriptors-later.patch Tue Jan 5 03:12:36 2010 (r14891)
@@ -0,0 +1,35 @@
+From: Ben Hutchings <ben at 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);
Modified: dists/trunk/linux-2.6/debian/patches/series/4
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/4 Tue Jan 5 03:08:23 2010 (r14890)
+++ dists/trunk/linux-2.6/debian/patches/series/4 Tue Jan 5 03:12:36 2010 (r14891)
@@ -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
More information about the Kernel-svn-changes
mailing list