rpms/kernel/F-7 linux-2.6-bcm43xx-mac80211-fixes.patch, NONE, 1.1 linux-2.6-iwlwifi-sw-scan-default.patch, NONE, 1.1 linux-2.6-libata-pata-pcmcia-new-ident.patch, NONE, 1.1 linux-2.6-mac80211-fixes.patch, NONE, 1.1 linux-2.6-mac80211-scan-optimizations.patch, NONE, 1.1 linux-2.6-x86-dell-hpet.patch, NONE, 1.1 kernel-2.6.spec, 1.3169, 1.3170

Dave Jones (davej) fedora-extras-commits at redhat.com
Fri May 18 19:37:44 UTC 2007


Author: davej

Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32317

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-bcm43xx-mac80211-fixes.patch 
	linux-2.6-iwlwifi-sw-scan-default.patch 
	linux-2.6-libata-pata-pcmcia-new-ident.patch 
	linux-2.6-mac80211-fixes.patch 
	linux-2.6-mac80211-scan-optimizations.patch 
	linux-2.6-x86-dell-hpet.patch 
Log Message:
sync with devel/

* Fri May 18 2007 Dave Jones <davej at redhat.com>
- pata_pcmcia.c: add card ident for jvc cdrom

* Fri May 18 2007 John W. Linville <linville at redhat.com>
- important phy and ssb bus fixes for bcm43xx-mac80211

* Fri May 18 2007 Dave Jones <davej at redhat.com>
- Blacklist Dell Optiplex 320 from using the HPET.

* Fri May 18 2007 Dave Jones <davej at redhat.com>
- Disable ub driver. (#204396)

* Fri May 18 2007 John W. Linville <linville at redhat.com>
- upstream mac80211 bugfixes (defrag mem leak, reassoc failure handling)
- make iwl3945 default to using software scan
- improve mac80211 software scan performance




linux-2.6-bcm43xx-mac80211-fixes.patch:

--- NEW FILE linux-2.6-bcm43xx-mac80211-fixes.patch ---
--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c.orig	2007-05-18 15:07:43.000000000 -0400
+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c	2007-05-18 15:07:06.000000000 -0400
@@ -3243,9 +3243,6 @@ static int bcm43xx_wireless_core_init(st
 		tmp = phy->gmode ? BCM43xx_TMSLOW_GMODE : 0;
 		bcm43xx_wireless_core_reset(dev, tmp);
 	}
-	err = bcm43xx_phy_versioning(dev);
-	if (err)
-		goto err_busdown;
 
 	if ((phy->type == BCM43xx_PHYTYPE_B) || (phy->type == BCM43xx_PHYTYPE_G)) {
 		phy->lo_control = kzalloc(sizeof(*(phy->lo_control)), GFP_KERNEL);
@@ -3628,20 +3625,19 @@ static int bcm43xx_wireless_core_attach(
 	tmp = dev->phy.gmode ? BCM43xx_TMSLOW_GMODE : 0;
 	bcm43xx_wireless_core_reset(dev, tmp);
 
+	err = bcm43xx_phy_versioning(dev);
+	if (err)
+		goto err_leds_exit;
 	/* Check if this device supports multiband. */
 	if (!pdev ||
 	    (pdev->device != 0x4312 &&
 	     pdev->device != 0x4319 &&
 	     pdev->device != 0x4324)) {
 		/* No multiband support. */
-		u8 phytype;
-
-		tmp = bcm43xx_read16(dev, BCM43xx_MMIO_PHY_VER);
-		phytype = (tmp & 0x0F00) >> 8;
 		have_aphy = 0;
 		have_bphy = 0;
 		have_gphy = 0;
-		switch (phytype) {
+		switch (dev->phy.type) {
 		case BCM43xx_PHYTYPE_A:
 			have_aphy = 1;
 			break;
--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c.orig	2007-05-18 15:07:37.000000000 -0400
+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c	2007-05-18 15:07:06.000000000 -0400
@@ -603,11 +603,11 @@ static void bcm43xx_phy_agcsetup(struct 
 	bcm43xx_phy_write(dev, 0x04A1,
 			  (bcm43xx_phy_read(dev, 0x04A1)
 			   & 0xF0FF) | 0x0600);
-	bcm43xx_phy_write(dev, 0x0412,
-			  (bcm43xx_phy_read(dev, 0x0412)
+	bcm43xx_phy_write(dev, 0x04A2,
+			  (bcm43xx_phy_read(dev, 0x04A2)
 			   & 0xF0FF) | 0x0700);
-	bcm43xx_phy_write(dev, 0x0410,
-			  (bcm43xx_phy_read(dev, 0x0410)
+	bcm43xx_phy_write(dev, 0x04A0,
+			  (bcm43xx_phy_read(dev, 0x04A0)
 			   & 0xF0FF) | 0x0100);
 
 	if (phy->rev == 1) {
@@ -741,7 +741,7 @@ static void bcm43xx_phy_setupg(struct bc
 	if (phy->rev <= 2)
 		for (i = 0; i < BCM43xx_TAB_NOISESCALEG_SIZE; i++)
 			bcm43xx_ofdmtab_write16(dev, 0x1400, i, bcm43xx_tab_noisescaleg1[i]);
-	else if ((phy->rev == 7) && (bcm43xx_phy_read(dev, 0x0449) & 0x0200))
+	else if ((phy->rev >= 7) && (bcm43xx_phy_read(dev, 0x0449) & 0x0200))
 		for (i = 0; i < BCM43xx_TAB_NOISESCALEG_SIZE; i++)
 			bcm43xx_ofdmtab_write16(dev, 0x1400, i, bcm43xx_tab_noisescaleg3[i]);
 	else
@@ -751,7 +751,7 @@ static void bcm43xx_phy_setupg(struct bc
 	if (phy->rev == 2)
 		for (i = 0; i < BCM43xx_TAB_SIGMASQR_SIZE; i++)
 			bcm43xx_ofdmtab_write16(dev, 0x5000, i, bcm43xx_tab_sigmasqr1[i]);
-	else if ((phy->rev > 2) && (phy->rev <= 7))
+	else if ((phy->rev > 2) && (phy->rev <= 8))
 		for (i = 0; i < BCM43xx_TAB_SIGMASQR_SIZE; i++)
 			bcm43xx_ofdmtab_write16(dev, 0x5000, i, bcm43xx_tab_sigmasqr2[i]);
 
@@ -1420,7 +1420,7 @@ static void bcm43xx_calc_loopback_gain(s
 	}
 	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER,
 			  bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVER) | 0x000C);
-	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER,
+	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
 			  bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVERVAL) | 0x000C);
 	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER,
 			  bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVER) | 0x0030);
--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.c.orig	2007-05-18 15:07:49.000000000 -0400
+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.c	2007-05-18 15:07:06.000000000 -0400
@@ -435,7 +435,8 @@ static void lo_measure_txctl_values(stru
 					       & 0xFF00) | lo->tx_bias | lo->tx_magn);
 		}
 	} else {
-		lo->tx_magn = 0; /* unused */
+		lo->tx_magn = 0; /* FIXME */
+		lo->tx_bias = 0;
 		bcm43xx_radio_write16(dev, 0x52,
 				      bcm43xx_radio_read16(dev, 0x52)
 				      & 0xFFF0); /* TX bias == 0 */
--- linux-2.6.21.noarch/drivers/ssb/main.c.orig	2007-05-18 15:07:54.000000000 -0400
+++ linux-2.6.21.noarch/drivers/ssb/main.c	2007-05-18 15:07:06.000000000 -0400
@@ -383,15 +383,18 @@ static int ssb_devices_register(struct s
 			break;
 		}
 
+		sdev->dev = dev;
 		err = device_register(dev);
 		if (err) {
 			ssb_printk(KERN_ERR PFX
 				   "Could not register %s\n",
 				   dev->bus_id);
+			/* Set dev to NULL to not unregister
+			 * dev on error unwinding. */
+			sdev->dev = NULL;
 			kfree(devwrap);
 			goto error;
 		}
-		sdev->dev = dev;
 		dev_idx++;
 	}
 
@@ -549,14 +552,15 @@ int ssb_bus_pcibus_register(struct ssb_b
 {
 	int err;
 
-	ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found on "
-		   "PCI device %s\n", bus->host_pci->dev.bus_id);
-
 	bus->bustype = SSB_BUSTYPE_PCI;
 	bus->host_pci = host_pci;
 	bus->ops = &ssb_pci_ops;
 
 	err = ssb_bus_register(bus, 0);
+	if (!err) {
+		ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found on "
+			   "PCI device %s\n", host_pci->dev.bus_id);
+	}
 
 	return err;
 }
@@ -571,15 +575,16 @@ int ssb_bus_pcmciabus_register(struct ss
 {
 	int err;
 
-	ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found on "
-		   "PCMCIA device %s\n", bus->host_pcmcia->devname);
-
 	bus->bustype = SSB_BUSTYPE_PCMCIA;
 	bus->host_pcmcia = pcmcia_dev;
 	bus->ops = &ssb_pcmcia_ops;
 	fill_sprom(&bus->sprom);
 
 	err = ssb_bus_register(bus, baseaddr);
+	if (!err) {
+		ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found on "
+			   "PCMCIA device %s\n", pcmcia_dev->devname);
+	}
 
 	return err;
 }
@@ -592,13 +597,15 @@ int ssb_bus_ssbbus_register(struct ssb_b
 {
 	int err;
 
-	ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found at "
-		   "address 0x%08lX\n", baseaddr);
-
 	bus->bustype = SSB_BUSTYPE_SSB;
 	bus->ops = &ssb_ssb_ops;
 	fill_sprom(&bus->sprom);
+
 	err = ssb_bus_register(bus, baseaddr);
+	if (!err) {
+		ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found at "
+			   "address 0x%08lX\n", baseaddr);
+	}
 
 	return err;
 }

linux-2.6-iwlwifi-sw-scan-default.patch:

--- NEW FILE linux-2.6-iwlwifi-sw-scan-default.patch ---
--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c.orig	2007-05-18 10:28:27.000000000 -0400
+++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c	2007-05-18 10:38:03.000000000 -0400
@@ -103,7 +103,7 @@ MODULE_LICENSE("GPL");
 u32 iwl_debug_level;
 #endif
 
-static int param_disable_hw_scan = 0;
+static int param_disable_hw_scan = 1;
 static int param_debug = 0;
 static int param_channel = 0;
 static int param_mode = 0;
@@ -11232,6 +11232,8 @@ static int ipw_pci_probe(struct pci_dev 
 	local->short_preamble = 1;
 
 	ieee->flags = IEEE80211_HW_WEP_INCLUDE_IV;
+	if (param_disable_hw_scan)
+		ieee->flags |= IEEE80211_HW_NO_PROBE_FILTERING;
 	ieee->queues = 4;
 
 	spin_lock_init(&priv->lock);
@@ -11685,7 +11687,7 @@ MODULE_PARM_DESC(debug, "debug output ma
 module_param_named(channel, param_channel, int, 0444);
 MODULE_PARM_DESC(channel, "channel to limit associate to (default 0 [ANY])");
 module_param_named(disable_hw_scan, param_disable_hw_scan, int, 0444);
-MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)");
+MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 1)");
 
 /* QoS */
 module_param_named(qos_enable, param_qos_enable, int, 0444);

linux-2.6-libata-pata-pcmcia-new-ident.patch:

--- NEW FILE linux-2.6-libata-pata-pcmcia-new-ident.patch ---
>From davej  Tue May  8 10:22:45 2007
Return-path: <linux-ide-owner at vger.kernel.org>
X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on
	gelk.kernelslacker.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham
	version=3.1.8
Envelope-to: davej at codemonkey.org.uk
Delivery-date: Tue, 08 May 2007 15:21:14 +0100
Received: from testure.choralone.org [194.9.77.134]
	by gelk.kernelslacker.org with IMAP (fetchmail-6.3.6)
	for <davej at localhost> (single-drop); Tue, 08 May 2007 10:22:45 -0400 (EDT)
Received: from vger.kernel.org ([209.132.176.167])
	by testure.choralone.org with esmtp (Exim 4.63)
	(envelope-from <linux-ide-owner at vger.kernel.org>)
	id 1HlQYz-0002lV-Qb
	for davej at codemonkey.org.uk; Tue, 08 May 2007 15:21:14 +0100
Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
	id S968076AbXEHOVB (ORCPT <rfc822;davej at codemonkey.org.uk>);
	Tue, 8 May 2007 10:21:01 -0400
Received: (majordomo at vger.kernel.org) by vger.kernel.org id S968080AbXEHOVA
	(ORCPT <rfc822;linux-ide-outgoing>); Tue, 8 May 2007 10:21:00 -0400
Received: from anchor-post-34.mail.demon.net ([194.217.242.92]:3414 "EHLO
	anchor-post-34.mail.demon.net" rhost-flags-OK-OK-OK-OK)
	by vger.kernel.org with ESMTP id S968076AbXEHOU7 (ORCPT
	<rfc822;linux-ide at vger.kernel.org>); Tue, 8 May 2007 10:20:59 -0400
X-Greylist: delayed 170437 seconds by postgrey-1.27 at vger.kernel.org; Tue, 08 May 2007 10:20:59 EDT
Received: from rsk.demon.co.uk ([80.176.90.227] helo=[192.168.0.6])
	by anchor-post-34.mail.demon.net with esmtp (Exim 4.42)
	id 1HlQYj-000Fw4-DY; Tue, 08 May 2007 14:20:57 +0000
Subject: [PATCH] pata_pcmcia.c: add card ident for jvc cdrom
From:	Richard Kennedy <richard at rsk.demon.co.uk>
To:	jgarzik at pobox.com
Cc:	linux-ide at vger.kernel.org
Content-Type: text/plain
Date:	Tue, 08 May 2007 15:20:56 +0100
Message-Id: <1178634056.3835.12.camel at localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.8.3 (2.8.3-2.fc6) 
Content-Transfer-Encoding: 7bit
Sender:	linux-ide-owner at vger.kernel.org
Precedence: bulk
X-Mailing-List:	linux-ide at vger.kernel.org
Status: RO
Content-Length: 1103
Lines: 31

update pata_pcmcia to add card ident for JVC MP-CDX1 cdrom drive
card info:
PRODID_1="KME"
PRODID_2="KXLC005"
PRODID_3="00"
MANFID=0032,2904

Signed-off-by: Richard Kennedy <richard at rsk.demon.co.uk>
---
patch against 2.6.21.1

This gets my laptop cd drive working with the new libata driver.
thanks
Richard

--- linux-2.6.21.1/drivers/ata/pata_pcmcia.c	2007-04-27 22:49:26.000000000 +0100
+++ linux-2.6.21.1/drivers/ata/pata_pcmcia.c.new	2007-05-08 12:18:35.000000000 +0100
@@ -322,6 +322,7 @@ static struct pcmcia_device_id pcmcia_de
 	PCMCIA_DEVICE_MANF_CARD(0x000a, 0x0000),	/* I-O Data CFA */
 	PCMCIA_DEVICE_MANF_CARD(0x001c, 0x0001),	/* Mitsubishi CFA */
 	PCMCIA_DEVICE_MANF_CARD(0x0032, 0x0704),
+	PCMCIA_DEVICE_MANF_CARD(0x0032, 0x2904),
 	PCMCIA_DEVICE_MANF_CARD(0x0045, 0x0401),	/* SanDisk CFA */
 	PCMCIA_DEVICE_MANF_CARD(0x0098, 0x0000),	/* Toshiba */
 	PCMCIA_DEVICE_MANF_CARD(0x00a4, 0x002d),
 

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


linux-2.6-mac80211-fixes.patch:

--- NEW FILE linux-2.6-mac80211-fixes.patch ---
--- linux-2.6.21.noarch/net/mac80211/ieee80211.c.orig	2007-05-18 10:16:22.000000000 -0400
+++ linux-2.6.21.noarch/net/mac80211/ieee80211.c	2007-05-18 10:19:02.000000000 -0400
@@ -3406,8 +3406,10 @@ ieee80211_rx_h_defragment(struct ieee802
 			return TXRX_DROP;
 		}
 	}
-	while ((skb = __skb_dequeue(&entry->skb_list)))
+	while ((skb = __skb_dequeue(&entry->skb_list))) {
 		memcpy(skb_put(rx->skb, skb->len), skb->data, skb->len);
+		dev_kfree_skb(skb);
+	}
 
 	/* Complete frame has been reassembled - process it now */
 	rx->fragmented = 1;
--- linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c.orig	2007-05-18 10:16:20.000000000 -0400
+++ linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c	2007-05-18 10:19:02.000000000 -0400
@@ -1180,6 +1180,8 @@ static void ieee80211_rx_mgmt_assoc_resp
 	if (status_code != WLAN_STATUS_SUCCESS) {
 		printk(KERN_DEBUG "%s: AP denied association (code=%d)\n",
 		       dev->name, status_code);
+		if (status_code == WLAN_STATUS_REASSOC_NO_ASSOC)
+			ifsta->prev_bssid_set = 0;
 		return;
 	}
 

linux-2.6-mac80211-scan-optimizations.patch:

--- NEW FILE linux-2.6-mac80211-scan-optimizations.patch ---
--- linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c.orig	2007-05-18 10:20:33.000000000 -0400
+++ linux-2.6.21.noarch/net/mac80211/ieee80211_sta.c	2007-05-18 10:41:01.000000000 -0400
@@ -45,9 +45,8 @@
 #define IEEE80211_SCAN_INTERVAL_SLOW (15 * HZ)
 #define IEEE80211_IBSS_JOIN_TIMEOUT (20 * HZ)
 
-#define IEEE80211_PROBE_DELAY (HZ / 33)
-#define IEEE80211_CHANNEL_TIME (HZ / 33)
-#define IEEE80211_PASSIVE_CHANNEL_TIME (HZ / 5)
+#define IEEE80211_CHANNEL_TIME (HZ / 50)
+#define IEEE80211_PASSIVE_CHANNEL_TIME (HZ / 9)
 #define IEEE80211_SCAN_RESULT_EXPIRE (10 * HZ)
 #define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ)
 #define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ)
@@ -2828,15 +2827,17 @@ void ieee80211_sta_scan_work(struct work
 		if (skip)
 			break;
 
-		next_delay = IEEE80211_PROBE_DELAY +
-			     usecs_to_jiffies(local->hw.channel_change_time);
+		next_delay = usecs_to_jiffies(local->hw.channel_change_time);
 		local->scan_state = SCAN_SEND_PROBE;
-		break;
+		if (local->hw.channel_change_time)
+			break;
 	case SCAN_SEND_PROBE:
 		if (local->scan_channel->flag & IEEE80211_CHAN_W_ACTIVE_SCAN) {
 			ieee80211_send_probe_req(dev, NULL, local->scan_ssid,
 						 local->scan_ssid_len);
 			next_delay = IEEE80211_CHANNEL_TIME;
+			if (local->scan_hw_mode->mode == MODE_IEEE80211A)
+				next_delay >>= 1;
 		} else
 			next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
 		local->scan_state = SCAN_SET_CHANNEL;

linux-2.6-x86-dell-hpet.patch:

--- NEW FILE linux-2.6-x86-dell-hpet.patch ---
>From davej  Fri May  4 17:29:51 2007
Return-path: <linux-kernel-owner+davej=40kernelslacker.org-S1422720AbXEDV3K at vger.kernel.org>
X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on
	gelk.kernelslacker.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
	version=3.1.8
Envelope-to: davej at kernelslacker.org
Delivery-date: Fri, 04 May 2007 22:29:46 +0100
Received: from testure.choralone.org [194.9.77.134]
	by gelk.kernelslacker.org with IMAP (fetchmail-6.3.6)
	for <davej at localhost> (single-drop); Fri, 04 May 2007 17:29:51 -0400 (EDT)
Received: from vger.kernel.org ([209.132.176.167])
	by testure.choralone.org with esmtp (Exim 4.63)
	(envelope-from <linux-kernel-owner+davej=40kernelslacker.org-S1422720AbXEDV3K at vger.kernel.org>)
	id 1Hk5LV-0006nX-Q1
	for davej at kernelslacker.org; Fri, 04 May 2007 22:29:46 +0100
Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
	id S1422720AbXEDV3K (ORCPT <rfc822;davej at kernelslacker.org>);
	Fri, 4 May 2007 17:29:10 -0400
Received: (majordomo at vger.kernel.org) by vger.kernel.org id S1422743AbXEDV3J
	(ORCPT <rfc822;linux-kernel-outgoing>);
	Fri, 4 May 2007 17:29:09 -0400
Received: from e6.ny.us.ibm.com ([32.97.182.146]:47420 "EHLO e6.ny.us.ibm.com"
	rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
	id S1422720AbXEDV3I (ORCPT <rfc822;linux-kernel at vger.kernel.org>);
	Fri, 4 May 2007 17:29:08 -0400
Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236])
	by e6.ny.us.ibm.com (8.13.8/8.13.8) with ESMTP id l44LU3oo010992
	for <linux-kernel at vger.kernel.org>; Fri, 4 May 2007 17:30:04 -0400
Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216])
	by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v8.3) with ESMTP id l44LT7tT546216
	for <linux-kernel at vger.kernel.org>; Fri, 4 May 2007 17:29:07 -0400
Received: from d01av02.pok.ibm.com (loopback [127.0.0.1])
	by d01av02.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id l44LT62U004362
	for <linux-kernel at vger.kernel.org>; Fri, 4 May 2007 17:29:07 -0400
Received: from [9.67.61.99] (wecm-9-67-61-99.wecm.ibm.com [9.67.61.99])
	by d01av02.pok.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id l44LT5Ia004316;
	Fri, 4 May 2007 17:29:05 -0400
Subject: [PATCH] Blacklist Dell Optiplex 320 from using the HPET
From:	john stultz <johnstul at us.ibm.com>
To:	Andrew Morton <akpm at linux-foundation.org>
Cc:	"Guilherme M. Schroeder" <guilherme at centralinf.com.br>,
	lkml <linux-kernel at vger.kernel.org>, Andi Kleen <ak at suse.de>,
	Thomas Gleixner <tglx at linutronix.de>
Content-Type: text/plain
Date:	Fri, 04 May 2007 14:29:04 -0700
Message-Id: <1178314144.6094.7.camel at localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.10.1 
Content-Transfer-Encoding: 7bit
Sender:	linux-kernel-owner at vger.kernel.org
Precedence: bulk
X-Mailing-List:	linux-kernel at vger.kernel.org
Status: RO
Content-Length: 2257
Lines: 82

One of the 2.6.21 regressions was Guilherme's problem seeing his box
lock up when the system detected an unstable TSC and dropped back to
using the HPET.

In digging deeper, we found the HPET is not actually incrementing on
this system. And in fact, the reason why this issue just cropped up was
because of Thomas's clocksource watchdog code was comparing the TSC to
the HPET (which wasn't moving) and thought the TSC was broken.

Anyway, Guliherme checked for a BIOS update and did not find one, so
I've added a DMI blacklist against his system so the HPET is not used.

Many thanks to Guilherme for the slow and laborious testing that finally
narrowed down this issue.

thanks
-john

Signed-off-by: John Stultz <johnstul at us.ibm.com>

diff --git a/arch/i386/kernel/hpet.c b/arch/i386/kernel/hpet.c
index 17d7345..1ae27f3 100644
--- a/arch/i386/kernel/hpet.c
+++ b/arch/i386/kernel/hpet.c
@@ -5,6 +5,7 @@
 #include <linux/init.h>
 #include <linux/sysdev.h>
 #include <linux/pm.h>
+#include <linux/dmi.h>
 
 #include <asm/hpet.h>
 #include <asm/io.h>
@@ -48,6 +49,31 @@ static int __init hpet_setup(char* str)
 }
 __setup("hpet=", hpet_setup);
 
+
+/* DMI Blacklist for bad HPETs */
+static int __init dmi_mark_hpet_broken(struct dmi_system_id *d)
+{
+	printk(KERN_NOTICE "%s detected: HPET does not function.\n",
+		       d->ident);
+	boot_hpet_disable = 1;
+	return 0;
+}
+
+/* List of systems that have known HPETproblems */
+static struct dmi_system_id bad_hpet_dmi_table[] = {
+	{
+	 .callback = dmi_mark_hpet_broken,
+	 .ident = "Dell OptiPlex 320",
+	 .matches = {
+		     DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 320"),
+		     DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),
+		     DMI_MATCH(DMI_BOARD_NAME, "0UT237"),
+		     },
+	 },
+	 {}
+};
+
+
 static inline int is_hpet_capable(void)
 {
 	return (!boot_hpet_disable && hpet_address);
@@ -228,6 +254,8 @@ int __init hpet_enable(void)
 	uint64_t hpet_freq;
 	u64 tmp;
 
+	dmi_check_system(bad_hpet_dmi_table);
+
 	if (!is_hpet_capable())
 		return 0;
 




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

>From davej  Fri May  4 17:46:16 2007
Return-path: <linux-kernel-owner+davej=40kernelslacker.org-S376145AbXEDVoY at vger.kernel.org>
X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on
	gelk.kernelslacker.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,FORGED_RCVD_HELO
	autolearn=ham version=3.1.8
Envelope-to: davej at kernelslacker.org
Delivery-date: Fri, 04 May 2007 22:44:45 +0100
Received: from testure.choralone.org [194.9.77.134]
	by gelk.kernelslacker.org with IMAP (fetchmail-6.3.6)
	for <davej at localhost> (single-drop); Fri, 04 May 2007 17:46:16 -0400 (EDT)
Received: from vger.kernel.org ([209.132.176.167])
	by testure.choralone.org with esmtp (Exim 4.63)
	(envelope-from <linux-kernel-owner+davej=40kernelslacker.org-S376145AbXEDVoY at vger.kernel.org>)
	id 1Hk5a1-0006qx-Dl
	for davej at kernelslacker.org; Fri, 04 May 2007 22:44:45 +0100
Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
	id S376145AbXEDVoY (ORCPT <rfc822;davej at kernelslacker.org>);
	Fri, 4 May 2007 17:44:24 -0400
Received: (majordomo at vger.kernel.org) by vger.kernel.org id S376156AbXEDVoY
	(ORCPT <rfc822;linux-kernel-outgoing>);
	Fri, 4 May 2007 17:44:24 -0400
Received: from smtp1.linux-foundation.org ([65.172.181.25]:47792 "EHLO
	smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK)
	by vger.kernel.org with ESMTP id S376145AbXEDVoX (ORCPT
	<rfc822;linux-kernel at vger.kernel.org>);
	Fri, 4 May 2007 17:44:23 -0400
Received: from shell0.pdx.osdl.net (fw.osdl.org [65.172.181.6])
	by smtp1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id l44Li8VE028869
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Fri, 4 May 2007 14:44:09 -0700
Received: from akpm.corp.google.com (shell0.pdx.osdl.net [10.9.0.31])
	by shell0.pdx.osdl.net (8.13.1/8.11.6) with SMTP id l44Li8vG016020;
	Fri, 4 May 2007 14:44:08 -0700
Date:	Fri, 4 May 2007 14:44:08 -0700
From:	Andrew Morton <akpm at linux-foundation.org>
To:	john stultz <johnstul at us.ibm.com>
Cc:	"Guilherme M. Schroeder" <guilherme at centralinf.com.br>,
	lkml <linux-kernel at vger.kernel.org>, Andi Kleen <ak at suse.de>,
	Thomas Gleixner <tglx at linutronix.de>
Subject: Re: [PATCH] Blacklist Dell Optiplex 320 from using the HPET
Message-Id: <20070504144408.c041d8df.akpm at linux-foundation.org>
In-Reply-To: <1178314144.6094.7.camel at localhost.localdomain>
References: <1178314144.6094.7.camel at localhost.localdomain>
X-Mailer: Sylpheed version 2.2.7 (GTK+ 2.8.6; i686-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-MIMEDefang-Filter: osdl$Revision: 1.177 $
X-Scanned-By: MIMEDefang 2.53 on 65.172.181.25
Sender:	linux-kernel-owner at vger.kernel.org
Precedence: bulk
X-Mailing-List:	linux-kernel at vger.kernel.org
Status: RO
Content-Length: 3068
Lines: 104

On Fri, 04 May 2007 14:29:04 -0700
john stultz <johnstul at us.ibm.com> wrote:

> One of the 2.6.21 regressions was Guilherme's problem seeing his box
> lock up when the system detected an unstable TSC and dropped back to
> using the HPET.
> 
> In digging deeper, we found the HPET is not actually incrementing on
> this system. And in fact, the reason why this issue just cropped up was
> because of Thomas's clocksource watchdog code was comparing the TSC to
> the HPET (which wasn't moving) and thought the TSC was broken.
> 
> Anyway, Guliherme checked for a BIOS update and did not find one, so
> I've added a DMI blacklist against his system so the HPET is not used.
> 
> Many thanks to Guilherme for the slow and laborious testing that finally
> narrowed down this issue.
> 

OK, I tagged that for -stable too.

> 
> diff --git a/arch/i386/kernel/hpet.c b/arch/i386/kernel/hpet.c
> index 17d7345..1ae27f3 100644
> --- a/arch/i386/kernel/hpet.c
> +++ b/arch/i386/kernel/hpet.c
> @@ -5,6 +5,7 @@
>  #include <linux/init.h>
>  #include <linux/sysdev.h>
>  #include <linux/pm.h>
> +#include <linux/dmi.h>
>  
>  #include <asm/hpet.h>
>  #include <asm/io.h>
> @@ -48,6 +49,31 @@ static int __init hpet_setup(char* str)
>  }
>  __setup("hpet=", hpet_setup);
>  
> +
> +/* DMI Blacklist for bad HPETs */
> +static int __init dmi_mark_hpet_broken(struct dmi_system_id *d)
> +{
> +	printk(KERN_NOTICE "%s detected: HPET does not function.\n",
> +		       d->ident);
> +	boot_hpet_disable = 1;
> +	return 0;
> +}
> +
> +/* List of systems that have known HPETproblems */
> +static struct dmi_system_id bad_hpet_dmi_table[] = {
> +	{
> +	 .callback = dmi_mark_hpet_broken,
> +	 .ident = "Dell OptiPlex 320",
> +	 .matches = {
> +		     DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 320"),
> +		     DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),
> +		     DMI_MATCH(DMI_BOARD_NAME, "0UT237"),
> +		     },
> +	 },
> +	 {}
> +};
> +
> +
>  static inline int is_hpet_capable(void)
>  {
>  	return (!boot_hpet_disable && hpet_address);
> @@ -228,6 +254,8 @@ int __init hpet_enable(void)
>  	uint64_t hpet_freq;
>  	u64 tmp;
>  
> +	dmi_check_system(bad_hpet_dmi_table);
> +
>  	if (!is_hpet_capable())
>  		return 0;

The table can be __initdata, can't it?


--- a/arch/i386/kernel/hpet.c~blacklist-dell-optiplex-320-from-using-the-hpet-fix
+++ a/arch/i386/kernel/hpet.c
@@ -60,7 +60,7 @@ static int __init dmi_mark_hpet_broken(s
 }
 
 /* List of systems that have known HPETproblems */
-static struct dmi_system_id bad_hpet_dmi_table[] = {
+static struct dmi_system_id __initdata bad_hpet_dmi_table[] = {
 	{
 	 .callback = dmi_mark_hpet_broken,
 	 .ident = "Dell OptiPlex 320",
@@ -73,7 +73,6 @@ static struct dmi_system_id bad_hpet_dmi
 	 {}
 };
 
-
 static inline int is_hpet_capable(void)
 {
 	return (!boot_hpet_disable && hpet_address);
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3169
retrieving revision 1.3170
diff -u -r1.3169 -r1.3170
--- kernel-2.6.spec	18 May 2007 16:16:11 -0000	1.3169
+++ kernel-2.6.spec	18 May 2007 19:37:09 -0000	1.3170
@@ -35,7 +35,7 @@
 %define with_smponly  %{?_with_smponly:  1} %{?!_with_smponly:  0}
 # Only build the xen kernel (--with xenonly):
 %define with_xenonly  %{?_with_xenonly:  1} %{?!_with_xenonly:  0}
- 
+
 # Whether or not to gpg sign modules
 %define with_modsign 1
 
@@ -422,6 +422,7 @@
 Patch204: linux-2.6-x86-dont-delete-cpu_devs-data.patch
 Patch205: linux-2.6-x86-fix-oprofile.patch
 Patch206: linux-2.6-x86-fsc-interrupt-controller-quirk.patch
+Patch207: linux-2.6-x86-dell-hpet.patch
 
 # 300 - 399   ppc(64)
 Patch300: linux-2.6-g5-therm-shutdown.patch
@@ -602,7 +603,7 @@
 Patch2105: linux-2.6-defaults-nonmi.patch
 Patch2106: linux-2.6-defaults-pci_no_msi_mmconf.patch
 
-# SATA Bits
+# ATA Bits
 Patch2200: linux-2.6-sata-promise-pata-ports.patch
 Patch2201: linux-2.6-libata-hpa.patch
 Patch2202: linux-2.6-libata-sata_nv-adma.patch
@@ -610,6 +611,7 @@
 Patch2204: linux-2.6-ata-quirk.patch
 Patch2205: linux-2.6-libata-sff-pci_iomap-bug.patch
 Patch2206: linux-2.6-libata-sata_nv-wildcard-removal.patch
+Patch2207: linux-2.6-libata-pata-pcmcia-new-ident.patch
 
 # Wireless bits
 Patch2300: linux-2.6-wireless.patch
@@ -618,6 +620,10 @@
 Patch2303: linux-2.6-bcm43xx-pci-neuter.patch
 Patch2304: linux-2.6-iwlwifi-preferred_rate_control.patch
 Patch2305: linux-2.6-iwlwifi-irq_tasklet.patch
+Patch2306: linux-2.6-mac80211-fixes.patch
+Patch2307: linux-2.6-iwlwifi-sw-scan-default.patch
+Patch2308: linux-2.6-mac80211-scan-optimizations.patch
+Patch2309: linux-2.6-bcm43xx-mac80211-fixes.patch
 
 # Assorted dyntick/clock/timer fixes.
 Patch2400: linux-2.6-highres-dyntick-avoid-xtime-lock-contention.patch
@@ -1081,6 +1087,8 @@
 %patch205 -p1
 # quirk for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller
 %patch206 -p1
+# Blacklist Dell Optiplex 320 from using the HPET
+%patch207 -p1
 
 #
 # PowerPC
@@ -1375,6 +1383,8 @@
 %patch2205 -p1
 # remove the wildcard from sata_nv driver
 %patch2206 -p1
+# pata_pcmcia.c: add card ident for jvc cdrom
+%patch2207 -p1
 
 # Add critical wireless updates from 2.6.22
 %patch2300 -p1
@@ -1388,6 +1398,14 @@
 %patch2304 -p1
 # kill iwl3945 irq_tasklet at module remove 
 %patch2305 -p1
+# some mac80211 bug fixes (defrag mem leak, reassoc failure handling)
+%patch2306 -p1
+# iwl3945: default to sw scan
+%patch2307 -p1
+# mac80211: improve scan performance
+%patch2308 -p1
+# bcm43xx-mac80211: important phy and ssb bus fixes
+%patch2309 -p1
 
 # Assorted dyntick/clock/timer fixes.
 %patch2400 -p1
@@ -2376,8 +2394,25 @@
 %endif
 
 %changelog
+* Fri May 18 2007 Dave Jones <davej at redhat.com>
+- pata_pcmcia.c: add card ident for jvc cdrom
+
+* Fri May 18 2007 John W. Linville <linville at redhat.com>
+- important phy and ssb bus fixes for bcm43xx-mac80211
+
+* Fri May 18 2007 Dave Jones <davej at redhat.com>
+- Blacklist Dell Optiplex 320 from using the HPET.
+
+* Fri May 18 2007 Dave Jones <davej at redhat.com>
+- Disable ub driver. (#204396)
+
+* Fri May 18 2007 John W. Linville <linville at redhat.com>
+- upstream mac80211 bugfixes (defrag mem leak, reassoc failure handling)
+- make iwl3945 default to using software scan
+- improve mac80211 software scan performance
+
 * Thu May 17 2007 John W. Linville <linville at redhat.com>
-- iwl3945: kill irq_tasklet at module remove 
+- iwl3945: kill irq_tasklet at module remove
 
 * Thu May 17 2007 Dave Jones <davej at redhat.com>
 - More GFS2 updates.




More information about the fedora-extras-commits mailing list