From patchwork Tue Sep 20 11:34:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Richter X-Patchwork-Id: 9341489 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id F0828601C2 for ; Tue, 20 Sep 2016 11:36:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DE57F29E3F for ; Tue, 20 Sep 2016 11:36:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D246429E53; Tue, 20 Sep 2016 11:36:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4975829E3F for ; Tue, 20 Sep 2016 11:36:46 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bmJKb-0003WA-Bg; Tue, 20 Sep 2016 11:35:21 +0000 Received: from mail-sn1nam02on0040.outbound.protection.outlook.com ([104.47.36.40] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bmJKX-0002Hb-Pf for linux-arm-kernel@lists.infradead.org; Tue, 20 Sep 2016 11:35:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+HHrx3jUE4QOfHFum+mlh9bH4U7WXrnlGqkeppriWFY=; b=DWSeFJeGjXebIlLqlt+MB2BXvgLU6hTs0GgLqLqVCsfPi5B+P4d7TA+CgoE22f6friyCiaefmrj4tjC2tBu7zNeceBzwcR6ZiHBsrBiTi3rWuVBbLv8HD82DTXrkcNV4vl+Po4yZkwZvq571jpmfv6h4W2ROzSuGIPGhoA5+wgg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@cavium.com; Received: from rric.localdomain (92.229.83.73) by CY1PR07MB2348.namprd07.prod.outlook.com (10.166.194.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Tue, 20 Sep 2016 11:34:52 +0000 From: Robert Richter To: Thomas Gleixner , Jason Cooper , Marc Zyngier Subject: [PATCH] irqchip, gicv3: Fix out-of-range cpumask access reported by cpumask_check() Date: Tue, 20 Sep 2016 13:34:19 +0200 Message-ID: <1474371259-18783-1-git-send-email-rrichter@cavium.com> X-Mailer: git-send-email 2.7.0.rc3 MIME-Version: 1.0 X-Originating-IP: [92.229.83.73] X-ClientProxiedBy: DB5PR10CA0008.EURPRD10.PROD.OUTLOOK.COM (10.165.4.146) To CY1PR07MB2348.namprd07.prod.outlook.com (10.166.194.147) X-MS-Office365-Filtering-Correlation-Id: 4a9c87e5-925e-45be-86e3-08d3e14a2460 X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2348; 2:HJnQfKlnn4f+dgco1yzbNwoXe3MkOqs0fkdt4QpgC4c4gitSQU1ZBtXIotQOF1sXYZOK8caiidtMyYAxZGm9fi75sCrYN2jzyHhB2tUBCfDeJHrHy6mB7IdGgTTdQiQQ/omaBx5Mf2dhrtSNCqAJoqkVgtIjO3A/GNeKixnCuyuNen0ib5vOidGeLsMg9a8v; 3:HGojIZQ2WyS/gHTV7FsDDmzD1I5yc5KY/+jK0coR94RkcB0nXBiA7bpvu7KIKUdLssRs8iwdpa/twt4jSPDrXrCACdXDL9hZidrmjfLnsqXH2q6BZzcLnGfFca0MTOBw; 25:rH1+AWdwCsSEd0srhQe2ZV5MFW/J7egzk9aEOV/c1vqAt5LnKifwxETBMtn502BcYtyGs//A/4LVsjiBDDIS0raeQk1xaXZDSZXuFSll8XTOzQ3n2jf5Lx8SfMyuGnnf8LVe9v0GEBuOS1yh95GdLkUt0duDdqyIuI7ceUb7Cs7Ot8n4pJc5Y1OCn7E0bX4bdfAVTAhRBOjAU18aKi4GDBkKbje99ZYCv2hCTjVvHwERwYB1ZYmtmMlVqNnN3LmRfqiym5FRf3BxJzBWd9xlqqYE/S1vSr6qM122DI7tH9xkJpFMmAG/pR1XrkIgyNd1N8CnYYRTlwBiWbmaU69U0+AZEdw1l8xmZuCUbiqAABqWZwZwv0YmLcJiJPBpdLG4YletjJ0bfwiqTU+sRbpFhhBm5GOujhwhv9XLhyclELU= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2348; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2348; 31:Drm+vZU+T8rvpGRIwSY8KbCZDUG4c9mOi/XpLd6eX5uKSzxDHI9FXee0pXWfDn0Km60lhDWTHLH5bLc7yhXR6e9ITMTOp0UivY/yyI5XX6Zj22m3dCWD6SpIRNcqldhQdmBfnLJh5Z2pswR9P3/mL6N5KrKbZqYCnB+2n2UjTPRsZ4e5wQKG836TkKmVutk8rK5cFkeuLGWQsLRHZLWnYnwlM2j5w/dpRTadw2vnxZI=; 20:Z1jp8fakvVGc0p7uMHMLfXf+TzjhZOsyRX+LgcbsD8tw14BI39CoMJbwBZ5xbNWmnlzA47OPK4IU3nJ5r2eLl2TBC8pvYuKRfAUmPPWY+bue7P3TssYR6MiQyskXxf+C/NquODsdzCnhHfNe1paPxrEG6qPB1nwrlex4vvTZs6Uqbgf+ucZO27PoTaeDQ+5FY+bsit4bwkYenxI4b5KmuMeo2NhBzASJtAqUGw/aWGo3+56rFUv9JBFfqYwOtnMZ8GyQLqb4iyM4CPByrFhT9k9es9otYOZO0kErcek1kvvcZGcV49upOg6RxflzBxMwmliJbCi4wyYAP+HG2XkTLRrlsk5SL+InmLOOLuChTSZd1igkzfsmmxF2aUa+2dIeohPIqfM+W806vfub7hcYNvdwZP1uyfb/708DO0NFcTy+WhRJejDtlAByqr4sojCUhevZrmUi4Croa9WqbUKLjLVcn5glQovQtgbuXpAurZ8T5zCnsP9lUtnoX4rF/3fq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:CY1PR07MB2348; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2348; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2348; 4:aqFPnvkDMWRlLZ3IO52k2/br9GBIz2pQj7oxIlQUhLtwVgcRUtcWE+yYmHgQdJXW1j7Gwwhd4cqQs1mX5vH6v8PC8KF1A/CEPOt5L2bwFRTJMh0BsuNxr+tdNWmy6BvBQu+onzMSOwZ6mPwFK9SUZbF/jrXZi+9KTKXqHgKgmWMtx5aSka6U5grggGBlxqIM/EYdS97ykJ8b11Aii22tAq1zNtbxYC2IXRRDZ8NX18CGOvy32gyG+o2lxQQQgvJD1DTBzS01fxTQRFohxqkA8Q+WqtzjrEtkWNF2gaZCTnhNJOVkPRA9/xn06Qs1RPFMGjn32ypzPW1sQxQvEB97H+6AbNammzLyl5GuWCtk5HLKYvhcprP5x0rNFLu9keXZ5lhpHg8zObLcEGrdTqBSDw== X-Forefront-PRVS: 0071BFA85B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(189998001)(8676002)(3846002)(50466002)(575784001)(92566002)(4326007)(97736004)(33646002)(48376002)(50226002)(66066001)(7736002)(68736007)(5001770100001)(36756003)(2906002)(81166006)(230783001)(50986999)(81156014)(101416001)(305945005)(5660300001)(42186005)(47776003)(5003940100001)(7846002)(77096005)(6116002)(105586002)(586003)(19580395003)(19580405001)(106356001)(229853001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2348; H:rric.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2348; 23:8OotFMDV5ZX/x98RQa0exUN/wTdaGkXwjtKiAmlrM?= =?us-ascii?Q?UHHVyuZOtTRFPaClLaH5EICfHUoGXIKUL0jsuru5ffCnoTSXWS8QV5MAGneG?= =?us-ascii?Q?FyRoz6pyCFRa6tXFXt3vDpcbZHdXW51h4PYROF2km+tieyCcdtEMNdL3gjQH?= =?us-ascii?Q?uIPDXjvREXzUJedfCiZHLNdz8lsKslb3Dx/A93TXa0+h5AWg4hE8mUe5fMlT?= =?us-ascii?Q?GglOe/pwTdbIoHMjtM9DAlgBjlzuB/m09sqytNyamf/FZHGo0i3SjQsjqW2t?= =?us-ascii?Q?HY278mUlliOsuPjpN9AHCIHCU9JDA5dGItVvsWm6xXKW/9l8HLZFYUDVteQI?= =?us-ascii?Q?TXmHDt9nElZL9OFZ28I79fxJcE+Wi6xg+E2HyBNQfdqVjn1PWNtsxNe9fB+z?= =?us-ascii?Q?ahoMyTF1m1VCi5NbdksRXIEyo7OQOZiJtN1qFvgbhUhtWU4aEMq5cR9pZ/c0?= =?us-ascii?Q?IBgAM7JOhBvisD1VKZkIwnq+8gO9OWo4ZUAzBOZQ6ZFhaFWOGT/RL4QBy8+h?= =?us-ascii?Q?e5iYXLG9wwXMvX/vLsMPeNZLcAMQuFaPAlAOIn94ooKmTOajrM+3IQIPmqJz?= =?us-ascii?Q?AAnbuMvgAP4ZFdZhybCQQYfZ5iNr2teDgfvFoauMBt1OfzBmgRD9ywLCp1yP?= =?us-ascii?Q?MWjjlffAuByiDpdb9U1wxttcObeoX0ntPMLxEUZlzZ6+Oh8AQhvuNH45iyzt?= =?us-ascii?Q?qf5CU4M2YO1cftV3vx4hDpC2877955SJUBHOtbYjQvG1ObbR1aNl428s97wK?= =?us-ascii?Q?YW2ZOQ3wsF7LaDTS+P9Z68ixeVuAuCRlAQ5aFizdSTnwmWHRCEVPygSAGoJ3?= =?us-ascii?Q?kQ1uMIYpru8zMQaflSWDuarOhgfV29yUy77q+Zy+u89fLUxWytmi8YTpqD5U?= =?us-ascii?Q?yIbAKK2EZGJatJshq1Hy0bx+zXCQ0h6K6zOpJvNL0+DuVww2AbcrWUfo8CzY?= =?us-ascii?Q?4KEJroqNJlK0mOiD9ZRltqWgmbsBMV65hENplmy7c1NyfBWZw0W9Bc6p7P5y?= =?us-ascii?Q?M0nVaGhgxMvRDsCftsBAYeJiF1GkHPvyUoVU0m7cJKBIraoVA4W1Gyj9+dpx?= =?us-ascii?Q?6XCIWM=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2348; 6:5ip+rZHtApDE6AzMt6kzKQedbzNmiufT9bHdbPB54ZeewFfd4CkaE2Alq8G4Jy/BuJa8xMXLpCBVDiAn+vu08wBnCOrmqYu+KVLU42vMCYhKS9pgCz4ndnhPXRMvz45NKBC7/71x9vrpYE3yqliPV5cmKxS8yl1Va9A18QVgT0mk/aDBTWP638qNIZXCdhmIVicWlyp7muAeDRoOxDJxpJKk4W8i8mvO6YOzkYSbxD2lpVrZruU8JsbievlNnkMTn274BDKGvhs7kk+tBBluk+r6a7rc0ftvpAh+LvoXSh4=; 5:213ojpEgnvEjhYTVwv3Ui1hfcKi5VagX98f+zNN3/ILSi24IPb5LvyTrjaIWzTY/7xoiK1tSWuK4XDooMHArd9EqGmRnhDbpenIARQpSBCTLYMQZn47iyWOGmnVSw897xytBLeEWEs4qjuCqBMZs1Q==; 24:YXijxZu/k2fszteLeiJlEDhmdbJM42vdUTC8vAz1skZReov8KSg+oVdt+01pbNXAxbNhcosl0J6K8EW5daaJw0L87rxRQ89clrBwNzqY6Eg=; 7:0uo2LB62sI0J6vumIEh4AGMfpeCad1Ze5O7Dnv0DYRAIXBlHtsbei0nvYQHZ+OUqpv/rsuRoOs39iK1mZlRloyDmGL5RQMLj2rgvsvG9RaBdoqQoGa+VQyjMi+0ympJEElKVWKk71G9VCEOcjvcjs6A8XzVg6YTNvVQx4y5WmaY9Pr5lfGkNIeLYed+olIDjMKf6PHu/RKRw0L5DVa4qRfXcoJdU63//oq70MV7bJawEu4eYoaDXxvPkKFEJe7mzly3WiVEXsyHPGSPowU9qj7pdEBh+YQjWp3BNDRvLN3TToQdev7UdjqGhSTaZzq9s SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2016 11:34:52.3881 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2348 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160920_043518_063043_26C0812E X-CRM114-Status: UNSURE ( 8.67 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Robert Richter , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, David Daney Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Booting a kernel with DEBUG_PER_CPU_MAPS enabled triggers the follwing warning: WARNING: CPU: 1 PID: 0 at ./include/linux/cpumask.h:121 gic_raise_softirq+0x298/0x308 Reason for this is the code in for_each_cpu() that modifies cpu in gic_compute_target_list() which may cause cpu set to nr_cpumask_bits and cpumask_check() (cpumask_next() of for_each_cpu()) throwing the warning. Change the code to avoid out-of-range access that stops the warning. Note: Though cpumask_check() fails, current for_each_cpu() implementation is save to use cpu out of range. Also, code in gic_raise_softirq() might be reworked at all in a way that a single each-cpu loop is used by squashing it with gic_compute_target_list(). Signed-off-by: Robert Richter --- drivers/irqchip/irq-gic-v3.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index ede5672ab34d..ed46b906cf0a 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -615,6 +615,8 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) tlist = gic_compute_target_list(&cpu, mask, cluster_id); gic_send_sgi(cluster_id, tlist, irq); + if (cpu >= nr_cpu_ids) + break; } /* Force the above writes to ICC_SGI1R_EL1 to be executed */