Received: from mail.onstor.com ([66.201.51.107]) by onstor-exch02.onstor.net with Microsoft SMTPSVC(6.0.3790.1830);
	 Mon, 26 Mar 2007 13:29:37 -0700
Received: from ftp.linux-mips.org ([194.74.144.162]) by mail.onstor.com with Microsoft SMTPSVC(6.0.3790.1830);
	 Mon, 26 Mar 2007 13:29:36 -0700
Received: from localhost.localdomain ([127.0.0.1]:65177 "EHLO
	ftp.linux-mips.org") by ftp.linux-mips.org with ESMTP
	id S20022653AbXCZU3T (ORCPT <rfc822;dan.stein@onstor.com> + 1 other);
	Mon, 26 Mar 2007 21:29:19 +0100
Received: with ECARTIS (v1.0.0; list linux-mips); Mon, 26 Mar 2007 21:29:00 +0100 (BST)
Received: from 70-89-178-179-BusName-Oregon.hfc.comcastbusiness.net ([70.89.178.179]:42136
	"EHLO hawaii.site") by ftp.linux-mips.org with ESMTP
	id S20022591AbXCZU26 (ORCPT <rfc822;linux-mips@linux-mips.org>);
	Mon, 26 Mar 2007 21:28:58 +0100
Received: by hawaii.site (Postfix, from userid 500)
	id 1A8745484C7; Mon, 26 Mar 2007 13:28:26 -0700 (PDT)
Date:	Mon, 26 Mar 2007 13:28:26 -0700
From:	Mark Mason <mmason@upwardaccess.com>
To:	linux-mips@linux-mips.org
Subject: [PATCH] fix irq affinity for bcm1480
Message-ID: <20070326202825.GA12250@upwardaccess.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.13 (2006-08-11)
X-archive-position: 14703
X-ecartis-version: Ecartis v1.0.0
Sender:	linux-mips-bounce@linux-mips.org
Errors-to: linux-mips-bounce@linux-mips.org
X-original-sender: mmason@upwardaccess.com
Precedence: bulk
X-list:	linux-mips
Return-Path: linux-mips-bounce@linux-mips.org
X-OriginalArrivalTime: 26 Mar 2007 20:29:36.0764 (UTC) FILETIME=[78C3CBC0:01C76FE5]

Fix irq affinity setting for bcm1480.

Signed-off-by: Mark Mason (mason@broadcom.com)

diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 20af0f1..ba0c4b7 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -141,11 +141,11 @@ static void bcm1480_set_affinity(unsigne
 	unsigned long flags;
 	unsigned int irq_dirty;
 
-	i = first_cpu(mask);
-	if (next_cpu(i, mask) <= NR_CPUS) {
+	if (cpus_weight(mask) != 1) {
 		printk("attempted to set irq affinity for irq %d to multiple CPUs\n", irq);
 		return;
 	}
+	i = first_cpu(mask);
 
 	/* Convert logical CPU to physical CPU */
 	cpu = cpu_logical_map(i);

