Message ID | 20190307170440.3113-1-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Patchew URL: https://patchew.org/QEMU/20190307170440.3113-1-richard.henderson@linaro.org/ Hi, This series seems to have some coding style problems. See output below for more information: Type: series Message-id: 20190307170440.3113-1-richard.henderson@linaro.org Subject: [Qemu-devel] [PATCH v4 00/22] target/arm: Implement ARMv8.5-MemTag, system mode === TEST SCRIPT BEGIN === #!/bin/bash git rev-parse base > /dev/null || exit 0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram ./scripts/checkpatch.pl --mailback base.. === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 From https://github.com/patchew-project/qemu * [new tag] patchew/20190307170440.3113-1-richard.henderson@linaro.org -> patchew/20190307170440.3113-1-richard.henderson@linaro.org Switched to a new branch 'test' 23fdebd210 target/arm: Enable MTE 3cf01953ff target/arm: Add allocation tag storage for system mode 494df9631b target/arm: Create a TLB entry for tag physical address space c3aea915ad target/arm: Create tagged ram when MTE is enabled f073d517ec target/arm: Cache the Tagged bit for a page in MemTxAttrs 7597116fed target/arm: Set PSTATE.TCO on exception entry 798d73e166 target/arm: Implement data cache set allocation tags 843a2c13d9 target/arm: Clean address for DC ZVA beff6e3558 target/arm: Implement the access tag cache flushes 79b5335524 target/arm: Implement the LDGM and STGM instructions ed9a915702 target/arm: Implement the STGP instruction 0143319256 target/arm: Implement LDG, STG, ST2G instructions 54357db2c5 target/arm: Define arm_cpu_do_unaligned_access for CONFIG_USER_ONLY d72d1a0c0e target/arm: Implement the SUBP instruction ba50a7a99d target/arm: Implement the GMI instruction 09533e4e2c target/arm: Implement ADDG, SUBG instructions 593999e89a target/arm: Implement the IRG instruction 8306fd8033 target/arm: Suppress tag check for sp+offset c7edbeb68c target/arm: Add helper_mte_check{1, 2} 41eff3fb40 target/arm: Add MTE system registers 46e9777387 target/arm: Extract TCMA with ARMVAParameters e68d8da962 target/arm: Add MTE_ACTIVE to tb_flags === OUTPUT BEGIN === 1/22 Checking commit e68d8da9629d (target/arm: Add MTE_ACTIVE to tb_flags) 2/22 Checking commit 46e9777387ff (target/arm: Extract TCMA with ARMVAParameters) ERROR: spaces prohibited around that ':' (ctx:WxW) #70: FILE: target/arm/internals.h:962: + bool tcma : 1; ^ total: 1 errors, 0 warnings, 49 lines checked Patch 2/22 has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. 3/22 Checking commit 41eff3fb4034 (target/arm: Add MTE system registers) 4/22 Checking commit c7edbeb68c59 (target/arm: Add helper_mte_check{1, 2}) WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #42: new file mode 100644 total: 0 errors, 1 warnings, 167 lines checked Patch 4/22 has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. 5/22 Checking commit 8306fd8033ee (target/arm: Suppress tag check for sp+offset) 6/22 Checking commit 593999e89a2f (target/arm: Implement the IRG instruction) 7/22 Checking commit 09533e4e2cda (target/arm: Implement ADDG, SUBG instructions) 8/22 Checking commit ba50a7a99db9 (target/arm: Implement the GMI instruction) 9/22 Checking commit d72d1a0c0eb1 (target/arm: Implement the SUBP instruction) 10/22 Checking commit 54357db2c561 (target/arm: Define arm_cpu_do_unaligned_access for CONFIG_USER_ONLY) 11/22 Checking commit 014331925603 (target/arm: Implement LDG, STG, ST2G instructions) 12/22 Checking commit ed9a915702c2 (target/arm: Implement the STGP instruction) 13/22 Checking commit 79b53355245d (target/arm: Implement the LDGM and STGM instructions) 14/22 Checking commit beff6e355850 (target/arm: Implement the access tag cache flushes) 15/22 Checking commit 843a2c13d940 (target/arm: Clean address for DC ZVA) 16/22 Checking commit 798d73e16619 (target/arm: Implement data cache set allocation tags) 17/22 Checking commit 7597116fed95 (target/arm: Set PSTATE.TCO on exception entry) 18/22 Checking commit f073d517ec80 (target/arm: Cache the Tagged bit for a page in MemTxAttrs) 19/22 Checking commit c3aea915adb4 (target/arm: Create tagged ram when MTE is enabled) 20/22 Checking commit 494df9631b39 (target/arm: Create a TLB entry for tag physical address space) 21/22 Checking commit 3cf01953ff8b (target/arm: Add allocation tag storage for system mode) 22/22 Checking commit 23fdebd2106c (target/arm: Enable MTE) === OUTPUT END === Test command exited with code: 1 The full log is available at http://patchew.org/logs/20190307170440.3113-1-richard.henderson@linaro.org/testing.checkpatch/?type=message. --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
Patchew URL: https://patchew.org/QEMU/20190307170440.3113-1-richard.henderson@linaro.org/ Hi, This series failed the docker-mingw@fedora build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash time make docker-test-mingw@fedora SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === CC aarch64-softmmu/gdbstub-xml.o CC aarch64-softmmu/trace/generated-helpers.o /tmp/qemu-test/src/target/arm/mte_helper.c: In function 'allocation_tag_mem': /tmp/qemu-test/src/target/arm/mte_helper.c:87:12: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] return (void *)(tag_physaddr + te->addend); ^ cc1: all warnings being treated as errors The full log is available at http://patchew.org/logs/20190307170440.3113-1-richard.henderson@linaro.org/testing.docker-mingw@fedora/?type=message. --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h index 82e9099834ae..b7aa17d9a044 100644 --- a/arch/arm64/include/asm/cpucaps.h +++ b/arch/arm64/include/asm/cpucaps.h @@ -60,7 +60,8 @@ #define ARM64_HAS_ADDRESS_AUTH_IMP_DEF 39 #define ARM64_HAS_GENERIC_AUTH_ARCH 40 #define ARM64_HAS_GENERIC_AUTH_IMP_DEF 41 +#define ARM64_HAS_MTE 42 -#define ARM64_NCAPS 42 +#define ARM64_NCAPS 43 #endif /* __ASM_CPUCAPS_H */ diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h index 72dc4c011014..996ab091ae99 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -451,6 +451,7 @@ /* Common SCTLR_ELx flags. */ #define SCTLR_ELx_DSSBS (_BITUL(44)) +#define SCTLR_ELx_ATA (_BITUL(43)) #define SCTLR_ELx_ENIA (_BITUL(31)) #define SCTLR_ELx_ENIB (_BITUL(30)) #define SCTLR_ELx_ENDA (_BITUL(27)) @@ -496,6 +497,7 @@ #endif /* SCTLR_EL1 specific flags. */ +#define SCTLR_EL1_ATA0 (_BITUL(42)) #define SCTLR_EL1_UCI (_BITUL(26)) #define SCTLR_EL1_E0E (_BITUL(24)) #define SCTLR_EL1_SPAN (_BITUL(23)) @@ -596,6 +598,7 @@ /* id_aa64pfr1 */ #define ID_AA64PFR1_SSBS_SHIFT 4 +#define ID_AA64PFR1_MTE_SHIFT 8 #define ID_AA64PFR1_SSBS_PSTATE_NI 0 #define ID_AA64PFR1_SSBS_PSTATE_ONLY 1 diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index f6d84e2c92fe..f54c1e7f40aa 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -178,6 +178,7 @@ static const struct arm64_ftr_bits ftr_id_aa64pfr0[] = { static const struct arm64_ftr_bits ftr_id_aa64pfr1[] = { ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_SSBS_SHIFT, 4, ID_AA64PFR1_SSBS_PSTATE_NI), + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_MTE_SHIFT, 4, 0), ARM64_FTR_END, }; @@ -1203,6 +1204,11 @@ static void cpu_enable_address_auth(struct arm64_cpu_capabilities const *cap) } #endif /* CONFIG_ARM64_PTR_AUTH */ +static void cpu_enable_mte(struct arm64_cpu_capabilities const *cap) +{ + sysreg_clear_set(sctlr_el1, 0, SCTLR_ELx_ATA | SCTLR_EL1_ATA0); +} + static const struct arm64_cpu_capabilities arm64_features[] = { { .desc = "GIC system register CPU interface", @@ -1480,6 +1486,17 @@ static const struct arm64_cpu_capabilities arm64_features[] = { .matches = has_cpuid_feature, }, #endif /* CONFIG_ARM64_PTR_AUTH */ + { + .desc = "Memory Tagging", + .capability = ARM64_HAS_MTE, + .type = ARM64_CPUCAP_SYSTEM_FEATURE, + .matches = has_cpuid_feature, + .sys_reg = SYS_ID_AA64PFR1_EL1, + .field_pos = ID_AA64PFR1_MTE_SHIFT, + .sign = FTR_UNSIGNED, + .min_field_value = 1, + .cpu_enable = cpu_enable_mte, { .desc = "GIC system register CPU interface", @@ -1480,6 +1486,17 @@ static const struct arm64_cpu_capabilities arm64_features[] = { .matches = has_cpuid_feature, }, #endif /* CONFIG_ARM64_PTR_AUTH */ + { + .desc = "Memory Tagging", + .capability = ARM64_HAS_MTE, + .type = ARM64_CPUCAP_SYSTEM_FEATURE, + .matches = has_cpuid_feature, + .sys_reg = SYS_ID_AA64PFR1_EL1, + .field_pos = ID_AA64PFR1_MTE_SHIFT, + .sign = FTR_UNSIGNED, + .min_field_value = 1, + .cpu_enable = cpu_enable_mte, + }, {}, }; diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S index 73886a5f1f30..20ebf4a222e8 100644 --- a/arch/arm64/mm/proc.S +++ b/arch/arm64/mm/proc.S @@ -435,14 +435,14 @@ ENTRY(__cpu_setup) * DEVICE_nGnRE 001 00000100 * DEVICE_GRE 010 00001100 * NORMAL_NC 011 01000100 - * NORMAL 100 11111111 + * NORMAL 100 11110000 (Tag) * NORMAL_WT 101 10111011 */ ldr x5, =MAIR(0x00, MT_DEVICE_nGnRnE) | \ MAIR(0x04, MT_DEVICE_nGnRE) | \ MAIR(0x0c, MT_DEVICE_GRE) | \ MAIR(0x44, MT_NORMAL_NC) | \ - MAIR(0xff, MT_NORMAL) | \ + MAIR(0xf0, MT_NORMAL) | \ MAIR(0xbb, MT_NORMAL_WT) msr mair_el1, x5 /*