tools/libs/light/libxl_arm.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
The strings won't be an exact match, and we are only looking to match
the prefix here, i.e. "virtio,device". This is already done properly in
libxl_virtio.c file, lets do the same here too.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
tools/libs/light/libxl_arm.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index ddc7b2a15975..97c80d7ed0fa 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -1033,10 +1033,14 @@ static int make_virtio_mmio_node_device(libxl__gc *gc, void *fdt, uint64_t base,
} else if (!strcmp(type, VIRTIO_DEVICE_TYPE_GPIO)) {
res = make_virtio_mmio_node_gpio(gc, fdt);
if (res) return res;
- } else if (strcmp(type, VIRTIO_DEVICE_TYPE_GENERIC)) {
- /* Doesn't match generic virtio device */
- LOG(ERROR, "Invalid type for virtio device: %s", type);
- return -EINVAL;
+ } else {
+ int len = sizeof(VIRTIO_DEVICE_TYPE_GENERIC) - 1;
+
+ if (strncmp(type, VIRTIO_DEVICE_TYPE_GENERIC, len)) {
+ /* Doesn't match generic virtio device */
+ LOG(ERROR, "Invalid type for virtio device: %s", type);
+ return -EINVAL;
+ }
}
return fdt_end_node(fdt);
--
2.31.1.272.g89b43f80a514
On 30.03.23 10:35, Viresh Kumar wrote: Hello Viresh > The strings won't be an exact match, and we are only looking to match > the prefix here, i.e. "virtio,device". This is already done properly in > libxl_virtio.c file, lets do the same here too. > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> It feels to me this patch wants to gain the following tag: Fixes: 43ba5202e2ee ("libxl: add support for generic virtio device") > --- > tools/libs/light/libxl_arm.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c > index ddc7b2a15975..97c80d7ed0fa 100644 > --- a/tools/libs/light/libxl_arm.c > +++ b/tools/libs/light/libxl_arm.c > @@ -1033,10 +1033,14 @@ static int make_virtio_mmio_node_device(libxl__gc *gc, void *fdt, uint64_t base, > } else if (!strcmp(type, VIRTIO_DEVICE_TYPE_GPIO)) { > res = make_virtio_mmio_node_gpio(gc, fdt); > if (res) return res; > - } else if (strcmp(type, VIRTIO_DEVICE_TYPE_GENERIC)) { > - /* Doesn't match generic virtio device */ > - LOG(ERROR, "Invalid type for virtio device: %s", type); > - return -EINVAL; > + } else { > + int len = sizeof(VIRTIO_DEVICE_TYPE_GENERIC) - 1; > + > + if (strncmp(type, VIRTIO_DEVICE_TYPE_GENERIC, len)) { > + /* Doesn't match generic virtio device */ > + LOG(ERROR, "Invalid type for virtio device: %s", type); > + return -EINVAL; > + } I agree that now code is aligned with what we have in libxl_virtio.c file, but I am afraid I cannot connect the sentence from the commit description: "The strings won't be an exact match, and we are only looking to match the prefix here, i.e. "virtio,device"." with the sentence from docs/man/xl.cfg.5.pod.in: "For generic virtio devices, where we don't need to set special or compatible properties in the Device Tree, the type field must be set to "virtio,device"." I might miss something, but shouldn't we clarify the documentation? > } > > return fdt_end_node(fdt);
© 2016 - 2024 Red Hat, Inc.