[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