* [Qemu-devel] [PULL 0/2] Monitor patches
@ 2015-09-22 12:01 Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 1/2] monitor: allow device_del to accept QOM paths Markus Armbruster
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Markus Armbruster @ 2015-09-22 12:01 UTC (permalink / raw)
To: qemu-devel
The following changes since commit 9e72681d16792d0ffc42bab634b1753ff299bdfd:
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-09-21' into staging (2015-09-21 22:33:51 +0100)
are available in the git repository at:
git://repo.or.cz/qemu/armbru.git tags/pull-monitor-2015-09-22
for you to fetch changes up to abadcbc838a3b256819fd8932c34a4af41ec187f:
hmp: Restore "info pci" (2015-09-22 11:32:37 +0200)
----------------------------------------------------------------
Monitor patches
----------------------------------------------------------------
Daniel P. Berrange (1):
monitor: allow device_del to accept QOM paths
Paolo Bonzini (1):
hmp: Restore "info pci"
hmp-commands-info.hx | 14 ++++++++++++++
hmp-commands.hx | 3 ++-
qapi-schema.json | 2 +-
qdev-monitor.c | 20 +++++++++++++++-----
qmp-commands.hx | 7 ++++++-
5 files changed, 38 insertions(+), 8 deletions(-)
--
2.4.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PULL 1/2] monitor: allow device_del to accept QOM paths
2015-09-22 12:01 [Qemu-devel] [PULL 0/2] Monitor patches Markus Armbruster
@ 2015-09-22 12:01 ` Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 2/2] hmp: Restore "info pci" Markus Armbruster
2015-09-22 18:21 ` [Qemu-devel] [PULL 0/2] Monitor patches Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2015-09-22 12:01 UTC (permalink / raw)
To: qemu-devel
From: "Daniel P. Berrange" <berrange@redhat.com>
Currently device_del requires that the client provide the
device short ID. device_add allows devices to be created
without giving an ID, at which point there is no way to
delete them with device_del. The QOM object path, however,
provides an alternative way to identify the devices.
Allowing device_del to accept an object path ensures all
devices are deletable regardless of whether they have an
ID.
(qemu) device_add usb-mouse
(qemu) qom-list /machine/peripheral-anon
device[0] (child<usb-mouse>)
type (string)
(qemu) device_del /machine/peripheral-anon/device[0]
Devices are required to be marked as hotpluggable
otherwise an error is raised
(qemu) device_del /machine/unattached/device[4]
Device 'PIIX3' does not support hotplugging
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <1441974836-17476-1-git-send-email-berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[Commit message touched up, accidental white-space change dropped]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hmp-commands.hx | 3 ++-
qapi-schema.json | 2 +-
qdev-monitor.c | 20 +++++++++++++++-----
qmp-commands.hx | 7 ++++++-
4 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/hmp-commands.hx b/hmp-commands.hx
index a511004..3a4ae39 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -676,7 +676,8 @@ ETEXI
STEXI
@item device_del @var{id}
@findex device_del
-Remove device @var{id}.
+Remove device @var{id}. @var{id} may be a short ID
+or a QOM object path.
ETEXI
{
diff --git a/qapi-schema.json b/qapi-schema.json
index 821362d..527690d 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1951,7 +1951,7 @@
#
# Remove a device from a guest
#
-# @id: the name of the device
+# @id: the name or QOM path of the device
#
# Returns: Nothing on success
# If @id is not a valid device, DeviceNotFound
diff --git a/qdev-monitor.c b/qdev-monitor.c
index 0bf7f83..eb7aef2 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -771,12 +771,17 @@ void qmp_device_add(QDict *qdict, QObject **ret_data, Error **errp)
void qmp_device_del(const char *id, Error **errp)
{
Object *obj;
- char *root_path = object_get_canonical_path(qdev_get_peripheral());
- char *path = g_strdup_printf("%s/%s", root_path, id);
- g_free(root_path);
- obj = object_resolve_path_type(path, TYPE_DEVICE, NULL);
- g_free(path);
+ if (id[0] == '/') {
+ obj = object_resolve_path(id, NULL);
+ } else {
+ char *root_path = object_get_canonical_path(qdev_get_peripheral());
+ char *path = g_strdup_printf("%s/%s", root_path, id);
+
+ g_free(root_path);
+ obj = object_resolve_path_type(path, TYPE_DEVICE, NULL);
+ g_free(path);
+ }
if (!obj) {
error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
@@ -784,6 +789,11 @@ void qmp_device_del(const char *id, Error **errp)
return;
}
+ if (!object_dynamic_cast(obj, TYPE_DEVICE)) {
+ error_setg(errp, "%s is not a hotpluggable device", id);
+ return;
+ }
+
qdev_unplug(DEVICE(obj), errp);
}
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 66f0300..d2ba800 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -321,13 +321,18 @@ Remove a device.
Arguments:
-- "id": the device's ID (json-string)
+- "id": the device's ID or QOM path (json-string)
Example:
-> { "execute": "device_del", "arguments": { "id": "net1" } }
<- { "return": {} }
+Example:
+
+-> { "execute": "device_del", "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
+<- { "return": {} }
+
EQMP
{
--
2.4.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PULL 2/2] hmp: Restore "info pci"
2015-09-22 12:01 [Qemu-devel] [PULL 0/2] Monitor patches Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 1/2] monitor: allow device_del to accept QOM paths Markus Armbruster
@ 2015-09-22 12:01 ` Markus Armbruster
2015-09-22 18:21 ` [Qemu-devel] [PULL 0/2] Monitor patches Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2015-09-22 12:01 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini
From: Paolo Bonzini <pbonzini@redhat.com>
Dropped by commit da76ee76f78b9705e2a91e3c964aef28fecededb's
transition to hmp-commands-info.hx.
Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1442589509-10806-1-git-send-email-pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hmp-commands-info.hx | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
index 9f5a158..94a2afe 100644
--- a/hmp-commands-info.hx
+++ b/hmp-commands-info.hx
@@ -183,6 +183,20 @@ STEXI
Show i8259 (PIC) state.
ETEXI
+ {
+ .name = "pci",
+ .args_type = "",
+ .params = "",
+ .help = "show PCI info",
+ .mhandler.cmd = hmp_info_pci,
+ },
+
+STEXI
+@item info pci
+@findex pci
+Show PCI information.
+ETEXI
+
#if defined(TARGET_I386) || defined(TARGET_SH4) || defined(TARGET_SPARC) || \
defined(TARGET_PPC) || defined(TARGET_XTENSA)
{
--
2.4.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] Monitor patches
2015-09-22 12:01 [Qemu-devel] [PULL 0/2] Monitor patches Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 1/2] monitor: allow device_del to accept QOM paths Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 2/2] hmp: Restore "info pci" Markus Armbruster
@ 2015-09-22 18:21 ` Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2015-09-22 18:21 UTC (permalink / raw)
To: Markus Armbruster; +Cc: QEMU Developers
On 22 September 2015 at 05:01, Markus Armbruster <armbru@redhat.com> wrote:
> The following changes since commit 9e72681d16792d0ffc42bab634b1753ff299bdfd:
>
> Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-09-21' into staging (2015-09-21 22:33:51 +0100)
>
> are available in the git repository at:
>
> git://repo.or.cz/qemu/armbru.git tags/pull-monitor-2015-09-22
>
> for you to fetch changes up to abadcbc838a3b256819fd8932c34a4af41ec187f:
>
> hmp: Restore "info pci" (2015-09-22 11:32:37 +0200)
>
> ----------------------------------------------------------------
> Monitor patches
>
> ----------------------------------------------------------------
> Daniel P. Berrange (1):
> monitor: allow device_del to accept QOM paths
>
> Paolo Bonzini (1):
> hmp: Restore "info pci"
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-09-22 18:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-22 12:01 [Qemu-devel] [PULL 0/2] Monitor patches Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 1/2] monitor: allow device_del to accept QOM paths Markus Armbruster
2015-09-22 12:01 ` [Qemu-devel] [PULL 2/2] hmp: Restore "info pci" Markus Armbruster
2015-09-22 18:21 ` [Qemu-devel] [PULL 0/2] Monitor patches Peter Maydell
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).