1
v2: dropped a couple of cadence_gem changes to ID regs that
1
Just one bugfix patch for this rc:
2
caused new clang sanitizer warnings.
3
2
4
-- PMM
3
The following changes since commit ca5f3d4df1b47d7f66a109cdb504e83dfd7ec433:
5
4
6
The following changes since commit dddb37495b844270088e68e3bf30b764d48d863f:
5
Merge tag 'pull-la-20220808' of https://gitlab.com/rth7680/qemu into staging (2022-08-08 19:51:12 -0700)
7
8
Merge remote-tracking branch 'remotes/awilliam/tags/vfio-updates-20181015.0' into staging (2018-10-15 18:44:04 +0100)
9
6
10
are available in the Git repository at:
7
are available in the Git repository at:
11
8
12
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20181016-1
9
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20220809
13
10
14
for you to fetch changes up to 2ef297af07196c29446556537861f8e7dfeeae7b:
11
for you to fetch changes up to c7f26ded6d5065e4116f630f6a490b55f6c5f58e:
15
12
16
coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls (2018-10-16 17:14:55 +0100)
13
icount: Take iothread lock when running QEMU timers (2022-08-09 10:55:14 +0100)
17
14
18
----------------------------------------------------------------
15
----------------------------------------------------------------
19
target-arm queue:
16
target-arm queue:
20
* hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART
17
* icount: Take iothread lock when running QEMU timers
21
* target/arm: Fix aarch64_sve_change_el wrt EL0
22
* target/arm: Define fields of ISAR registers
23
* target/arm: Align cortex-r5 id_isar0
24
* target/arm: Fix cortex-a7 id_isar0
25
* net/cadence_gem: Fix various bugs, add support for new
26
features that will be used by the Xilinx Versal board
27
* target-arm: powerctl: Enable HVC when starting CPUs to EL2
28
* target/arm: Add the Cortex-A72
29
* target/arm: Mark PMINTENCLR and PMINTENCLR_EL1 accesses as possibly doing IO
30
* target/arm: Mask PMOVSR writes based on supported counters
31
* target/arm: Initialize ARMMMUFaultInfo in v7m_stack_read/write
32
* coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls
33
18
34
----------------------------------------------------------------
19
----------------------------------------------------------------
35
Aaron Lindsay (2):
20
Peter Maydell (1):
36
target/arm: Mark PMINTENCLR and PMINTENCLR_EL1 accesses as possibly doing IO
21
icount: Take iothread lock when running QEMU timers
37
target/arm: Mask PMOVSR writes based on supported counters
38
22
39
Edgar E. Iglesias (8):
23
accel/tcg/tcg-accel-ops-icount.c | 6 ++++++
40
net: cadence_gem: Disable TSU feature bit
24
1 file changed, 6 insertions(+)
41
net: cadence_gem: Use uint32_t for 32bit descriptor words
42
net: cadence_gem: Add macro with max number of descriptor words
43
net: cadence_gem: Add support for extended descriptors
44
net: cadence_gem: Add support for selecting the DMA MemoryRegion
45
net: cadence_gem: Implement support for 64bit descriptor addresses
46
target-arm: powerctl: Enable HVC when starting CPUs to EL2
47
target/arm: Add the Cortex-A72
48
49
Jerome Forissier (1):
50
hw/arm/virt: add DT property /secure-chosen/stdout-path indicating secure UART
51
52
Peter Maydell (2):
53
target/arm: Initialize ARMMMUFaultInfo in v7m_stack_read/write
54
coccinelle: new inplace-byteswaps.cocci to remove inplace-byteswapping calls
55
56
Richard Henderson (4):
57
target/arm: Fix aarch64_sve_change_el wrt EL0
58
target/arm: Define fields of ISAR registers
59
target/arm: Align cortex-r5 id_isar0
60
target/arm: Fix cortex-a7 id_isar0
61
62
include/hw/net/cadence_gem.h | 7 +-
63
target/arm/cpu.h | 95 ++++++++++++++-
64
hw/arm/virt.c | 4 +
65
hw/net/cadence_gem.c | 185 ++++++++++++++++++++---------
66
target/arm/arm-powerctl.c | 10 ++
67
target/arm/cpu.c | 7 +-
68
target/arm/cpu64.c | 66 +++++++++-
69
target/arm/helper.c | 27 +++--
70
target/arm/op_helper.c | 6 +-
71
scripts/coccinelle/inplace-byteswaps.cocci | 65 ++++++++++
72
10 files changed, 402 insertions(+), 70 deletions(-)
73
create mode 100644 scripts/coccinelle/inplace-byteswaps.cocci
74
diff view generated by jsdifflib
New patch
1
The function icount_prepare_for_run() is called with the iothread
2
unlocked, but it can call icount_notify_aio_contexts() which will
3
run qemu timer handlers. Those are supposed to be run only with
4
the iothread lock held, so take the lock while we do that.
1
5
6
Since icount mode runs everything on a single thread anyway,
7
not holding the lock is likely mostly not going to introduce
8
races, but it can cause us to trip over assertions that we
9
do hold the lock, such as the one reported in issue 1130.
10
11
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1130
12
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
13
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
14
Tested-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
15
Message-id: 20220801164527.3134765-1-peter.maydell@linaro.org
16
---
17
accel/tcg/tcg-accel-ops-icount.c | 6 ++++++
18
1 file changed, 6 insertions(+)
19
20
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
21
index XXXXXXX..XXXXXXX 100644
22
--- a/accel/tcg/tcg-accel-ops-icount.c
23
+++ b/accel/tcg/tcg-accel-ops-icount.c
24
@@ -XXX,XX +XXX,XX @@ void icount_prepare_for_run(CPUState *cpu)
25
replay_mutex_lock();
26
27
if (cpu->icount_budget == 0) {
28
+ /*
29
+ * We're called without the iothread lock, so must take it while
30
+ * we're calling timer handlers.
31
+ */
32
+ qemu_mutex_lock_iothread();
33
icount_notify_aio_contexts();
34
+ qemu_mutex_unlock_iothread();
35
}
36
}
37
38
--
39
2.25.1
diff view generated by jsdifflib