Message ID | 1425001784-6752-1-git-send-email-arei.gonglei@huawei.com |
---|---|
State | New |
Headers | show |
Looks good, I am applying it locally so that it can get into qemu.git very soon. Paolo On 27/02/2015 02:49, arei.gonglei@huawei.com wrote: > From: Gonglei <arei.gonglei@huawei.com> > > Reproducer: > > $./qemu-system-x86_64 --enable-kvm -kernel /home/vmlinuz-2.6.32.12-0.7-default \ > -initrd /home/initrd-2.6.32.12-0.7-default -append \ > "root=/dev/ram rw console=ttyS0,115200" -dtb guest.dtb -vnc :10 --monitor stdio -smp 2 > QEMU 2.2.50 monitor - type 'help' for more information > (qemu) Segmentation fault (core dumped) > > Reported-by: Edivaldo de Araujo Pereira <edivaldoapereira@yahoo.com.br> > Signed-off-by: Gonglei <arei.gonglei@huawei.com> > --- > bootdevice.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/bootdevice.c b/bootdevice.c > index df9ab0e..673bfef 100644 > --- a/bootdevice.c > +++ b/bootdevice.c > @@ -223,10 +223,15 @@ char *get_boot_devices_list(size_t *size, bool ignore_suffixes) > } > > if (!ignore_suffixes) { > - d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, i->dev); > - if (d) { > - assert(!i->suffix); > - suffix = d; > + if (i->dev) { > + d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, > + i->dev); > + if (d) { > + assert(!i->suffix); > + suffix = d; > + } else { > + suffix = g_strdup(i->suffix); > + } > } else { > suffix = g_strdup(i->suffix); > } >
On 2015/2/27 22:15, Paolo Bonzini wrote: > Looks good, I am applying it locally so that it can get into qemu.git > very soon. > OK, thanks. Regards, -Gonglei > Paolo > > On 27/02/2015 02:49, arei.gonglei@huawei.com wrote: >> From: Gonglei <arei.gonglei@huawei.com> >> >> Reproducer: >> >> $./qemu-system-x86_64 --enable-kvm -kernel /home/vmlinuz-2.6.32.12-0.7-default \ >> -initrd /home/initrd-2.6.32.12-0.7-default -append \ >> "root=/dev/ram rw console=ttyS0,115200" -dtb guest.dtb -vnc :10 --monitor stdio -smp 2 >> QEMU 2.2.50 monitor - type 'help' for more information >> (qemu) Segmentation fault (core dumped) >> >> Reported-by: Edivaldo de Araujo Pereira <edivaldoapereira@yahoo.com.br> >> Signed-off-by: Gonglei <arei.gonglei@huawei.com> >> --- >> bootdevice.c | 13 +++++++++---- >> 1 file changed, 9 insertions(+), 4 deletions(-) >> >> diff --git a/bootdevice.c b/bootdevice.c >> index df9ab0e..673bfef 100644 >> --- a/bootdevice.c >> +++ b/bootdevice.c >> @@ -223,10 +223,15 @@ char *get_boot_devices_list(size_t *size, bool ignore_suffixes) >> } >> >> if (!ignore_suffixes) { >> - d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, i->dev); >> - if (d) { >> - assert(!i->suffix); >> - suffix = d; >> + if (i->dev) { >> + d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, >> + i->dev); >> + if (d) { >> + assert(!i->suffix); >> + suffix = d; >> + } else { >> + suffix = g_strdup(i->suffix); >> + } >> } else { >> suffix = g_strdup(i->suffix); >> } >>
diff --git a/bootdevice.c b/bootdevice.c index df9ab0e..673bfef 100644 --- a/bootdevice.c +++ b/bootdevice.c @@ -223,10 +223,15 @@ char *get_boot_devices_list(size_t *size, bool ignore_suffixes) } if (!ignore_suffixes) { - d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, i->dev); - if (d) { - assert(!i->suffix); - suffix = d; + if (i->dev) { + d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, + i->dev); + if (d) { + assert(!i->suffix); + suffix = d; + } else { + suffix = g_strdup(i->suffix); + } } else { suffix = g_strdup(i->suffix); }