blk: Use hex indices for the device name

It is confusing to use decimal values in device names. For example, with
virtio:

  => dm tree
  ...
  pci           5  [ + ]   pci_bridge_drv        |   |-- pci_0:1.5
    virtio        5  [ + ]   virtio-pci.m          |   |   `-- virtio-pci.m#5
   blk           0  [ + ]   virtio-blk            |   |       |-- virtio-blk#5
   partition     0  [ + ]   blk_partition         |   |       |   |-- virtio-blk#5:1
   partition     1  [ + ]   blk_partition         |   |       |   |-- virtio-blk#5:14
   partition     2  [ + ]   blk_partition         |   |       |   |-- virtio-blk#5:15
   partition     3  [ + ]   blk_partition         |   |       |   `-- virtio-blk#5:16
   bootdev       2  [ + ]   virtio_bootdev        |   |       `-- virtio-blk#5.bootdev
   pci           6  [ + ]   pci_bridge_drv        |   |-- pci_0:1.6
   ...
  => ls virtio 0:14
  ** Invalid partition 20 **
  Couldn't find partition virtio 0:14

Fix this by using hex for both the block-device number and the partition.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-06-25 07:11:00 -06:00
parent 1c71a3f024
commit d40e88a868
2 changed files with 2 additions and 2 deletions

View File

@@ -230,7 +230,7 @@ static int virtio_uclass_post_probe(struct udevice *udev)
return 0;
}
snprintf(dev_name, sizeof(dev_name), "%s#%d", name, dev_seq(udev));
snprintf(dev_name, sizeof(dev_name), "%s#%x", name, dev_seq(udev));
str = strdup(dev_name);
if (!str)
return -ENOMEM;