All of lore.kernel.org
 help / color / mirror / Atom feed
From: Will Deacon <will.deacon@arm.com>
To: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"patches@linaro.org" <patches@linaro.org>,
	"linaro-kernel@lists.linaro.org" <linaro-kernel@lists.linaro.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Subject: Re: [PATCH] asm-generic/io.h: Implement read[bwlq]_relaxed()
Date: Tue, 9 Sep 2014 13:28:18 +0100	[thread overview]
Message-ID: <20140909122818.GI1754@arm.com> (raw)
In-Reply-To: <1410264760-29756-1-git-send-email-daniel.thompson@linaro.org>

Hi Daniel,

On Tue, Sep 09, 2014 at 01:12:40PM +0100, Daniel Thompson wrote:
> Currently the read[bwlq]_relaxed() family are implemented on every
> architecture except blackfin, m68k[1], metag, openrisc, s390[2] and
> score. Increasingly drivers are being optimized to exploit relaxed
> reads putting these architectures at risk of compilation failures for
> shared drivers.
> 
> This patch addresses this by providing implementations of
> read[bwlq]_relaxed() that are identical to the equivalent read[bwlq]().
> All the above architectures include asm-generic/io.h .
> 
> Note that currently only eight architectures (alpha, arm, arm64, avr32,
> hexagon, microblaze, mips and sh) implement write[bwlq]_relaxed() meaning
> these functions are deliberately not included in this patch.
> 
> [1] m68k includes the relaxed family only when configured *without* MMU.
> [2] s390 requires CONFIG_PCI to include the relaxed family.
> 
> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: linux-arch@vger.kernel.org
> ---
>  include/asm-generic/io.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)

I have a larger series adding these (and the write equivalents) to all
architectures that I periodically post and then fail to get on top of.

The key part you're missing is defining some generic semantics for these
accessors. Without those, I don't think it makes sense to put them into
asm-generic, because drivers can't safely infer any meaning from the relaxed
definition.

Ben and I agreed on something back in May:

  https://lkml.org/lkml/2014/5/22/468

but I need to send a new version including:

  - ioreadX_relaxed and iowriteX_relaxed
  - Strengthening non-relaxed I/O accessors on architectures with non-empty
    mmiowb()

I'll bump it up the list. In the meantime, you can have a look at my io
branch on kernel.org

Will

  reply	other threads:[~2014-09-09 12:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-09 12:12 [PATCH] asm-generic/io.h: Implement read[bwlq]_relaxed() Daniel Thompson
2014-09-09 12:28 ` Will Deacon [this message]
2014-09-09 13:03   ` Daniel Thompson
2014-09-09 13:14     ` Daniel Thompson
2014-09-09 14:15       ` Will Deacon
2014-09-09 14:51         ` Daniel Thompson
2014-09-09 12:31 ` Geert Uytterhoeven
2014-09-09 13:11   ` Daniel Thompson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140909122818.GI1754@arm.com \
    --to=will.deacon@arm.com \
    --cc=arnd@arndb.de \
    --cc=daniel.thompson@linaro.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.