[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 6 Jun 2022 00:54:09 -0700
From: Christoph Hellwig <hch@...radead.org>
To: Kefeng Wang <wangkefeng.wang@...wei.com>
Cc: catalin.marinas@....com, will@...nel.org,
akpm@...ux-foundation.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
hch@...radead.org, arnd@...db.de, anshuman.khandual@....com
Subject: Re: [PATCH v4 5/6] arm64: mm: Convert to GENERIC_IOREMAP
> +#define ioremap_wc(addr, size) ioremap_prot((addr), (size), PROT_NORMAL_NC)
> +#define ioremap_np(addr, size) ioremap_prot((addr), (size), PROT_DEVICE_nGnRnE)
Please avoid the overly long lines here. Independt of that having
a non-trivial body on a separate line tends to generlly be a lot more
readable anyway.
> +#define ioremap_cache(addr, size) ({ \
> + pfn_is_map_memory(__phys_to_pfn(addr)) ? \
> + (void __iomem *)__phys_to_virt(addr) : ioremap_prot(addr, size, PROT_NORMAL); \
> +})
And this really should be an inline function.
> +int iounmap_allowed(void __iomem *addr)
> {
> /*
> * We could get an address outside vmalloc range in case
> * of ioremap_cache() reusing a RAM mapping.
> */
> + return is_vmalloc_addr(addr) ? 0 : -EINVAL;
As the generic ioremap only returns vmalloc addresses, this check
really should go into common code.
Powered by blists - more mailing lists