From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752635AbeDFMuy (ORCPT ); Fri, 6 Apr 2018 08:50:54 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:47656 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752291AbeDFMuw (ORCPT ); Fri, 6 Apr 2018 08:50:52 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 06 Apr 2018 08:50:50 -0400 From: okaya@codeaurora.org To: Arnd Bergmann Cc: Timur Tabi , sulrich@codeaurora.org, linux-arm-msm@vger.kernel.org, Linux ARM , linux-arch , Linux Kernel Mailing List , linux-s390 , Martin Schwidefsky , Heiko Carstens , Ley Foon Tan , "moderated list:NIOS2 ARCHITECTURE" , arndbergmann@gmail.com Subject: Re: [PATCH v4 1/5] io: define several IO & PIO barrier types for the asm-generic version In-Reply-To: References: <1522933753-19589-1-git-send-email-okaya@codeaurora.org> Message-ID: User-Agent: Roundcube Webmail/1.2.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018-04-06 06:19, Arnd Bergmann wrote: > On Thu, Apr 5, 2018 at 3:09 PM, Sinan Kaya > wrote: >> Getting ready to harden readX()/writeX() and inX()/outX() semantics >> for the >> generic implementation. >> >> Defining two set of macros as __io_br() and __io_ar() to indicate >> actions >> to be taken before and after MMIO read. >> >> Defining two set of macros as __io_bw() and __io_aw() to indicate >> actions >> to be taken before and after MMIO write. >> >> Defining two set of macros as __io_pbw() and __io_paw() to indicate >> actions >> to be taken before and after Port IO write. >> >> Defining two set of macros as __io_pbr() and __io_par() to indicate >> actions >> to be taken before and after Port IO read. >> >> If rmb() is available for the architecture, prefer rmb() as the >> default >> implementation of __io_ar()/__io_par(). >> >> If wmb() is available for the architecture, prefer wmb() as the >> default >> implementation of __io_bw()/__io_pbw(). >> >> Signed-off-by: Sinan Kaya > > I've applied the series to my asm-generic tree now, I will give it a > few days > in linux-next to see if any obvious regressions happen, and then send > a pull request. > > Checking the list of architectures that are affected by this, I see > h8300, microblaze, nios2, openrisc, s390, sparc, um, unicore32, > and xtensa, all of which use asm-generic/io.h without overriding > the default readl/writel. > > I would guess that at least s390 doesn't need the barriers > (maintainers on Cc now), but there may be others that want to > override the new barriers with weaker ones where an MMIO > access is guaranteed to serialize against DMA, or where > a specialized barrier for this case exists. > > Looking over the asm-generic implementation once more now, > I wonder if we should change the relaxed accessors to not have > any barriers (back to the version before your series) rather than > defaulting them to having the same barriers as the regular > readl/writel. I can do a follow up patch. You want to map them to raw api without any barriers as before. Right? > > Arnd