LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Will Deacon <will.deacon@arm.com>,
	sparclinux@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] sparc: io_64.h: Replace io function-link macros
Date: Thu, 29 Jan 2015 17:33:51 +0100	[thread overview]
Message-ID: <CAPybu_2T93eMc7pBh9gUwwBjv0TfsKR6=YVmYLRTQF7E88F5Xw@mail.gmail.com> (raw)
In-Reply-To: <2627276.KBn6RpFkKO@wuerfel>

Hello Arnd

On Thu, Jan 29, 2015 at 5:02 PM, Arnd Bergmann <arnd@arndb.de> wrote:

> I suspect such code is broken on a lot of platforms:
>
> arch/alpha/include/asm/io.h:#define ioread32be(p) be32_to_cpu(ioread32(p))
> arch/arm/include/asm/io.h:#define ioread32be(p)         ({ __u32 __v = be32_to_cpu((__force arch/arm/mach-ixp4xx/include/mach/io.h:#define  ioread32(p)                     ioread32(p)
> arch/arm/mach-ixp4xx/include/mach/io.h:#define  ioread32_rep(p, v, c)           ioread32_rep(p, v, c)
> arch/arm64/include/asm/io.h:#define ioread32be(p)               ({ __u32 __v = be32_to_cpu((__force arch/avr32/include/asm/io.h:#define ioread32(p)         ((unsigned int)readl(p))
> arch/avr32/include/asm/io.h:#define ioread32be(p)               ((unsigned int)__raw_readl(p))
> arch/mn10300/include/asm/io.h:#define ioread32(addr)            readl(addr)
> arch/sparc/include/asm/io_64.h:#define ioread32(X)                      readl(X)
> arch/sparc/include/asm/io_64.h:#define ioread32be(X)                    __raw_readl(X)
> arch/tile/include/asm/io.h:#define ioread32be(addr)     be32_to_cpu(ioread32(addr))
> arch/arm/include/asm/io.h:#define readl(c)              ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
> arch/arm/mach-ebsa110/include/mach/io.h:#define readl(b)                __readl(b)
> arch/arm/mach-ebsa110/include/mach/io.h:#define readl_relaxed(addr)     readl(addr)
> arch/arm/mach-ixp4xx/include/mach/io.h:#define readl(p)                 __indirect_readl(p)
> arch/arm64/include/asm/io.h:#define readl(c)            ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
> arch/cris/include/asm/io.h:#define readl_relaxed(addr) readl(addr)
> arch/ia64/include/asm/io.h:#define readl(a)     __readl((a))
> arch/m32r/include/asm/io.h:#define readl(addr)   _readl((unsigned long)(addr))
> arch/m68k/include/asm/io.h:#define readl_relaxed(addr)  readl(addr)
> arch/m68k/include/asm/io_mm.h:#define readl(addr)      in_le32(addr)
> arch/m68k/include/asm/io_no.h:#define readl(addr) \
> arch/nios2/include/asm/io.h:#define readl_relaxed(addr) readl(addr)
> arch/parisc/include/asm/io.h:#define readl_relaxed(addr)        readl(addr)
> arch/powerpc/include/asm/io.h:#define readl_relaxed(addr)       readl(addr)
> arch/sh/include/asm/io.h:#define readl(a)               ({ u32 r_ = readl_relaxed(a); rmb(); r_; })
>
> Maybe it's easier to fix the drivers that do this?

Instead of having 1000 wrappers on the drivers I believe that all the
arches should behave the same.

So far, the build daemon has only complained about this arch when
changing spi/xilinx.

I dont mind reviewing also the other arches, but anyway, with some
luck another developer will base his code on this driver, trigger
another build error and eventually all the arches will be fixed :).


>
>> Reported-by: kbuild test robot <fengguang.wu@intel.com>
>> Fixes: 99082eab63449f9d spi/xilinx: Remove iowrite/ioread wrappers
>> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
>
> I don't see 99082eab63449f9d in linux-next.

It is at broonie/spi.git/topic/xilinx

>
>         Arnd

Thanks!!!



-- 
Ricardo Ribalda

  reply	other threads:[~2015-01-29 16:34 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29 14:52 Ricardo Ribalda Delgado
2015-01-29 16:02 ` Arnd Bergmann
2015-01-29 16:33   ` Ricardo Ribalda Delgado [this message]
2015-01-31  2:07 ` David Miller

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='CAPybu_2T93eMc7pBh9gUwwBjv0TfsKR6=YVmYLRTQF7E88F5Xw@mail.gmail.com' \
    --to=ricardo.ribalda@gmail.com \
    --cc=arnd@arndb.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=will.deacon@arm.com \
    --subject='Re: [PATCH] sparc: io_64.h: Replace io function-link macros' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).