From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 D9D81388E55 for ; Sat, 30 May 2026 09:44:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780134285; cv=none; b=aIP43bN2Jns1BQr7nRrR4j/s1gt7bTWG1nzP8voFjlLzg9J+O7LX3dirXZBBcjNnvvjFuN819OQGCeTa1h/w+ZkNJdBIcg0/w8aWkDuk+zeJJUIy+vr0yyEnzOb94z4+eSBroRnDecssZyZKoJyxjBsKnp8RR1Su1CzlSyu5vmo= 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.177 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-f177.google.com with SMTP id d9443c01a7336-2bf02708e8fso19325585ad.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=EbrI14XPSf92LWVpO5lDqW81phpyOTlVPely5zJeDfEKa1qMUfGP6vf426yAXMELgl BKFuubzWAAan+gtznpDBFiMNeXSExxE8uHbktESMqWx0PCK3C4J9scO6+z5ctec9lLIa pZ5YfmatMgo+I+H9hkenHuDQsAPvhmwL8uTHwJsdPnEmvF2zt9ScT2PiqMF30IX5BYLE qnr7wUl1cvCJjhzlQfq3GMZYo7V3MWF9TrhUwCSvqbvAcq4jLibowVaHJoz2qsgk74JL 7cMsyaS4M1p1fysvsxLf+knbcE/6BEuARzunOzfW3YyG4wwVVJHxR5WfqSHeLZU1jLsJ f1MA== X-Forwarded-Encrypted: i=1; AFNElJ9t6nccC6yJZsZTB9py4L7Hq8P97fkN+OHzyrEpjQgL3xmOw6g4KUBKmtmOIF33FQOqp++uKI1qYmfOwQ==@vger.kernel.org X-Gm-Message-State: AOJu0YzYCbpfVQctlE7LXg3OxNKQ/douMmUsXFhqmZgsZBX1Ym2ArmiL T0X2ZLM+ZHD9ewkrg1LslsSUh3Cob7/LbKF4k36YNkg3fhHv72H5vuRp X-Gm-Gg: Acq92OHJvP0bmNrJ1JmjjmhzpJhZePI6JAnkLwXoKSt86iXMJhvZrqURVlD6Xrs2ZJq 1BspWfNdXfLclQeRVp7FN9HLVe1ze6swfsZ5Mz2cxdRumZZ9norKReYnyegFzuocRSxUYKs779k DjkevSASdmO7urGZF6MmboMGP+KSDAd3Q1dDlYiJAysjX+94TdyIbZxCMp7Rm8VksVypHBq5a1i h9M/LNV085KTUd2Fs5DkI8bo0y1REXZQqB1MgLJjzfEx9sFqMRUIecK11YQ5nskxZRgaN64T3PJ RzOabdh09BvSQ4rdCuHjTQD62Lhbtz0AScsZqDbIdI0AMPiShG95bFMAlnFNkqpH9Th4aiVMmf3 rhAdacWWCm2k/CF6QBYTXNqxZPR1Y+FekChntUOYfWYlgq/QxFuDEhtAFssdD5VOuhOA2IydmkG xUW8zkeEYDM82pgrGybcWNnUVAFwFQ+9vA0Y6Ix9ZSOg== 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-media@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