From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 BCF2932FA10 for ; Sat, 28 Mar 2026 15:15:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774710922; cv=none; b=bPkIg3tqaUcbmEtw6dUk+IziOrnKJ81a8ADhiSZLPAc9OXeel2S+ryGMFMdbA25IDH0/R5lDKKlin+30fH+77nSIGBn5O5TadN2bnpSWfhLzP/a1iqXdu+STc3Q7Nc8E+Vrq3oKZPnxLfznxhgBUqpF/uNBXP+I63xzHM+AnHEE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774710922; c=relaxed/simple; bh=ZWJg7QYWRQbgXcojyR4TKyqPIue1T7QETHoFjcx4hlA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qmt3lYbmX64QQUnyNJfT0E0hPBS86+AG/s7Y5nkyFY9KQWlr/EGMaku/hQyYYzhCeKqNBqEhXZLpL55Bd4euInfzrIPALWfgWo7cyTfTfiHhQqm7Q34vlTVfz0ehdEYwqnGdb3qFmg64u/TVBz1OdzPY+YTyIkh0tgZuNRMVYoU= 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=jCj/zaDH; arc=none smtp.client-ip=209.85.208.51 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="jCj/zaDH" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-66ba9dfe83bso235517a12.3 for ; Sat, 28 Mar 2026 08:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774710867; x=1775315667; 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=rprbcKOKh6LbVDBtx1L6evH/A6xyQAWdrHbB0AMy/jA=; b=jCj/zaDHRN7JkD2akXerAphri2eOw5brJzfhuX1/lt1/D87vYwY5ff2uW4xLGI/F8r upbbOPw6ZoS6RzOM5Md0KY4aQ40alwWU2qADkO8FUeffoe97IrIT8LDNWc8RknWqrPBw TPus99aBpp5bijpT06NPBu5EwDPGpSsBDhIOkLr4ZjngNiCEGOujCfz8SRVNIhZDJ8fW /DJWYsO6utSatCx8STShjeFyMZ94cec1Vyl7Be3S6prd9Us+hFREibzJr4Sdaabs/YCG Zm9dJem0SgLBTsYCVC6mj68HDF0Tc/M+f1WncqEDnfGJ6JqC/qet+/ckwI4wlCF8sQmG pKjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774710867; x=1775315667; 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=rprbcKOKh6LbVDBtx1L6evH/A6xyQAWdrHbB0AMy/jA=; b=jFNQZdi/ySFr4aRqks8Gml1Xbv1l4Z+vAtQzEuCAAbPqo0Hw/YNfqKcpVt0gvemjVD mt8Y4Cnr8FN3b0dlh74CN7npHpVLLRZiaz88f+AAIn6+mU6comU7KPG6gNrAtL0xaXD9 /qtTGr9pPWB/WCpz6TNpahpo971Hrai5dt2RatxLqhavg1CFytVmeluUbbrBzl58UfWL WfndEvujX6dgom5zOs8uI2xjeDrVQyjDmxI5h4uE+c/hHK5W85QIvRbao1Dqb1PcG2rS i7+L5mrCCmfd72t6YeFV5yd9aqa74UYThfYX+by0cCtaAMNVaw9n8xCmkQYSNPkSP3fM n1Gg== X-Forwarded-Encrypted: i=1; AJvYcCVZ4w/E8qrR40T5GAqOyUgLckAxEIO5M4FDLwmLC34hDbTfosEfGKEbrfEIX2Kn0CA+5SFux2pEYnrAqjc=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8uGWdBPm0QxsyDJWNJAnodzmO+yYcO8O/+fwuXLSFJc3Clorg hNLiLvyfH8eZ7U7vnpdJWcAROdSTdu9Tku3mMOMJ+3BV7V118OkT8kVEywvV/6KdFNQ= X-Gm-Gg: ATEYQzwgBwi59Ay2qAuzChHxhKgwM5lsj+cwMCBDkd25iuOnZC+mtyzEenZI/R/5FRr GiqjkqkREu/s4OuJZpCrY3+UiQFW46ipAWJND1xGA8fJfWvdq8rTCLopMv2AFtn6AY+UeFc17Yq XkOV3FYiDwd/1hKRE7IMGZqs81WwbNSR2kpNTKFDvc1Lzc24VXhzuwErHmn8WEGApKV8+kjKRst hgA8BLI+5iF4DVPZYIawCX4vbr3i3PourW70la0uBpDh7wVDG+GY8xUAqBd0xelFfLJqCWEmRgG 1mlm2Wc5GCfP0gX05TNkreXNQR645skIBjE4S4EeG7L6+Oin5ylzU78+oO9UoYRIGrrJOeRj96e V0TdR6YiL3Kn4s7BMdBk+dU2ERJsj4G00wCGD4HwqTM9AsgbA7OPLeDnqF2yy4ij107xwZ+kWhG 7EfjCqxRCz+uXVa5D27QVSGFQmxDoO+Qdy/2tY4/qSMhHNM2a+inB8Jg/U8IxPhXEfolX2IFWQI Bl8bGTVyTpr X-Received: by 2002:a05:600c:1d86:b0:483:7783:537b with SMTP id 5b1f17b1804b1-4872807470fmr103447895e9.24.1774709207384; Sat, 28 Mar 2026 07:46:47 -0700 (PDT) Received: from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48727bfc5ecsm91577275e9.1.2026.03.28.07.46.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2026 07:46:46 -0700 (PDT) From: David Carlier To: kwliu@nuvoton.com, kflin@nuvoton.com, mchehab@kernel.org Cc: linux-media@vger.kernel.org, openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, David Carlier Subject: [PATCH v2 1/2] media: nuvoton: npcm-video: fix error handling in npcm_video_init() Date: Sat, 28 Mar 2026 14:46:44 +0000 Message-ID: <20260328144644.67556-1-devnexen@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260327221905.267410-1-devnexen@gmail.com> References: <20260327221905.267410-1-devnexen@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 npcm_video_init() has two error handling issues after of_reserved_mem_device_init() is called: When dma_set_mask_and_coherent() fails, the function releases the reserved memory but does not return, allowing execution to fall through into npcm_video_ece_init() with a failed DMA configuration. When npcm_video_ece_init() fails, the function returns an error without calling of_reserved_mem_device_release(), leaking the reserved memory association. Fix both by adding the missing return after the DMA mask failure and adding the missing of_reserved_mem_device_release() call on the ECE init error path. Fixes: 46c15a4ff1f4 ("media: nuvoton: Add driver for NPCM video capture and encoding engine") Signed-off-by: David Carlier --- drivers/media/platform/nuvoton/npcm-video.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/media/platform/nuvoton/npcm-video.c b/drivers/media/platform/nuvoton/npcm-video.c index b2a562e1ee1c..5c6bddfe8073 100644 --- a/drivers/media/platform/nuvoton/npcm-video.c +++ b/drivers/media/platform/nuvoton/npcm-video.c @@ -1720,10 +1720,12 @@ static int npcm_video_init(struct npcm_video *video) if (rc) { dev_err(dev, "Failed to set DMA mask\n"); of_reserved_mem_device_release(dev); + return rc; } rc = npcm_video_ece_init(video); if (rc) { + of_reserved_mem_device_release(dev); dev_err(dev, "Failed to initialize ECE\n"); return rc; } -- 2.53.0