Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757706AbcCCNI6 (ORCPT ); Thu, 3 Mar 2016 08:08:58 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:58105 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757224AbcCCNI4 (ORCPT ); Thu, 3 Mar 2016 08:08:56 -0500 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Marc Zyngier , Neil Armstrong , linux-kernel@vger.kernel.org, tglx@linutronix.de, jason@lakedaemon.net, Ma Haijun Subject: Re: [PATCH 02/17] irqchip: Add PLX Technology RPS IRQ Controller Date: Thu, 03 Mar 2016 14:08:19 +0100 Message-ID: <7673826.decBlDRz96@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <56D83599.2030400@arm.com> References: <1457005210-18485-1-git-send-email-narmstrong@baylibre.com> <1457005210-18485-3-git-send-email-narmstrong@baylibre.com> <56D83599.2030400@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:mTwJ1rYhVQbgdwysJv9bXQceAhE1N7pGVIPl9v3s+i4JKvZl0dn dVyb/J/t6PrDz1EPdnA/oWMDQRo3osW0s6TZNKamMK4xSJGNE3AJF2LZSbnfYr0/j5/BhuB pjUDt8Z2EXLl86NEnNz2GP2ZtP2Dh24frG9qe6YDdT59H0ZsmYnlPkc48obzDSD11pZKFAP EVKEZO1zeDTqKZCA6w9nA== X-UI-Out-Filterresults: notjunk:1;V01:K0:OeYhc9mk+YI=:0LFJTRi8GvGVRFBwkM+Mad LRE7wTcsHLPnADlYxdP+zbHktIt4DAowkhFe1Cpzst2IGDlIgPbtGiLEWOpnUsJOJZO6yC68u Il0FTMJXD1HlXfpPzzihgQinrn3/XdPXxuGcDUQfLzXJoeqg6n9ezEcak90rhDhH0I/mq70fq e0fjS4Lw2Keh9ZqIBAgqrKulEvil5stt7xOemuShXRWWX1hnWxPSLjQjvQNrMCdaV0MPNUYM5 R5nlzwY55OjA9zbecG+zkmQ+j62sTge2rinMcV9jX3uutogdM/7jANd4qlp4ZZEjB4P4O7xRb Il/+jpMR9orEcTE4Fj9EayiIBFzv07PUKqjmA2M8e/JdNbfNzZPO4vu7rmWxfw64nnqsyrxUU QVbj18q+4AlsI/LCREeH+tXsf9owwH38mj27GaFmYQhvL6rdAWbU/1Jjua5oGUYTUdNIuysZV +NgD6g1pDXREePumWD5T0DuhM/KcLvdsRQzO6K+vXDX1EEK3K9jdGk3CifSvok29MuFlYJb1O YzY2+FHAAAQyABdg4/TflfELLt1k8Xfoqfd10IBo1ZCWhxIbIBiOorLI3R7ugE+ot4XjbnGjJ Eqe7q9ReujTuojBmOPfl1ZPq9JLlEMAjcUalRWjNaMw7aKbQkMOQZX5YCDxyyCU42gqUoM7AH b0xTGeC3PZs7aE/PGtc1j9eNrftoDtFGDMjrOYa+zLBkRJ+ErZ/djvq1ytoOUWxg9mo/aTz7j tM4rQnZztr0YO2Ap Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 937 Lines: 23 On Thursday 03 March 2016 13:01:13 Marc Zyngier wrote: > > +/* Routines to acknowledge, disable and enable interrupts */ > > +static void rps_mask_irq(struct irq_data *d) > > +{ > > + u32 mask = BIT(d->hwirq); > > + > > + iowrite32(mask, rps_data.base + RPS_MASK); > > I do question the use of iowrite32 here (and its ioread32 pendent > anywhere else), as it actually translates in a writel, which contains a > memory barrier. Do you have any case that requires the use of such a > barrier? if not, consider switching to relaxed accessors (which are the > I really ask everyone to do the opposite: we have seen several drivers blindlessly using the relaxed accessors and actually introducing bugs that way, so I'd rather see the readl/writel ones used by default. In any performance critical code, it's reasonable to take a closer look and use the relaxed version with an added comment explaining why it's safe there. Arnd