From patchwork Thu Mar 8 04:56:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Levin X-Patchwork-Id: 130961 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp6122386lja; Wed, 7 Mar 2018 22:59:12 -0800 (PST) X-Google-Smtp-Source: AG47ELsXwD9Txnpoy50KwYKW15T0m6iswRkqU/y5LqrAbT52ZB/CFj6yJXi9pqV8V2oNQ6nypDXC X-Received: by 2002:a17:902:5303:: with SMTP id b3-v6mr23396854pli.19.1520492352320; Wed, 07 Mar 2018 22:59:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520492352; cv=none; d=google.com; s=arc-20160816; b=GSWDHExWtb9mZAlt1OXwynFTmCPbbSp4gowmoKqWnmRiIIakcUi5oDvMk+XhJY0j1S 112NdbIQaKyQFCEdY+XksGwrGsS183YwXIjw/PB/jce+8sLp208SCNUw5TJtRms4YXND NiGq/VnPKvEAaAYHuaQxHm1fplOivsvSrzm086u7mv16b933+Bz9xHTzhyUel5MoKO/V zVT8at+ZdX3OR4bzrXfMf0Lwy3XlH79HJGZQXlKrB4pMYLRfg3/cqAJv9EIfxTwwd/vG 7F2BZ60QywaDIMluwEefZAr/nZA7haUSjsZtEOIIaLWYgBSNY9U/LnRTChtB2A0z+Ukb 5Srw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=bBW0qX0AJhM8JIiKs/WpLgsjMW5bWB2usvOkJGZDXZI=; b=UT5gmpjuUY7Cb6RsoscHY/ir9LyAuNE+NfjHq8ZPN4cdBvvJ4zb+s1+2ONWCF2kwkL GJHLvCXOxdZSG3caUKcM5ar9yckZyNyPbS+oRG4rFuF6IUSyeOvo61ksZKW0c3mLhYl0 njnPdKnBejah7wXMBA/6qG0Xdi2apTodB8xuxmF7x40GiBm1WiaN1m2uMnxQ0Jx8PqIH 8E/6u/7um7/X5+w8lDModeU1CeCYUVXMSLgqteKRM57nW0lO+vxzh8xXKXFrCvxwC/KW kjM8Xpm0ohv431YBIAcZGvwDxrY6HLUnkmV9y7+FJLnzrG70V4GKANmeAhVfPNGDLH7n XbNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=X9Vi3/OW; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z16si12693352pgc.464.2018.03.07.22.59.12; Wed, 07 Mar 2018 22:59:12 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-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=@microsoft.com header.s=selector1 header.b=X9Vi3/OW; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755467AbeCHG7J (ORCPT + 10 others); Thu, 8 Mar 2018 01:59:09 -0500 Received: from mail-sn1nam02on0119.outbound.protection.outlook.com ([104.47.36.119]:9666 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935016AbeCHE5X (ORCPT ); Wed, 7 Mar 2018 23:57:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=bBW0qX0AJhM8JIiKs/WpLgsjMW5bWB2usvOkJGZDXZI=; b=X9Vi3/OWI16KF/waSINeTNUE+XKrUyX62BP04mOIKrHwc/USn67vPpavC0GmSsn/EwFVscZwtO2KSL1tw9m4WBndEdYYMSF0I70iGk8k0DkXrvUt60e619ym/iC9Pzt6NeUJhkMoBo0Epk14i+qASFSButAMhXo51u7Rs2TCGf4= Received: from DM5PR2101MB1032.namprd21.prod.outlook.com (52.132.128.13) by DM5PR2101MB1032.namprd21.prod.outlook.com (52.132.128.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.588.3; Thu, 8 Mar 2018 04:57:15 +0000 Received: from DM5PR2101MB1032.namprd21.prod.outlook.com ([fe80::8063:c68a:b210:7446]) by DM5PR2101MB1032.namprd21.prod.outlook.com ([fe80::8063:c68a:b210:7446%2]) with mapi id 15.20.0588.008; Thu, 8 Mar 2018 04:57:15 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Jerome Brunet , Michael Turquette , Sasha Levin Subject: [PATCH AUTOSEL for 4.15 57/78] clk: check ops pointer on clock register Thread-Topic: [PATCH AUTOSEL for 4.15 57/78] clk: check ops pointer on clock register Thread-Index: AQHTtpnQTrJ1Vkr7G0iBu3crD5F1UA== Date: Thu, 8 Mar 2018 04:56:26 +0000 Message-ID: <20180308045525.7662-57-alexander.levin@microsoft.com> References: <20180308045525.7662-1-alexander.levin@microsoft.com> In-Reply-To: <20180308045525.7662-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM5PR2101MB1032; 7:cDM3APL01bWvNBGFhHnCRsnr67P+VdF+pUurbeGsxF8aJsl349XQs/QXcuuRUoUjpggUcJSlW8fjcTGg1rSOGFMP15FHXUqzidlPEBR5hM9mT1/JI6DT9rbuZuZKlLmYyCCDwNcp5atq+i8DeYoDuH5rSQIwgh/82c00HoYThGf+mfYCOzckZpKtoE51QVorU0AeBpVbXrCJas37RRmvnDN1/X81vqVktPDihHDUiwDkfgPaR46loeUY8YYB8X/w; 20:RMHoWBi32+cQkPljq7ZZTzq2be216TbfuyJJ0z7WJ0VxadyG+cXiGauX4GlqNr6UJSozjtiJzuJw4ixrV1HyMcnLMS1yPCTUqATr9QrR12/FTGatXlS2hXPhvAJuh4JEA572DaiTxspRgusgjrhLNfY7ylYLDcJYUOkz/C+dAaM= x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 475bb599-dbb8-4678-1290-08d584b11034 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7193020); SRVR:DM5PR2101MB1032; x-ms-traffictypediagnostic: DM5PR2101MB1032: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(42068640409301); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(61425038)(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231220)(944501244)(52105095)(10201501046)(3002001)(6055026)(61426038)(61427038)(6041288)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR2101MB1032; BCL:0; PCL:0; RULEID:; SRVR:DM5PR2101MB1032; x-forefront-prvs: 060503E79B x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(376002)(39860400002)(39380400002)(366004)(396003)(199004)(189003)(97736004)(36756003)(8936002)(105586002)(2950100002)(2501003)(6666003)(186003)(8676002)(5250100002)(86362001)(2900100001)(3846002)(5660300001)(6116002)(10090500001)(2906002)(7736002)(22452003)(81156014)(26005)(6506007)(1076002)(102836004)(81166006)(305945005)(3280700002)(72206003)(110136005)(86612001)(54906003)(99286004)(10290500003)(316002)(107886003)(4326008)(25786009)(68736007)(6486002)(6436002)(6512007)(53936002)(76176011)(66066001)(3660700001)(478600001)(14454004)(106356001)(22906009)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR2101MB1032; H:DM5PR2101MB1032.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: YdfBn8UdSiKqSs3/sN+NkYIvOMtMvw9o4SYKTAHzWxdnGca26k8919QvSbt9g/CkyBNSM3O9Uz9UGOGR2yomjOpSHbvEuVjdKawsi6YT9f6z90zVbcCtFbNWZ1T+YQL67KUNZnDYgttw2q6hF1sHBDDLgBqtihvuGKURccgiaG7AoBLhc0R9ACpD0Y0IdJAxAUfilECF8P/dNBZ3azE3CDGLdvF61Coiv+4fT+9/kRtjqHd4Is5cTlDWoNnMiMJFdmTurPa32GOSVVh2tt/AMHWFceDl7nAxGGxDXPbr/i+sQoryMuXJD/wDoxryZAZMmYAZdwFUWxp/JsxkITIJ1g== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 475bb599-dbb8-4678-1290-08d584b11034 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2018 04:56:26.3933 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB1032 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jerome Brunet [ Upstream commit 29fd2a34ef8d863e48183bd473ba57c8d7839e25 ] Nothing really prevents a provider from (trying to) register a clock without providing the clock ops structure. We do check the individual fields before using them, but not the structure pointer itself. This may have the usual nasty consequences when the pointer is dereferenced, most likely when checking one the field during the initialization. This is fixed by returning an error on clock register if the ops pointer is NULL. Signed-off-by: Jerome Brunet Signed-off-by: Michael Turquette Link: lkml.kernel.org/r/20171219083329.24746-1-jbrunet@baylibre.com Signed-off-by: Sasha Levin --- drivers/clk/clk.c | 7 +++++++ 1 file changed, 7 insertions(+) -- 2.14.1 diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index b56c11f51baf..12180049a42a 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2684,7 +2684,13 @@ struct clk *clk_register(struct device *dev, struct clk_hw *hw) ret = -ENOMEM; goto fail_name; } + + if (WARN_ON(!hw->init->ops)) { + ret = -EINVAL; + goto fail_ops; + } core->ops = hw->init->ops; + if (dev && pm_runtime_enabled(dev)) core->dev = dev; if (dev && dev->driver) @@ -2746,6 +2752,7 @@ struct clk *clk_register(struct device *dev, struct clk_hw *hw) kfree_const(core->parent_names[i]); kfree(core->parent_names); fail_parent_names: +fail_ops: kfree_const(core->name); fail_name: kfree(core);