All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20230217122943.24caosketyvfcc4f@orel>

diff --git a/a/1.txt b/N1/1.txt
index e675c41..9b0cff8 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -20,103 +20,103 @@ On Fri, Feb 17, 2023 at 10:50:07AM +0000, Ben Dooks wrote:
 > > > Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
 > > > Acked-by: Conor Dooley <conor.dooley@microchip.com>
 > > > ---
-> > > ? arch/riscv/Kconfig??????????????? | 13 ++++++
-> > > ? arch/riscv/include/asm/insn-def.h |? 4 ++
-> > > ? arch/riscv/include/asm/page.h???? |? 6 ++-
-> > > ? arch/riscv/kernel/cpufeature.c??? | 11 +++++
-> > > ? arch/riscv/lib/Makefile?????????? |? 1 +
-> > > ? arch/riscv/lib/clear_page.S?????? | 71 +++++++++++++++++++++++++++++++
-> > > ? 6 files changed, 105 insertions(+), 1 deletion(-)
-> > > ? create mode 100644 arch/riscv/lib/clear_page.S
+> > >   arch/riscv/Kconfig                | 13 ++++++
+> > >   arch/riscv/include/asm/insn-def.h |  4 ++
+> > >   arch/riscv/include/asm/page.h     |  6 ++-
+> > >   arch/riscv/kernel/cpufeature.c    | 11 +++++
+> > >   arch/riscv/lib/Makefile           |  1 +
+> > >   arch/riscv/lib/clear_page.S       | 71 +++++++++++++++++++++++++++++++
+> > >   6 files changed, 105 insertions(+), 1 deletion(-)
+> > >   create mode 100644 arch/riscv/lib/clear_page.S
 > > > 
 > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
 > > > index 029d1d3b40bd..9590a1661caf 100644
 > > > --- a/arch/riscv/Kconfig
 > > > +++ b/arch/riscv/Kconfig
 > > > @@ -456,6 +456,19 @@ config RISCV_ISA_ZICBOM
-> > > ???????? If you don't know what to do here, say Y.
+> > >          If you don't know what to do here, say Y.
 > > > +config RISCV_ISA_ZICBOZ
-> > > +??? bool "Zicboz extension support for faster zeroing of memory"
-> > > +??? depends on !XIP_KERNEL && MMU
-> > > +??? select RISCV_ALTERNATIVE
-> > > +??? default y
-> > > +??? help
-> > > +?????? Enable the use of the ZICBOZ extension (cbo.zero instruction)
-> > > +?????? when available.
+> > > +    bool "Zicboz extension support for faster zeroing of memory"
+> > > +    depends on !XIP_KERNEL && MMU
+> > > +    select RISCV_ALTERNATIVE
+> > > +    default y
+> > > +    help
+> > > +       Enable the use of the ZICBOZ extension (cbo.zero instruction)
+> > > +       when available.
 > > > +
-> > > +?????? The Zicboz extension is used for faster zeroing of memory.
+> > > +       The Zicboz extension is used for faster zeroing of memory.
 > > > +
-> > > +?????? If you don't know what to do here, say Y.
+> > > +       If you don't know what to do here, say Y.
 > > > +
-> > > ? config TOOLCHAIN_HAS_ZIHINTPAUSE
-> > > ????? bool
-> > > ????? default y
+> > >   config TOOLCHAIN_HAS_ZIHINTPAUSE
+> > >       bool
+> > >       default y
 > > > diff --git a/arch/riscv/include/asm/insn-def.h
 > > > b/arch/riscv/include/asm/insn-def.h
 > > > index e01ab51f50d2..6960beb75f32 100644
 > > > --- a/arch/riscv/include/asm/insn-def.h
 > > > +++ b/arch/riscv/include/asm/insn-def.h
 > > > @@ -192,4 +192,8 @@
-> > > ????? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \
-> > > ???????????? RS1(base), SIMM12(2))
-> > > +#define CBO_zero(base)??????????????????????? \
-> > > +??? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \
-> > > +?????????? RS1(base), SIMM12(4))
+> > >       INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),        \
+> > >              RS1(base), SIMM12(2))
+> > > +#define CBO_zero(base)                        \
+> > > +    INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),        \
+> > > +           RS1(base), SIMM12(4))
 > > > +
-> > > ? #endif /* __ASM_INSN_DEF_H */
+> > >   #endif /* __ASM_INSN_DEF_H */
 > > > diff --git a/arch/riscv/include/asm/page.h
 > > > b/arch/riscv/include/asm/page.h
 > > > index 9f432c1b5289..ccd168fe29d2 100644
 > > > --- a/arch/riscv/include/asm/page.h
 > > > +++ b/arch/riscv/include/asm/page.h
 > > > @@ -49,10 +49,14 @@
-> > > ? #ifndef __ASSEMBLY__
+> > >   #ifndef __ASSEMBLY__
 > > > +#ifdef CONFIG_RISCV_ISA_ZICBOZ
 > > > +void clear_page(void *page);
 > > > +#else
-> > > ? #define clear_page(pgaddr)??????????? memset((pgaddr), 0, PAGE_SIZE)
+> > >   #define clear_page(pgaddr)            memset((pgaddr), 0, PAGE_SIZE)
 > > > +#endif
-> > > ? #define copy_page(to, from)??????????? memcpy((to), (from), PAGE_SIZE)
-> > > -#define clear_user_page(pgaddr, vaddr, page)??? memset((pgaddr), 0,
+> > >   #define copy_page(to, from)            memcpy((to), (from), PAGE_SIZE)
+> > > -#define clear_user_page(pgaddr, vaddr, page)    memset((pgaddr), 0,
 > > > PAGE_SIZE)
-> > > +#define clear_user_page(pgaddr, vaddr, page)??? clear_page(pgaddr)
-> > > ? #define copy_user_page(vto, vfrom, vaddr, topg) \
-> > > ????????????? memcpy((vto), (vfrom), PAGE_SIZE)
+> > > +#define clear_user_page(pgaddr, vaddr, page)    clear_page(pgaddr)
+> > >   #define copy_user_page(vto, vfrom, vaddr, topg) \
+> > >               memcpy((vto), (vfrom), PAGE_SIZE)
 > > > diff --git a/arch/riscv/kernel/cpufeature.c
 > > > b/arch/riscv/kernel/cpufeature.c
 > > > index 74736b4f0624..42246bbfa532 100644
 > > > --- a/arch/riscv/kernel/cpufeature.c
 > > > +++ b/arch/riscv/kernel/cpufeature.c
 > > > @@ -280,6 +280,17 @@ void __init riscv_fill_hwcap(void)
-> > > ? #ifdef CONFIG_RISCV_ALTERNATIVE
-> > > ? static bool riscv_cpufeature_application_check(u32 feature, u16 data)
-> > > ? {
-> > > +??? switch (feature) {
-> > > +??? case RISCV_ISA_EXT_ZICBOZ:
-> > > +??????? /*
-> > > +???????? * Zicboz alternative applications provide the maximum
-> > > +???????? * supported block size order, or zero when it doesn't
-> > > +???????? * matter. If the current block size exceeds the maximum,
-> > > +???????? * then the alternative cannot be applied.
-> > > +???????? */
-> > > +??????? return data == 0 || riscv_cboz_block_size <= (1U << data);
-> > > +??? }
+> > >   #ifdef CONFIG_RISCV_ALTERNATIVE
+> > >   static bool riscv_cpufeature_application_check(u32 feature, u16 data)
+> > >   {
+> > > +    switch (feature) {
+> > > +    case RISCV_ISA_EXT_ZICBOZ:
+> > > +        /*
+> > > +         * Zicboz alternative applications provide the maximum
+> > > +         * supported block size order, or zero when it doesn't
+> > > +         * matter. If the current block size exceeds the maximum,
+> > > +         * then the alternative cannot be applied.
+> > > +         */
+> > > +        return data == 0 || riscv_cboz_block_size <= (1U << data);
+> > > +    }
 > 
 > 
 > 
 > > > +
-> > > ????? return data == 0;
-> > > ? }
+> > >       return data == 0;
+> > >   }
 > > > diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile
 > > > index 6c74b0bedd60..26cb2502ecf8 100644
 > > > --- a/arch/riscv/lib/Makefile
 > > > +++ b/arch/riscv/lib/Makefile
-> > > @@ -8,5 +8,6 @@ lib-y??????????? += strlen.o
-> > > ? lib-y??????????? += strncmp.o
-> > > ? lib-$(CONFIG_MMU)??? += uaccess.o
-> > > ? lib-$(CONFIG_64BIT)??? += tishift.o
-> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)??? += clear_page.o
-> > > ? obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
+> > > @@ -8,5 +8,6 @@ lib-y            += strlen.o
+> > >   lib-y            += strncmp.o
+> > >   lib-$(CONFIG_MMU)    += uaccess.o
+> > >   lib-$(CONFIG_64BIT)    += tishift.o
+> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)    += clear_page.o
+> > >   obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
 > > > diff --git a/arch/riscv/lib/clear_page.S b/arch/riscv/lib/clear_page.S
 > > > new file mode 100644
 > > > index 000000000000..5b851e727f7c
@@ -135,8 +135,8 @@ On Fri, Feb 17, 2023 at 10:50:07AM +0000, Ben Dooks wrote:
 > > > +#include <asm/insn-def.h>
 > > > +#include <asm/page.h>
 > > > +
-> > > +#define CBOZ_ALT(order, old, new)??? \
-> > > +??? ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,
+> > > +#define CBOZ_ALT(order, old, new)    \
+> > > +    ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,
 > > > CONFIG_RISCV_ISA_ZICBOZ)
 > > 
 > > I thought this was meant to be a CPUFEATURE_ZICBOZ thing for the
@@ -165,3 +165,8 @@ rather break errata_id into two parts: id and application-data.
 
 Thanks,
 drew
+
+_______________________________________________
+linux-riscv mailing list
+linux-riscv@lists.infradead.org
+http://lists.infradead.org/mailman/listinfo/linux-riscv
diff --git a/a/content_digest b/N1/content_digest
index 7bdf827..3bba9de 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -3,9 +3,22 @@
  "ref\04a25cf89-bcf0-e78c-a8ab-7ba0c4f8e2bf@codethink.co.uk\0"
  "ref\0b348f0cc-4868-2924-9935-00ec18b36da9@codethink.co.uk\0"
  "From\0Andrew Jones <ajones@ventanamicro.com>\0"
- "Subject\0[PATCH v4 6/8] RISC-V: Use Zicboz in clear_page when available\0"
+ "Subject\0Re: [PATCH v4 6/8] RISC-V: Use Zicboz in clear_page when available\0"
  "Date\0Fri, 17 Feb 2023 13:29:43 +0100\0"
- "To\0kvm-riscv@lists.infradead.org\0"
+ "To\0Ben Dooks <ben.dooks@codethink.co.uk>\0"
+ "Cc\0linux-riscv@lists.infradead.org"
+  kvm-riscv@lists.infradead.org
+  devicetree@vger.kernel.org
+  'Anup Patel ' <apatel@ventanamicro.com>
+  'Palmer Dabbelt ' <palmer@dabbelt.com>
+  'Paul Walmsley ' <paul.walmsley@sifive.com>
+  'Krzysztof Kozlowski ' <krzysztof.kozlowski+dt@linaro.org>
+  'Atish Patra ' <atishp@rivosinc.com>
+  'Heiko Stuebner ' <heiko@sntech.de>
+  'Jisheng Zhang ' <jszhang@kernel.org>
+  'Rob Herring ' <robh@kernel.org>
+  'Albert Ou ' <aou@eecs.berkeley.edu>
+ " 'Conor Dooley ' <conor.dooley@microchip.com>\0"
  "\00:1\0"
  "b\0"
  "On Fri, Feb 17, 2023 at 10:50:07AM +0000, Ben Dooks wrote:\n"
@@ -30,103 +43,103 @@
  "> > > Signed-off-by: Andrew Jones <ajones@ventanamicro.com>\n"
  "> > > Acked-by: Conor Dooley <conor.dooley@microchip.com>\n"
  "> > > ---\n"
- "> > > ? arch/riscv/Kconfig??????????????? | 13 ++++++\n"
- "> > > ? arch/riscv/include/asm/insn-def.h |? 4 ++\n"
- "> > > ? arch/riscv/include/asm/page.h???? |? 6 ++-\n"
- "> > > ? arch/riscv/kernel/cpufeature.c??? | 11 +++++\n"
- "> > > ? arch/riscv/lib/Makefile?????????? |? 1 +\n"
- "> > > ? arch/riscv/lib/clear_page.S?????? | 71 +++++++++++++++++++++++++++++++\n"
- "> > > ? 6 files changed, 105 insertions(+), 1 deletion(-)\n"
- "> > > ? create mode 100644 arch/riscv/lib/clear_page.S\n"
+ "> > > \302\240 arch/riscv/Kconfig\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 | 13 ++++++\n"
+ "> > > \302\240 arch/riscv/include/asm/insn-def.h |\302\240 4 ++\n"
+ "> > > \302\240 arch/riscv/include/asm/page.h\302\240\302\240\302\240\302\240 |\302\240 6 ++-\n"
+ "> > > \302\240 arch/riscv/kernel/cpufeature.c\302\240\302\240\302\240 | 11 +++++\n"
+ "> > > \302\240 arch/riscv/lib/Makefile\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 |\302\240 1 +\n"
+ "> > > \302\240 arch/riscv/lib/clear_page.S\302\240\302\240\302\240\302\240\302\240\302\240 | 71 +++++++++++++++++++++++++++++++\n"
+ "> > > \302\240 6 files changed, 105 insertions(+), 1 deletion(-)\n"
+ "> > > \302\240 create mode 100644 arch/riscv/lib/clear_page.S\n"
  "> > > \n"
  "> > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig\n"
  "> > > index 029d1d3b40bd..9590a1661caf 100644\n"
  "> > > --- a/arch/riscv/Kconfig\n"
  "> > > +++ b/arch/riscv/Kconfig\n"
  "> > > @@ -456,6 +456,19 @@ config RISCV_ISA_ZICBOM\n"
- "> > > ???????? If you don't know what to do here, say Y.\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 If you don't know what to do here, say Y.\n"
  "> > > +config RISCV_ISA_ZICBOZ\n"
- "> > > +??? bool \"Zicboz extension support for faster zeroing of memory\"\n"
- "> > > +??? depends on !XIP_KERNEL && MMU\n"
- "> > > +??? select RISCV_ALTERNATIVE\n"
- "> > > +??? default y\n"
- "> > > +??? help\n"
- "> > > +?????? Enable the use of the ZICBOZ extension (cbo.zero instruction)\n"
- "> > > +?????? when available.\n"
+ "> > > +\302\240\302\240\302\240 bool \"Zicboz extension support for faster zeroing of memory\"\n"
+ "> > > +\302\240\302\240\302\240 depends on !XIP_KERNEL && MMU\n"
+ "> > > +\302\240\302\240\302\240 select RISCV_ALTERNATIVE\n"
+ "> > > +\302\240\302\240\302\240 default y\n"
+ "> > > +\302\240\302\240\302\240 help\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 Enable the use of the ZICBOZ extension (cbo.zero instruction)\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 when available.\n"
  "> > > +\n"
- "> > > +?????? The Zicboz extension is used for faster zeroing of memory.\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 The Zicboz extension is used for faster zeroing of memory.\n"
  "> > > +\n"
- "> > > +?????? If you don't know what to do here, say Y.\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 If you don't know what to do here, say Y.\n"
  "> > > +\n"
- "> > > ? config TOOLCHAIN_HAS_ZIHINTPAUSE\n"
- "> > > ????? bool\n"
- "> > > ????? default y\n"
+ "> > > \302\240 config TOOLCHAIN_HAS_ZIHINTPAUSE\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 bool\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 default y\n"
  "> > > diff --git a/arch/riscv/include/asm/insn-def.h\n"
  "> > > b/arch/riscv/include/asm/insn-def.h\n"
  "> > > index e01ab51f50d2..6960beb75f32 100644\n"
  "> > > --- a/arch/riscv/include/asm/insn-def.h\n"
  "> > > +++ b/arch/riscv/include/asm/insn-def.h\n"
  "> > > @@ -192,4 +192,8 @@\n"
- "> > > ????? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \\\n"
- "> > > ???????????? RS1(base), SIMM12(2))\n"
- "> > > +#define CBO_zero(base)??????????????????????? \\\n"
- "> > > +??? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \\\n"
- "> > > +?????????? RS1(base), SIMM12(4))\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 RS1(base), SIMM12(2))\n"
+ "> > > +#define CBO_zero(base)\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n"
+ "> > > +\302\240\302\240\302\240 INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 RS1(base), SIMM12(4))\n"
  "> > > +\n"
- "> > > ? #endif /* __ASM_INSN_DEF_H */\n"
+ "> > > \302\240 #endif /* __ASM_INSN_DEF_H */\n"
  "> > > diff --git a/arch/riscv/include/asm/page.h\n"
  "> > > b/arch/riscv/include/asm/page.h\n"
  "> > > index 9f432c1b5289..ccd168fe29d2 100644\n"
  "> > > --- a/arch/riscv/include/asm/page.h\n"
  "> > > +++ b/arch/riscv/include/asm/page.h\n"
  "> > > @@ -49,10 +49,14 @@\n"
- "> > > ? #ifndef __ASSEMBLY__\n"
+ "> > > \302\240 #ifndef __ASSEMBLY__\n"
  "> > > +#ifdef CONFIG_RISCV_ISA_ZICBOZ\n"
  "> > > +void clear_page(void *page);\n"
  "> > > +#else\n"
- "> > > ? #define clear_page(pgaddr)??????????? memset((pgaddr), 0, PAGE_SIZE)\n"
+ "> > > \302\240 #define clear_page(pgaddr)\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 memset((pgaddr), 0, PAGE_SIZE)\n"
  "> > > +#endif\n"
- "> > > ? #define copy_page(to, from)??????????? memcpy((to), (from), PAGE_SIZE)\n"
- "> > > -#define clear_user_page(pgaddr, vaddr, page)??? memset((pgaddr), 0,\n"
+ "> > > \302\240 #define copy_page(to, from)\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 memcpy((to), (from), PAGE_SIZE)\n"
+ "> > > -#define clear_user_page(pgaddr, vaddr, page)\302\240\302\240\302\240 memset((pgaddr), 0,\n"
  "> > > PAGE_SIZE)\n"
- "> > > +#define clear_user_page(pgaddr, vaddr, page)??? clear_page(pgaddr)\n"
- "> > > ? #define copy_user_page(vto, vfrom, vaddr, topg) \\\n"
- "> > > ????????????? memcpy((vto), (vfrom), PAGE_SIZE)\n"
+ "> > > +#define clear_user_page(pgaddr, vaddr, page)\302\240\302\240\302\240 clear_page(pgaddr)\n"
+ "> > > \302\240 #define copy_user_page(vto, vfrom, vaddr, topg) \\\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 memcpy((vto), (vfrom), PAGE_SIZE)\n"
  "> > > diff --git a/arch/riscv/kernel/cpufeature.c\n"
  "> > > b/arch/riscv/kernel/cpufeature.c\n"
  "> > > index 74736b4f0624..42246bbfa532 100644\n"
  "> > > --- a/arch/riscv/kernel/cpufeature.c\n"
  "> > > +++ b/arch/riscv/kernel/cpufeature.c\n"
  "> > > @@ -280,6 +280,17 @@ void __init riscv_fill_hwcap(void)\n"
- "> > > ? #ifdef CONFIG_RISCV_ALTERNATIVE\n"
- "> > > ? static bool riscv_cpufeature_application_check(u32 feature, u16 data)\n"
- "> > > ? {\n"
- "> > > +??? switch (feature) {\n"
- "> > > +??? case RISCV_ISA_EXT_ZICBOZ:\n"
- "> > > +??????? /*\n"
- "> > > +???????? * Zicboz alternative applications provide the maximum\n"
- "> > > +???????? * supported block size order, or zero when it doesn't\n"
- "> > > +???????? * matter. If the current block size exceeds the maximum,\n"
- "> > > +???????? * then the alternative cannot be applied.\n"
- "> > > +???????? */\n"
- "> > > +??????? return data == 0 || riscv_cboz_block_size <= (1U << data);\n"
- "> > > +??? }\n"
+ "> > > \302\240 #ifdef CONFIG_RISCV_ALTERNATIVE\n"
+ "> > > \302\240 static bool riscv_cpufeature_application_check(u32 feature, u16 data)\n"
+ "> > > \302\240 {\n"
+ "> > > +\302\240\302\240\302\240 switch (feature) {\n"
+ "> > > +\302\240\302\240\302\240 case RISCV_ISA_EXT_ZICBOZ:\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 /*\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * Zicboz alternative applications provide the maximum\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * supported block size order, or zero when it doesn't\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * matter. If the current block size exceeds the maximum,\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * then the alternative cannot be applied.\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 */\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return data == 0 || riscv_cboz_block_size <= (1U << data);\n"
+ "> > > +\302\240\302\240\302\240 }\n"
  "> \n"
  "> \n"
  "> \n"
  "> > > +\n"
- "> > > ????? return data == 0;\n"
- "> > > ? }\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 return data == 0;\n"
+ "> > > \302\240 }\n"
  "> > > diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile\n"
  "> > > index 6c74b0bedd60..26cb2502ecf8 100644\n"
  "> > > --- a/arch/riscv/lib/Makefile\n"
  "> > > +++ b/arch/riscv/lib/Makefile\n"
- "> > > @@ -8,5 +8,6 @@ lib-y??????????? += strlen.o\n"
- "> > > ? lib-y??????????? += strncmp.o\n"
- "> > > ? lib-$(CONFIG_MMU)??? += uaccess.o\n"
- "> > > ? lib-$(CONFIG_64BIT)??? += tishift.o\n"
- "> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)??? += clear_page.o\n"
- "> > > ? obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o\n"
+ "> > > @@ -8,5 +8,6 @@ lib-y\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 += strlen.o\n"
+ "> > > \302\240 lib-y\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 += strncmp.o\n"
+ "> > > \302\240 lib-$(CONFIG_MMU)\302\240\302\240\302\240 += uaccess.o\n"
+ "> > > \302\240 lib-$(CONFIG_64BIT)\302\240\302\240\302\240 += tishift.o\n"
+ "> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)\302\240\302\240\302\240 += clear_page.o\n"
+ "> > > \302\240 obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o\n"
  "> > > diff --git a/arch/riscv/lib/clear_page.S b/arch/riscv/lib/clear_page.S\n"
  "> > > new file mode 100644\n"
  "> > > index 000000000000..5b851e727f7c\n"
@@ -145,8 +158,8 @@
  "> > > +#include <asm/insn-def.h>\n"
  "> > > +#include <asm/page.h>\n"
  "> > > +\n"
- "> > > +#define CBOZ_ALT(order, old, new)??? \\\n"
- "> > > +??? ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,\n"
+ "> > > +#define CBOZ_ALT(order, old, new)\302\240\302\240\302\240 \\\n"
+ "> > > +\302\240\302\240\302\240 ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,\n"
  "> > > CONFIG_RISCV_ISA_ZICBOZ)\n"
  "> > \n"
  "> > I thought this was meant to be a CPUFEATURE_ZICBOZ thing for the\n"
@@ -174,6 +187,11 @@
  "rather break errata_id into two parts: id and application-data.\n"
  "\n"
  "Thanks,\n"
- drew
+ "drew\n"
+ "\n"
+ "_______________________________________________\n"
+ "linux-riscv mailing list\n"
+ "linux-riscv@lists.infradead.org\n"
+ http://lists.infradead.org/mailman/listinfo/linux-riscv
 
-c128b660468b451edf7f55d0c9f1b268e1819e4c79e667748fb9a18f6a6d0f22
+6f8fa50f641b7bad17e994ae4c15d3d278bac65afb884ee69f1d606fb57b3ecd

diff --git a/a/1.txt b/N2/1.txt
index e675c41..f8cf6ee 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -20,103 +20,103 @@ On Fri, Feb 17, 2023 at 10:50:07AM +0000, Ben Dooks wrote:
 > > > Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
 > > > Acked-by: Conor Dooley <conor.dooley@microchip.com>
 > > > ---
-> > > ? arch/riscv/Kconfig??????????????? | 13 ++++++
-> > > ? arch/riscv/include/asm/insn-def.h |? 4 ++
-> > > ? arch/riscv/include/asm/page.h???? |? 6 ++-
-> > > ? arch/riscv/kernel/cpufeature.c??? | 11 +++++
-> > > ? arch/riscv/lib/Makefile?????????? |? 1 +
-> > > ? arch/riscv/lib/clear_page.S?????? | 71 +++++++++++++++++++++++++++++++
-> > > ? 6 files changed, 105 insertions(+), 1 deletion(-)
-> > > ? create mode 100644 arch/riscv/lib/clear_page.S
+> > >   arch/riscv/Kconfig                | 13 ++++++
+> > >   arch/riscv/include/asm/insn-def.h |  4 ++
+> > >   arch/riscv/include/asm/page.h     |  6 ++-
+> > >   arch/riscv/kernel/cpufeature.c    | 11 +++++
+> > >   arch/riscv/lib/Makefile           |  1 +
+> > >   arch/riscv/lib/clear_page.S       | 71 +++++++++++++++++++++++++++++++
+> > >   6 files changed, 105 insertions(+), 1 deletion(-)
+> > >   create mode 100644 arch/riscv/lib/clear_page.S
 > > > 
 > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
 > > > index 029d1d3b40bd..9590a1661caf 100644
 > > > --- a/arch/riscv/Kconfig
 > > > +++ b/arch/riscv/Kconfig
 > > > @@ -456,6 +456,19 @@ config RISCV_ISA_ZICBOM
-> > > ???????? If you don't know what to do here, say Y.
+> > >          If you don't know what to do here, say Y.
 > > > +config RISCV_ISA_ZICBOZ
-> > > +??? bool "Zicboz extension support for faster zeroing of memory"
-> > > +??? depends on !XIP_KERNEL && MMU
-> > > +??? select RISCV_ALTERNATIVE
-> > > +??? default y
-> > > +??? help
-> > > +?????? Enable the use of the ZICBOZ extension (cbo.zero instruction)
-> > > +?????? when available.
+> > > +    bool "Zicboz extension support for faster zeroing of memory"
+> > > +    depends on !XIP_KERNEL && MMU
+> > > +    select RISCV_ALTERNATIVE
+> > > +    default y
+> > > +    help
+> > > +       Enable the use of the ZICBOZ extension (cbo.zero instruction)
+> > > +       when available.
 > > > +
-> > > +?????? The Zicboz extension is used for faster zeroing of memory.
+> > > +       The Zicboz extension is used for faster zeroing of memory.
 > > > +
-> > > +?????? If you don't know what to do here, say Y.
+> > > +       If you don't know what to do here, say Y.
 > > > +
-> > > ? config TOOLCHAIN_HAS_ZIHINTPAUSE
-> > > ????? bool
-> > > ????? default y
+> > >   config TOOLCHAIN_HAS_ZIHINTPAUSE
+> > >       bool
+> > >       default y
 > > > diff --git a/arch/riscv/include/asm/insn-def.h
 > > > b/arch/riscv/include/asm/insn-def.h
 > > > index e01ab51f50d2..6960beb75f32 100644
 > > > --- a/arch/riscv/include/asm/insn-def.h
 > > > +++ b/arch/riscv/include/asm/insn-def.h
 > > > @@ -192,4 +192,8 @@
-> > > ????? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \
-> > > ???????????? RS1(base), SIMM12(2))
-> > > +#define CBO_zero(base)??????????????????????? \
-> > > +??? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \
-> > > +?????????? RS1(base), SIMM12(4))
+> > >       INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),        \
+> > >              RS1(base), SIMM12(2))
+> > > +#define CBO_zero(base)                        \
+> > > +    INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),        \
+> > > +           RS1(base), SIMM12(4))
 > > > +
-> > > ? #endif /* __ASM_INSN_DEF_H */
+> > >   #endif /* __ASM_INSN_DEF_H */
 > > > diff --git a/arch/riscv/include/asm/page.h
 > > > b/arch/riscv/include/asm/page.h
 > > > index 9f432c1b5289..ccd168fe29d2 100644
 > > > --- a/arch/riscv/include/asm/page.h
 > > > +++ b/arch/riscv/include/asm/page.h
 > > > @@ -49,10 +49,14 @@
-> > > ? #ifndef __ASSEMBLY__
+> > >   #ifndef __ASSEMBLY__
 > > > +#ifdef CONFIG_RISCV_ISA_ZICBOZ
 > > > +void clear_page(void *page);
 > > > +#else
-> > > ? #define clear_page(pgaddr)??????????? memset((pgaddr), 0, PAGE_SIZE)
+> > >   #define clear_page(pgaddr)            memset((pgaddr), 0, PAGE_SIZE)
 > > > +#endif
-> > > ? #define copy_page(to, from)??????????? memcpy((to), (from), PAGE_SIZE)
-> > > -#define clear_user_page(pgaddr, vaddr, page)??? memset((pgaddr), 0,
+> > >   #define copy_page(to, from)            memcpy((to), (from), PAGE_SIZE)
+> > > -#define clear_user_page(pgaddr, vaddr, page)    memset((pgaddr), 0,
 > > > PAGE_SIZE)
-> > > +#define clear_user_page(pgaddr, vaddr, page)??? clear_page(pgaddr)
-> > > ? #define copy_user_page(vto, vfrom, vaddr, topg) \
-> > > ????????????? memcpy((vto), (vfrom), PAGE_SIZE)
+> > > +#define clear_user_page(pgaddr, vaddr, page)    clear_page(pgaddr)
+> > >   #define copy_user_page(vto, vfrom, vaddr, topg) \
+> > >               memcpy((vto), (vfrom), PAGE_SIZE)
 > > > diff --git a/arch/riscv/kernel/cpufeature.c
 > > > b/arch/riscv/kernel/cpufeature.c
 > > > index 74736b4f0624..42246bbfa532 100644
 > > > --- a/arch/riscv/kernel/cpufeature.c
 > > > +++ b/arch/riscv/kernel/cpufeature.c
 > > > @@ -280,6 +280,17 @@ void __init riscv_fill_hwcap(void)
-> > > ? #ifdef CONFIG_RISCV_ALTERNATIVE
-> > > ? static bool riscv_cpufeature_application_check(u32 feature, u16 data)
-> > > ? {
-> > > +??? switch (feature) {
-> > > +??? case RISCV_ISA_EXT_ZICBOZ:
-> > > +??????? /*
-> > > +???????? * Zicboz alternative applications provide the maximum
-> > > +???????? * supported block size order, or zero when it doesn't
-> > > +???????? * matter. If the current block size exceeds the maximum,
-> > > +???????? * then the alternative cannot be applied.
-> > > +???????? */
-> > > +??????? return data == 0 || riscv_cboz_block_size <= (1U << data);
-> > > +??? }
+> > >   #ifdef CONFIG_RISCV_ALTERNATIVE
+> > >   static bool riscv_cpufeature_application_check(u32 feature, u16 data)
+> > >   {
+> > > +    switch (feature) {
+> > > +    case RISCV_ISA_EXT_ZICBOZ:
+> > > +        /*
+> > > +         * Zicboz alternative applications provide the maximum
+> > > +         * supported block size order, or zero when it doesn't
+> > > +         * matter. If the current block size exceeds the maximum,
+> > > +         * then the alternative cannot be applied.
+> > > +         */
+> > > +        return data == 0 || riscv_cboz_block_size <= (1U << data);
+> > > +    }
 > 
 > 
 > 
 > > > +
-> > > ????? return data == 0;
-> > > ? }
+> > >       return data == 0;
+> > >   }
 > > > diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile
 > > > index 6c74b0bedd60..26cb2502ecf8 100644
 > > > --- a/arch/riscv/lib/Makefile
 > > > +++ b/arch/riscv/lib/Makefile
-> > > @@ -8,5 +8,6 @@ lib-y??????????? += strlen.o
-> > > ? lib-y??????????? += strncmp.o
-> > > ? lib-$(CONFIG_MMU)??? += uaccess.o
-> > > ? lib-$(CONFIG_64BIT)??? += tishift.o
-> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)??? += clear_page.o
-> > > ? obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
+> > > @@ -8,5 +8,6 @@ lib-y            += strlen.o
+> > >   lib-y            += strncmp.o
+> > >   lib-$(CONFIG_MMU)    += uaccess.o
+> > >   lib-$(CONFIG_64BIT)    += tishift.o
+> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)    += clear_page.o
+> > >   obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
 > > > diff --git a/arch/riscv/lib/clear_page.S b/arch/riscv/lib/clear_page.S
 > > > new file mode 100644
 > > > index 000000000000..5b851e727f7c
@@ -135,8 +135,8 @@ On Fri, Feb 17, 2023 at 10:50:07AM +0000, Ben Dooks wrote:
 > > > +#include <asm/insn-def.h>
 > > > +#include <asm/page.h>
 > > > +
-> > > +#define CBOZ_ALT(order, old, new)??? \
-> > > +??? ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,
+> > > +#define CBOZ_ALT(order, old, new)    \
+> > > +    ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,
 > > > CONFIG_RISCV_ISA_ZICBOZ)
 > > 
 > > I thought this was meant to be a CPUFEATURE_ZICBOZ thing for the
diff --git a/a/content_digest b/N2/content_digest
index 7bdf827..8a70019 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -3,9 +3,22 @@
  "ref\04a25cf89-bcf0-e78c-a8ab-7ba0c4f8e2bf@codethink.co.uk\0"
  "ref\0b348f0cc-4868-2924-9935-00ec18b36da9@codethink.co.uk\0"
  "From\0Andrew Jones <ajones@ventanamicro.com>\0"
- "Subject\0[PATCH v4 6/8] RISC-V: Use Zicboz in clear_page when available\0"
+ "Subject\0Re: [PATCH v4 6/8] RISC-V: Use Zicboz in clear_page when available\0"
  "Date\0Fri, 17 Feb 2023 13:29:43 +0100\0"
- "To\0kvm-riscv@lists.infradead.org\0"
+ "To\0Ben Dooks <ben.dooks@codethink.co.uk>\0"
+ "Cc\0linux-riscv@lists.infradead.org"
+  kvm-riscv@lists.infradead.org
+  devicetree@vger.kernel.org
+  'Anup Patel ' <apatel@ventanamicro.com>
+  'Palmer Dabbelt ' <palmer@dabbelt.com>
+  'Paul Walmsley ' <paul.walmsley@sifive.com>
+  'Krzysztof Kozlowski ' <krzysztof.kozlowski+dt@linaro.org>
+  'Atish Patra ' <atishp@rivosinc.com>
+  'Heiko Stuebner ' <heiko@sntech.de>
+  'Jisheng Zhang ' <jszhang@kernel.org>
+  'Rob Herring ' <robh@kernel.org>
+  'Albert Ou ' <aou@eecs.berkeley.edu>
+ " 'Conor Dooley ' <conor.dooley@microchip.com>\0"
  "\00:1\0"
  "b\0"
  "On Fri, Feb 17, 2023 at 10:50:07AM +0000, Ben Dooks wrote:\n"
@@ -30,103 +43,103 @@
  "> > > Signed-off-by: Andrew Jones <ajones@ventanamicro.com>\n"
  "> > > Acked-by: Conor Dooley <conor.dooley@microchip.com>\n"
  "> > > ---\n"
- "> > > ? arch/riscv/Kconfig??????????????? | 13 ++++++\n"
- "> > > ? arch/riscv/include/asm/insn-def.h |? 4 ++\n"
- "> > > ? arch/riscv/include/asm/page.h???? |? 6 ++-\n"
- "> > > ? arch/riscv/kernel/cpufeature.c??? | 11 +++++\n"
- "> > > ? arch/riscv/lib/Makefile?????????? |? 1 +\n"
- "> > > ? arch/riscv/lib/clear_page.S?????? | 71 +++++++++++++++++++++++++++++++\n"
- "> > > ? 6 files changed, 105 insertions(+), 1 deletion(-)\n"
- "> > > ? create mode 100644 arch/riscv/lib/clear_page.S\n"
+ "> > > \302\240 arch/riscv/Kconfig\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 | 13 ++++++\n"
+ "> > > \302\240 arch/riscv/include/asm/insn-def.h |\302\240 4 ++\n"
+ "> > > \302\240 arch/riscv/include/asm/page.h\302\240\302\240\302\240\302\240 |\302\240 6 ++-\n"
+ "> > > \302\240 arch/riscv/kernel/cpufeature.c\302\240\302\240\302\240 | 11 +++++\n"
+ "> > > \302\240 arch/riscv/lib/Makefile\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 |\302\240 1 +\n"
+ "> > > \302\240 arch/riscv/lib/clear_page.S\302\240\302\240\302\240\302\240\302\240\302\240 | 71 +++++++++++++++++++++++++++++++\n"
+ "> > > \302\240 6 files changed, 105 insertions(+), 1 deletion(-)\n"
+ "> > > \302\240 create mode 100644 arch/riscv/lib/clear_page.S\n"
  "> > > \n"
  "> > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig\n"
  "> > > index 029d1d3b40bd..9590a1661caf 100644\n"
  "> > > --- a/arch/riscv/Kconfig\n"
  "> > > +++ b/arch/riscv/Kconfig\n"
  "> > > @@ -456,6 +456,19 @@ config RISCV_ISA_ZICBOM\n"
- "> > > ???????? If you don't know what to do here, say Y.\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 If you don't know what to do here, say Y.\n"
  "> > > +config RISCV_ISA_ZICBOZ\n"
- "> > > +??? bool \"Zicboz extension support for faster zeroing of memory\"\n"
- "> > > +??? depends on !XIP_KERNEL && MMU\n"
- "> > > +??? select RISCV_ALTERNATIVE\n"
- "> > > +??? default y\n"
- "> > > +??? help\n"
- "> > > +?????? Enable the use of the ZICBOZ extension (cbo.zero instruction)\n"
- "> > > +?????? when available.\n"
+ "> > > +\302\240\302\240\302\240 bool \"Zicboz extension support for faster zeroing of memory\"\n"
+ "> > > +\302\240\302\240\302\240 depends on !XIP_KERNEL && MMU\n"
+ "> > > +\302\240\302\240\302\240 select RISCV_ALTERNATIVE\n"
+ "> > > +\302\240\302\240\302\240 default y\n"
+ "> > > +\302\240\302\240\302\240 help\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 Enable the use of the ZICBOZ extension (cbo.zero instruction)\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 when available.\n"
  "> > > +\n"
- "> > > +?????? The Zicboz extension is used for faster zeroing of memory.\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 The Zicboz extension is used for faster zeroing of memory.\n"
  "> > > +\n"
- "> > > +?????? If you don't know what to do here, say Y.\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240 If you don't know what to do here, say Y.\n"
  "> > > +\n"
- "> > > ? config TOOLCHAIN_HAS_ZIHINTPAUSE\n"
- "> > > ????? bool\n"
- "> > > ????? default y\n"
+ "> > > \302\240 config TOOLCHAIN_HAS_ZIHINTPAUSE\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 bool\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 default y\n"
  "> > > diff --git a/arch/riscv/include/asm/insn-def.h\n"
  "> > > b/arch/riscv/include/asm/insn-def.h\n"
  "> > > index e01ab51f50d2..6960beb75f32 100644\n"
  "> > > --- a/arch/riscv/include/asm/insn-def.h\n"
  "> > > +++ b/arch/riscv/include/asm/insn-def.h\n"
  "> > > @@ -192,4 +192,8 @@\n"
- "> > > ????? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \\\n"
- "> > > ???????????? RS1(base), SIMM12(2))\n"
- "> > > +#define CBO_zero(base)??????????????????????? \\\n"
- "> > > +??? INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),??????? \\\n"
- "> > > +?????????? RS1(base), SIMM12(4))\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 RS1(base), SIMM12(2))\n"
+ "> > > +#define CBO_zero(base)\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n"
+ "> > > +\302\240\302\240\302\240 INSN_I(OPCODE_MISC_MEM, FUNC3(2), __RD(0),\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 RS1(base), SIMM12(4))\n"
  "> > > +\n"
- "> > > ? #endif /* __ASM_INSN_DEF_H */\n"
+ "> > > \302\240 #endif /* __ASM_INSN_DEF_H */\n"
  "> > > diff --git a/arch/riscv/include/asm/page.h\n"
  "> > > b/arch/riscv/include/asm/page.h\n"
  "> > > index 9f432c1b5289..ccd168fe29d2 100644\n"
  "> > > --- a/arch/riscv/include/asm/page.h\n"
  "> > > +++ b/arch/riscv/include/asm/page.h\n"
  "> > > @@ -49,10 +49,14 @@\n"
- "> > > ? #ifndef __ASSEMBLY__\n"
+ "> > > \302\240 #ifndef __ASSEMBLY__\n"
  "> > > +#ifdef CONFIG_RISCV_ISA_ZICBOZ\n"
  "> > > +void clear_page(void *page);\n"
  "> > > +#else\n"
- "> > > ? #define clear_page(pgaddr)??????????? memset((pgaddr), 0, PAGE_SIZE)\n"
+ "> > > \302\240 #define clear_page(pgaddr)\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 memset((pgaddr), 0, PAGE_SIZE)\n"
  "> > > +#endif\n"
- "> > > ? #define copy_page(to, from)??????????? memcpy((to), (from), PAGE_SIZE)\n"
- "> > > -#define clear_user_page(pgaddr, vaddr, page)??? memset((pgaddr), 0,\n"
+ "> > > \302\240 #define copy_page(to, from)\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 memcpy((to), (from), PAGE_SIZE)\n"
+ "> > > -#define clear_user_page(pgaddr, vaddr, page)\302\240\302\240\302\240 memset((pgaddr), 0,\n"
  "> > > PAGE_SIZE)\n"
- "> > > +#define clear_user_page(pgaddr, vaddr, page)??? clear_page(pgaddr)\n"
- "> > > ? #define copy_user_page(vto, vfrom, vaddr, topg) \\\n"
- "> > > ????????????? memcpy((vto), (vfrom), PAGE_SIZE)\n"
+ "> > > +#define clear_user_page(pgaddr, vaddr, page)\302\240\302\240\302\240 clear_page(pgaddr)\n"
+ "> > > \302\240 #define copy_user_page(vto, vfrom, vaddr, topg) \\\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 memcpy((vto), (vfrom), PAGE_SIZE)\n"
  "> > > diff --git a/arch/riscv/kernel/cpufeature.c\n"
  "> > > b/arch/riscv/kernel/cpufeature.c\n"
  "> > > index 74736b4f0624..42246bbfa532 100644\n"
  "> > > --- a/arch/riscv/kernel/cpufeature.c\n"
  "> > > +++ b/arch/riscv/kernel/cpufeature.c\n"
  "> > > @@ -280,6 +280,17 @@ void __init riscv_fill_hwcap(void)\n"
- "> > > ? #ifdef CONFIG_RISCV_ALTERNATIVE\n"
- "> > > ? static bool riscv_cpufeature_application_check(u32 feature, u16 data)\n"
- "> > > ? {\n"
- "> > > +??? switch (feature) {\n"
- "> > > +??? case RISCV_ISA_EXT_ZICBOZ:\n"
- "> > > +??????? /*\n"
- "> > > +???????? * Zicboz alternative applications provide the maximum\n"
- "> > > +???????? * supported block size order, or zero when it doesn't\n"
- "> > > +???????? * matter. If the current block size exceeds the maximum,\n"
- "> > > +???????? * then the alternative cannot be applied.\n"
- "> > > +???????? */\n"
- "> > > +??????? return data == 0 || riscv_cboz_block_size <= (1U << data);\n"
- "> > > +??? }\n"
+ "> > > \302\240 #ifdef CONFIG_RISCV_ALTERNATIVE\n"
+ "> > > \302\240 static bool riscv_cpufeature_application_check(u32 feature, u16 data)\n"
+ "> > > \302\240 {\n"
+ "> > > +\302\240\302\240\302\240 switch (feature) {\n"
+ "> > > +\302\240\302\240\302\240 case RISCV_ISA_EXT_ZICBOZ:\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 /*\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * Zicboz alternative applications provide the maximum\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * supported block size order, or zero when it doesn't\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * matter. If the current block size exceeds the maximum,\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * then the alternative cannot be applied.\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 */\n"
+ "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return data == 0 || riscv_cboz_block_size <= (1U << data);\n"
+ "> > > +\302\240\302\240\302\240 }\n"
  "> \n"
  "> \n"
  "> \n"
  "> > > +\n"
- "> > > ????? return data == 0;\n"
- "> > > ? }\n"
+ "> > > \302\240\302\240\302\240\302\240\302\240 return data == 0;\n"
+ "> > > \302\240 }\n"
  "> > > diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile\n"
  "> > > index 6c74b0bedd60..26cb2502ecf8 100644\n"
  "> > > --- a/arch/riscv/lib/Makefile\n"
  "> > > +++ b/arch/riscv/lib/Makefile\n"
- "> > > @@ -8,5 +8,6 @@ lib-y??????????? += strlen.o\n"
- "> > > ? lib-y??????????? += strncmp.o\n"
- "> > > ? lib-$(CONFIG_MMU)??? += uaccess.o\n"
- "> > > ? lib-$(CONFIG_64BIT)??? += tishift.o\n"
- "> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)??? += clear_page.o\n"
- "> > > ? obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o\n"
+ "> > > @@ -8,5 +8,6 @@ lib-y\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 += strlen.o\n"
+ "> > > \302\240 lib-y\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 += strncmp.o\n"
+ "> > > \302\240 lib-$(CONFIG_MMU)\302\240\302\240\302\240 += uaccess.o\n"
+ "> > > \302\240 lib-$(CONFIG_64BIT)\302\240\302\240\302\240 += tishift.o\n"
+ "> > > +lib-$(CONFIG_RISCV_ISA_ZICBOZ)\302\240\302\240\302\240 += clear_page.o\n"
+ "> > > \302\240 obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o\n"
  "> > > diff --git a/arch/riscv/lib/clear_page.S b/arch/riscv/lib/clear_page.S\n"
  "> > > new file mode 100644\n"
  "> > > index 000000000000..5b851e727f7c\n"
@@ -145,8 +158,8 @@
  "> > > +#include <asm/insn-def.h>\n"
  "> > > +#include <asm/page.h>\n"
  "> > > +\n"
- "> > > +#define CBOZ_ALT(order, old, new)??? \\\n"
- "> > > +??? ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,\n"
+ "> > > +#define CBOZ_ALT(order, old, new)\302\240\302\240\302\240 \\\n"
+ "> > > +\302\240\302\240\302\240 ALTERNATIVE(old, new, order, RISCV_ISA_EXT_ZICBOZ,\n"
  "> > > CONFIG_RISCV_ISA_ZICBOZ)\n"
  "> > \n"
  "> > I thought this was meant to be a CPUFEATURE_ZICBOZ thing for the\n"
@@ -176,4 +189,4 @@
  "Thanks,\n"
  drew
 
-c128b660468b451edf7f55d0c9f1b268e1819e4c79e667748fb9a18f6a6d0f22
+35ecd0c8c3b033dd47d1178e4efa304724c6b30fbb036ba81e2a8161a9b811e9

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.