Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1899715ybl; Tue, 3 Dec 2019 14:39:28 -0800 (PST) X-Google-Smtp-Source: APXvYqxWYkofJGcJcVN3UmHdPUhGUrA3F6BOzFrXlGMfY6+vw71zqx+xn2ylL8pOr4D36A6y+lUU X-Received: by 2002:aca:ecd3:: with SMTP id k202mr283622oih.71.1575412768341; Tue, 03 Dec 2019 14:39:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575412768; cv=none; d=google.com; s=arc-20160816; b=gZoIORsp5W3M6mCuRViqXyUMkpqgIKa3a6FniFQp79Jo5+xjrFovaHRFGLR5a2Yqhu uc2wDfT1LXIdo6f8/CDHPxVSX59H97poqKbu8E4vsX5KjhtA+xAGee2SaPo4YmelUyke /0r5JhpNPlgD1Mq9BW4WCJB6lpd/XjGAQF0AaSHD0BblOG8yXc+WcM81QyRR4a8EYfwi uV4AxxSLCcmsuGIh21fgudv+gC+jPj4v2vM8PLv3PQXGZmpRDFyLtEpF7jMWeSlDCqjw l/RwRS4do2xBfTf1S3+66rYReTWiApkR/VkHpc/LBiAl/ZBLOKDP2XreOXExFUi7HVrz TPcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Zs/1Of64n/7mF8erIntVXJ3eqU87Ci+JdDcpSpJuCcI=; b=e4y+oCaYQBxqYukNiE8LSLKWcRSx9YVr2aYyKVTPxQ7uJhTg6TtNEh+qK86JHjs9iP bY0kFtcG4iTAwy+hfLDHoti2V7CbZUkkhNbhwVjjr4cR5OvV6YhrVB3DWT5XU0ZQKjxF KDndONI7M5HDCHHmiMN2OVseYxnNsSxXOqniUyJ/WOLolFBk8mA68AvZXd8BSXevuPRS jWvz0fa1i5wCwX4vhJ8fjlDlb0Jsu3oYWw6Z8kc/0ip3+mvp2J+zQ58Kfp22TZdB16uL eg894qelHBv/f+b4bgGAFyaWKTnAcOsznnyGEF9zkGeykMX/TTYH8IhkVlq5RGxXc17+ hoIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hdKY9pgW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a127si2306306oif.81.2019.12.03.14.39.16; Tue, 03 Dec 2019 14:39:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hdKY9pgW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727746AbfLCWhi (ORCPT + 99 others); Tue, 3 Dec 2019 17:37:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:45894 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727714AbfLCWhe (ORCPT ); Tue, 3 Dec 2019 17:37:34 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 380D2207DD; Tue, 3 Dec 2019 22:37:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575412653; bh=6hPF5tdZKwGefFuOFN1JDyKRb95J50q7shAcN+XnPRc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hdKY9pgWr27XG4zoaOoJD5ToyUF9y3X3d3CHFA20H7/qZ5bobliL5Zp7tchyR8nZK /nJ/ClYRlEIhr8SxzjPJVpcx1fQVCFdGb98WDdmEoY2ow+vVm8E1D8UoMxJadc3RGB ED6oymlYFaMgos3d5OOrNp5dYmIweY1oAi2h4n6w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sami Tolvanen , Kees Cook Subject: [PATCH 5.4 05/46] driver core: platform: use the correct callback type for bus_find_device Date: Tue, 3 Dec 2019 23:35:25 +0100 Message-Id: <20191203212715.632735792@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191203212705.175425505@linuxfoundation.org> References: <20191203212705.175425505@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sami Tolvanen commit 492c88720d36eb662f9f10c1633f7726fbb07fc4 upstream. platform_find_device_by_driver calls bus_find_device and passes platform_match as the callback function. Casting the function to a mismatching type trips indirect call Control-Flow Integrity (CFI) checking. This change adds a callback function with the correct type and instead of casting the function, explicitly casts the second parameter to struct device_driver* as expected by platform_match. Fixes: 36f3313d6bff9 ("platform: Add platform_find_device_by_driver() helper") Signed-off-by: Sami Tolvanen Reviewed-by: Kees Cook Cc: stable Link: https://lore.kernel.org/r/20191112214156.3430-1-samitolvanen@google.com Signed-off-by: Greg Kroah-Hartman --- drivers/base/platform.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -1278,6 +1278,11 @@ struct bus_type platform_bus_type = { }; EXPORT_SYMBOL_GPL(platform_bus_type); +static inline int __platform_match(struct device *dev, const void *drv) +{ + return platform_match(dev, (struct device_driver *)drv); +} + /** * platform_find_device_by_driver - Find a platform device with a given * driver. @@ -1288,7 +1293,7 @@ struct device *platform_find_device_by_d const struct device_driver *drv) { return bus_find_device(&platform_bus_type, start, drv, - (void *)platform_match); + __platform_match); } EXPORT_SYMBOL_GPL(platform_find_device_by_driver);