mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 18:44:58 -06:00
Fix-ups for MTTCG regressions for 2.9
This is the same as v3 posted a few days ago except with a few extra Reviewed-by tags added. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJYwTI+AAoJEPvQ2wlanipE+gsIAJamAWn2iPDzpgozg7k7ALkX S42YCVrQt2wO01PdFANLLodUEvVDEvqLb7LqYF8JDdnLMLGQOXltB0TvqzxBslv/ PSsO8YvJt6btClEvifPHDehhyxKr+S1Gmkvxez2wWuDZdWh3N1rw1BYBdwtfGm56 7vCWGf0olUjRYCddpGxkzSaP2AEqm1Ukh0/s1ghgxMN3YDJng+58SFrDBl3ok/SC EFJJNPB46a2u3Enb4QZaWtDJYoWN3TX7SQ2OENKLc23PSu1FMDT0NCRrtjWN/SIl rEE1k8XcuCmRPy4X6h58gOV2QWf1ciPDSkLAwBBLjQcB4pHcVuBkoQFDKq9YzLU= =ruvQ -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stsquad/tags/pull-mttcg-fixups-090317-1' into staging Fix-ups for MTTCG regressions for 2.9 This is the same as v3 posted a few days ago except with a few extra Reviewed-by tags added. # gpg: Signature made Thu 09 Mar 2017 10:45:18 GMT # gpg: using RSA key 0xFBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-mttcg-fixups-090317-1: hw/intc/arm_gic: modernise the DPRINTF target/arm/helper: make it clear the EC field is also in hex target-i386: defer VMEXIT to do_interrupt target/mips: hold BQL for timer interrupts translate-all: exit cpu_restore_state early if translating target/xtensa: hold BQL for interrupt processing s390x/misc_helper.c: wrap IO instructions in BQL sparc/sparc64: grab BQL before calling cpu_check_irqs cpus.c: add additional error_report when !TARGET_SUPPORT_MTTCG target/i386/cpu.h: declare TCG_GUEST_DEFAULT_MO vl/cpus: be smarter with icount and MTTCG Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
95b0eca46e
16 changed files with 130 additions and 35 deletions
|
@ -26,15 +26,20 @@
|
|||
#include "qemu/log.h"
|
||||
#include "trace.h"
|
||||
|
||||
//#define DEBUG_GIC
|
||||
/* #define DEBUG_GIC */
|
||||
|
||||
#ifdef DEBUG_GIC
|
||||
#define DPRINTF(fmt, ...) \
|
||||
do { fprintf(stderr, "arm_gic: " fmt , ## __VA_ARGS__); } while (0)
|
||||
#define DEBUG_GIC_GATE 1
|
||||
#else
|
||||
#define DPRINTF(fmt, ...) do {} while(0)
|
||||
#define DEBUG_GIC_GATE 0
|
||||
#endif
|
||||
|
||||
#define DPRINTF(fmt, ...) do { \
|
||||
if (DEBUG_GIC_GATE) { \
|
||||
fprintf(stderr, "%s: " fmt, __func__, ## __VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
static const uint8_t gic_id_11mpcore[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x90, 0x13, 0x04, 0x00, 0x0d, 0xf0, 0x05, 0xb1
|
||||
};
|
||||
|
|
|
@ -142,6 +142,9 @@ void cpu_check_irqs(CPUSPARCState *env)
|
|||
{
|
||||
CPUState *cs;
|
||||
|
||||
/* We should be holding the BQL before we mess with IRQs */
|
||||
g_assert(qemu_mutex_iothread_locked());
|
||||
|
||||
if (env->pil_in && (env->interrupt_index == 0 ||
|
||||
(env->interrupt_index & ~15) == TT_EXTINT)) {
|
||||
unsigned int i;
|
||||
|
|
|
@ -55,6 +55,9 @@ void cpu_check_irqs(CPUSPARCState *env)
|
|||
uint32_t pil = env->pil_in |
|
||||
(env->softint & ~(SOFTINT_TIMER | SOFTINT_STIMER));
|
||||
|
||||
/* We should be holding the BQL before we mess with IRQs */
|
||||
g_assert(qemu_mutex_iothread_locked());
|
||||
|
||||
/* TT_IVEC has a higher priority (16) than TT_EXTINT (31..17) */
|
||||
if (env->ivec_status & 0x20) {
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue