* [PULL 0/6] Misc patches for 2026-05-25
@ 2026-05-25 15:16 Paolo Bonzini
2026-05-25 15:16 ` [PULL 1/6] lsi53c895a: fix use-after-free of cancelled request Paolo Bonzini
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel
The following changes since commit cbf877d67a812be17a9ce404a589e1bdf722c1f6:
Merge tag 'pbouvier/pr/docs-20260522' of https://gitlab.com/p-b-o/qemu into staging (2026-05-24 07:45:19 -0400)
are available in the Git repository at:
https://gitlab.com/bonzini/qemu.git tags/for-upstream2
for you to fetch changes up to 877820be501c72665aff1af468fab87f17995044:
json-parser: constify JSONToken (2026-05-25 16:52:31 +0200)
----------------------------------------------------------------
* lsi53c895a, apic, mc146818rtc: fix various bugs
* accel/mshv: implement cpu_thread_is_idle() hook
* json-parser: first patch from push parser conversion
----------------------------------------------------------------
Jinjie Ruan (1):
mc146818rtc: Fix get_guest_rtc_ns() overflow bug
Magnus Kulke (1):
accel/mshv: implement cpu_thread_is_idle() hook
Paolo Bonzini (4):
lsi53c895a: fix use-after-free of cancelled request
lsi53c895a: clear tag byte when processing messages
apic: fix delivery bitmask with modified xAPIC ids
json-parser: constify JSONToken
accel/mshv/mshv-all.c | 12 ++++++++++++
hw/intc/apic.c | 17 ++++++++---------
hw/rtc/mc146818rtc.c | 23 +++++++++++------------
hw/scsi/lsi53c895a.c | 12 ++++++++----
qobject/json-parser.c | 23 ++++++++++++-----------
5 files changed, 51 insertions(+), 36 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PULL 1/6] lsi53c895a: fix use-after-free of cancelled request
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
@ 2026-05-25 15:16 ` Paolo Bonzini
2026-05-25 15:16 ` [PULL 2/6] lsi53c895a: clear tag byte when processing messages Paolo Bonzini
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel; +Cc: Wei Che Kao, qemu-stable
When processing the Message Out phase, the lsi53c895a controller
can cancel a request and the continue by processing more messages.
When this happens, it is important that a cancelled request is not
processed further, because scsi_req_cancel can cause the request
to be freed.
Right now this is happening in two cases, but not when cancelling
the entire queue of requests after an ABORT, CLEAR QUEUE or
BUS DEVICE RESET message. In that case, a subsequent ABORT TAG
message can use a dangling current_req.
There are three possible fixes:
- add a missing check inside the loop, clearing current_req
if p->req == current_req. This is obvious but complicates the
code inside the foreach loop.
- change the conditional prior to the loop from "if (s->current)"
to "if (current_req)". This would work, because s->current != NULL
implies current_req != NULL, and would clear current_req correctly.
However it is less obvious because the point of the code
is to clear the entire queue, which consists of s->current
and s->queue; current_req is not special here.
- delay the retrieval of current_req until an ABORT TAG message
is seen. This is the most correct option, because the SCSI
protocol only deals with tags; requests are a QEMU concept
that only makes sense for the purpose of calling into the
SCSI layer.
Reported-by: Wei Che Kao <skps96g313.cs10@gmail.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/scsi/lsi53c895a.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index 54123f77579..0843d325ab1 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -1000,10 +1000,8 @@ static void lsi_do_msgout(LSIState *s)
if (s->current) {
current_tag = s->current->tag;
- current_req = s->current;
} else {
current_tag = s->select_tag;
- current_req = lsi_find_by_tag(s, current_tag);
}
trace_lsi_do_msgout(s->dbc);
@@ -1058,9 +1056,13 @@ static void lsi_do_msgout(LSIState *s)
case 0x0d:
/* The ABORT TAG message clears the current I/O process only. */
trace_lsi_do_msgout_abort(current_tag);
+ if (s->current) {
+ current_req = s->current;
+ } else {
+ current_req = lsi_find_by_tag(s, current_tag);
+ }
if (current_req && current_req->req) {
scsi_req_cancel(current_req->req);
- current_req = NULL;
}
lsi_disconnect(s);
break;
@@ -1086,7 +1088,6 @@ static void lsi_do_msgout(LSIState *s)
/* clear the current I/O process */
if (s->current) {
scsi_req_cancel(s->current->req);
- current_req = NULL;
}
/* As the current implemented devices scsi_disk and scsi_generic
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PULL 2/6] lsi53c895a: clear tag byte when processing messages
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
2026-05-25 15:16 ` [PULL 1/6] lsi53c895a: fix use-after-free of cancelled request Paolo Bonzini
@ 2026-05-25 15:16 ` Paolo Bonzini
2026-05-25 15:16 ` [PULL 3/6] apic: fix delivery bitmask with modified xAPIC ids Paolo Bonzini
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-stable
Instead of simply ORing the message byte, clear what
was there before.
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/scsi/lsi53c895a.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index 0843d325ab1..1b7f02fc7c9 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -1041,16 +1041,19 @@ static void lsi_do_msgout(LSIState *s)
}
break;
case 0x20: /* SIMPLE queue */
+ s->select_tag &= ~0xff;
s->select_tag |= lsi_get_msgbyte(s) | LSI_TAG_VALID;
trace_lsi_do_msgout_simplequeue(s->select_tag & 0xff);
break;
case 0x21: /* HEAD of queue */
qemu_log_mask(LOG_UNIMP, "lsi_scsi: HEAD queue not implemented\n");
+ s->select_tag &= ~0xff;
s->select_tag |= lsi_get_msgbyte(s) | LSI_TAG_VALID;
break;
case 0x22: /* ORDERED queue */
qemu_log_mask(LOG_UNIMP,
"lsi_scsi: ORDERED queue not implemented\n");
+ s->select_tag &= ~0xff;
s->select_tag |= lsi_get_msgbyte(s) | LSI_TAG_VALID;
break;
case 0x0d:
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PULL 3/6] apic: fix delivery bitmask with modified xAPIC ids
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
2026-05-25 15:16 ` [PULL 1/6] lsi53c895a: fix use-after-free of cancelled request Paolo Bonzini
2026-05-25 15:16 ` [PULL 2/6] lsi53c895a: clear tag byte when processing messages Paolo Bonzini
@ 2026-05-25 15:16 ` Paolo Bonzini
2026-05-25 15:16 ` [PULL 4/6] accel/mshv: implement cpu_thread_is_idle() hook Paolo Bonzini
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel; +Cc: Wei Che Kao, qemu-stable
Self-IPIs (or all-but-self IPIs) in QEMU can cause a out-of-bounds access
to deliver_bitmask, because the access uses the APIC ID register which
is writable by the guest. However, foreach_apic uses the delivery
bitmask indexes to look up the local_apics[] array, which is indexed
by *initial* APIC id. Using the right id fixes both a possible heap
write overflow if the modified APIC id is too large for max_apic_words,
and a mis-delivery of both self and all-but-self IPIs.
Reported-by: Wei Che Kao <skps96g313.cs10@gmail.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/intc/apic.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index e5ea8312617..0e8932005fa 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -648,13 +648,6 @@ static void apic_deliver(APICCommonState *s, uint32_t dest, uint8_t dest_mode,
APICCommonState *apic_iter;
uint32_t deliver_bitmask_size = max_apic_words * sizeof(uint32_t);
g_autofree uint32_t *deliver_bitmask = g_new(uint32_t, max_apic_words);
- uint32_t current_apic_id;
-
- if (is_x2apic_mode(s)) {
- current_apic_id = s->initial_apic_id;
- } else {
- current_apic_id = s->id;
- }
switch (dest_shorthand) {
case 0:
@@ -662,14 +655,20 @@ static void apic_deliver(APICCommonState *s, uint32_t dest, uint8_t dest_mode,
break;
case 1:
memset(deliver_bitmask, 0x00, deliver_bitmask_size);
- apic_set_bit(deliver_bitmask, current_apic_id);
+ /*
+ * The self and all-but-self cases do not use apic_match_dest() and
+ * directly fill in deliver_bitmask; the bitmask's indexes in turn
+ * map to local_apics[] slots which are never changed even if the
+ * xAPIC id is modified. So use s->initial_apic_id instead of s->id.
+ */
+ apic_set_bit(deliver_bitmask, s->initial_apic_id);
break;
case 2:
memset(deliver_bitmask, 0xff, deliver_bitmask_size);
break;
case 3:
memset(deliver_bitmask, 0xff, deliver_bitmask_size);
- apic_reset_bit(deliver_bitmask, current_apic_id);
+ apic_reset_bit(deliver_bitmask, s->initial_apic_id);
break;
}
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PULL 4/6] accel/mshv: implement cpu_thread_is_idle() hook
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
` (2 preceding siblings ...)
2026-05-25 15:16 ` [PULL 3/6] apic: fix delivery bitmask with modified xAPIC ids Paolo Bonzini
@ 2026-05-25 15:16 ` Paolo Bonzini
2026-05-25 15:16 ` [PULL 5/6] mc146818rtc: Fix get_guest_rtc_ns() overflow bug Paolo Bonzini
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel; +Cc: Magnus Kulke, Mohamed Mediouni
From: Magnus Kulke <magnuskulke@linux.microsoft.com>
In MSHV the hypervisor APIC is always used, so we to implement this hook
to make sure the AP's vcpu thread is not blocked waiting for an INIT SIPI
by the BSP. Without this change soft reboots with -smp cpus>=2 will
hang.
Signed-off-by: Magnus Kulke <magnuskulke@linux.microsoft.com>
Reviewed-by: Mohamed Mediouni <mohamed@unpredictable.fr>
Link: https://lore.kernel.org/r/20260421-mshv_accel_arm64_supp-v3-9-469f544778ba@linux.microsoft.com
[Make comment not x86 specific. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
accel/mshv/mshv-all.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/accel/mshv/mshv-all.c b/accel/mshv/mshv-all.c
index 58af674bd99..58d8638c0c1 100644
--- a/accel/mshv/mshv-all.c
+++ b/accel/mshv/mshv-all.c
@@ -714,11 +714,23 @@ static const TypeInfo mshv_accel_type = {
.instance_size = sizeof(MshvState),
};
+/*
+ * MSHV manages secondary processors in the hypervisor. SIPI for x86 and
+ * PSCI for Arm are handled internally. Halted vCPUs must still enter
+ * mshv_cpu_exec() so that MSHV_RUN_VP is called and the hypervisor will
+ * wake APs.
+ */
+static bool mshv_vcpu_thread_is_idle(CPUState *cpu)
+{
+ return false;
+}
+
static void mshv_accel_ops_class_init(ObjectClass *oc, const void *data)
{
AccelOpsClass *ops = ACCEL_OPS_CLASS(oc);
ops->create_vcpu_thread = mshv_start_vcpu_thread;
+ ops->cpu_thread_is_idle = mshv_vcpu_thread_is_idle;
ops->synchronize_post_init = mshv_cpu_synchronize_post_init;
ops->synchronize_post_reset = mshv_cpu_synchronize_post_reset;
ops->synchronize_state = mshv_cpu_synchronize;
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PULL 5/6] mc146818rtc: Fix get_guest_rtc_ns() overflow bug
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
` (3 preceding siblings ...)
2026-05-25 15:16 ` [PULL 4/6] accel/mshv: implement cpu_thread_is_idle() hook Paolo Bonzini
@ 2026-05-25 15:16 ` Paolo Bonzini
2026-05-25 15:16 ` [PULL 6/6] json-parser: constify JSONToken Paolo Bonzini
2026-05-26 18:52 ` [PULL 0/6] Misc patches for 2026-05-25 Stefan Hajnoczi
6 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel; +Cc: Jinjie Ruan, qemu-stable
From: Jinjie Ruan <ruanjinjie@huawei.com>
In get_guest_rtc_ns(), "s->base_rtc" is uint64_t, which multiplied by
"NANOSECONDS_PER_SECOND" may overflow the uint64_t type, which will
cause the QEMU Linux Virtual Machine's RTC time to jump and in turn
triggers a kernel Soft Lockup and ultimately leads to a crash.
Fix it by avoiding adding s->base_rtc in get_guest_rtc_ns_offset(),
because get_guest_rtc_ns() is used either take the remainder of
NANOSECONDS_PER_SECOND or take the quotient of NANOSECONDS_PER_SECOND.
Fixes: 56038ef6234e ("RTC: Update the RTC clock only when reading it")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20260114013257.3500578-1-ruanjinjie@huawei.com
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/rtc/mc146818rtc.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
index ccbb2797169..bcab018c7cd 100644
--- a/hw/rtc/mc146818rtc.c
+++ b/hw/rtc/mc146818rtc.c
@@ -77,12 +77,13 @@ static inline bool rtc_running(MC146818RtcState *s)
(s->cmos_data[RTC_REG_A] & 0x70) <= 0x20);
}
-static uint64_t get_guest_rtc_ns(MC146818RtcState *s)
+/*
+ * Note: get_rtc_ns_since_last_update() does not include the base_rtc seconds
+ * value. This does not matter if the caller only needs the nanoseconds part.
+ */
+static uint64_t get_rtc_ns_since_last_update(MC146818RtcState *s)
{
- uint64_t guest_clock = qemu_clock_get_ns(rtc_clock);
-
- return s->base_rtc * NANOSECONDS_PER_SECOND +
- guest_clock - s->last_update + s->offset;
+ return qemu_clock_get_ns(rtc_clock) - s->last_update + s->offset;
}
static void rtc_coalesced_timer_update(MC146818RtcState *s)
@@ -258,7 +259,7 @@ static void check_update_timer(MC146818RtcState *s)
return;
}
- guest_nsec = get_guest_rtc_ns(s) % NANOSECONDS_PER_SECOND;
+ guest_nsec = get_rtc_ns_since_last_update(s) % NANOSECONDS_PER_SECOND;
next_update_time = qemu_clock_get_ns(rtc_clock)
+ NANOSECONDS_PER_SECOND - guest_nsec;
@@ -510,7 +511,7 @@ static void cmos_ioport_write(void *opaque, hwaddr addr,
/* if disabling set mode, update the time */
if ((s->cmos_data[RTC_REG_B] & REG_B_SET) &&
(s->cmos_data[RTC_REG_A] & 0x70) <= 0x20) {
- s->offset = get_guest_rtc_ns(s) % NANOSECONDS_PER_SECOND;
+ s->offset = get_rtc_ns_since_last_update(s) % NANOSECONDS_PER_SECOND;
rtc_set_time(s);
}
}
@@ -623,10 +624,8 @@ static void rtc_update_time(MC146818RtcState *s)
{
struct tm ret;
time_t guest_sec;
- int64_t guest_nsec;
- guest_nsec = get_guest_rtc_ns(s);
- guest_sec = guest_nsec / NANOSECONDS_PER_SECOND;
+ guest_sec = s->base_rtc + get_rtc_ns_since_last_update(s) / NANOSECONDS_PER_SECOND;
gmtime_r(&guest_sec, &ret);
/* Is SET flag of Register B disabled? */
@@ -637,7 +636,7 @@ static void rtc_update_time(MC146818RtcState *s)
static int update_in_progress(MC146818RtcState *s)
{
- int64_t guest_nsec;
+ uint64_t guest_nsec;
if (!rtc_running(s)) {
return 0;
@@ -652,7 +651,7 @@ static int update_in_progress(MC146818RtcState *s)
}
}
- guest_nsec = get_guest_rtc_ns(s);
+ guest_nsec = get_rtc_ns_since_last_update(s);
/* UIP bit will be set at last 244us of every second. */
if ((guest_nsec % NANOSECONDS_PER_SECOND) >=
(NANOSECONDS_PER_SECOND - UIP_HOLD_LENGTH)) {
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PULL 6/6] json-parser: constify JSONToken
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
` (4 preceding siblings ...)
2026-05-25 15:16 ` [PULL 5/6] mc146818rtc: Fix get_guest_rtc_ns() overflow bug Paolo Bonzini
@ 2026-05-25 15:16 ` Paolo Bonzini
2026-05-26 18:52 ` [PULL 0/6] Misc patches for 2026-05-25 Stefan Hajnoczi
6 siblings, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2026-05-25 15:16 UTC (permalink / raw)
To: qemu-devel
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
qobject/json-parser.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/qobject/json-parser.c b/qobject/json-parser.c
index 7483e582fea..f6622b82b0a 100644
--- a/qobject/json-parser.c
+++ b/qobject/json-parser.c
@@ -55,7 +55,8 @@ static QObject *parse_value(JSONParserContext *ctxt);
* Error handler
*/
static void G_GNUC_PRINTF(3, 4) parse_error(JSONParserContext *ctxt,
- JSONToken *token, const char *msg, ...)
+ const JSONToken *token,
+ const char *msg, ...)
{
va_list ap;
char message[1024];
@@ -126,7 +127,7 @@ static int cvt4hex(const char *s)
* - Invalid Unicode characters are rejected.
* - Control characters \x00..\x1F are rejected by the lexer.
*/
-static QString *parse_string(JSONParserContext *ctxt, JSONToken *token)
+static QString *parse_string(JSONParserContext *ctxt, const JSONToken *token)
{
const char *ptr = token->str;
GString *str;
@@ -239,14 +240,14 @@ out:
* parser_context_pop_token is deleted as soon as parser_context_pop_token
* is called again.
*/
-static JSONToken *parser_context_pop_token(JSONParserContext *ctxt)
+static const JSONToken *parser_context_pop_token(JSONParserContext *ctxt)
{
g_free(ctxt->current);
ctxt->current = g_queue_pop_head(ctxt->buf);
return ctxt->current;
}
-static JSONToken *parser_context_peek_token(JSONParserContext *ctxt)
+static const JSONToken *parser_context_peek_token(JSONParserContext *ctxt)
{
return g_queue_peek_head(ctxt->buf);
}
@@ -259,7 +260,7 @@ static int parse_pair(JSONParserContext *ctxt, QDict *dict)
QObject *key_obj = NULL;
QString *key;
QObject *value;
- JSONToken *peek, *token;
+ const JSONToken *peek, *token;
peek = parser_context_peek_token(ctxt);
if (peek == NULL) {
@@ -309,7 +310,7 @@ out:
static QObject *parse_object(JSONParserContext *ctxt)
{
QDict *dict = NULL;
- JSONToken *token, *peek;
+ const JSONToken *token, *peek;
token = parser_context_pop_token(ctxt);
assert(token && token->type == JSON_LCURLY);
@@ -363,7 +364,7 @@ out:
static QObject *parse_array(JSONParserContext *ctxt)
{
QList *list = NULL;
- JSONToken *token, *peek;
+ const JSONToken *token, *peek;
token = parser_context_pop_token(ctxt);
assert(token && token->type == JSON_LSQUARE);
@@ -426,7 +427,7 @@ out:
static QObject *parse_keyword(JSONParserContext *ctxt)
{
- JSONToken *token;
+ const JSONToken *token;
token = parser_context_pop_token(ctxt);
assert(token && token->type == JSON_KEYWORD);
@@ -444,7 +445,7 @@ static QObject *parse_keyword(JSONParserContext *ctxt)
static QObject *parse_interpolation(JSONParserContext *ctxt)
{
- JSONToken *token;
+ const JSONToken *token;
token = parser_context_pop_token(ctxt);
assert(token && token->type == JSON_INTERP);
@@ -480,7 +481,7 @@ static QObject *parse_interpolation(JSONParserContext *ctxt)
static QObject *parse_literal(JSONParserContext *ctxt)
{
- JSONToken *token;
+ const JSONToken *token;
token = parser_context_pop_token(ctxt);
assert(token);
@@ -532,7 +533,7 @@ static QObject *parse_literal(JSONParserContext *ctxt)
static QObject *parse_value(JSONParserContext *ctxt)
{
- JSONToken *token;
+ const JSONToken *token;
token = parser_context_peek_token(ctxt);
if (token == NULL) {
--
2.54.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PULL 0/6] Misc patches for 2026-05-25
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
` (5 preceding siblings ...)
2026-05-25 15:16 ` [PULL 6/6] json-parser: constify JSONToken Paolo Bonzini
@ 2026-05-26 18:52 ` Stefan Hajnoczi
6 siblings, 0 replies; 8+ messages in thread
From: Stefan Hajnoczi @ 2026-05-26 18:52 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/11.1 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-26 18:52 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-25 15:16 [PULL 0/6] Misc patches for 2026-05-25 Paolo Bonzini
2026-05-25 15:16 ` [PULL 1/6] lsi53c895a: fix use-after-free of cancelled request Paolo Bonzini
2026-05-25 15:16 ` [PULL 2/6] lsi53c895a: clear tag byte when processing messages Paolo Bonzini
2026-05-25 15:16 ` [PULL 3/6] apic: fix delivery bitmask with modified xAPIC ids Paolo Bonzini
2026-05-25 15:16 ` [PULL 4/6] accel/mshv: implement cpu_thread_is_idle() hook Paolo Bonzini
2026-05-25 15:16 ` [PULL 5/6] mc146818rtc: Fix get_guest_rtc_ns() overflow bug Paolo Bonzini
2026-05-25 15:16 ` [PULL 6/6] json-parser: constify JSONToken Paolo Bonzini
2026-05-26 18:52 ` [PULL 0/6] Misc patches for 2026-05-25 Stefan Hajnoczi
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.