r2977 - in trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian: . patches patches/series

Simon Horman horms@costa.debian.org
Wed, 13 Apr 2005 06:24:21 +0000


Author: horms
Date: 2005-04-13 06:24:20 +0000 (Wed, 13 Apr 2005)
New Revision: 2977

Added:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/159_fs-cramfs-stat.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/160_drivers-net-sis900-oops.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/161_drivers-net-amd8111e-irq.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/162_drivers-net-via-rhine-irq.diff
Modified:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-10
Log:
Some patches from 2.6.11.7 that were missing

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog	2005-04-12 20:01:58 UTC (rev 2976)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/changelog	2005-04-13 06:24:20 UTC (rev 2977)
@@ -20,8 +20,24 @@
     Potential DOS in load_elf_library. See CAN-2005-0749
     (Simon Horman) (closes: #302705)
 
- -- Simon Horman <horms@debian.org>  Tue, 12 Apr 2005 16:45:04 +0900
+  * 159_fs-cramfs-stat.diff
+    Fix to stat output for cramfs
+    (Simon Horman)
 
+  * 160_drivers-net-sis900-oops.diff
+     sis900 kernel oops fix
+    (Simon Horman)
+
+  * 161_drivers-net-amd8111e-irq.diff
+    AMD8111e driver was releasing an irq in some error situations
+    (Simon Horman)
+
+  * 162_drivers-net-via-rhine-irq.diff
+    VIA Rhine driver was releasing an irq in some error situations
+    (Simon Horman)
+
+ -- Simon Horman <horms@debian.org>  Wed, 13 Apr 2005 15:10:18 +0900
+
 kernel-source-2.4.27 (2.4.27-9) unstable; urgency=low
 
   * There was a stray file in 2.4.27-8. Don't include it this time.

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/159_fs-cramfs-stat.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/159_fs-cramfs-stat.diff	2005-04-12 20:01:58 UTC (rev 2976)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/159_fs-cramfs-stat.diff	2005-04-13 06:24:20 UTC (rev 2977)
@@ -0,0 +1,52 @@
+# origin: akpm (BitKeeper)
+# cset: 1.2087 (2.6) key=4233d1160KRwGtYr32RaehQWJRFT_g
+# URL: http://linux.bkbits.net:8080/linux-2.6/cset@4233d1160KRwGtYr32RaehQWJRFT_g
+# inclusion: upstream
+# descrition: [PATCH] cramfs: small stat(2) fix
+# revision date: Fri, 08 Apr 2005 14:50:21 +0900
+#
+# S rset: ChangeSet|1.2086..1.2087
+# R rset: fs/cramfs/inode.c|1.38..1.39
+#
+# Key:
+# S: Skipped  ChangeSet file only
+# O: Original Followed by Updated
+# U: Updated  Included with updated range of versions
+# I: Included Included verbatim
+# E: Excluded Excluded on request from user
+# D: Deleted  Manually deleted by subsequent user edit
+# R: Revised  Manually revised by subsequent user edit
+#
+#
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2005/03/12 21:35:18-08:00 akpm@osdl.org 
+#   [PATCH] cramfs: small stat(2) fix
+#   
+#   From: Eric Lammerts <eric@lammerts.org>
+#   
+#   When I stat(2) a device node on a cramfs, the st_blocks field is bogus
+#   (it's derived from the size field which in this case holds the major/minor
+#   numbers).  This makes du(1) output completely wrong.
+#   
+#   Signed-off-by: Eric Lammerts <eric@lammerts.org>
+#   Signed-off-by: Andrew Morton <akpm@osdl.org>
+#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+# 
+# fs/cramfs/inode.c
+#   2005/03/04 13:15:57-08:00 akpm@osdl.org +1 -0
+#   cramfs: small stat(2) fix
+# 
+#
+===== fs/cramfs/inode.c 1.38 vs 1.39 =====
+--- a/fs/cramfs/inode.c	2004-04-17 00:39:37 +09:00
++++ b/fs/cramfs/inode.c	2005-03-05 06:15:57 +09:00
+@@ -73,6 +73,7 @@ static struct inode *get_cramfs_inode(st
+ 			inode->i_data.a_ops = &cramfs_aops;
+ 		} else {
+ 			inode->i_size = 0;
++			inode->i_blocks = 0;
+ 			init_special_inode(inode, inode->i_mode, cramfs_inode->size);
+ 		}
+ 	}

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/160_drivers-net-sis900-oops.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/160_drivers-net-sis900-oops.diff	2005-04-12 20:01:58 UTC (rev 2976)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/160_drivers-net-sis900-oops.diff	2005-04-13 06:24:20 UTC (rev 2977)
@@ -0,0 +1,172 @@
+# origin: chrisw (BitKeeper)
+# cset: 1.2095 (2.6) key=4233d3c5YkBpjko54dEwE4WPIndnLg
+# URL: http://linux.bkbits.net:8080/linux-2.6/cset@4233d3c5YkBpjko54dEwE4WPIndnLg
+# inclusion: upstream
+# descrition: [PATCH] sis900 kernel oops fix
+# revision date: Fri, 08 Apr 2005 14:52:30 +0900
+#
+# S rset: ChangeSet|1.2094..1.2095
+# R rset: drivers/net/sis900.c|1.62..1.63
+#
+# Key:
+# S: Skipped  ChangeSet file only
+# O: Original Followed by Updated
+# U: Updated  Included with updated range of versions
+# I: Included Included verbatim
+# E: Excluded Excluded on request from user
+# D: Deleted  Manually deleted by subsequent user edit
+# R: Revised  Manually revised by subsequent user edit
+#
+#
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2005/03/12 21:46:45-08:00 chrisw@osdl.org 
+#   [PATCH] sis900 kernel oops fix
+#   
+#   Backport of fix described below.
+#   
+#     From: Herbert Xu <herbert@gondor.apana.org.au>
+#   
+#     Fix bug #4223.
+#   
+#     OK, this happened because we got preempted before sis900_mii_probe
+#     finished setting the sis_priv->mii.  Theoretically this can happen
+#     with SMP as well but I suppose the number of SMP machines with sis900
+#     is fairly small.
+#   
+#     Anyway, the fix is to make sure that sis900_mii_probe is done before
+#     the device can be opened.  This patch does it by moving the setup
+#     before register_netdevice.
+#   
+#     Since the netdev name is not available before register_netdev, I've
+#     changed the relevant printk's to use pci_name instead.  Note that
+#     one of those printk's may be called after register_netdev as well.
+#   
+#   Signed-off-by: Chris Wright <chrisw@osdl.org>
+#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+# 
+# drivers/net/sis900.c
+#   2005/03/10 12:23:49-08:00 chrisw@osdl.org +14 -16
+#   sis900 kernel oops fix
+# 
+#
+--- a/drivers/net/sis900.c	2004-08-08 08:26:05.000000000 +0900
++++ b/drivers/net/sis900.c	2005-04-13 15:21:47.000000000 +0900
+@@ -233,7 +233,7 @@ static int __devinit sis900_get_mac_addr
+ 	signature = (u16) read_eeprom(ioaddr, EEPROMSignature);    
+ 	if (signature == 0xffff || signature == 0x0000) {
+ 		printk (KERN_INFO "%s: Error EERPOM read %x\n", 
+-			net_dev->name, signature);
++			pci_name(pci_dev), signature);
+ 		return 0;
+ 	}
+ 
+@@ -264,7 +264,8 @@ static int __devinit sis630e_get_mac_add
+ 	if (!isa_bridge) {
+ 		isa_bridge = pci_find_device(PCI_VENDOR_ID_SI, 0x0018, isa_bridge);
+ 		if (!isa_bridge) {
+-			printk("%s: Can not find ISA bridge\n", net_dev->name);
++			printk(KERN_WARNING "%s: Can not find ISA bridge\n",
++				pci_name(pci_dev));
+ 			return 0;
+ 		}
+ 	}
+@@ -449,10 +450,6 @@ static int __devinit sis900_probe (struc
+ 	net_dev->tx_timeout = sis900_tx_timeout;
+ 	net_dev->watchdog_timeo = TX_TIMEOUT;
+ 	net_dev->ethtool_ops = &sis900_ethtool_ops;
+-	
+-	ret = register_netdev(net_dev);
+-	if (ret)
+-		goto err_unmap_rx;
+ 		
+ 	/* Get Mac address according to the chip revision */
+ 	pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &revision);
+@@ -469,7 +466,7 @@ static int __devinit sis900_probe (struc
+ 
+ 	if (ret == 0) {
+ 		ret = -ENODEV;
+-		goto err_out_unregister;
++		goto err_unmap_rx;
+ 	}
+ 	
+ 	/* 630ET : set the mii access mode as software-mode */
+@@ -479,7 +476,7 @@ static int __devinit sis900_probe (struc
+ 	/* probe for mii transceiver */
+ 	if (sis900_mii_probe(net_dev) == 0) {
+ 		ret = -ENODEV;
+-		goto err_out_unregister;
++		goto err_unmap_rx;
+ 	}
+ 
+ 	/* save our host bridge revision */
+@@ -487,6 +484,10 @@ static int __devinit sis900_probe (struc
+ 	if (dev)
+ 		pci_read_config_byte(dev, PCI_CLASS_REVISION, &sis_priv->host_bridge_rev);
+ 
++	ret = register_netdev(net_dev);
++	if (ret)
++		goto err_unmap_rx;
++
+ 	/* print some information about our NIC */
+ 	printk(KERN_INFO "%s: %s at %#lx, IRQ %d, ", net_dev->name,
+ 	       card_name, ioaddr, net_dev->irq);
+@@ -496,8 +497,6 @@ static int __devinit sis900_probe (struc
+ 
+ 	return 0;
+ 
+- err_out_unregister:
+- 	unregister_netdev(net_dev);
+  err_unmap_rx:
+ 	pci_free_consistent(pci_dev, RX_TOTAL_SIZE, sis_priv->rx_ring,
+ 		sis_priv->rx_ring_dma);
+@@ -524,6 +523,7 @@ static int __devinit sis900_probe (struc
+ static int __init sis900_mii_probe (struct net_device * net_dev)
+ {
+ 	struct sis900_private * sis_priv = net_dev->priv;
++	const char *dev_name = pci_name(sis_priv->pci_dev);
+ 	u16 poll_bit = MII_STAT_LINK, status = 0;
+ 	unsigned long timeout = jiffies + 5 * HZ;
+ 	int phy_addr;
+@@ -573,18 +573,17 @@ static int __init sis900_mii_probe (stru
+ 					mii_phy->phy_types =
+ 						(mii_status & (MII_STAT_CAN_TX_FDX | MII_STAT_CAN_TX)) ? LAN : HOME;
+ 				printk(KERN_INFO "%s: %s transceiver found at address %d.\n",
+-				       net_dev->name, mii_chip_table[i].name, phy_addr);
++				       dev_name, mii_chip_table[i].name, phy_addr);
+ 				break;
+ 			}
+ 			
+ 		if( !mii_chip_table[i].phy_id1 )
+ 			printk(KERN_INFO "%s: Unknown PHY transceiver found at address %d.\n",
+-			       net_dev->name, phy_addr);			
++			       dev_name, phy_addr);			
+ 	}
+ 	
+ 	if (sis_priv->mii == NULL) {
+-		printk(KERN_INFO "%s: No MII transceivers found!\n",
+-		       net_dev->name);
++		printk(KERN_INFO "%s: No MII transceivers found!\n", dev_name);
+ 		return 0;
+ 	}
+ 
+@@ -608,7 +607,8 @@ static int __init sis900_mii_probe (stru
+ 			schedule_timeout(0);
+ 			poll_bit ^= (mdio_read(net_dev, sis_priv->cur_phy, MII_STATUS) & poll_bit);
+ 			if (time_after_eq(jiffies, timeout)) {
+-				printk(KERN_WARNING "%s: reset phy and link down now\n", net_dev->name);
++				printk(KERN_WARNING "%s: reset phy and link down now\n", 
++						dev_name);
+ 				return -ETIME;
+ 			}
+ 		}
+@@ -671,7 +671,7 @@ static u16 sis900_default_phy(struct net
+ 	if( sis_priv->mii != default_phy ){
+ 		sis_priv->mii = default_phy;
+ 		sis_priv->cur_phy = default_phy->phy_addr;
+-		printk(KERN_INFO "%s: Using transceiver found at address %d as default\n", net_dev->name,sis_priv->cur_phy);
++		printk(KERN_INFO "%s: Using transceiver found at address %d as default\n", pci_name(sis_priv->pci_dev), sis_priv->cur_phy);
+ 	}
+ 	
+ 	status = mdio_read(net_dev, sis_priv->cur_phy, MII_CONTROL);

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/161_drivers-net-amd8111e-irq.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/161_drivers-net-amd8111e-irq.diff	2005-04-12 20:01:58 UTC (rev 2976)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/161_drivers-net-amd8111e-irq.diff	2005-04-13 06:24:20 UTC (rev 2977)
@@ -0,0 +1,60 @@
+# origin: dilinger (BitKeeper)
+# cset: 1.2103 (2.6) key=423bb97clhqMvFL08P6JJ_Jc27TAAA
+# URL: http://linux.bkbits.net:8080/linux-2.6/cset@423bb97clhqMvFL08P6JJ_Jc27TAAA
+# inclusion: upstream
+# descrition: [PATCH] Possible AMD8111e free irq issue
+# revision date: Fri, 08 Apr 2005 14:54:47 +0900
+#
+# S rset: ChangeSet|1.2102..1.2103
+# I rset: drivers/net/amd8111e.c|1.30..1.31
+#
+# Key:
+# S: Skipped  ChangeSet file only
+# O: Original Followed by Updated
+# U: Updated  Included with updated range of versions
+# I: Included Included verbatim
+# E: Excluded Excluded on request from user
+# D: Deleted  Manually deleted by subsequent user edit
+# R: Revised  Manually revised by subsequent user edit
+#
+#
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2005/03/18 21:32:44-08:00 dilinger@debian.org 
+#   [PATCH] Possible AMD8111e free irq issue
+#   
+#   It seems to me that if in the amd8111e_open() fuction dev->irq isn't
+#   zero and the irq request succeeds it might not get released anymore.
+#   
+#   Specifically, on failure of the amd8111e_restart() call the function
+#   returns -ENOMEM without releasing the irq. The amd8111e_restart()
+#   function can fail because of various pci_alloc_consistent() and
+#   dev_alloc_skb() calls in amd8111e_init_ring() which is being
+#   called by amd8111e_restart.
+#   
+#   1374     if(dev->irq ==0 || request_irq(dev->irq, amd8111e_interrupt, SA_SHIRQ,
+#   1375                      dev->name, dev))
+#   1376         return -EAGAIN;
+#   
+#   Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
+#   Signed-off-by: Chris Wright <chrisw@osdl.org>
+#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+# 
+# drivers/net/amd8111e.c
+#   2005/03/09 20:29:47-08:00 dilinger@debian.org +2 -0
+#   Possible AMD8111e free irq issue
+# 
+#
+===== drivers/net/amd8111e.c 1.30 vs 1.31 =====
+--- 1.30/drivers/net/amd8111e.c	2005-01-11 01:52:26 +09:00
++++ 1.31/drivers/net/amd8111e.c	2005-03-10 13:29:47 +09:00
+@@ -1381,6 +1381,8 @@ static int amd8111e_open(struct net_devi
+ 
+ 	if(amd8111e_restart(dev)){
+ 		spin_unlock_irq(&lp->lock);
++		if (dev->irq)
++			free_irq(dev->irq, dev);
+ 		return -ENOMEM;
+ 	}
+ 	/* Start ipg timer */

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/162_drivers-net-via-rhine-irq.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/162_drivers-net-via-rhine-irq.diff	2005-04-12 20:01:58 UTC (rev 2976)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/162_drivers-net-via-rhine-irq.diff	2005-04-13 06:24:20 UTC (rev 2977)
@@ -0,0 +1,56 @@
+# origin: dilinger (BitKeeper)
+# cset: 1.2108 (2.6) key=423bbc05NDXpG43AD5mxHCl1xpVtDQ
+# URL: http://linux.bkbits.net:8080/linux-2.6/cset@423bbc05NDXpG43AD5mxHCl1xpVtDQ
+# inclusion: upstream
+# descrition: [PATCH] Possible VIA-Rhine free irq issue
+# revision date: Fri, 08 Apr 2005 14:56:09 +0900
+#
+# S rset: ChangeSet|1.2107..1.2108
+# R rset: drivers/net/via-rhine.c|1.90..1.91
+#
+# Key:
+# S: Skipped  ChangeSet file only
+# O: Original Followed by Updated
+# U: Updated  Included with updated range of versions
+# I: Included Included verbatim
+# E: Excluded Excluded on request from user
+# D: Deleted  Manually deleted by subsequent user edit
+# R: Revised  Manually revised by subsequent user edit
+#
+#
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2005/03/18 21:43:33-08:00 dilinger@debian.org 
+#   [PATCH] Possible VIA-Rhine free irq issue
+#   
+#   It seems to me that in the VIA Rhine device driver the requested irq might
+#   not be freed in case the alloc_ring() function fails. alloc_ring()
+#   can fail with a ENOMEM return value because of possible
+#   pci_alloc_consistent() failures.
+#   
+#   Updated to CodingStyle.
+#   
+#   Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
+#   Signed-off-by: Chris Wright <chrisw@osdl.org>
+#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+# 
+# drivers/net/via-rhine.c
+#   2005/03/11 15:18:25-08:00 dilinger@debian.org +3 -1
+#   Possible VIA-Rhine free irq issue
+# 
+#
+--- a/drivers/net/via-rhine.c	2005-04-08 17:13:44.000000000 +0900
++++ b/drivers/net/via-rhine.c	2005-04-08 17:14:14.000000000 +0900
+@@ -1180,8 +1180,10 @@ static int rhine_open(struct net_device 
+ 		       dev->name, rp->pdev->irq);
+ 
+ 	i = alloc_ring(dev);
+-	if (i)
++	if (i) {
++		free_irq(rp->pdev->irq, dev);
+ 		return i;
++	}
+ 	alloc_rbufs(dev);
+ 	alloc_tbufs(dev);
+ 	wait_for_reset(dev, rp->quirks, dev->name);

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-10
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-10	2005-04-12 20:01:58 UTC (rev 2976)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/series/2.4.27-10	2005-04-13 06:24:20 UTC (rev 2977)
@@ -4,3 +4,8 @@
 + 157_fs-isofs-range-check-2.diff
 + 157_fs-isofs-range-check-3.diff
 + 158_fs-binfmt_elf-dos.diff
++ 159_fs-cramfs-stat.diff
++ 160_drivers-net-sis900-oops.diff
++ 161_drivers-net-amd8111e-irq.diff
++ 162_drivers-net-via-rhine-irq.diff
+