[Qemu-devel] [PATCH for-2.11 v3 0/2] Check for the availability of a hotplug controller before adding a device

Thomas Huth posted 2 patches 6 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1509617407-21191-1-git-send-email-thuth@redhat.com
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
hw/core/qdev.c         | 28 ++++++++++++++++++++--------
include/hw/qdev-core.h |  1 +
qdev-monitor.c         | 21 +++++++++++++--------
3 files changed, 34 insertions(+), 16 deletions(-)
[Qemu-devel] [PATCH for-2.11 v3 0/2] Check for the availability of a hotplug controller before adding a device
Posted by Thomas Huth 6 years, 6 months ago
First patch is a small clean up to the error handling code in
qdev_device_add(), and the second patch adds a proper check for
the availability of a hotplug controller to prevent the possibility
of a crash with device_del.

The crash can currently be triggered for example like this:

$ s390x-softmmu/qemu-system-s390x -M none -nographic 
QEMU 2.10.50 monitor - type 'help' for more information
(qemu) device_add qemu-s390x-cpu,id=x
(qemu) device_del x
**
ERROR:qemu/qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl)
Aborted (core dumped)

v3:
 - Invert the logic of the second error check in the first patch
   as suggested by Igor
 - Updated the patch description of the second patch with the current
   way to crash QEMU

v2:
 - Do the check for the availability of the hotplug controller earlier
   in qdev_device_add
 - Use common new err_dev_del handler in case of failure

Thomas Huth (2):
  qdev_monitor: Simplify error handling in qdev_device_add()
  qdev: Check for the availability of a hotplug controller before adding
    a device

 hw/core/qdev.c         | 28 ++++++++++++++++++++--------
 include/hw/qdev-core.h |  1 +
 qdev-monitor.c         | 21 +++++++++++++--------
 3 files changed, 34 insertions(+), 16 deletions(-)

-- 
1.8.3.1


Re: [Qemu-devel] [PATCH for-2.11 v3 0/2] Check for the availability of a hotplug controller before adding a device
Posted by Thomas Huth 6 years, 4 months ago
On 02.11.2017 11:10, Thomas Huth wrote:
> First patch is a small clean up to the error handling code in
> qdev_device_add(), and the second patch adds a proper check for
> the availability of a hotplug controller to prevent the possibility
> of a crash with device_del.
> 
> The crash can currently be triggered for example like this:
> 
> $ s390x-softmmu/qemu-system-s390x -M none -nographic 
> QEMU 2.10.50 monitor - type 'help' for more information
> (qemu) device_add qemu-s390x-cpu,id=x
> (qemu) device_del x
> **
> ERROR:qemu/qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl)
> Aborted (core dumped)
> 
> v3:
>  - Invert the logic of the second error check in the first patch
>    as suggested by Igor
>  - Updated the patch description of the second patch with the current
>    way to crash QEMU
> 
> v2:
>  - Do the check for the availability of the hotplug controller earlier
>    in qdev_device_add
>  - Use common new err_dev_del handler in case of failure
> 
> Thomas Huth (2):
>   qdev_monitor: Simplify error handling in qdev_device_add()
>   qdev: Check for the availability of a hotplug controller before adding
>     a device
> 
>  hw/core/qdev.c         | 28 ++++++++++++++++++++--------
>  include/hw/qdev-core.h |  1 +
>  qdev-monitor.c         | 21 +++++++++++++--------
>  3 files changed, 34 insertions(+), 16 deletions(-)

Ping!

Paolo or Eduardo, could one of you please pick up the two patches?

 Thanks,
  Thomas

Re: [Qemu-devel] [PATCH for-2.11 v3 0/2] Check for the availability of a hotplug controller before adding a device
Posted by Eduardo Habkost 6 years, 3 months ago
On Mon, Dec 18, 2017 at 12:59:50PM +0100, Thomas Huth wrote:
> On 02.11.2017 11:10, Thomas Huth wrote:
> > First patch is a small clean up to the error handling code in
> > qdev_device_add(), and the second patch adds a proper check for
> > the availability of a hotplug controller to prevent the possibility
> > of a crash with device_del.
> > 
> > The crash can currently be triggered for example like this:
> > 
> > $ s390x-softmmu/qemu-system-s390x -M none -nographic 
> > QEMU 2.10.50 monitor - type 'help' for more information
> > (qemu) device_add qemu-s390x-cpu,id=x
> > (qemu) device_del x
> > **
> > ERROR:qemu/qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl)
> > Aborted (core dumped)
> > 
> > v3:
> >  - Invert the logic of the second error check in the first patch
> >    as suggested by Igor
> >  - Updated the patch description of the second patch with the current
> >    way to crash QEMU
> > 
> > v2:
> >  - Do the check for the availability of the hotplug controller earlier
> >    in qdev_device_add
> >  - Use common new err_dev_del handler in case of failure
> > 
> > Thomas Huth (2):
> >   qdev_monitor: Simplify error handling in qdev_device_add()
> >   qdev: Check for the availability of a hotplug controller before adding
> >     a device
> > 
> >  hw/core/qdev.c         | 28 ++++++++++++++++++++--------
> >  include/hw/qdev-core.h |  1 +
> >  qdev-monitor.c         | 21 +++++++++++++--------
> >  3 files changed, 34 insertions(+), 16 deletions(-)
> 
> Ping!
> 
> Paolo or Eduardo, could one of you please pick up the two patches?

Very sorry for the long delay.  I just queued it on machine-next.
Thanks!

-- 
Eduardo