Hi, 14.01.2020, 12:25, "Gerd Hoffmann" <kra...@redhat.com>: > Check each disk attached to a virtio-scsi device whenever > it is bootable and skip initialization in case it isn't. > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
Reviewed-by: Alexey Kirillov <lekir...@yandex-team.ru> > --- > src/hw/virtio-scsi.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/hw/virtio-scsi.c b/src/hw/virtio-scsi.c > index a27bdc1cfbb7..a5332848b8c8 100644 > --- a/src/hw/virtio-scsi.c > +++ b/src/hw/virtio-scsi.c > @@ -111,8 +111,18 @@ virtio_scsi_init_lun(struct virtio_lun_s *vlun, struct > pci_device *pci, > static int > virtio_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv) > { > + u8 skip_nonbootable = is_bootprio_strict(); > struct virtio_lun_s *tmpl_vlun = > container_of(tmpl_drv, struct virtio_lun_s, drive); > + int prio = bootprio_find_scsi_device(tmpl_vlun->pci, tmpl_vlun->target, > tmpl_vlun->lun); > + > + if (skip_nonbootable && prio < 0) { > + dprintf(1, "skipping init of a non-bootable virtio-scsi dev at %pP," > + " target %d, lun %d\n", > + tmpl_vlun->pci, tmpl_vlun->target, tmpl_vlun->lun); > + return -1; > + } > + > struct virtio_lun_s *vlun = malloc_low(sizeof(*vlun)); > if (!vlun) { > warn_noalloc(); > @@ -123,7 +133,6 @@ virtio_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv) > > boot_lchs_find_scsi_device(vlun->pci, vlun->target, vlun->lun, > &(vlun->drive.lchs)); > - int prio = bootprio_find_scsi_device(vlun->pci, vlun->target, vlun->lun); > int ret = scsi_drive_setup(&vlun->drive, "virtio-scsi", prio); > if (ret) > goto fail; > -- > 2.18.1 -- Alexey Kirillov Yandex.Cloud _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org