From: Baoquan He <bhe@redhat.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-kernel@vger.kernel.org,
Linux-Arch <linux-arch@vger.kernel.org>,
linux-mm@kvack.org, Geert Uytterhoeven <geert@linux-m68k.org>,
Christoph Hellwig <hch@infradead.org>,
Luis Chamberlain <mcgrof@kernel.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Huacai Chen <chenhuacai@kernel.org>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
linux-mips@vger.kernel.org
Subject: Re: [PATCH v2 1/2] mips: add <asm-generic/io.h> including
Date: Thu, 2 Mar 2023 12:12:21 +0800 [thread overview]
Message-ID: <ZAAiJcx80RU0QuHw@MiWiFi-R3L-srv> (raw)
In-Reply-To: <5edd5304-ef11-4607-9189-a07613ecfee2@app.fastmail.com>
On 03/01/23 at 03:06pm, Arnd Bergmann wrote:
> On Wed, Mar 1, 2023, at 11:22, Baoquan He wrote:
> > With the adding, some default ioremap_xx methods defined in
> > asm-generic/io.h can be used. E.g the default ioremap_uc() returning
> > NULL.
> >
> > Here, remove the <asm/io.h> including in asm/mmiowb.h, otherwise nested
> > including will cause compiling error.
> >
> > Signed-off-by: Baoquan He <bhe@redhat.com>
> > Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> > Cc: Huacai Chen <chenhuacai@kernel.org>
> > Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
> > Cc: linux-mips@vger.kernel.org
>
> This looks good to me,
>
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
>
> but it obviously needs to be properly reviewed by the MIPS
> maintainers as well. I think others have tried to do this
> in the past but did not make it in.
Thanks for reviewing. Then let's wait for MIPS people to help check
this.
>
> > @@ -548,6 +552,46 @@ extern void (*_dma_cache_inv)(unsigned long start,
> > unsigned long size);
> > #define csr_out32(v, a) (*(volatile u32 *)((unsigned long)(a) +
> > __CSR_32_ADJUST) = (v))
> > #define csr_in32(a) (*(volatile u32 *)((unsigned long)(a) +
> > __CSR_32_ADJUST))
> >
> > +
> > +#define inb_p inb_p
> > +#define inw_p inw_p
> > +#define inl_p inl_p
> > +#define insb insb
> > +#define insw insw
> > +#define insl insl
>
> I would prefer to put the #defines next to the function declarations,
> even when they come from macros.
Yeah, sounds reasonable, will change.
>
> >
> > -#include <asm/io.h>
> > -
> > #define mmiowb() iobarrier_w()
> >
>
> I think this only works as long as asm/spinlock.h also includes
> asm/io.h, otherwise linux/spinlock.h will be missing the
> iobarrier_w definition.
>
> Most likely this is implicitly included from somewhere else
> below linux/spinlock.h, but it would be better not to rely
> on that, and instead define mmiowb() to wmb() directly.
Yeah, defining mmiowb() to wmb() directly is also good to me. I tried
to comb including sequence and find where asm/io.h is included, but
failed. Mainly asm/mmiowb.h including asm/io.h will cause below
compiling error, the asm/io.h need see mmiowb_set_pending which is
defnined in asm-generic/mmiowb.h. Moving asm-generic/mmiowb.h to above
asm/io.h can also fix the compiling error.
=============
diff --git a/arch/mips/include/asm/mmiowb.h b/arch/mips/include/asm/mmiowb.h
index a40824e3ef8e..cae2745935bc 100644
--- a/arch/mips/include/asm/mmiowb.h
+++ b/arch/mips/include/asm/mmiowb.h
@@ -2,10 +2,8 @@
#ifndef _ASM_MMIOWB_H
#define _ASM_MMIOWB_H
+#include <asm-generic/mmiowb.h>
#include <asm/io.h>
#define mmiowb() iobarrier_w()
-
-#include <asm-generic/mmiowb.h>
-
#endif /* _ASM_MMIOWB_H */
============
CC arch/mips/kernel/asm-offsets.s
In file included from ./arch/mips/include/asm/io.h:602,
from ./arch/mips/include/asm/mmiowb.h:6,
from ./include/linux/spinlock.h:65,
from ./include/linux/ipc.h:5,
from ./include/uapi/linux/sem.h:5,
from ./include/linux/sem.h:5,
from ./include/linux/compat.h:14,
from arch/mips/kernel/asm-offsets.c:12:
./include/asm-generic/io.h: In function ‘_outb’:
./include/asm-generic/io.h:46:24: error: implicit declaration of function ‘mmiowb_set_pending’ [-Werror=implicit-function-declaration]
46 | #define __io_aw() mmiowb_set_pending()
| ^~~~~~~~~~~~~~~~~~
./include/asm-generic/io.h:54:24: note: in expansion of macro ‘__io_aw’
54 | #define __io_paw() __io_aw()
| ^~~~~~~
./include/asm-generic/io.h:585:9: note: in expansion of macro ‘__io_paw’
585 | __io_paw();
| ^~~~~~~~
next prev parent reply other threads:[~2023-03-02 4:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 10:22 [PATCH v2 0/2] arch/*/io.h: remove ioremap_uc in some architectures Baoquan He
2023-03-01 10:22 ` [PATCH v2 1/2] mips: add <asm-generic/io.h> including Baoquan He
2023-03-01 14:06 ` Arnd Bergmann
2023-03-02 4:12 ` Baoquan He [this message]
2023-03-02 7:12 ` Arnd Bergmann
2023-03-02 9:09 ` Baoquan He
2023-03-03 9:13 ` Baoquan He
2023-03-01 10:22 ` [PATCH v2 2/2] arch/*/io.h: remove ioremap_uc in some architectures Baoquan He
2023-03-01 13:37 ` [PATCH v2 0/2] " Baoquan He
2023-03-02 19:57 ` Luis Chamberlain
2023-03-03 10:24 ` Baoquan He
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=ZAAiJcx80RU0QuHw@MiWiFi-R3L-srv \
--to=bhe@redhat.com \
--cc=arnd@arndb.de \
--cc=chenhuacai@kernel.org \
--cc=geert@linux-m68k.org \
--cc=hch@infradead.org \
--cc=jiaxun.yang@flygoat.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mcgrof@kernel.org \
--cc=tsbogend@alpha.franken.de \
/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.