From: Baoquan He <bhe@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
akpm@linux-foundation.org, agordeev@linux.ibm.com,
wangkefeng.wang@huawei.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 03/11] mm: ioremap: allow ARCH to have its own ioremap definition
Date: Tue, 23 Aug 2022 10:42:44 +0800 [thread overview]
Message-ID: <YwQ+pBNMGuHq2s+V@MiWiFi-R3L-srv> (raw)
In-Reply-To: <YwHXWdycBZr+bluG@infradead.org>
On 08/20/22 at 11:57pm, Christoph Hellwig wrote:
> On Sat, Aug 20, 2022 at 08:31:17AM +0800, Baoquan He wrote:
> > Architectures like xtensa, arc, can be converted to GENERIC_IOREMAP,
> > to take standard ioremap_prot() and ioremap_xxx() way. But they have
> > ARCH specific handling for ioremap() method, than standard ioremap()
> > method.
>
> Do they?
>
> For arc, the arc_uncached_addr_space case can be easily handled by
> arch_ioremap, and the xtensa case looks very similar to that.
I am worried it will impact ioremap_prot(). Arc has selected
HAVE_IOREMAP_PROT in Kconfig. Putting arc_uncached_addr_space() calling
into arch_ioremap() will change ioremap_prot(), right?
And I have the same about xtensa. You can see ioremap() and
ioremap_cache() will return different value since they take
XCHAL_KIO_BYPASS_VADDR and XCHAL_KIO_CACHED_VADDR differently. I haven't
figured out a way to handle them in arch_ioremap() differently.
static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
{
if (offset >= XCHAL_KIO_PADDR
&& offset - XCHAL_KIO_PADDR < XCHAL_KIO_SIZE)
return (void*)(offset-XCHAL_KIO_PADDR+XCHAL_KIO_BYPASS_VADDR);
else
return xtensa_ioremap_nocache(offset, size);
}
static inline void __iomem *ioremap_cache(unsigned long offset,
unsigned long size)
{
if (offset >= XCHAL_KIO_PADDR
&& offset - XCHAL_KIO_PADDR < XCHAL_KIO_SIZE)
return (void*)(offset-XCHAL_KIO_PADDR+XCHAL_KIO_CACHED_VADDR);
else
return xtensa_ioremap_cache(offset, size);
}
>
> I'd really like to kill off arch definitions of ioremap going
> forward, as they should just be a special case of ioremap_prot
> by definition.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
akpm@linux-foundation.org, agordeev@linux.ibm.com,
wangkefeng.wang@huawei.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 03/11] mm: ioremap: allow ARCH to have its own ioremap definition
Date: Tue, 23 Aug 2022 10:42:44 +0800 [thread overview]
Message-ID: <YwQ+pBNMGuHq2s+V@MiWiFi-R3L-srv> (raw)
In-Reply-To: <YwHXWdycBZr+bluG@infradead.org>
On 08/20/22 at 11:57pm, Christoph Hellwig wrote:
> On Sat, Aug 20, 2022 at 08:31:17AM +0800, Baoquan He wrote:
> > Architectures like xtensa, arc, can be converted to GENERIC_IOREMAP,
> > to take standard ioremap_prot() and ioremap_xxx() way. But they have
> > ARCH specific handling for ioremap() method, than standard ioremap()
> > method.
>
> Do they?
>
> For arc, the arc_uncached_addr_space case can be easily handled by
> arch_ioremap, and the xtensa case looks very similar to that.
I am worried it will impact ioremap_prot(). Arc has selected
HAVE_IOREMAP_PROT in Kconfig. Putting arc_uncached_addr_space() calling
into arch_ioremap() will change ioremap_prot(), right?
And I have the same about xtensa. You can see ioremap() and
ioremap_cache() will return different value since they take
XCHAL_KIO_BYPASS_VADDR and XCHAL_KIO_CACHED_VADDR differently. I haven't
figured out a way to handle them in arch_ioremap() differently.
static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
{
if (offset >= XCHAL_KIO_PADDR
&& offset - XCHAL_KIO_PADDR < XCHAL_KIO_SIZE)
return (void*)(offset-XCHAL_KIO_PADDR+XCHAL_KIO_BYPASS_VADDR);
else
return xtensa_ioremap_nocache(offset, size);
}
static inline void __iomem *ioremap_cache(unsigned long offset,
unsigned long size)
{
if (offset >= XCHAL_KIO_PADDR
&& offset - XCHAL_KIO_PADDR < XCHAL_KIO_SIZE)
return (void*)(offset-XCHAL_KIO_PADDR+XCHAL_KIO_CACHED_VADDR);
else
return xtensa_ioremap_cache(offset, size);
}
>
> I'd really like to kill off arch definitions of ioremap going
> forward, as they should just be a special case of ioremap_prot
> by definition.
next prev parent reply other threads:[~2022-08-23 2:44 UTC|newest]
Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-20 0:31 [PATCH v2 00/11] mm: ioremap: Convert architectures to take GENERIC_IOREMAP way Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 01/11] mm/ioremap: change the return value of io[re|un]map_allowed and rename Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-21 6:53 ` Christoph Hellwig
2022-08-21 6:53 ` Christoph Hellwig
2022-08-22 23:55 ` Baoquan He
2022-08-22 23:55 ` Baoquan He
2022-08-22 6:25 ` Christophe Leroy
2022-08-22 6:25 ` Christophe Leroy
2022-08-23 0:20 ` Baoquan He
2022-08-23 0:20 ` Baoquan He
2022-08-23 5:24 ` Christophe Leroy
2022-08-23 5:24 ` Christophe Leroy
2022-08-23 15:14 ` Baoquan He
2022-08-23 15:14 ` Baoquan He
2022-08-23 15:26 ` Christophe Leroy
2022-08-23 15:26 ` Christophe Leroy
2022-08-24 8:16 ` David Laight
2022-08-24 8:16 ` David Laight
2022-08-28 14:44 ` Baoquan He
2022-08-28 14:44 ` Baoquan He
2022-08-28 8:36 ` Alexander Gordeev
2022-08-28 8:36 ` Alexander Gordeev
2022-08-28 9:55 ` Baoquan He
2022-08-28 9:55 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 02/11] mm: ioremap: fixup the physical address and page prot Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-21 6:54 ` Christoph Hellwig
2022-08-21 6:54 ` Christoph Hellwig
2022-08-23 1:13 ` Baoquan He
2022-08-23 1:13 ` Baoquan He
2022-08-22 6:30 ` Christophe Leroy
2022-08-22 6:30 ` Christophe Leroy
2022-08-23 1:19 ` Baoquan He
2022-08-23 1:19 ` Baoquan He
2022-08-23 5:33 ` Christophe Leroy
2022-08-23 5:33 ` Christophe Leroy
2022-08-23 12:32 ` Baoquan He
2022-08-23 12:32 ` Baoquan He
2022-08-23 19:03 ` Christophe Leroy
2022-08-23 19:03 ` Christophe Leroy
2022-08-28 11:10 ` Baoquan He
2022-08-28 11:10 ` Baoquan He
2022-09-12 2:55 ` Baoquan He
2022-09-12 2:55 ` Baoquan He
2022-09-12 7:10 ` Christophe Leroy
2022-09-12 7:10 ` Christophe Leroy
2022-09-13 15:11 ` Baoquan He
2022-09-13 15:11 ` Baoquan He
2022-09-21 16:40 ` Christophe Leroy
2022-09-21 16:40 ` Christophe Leroy
2022-09-22 13:23 ` Baoquan He
2022-09-22 13:23 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 03/11] mm: ioremap: allow ARCH to have its own ioremap definition Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-21 6:57 ` Christoph Hellwig
2022-08-21 6:57 ` Christoph Hellwig
2022-08-23 2:42 ` Baoquan He [this message]
2022-08-23 2:42 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 04/11] arc: mm: Convert to GENERIC_IOREMAP Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 05/11] hexagon: " Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 1:23 ` Brian Cain
2022-08-20 1:23 ` Brian Cain
2022-08-21 7:00 ` Christoph Hellwig
2022-08-21 7:00 ` Christoph Hellwig
2022-08-28 15:08 ` Baoquan He
2022-08-28 15:08 ` Baoquan He
2022-08-22 6:38 ` Christophe Leroy
2022-08-22 6:38 ` Christophe Leroy
2022-08-28 15:12 ` Baoquan He
2022-08-28 15:12 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 06/11] ia64: " Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-21 6:58 ` Christoph Hellwig
2022-08-21 7:02 ` Christoph Hellwig
2022-08-21 7:02 ` Christoph Hellwig
2022-08-28 15:12 ` Baoquan He
2022-08-28 15:12 ` Baoquan He
2022-08-28 15:12 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 07/11] openrisc: " Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-21 7:03 ` Christoph Hellwig
2022-08-21 7:03 ` Christoph Hellwig
2022-08-21 7:03 ` Christoph Hellwig
2022-08-29 1:40 ` Baoquan He
2022-08-29 1:40 ` Baoquan He
2022-08-29 1:40 ` Baoquan He
2022-08-29 6:42 ` Stafford Horne
2022-08-29 6:42 ` Stafford Horne
2022-08-29 6:42 ` Stafford Horne
2022-08-29 8:18 ` Baoquan He
2022-08-29 8:18 ` Baoquan He
2022-08-29 8:18 ` Baoquan He
2022-08-30 6:05 ` Christophe Leroy
2022-08-30 6:05 ` Christophe Leroy
2022-08-30 6:05 ` Christophe Leroy
2022-08-29 6:32 ` Stafford Horne
2022-08-29 6:32 ` Stafford Horne
2022-08-29 6:32 ` Stafford Horne
2022-08-29 8:19 ` Baoquan He
2022-08-29 8:19 ` Baoquan He
2022-08-29 8:19 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 08/11] parisc: " Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 4:03 ` kernel test robot
2022-08-20 4:03 ` kernel test robot
2022-08-21 10:26 ` Baoquan He
2022-08-21 10:26 ` Baoquan He
2022-08-21 14:18 ` Helge Deller
2022-08-21 14:18 ` Helge Deller
2022-08-30 13:00 ` Baoquan He
2022-08-30 13:00 ` Baoquan He
2022-08-30 13:00 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 09/11] s390: " Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-21 7:05 ` Christoph Hellwig
2022-08-21 7:05 ` Christoph Hellwig
2022-08-22 15:08 ` Niklas Schnelle
2022-08-22 15:08 ` Niklas Schnelle
2022-08-31 8:59 ` Baoquan He
2022-08-31 8:59 ` Baoquan He
2022-08-22 15:19 ` Niklas Schnelle
2022-08-22 15:19 ` Niklas Schnelle
2022-08-31 8:58 ` Baoquan He
2022-08-31 8:58 ` Baoquan He
2022-08-23 12:30 ` Niklas Schnelle
2022-08-23 12:30 ` Niklas Schnelle
2022-08-31 8:50 ` Baoquan He
2022-08-31 8:50 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 10/11] sh: " Baoquan He
2022-08-20 0:31 ` Baoquan He
2022-08-20 3:41 ` kernel test robot
2022-09-01 10:39 ` Baoquan He
2022-09-01 10:39 ` Baoquan He
2022-09-01 10:39 ` Baoquan He
2022-09-01 12:11 ` [kbuild-all] " Chen, Rong A
2022-09-01 12:11 ` Chen, Rong A
2022-09-01 12:31 ` Baoquan He
2022-09-01 12:31 ` Baoquan He
2022-09-01 12:31 ` [kbuild-all] " Baoquan He
2022-09-02 9:48 ` Baoquan He
2022-09-02 9:48 ` Baoquan He
2022-09-02 9:48 ` Baoquan He
2022-08-21 7:06 ` Christoph Hellwig
2022-08-21 7:06 ` Christoph Hellwig
2022-09-01 7:36 ` Baoquan He
2022-09-01 7:36 ` Baoquan He
2022-08-20 0:31 ` [PATCH v2 11/11] xtensa: " Baoquan He
2022-08-20 0:31 ` 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=YwQ+pBNMGuHq2s+V@MiWiFi-R3L-srv \
--to=bhe@redhat.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=hch@infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=wangkefeng.wang@huawei.com \
/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.