Re: [PATCH RESEND v2 17/32] drm/vkms: Introduce configfs for plane format
From: Louis Chauvet
Date: Fri Dec 19 2025 - 12:28:38 EST
[...]
+ .expected_offset = 1
+ }, {
+ .data = "-R1111",
+ .data_len = 3,
The string is longer than 3 chars, is this intended?
Yes, I wanted to ensure that the algorithm stop at data_len and not \0
--- a/drivers/gpu/drm/vkms/vkms_configfs.c
+++ b/drivers/gpu/drm/vkms/vkms_configfs.c
+static ssize_t plane_supported_formats_store(struct config_item *item,Should this be instead: fmt tmp
+ const char *page, size_t count)
+{
+ struct vkms_configfs_plane *plane;
+
+ plane = plane_item_to_vkms_configfs_plane(item);
+ int ret = 0;
+ const char *end_page = page + count;
+
+ scoped_guard(mutex, &plane->dev->lock) {
+ while (1) {
+ char *tmp;
+ char fmt[4] = {' ', ' ', ' ', ' '};
+ int len = vkms_configfs_parse_next_format(page, end_page, &tmp);
+
+ // No fourcc code found
+ if (len <= 1)
+ break;
+
+ page = tmp + len;
+ memcpy(tmp, &fmt[1], min(len - 1, 4));
?
memcpy(void *to, const void *from
Make sense yes... My tests were not sufficient :(
I will triple check this before sending the v3
Also I think it would be good to reject strings longer than 4 chars (len >
5), because they cannot br fourccs.
I will add this limitation.
Thanks!
Otherwise looks good.
BTW, I feel your pain in implementing the parsing!
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com