1
This bug seemed worth fixing for 8.0 since we need an rc4 anyway:
1
v2: dropped the npcm7xx ethernet device, whose test case
2
we were using uninitialized data for the guarded bit when
2
fails weirdly on the 'build-disabled' gitlab CI job:
3
combining stage 1 and stage 2 attrs.
3
https://gitlab.com/qemu-project/qemu/-/jobs/1034174731#L12
4
4
5
thanks
5
The following changes since commit 8ba4bca570ace1e60614a0808631a517cf5df67a:
6
-- PMM
7
6
8
The following changes since commit 08dede07030973c1053868bc64de7e10bfa02ad6:
7
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2021-02-15 17:13:57 +0000)
9
10
Merge tag 'pull-ppc-20230409' of https://github.com/legoater/qemu into staging (2023-04-10 11:47:52 +0100)
11
8
12
are available in the Git repository at:
9
are available in the Git repository at:
13
10
14
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20230410
11
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210217
15
12
16
for you to fetch changes up to 8539dc00552e8ea60420856fc1262c8299bc6308:
13
for you to fetch changes up to 59c7a187dd8bd8ef675768dd8af9de11528ea7e2:
17
14
18
target/arm: Copy guarded bit in combine_cacheattrs (2023-04-10 14:31:40 +0100)
15
MAINTAINERS: add myself maintainer for the clock framework (2021-02-16 14:16:17 +0000)
19
16
20
----------------------------------------------------------------
17
----------------------------------------------------------------
21
target-arm: Fix bug where we weren't initializing
18
target-arm queue:
22
guarded bit state when combining S1/S2 attrs
19
* Support ARMv8.5-MemTag for linux-user
20
* ncpm7xx: Support SMBus
21
* MAINTAINERS: add section for Clock framework
23
22
24
----------------------------------------------------------------
23
----------------------------------------------------------------
25
Richard Henderson (2):
24
Hao Wu (5):
26
target/arm: PTE bit GP only applies to stage1
25
hw/i2c: Implement NPCM7XX SMBus Module Single Mode
27
target/arm: Copy guarded bit in combine_cacheattrs
26
hw/arm: Add I2C sensors for NPCM750 eval board
27
hw/arm: Add I2C sensors and EEPROM for GSJ machine
28
hw/i2c: Add a QTest for NPCM7XX SMBus Device
29
hw/i2c: Implement NPCM7XX SMBus Module FIFO Mode
28
30
29
target/arm/ptw.c | 11 ++++++-----
31
Luc Michel (1):
30
1 file changed, 6 insertions(+), 5 deletions(-)
32
MAINTAINERS: add myself maintainer for the clock framework
33
34
Richard Henderson (31):
35
tcg: Introduce target-specific page data for user-only
36
linux-user: Introduce PAGE_ANON
37
exec: Use uintptr_t for guest_base
38
exec: Use uintptr_t in cpu_ldst.h
39
exec: Improve types for guest_addr_valid
40
linux-user: Check for overflow in access_ok
41
linux-user: Tidy VERIFY_READ/VERIFY_WRITE
42
bsd-user: Tidy VERIFY_READ/VERIFY_WRITE
43
linux-user: Do not use guest_addr_valid for h2g_valid
44
linux-user: Fix guest_addr_valid vs reserved_va
45
exec: Introduce cpu_untagged_addr
46
exec: Use cpu_untagged_addr in g2h; split out g2h_untagged
47
linux-user: Explicitly untag memory management syscalls
48
linux-user: Use guest_range_valid in access_ok
49
exec: Rename guest_{addr,range}_valid to *_untagged
50
linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged
51
linux-user: Move lock_user et al out of line
52
linux-user: Fix types in uaccess.c
53
linux-user: Handle tags in lock_user/unlock_user
54
linux-user/aarch64: Implement PR_TAGGED_ADDR_ENABLE
55
target/arm: Improve gen_top_byte_ignore
56
target/arm: Use the proper TBI settings for linux-user
57
linux-user/aarch64: Implement PR_MTE_TCF and PR_MTE_TAG
58
linux-user/aarch64: Implement PROT_MTE
59
target/arm: Split out syndrome.h from internals.h
60
linux-user/aarch64: Pass syndrome to EXC_*_ABORT
61
linux-user/aarch64: Signal SEGV_MTESERR for sync tag check fault
62
linux-user/aarch64: Signal SEGV_MTEAERR for async tag check error
63
target/arm: Add allocation tag storage for user mode
64
target/arm: Enable MTE for user-only
65
tests/tcg/aarch64: Add mte smoke tests
66
67
docs/system/arm/nuvoton.rst | 2 +-
68
bsd-user/qemu.h | 17 +-
69
include/exec/cpu-all.h | 47 +-
70
include/exec/cpu_ldst.h | 39 +-
71
include/exec/exec-all.h | 2 +-
72
include/hw/arm/npcm7xx.h | 2 +
73
include/hw/i2c/npcm7xx_smbus.h | 113 ++++
74
linux-user/aarch64/target_signal.h | 3 +
75
linux-user/aarch64/target_syscall.h | 13 +
76
linux-user/qemu.h | 76 +--
77
linux-user/syscall_defs.h | 1 +
78
target/arm/cpu-param.h | 3 +
79
target/arm/cpu.h | 32 +
80
target/arm/internals.h | 249 +-------
81
target/arm/syndrome.h | 273 +++++++++
82
tests/tcg/aarch64/mte.h | 60 ++
83
accel/tcg/translate-all.c | 32 +-
84
accel/tcg/user-exec.c | 51 +-
85
bsd-user/elfload.c | 2 +-
86
bsd-user/main.c | 8 +-
87
bsd-user/mmap.c | 23 +-
88
hw/arm/npcm7xx.c | 68 ++-
89
hw/arm/npcm7xx_boards.c | 46 ++
90
hw/i2c/npcm7xx_smbus.c | 1099 +++++++++++++++++++++++++++++++++++
91
linux-user/aarch64/cpu_loop.c | 38 +-
92
linux-user/elfload.c | 18 +-
93
linux-user/flatload.c | 2 +-
94
linux-user/hppa/cpu_loop.c | 39 +-
95
linux-user/i386/cpu_loop.c | 6 +-
96
linux-user/i386/signal.c | 5 +-
97
linux-user/main.c | 4 +-
98
linux-user/mmap.c | 88 +--
99
linux-user/ppc/signal.c | 4 +-
100
linux-user/syscall.c | 165 ++++--
101
linux-user/uaccess.c | 82 ++-
102
target/arm/cpu.c | 25 +-
103
target/arm/helper-a64.c | 4 +-
104
target/arm/mte_helper.c | 39 +-
105
target/arm/tlb_helper.c | 15 +-
106
target/arm/translate-a64.c | 25 +-
107
target/hppa/op_helper.c | 2 +-
108
target/i386/tcg/mem_helper.c | 2 +-
109
target/s390x/mem_helper.c | 4 +-
110
tests/qtest/npcm7xx_smbus-test.c | 495 ++++++++++++++++
111
tests/tcg/aarch64/mte-1.c | 28 +
112
tests/tcg/aarch64/mte-2.c | 45 ++
113
tests/tcg/aarch64/mte-3.c | 51 ++
114
tests/tcg/aarch64/mte-4.c | 45 ++
115
tests/tcg/aarch64/pauth-2.c | 1 -
116
MAINTAINERS | 11 +
117
hw/arm/Kconfig | 1 +
118
hw/i2c/meson.build | 1 +
119
hw/i2c/trace-events | 12 +
120
tests/qtest/meson.build | 1 +
121
tests/tcg/aarch64/Makefile.target | 6 +
122
tests/tcg/configure.sh | 4 +
123
56 files changed, 2976 insertions(+), 553 deletions(-)
124
create mode 100644 include/hw/i2c/npcm7xx_smbus.h
125
create mode 100644 target/arm/syndrome.h
126
create mode 100644 tests/tcg/aarch64/mte.h
127
create mode 100644 hw/i2c/npcm7xx_smbus.c
128
create mode 100644 tests/qtest/npcm7xx_smbus-test.c
129
create mode 100644 tests/tcg/aarch64/mte-1.c
130
create mode 100644 tests/tcg/aarch64/mte-2.c
131
create mode 100644 tests/tcg/aarch64/mte-3.c
132
create mode 100644 tests/tcg/aarch64/mte-4.c
133
diff view generated by jsdifflib
Deleted patch
1
From: Richard Henderson <richard.henderson@linaro.org>
2
1
3
Only perform the extract of GP during the stage1 walk.
4
5
Reported-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
8
Message-id: 20230407185149.3253946-2-richard.henderson@linaro.org
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
---
11
target/arm/ptw.c | 10 +++++-----
12
1 file changed, 5 insertions(+), 5 deletions(-)
13
14
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
15
index XXXXXXX..XXXXXXX 100644
16
--- a/target/arm/ptw.c
17
+++ b/target/arm/ptw.c
18
@@ -XXX,XX +XXX,XX @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
19
result->f.attrs.secure = false;
20
}
21
22
- /* When in aarch64 mode, and BTI is enabled, remember GP in the TLB. */
23
- if (aarch64 && cpu_isar_feature(aa64_bti, cpu)) {
24
- result->f.guarded = extract64(attrs, 50, 1); /* GP */
25
- }
26
-
27
if (regime_is_stage2(mmu_idx)) {
28
result->cacheattrs.is_s2_format = true;
29
result->cacheattrs.attrs = extract32(attrs, 2, 4);
30
@@ -XXX,XX +XXX,XX @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
31
assert(attrindx <= 7);
32
result->cacheattrs.is_s2_format = false;
33
result->cacheattrs.attrs = extract64(mair, attrindx * 8, 8);
34
+
35
+ /* When in aarch64 mode, and BTI is enabled, remember GP in the TLB. */
36
+ if (aarch64 && cpu_isar_feature(aa64_bti, cpu)) {
37
+ result->f.guarded = extract64(attrs, 50, 1); /* GP */
38
+ }
39
}
40
41
/*
42
--
43
2.34.1
diff view generated by jsdifflib
Deleted patch
1
From: Richard Henderson <richard.henderson@linaro.org>
2
1
3
The guarded bit comes from the stage1 walk.
4
5
Fixes: Coverity CID 1507929
6
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
8
Message-id: 20230407185149.3253946-3-richard.henderson@linaro.org
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
---
11
target/arm/ptw.c | 1 +
12
1 file changed, 1 insertion(+)
13
14
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
15
index XXXXXXX..XXXXXXX 100644
16
--- a/target/arm/ptw.c
17
+++ b/target/arm/ptw.c
18
@@ -XXX,XX +XXX,XX @@ static ARMCacheAttrs combine_cacheattrs(uint64_t hcr,
19
20
assert(!s1.is_s2_format);
21
ret.is_s2_format = false;
22
+ ret.guarded = s1.guarded;
23
24
if (s1.attrs == 0xf0) {
25
tagged = true;
26
--
27
2.34.1
diff view generated by jsdifflib