From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (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 9D84A348C56 for ; Thu, 16 Jul 2026 05:28:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784179693; cv=none; b=erHHWrYII+lwKi4QOVQOx/Fo+Ejuf2Vc+cr/hJWvdhmlS/VgKAorv2njePNoXpNn0Z3GkN8NZlembxAC25F4g66n6GLkj7ozVaVEup4D4j3dJxhxYlshpwFSfdWpPJDffxbXx6y4BRXeQLmwOT+j/gfJn/7zocLBLXIRqiaSMxQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784179693; c=relaxed/simple; bh=35c5StQbuaFW5GuMnci6T+0xPvaX5c4d94nGNG0Dc7Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=AngprpPJB3iX40VkYHVcO0z4YoLgloOLYkOCdfXCndZsMJu/S5hLtyo8kQo2sb/OdTQwP5SZsk4qeTJPR+sCjCp6XTsRoRWNvmvBUV5JuYwgrykHne2oRMlDLZ1ARjbI8nq3dqIoY8Zqwioz2YX//zMVtlFRJVKc1r3FziZFca4= 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=hYCNnp3c; arc=none smtp.client-ip=209.85.216.47 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="hYCNnp3c" Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-383cb94f742so5870537a91.3 for ; Wed, 15 Jul 2026 22:28:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784179691; x=1784784491; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=5VLkkwNkuanFo7iAvh8X15HBgCLDw1jqvI+OuX50DUc=; b=hYCNnp3cdEAv7+g4ZKt+qN7TRgb3s3TO1rLvfWylR1NquMLH2wAqDPeEm6MkbwKMqi K5XNXk2KA2Wfp+KNqXls+dE01jMD4vXuPDiiF+4FoJWIYOIXW4sUagIMOyzhfXlLAMiC AIH4jciCTFPYn40NHSoqiIdExbwkIc9XXxZeVfAuSGRQAU7JL5qRBmUQpMzPvQb9xvWw kRl//nQEL5wiHCoa4c01ADEF46Khu5cZrkcFKICq3HKVX8SY6jLO5Rov/D2c24sIeGhJ 507gmYT/4onwd/HBeVxFYETWiC/+Jf9+v5cY683kSxvHIIIc9t4+7EaolUqgOtMfWpGa hNgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784179691; x=1784784491; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=5VLkkwNkuanFo7iAvh8X15HBgCLDw1jqvI+OuX50DUc=; b=LYoL2clHGFWaJHQ1c6fjrGz0M7th2dj87uXQJ87lvhPBv9CNjlpUTlCgur/CwqbSc0 GKJIWH7356jj2KphjGEhLvg41xHmrRQAEdACoSUwZw572R+8JsDiyGwV8rAzKHSN85Mk UonyfC9sAox5SQ9nvYToLiBwRXBl2aC7jyeWm0MgcAkAe05NKEb22+KNh9ApEo8iQObC yEZ0ubWxTmD3ebq32zB0z3xpXgRmBpewlS7zvLXVWME4AD1T1/IwmkRMkzE3cCB/mpDm +wAytR5LhkVBNogr83PbPJNbTU9wswFucpTJF04kn8maPsJFlClMCdlxvTCKbas7vZLC 4F6A== X-Forwarded-Encrypted: i=1; AHgh+Rpc2fjcavWdY+tmL8K46Y5/xv5g8Vty1d/aDC3R6JVz34wRR61v90JsbldK0TKyve17yDWB7EjztwYZXUc=@vger.kernel.org X-Gm-Message-State: AOJu0YxEvG3NGbhufHOqeZ9oKO9knuaETKkWBIpOkzxGI5igmb6vN+zZ /vYzIaY1AF/bJkxKrLIHgS9df//mAzm8W6cOwrirdfd6FXt0u+qB89bl X-Gm-Gg: AfdE7clVenJIvB4YXjWPP+q+dkYA7vwo9jRJD146kuU5Dq2B25BCms8qkfSiEOhvwcK fTpcvSdAR5TyV2tcGS8WTncC8/zyA7Jq7AHOP0FwDXKT397YAPOTCBGB6PI6TgAqttdlGFULl3w VBkfNJNftHxB45v6Otdnb5Q8/2BOluGKLavNs+Clur5t1si2n0kgkgtoTbAmGrlXFs3jovLv81k paxggxmWNnEzx6UuUNm5sm99yIU+YS1Bh8mRxveofpoGe+WCDEFXCawsZydEmF6whKO9ucYIzo7 VgRMb4IaM6H5llYUuJRofyBGTbJDdJ57PYA1aUnDvjBVrwPdYcudYsRxHni59f2oU8mxsDMY0J/ gfvMVzdU6f7fgmTAowChF1djaC5NKRNoSW920Qw3XwuoXf2y4lPwcSPXrOkC7pk00N3+d0Bgarj 6/KXAky+CMgZj1Dih2FAOtqPxhDfnWtnXZ6iz5ZczI9uuoIN8= X-Received: by 2002:a17:90b:57e5:b0:38d:e7b7:5125 with SMTP id 98e67ed59e1d1-38e2a030175mr4468410a91.17.1784179690909; Wed, 15 Jul 2026 22:28:10 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38e39dee580sm670228a91.1.2026.07.15.22.28.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 22:28:10 -0700 (PDT) From: phucduc.bui@gmail.com To: Vinod Koul , Frank Li , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: bui duc phuc Subject: [PATCH] dmaengine: validate dev and name in dma_request_chan() Date: Thu, 16 Jul 2026 12:27:58 +0700 Message-ID: <20260716052758.23465-1-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: bui duc phuc dma_request_chan() assumes both @dev and @name are valid, but neither is checked before use. dev is dereferenced immediately via dev_fwnode(), which accesses dev->of_node or dev->fwnode without checking for NULL. Likewise, if name is NULL and the OF/ACPI lookup does not succeed, the legacy filter-map path eventually passes it to strcmp(), resulting in a NULL pointer dereference. These are caller bugs rather than normal lookup failures, so add a WARN_ON() at function entry to catch invalid arguments early during development instead of crashing later. No functional change for valid callers. Signed-off-by: bui duc phuc --- drivers/dma/dmaengine.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 9049171df857..7b479cd93b9b 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -814,10 +814,15 @@ static const struct dma_slave_map *dma_filter_match(struct dma_device *device, */ struct dma_chan *dma_request_chan(struct device *dev, const char *name) { - struct fwnode_handle *fwnode = dev_fwnode(dev); + struct fwnode_handle *fwnode; struct dma_device *d, *_d; struct dma_chan *chan = NULL; + if (WARN_ON(!dev || !name)) + return ERR_PTR(-EINVAL); + + fwnode = dev_fwnode(dev); + if (is_of_node(fwnode)) chan = of_dma_request_slave_channel(to_of_node(fwnode), name); else if (is_acpi_device_node(fwnode)) -- 2.43.0