From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D923D37B014 for ; Sat, 30 May 2026 09:44:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780134285; cv=none; b=tbMcnUjG3dmO7fkLTLaACIHXtGUxDLlZgdkbJqysAmhE5lL9B3pUSPbBGtivPfjmZnB+UgxV/rOqIKbu4t/SoKs5DsrZx/nWMuA1MtK1PgTVYeG3WAJxdlh4RqrSlfV6R+LmhDtBar+x+plfK6gjPg9FvlR90XEBO1j2KpzWTOY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780134285; c=relaxed/simple; bh=G4dcvjVYZuF9c1fC6zIr8U0LMJapQ16RTisqEjiIVMg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n9HH4vD+SH4uO9U4uxb5kel7cPcFEBpLtpbhtct22KLSZjuCrKLgrIuHyas0nTt7NVq17/Bj4vzntVQDYzBN+kCG46bkzFZCeg7wxnrKUD6FBH97LxxGSHpoMS/hCAnTERmn+oMBGcjdc6QvCIM9z0jx6XLmGSqjc1DNEuPVmZs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RaMrO2ns; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RaMrO2ns" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2bf02708e8fso19325565ad.2 for ; Sat, 30 May 2026 02:44:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780134283; x=1780739083; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Je0r03zFWDk/tHsmcp50GPWfnKiSAfNBSvNM4tTawBM=; b=RaMrO2nsu+JcwG39o8p1nRoB4dy1j0JbydQGlqwiVo/cbZc0Jj90rPfoWnr4bhKBK7 wHhH0dyxS1Z9ydeFyVUQ9KTa3rZHhR414I5rziFu/TTiWdK5ewhrgV1yS9uMpOAbpGCm T5sJr3RKypIhq7Ym/pih2WbKv0gYQKsnSCs+Z8qFLkxhvi4wMvOtC41EhEPczbxD3mgg JpSNdKxDVLWET8hvZw1B3mB4OS2d3ixgXcgD7WHk+O0g+CaxtkeA11ltuIxoW6Lbxs3X kWotwn2iRaeLEi/1VPMnxjLAykM9IBjZjWBkUom0GlGpEZBkTd542+tior/xu45VvHkH n71Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780134283; x=1780739083; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Je0r03zFWDk/tHsmcp50GPWfnKiSAfNBSvNM4tTawBM=; b=egAgHxjwU6/69HqMflu9QMrwneZJZeHIP7OAcz1VbFJUtj9rkjmTZbxasazGUG6K1S SnqHtuJHK76FM5D0h58MKwLTHgF6VQbhy0SKfFAKW+KmW/m3B/rlNHUQp9VBLRlJfhr3 M8QTNwwpWfgkZiAW3rI7itDhLDe+bafdzd+z0jnS0PmrNxa1T0GH8iyGhvm0BbLgSXUb wg/7RZDeGY1ksLNvw0Ks3uZw7KBIf7xNCHt1ZfZg7+DJwDzIz7TlGKh2ChrNs6Mwlc2f QF2Mff1xE4kq3BmYr38Ob8mCMG21RqE3Woyo9NTzL5xHQx8tLHxF+yrUkLgwNVoTUONy 5fgA== X-Forwarded-Encrypted: i=1; AFNElJ8fvQVnjLQsRTXILpiElJ16229H0QA8YLhPQJedJE7QDEwa3zpn7DZroONoEJrEHrFZoWEN64A18LgEqsQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyYQbir+ao82w4lVUDYKWKmtv+TBUEf216f8V+g1aiwjsmDXuou Qn3ZRoJmNeXwszpmtyaDl3BJcP78bdw77YW7ldTuWMf8xIJstTsIifvdm3H1KQ== X-Gm-Gg: Acq92OHqYgAeUYH1NA6t7kuy7IJgqOwEAQaLd4AAxvT1ezYANUIvzsrZa4eupY8jaJK l9KxxOeQ+glz2acjYkVblrpiHXZl/WjydbsYXF79d8kd29+H1PUfWUSgwuEZKe7bTAAMsGzXRx+ +0LxTCk1agbZm14MOFaIkICjrYIMAoW0+ha0vqe6SwtdWofDlEWxTroIelvVQ9vSHh4ewXFYBmb 3NOX1a3+eUJpdPAscWA7M3/IRasbxiw8GRParceMpwhKIu69FN2l3SrycJvhnmDAQ3j6IUa4sXA aMQADHnvmDzgGwRqUIuH/m/a5R4UxPiy82P2Y7FYZGoZR6eEDsBjbLw4FQ7MLwnV1Bp6sDc4U/x abQXLSS9V+Gx1a6sDMln1LQnR5Sq2uevktyfSt+lnQphX4bFQJGGy+q4Yoxg8X/qh7wh11svjFv kbqMHBJ4j19FM7/EYqHoKW+cRIAuMZoLzJ6bF4I30IIA== X-Received: by 2002:a17:903:2450:b0:2bc:e2ed:fd03 with SMTP id d9443c01a7336-2bf368a3dabmr36524785ad.39.1780134283084; Sat, 30 May 2026 02:44:43 -0700 (PDT) Received: from rockpi-5b ([45.112.0.191]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bf239e700csm61529945ad.10.2026.05.30.02.44.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 May 2026 02:44:42 -0700 (PDT) From: Anand Moon To: Neil Armstrong , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Mauro Carvalho Chehab , Greg Kroah-Hartman , Maxime Jourdan , Hans Verkuil , dri-devel@lists.freedesktop.org (open list:DRM DRIVERS FOR AMLOGIC SOCS), linux-amlogic@lists.infradead.org (open list:DRM DRIVERS FOR AMLOGIC SOCS), linux-arm-kernel@lists.infradead.org (moderated list:ARM/Amlogic Meson SoC support), linux-kernel@vger.kernel.org (open list), linux-media@vger.kernel.org (open list:MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS), linux-staging@lists.linux.dev (open list:STAGING SUBSYSTEM) Cc: Anand Moon , Nicolas Dufresne , Sashiko Subject: [PATCH v6 4/8] media: meson: vdec: Condition buffer flushing on queue type in start_streaming Date: Sat, 30 May 2026 15:12:50 +0530 Message-ID: <20260530094326.11892-5-linux.amoon@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260530094326.11892-1-linux.amoon@gmail.com> References: <20260530094326.11892-1-linux.amoon@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit When vdec_start_streaming() fails, the error path clears buffers from both the source and destination queues unconditionally. If one queue was already streaming successfully from a prior invocation, flushing its buffers behind its back leaves videobuf2 deadlocked waiting for completions. Fix this by only sweeping buffers from the specific queue type container that failed to initialize. Cc: Nicolas Dufresne Reported-by: Sashiko Closes: https://lore.kernel.org/all/20260521090944.F35401F00A3D@smtp.kernel.org/ Fixes: 3e7f51bd9607 ("media: meson: add v4l2 m2m video decoder driver") Signed-off-by: Anand Moon --- drivers/staging/media/meson/vdec/vdec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/media/meson/vdec/vdec.c index 8a5bf1a96830..698a95566ad2 100644 --- a/drivers/staging/media/meson/vdec/vdec.c +++ b/drivers/staging/media/meson/vdec/vdec.c @@ -386,15 +386,15 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count) sess->status = STATUS_STOPPED; mutex_unlock(&core->lock); - while ((buf = v4l2_m2m_src_buf_remove(sess->m2m_ctx))) - v4l2_m2m_buf_done(buf, VB2_BUF_STATE_QUEUED); - while ((buf = v4l2_m2m_dst_buf_remove(sess->m2m_ctx))) - v4l2_m2m_buf_done(buf, VB2_BUF_STATE_QUEUED); - - if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { sess->streamon_out = 0; - else + while ((buf = v4l2_m2m_src_buf_remove(sess->m2m_ctx))) + v4l2_m2m_buf_done(buf, VB2_BUF_STATE_QUEUED); + } else { sess->streamon_cap = 0; + while ((buf = v4l2_m2m_dst_buf_remove(sess->m2m_ctx))) + v4l2_m2m_buf_done(buf, VB2_BUF_STATE_QUEUED); + } return ret; } -- 2.50.1