From patchwork Sun Mar 3 15:10:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maarten X-Patchwork-Id: 13579840 Received: from mail.rmail.be (mail.rmail.be [85.234.218.189]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 531E667E8F for ; Sun, 3 Mar 2024 15:27:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=85.234.218.189 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479645; cv=none; b=NTuohtp6JkDYwkE7hZTPe/lTh2xFTVq58pz0dQKje2L37r+NJAJPbOIzs5yIlBxh6snUuQArfiiC33aK2+rzczmvZjx9+KlrwTCOqRp8oVcXFoiIF2v4XziwTwVtCrIfCWKoaB5Sxq5N944g/FIP/F3V0czrRkA0VlXTOTuasFk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709479645; c=relaxed/simple; bh=QwdwSU/d9FhSaKQR08q4ciSFD9jZv6xlFVBANiIQH/w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=twq3XVAlE/UXbOu12CQQkjYiyfy6/zmEJu7G6iZ+Gs3dZzsnvYSu8XZZUShb5H+XcWLMj7L+7ajR32Xj4LqC5JExJVRCEcUmw4BiBqTulLigVgEqzpUZL37SqNXGF1yGZ308p61mf2sUcdsed8MPec88YIo6X02ammU3TIVDJr4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rmail.be; spf=pass smtp.mailfrom=rmail.be; arc=none smtp.client-ip=85.234.218.189 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rmail.be Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rmail.be Received: from localhost.rmail.be (unknown [10.238.9.208]) by mail.rmail.be (Postfix) with ESMTP id 6652C4C0A1; Sun, 3 Mar 2024 16:27:23 +0100 (CET) From: Maarten Vanraes To: Raspberry Pi Kernel Maintenance , linux-media@vger.kernel.org Cc: Kieran Bingham , Laurent Pinchart , Umang Jain , Dave Stevenson , Maarten Vanraes Subject: [RFC PATCH 11/13] staging: mmal-vchiq: Reset buffers_with_vpu on port_enable Date: Sun, 3 Mar 2024 16:10:06 +0100 Message-ID: <20240303152635.2762696-12-maarten@rmail.be> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240303152635.2762696-1-maarten@rmail.be> References: <20240303152635.2762696-1-maarten@rmail.be> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Dave Stevenson Should we go through the timeout failure case with port_disable not returning all buffers for whatever reason, the buffers_with_vpu counter gets left at a non-zero value, which will cause reference counting issues should the instance be reused. Reset the count when the port is enabled again, but before any buffers have been sent to the VPU. Signed-off-by: Dave Stevenson Signed-off-by: Maarten Vanraes --- drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c index 479b8114dcdb..14ecb8e5e2ee 100644 --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c @@ -1483,6 +1483,8 @@ static int port_enable(struct vchiq_mmal_instance *instance, port->enabled = true; + atomic_set(&port->buffers_with_vpu, 0); + if (port->buffer_cb) { /* send buffer headers to videocore */ hdr_count = 1;