QEMU would not start when trying to create two UFS host controllers
Host environment
- Operating system: 22.04.1-Ubuntu
- OS/kernel version: 6.2.0-37-generic
- Architecture: x86_64
- QEMU flavor: qemu-system-x86_64
- QEMU version: latest master
- QEMU command line:
./qemu-system-x86_64 -drive file=ufs0.img,if=none,id=dr0 -device ufs,id=bus0 -device ufs-lu,drive=dr0,bus=bus0,lun=0 -drive file=ufs1.img,if=none,id=dr1 -device ufs,id=bus1 -device ufs-lu,drive=dr1,bus=bus1,lun=0
Emulated/Virtualized environment
- Operating system: NA
- OS/kernel version: NA
- Architecture: NA
Description of problem
This issue is reported by Akinobu Mita. https://lore.kernel.org/qemu-devel/20231204150543.48252-1-akinobu.mita@gmail.com/
QEMU would not start when trying to create two UFS host controllers and a UFS logical unit for each with the following options:
-device ufs,id=bus0
-device ufs-lu,drive=drive1,bus=bus0,lun=0
-device ufs,id=bus1
-device ufs-lu,drive=drive2,bus=bus1,lun=0 \This is because the same ID string ("0:0:0/scsi-disk") is generated for both UFS logical units.
To fix this issue, prepend the parent pci device's path to make the ID string unique. ("0000:00:03.0/0:0:0/scsi-disk" and "0000:00:04.0/0:0:0/scsi-disk")