rpms/kernel/devel drm-nouveau-d620.patch, NONE, 1.1.2.1 iwlwifi-fix-nfreed--.patch, NONE, 1.1.2.1 iwlwifi-reset-card-during-probe.patch, NONE, 1.1.2.1 iwlwifi-use-dma_alloc_coherent.patch, NONE, 1.1.2.1 kernel.spec, 1.1294.2.93, 1.1294.2.94 ssb_check_for_sprom.patch, 1.1.2.1, 1.1.2.2

myoung myoung at fedoraproject.org
Wed Mar 31 20:40:25 UTC 2010


Author: myoung

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv3301

Modified Files:
      Tag: private-myoung-dom0-branch
	kernel.spec ssb_check_for_sprom.patch 
Added Files:
      Tag: private-myoung-dom0-branch
	drm-nouveau-d620.patch iwlwifi-fix-nfreed--.patch 
	iwlwifi-reset-card-during-probe.patch 
	iwlwifi-use-dma_alloc_coherent.patch 
Log Message:
update pvops (introduces PAT support)


drm-nouveau-d620.patch:
 nouveau_bios.c |   59 ++++++++++++++++++++++++++++++---------------------------
 nouveau_bios.h |    1 
 2 files changed, 32 insertions(+), 28 deletions(-)

--- NEW FILE drm-nouveau-d620.patch ---
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index 6b6c303..a81c738 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -3198,7 +3198,6 @@ static int run_lvds_table(struct drm_device *dev, struct dcb_entry *dcbent, int
 	struct nvbios *bios = &dev_priv->vbios;
 	unsigned int outputset = (dcbent->or == 4) ? 1 : 0;
 	uint16_t scriptptr = 0, clktable;
-	uint8_t clktableptr = 0;
 
 	/*
 	 * For now we assume version 3.0 table - g80 support will need some
@@ -3217,26 +3216,29 @@ static int run_lvds_table(struct drm_device *dev, struct dcb_entry *dcbent, int
 		scriptptr = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 11 + outputset * 2]);
 		break;
 	case LVDS_RESET:
+		clktable = bios->fp.lvdsmanufacturerpointer + 15;
+		if (dcbent->or == 4)
+			clktable += 8;
+
 		if (dcbent->lvdsconf.use_straps_for_mode) {
 			if (bios->fp.dual_link)
-				clktableptr += 2;
-			if (bios->fp.BITbit1)
-				clktableptr++;
+				clktable += 4;
+			if (bios->fp.if_is_24bit)
+				clktable += 2;
 		} else {
 			/* using EDID */
-			uint8_t fallback = bios->data[bios->fp.lvdsmanufacturerpointer + 4];
-			int fallbackcmpval = (dcbent->or == 4) ? 4 : 1;
+			int cmpval_24bit = (dcbent->or == 4) ? 4 : 1;
 
 			if (bios->fp.dual_link) {
-				clktableptr += 2;
-				fallbackcmpval *= 2;
+				clktable += 4;
+				cmpval_24bit <<= 1;
 			}
-			if (fallbackcmpval & fallback)
-				clktableptr++;
+
+			if (bios->fp.strapless_is_24bit & cmpval_24bit)
+				clktable += 2;
 		}
 
-		/* adding outputset * 8 may not be correct */
-		clktable = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 15 + clktableptr * 2 + outputset * 8]);
+		clktable = ROM16(bios->data[clktable]);
 		if (!clktable) {
 			NV_ERROR(dev, "Pixel clock comparison table not found\n");
 			return -ENOENT;
@@ -3638,37 +3640,40 @@ int nouveau_bios_parse_lvds_table(struct drm_device *dev, int pxclk, bool *dl, b
 		*if_is_24bit = bios->data[lvdsofs] & 16;
 		break;
 	case 0x30:
-		/*
-		 * My money would be on there being a 24 bit interface bit in
-		 * this table, but I have no example of a laptop bios with a
-		 * 24 bit panel to confirm that. Hence we shout loudly if any
-		 * bit other than bit 0 is set (I've not even seen bit 1)
-		 */
-		if (bios->data[lvdsofs] > 1)
-			NV_ERROR(dev,
-				 "You have a very unusual laptop display; please report it\n");
+	case 0x40:
 		/*
 		 * No sign of the "power off for reset" or "reset for panel
 		 * on" bits, but it's safer to assume we should
 		 */
 		bios->fp.power_off_for_reset = true;
 		bios->fp.reset_after_pclk_change = true;
+
 		/*
 		 * It's ok lvdsofs is wrong for nv4x edid case; dual_link is
-		 * over-written, and BITbit1 isn't used
+		 * over-written, and if_is_24bit isn't used
 		 */
 		bios->fp.dual_link = bios->data[lvdsofs] & 1;
-		bios->fp.BITbit1 = bios->data[lvdsofs] & 2;
-		bios->fp.duallink_transition_clk = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 5]) * 10;
-		break;
-	case 0x40:
-		bios->fp.dual_link = bios->data[lvdsofs] & 1;
 		bios->fp.if_is_24bit = bios->data[lvdsofs] & 2;
 		bios->fp.strapless_is_24bit = bios->data[bios->fp.lvdsmanufacturerpointer + 4];
 		bios->fp.duallink_transition_clk = ROM16(bios->data[bios->fp.lvdsmanufacturerpointer + 5]) * 10;
 		break;
 	}
 
+	/* Dell Latitude D620 reports a too-high value for the dual-link
+	 * transition freq, causing us to program the panel incorrectly.
+	 *
+	 * It doesn't appear the VBIOS actually uses its transition freq
+	 * (90000kHz), instead it uses the "Number of LVDS channels" field
+	 * out of the panel ID structure (http://www.spwg.org/).
+	 *
+	 * For the moment, a quirk will do :)
+	 */
+	if ((dev->pdev->device == 0x01d7) &&
+	    (dev->pdev->subsystem_vendor == 0x1028) &&
+	    (dev->pdev->subsystem_device == 0x01c2)) {
+		bios->fp.duallink_transition_clk = 80000;
+	}
+
 	/* set dual_link flag for EDID case */
 	if (pxclk && (chip_version < 0x25 || chip_version > 0x28))
 		bios->fp.dual_link = (pxclk >= bios->fp.duallink_transition_clk);
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.h b/drivers/gpu/drm/nouveau/nouveau_bios.h
index 4f88e69..fd6274a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.h
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.h
@@ -267,7 +267,6 @@ struct nvbios {
 		bool reset_after_pclk_change;
 		bool dual_link;
 		bool link_c_increment;
-		bool BITbit1;
 		bool if_is_24bit;
 		int duallink_transition_clk;
 		uint8_t strapless_is_24bit;

iwlwifi-fix-nfreed--.patch:
 iwl-tx.c |    2 --
 1 file changed, 2 deletions(-)

--- NEW FILE iwlwifi-fix-nfreed--.patch ---
>From linville at redhat.com Mon Mar 29 14:49:45 2010
Return-path: <linville at redhat.com>
Envelope-to: linville at tuxdriver.com
Delivery-date: Mon, 29 Mar 2010 14:49:45 -0400
Received: from mx1.redhat.com ([209.132.183.28])
	by smtp.tuxdriver.com with esmtp (Exim 4.63)
	(envelope-from <linville at redhat.com>)
	id 1NwK1s-0004a3-UA
	for linville at tuxdriver.com; Mon, 29 Mar 2010 14:49:45 -0400
Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2TInZEd014505
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:35 -0400
Received: from savage.usersys.redhat.com (savage.devel.redhat.com [10.11.231.4])
	by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o2TInWr0011525
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:34 -0400
Received: from savage.usersys.redhat.com (localhost.localdomain [127.0.0.1])
	by savage.usersys.redhat.com (8.13.1/8.13.1) with ESMTP id o2TInWbD000647
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:32 -0400
Received: (from linville at localhost)
	by savage.usersys.redhat.com (8.13.1/8.13.1/Submit) id o2TInWoT000646
	for linville at tuxdriver.com; Mon, 29 Mar 2010 14:49:32 -0400
Resent-Message-Id: <201003291849.o2TInWoT000646 at savage.usersys.redhat.com>
Received: from zmta02.collab.prod.int.phx2.redhat.com (LHLO
 zmta02.collab.prod.int.phx2.redhat.com) (10.5.5.32) by
 mail03.corp.redhat.com with LMTP; Fri, 26 Mar 2010 06:05:30 -0400 (EDT)
Received: from localhost (localhost.localdomain [127.0.0.1])
	by zmta02.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 8C63D9CC54;
	Fri, 26 Mar 2010 06:05:30 -0400 (EDT)
Received: from zmta02.collab.prod.int.phx2.redhat.com ([127.0.0.1])
	by localhost (zmta02.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id Xu01eRGsUK9t; Fri, 26 Mar 2010 06:05:30 -0400 (EDT)
Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
	by zmta02.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 52C099CC53;
	Fri, 26 Mar 2010 06:05:30 -0400 (EDT)
Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.8])
	by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5TJo027047;
	Fri, 26 Mar 2010 06:05:29 -0400
Received: from bastion.fedoraproject.org (bastion.phx2.fedoraproject.org [10.5.126.11])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5HW6030942;
	Fri, 26 Mar 2010 06:05:17 -0400
Received: from lists.fedoraproject.org (collab1.vpn.fedoraproject.org [192.168.1.21])
	by bastion02.phx2.fedoraproject.org (Postfix) with ESMTP id A910C10F969;
	Fri, 26 Mar 2010 10:05:17 +0000 (UTC)
Received: from collab1.fedoraproject.org (localhost.localdomain [127.0.0.1])
	by lists.fedoraproject.org (Postfix) with ESMTP id 8FDED3267A1;
	Fri, 26 Mar 2010 10:05:16 +0000 (UTC)
X-Original-To: kernel at lists.fedoraproject.org
Delivered-To: kernel at lists.fedoraproject.org
Received: from smtp-mm2.fedoraproject.org (smtp-mm2.fedoraproject.org
	[66.35.62.164])
	by lists.fedoraproject.org (Postfix) with ESMTP id A5B70326780
	for <kernel at lists.fedoraproject.org>;
	Fri, 26 Mar 2010 10:05:13 +0000 (UTC)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
	by smtp-mm2.fedoraproject.org (Postfix) with ESMTP id 51009E71CA
	for <kernel at lists.fedoraproject.org>;
	Fri, 26 Mar 2010 10:05:13 +0000 (UTC)
Received: from int-mx08.intmail.prod.int.phx2.redhat.com
	(int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5BJT008449
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
	Fri, 26 Mar 2010 06:05:11 -0400
Received: from localhost (dhcp-0-189.brq.redhat.com [10.34.0.189])
	by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
	id o2QA59FJ028501; Fri, 26 Mar 2010 06:05:09 -0400
From: Stanislaw Gruszka <sgruszka at redhat.com>
To: kernel at lists.fedoraproject.org
Subject: [PATCH 1/3] iwlwifi: fix nfreed--
Date: Fri, 26 Mar 2010 11:03:25 +0100
Message-Id: <1269597807-2925-1-git-send-email-sgruszka at redhat.com>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
X-Scanned-By: MIMEDefang 2.67 on 10.5.110.8
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21
Cc: Stanislaw Gruszka <sgruszka at redhat.com>,
        "John W. Linville" <linville at tuxdriver.com>
X-BeenThere: kernel at lists.fedoraproject.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Fedora kernel development." <kernel.lists.fedoraproject.org>
List-Unsubscribe: <https://admin.fedoraproject.org/mailman/listinfo/kernel>,
	<mailto:kernel-request at lists.fedoraproject.org?subject=unsubscribe>
List-Archive: <http://lists.fedoraproject.org/pipermail/kernel>
List-Post: <mailto:kernel at lists.fedoraproject.org>
List-Help: <mailto:kernel-request at lists.fedoraproject.org?subject=help>
List-Subscribe: <https://admin.fedoraproject.org/mailman/listinfo/kernel>,
	<mailto:kernel-request at lists.fedoraproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: kernel-bounces at lists.fedoraproject.org
Errors-To: kernel-bounces at lists.fedoraproject.org
X-RedHat-Spam-Score: -0.01  (T_RP_MATCHES_RCVD)
Resent-From: linville at redhat.com
Resent-Date: Mon, 29 Mar 2010 14:49:32 -0400
Resent-To: linville at tuxdriver.com
X-Spam-Score: -8.9 (--------)
X-Spam-Status: No
Status: RO
Content-Length: 1003
Lines: 30

During backporting of a120e912eb51e347f36c71b60a1d13af74d30e83
("iwlwifi: sanity check before counting number of tfds can be free ")
we forget one hunk, what make lot of messages "free more than
tfds_in_queue" mess up dmesg.

Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
---
 drivers/net/wireless/iwlwifi/iwl-tx.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index f449f06..cf5ac00 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -1096,7 +1096,6 @@ int iwl_tx_queue_reclaim(struct iwl_priv *priv, int txq_id, int index)
 			priv->cfg->ops->lib->txq_inval_byte_cnt_tbl(priv, txq);
 
 		priv->cfg->ops->lib->txq_free_tfd(priv, txq);
-		nfreed++;
 	}
 	return nfreed;
 }
-- 
1.6.2.5

_______________________________________________
kernel mailing list
kernel at lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/kernel



iwlwifi-reset-card-during-probe.patch:
 iwl-agn.c      |    8 ++++++++
 iwl3945-base.c |    8 +++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

--- NEW FILE iwlwifi-reset-card-during-probe.patch ---
>From linville at redhat.com Mon Mar 29 14:49:37 2010
Return-path: <linville at redhat.com>
Envelope-to: linville at tuxdriver.com
Delivery-date: Mon, 29 Mar 2010 14:49:37 -0400
Received: from mx1.redhat.com ([209.132.183.28])
	by smtp.tuxdriver.com with esmtp (Exim 4.63)
	(envelope-from <linville at redhat.com>)
	id 1NwK1n-0004Zz-SW
	for linville at tuxdriver.com; Mon, 29 Mar 2010 14:49:37 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2TInYO7028996
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:35 -0400
Received: from savage.usersys.redhat.com (savage.devel.redhat.com [10.11.231.4])
	by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o2TInX27023483
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:33 -0400
Received: from savage.usersys.redhat.com (localhost.localdomain [127.0.0.1])
	by savage.usersys.redhat.com (8.13.1/8.13.1) with ESMTP id o2TInXPn000652
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:33 -0400
Received: (from linville at localhost)
	by savage.usersys.redhat.com (8.13.1/8.13.1/Submit) id o2TInWt7000651
	for linville at tuxdriver.com; Mon, 29 Mar 2010 14:49:32 -0400
Resent-Message-Id: <201003291849.o2TInWt7000651 at savage.usersys.redhat.com>
Received: from zmta03.collab.prod.int.phx2.redhat.com (LHLO
 zmta03.collab.prod.int.phx2.redhat.com) (10.5.5.33) by
 mail03.corp.redhat.com with LMTP; Fri, 26 Mar 2010 06:05:51 -0400 (EDT)
Received: from localhost (localhost.localdomain [127.0.0.1])
	by zmta03.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 038004CBE9;
	Fri, 26 Mar 2010 06:05:51 -0400 (EDT)
Received: from zmta03.collab.prod.int.phx2.redhat.com ([127.0.0.1])
	by localhost (zmta03.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id IVjBQyibLBw2; Fri, 26 Mar 2010 06:05:50 -0400 (EDT)
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
	by zmta03.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id BF0144CBE7;
	Fri, 26 Mar 2010 06:05:50 -0400 (EDT)
Received: from mx1.redhat.com (ext-mx08.extmail.prod.ext.phx2.redhat.com [10.5.110.12])
	by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5m7L004056;
	Fri, 26 Mar 2010 06:05:49 -0400
Received: from bastion.fedoraproject.org (bastion.phx2.fedoraproject.org [10.5.126.11])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5bS2028477;
	Fri, 26 Mar 2010 06:05:37 -0400
Received: from lists.fedoraproject.org (collab1.vpn.fedoraproject.org [192.168.1.21])
	by bastion02.phx2.fedoraproject.org (Postfix) with ESMTP id 16EF710F96C;
	Fri, 26 Mar 2010 10:05:37 +0000 (UTC)
Received: from collab1.fedoraproject.org (localhost.localdomain [127.0.0.1])
	by lists.fedoraproject.org (Postfix) with ESMTP id 1C8C93267AC;
	Fri, 26 Mar 2010 10:05:19 +0000 (UTC)
X-Original-To: kernel at lists.fedoraproject.org
Delivered-To: kernel at lists.fedoraproject.org
Received: from smtp-mm1.fedoraproject.org (smtp-mm1.fedoraproject.org
	[80.239.156.217])
	by lists.fedoraproject.org (Postfix) with ESMTP id 5FD26326780
	for <kernel at lists.fedoraproject.org>;
	Fri, 26 Mar 2010 10:05:14 +0000 (UTC)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
	by smtp-mm1.fedoraproject.org (Postfix) with ESMTP id 9BB6A87E5F
	for <kernel at lists.fedoraproject.org>;
	Fri, 26 Mar 2010 10:05:13 +0000 (UTC)
Received: from int-mx08.intmail.prod.int.phx2.redhat.com
	(int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5CbS005173
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
	Fri, 26 Mar 2010 06:05:12 -0400
Received: from localhost (dhcp-0-189.brq.redhat.com [10.34.0.189])
	by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
	id o2QA5BKo028563; Fri, 26 Mar 2010 06:05:11 -0400
From: Stanislaw Gruszka <sgruszka at redhat.com>
To: kernel at lists.fedoraproject.org
Subject: [PATCH 2/3] iwlwifi: reset card during probe
Date: Fri, 26 Mar 2010 11:03:26 +0100
Message-Id: <1269597807-2925-2-git-send-email-sgruszka at redhat.com>
In-Reply-To: <1269597807-2925-1-git-send-email-sgruszka at redhat.com>
References: <1269597807-2925-1-git-send-email-sgruszka at redhat.com>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
X-Scanned-By: MIMEDefang 2.67 on 10.5.110.12
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21
Cc: Stanislaw Gruszka <sgruszka at redhat.com>,
        "John W. Linville" <linville at tuxdriver.com>
X-BeenThere: kernel at lists.fedoraproject.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Fedora kernel development." <kernel.lists.fedoraproject.org>
List-Unsubscribe: <https://admin.fedoraproject.org/mailman/listinfo/kernel>,
	<mailto:kernel-request at lists.fedoraproject.org?subject=unsubscribe>
List-Archive: <http://lists.fedoraproject.org/pipermail/kernel>
List-Post: <mailto:kernel at lists.fedoraproject.org>
List-Help: <mailto:kernel-request at lists.fedoraproject.org?subject=help>
List-Subscribe: <https://admin.fedoraproject.org/mailman/listinfo/kernel>,
	<mailto:kernel-request at lists.fedoraproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: kernel-bounces at lists.fedoraproject.org
Errors-To: kernel-bounces at lists.fedoraproject.org
X-RedHat-Spam-Score: -0.01  (T_RP_MATCHES_RCVD)
Resent-From: linville at redhat.com
Resent-Date: Mon, 29 Mar 2010 14:49:32 -0400
Resent-To: linville at tuxdriver.com
X-Spam-Score: -8.8 (--------)
X-Spam-Status: No
Content-Length: 2455
Lines: 61

RHBZ#557084 

To ensure that card is in a sane state during probe we add a reset call.
This change was prompted by users of kdump who was not able to bring up the
wireless driver in the kdump kernel. The problem here was that the primary
kernel, which is not running at the time, left the wireless card up and
running. When the kdump kernel starts it is thus possible to immediately
receive interrupts from firmware after registering interrupt, but without
being ready to deal with interrupts from firmware yet.

Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn.c      |    8 ++++++++
 drivers/net/wireless/iwlwifi/iwl3945-base.c |    7 +++++++
 2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 921dc4a..1661f3c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2976,6 +2976,14 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	 * we should init now
 	 */
 	spin_lock_init(&priv->reg_lock);
+
+	/*
+	 * stop and reset the on-board processor just in case it is in a
+	 * strange state ... like being left stranded by a primary kernel
+	 * and this is now the kdump kernel trying to start up
+	 */
+	iwl_write32(priv, CSR_RESET, CSR_RESET_REG_FLAG_NEVO_RESET);
+
 	iwl_hw_detect(priv);
 	IWL_INFO(priv, "Detected Intel Wireless WiFi Link %s REV=0x%X\n",
 		priv->cfg->name, priv->hw_rev);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 5f26c93..3726b01 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -4032,6 +4032,13 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
 	IWL_INFO(priv, "Detected Intel Wireless WiFi Link %s\n",
 		priv->cfg->name);
 
+	/*
+	 * stop and reset the on-board processor just in case it is in a
+	 * strange state ... like being left stranded by a primary kernel
+	 * and this is now the kdump kernel trying to start up
+	 */
+	iwl_write32(priv, CSR_RESET, CSR_RESET_REG_FLAG_NEVO_RESET);
+
 	/***********************
 	 * 7. Setup Services
 	 * ********************/
-- 
1.6.2.5

_______________________________________________
kernel mailing list
kernel at lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/kernel



iwlwifi-use-dma_alloc_coherent.patch:
 iwl-3945.c     |    8 +++-----
 iwl-core.c     |   12 ++++++------
 iwl-helpers.h  |    7 ++++---
 iwl-rx.c       |   21 +++++++++++----------
 iwl-tx.c       |   23 ++++++++++++-----------
 iwl3945-base.c |   17 ++++++++---------
 6 files changed, 44 insertions(+), 44 deletions(-)

--- NEW FILE iwlwifi-use-dma_alloc_coherent.patch ---
>From linville at redhat.com Mon Mar 29 14:49:50 2010
Return-path: <linville at redhat.com>
Envelope-to: linville at tuxdriver.com
Delivery-date: Mon, 29 Mar 2010 14:49:50 -0400
Received: from mx1.redhat.com ([209.132.183.28])
	by smtp.tuxdriver.com with esmtp (Exim 4.63)
	(envelope-from <linville at redhat.com>)
	id 1NwK1s-0004a5-VK
	for linville at tuxdriver.com; Mon, 29 Mar 2010 14:49:50 -0400
Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2TInZhE022246
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:35 -0400
Received: from savage.usersys.redhat.com (savage.devel.redhat.com [10.11.231.4])
	by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o2TInXBv017187
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:33 -0400
Received: from savage.usersys.redhat.com (localhost.localdomain [127.0.0.1])
	by savage.usersys.redhat.com (8.13.1/8.13.1) with ESMTP id o2TInX8e000657
	for <linville at tuxdriver.com>; Mon, 29 Mar 2010 14:49:33 -0400
Received: (from linville at localhost)
	by savage.usersys.redhat.com (8.13.1/8.13.1/Submit) id o2TInXWW000656
	for linville at tuxdriver.com; Mon, 29 Mar 2010 14:49:33 -0400
Resent-Message-Id: <201003291849.o2TInXWW000656 at savage.usersys.redhat.com>
Received: from zmta01.collab.prod.int.phx2.redhat.com (LHLO
 zmta01.collab.prod.int.phx2.redhat.com) (10.5.5.31) by
 mail03.corp.redhat.com with LMTP; Fri, 26 Mar 2010 06:05:54 -0400 (EDT)
Received: from localhost (localhost.localdomain [127.0.0.1])
	by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 68F4590CF6;
	Fri, 26 Mar 2010 06:05:54 -0400 (EDT)
Received: from zmta01.collab.prod.int.phx2.redhat.com ([127.0.0.1])
	by localhost (zmta01.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id CbudjOUXhpKm; Fri, 26 Mar 2010 06:05:54 -0400 (EDT)
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
	by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 33D6D90CF9;
	Fri, 26 Mar 2010 06:05:54 -0400 (EDT)
Received: from mx1.redhat.com (ext-mx10.extmail.prod.ext.phx2.redhat.com [10.5.110.14])
	by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5rJ6004087;
	Fri, 26 Mar 2010 06:05:53 -0400
Received: from bastion.fedoraproject.org (bastion.phx2.fedoraproject.org [10.5.126.11])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5dri004157;
	Fri, 26 Mar 2010 06:05:39 -0400
Received: from lists.fedoraproject.org (collab1.vpn.fedoraproject.org [192.168.1.21])
	by bastion02.phx2.fedoraproject.org (Postfix) with ESMTP id 3BA8510F95F;
	Fri, 26 Mar 2010 10:05:39 +0000 (UTC)
Received: from collab1.fedoraproject.org (localhost.localdomain [127.0.0.1])
	by lists.fedoraproject.org (Postfix) with ESMTP id C87B23267BC;
	Fri, 26 Mar 2010 10:05:27 +0000 (UTC)
X-Original-To: kernel at lists.fedoraproject.org
Delivered-To: kernel at lists.fedoraproject.org
Received: from smtp-mm3.fedoraproject.org (smtp-mm3.fedoraproject.org
	[152.46.7.226])
	by lists.fedoraproject.org (Postfix) with ESMTP id 3E5AC326780
	for <kernel at lists.fedoraproject.org>;
	Fri, 26 Mar 2010 10:05:16 +0000 (UTC)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
	by smtp-mm3.fedoraproject.org (Postfix) with ESMTP id AED3C37D67
	for <kernel at lists.fedoraproject.org>;
	Fri, 26 Mar 2010 10:05:15 +0000 (UTC)
Received: from int-mx03.intmail.prod.int.phx2.redhat.com
	(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16])
	by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o2QA5Ebw008566
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
	Fri, 26 Mar 2010 06:05:14 -0400
Received: from localhost (dhcp-0-189.brq.redhat.com [10.34.0.189])
	by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
	id o2QA5CFH024705; Fri, 26 Mar 2010 06:05:13 -0400
From: Stanislaw Gruszka <sgruszka at redhat.com>
To: kernel at lists.fedoraproject.org
Subject: [PATCH 3/3] iwlwifi: use dma_alloc_coherent
Date: Fri, 26 Mar 2010 11:03:27 +0100
Message-Id: <1269597807-2925-3-git-send-email-sgruszka at redhat.com>
In-Reply-To: <1269597807-2925-2-git-send-email-sgruszka at redhat.com>
References: <1269597807-2925-1-git-send-email-sgruszka at redhat.com>
	<1269597807-2925-2-git-send-email-sgruszka at redhat.com>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.18
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
X-Scanned-By: MIMEDefang 2.67 on 10.5.110.14
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16
Cc: Stanislaw Gruszka <sgruszka at redhat.com>,
        "John W. Linville" <linville at tuxdriver.com>
X-BeenThere: kernel at lists.fedoraproject.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Fedora kernel development." <kernel.lists.fedoraproject.org>
List-Unsubscribe: <https://admin.fedoraproject.org/mailman/listinfo/kernel>,
	<mailto:kernel-request at lists.fedoraproject.org?subject=unsubscribe>
List-Archive: <http://lists.fedoraproject.org/pipermail/kernel>
List-Post: <mailto:kernel at lists.fedoraproject.org>
List-Help: <mailto:kernel-request at lists.fedoraproject.org?subject=help>
List-Subscribe: <https://admin.fedoraproject.org/mailman/listinfo/kernel>,
	<mailto:kernel-request at lists.fedoraproject.org?subject=subscribe>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: kernel-bounces at lists.fedoraproject.org
Errors-To: kernel-bounces at lists.fedoraproject.org
X-RedHat-Spam-Score: -0.01  (T_RP_MATCHES_RCVD)
Resent-From: linville at redhat.com
Resent-Date: Mon, 29 Mar 2010 14:49:33 -0400
Resent-To: linville at tuxdriver.com
X-Spam-Score: -8.9 (--------)
X-Spam-Status: No
Content-Length: 9973
Lines: 271

RHBZ#574146

Change pci_alloc_consistent() to dma_alloc_coherent() so we can use
GFP_KERNEL flag.

Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
---
 drivers/net/wireless/iwlwifi/iwl-3945.c     |    8 +++-----
 drivers/net/wireless/iwlwifi/iwl-core.c     |   12 ++++++------
 drivers/net/wireless/iwlwifi/iwl-helpers.h  |    7 ++++---
 drivers/net/wireless/iwlwifi/iwl-rx.c       |   21 +++++++++++----------
 drivers/net/wireless/iwlwifi/iwl-tx.c       |   23 ++++++++++++-----------
 drivers/net/wireless/iwlwifi/iwl3945-base.c |   16 ++++++++--------
 6 files changed, 44 insertions(+), 43 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 9d60f6c..56bfcc3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2545,11 +2545,9 @@ int iwl3945_hw_set_hw_params(struct iwl_priv *priv)
 	memset((void *)&priv->hw_params, 0,
 	       sizeof(struct iwl_hw_params));
 
-	priv->shared_virt =
-	    pci_alloc_consistent(priv->pci_dev,
-				 sizeof(struct iwl3945_shared),
-				 &priv->shared_phys);
-
+	priv->shared_virt = dma_alloc_coherent(&priv->pci_dev->dev,
+					       sizeof(struct iwl3945_shared),
+					       &priv->shared_phys, GFP_KERNEL);
 	if (!priv->shared_virt) {
 		IWL_ERR(priv, "failed to allocate pci memory\n");
 		mutex_unlock(&priv->mutex);
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 6d6235f..4a4f7e4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1598,9 +1598,9 @@ EXPORT_SYMBOL(iwl_uninit_drv);
 void iwl_free_isr_ict(struct iwl_priv *priv)
 {
 	if (priv->ict_tbl_vir) {
-		pci_free_consistent(priv->pci_dev, (sizeof(u32) * ICT_COUNT) +
-					PAGE_SIZE, priv->ict_tbl_vir,
-					priv->ict_tbl_dma);
+		dma_free_coherent(&priv->pci_dev->dev,
+				  (sizeof(u32) * ICT_COUNT) + PAGE_SIZE,
+				  priv->ict_tbl_vir, priv->ict_tbl_dma);
 		priv->ict_tbl_vir = NULL;
 	}
 }
@@ -1616,9 +1616,9 @@ int iwl_alloc_isr_ict(struct iwl_priv *priv)
 	if (priv->cfg->use_isr_legacy)
 		return 0;
 	/* allocate shrared data table */
-	priv->ict_tbl_vir = pci_alloc_consistent(priv->pci_dev, (sizeof(u32) *
-						  ICT_COUNT) + PAGE_SIZE,
-						  &priv->ict_tbl_dma);
+	priv->ict_tbl_vir = dma_alloc_coherent(&priv->pci_dev->dev,
+					(sizeof(u32) * ICT_COUNT) + PAGE_SIZE,
+					&priv->ict_tbl_dma, GFP_KERNEL);
 	if (!priv->ict_tbl_vir)
 		return -ENOMEM;
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-helpers.h b/drivers/net/wireless/iwlwifi/iwl-helpers.h
index bd0b12e..f8481e8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-helpers.h
+++ b/drivers/net/wireless/iwlwifi/iwl-helpers.h
@@ -80,8 +80,8 @@ static inline void iwl_free_fw_desc(struct pci_dev *pci_dev,
 				    struct fw_desc *desc)
 {
 	if (desc->v_addr)
-		pci_free_consistent(pci_dev, desc->len,
-				    desc->v_addr, desc->p_addr);
+		dma_free_coherent(&pci_dev->dev, desc->len,
+				  desc->v_addr, desc->p_addr);
 	desc->v_addr = NULL;
 	desc->len = 0;
 }
@@ -89,7 +89,8 @@ static inline void iwl_free_fw_desc(struct pci_dev *pci_dev,
 static inline int iwl_alloc_fw_desc(struct pci_dev *pci_dev,
 				    struct fw_desc *desc)
 {
-	desc->v_addr = pci_alloc_consistent(pci_dev, desc->len, &desc->p_addr);
+	desc->v_addr = dma_alloc_coherent(&pci_dev->dev, desc->len,
+					  &desc->p_addr, GFP_KERNEL);
 	return (desc->v_addr != NULL) ? 0 : -ENOMEM;
 }
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index 493626b..3198a8a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -345,10 +345,10 @@ void iwl_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
 		}
 	}
 
-	pci_free_consistent(priv->pci_dev, 4 * RX_QUEUE_SIZE, rxq->bd,
-			    rxq->dma_addr);
-	pci_free_consistent(priv->pci_dev, sizeof(struct iwl_rb_status),
-			    rxq->rb_stts, rxq->rb_stts_dma);
+	dma_free_coherent(&priv->pci_dev->dev, 4 * RX_QUEUE_SIZE, rxq->bd,
+			  rxq->dma_addr);
+	dma_free_coherent(&priv->pci_dev->dev, sizeof(struct iwl_rb_status),
+			  rxq->rb_stts, rxq->rb_stts_dma);
 	rxq->bd = NULL;
 	rxq->rb_stts  = NULL;
 }
@@ -357,7 +357,7 @@ EXPORT_SYMBOL(iwl_rx_queue_free);
 int iwl_rx_queue_alloc(struct iwl_priv *priv)
 {
 	struct iwl_rx_queue *rxq = &priv->rxq;
-	struct pci_dev *dev = priv->pci_dev;
+	struct device *dev = &priv->pci_dev->dev;
 	int i;
 
 	spin_lock_init(&rxq->lock);
@@ -365,12 +365,13 @@ int iwl_rx_queue_alloc(struct iwl_priv *priv)
 	INIT_LIST_HEAD(&rxq->rx_used);
 
 	/* Alloc the circular buffer of Read Buffer Descriptors (RBDs) */
-	rxq->bd = pci_alloc_consistent(dev, 4 * RX_QUEUE_SIZE, &rxq->dma_addr);
+	rxq->bd = dma_alloc_coherent(dev, 4 * RX_QUEUE_SIZE, &rxq->dma_addr,
+				     GFP_KERNEL);
 	if (!rxq->bd)
 		goto err_bd;
 
-	rxq->rb_stts = pci_alloc_consistent(dev, sizeof(struct iwl_rb_status),
-					&rxq->rb_stts_dma);
+	rxq->rb_stts = dma_alloc_coherent(dev, sizeof(struct iwl_rb_status),
+					  &rxq->rb_stts_dma, GFP_KERNEL);
 	if (!rxq->rb_stts)
 		goto err_rb;
 
@@ -387,8 +388,8 @@ int iwl_rx_queue_alloc(struct iwl_priv *priv)
 	return 0;
 
 err_rb:
-	pci_free_consistent(priv->pci_dev, 4 * RX_QUEUE_SIZE, rxq->bd,
-			    rxq->dma_addr);
+	dma_free_coherent(&priv->pci_dev->dev, 4 * RX_QUEUE_SIZE, rxq->bd,
+			  rxq->dma_addr);
 err_bd:
 	return -ENOMEM;
 }
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index cf5ac00..14dcb7b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -60,7 +60,8 @@ static const u16 default_tid_to_tx_fifo[] = {
 static inline int iwl_alloc_dma_ptr(struct iwl_priv *priv,
 				    struct iwl_dma_ptr *ptr, size_t size)
 {
-	ptr->addr = pci_alloc_consistent(priv->pci_dev, size, &ptr->dma);
+	ptr->addr = dma_alloc_coherent(&priv->pci_dev->dev, size, &ptr->dma,
+				       GFP_KERNEL);
 	if (!ptr->addr)
 		return -ENOMEM;
 	ptr->size = size;
@@ -73,7 +74,7 @@ static inline void iwl_free_dma_ptr(struct iwl_priv *priv,
 	if (unlikely(!ptr->addr))
 		return;
 
-	pci_free_consistent(priv->pci_dev, ptr->size, ptr->addr, ptr->dma);
+	dma_free_coherent(&priv->pci_dev->dev, ptr->size, ptr->addr, ptr->dma);
 	memset(ptr, 0, sizeof(*ptr));
 }
 
@@ -145,7 +146,7 @@ void iwl_tx_queue_free(struct iwl_priv *priv, int txq_id)
 {
 	struct iwl_tx_queue *txq = &priv->txq[txq_id];
 	struct iwl_queue *q = &txq->q;
-	struct pci_dev *dev = priv->pci_dev;
+	struct device *dev = &priv->pci_dev->dev;
 	int i, len;
 
 	if (q->n_bd == 0)
@@ -164,8 +165,8 @@ void iwl_tx_queue_free(struct iwl_priv *priv, int txq_id)
 
 	/* De-alloc circular buffer of TFDs */
 	if (txq->q.n_bd)
-		pci_free_consistent(dev, priv->hw_params.tfd_size *
-				    txq->q.n_bd, txq->tfds, txq->q.dma_addr);
+		dma_free_coherent(dev, priv->hw_params.tfd_size *
+				  txq->q.n_bd, txq->tfds, txq->q.dma_addr);
 
 	/* De-alloc array of per-TFD driver data */
 	kfree(txq->txb);
@@ -194,7 +195,7 @@ void iwl_cmd_queue_free(struct iwl_priv *priv)
 {
 	struct iwl_tx_queue *txq = &priv->txq[IWL_CMD_QUEUE_NUM];
 	struct iwl_queue *q = &txq->q;
-	struct pci_dev *dev = priv->pci_dev;
+	struct device *dev = &priv->pci_dev->dev;
 	int i, len;
 
 	if (q->n_bd == 0)
@@ -209,8 +210,8 @@ void iwl_cmd_queue_free(struct iwl_priv *priv)
 
 	/* De-alloc circular buffer of TFDs */
 	if (txq->q.n_bd)
-		pci_free_consistent(dev, priv->hw_params.tfd_size *
-				    txq->q.n_bd, txq->tfds, txq->q.dma_addr);
+		dma_free_coherent(dev, priv->hw_params.tfd_size * txq->q.n_bd,
+				  txq->tfds, txq->q.dma_addr);
 
 	/* deallocate arrays */
 	kfree(txq->cmd);
@@ -301,7 +302,7 @@ static int iwl_queue_init(struct iwl_priv *priv, struct iwl_queue *q,
 static int iwl_tx_queue_alloc(struct iwl_priv *priv,
 			      struct iwl_tx_queue *txq, u32 id)
 {
-	struct pci_dev *dev = priv->pci_dev;
+	struct device *dev = &priv->pci_dev->dev;
 	size_t tfd_sz = priv->hw_params.tfd_size * TFD_QUEUE_SIZE_MAX;
 
 	/* Driver private data, only for Tx (not command) queues,
@@ -320,8 +321,8 @@ static int iwl_tx_queue_alloc(struct iwl_priv *priv,
 
 	/* Circular buffer of transmit frame descriptors (TFDs),
 	 * shared with device */
-	txq->tfds = pci_alloc_consistent(dev, tfd_sz, &txq->q.dma_addr);
-
+	txq->tfds = dma_alloc_coherent(dev, tfd_sz, &txq->q.dma_addr,
+				       GFP_KERNEL);
 	if (!txq->tfds) {
 		IWL_ERR(priv, "pci_alloc_consistent(%zd) failed\n", tfd_sz);
 		goto error;
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 5f26c93..064d3cd 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -356,10 +356,10 @@ static int iwl3945_send_beacon_cmd(struct iwl_priv *priv)
 static void iwl3945_unset_hw_params(struct iwl_priv *priv)
 {
 	if (priv->shared_virt)
-		pci_free_consistent(priv->pci_dev,
-				    sizeof(struct iwl3945_shared),
-				    priv->shared_virt,
-				    priv->shared_phys);
+		dma_free_coherent(&priv->pci_dev->dev,
+				  sizeof(struct iwl3945_shared),
+				  priv->shared_virt,
+				  priv->shared_phys);
 }
 
 static void iwl3945_build_tx_cmd_hwcrypto(struct iwl_priv *priv,
@@ -1272,10 +1272,10 @@ static void iwl3945_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rx
 		}
 	}
 
-	pci_free_consistent(priv->pci_dev, 4 * RX_QUEUE_SIZE, rxq->bd,
-			    rxq->dma_addr);
-	pci_free_consistent(priv->pci_dev, sizeof(struct iwl_rb_status),
-			    rxq->rb_stts, rxq->rb_stts_dma);
+	dma_free_coherent(&priv->pci_dev->dev, 4 * RX_QUEUE_SIZE, rxq->bd,
+			  rxq->dma_addr);
+	dma_free_coherent(&priv->pci_dev->dev, sizeof(struct iwl_rb_status),
+			  rxq->rb_stts, rxq->rb_stts_dma);
 	rxq->bd = NULL;
 	rxq->rb_stts  = NULL;
 }
-- 
1.6.2.5


_______________________________________________
kernel mailing list
kernel at lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/kernel




Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.93
retrieving revision 1.1294.2.94
diff -u -p -r1.1294.2.93 -r1.1294.2.94
--- kernel.spec	28 Mar 2010 15:50:12 -0000	1.1294.2.93
+++ kernel.spec	31 Mar 2010 20:40:24 -0000	1.1294.2.94
@@ -710,6 +710,7 @@ Patch1832: drm-nouveau-safetile-getparam
 Patch1844: drm-nouveau-kconfig.patch
 Patch1845: drm-nouveau-mutex.patch
 Patch1846: drm-nouveau-update.patch
+Patch1847: drm-nouveau-d620.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -783,6 +784,11 @@ Patch14456: tg3-06-fix-5906-transmit-han
 # fix tg3 + netpoll with backport of  fe234f0e5cbb880792d2d1ac0743cf8c07e9dde3
 Patch14500: linux-2.6-tg3-netpoll.patch
 
+# backport iwlwifi fixes (thanks, sgruszka!) -- drop when stable catches-up
+Patch14600: iwlwifi-fix-nfreed--.patch
+Patch14601: iwlwifi-reset-card-during-probe.patch
+Patch14602: iwlwifi-use-dma_alloc_coherent.patch
+
 Patch19997: xen.pvops.pre.patch
 Patch19998: xen.pvops.patch
 Patch19999: xen.pvops.post.patch
@@ -1393,6 +1399,7 @@ ApplyPatch drm-nouveau-tvout-disable.pat
 ApplyPatch drm-nouveau-safetile-getparam.patch
 ApplyPatch drm-nouveau-kconfig.patch
 ApplyPatch drm-nouveau-update.patch
+ApplyPatch drm-nouveau-d620.patch
 
 # linux1394 git patches
 #ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1443,6 +1450,11 @@ ApplyPatch linux-2.6-b43_-Rewrite-DMA-Tx
 # rhbz#533746
 ApplyPatch ssb_check_for_sprom.patch
 
+# backport iwlwifi fixes (thanks, sgruszka!) -- drop when stable catches-up
+ApplyPatch iwlwifi-fix-nfreed--.patch
+ApplyPatch iwlwifi-reset-card-during-probe.patch
+ApplyPatch iwlwifi-use-dma_alloc_coherent.patch
+
 ApplyPatch xen.pvops.pre.patch
 ApplyPatch xen.pvops.patch
 ApplyPatch xen.pvops.post.patch
@@ -2100,6 +2112,20 @@ fi
 # and build.
 
 %changelog
+* Wed Mar 31 2010 Michael Young <m.a.young at durham.ac.uk>
+- update pvops (introduces PAT support)
+
+* Tue Mar 30 2010 John W. Linville <linville at redhat.com> 2.6.32.10-94
+- Avoid null pointer dereference introduced by 'ssb: check for sprom' (#577463)
+
+* Mon Mar 29 2010 John W. Linville <linville at redhat.com> 2.6.32.10-93
+- iwlwifi: fix nfreed--
+- iwlwifi: reset card during probe (#557084)
+- iwlwifi: use dma_alloc_coherent (#574146)
+
+* Mon Mar 29 2010 Ben Skeggs <bskeggs at redhat.com> 2.6.32.10-91
+- nouveau: fix display issues on Dell D620 laptops
+
 * Sun Mar 28 2010 Michael Young <m.a.young at durham.ac.uk>
 - try turning STACKPROTECTOR back on
 - add xen includes to -devel package

ssb_check_for_sprom.patch:
 b/drivers/ssb/driver_chipcommon.c           |    3 +++
 b/drivers/ssb/pci.c                         |    3 +++
 b/drivers/ssb/sprom.c                       |   22 ++++++++++++++++++++++
 b/include/linux/ssb/ssb.h                   |    3 +++
 b/include/linux/ssb/ssb_driver_chipcommon.h |   16 +++++++++++++++-
 drivers/ssb/sprom.c                         |    5 ++++-
 6 files changed, 50 insertions(+), 2 deletions(-)

Index: ssb_check_for_sprom.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/ssb_check_for_sprom.patch,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.1 -r1.1.2.2
--- ssb_check_for_sprom.patch	23 Mar 2010 19:19:46 -0000	1.1.2.1
+++ ssb_check_for_sprom.patch	31 Mar 2010 20:40:25 -0000	1.1.2.2
@@ -153,3 +153,33 @@ index 4e27acf..2cdf249 100644
 -- 
 1.6.2.5
 
+From ec032742062ad1b01dfe75cfccdbc5b850837c23 Mon Sep 17 00:00:00 2001
+From: John W. Linville <linville at tuxdriver.com>
+Date: Tue, 30 Mar 2010 13:47:39 -0400
+Subject: [PATCH] ssb: avoid null ptr deref in ssb_is_sprom_available
+
+Some older devices don't have chipcommon, but they do have SPROM.
+
+Signed-off-by: John W. Linville <linville at tuxdriver.com>
+---
+ drivers/ssb/sprom.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/ssb/sprom.c b/drivers/ssb/sprom.c
+index 55eb9b0..874d8f1 100644
+--- a/drivers/ssb/sprom.c
++++ b/drivers/ssb/sprom.c
+@@ -178,6 +178,10 @@ const struct ssb_sprom *ssb_get_fallback_sprom(void)
+ 
+ bool ssb_is_sprom_available(struct ssb_bus *bus)
+ {
++	/* some older devices don't have chipcommon, but they have sprom */
++	if (!bus->chipco.dev)
++		return true;
++
+ 	/* status register only exists on chipcomon rev >= 11 */
+ 	if (bus->chipco.dev->id.revision < 11)
+ 		return true;
+-- 
+1.6.2.5
+



More information about the scm-commits mailing list