]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: gadget: uvc: refactor the check for a valid buffer in the pump worker
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Tue, 13 Feb 2024 23:28:01 +0000 (00:28 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Apr 2024 11:10:09 +0000 (13:10 +0200)
[ Upstream commit 5e7ea65daf13a95a6cc63d1377e4c500e4e1340f ]

By toggling the condition check for a valid buffer, the else path
can be completely avoided.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20240214-uvc-gadget-cleanup-v1-2-de6d78780459@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/function/uvc_video.c

index dd3241fc6939d6fa0e0a23a36469e5f137164e3a..dbdd9033c126819fcc88fafd60b772ffbf2b872c 100644 (file)
@@ -594,10 +594,7 @@ static void uvcg_video_pump(struct work_struct *work)
                 */
                spin_lock_irqsave(&queue->irqlock, flags);
                buf = uvcg_queue_head(queue);
-
-               if (buf != NULL) {
-                       video->encode(req, video, buf);
-               } else {
+               if (!buf) {
                        /*
                         * Either the queue has been disconnected or no video buffer
                         * available for bulk transfer. Either way, stop processing
@@ -607,6 +604,8 @@ static void uvcg_video_pump(struct work_struct *work)
                        break;
                }
 
+               video->encode(req, video, buf);
+
                spin_unlock_irqrestore(&queue->irqlock, flags);
 
                spin_lock_irqsave(&video->req_lock, flags);