Revision f8b6cc00 hw/usb-msd.c

b/hw/usb-msd.c
522 522
static int usb_msd_initfn(USBDevice *dev)
523 523
{
524 524
    MSDState *s = DO_UPCAST(MSDState, dev, dev);
525
    DriveInfo *dinfo = s->conf.dinfo;
525
    BlockDriverState *bs = s->conf.bs;
526 526

  
527
    if (!dinfo || !dinfo->bdrv) {
527
    if (!bs) {
528 528
        error_report("usb-msd: drive property not set");
529 529
        return -1;
530 530
    }
......
538 538
     *
539 539
     * The hack is probably a bad idea.
540 540
     */
541
    s->conf.dinfo = NULL;
541
    s->conf.bs = NULL;
542 542

  
543 543
    s->dev.speed = USB_SPEED_FULL;
544 544
    scsi_bus_new(&s->bus, &s->dev.qdev, 0, 1, usb_msd_command_complete);
545
    s->scsi_dev = scsi_bus_legacy_add_drive(&s->bus, dinfo, 0);
545
    s->scsi_dev = scsi_bus_legacy_add_drive(&s->bus, bs, 0);
546 546
    if (!s->scsi_dev) {
547 547
        return -1;
548 548
    }
549 549
    s->bus.qbus.allow_hotplug = 0;
550 550
    usb_msd_handle_reset(dev);
551 551

  
552
    if (bdrv_key_required(dinfo->bdrv)) {
552
    if (bdrv_key_required(bs)) {
553 553
        if (cur_mon) {
554
            monitor_read_bdrv_key_start(cur_mon, dinfo->bdrv,
555
                                        usb_msd_password_cb, s);
554
            monitor_read_bdrv_key_start(cur_mon, bs, usb_msd_password_cb, s);
556 555
            s->dev.auto_attach = 0;
557 556
        } else {
558 557
            autostart = 0;
......
610 609
    if (!dev) {
611 610
        return NULL;
612 611
    }
613
    qdev_prop_set_drive(&dev->qdev, "drive", dinfo);
612
    qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv);
614 613
    if (qdev_init(&dev->qdev) < 0)
615 614
        return NULL;
616 615

  

Also available in: Unified diff