On Tue, 2023-02-21 at 23:04 +0700, Bui Quang Minh wrote: > @@ -454,7 +500,7 @@ static int apic_find_dest(uint8_t dest) > } > > static void apic_get_delivery_bitmask(uint32_t *deliver_bitmask, > - uint8_t dest, uint8_t dest_mode) > + uint32_t dest, uint8_t dest_mode) > { > APICCommonState *apic_iter; > int i;
I think somewhere here between these two hunks, you've forgotten to stop interpreting 0xFF as broadcast when you're in X2APIC mode. > @@ -474,14 +520,22 @@ static void apic_get_delivery_bitmask(uint32_t > *deliver_bitmask, > for(i = 0; i < MAX_APICS; i++) { > apic_iter = local_apics[i]; > if (apic_iter) { > - if (apic_iter->dest_mode == 0xf) { > - if (dest & apic_iter->log_dest) > - apic_set_bit(deliver_bitmask, i); > - } else if (apic_iter->dest_mode == 0x0) { > - if ((dest & 0xf0) == (apic_iter->log_dest & 0xf0) && > - (dest & apic_iter->log_dest & 0x0f)) { > + /* x2APIC mode */ > + if (apic_iter->apicbase & MSR_IA32_APICBASE_EXTD) { > + if ((dest & 0xffff0000) == (apic_iter->log_dest & > 0xffff0000) && > + (dest & apic_iter->log_dest & 0xffff)) {
smime.p7s
Description: S/MIME cryptographic signature