Hello Greg,
The compiler is sane, but I ran into this while backporting fixes to an old codebase that still uses C89 due to legacy support reasons. Furthermore, you're right; there is no guard() in my code base, thus I had to backport guard() with the old mutex lock/unlock calls used prior to guard(). Indeed - will focus on all of what has been said on the v2.
Thanks for the review Greg,
On Mon, Jun 30, 2025 at 12:42 PM Greg KH gregkh@linuxfoundation.org wrote:
On Mon, Jun 30, 2025 at 12:01:06PM -0300, Desnes Nunes wrote:
This fixes the following compilation failure: "error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode"
Cc: stable@vger.kernel.org Fixes: 221cd51efe45 ("media: uvcvideo: Remove dangling pointers") Signed-off-by: Desnes Nunes desnesn@redhat.com
drivers/media/usb/uvc/uvc_ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c index 44b6513c5264..532615d8484b 100644 --- a/drivers/media/usb/uvc/uvc_ctrl.c +++ b/drivers/media/usb/uvc/uvc_ctrl.c @@ -3260,7 +3260,7 @@ int uvc_ctrl_init_device(struct uvc_device *dev) void uvc_ctrl_cleanup_fh(struct uvc_fh *handle) { struct uvc_entity *entity;
int i;
unsigned int i; guard(mutex)(&handle->chain->ctrl_mutex);
If your compiler can handle this guard(mutex) line, then:
@@ -3268,7 +3268,7 @@ void uvc_ctrl_cleanup_fh(struct uvc_fh *handle) return;
list_for_each_entry(entity, &handle->chain->dev->entities, list) {
for (unsigned int i = 0; i < entity->ncontrols; ++i) {
It can also handle that line.
Are you sure you are using a sane compiler?
confused,
greg k-h