[kernel] r14599 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Thu Nov 12 02:33:13 UTC 2009


Author: benh
Date: Thu Nov 12 02:33:10 2009
New Revision: 14599

Log:
usbnet: Set link down initially for drivers that update link state (Closes: #444043)

Added:
   dists/lenny/linux-2.6/debian/patches/bugfix/all/usbnet-link-down-initially-for-drivers-that-update.patch
Modified:
   dists/lenny/linux-2.6/debian/changelog
   dists/lenny/linux-2.6/debian/patches/series/21

Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog	Thu Nov 12 02:05:18 2009	(r14598)
+++ dists/lenny/linux-2.6/debian/changelog	Thu Nov 12 02:33:10 2009	(r14599)
@@ -11,6 +11,8 @@
     (Closes: #552465; may fix #516187)
   * Revert patch to sanitise <linux/socket.h>, which introduced
     different build failures
+  * usbnet: Set link down initially for drivers that update link state
+    (Closes: #444043)
 
  -- Ben Hutchings <ben at decadent.org.uk>  Sat, 24 Oct 2009 23:45:45 +0100
 

Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/usbnet-link-down-initially-for-drivers-that-update.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/usbnet-link-down-initially-for-drivers-that-update.patch	Thu Nov 12 02:33:10 2009	(r14599)
@@ -0,0 +1,111 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: [PATCH] usbnet: Set link down initially for drivers that update link state
+
+Some usbnet drivers update link state while others do not due to
+hardware limitations.  Add a flag to distinguish those that do, and
+set the link down initially for their devices.
+
+--- a/drivers/net/usb/asix.c
++++ b/drivers/net/usb/asix.c
+@@ -1291,7 +1291,7 @@ static const struct driver_info ax8817x_info = {
+ 	.status = asix_status,
+ 	.link_reset = ax88172_link_reset,
+ 	.reset = ax88172_link_reset,
+-	.flags =  FLAG_ETHER,
++	.flags =  FLAG_ETHER | FLAG_LINK_INTR,
+ 	.data = 0x00130103,
+ };
+ 
+@@ -1301,7 +1301,7 @@ static const struct driver_info dlink_dub_e100_info = {
+ 	.status = asix_status,
+ 	.link_reset = ax88172_link_reset,
+ 	.reset = ax88172_link_reset,
+-	.flags =  FLAG_ETHER,
++	.flags =  FLAG_ETHER | FLAG_LINK_INTR,
+ 	.data = 0x009f9d9f,
+ };
+ 
+@@ -1311,7 +1311,7 @@ static const struct driver_info netgear_fa120_info = {
+ 	.status = asix_status,
+ 	.link_reset = ax88172_link_reset,
+ 	.reset = ax88172_link_reset,
+-	.flags =  FLAG_ETHER,
++	.flags =  FLAG_ETHER | FLAG_LINK_INTR,
+ 	.data = 0x00130103,
+ };
+ 
+@@ -1321,7 +1321,7 @@ static const struct driver_info hawking_uf200_info = {
+ 	.status = asix_status,
+ 	.link_reset = ax88172_link_reset,
+ 	.reset = ax88172_link_reset,
+-	.flags =  FLAG_ETHER,
++	.flags =  FLAG_ETHER | FLAG_LINK_INTR,
+ 	.data = 0x001f1d1f,
+ };
+ 
+@@ -1331,7 +1331,7 @@ static const struct driver_info ax88772_info = {
+ 	.status = asix_status,
+ 	.link_reset = ax88772_link_reset,
+ 	.reset = ax88772_link_reset,
+-	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
++	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR,
+ 	.rx_fixup = asix_rx_fixup,
+ 	.tx_fixup = asix_tx_fixup,
+ };
+@@ -1342,7 +1342,7 @@ static const struct driver_info ax88178_info = {
+ 	.status = asix_status,
+ 	.link_reset = ax88178_link_reset,
+ 	.reset = ax88178_link_reset,
+-	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
++	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR,
+ 	.rx_fixup = asix_rx_fixup,
+ 	.tx_fixup = asix_tx_fixup,
+ };
+--- a/drivers/net/usb/cdc_ether.c
++++ b/drivers/net/usb/cdc_ether.c
+@@ -413,7 +413,7 @@ static int cdc_bind(struct usbnet *dev, struct usb_interface *intf)
+ 
+ static const struct driver_info	cdc_info = {
+ 	.description =	"CDC Ethernet Device",
+-	.flags =	FLAG_ETHER,
++	.flags =	FLAG_ETHER | FLAG_LINK_INTR,
+ 	// .check_connect = cdc_check_connect,
+ 	.bind =		cdc_bind,
+ 	.unbind =	usbnet_cdc_unbind,
+--- a/drivers/net/usb/dm9601.c
++++ b/drivers/net/usb/dm9601.c
+@@ -611,7 +611,7 @@ static int dm9601_link_reset(struct usbnet *dev)
+ 
+ static const struct driver_info dm9601_info = {
+ 	.description	= "Davicom DM9601 USB Ethernet",
+-	.flags		= FLAG_ETHER,
++	.flags		= FLAG_ETHER | FLAG_LINK_INTR,
+ 	.bind		= dm9601_bind,
+ 	.rx_fixup	= dm9601_rx_fixup,
+ 	.tx_fixup	= dm9601_tx_fixup,
+--- a/drivers/net/usb/usbnet.c
++++ b/drivers/net/usb/usbnet.c
+@@ -1352,9 +1352,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
+ 	// ok, it's ready to go.
+ 	usb_set_intfdata (udev, dev);
+ 
+-	// start as if the link is up
+ 	netif_device_attach (net);
+ 
++	if (dev->driver_info->flags & FLAG_LINK_INTR)
++		netif_carrier_off(net);
++
+ 	return 0;
+ 
+ out3:
+--- a/include/linux/usb/usbnet.h
++++ b/include/linux/usb/usbnet.h
+@@ -92,6 +92,7 @@ struct driver_info {
+ #define FLAG_FRAMING_AX 0x0040		/* AX88772/178 packets */
+ #define FLAG_WLAN	0x0080		/* use "wlan%d" names */
+ 
++#define FLAG_LINK_INTR	0x0800		/* updates link (carrier) status */
+ 
+ 	/* init device ... can sleep, or cause probe() failure */
+ 	int	(*bind)(struct usbnet *, struct usb_interface *);
+

Modified: dists/lenny/linux-2.6/debian/patches/series/21
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/21	Thu Nov 12 02:05:18 2009	(r14598)
+++ dists/lenny/linux-2.6/debian/patches/series/21	Thu Nov 12 02:33:10 2009	(r14599)
@@ -25,3 +25,4 @@
 + features/all/r8169/r8169-07-support-additional-8168cp-chipset.patch
 + features/all/r8169/r8169-08-preliminary-8168d-support.patch
 - bugfix/all/sanitise-linux-socket-h.patch
++ bugfix/all/usbnet-link-down-initially-for-drivers-that-update.patch



More information about the Kernel-svn-changes mailing list