|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PATCH-for-8.2?] hw/ufs: avoid generating the same ID string for different LU devices |
Date: | Mon, 4 Dec 2023 20:21:12 +0100 |
User-agent: | Mozilla Thunderbird |
Hi Jeuk, On 4/12/23 17:50, Philippe Mathieu-Daudé wrote:
On 4/12/23 16:05, Akinobu Mita wrote: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")Fixes: 096434fea13a ("hw/ufs: Modify lu.c to share codes with SCSI subsystem")
If you think this must be fixed for the 8.2 release, please assign a release blocker issues to the GitLab 8.2 milestone here: https://gitlab.com/qemu-project/qemu/-/milestones/10
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>--- hw/ufs/ufs.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/ufs/ufs.c b/hw/ufs/ufs.c index 68c5f1f6c9..eccdb852a0 100644 --- a/hw/ufs/ufs.c +++ b/hw/ufs/ufs.c@@ -1323,9 +1323,17 @@ static bool ufs_bus_check_address(BusState *qbus, DeviceState *qdev,return true; } +static char *ufs_bus_get_dev_path(DeviceState *dev) +{ + BusState *bus = qdev_get_parent_bus(dev); + + return qdev_get_dev_path(bus->parent); +} + static void ufs_bus_class_init(ObjectClass *class, void *data) { BusClass *bc = BUS_CLASS(class); + bc->get_dev_path = ufs_bus_get_dev_path; bc->check_address = ufs_bus_check_address; }
[Prev in Thread] | Current Thread | [Next in Thread] |