From patchwork Fri May 5 19:47:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 98731 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp293497qge; Fri, 5 May 2017 12:50:16 -0700 (PDT) X-Received: by 10.84.217.218 with SMTP id d26mr44861427plj.47.1494013816869; Fri, 05 May 2017 12:50:16 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c5si2571475pga.119.2017.05.05.12.50.16; Fri, 05 May 2017 12:50:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756060AbdEETuL (ORCPT + 6 others); Fri, 5 May 2017 15:50:11 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:59143 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755597AbdEETss (ORCPT ); Fri, 5 May 2017 15:48:48 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0LfsQF-1drdUq2VUB-00pg7K; Fri, 05 May 2017 21:48:23 +0200 From: Arnd Bergmann To: Ben Hutchings Cc: stable@vger.kernel.org, Arnd Bergmann , "David S . Miller" Subject: [PATCH 3.16-stable 50/87] net: am2150: fix nmclan_cs.c shared interrupt handling Date: Fri, 5 May 2017 21:47:08 +0200 Message-Id: <20170505194745.3627137-51-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170505194745.3627137-1-arnd@arndb.de> References: <20170505194745.3627137-1-arnd@arndb.de> X-Provags-ID: V03:K0:35sn5fi2IwtLiehEDZ2stXqhLOFXJ746jSpDcp/Cp6wHFVioTDT 7GdaQu3lrHzvHZqkykPcFDGmQA2TxCZ9Ezs9DoYgNe/Zs7cGlJbQf5OvKAjJd0glPPKqpUK GAjuqFqnoD4+JaaGrK6NKNqkzv5qwq4mGvvrnexcS6DO++J44XeapO/TMz0uOQlDSyZjzoD wOd/xzMMXbue8KZcjlQ1A== X-UI-Out-Filterresults: notjunk:1; V01:K0:54YtxV33FuE=:LfK2P+3X8pa1ZHUG5RGfUm hqcTyk2N6YfwTupJfi+J4vhiieAAg98eSncJgxIVrlYCorI2nSjJk5qaa6tHROjHBiBbrPwAF DWONul/mPvMI7Rk5dVr6mFe5tpXL8hOzJ2fIltlP4JBfOrKeaHX/HgpiSRf2G7l+H/f8caUEp fDDokjx7ZckMsTPOjq1Sa8GOgf+mjNVl2J1ofHxsgnje2xCMnd70NRmq/G2LanbF0Z4fCM0tn vuhhrciDu2GLSTa4SEA/LcbpwCPHyv61MWMv5VMLGOjCOd5SAFbfI18bevRjgmxmS/6fEdCWs K3eGVZIyMwc/TsVQyARMZ33IGbsXskEoyts+Gl1uoV6m+gzvPogU8Xi6Kabx4yyBwvl8FS80Q bveYgNLhKr+e7q5ZKRfmgBDRpMNXMmpFCN81pCM9RAvNae/sMh4agZBUy6qDvnnf7MfBfmE1F A1PdP5JFuJzkaJpaE8c12y8ZtycXgeO5g4CuMeMGgyA7e4LvtA51YGB99l0pEAPi5/tJ3tKSR cRqUDLHGp2zE9jr3l4Rgy7LLejb9k8mFnk2nqWzaG+CijlOs6m5aZuB/pNCUxdXK5+GanQ6vI vBXXMEtPMc7/6b51jsLG3Kj6PlMQe9qKsz0QuQpGHqh+5oQfU9acWtRdh01R9IwoKwGPHGvce +3JmldtFiErGlSCYM41onFoTJWtEVOnpEFG127oWYKm2uCmd2p7CYKpScD8aCCXrt9bg= Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Commit ec48c4ad83d711f18daea527bb2c78d388cc5ef3 upstream. A recent patch tried to work around a valid warning for the use of a deprecated interface by blindly changing from the old pcmcia_request_exclusive_irq() interface to pcmcia_request_irq(). This driver has an interrupt handler that is not currently aware of shared interrupts, but can be easily converted to be. At the moment, the driver reads the interrupt status register repeatedly until it contains only zeroes in the interesting bits, and handles each bit individually. This patch adds the missing part of returning IRQ_NONE in case none of the bits are set to start with, so we can move on to the next interrupt source. Signed-off-by: Arnd Bergmann Fixes: 5f5316fcd08ef7 ("am2150: Update nmclan_cs.c to use update PCMCIA API") Signed-off-by: David S. Miller Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/amd/nmclan_cs.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.9.0 diff --git a/drivers/net/ethernet/amd/nmclan_cs.c b/drivers/net/ethernet/amd/nmclan_cs.c index abf3b1581c82..11cb05df749c 100644 --- a/drivers/net/ethernet/amd/nmclan_cs.c +++ b/drivers/net/ethernet/amd/nmclan_cs.c @@ -952,6 +952,8 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id) do { /* WARNING: MACE_IR is a READ/CLEAR port! */ status = inb(ioaddr + AM2150_MACE_BASE + MACE_IR); + if (!(status & ~MACE_IMR_DEFAULT) && IntrCnt == MACE_MAX_IR_ITERATIONS) + return IRQ_NONE; pr_debug("mace_interrupt: irq 0x%X status 0x%X.\n", irq, status);