rpms/kernel/FC-4 jwltest-via-rhine-update.patch, NONE, 1.1.2.1 jwltest-acpi-dsdt-initrd.patch, 1.1.32.1, 1.1.32.2 kernel-2.6.spec, 1.1492.2.1, 1.1492.2.2 jwltest-libata-atapi.patch, 1.1.16.1, NONE jwltest-pci-d3hot-d0.patch, 1.1.22.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Nov 7 20:54:40 UTC 2005


Author: linville

Update of /cvs/dist/rpms/kernel/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv17338

Modified Files:
      Tag: private-linville-jwltest-fc4-22-branch
	jwltest-acpi-dsdt-initrd.patch kernel-2.6.spec 
Added Files:
      Tag: private-linville-jwltest-fc4-22-branch
	jwltest-via-rhine-update.patch 
Removed Files:
      Tag: private-linville-jwltest-fc4-22-branch
	jwltest-libata-atapi.patch jwltest-pci-d3hot-d0.patch 
Log Message:


jwltest-via-rhine-update.patch:
 via-rhine.c |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

--- NEW FILE jwltest-via-rhine-update.patch ---
--- linux-2.6.14/drivers/net/via-rhine.c.orig	2005-11-07 15:52:47.000000000 -0500
+++ linux-2.6.14/drivers/net/via-rhine.c	2005-11-07 15:52:53.000000000 -0500
@@ -490,6 +490,8 @@ struct rhine_private {
 	u8 tx_thresh, rx_thresh;
 
 	struct mii_if_info mii_if;
+	struct work_struct tx_timeout_task;
+	struct work_struct check_media_task;
 	void __iomem *base;
 };
 
@@ -497,6 +499,8 @@ static int  mdio_read(struct net_device 
 static void mdio_write(struct net_device *dev, int phy_id, int location, int value);
 static int  rhine_open(struct net_device *dev);
 static void rhine_tx_timeout(struct net_device *dev);
+static void rhine_tx_timeout_task(struct net_device *dev);
+static void rhine_check_media_task(struct net_device *dev);
 static int  rhine_start_tx(struct sk_buff *skb, struct net_device *dev);
 static irqreturn_t rhine_interrupt(int irq, void *dev_instance, struct pt_regs *regs);
 static void rhine_tx(struct net_device *dev);
@@ -814,8 +818,9 @@ static int __devinit rhine_init_one(stru
 
 	for (i = 0; i < 6; i++)
 		dev->dev_addr[i] = ioread8(ioaddr + StationAddr + i);
+	memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
 
-	if (!is_valid_ether_addr(dev->dev_addr)) {
+	if (!is_valid_ether_addr(dev->perm_addr)) {
 		rc = -EIO;
 		printk(KERN_ERR "Invalid MAC address\n");
 		goto err_out_unmap;
@@ -850,6 +855,12 @@ static int __devinit rhine_init_one(stru
 	if (rp->quirks & rqRhineI)
 		dev->features |= NETIF_F_SG|NETIF_F_HW_CSUM;
 
+	INIT_WORK(&rp->tx_timeout_task,
+		  (void (*)(void *))rhine_tx_timeout_task, dev);
+
+	INIT_WORK(&rp->check_media_task,
+		  (void (*)(void *))rhine_check_media_task, dev);
+
 	/* dev->name not defined before register_netdev()! */
 	rc = register_netdev(dev);
 	if (rc)
@@ -1076,6 +1087,11 @@ static void rhine_check_media(struct net
 		   ioaddr + ChipCmd1);
 }
 
+static void rhine_check_media_task(struct net_device *dev)
+{
+	rhine_check_media(dev, 0);
+}
+
 static void init_registers(struct net_device *dev)
 {
 	struct rhine_private *rp = netdev_priv(dev);
@@ -1129,8 +1145,8 @@ static void rhine_disable_linkmon(void _
 	if (quirks & rqRhineI) {
 		iowrite8(0x01, ioaddr + MIIRegAddr);	// MII_BMSR
 
-		/* Can be called from ISR. Evil. */
-		mdelay(1);
+		/* Do not call from ISR! */
+		msleep(1);
 
 		/* 0x80 must be set immediately before turning it off */
 		iowrite8(0x80, ioaddr + MIICmd);
@@ -1220,6 +1236,16 @@ static int rhine_open(struct net_device 
 static void rhine_tx_timeout(struct net_device *dev)
 {
 	struct rhine_private *rp = netdev_priv(dev);
+
+	/*
+	 * Move bulk of work outside of interrupt context
+	 */
+	schedule_work(&rp->tx_timeout_task);
+}
+
+static void rhine_tx_timeout_task(struct net_device *dev)
+{
+	struct rhine_private *rp = netdev_priv(dev);
 	void __iomem *ioaddr = rp->base;
 
 	printk(KERN_WARNING "%s: Transmit timed out, status %4.4x, PHY status "
@@ -1625,7 +1651,7 @@ static void rhine_error(struct net_devic
 	spin_lock(&rp->lock);
 
 	if (intr_status & IntrLinkChange)
-		rhine_check_media(dev, 0);
+		schedule_work(&rp->check_media_task);
 	if (intr_status & IntrStatsMax) {
 		rp->stats.rx_crc_errors += ioread16(ioaddr + RxCRCErrs);
 		rp->stats.rx_missed_errors += ioread16(ioaddr + RxMissed);
@@ -1829,6 +1855,7 @@ static struct ethtool_ops netdev_ethtool
 	.set_wol		= rhine_set_wol,
 	.get_sg			= ethtool_op_get_sg,
 	.get_tx_csum		= ethtool_op_get_tx_csum,
+	.get_perm_addr		= ethtool_op_get_perm_addr,
 };
 
 static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
@@ -1872,6 +1899,9 @@ static int rhine_close(struct net_device
 	spin_unlock_irq(&rp->lock);
 
 	free_irq(rp->pdev->irq, dev);
+
+	flush_scheduled_work();
+
 	free_rbufs(dev);
 	free_tbufs(dev);
 	free_ring(dev);

jwltest-acpi-dsdt-initrd.patch:
 drivers/acpi/Kconfig        |   13 +++++
 drivers/acpi/osl.c          |  104 +++++++++++++++++++++++++++++++++++++++-----
 drivers/acpi/tables/tbget.c |    5 ++
 init/main.c                 |   16 +++---
 4 files changed, 120 insertions(+), 18 deletions(-)

Index: jwltest-acpi-dsdt-initrd.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/Attic/jwltest-acpi-dsdt-initrd.patch,v
retrieving revision 1.1.32.1
retrieving revision 1.1.32.2
diff -u -r1.1.32.1 -r1.1.32.2
--- jwltest-acpi-dsdt-initrd.patch	7 Nov 2005 19:45:08 -0000	1.1.32.1
+++ jwltest-acpi-dsdt-initrd.patch	7 Nov 2005 20:54:37 -0000	1.1.32.2
@@ -1,6 +1,6 @@
---- linux-2.6.12/drivers/acpi/Kconfig.orig	2005-06-17 15:48:29.000000000 -0400
-+++ linux-2.6.12/drivers/acpi/Kconfig	2005-06-22 12:23:14.467811177 -0400
-@@ -352,4 +352,17 @@ config ACPI_HOTPLUG_MEMORY
+--- linux-2.6.14/drivers/acpi/Kconfig.orig	2005-11-07 15:45:19.000000000 -0500
++++ linux-2.6.14/drivers/acpi/Kconfig	2005-11-07 15:45:27.000000000 -0500
+@@ -341,4 +341,17 @@ config ACPI_HOTPLUG_MEMORY
  		$>modprobe acpi_memhotplug 
  endif	# ACPI
  
@@ -11,37 +11,30 @@
 +	help
 +	  The DSDT (Differentiated System Description Table) often needs to be
 +	  overridden because of broken BIOS implementations. If you want to use
-+	  a customized DSDT, please use the mkinitrd tool (mkinitrd package) to
++	  a customized DSDT, please use the mkinitrd tool (mkinitrd package) to 
 +	  attach the DSDT to the initrd or initramfs 
 +	  (see http://gaugusch.at/kernel.shtml for details)
 +	  If there is no DSDT found in the initrd, the DSDT from the BIOS is
 +	  used. It is save to say yes here.
 +
  endmenu
---- linux-2.6.12/drivers/acpi/osl.c.orig	2005-06-17 15:48:29.000000000 -0400
-+++ linux-2.6.12/drivers/acpi/osl.c	2005-06-22 12:23:14.469810910 -0400
-@@ -44,7 +44,10 @@
+--- linux-2.6.14/drivers/acpi/osl.c.orig	2005-11-07 15:45:19.000000000 -0500
++++ linux-2.6.14/drivers/acpi/osl.c	2005-11-07 15:45:27.000000000 -0500
+@@ -44,6 +44,10 @@
  #include <asm/uaccess.h>
  
  #include <linux/efi.h>
--
 +#ifdef CONFIG_ACPI_INITRD
 +#include<linux/syscalls.h>
 +#include <linux/initrd.h>
 +#endif
  
  #define _COMPONENT		ACPI_OS_SERVICES
- ACPI_MODULE_NAME	("osl")
-@@ -246,25 +249,105 @@ acpi_os_predefined_override (const struc
+ ACPI_MODULE_NAME("osl")
+@@ -244,24 +248,104 @@ acpi_os_predefined_override(const struct
  	return AE_OK;
  }
  
--acpi_status
--acpi_os_table_override (struct acpi_table_header *existing_table,
--			struct acpi_table_header **new_table)
--{
--	if (!existing_table || !new_table)
--		return AE_BAD_PARAMETER;
 +#ifdef CONFIG_ACPI_INITRD
 +static char *
 +acpi_find_dsdt_initrd(void)
@@ -71,16 +64,12 @@
 +				}
 +				data++;
 +			}
- 
--#ifdef CONFIG_ACPI_CUSTOM_DSDT
--	if (strncmp(existing_table->signature, "DSDT", 4) == 0)
--		*new_table = (struct acpi_table_header*)AmlCode;
--	else
++
 +			if (dsdt_start){
 +				printk(PREFIX " found at offset %zu",
 +				       dsdt_start - (char *)initrd_start);
 +				len = (char*) initrd_end - dsdt_start;
-+				printk(", size: %lu bytes\n", len);
++				printk(", size: %zu bytes\n", len);
 +				dsdt_buffer = ACPI_MEM_ALLOCATE(len + 1);
 +				memcpy(dsdt_buffer, dsdt_start, len);
 +				*(dsdt_buffer + len + 1)= '\0';
@@ -124,67 +113,56 @@
 +}
 +#endif
 +	
-+acpi_status
-+	acpi_os_table_override (struct acpi_table_header *existing_table,
-+				struct acpi_table_header **new_table)
-+	{
-+		if (!existing_table || !new_table)
-+			return AE_BAD_PARAMETER;
-+		
- 		*new_table = NULL;
+ acpi_status
+-acpi_os_table_override(struct acpi_table_header * existing_table,
+-		       struct acpi_table_header ** new_table)
++acpi_os_table_override (struct acpi_table_header *existing_table,
++			struct acpi_table_header **new_table)
+ {
+ 	if (!existing_table || !new_table)
+ 		return AE_BAD_PARAMETER;
+-
+-#ifdef CONFIG_ACPI_CUSTOM_DSDT
+-	if (strncmp(existing_table->signature, "DSDT", 4) == 0)
+-		*new_table = (struct acpi_table_header *)AmlCode;
+-	else
+-		*new_table = NULL;
 -#else
--	*new_table = NULL;
-+		if (strncmp(existing_table->signature, "DSDT", 4) == 0) {
++		
+ 	*new_table = NULL;
++	if (strncmp(existing_table->signature, "DSDT", 4) == 0) {
 +#ifdef CONFIG_ACPI_CUSTOM_DSDT
-+			*new_table = (struct acpi_table_header*)AmlCode;
++		*new_table = (struct acpi_table_header*)AmlCode;
 +#elif defined(CONFIG_ACPI_INITRD)
-+			*new_table = (struct acpi_table_header*)acpi_find_dsdt_initrd();
++		*new_table = (struct acpi_table_header*)acpi_find_dsdt_initrd();
  #endif
-+			if (*new_table)
-+				printk(KERN_INFO PREFIX "Using customized DSDT\n");
-+		}
++		if (*new_table)
++			printk(KERN_INFO PREFIX "Using customized DSDT\n");
++	}
  	return AE_OK;
--}
+ }
 -
--static irqreturn_t
-+	}
 + 
-+ static irqreturn_t
- acpi_irq(int irq, void *dev_id, struct pt_regs *regs)
+ static irqreturn_t acpi_irq(int irq, void *dev_id, struct pt_regs *regs)
  {
- 	return (*acpi_irq_handler)(acpi_irq_context) ? IRQ_HANDLED : IRQ_NONE;
---- linux-2.6.12/drivers/acpi/tables/tbget.c.orig	2005-06-17 15:48:29.000000000 -0400
-+++ linux-2.6.12/drivers/acpi/tables/tbget.c	2005-06-22 12:23:14.471810644 -0400
-@@ -45,7 +45,6 @@
- #include <acpi/acpi.h>
- #include <acpi/actables.h>
- 
--
- #define _COMPONENT          ACPI_TABLES
- 	 ACPI_MODULE_NAME    ("tbget")
- 
-@@ -287,12 +286,17 @@ acpi_tb_table_override (
- 			acpi_format_exception (status)));
- 		return_ACPI_STATUS (status);
- 	}
--
-+	
- 	/* Copy the table info */
- 
- 	ACPI_REPORT_INFO (("Table [%4.4s] replaced by host OS\n",
- 		table_info->pointer->signature));
+ 	return (*acpi_irq_handler) (acpi_irq_context) ? IRQ_HANDLED : IRQ_NONE;
+--- linux-2.6.14/drivers/acpi/tables/tbget.c.orig	2005-11-07 15:46:15.000000000 -0500
++++ linux-2.6.14/drivers/acpi/tables/tbget.c	2005-11-07 15:46:08.000000000 -0500
+@@ -283,6 +283,11 @@ acpi_tb_table_override(struct acpi_table
+ 	ACPI_REPORT_INFO(("Table [%4.4s] replaced by host OS\n",
+ 			  table_info->pointer->signature));
  
 +#ifdef CONFIG_ACPI_INITRD
 +	if (new_table)
 +	    ACPI_MEM_FREE(new_table);
 +#endif
 +
- 	return_ACPI_STATUS (AE_OK);
+ 	return_ACPI_STATUS(AE_OK);
  }
  
---- linux-2.6.12/init/main.c.orig	2005-06-22 12:16:17.014413511 -0400
-+++ linux-2.6.12/init/main.c	2005-06-22 12:23:14.473810378 -0400
-@@ -520,8 +520,6 @@ asmlinkage void __init start_kernel(void
+--- linux-2.6.14/init/main.c.orig	2005-11-07 15:45:19.000000000 -0500
++++ linux-2.6.14/init/main.c	2005-11-07 15:45:27.000000000 -0500
+@@ -540,8 +540,6 @@ asmlinkage void __init start_kernel(void
  
  	check_bugs();
  
@@ -193,7 +171,7 @@
  	/* Do the rest non-__init'ed, we're now alive */
  	rest_init();
  }
-@@ -651,6 +649,14 @@ static int init(void * unused)
+@@ -671,6 +669,14 @@ static int init(void * unused)
  	 */
  	child_reaper = current;
  
@@ -208,7 +186,7 @@
  	/* Sets up cpus_possible() */
  	smp_prepare_cpus(max_cpus);
  
-@@ -661,12 +667,6 @@ static int init(void * unused)
+@@ -682,12 +688,6 @@ static int init(void * unused)
  
  	cpuset_init_smp();
  
@@ -220,4 +198,4 @@
 -
  	do_basic_setup();
  
- 	sched_init_smp();
+ 	/*


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/kernel-2.6.spec,v
retrieving revision 1.1492.2.1
retrieving revision 1.1492.2.2
diff -u -r1.1492.2.1 -r1.1492.2.2
--- kernel-2.6.spec	7 Nov 2005 19:45:08 -0000	1.1492.2.1
+++ kernel-2.6.spec	7 Nov 2005 20:54:37 -0000	1.1492.2.2
@@ -307,6 +307,7 @@
 Patch1305: jwltest-3c59x-misc.patch
 Patch1306: jwltest-sundance-fixes.patch
 Patch1307: jwltest-b44-alloc.patch
+Patch1308: jwltest-via-rhine-update.patch
 
 Patch1400: linux-2.6-pcmcia-disable-warning.patch
 
@@ -367,8 +368,6 @@
 Patch2001: linux-2.6-vm-silence-atomic-alloc-failures.patch
 
 Patch2100: jwltest-acpi-dsdt-initrd.patch
-Patch2110: jwltest-libata-atapi.patch
-Patch2120: jwltest-pci-d3hot-d0.patch
 
 #
 # 10000 to 20000 is for stuff that has to come last due to the
@@ -725,6 +724,8 @@
 %patch1306 -p1
 # b44 dma alloc problems at open
 %patch1307 -p1
+# update via-rhine from upstream
+%patch1308 -p1
 
 # disable pcmcia warnings
 %patch1400 -p1
@@ -825,10 +826,6 @@
 
 # Add DSDT override from initrd
 %patch2100 -p1
-# Enable libata ATAPI support
-%patch2110 -p1
-# avoid PCI config loss during enable from D3hot
-%patch2120 -p1
 
 #
 # Patches 5000 to 6000 are reserved for new drivers that are about to


--- jwltest-libata-atapi.patch DELETED ---


--- jwltest-pci-d3hot-d0.patch DELETED ---




More information about the fedora-cvs-commits mailing list