Re: [PATCH v2 19/35] nds32: L2 cache support

From: Arnd Bergmann
Date: Mon Nov 27 2017 - 09:33:53 EST


On Mon, Nov 27, 2017 at 1:28 PM, Greentime Hu <green.hu@xxxxxxxxx> wrote:
> +
> +#define L2C_R_REG(offset) __raw_readl(atl2c_base + offset)
> +#define L2C_W_REG(offset, value) __raw_writel(value, atl2c_base + offset)

__raw_readl() is generally not endian-safe, and might not have the barriers you
require here. Could you use readl/writel here, and only fall back to
readl_relaxed()/writel_relaxed() when you absolutely must avoid the barriers?

> diff --git a/arch/nds32/kernel/atl2c.c b/arch/nds32/kernel/atl2c.c
> new file mode 100644
> index 0000000..dd87fc9
> --- /dev/null
> +++ b/arch/nds32/kernel/atl2c.c
> +#include <linux/compiler.h>
> +#include <linux/of_address.h>
> +#include <linux/of_fdt.h>
> +#include <linux/of_platform.h>
> +#include <asm/l2_cache.h>

If this is the only file that includes asm/l2_cache.h, then I'd simply
move the entire
contents in here, rather than having a separate file in the global namespace.

Arnd