[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RFC 05/14] pc: apic: move MAX_APICS check to 'apic'
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH RFC 05/14] pc: apic: move MAX_APICS check to 'apic' class |
Date: |
Mon, 9 May 2016 11:26:51 +0200 |
MAX_APICS is only used by child 'apic' class and not
by its parent TYPE_APIC_COMMON or any other derived
class.
Move check into end user 'apic' class so it won't
get in the way of other APIC implementations
if they support more then MAX_APICS.
Signed-off-by: Igor Mammedov <address@hidden>
---
hw/intc/apic.c | 10 ++++++++++
hw/intc/apic_common.c | 8 --------
include/hw/i386/apic_internal.h | 4 +---
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index 28c2ea5..a9d2117 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -26,7 +26,9 @@
#include "trace.h"
#include "hw/i386/pc.h"
#include "hw/i386/apic-msidef.h"
+#include "qapi/error.h"
+#define MAX_APICS 255
#define MAX_APIC_WORDS 8
#define SYNC_FROM_VAPIC 0x1
@@ -867,6 +869,14 @@ static const MemoryRegionOps apic_io_ops = {
static void apic_realize(DeviceState *dev, Error **errp)
{
APICCommonState *s = APIC_COMMON(dev);
+ static int apic_no;
+
+ if (apic_no >= MAX_APICS) {
+ error_setg(errp, "%s initialization failed.",
+ object_get_typename(OBJECT(dev)));
+ return;
+ }
+ s->idx = apic_no++;
memory_region_init_io(&s->io_memory, OBJECT(s), &apic_io_ops, s,
"apic-msi",
APIC_SPACE_SIZE);
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index 4abe145..fb556cb 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -297,14 +297,6 @@ static void apic_common_realize(DeviceState *dev, Error
**errp)
APICCommonState *s = APIC_COMMON(dev);
APICCommonClass *info;
static DeviceState *vapic;
- static int apic_no;
-
- if (apic_no >= MAX_APICS) {
- error_setg(errp, "%s initialization failed.",
- object_get_typename(OBJECT(dev)));
- return;
- }
- s->idx = apic_no++;
info = APIC_COMMON_GET_CLASS(s);
info->realize(dev, errp);
diff --git a/include/hw/i386/apic_internal.h b/include/hw/i386/apic_internal.h
index 74fe935..5d3be9a 100644
--- a/include/hw/i386/apic_internal.h
+++ b/include/hw/i386/apic_internal.h
@@ -120,8 +120,6 @@
#define VAPIC_ENABLE_BIT 0
#define VAPIC_ENABLE_MASK (1 << VAPIC_ENABLE_BIT)
-#define MAX_APICS 255
-
typedef struct APICCommonState APICCommonState;
#define TYPE_APIC_COMMON "apic-common"
@@ -175,7 +173,7 @@ struct APICCommonState {
uint32_t initial_count;
int64_t initial_count_load_time;
int64_t next_time;
- int idx;
+ int idx; /* not actually common, used only by 'apic' derived class */
QEMUTimer *timer;
int64_t timer_expiry;
int sipi_vector;
--
1.8.3.1
- [Qemu-devel] [PATCH RFC 00/14]pc: q35: x2APIC support in kvm_apic mode, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 01/14] pc: acpi: x2APIC support for MADT table, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 02/14] pc: acpi: x2APIC support for SRAT table, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 04/14] pc: leave max apic_id_limit only in legacy cpu hotplug code, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 03/14] acpi: cphp: add support for x2APIC in _MAT method, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 05/14] pc: apic: move MAX_APICS check to 'apic' class,
Igor Mammedov <=
- [Qemu-devel] [PATCH RFC 06/14] pc: apic_common: extend APIC ID property to 32bit, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 08/14] pc: apic_common: reset APIC ID to initial ID when switching into x2APIC mode, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 09/14] pc: kvm_apic: pass APIC ID depending on xAPIC/x2APIC mode, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 10/14] pc: clarify FW_CFG_MAX_CPUS usage comment, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 11/14] increase MAX_CPUMASK_BITS from 255 to 288, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 07/14] pc: apic_common: restore APIC ID to initial ID on reset, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 12/14] pc: add 'etc/boot-cpus' fw_cfg file for machine with more than 255 CPUs, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 13/14] pc: q35: bump max_cpus to 288, Igor Mammedov, 2016/05/09
- [Qemu-devel] [PATCH RFC 14/14] DO NOT APPLY: hack to make 2nd CPU APIC ID to be x2APIC one, Igor Mammedov, 2016/05/09