Message ID | 62f2603d8b3fba1efb236063a0819fb95285b0ae.1680653504.git.viresh.kumar@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [V2,1/2] docs: Allow generic virtio device types to contain device-id | expand |
On 05.04.23 03:12, Viresh Kumar wrote: Hello Viresh > The strings won't be an exact match, as 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. > > Fixes: 43ba5202e2ee ("libxl: add support for generic virtio device") > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > --- > V1->V2: Add the missing fixes tag. Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com> > > 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);
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);
The strings won't be an exact match, as 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. Fixes: 43ba5202e2ee ("libxl: add support for generic virtio device") Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- V1->V2: Add the missing fixes tag. tools/libs/light/libxl_arm.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)