From: "Cédric Le Goater" <clg@kaod.org>
To: qemu-ppc@nongnu.org
Cc: qemu-devel@nongnu.org,
"David Gibson" <david@gibson.dropbear.id.au>,
"Greg Kurz" <groug@kaod.org>,
"Alexey Kardashevskiy" <aik@ozlabs.ru>,
"Cédric Le Goater" <clg@kaod.org>
Subject: [Qemu-devel] [PATCH 1/4] spapr: remove irq_hint parameter from spapr_irq_alloc()
Date: Fri, 18 May 2018 18:44:02 +0200 [thread overview]
Message-ID: <20180518164405.11804-2-clg@kaod.org> (raw)
In-Reply-To: <20180518164405.11804-1-clg@kaod.org>
This IRQ number hint can possibly be used by the VIO devices if the
"irq" property is defined on the command line but it seems it is never
the case. It is not used in libvirt for instance. So, let's remove it
to simplify future changes.
Nevertheless, this is a compatibbility breakage that will be addressed
by the subsequent patches which introduce IRQ number allocator
handlers per machine version.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
include/hw/ppc/spapr.h | 3 +--
hw/ppc/spapr.c | 21 ++++++---------------
hw/ppc/spapr_events.c | 7 +++----
hw/ppc/spapr_vio.c | 2 +-
4 files changed, 11 insertions(+), 22 deletions(-)
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index d60b7c6d7a8b..2cfdfdd67eaf 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -773,8 +773,7 @@ int spapr_get_vcpu_id(PowerPCCPU *cpu);
void spapr_set_vcpu_id(PowerPCCPU *cpu, int cpu_index, Error **errp);
PowerPCCPU *spapr_find_cpu(int vcpu_id);
-int spapr_irq_alloc(sPAPRMachineState *spapr, int irq_hint, bool lsi,
- Error **errp);
+int spapr_irq_alloc(sPAPRMachineState *spapr, bool lsi, Error **errp);
int spapr_irq_alloc_block(sPAPRMachineState *spapr, int num, bool lsi,
bool align, Error **errp);
void spapr_irq_free(sPAPRMachineState *spapr, int irq, int num);
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 32ab3c43b6c0..05a924a5f2da 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3798,28 +3798,19 @@ static void spapr_irq_set_lsi(sPAPRMachineState *spapr, int irq, bool lsi)
ics_set_irq_type(spapr->ics, irq - spapr->ics->offset, lsi);
}
-int spapr_irq_alloc(sPAPRMachineState *spapr, int irq_hint, bool lsi,
- Error **errp)
+int spapr_irq_alloc(sPAPRMachineState *spapr, bool lsi, Error **errp)
{
ICSState *ics = spapr->ics;
int irq;
assert(ics);
- if (irq_hint) {
- if (!ICS_IRQ_FREE(ics, irq_hint - ics->offset)) {
- error_setg(errp, "can't allocate IRQ %d: already in use", irq_hint);
- return -1;
- }
- irq = irq_hint;
- } else {
- irq = ics_find_free_block(ics, 1, 1);
- if (irq < 0) {
- error_setg(errp, "can't allocate IRQ: no IRQ left");
- return -1;
- }
- irq += ics->offset;
+ irq = ics_find_free_block(ics, 1, 1);
+ if (irq < 0) {
+ error_setg(errp, "can't allocate IRQ: no IRQ left");
+ return -1;
}
+ irq += ics->offset;
spapr_irq_set_lsi(spapr, irq, lsi);
trace_spapr_irq_alloc(irq);
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index 86836f0626dc..64a67439beac 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -712,8 +712,7 @@ void spapr_events_init(sPAPRMachineState *spapr)
spapr->event_sources = spapr_event_sources_new();
spapr_event_sources_register(spapr->event_sources, EVENT_CLASS_EPOW,
- spapr_irq_alloc(spapr, 0, false,
- &error_fatal));
+ spapr_irq_alloc(spapr, false, &error_fatal));
/* NOTE: if machine supports modern/dedicated hotplug event source,
* we add it to the device-tree unconditionally. This means we may
@@ -725,8 +724,8 @@ void spapr_events_init(sPAPRMachineState *spapr)
*/
if (spapr->use_hotplug_event_source) {
spapr_event_sources_register(spapr->event_sources, EVENT_CLASS_HOT_PLUG,
- spapr_irq_alloc(spapr, 0, false,
- &error_fatal));
+ spapr_irq_alloc(spapr, false,
+ &error_fatal));
}
spapr->epow_notifier.notify = spapr_powerdown_req;
diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c
index 472dd6f33a96..cc064f64fccf 100644
--- a/hw/ppc/spapr_vio.c
+++ b/hw/ppc/spapr_vio.c
@@ -455,7 +455,7 @@ static void spapr_vio_busdev_realize(DeviceState *qdev, Error **errp)
dev->qdev.id = id;
}
- dev->irq = spapr_irq_alloc(spapr, dev->irq, false, &local_err);
+ dev->irq = spapr_irq_alloc(spapr, false, &local_err);
if (local_err) {
error_propagate(errp, local_err);
return;
--
2.13.6
next prev parent reply other threads:[~2018-05-18 16:44 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-18 16:44 [Qemu-devel] [PATCH 0/4] spapr: generic IRQ frontend Cédric Le Goater
2018-05-18 16:44 ` Cédric Le Goater [this message]
2018-05-25 14:02 ` [Qemu-devel] [PATCH 1/4] spapr: remove irq_hint parameter from spapr_irq_alloc() Greg Kurz
2018-05-28 6:17 ` Thomas Huth
2018-05-28 7:06 ` Cédric Le Goater
2018-05-28 7:18 ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
2018-05-28 9:20 ` Cédric Le Goater
2018-05-28 12:09 ` Greg Kurz
2018-05-28 13:33 ` Cédric Le Goater
2018-06-05 3:34 ` [Qemu-devel] " David Gibson
2018-06-05 6:41 ` Cédric Le Goater
2018-06-13 4:22 ` David Gibson
2018-06-13 7:24 ` Cédric Le Goater
2018-06-14 3:46 ` David Gibson
2018-06-14 13:26 ` Cédric Le Goater
2018-06-02 9:19 ` Cédric Le Goater
2018-06-04 6:05 ` Cédric Le Goater
2018-06-02 9:10 ` Cédric Le Goater
2018-05-18 16:44 ` [Qemu-devel] [PATCH 2/4] sparp_pci: simplify how the PCI LSIs are allocated Cédric Le Goater
2018-05-26 9:40 ` Greg Kurz
2018-06-05 3:44 ` David Gibson
2018-06-05 6:31 ` Cédric Le Goater
2018-06-13 4:27 ` David Gibson
2018-06-13 7:26 ` Cédric Le Goater
2018-05-18 16:44 ` [Qemu-devel] [PATCH 3/4] spapr: introduce a generic IRQ frontend to the machine Cédric Le Goater
2018-05-28 14:27 ` Greg Kurz
2018-06-13 5:00 ` David Gibson
2018-06-13 7:44 ` Cédric Le Goater
2018-05-18 16:44 ` [Qemu-devel] [PATCH 4/4] spapr: introduce a new IRQ backend using fixed IRQ number ranges Cédric Le Goater
2018-05-28 15:18 ` Greg Kurz
2018-05-28 15:42 ` Cédric Le Goater
2018-05-29 12:51 ` Cédric Le Goater
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180518164405.11804-2-clg@kaod.org \
--to=clg@kaod.org \
--cc=aik@ozlabs.ru \
--cc=david@gibson.dropbear.id.au \
--cc=groug@kaod.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).