Received: by 10.213.65.68 with SMTP id h4csp33189imn; Mon, 19 Mar 2018 18:36:28 -0700 (PDT) X-Google-Smtp-Source: AG47ELtdmJdXOJ1nMRqQti0V5rUsvUkiWr/fUlvWOOVDers3Kve9enrpW81aj4GWEAbTYyTstDtB X-Received: by 2002:a17:902:143:: with SMTP id 61-v6mr14724755plb.345.1521509787990; Mon, 19 Mar 2018 18:36:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521509787; cv=none; d=google.com; s=arc-20160816; b=bgMqyUWhQ0e0ODnxiLh3dQpi/cVf9KntI68KeezoY59oFk8Ul0jhNfFCHi3bT6kyWn j8kR9i3JnNUBjQXu2qofXdf5Tc+ycoJn4BzoFU23vOupYqbzYE7QgjNDrVrXGfnb5ETZ un01TxAXQRWL9LDCWHDxcM/2AG18+RKIP+OR3DIumzw1voDMD7jBsIVTjAUr4VdjbWFv FDUSFmj8CT58w4w/VQwHjhtd5FrTkRPLb358CmXCQqm55uRtFED5MhCj3bzk5JCXgSdH U7I/hqxPVSzL6QLDXjAQCTY/KOHR6OquowfLTkJoil9ogbLyxlBu0PBRGX+cuG+6kMpZ TFzg== 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=HdQuuPXn7LpTPS6vgUiXmtqpoDsqGTvVAjfm3F4WQX8=; b=d+BTBDA7E+0vGWlxzREf965CKvJxb1vj9rzNjpZW7ewRBXmnpFY+9lHdx64L0imcST /BKscKdAU1xa1ELjb0HPgYdvy6/2nbXMfBGkjimo+3HNAxamsyjlA0w0EDvvMnv8YJUq jIiZEHr05tXXhJdMGglPU03TXKP90QOMVYys1YRglkNvpDkKZvevWlQqv1ls0wqpMiZN QTC6EM5Q4XaEsMHB2s6UJKR3k3cBim1b5NNuGKm6hpUwIeHljLl7+/UybuWZopNSi06U 2pQHsANkMnVTTVBogiT9kbs3wNfYKxT8bcYqe6jtl8IHnKeAcymk+td7YXpSiPYpQ3E6 9eRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=C40X6ABN; 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; 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 g92-v6si495111plg.256.2018.03.19.18.36.14; Mon, 19 Mar 2018 18:36:27 -0700 (PDT) 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=@microsoft.com header.s=selector1 header.b=C40X6ABN; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966515AbeCSQJs (ORCPT + 99 others); Mon, 19 Mar 2018 12:09:48 -0400 Received: from mail-sn1nam01on0111.outbound.protection.outlook.com ([104.47.32.111]:20373 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S966394AbeCSQJI (ORCPT ); Mon, 19 Mar 2018 12:09:08 -0400 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=HdQuuPXn7LpTPS6vgUiXmtqpoDsqGTvVAjfm3F4WQX8=; b=C40X6ABNkCbMKOjxNDgIKn6rNKISgIeq4jPouywG4fL3+pWLoIPBKBPURuCPHpE6EzWT9tz04PtXI/b7a/gTX0Bpw5PB+nnbnUorExK/5DWS7ybXzRgh5GDNEm1KJFnD6tJi462t+B6CIQ9JRGYvW23EXTLycGMyWzX3XwwXrCc= Received: from DM5PR2101MB1032.namprd21.prod.outlook.com (52.132.128.13) by DM5PR2101MB0902.namprd21.prod.outlook.com (52.132.132.159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.631.0; Mon, 19 Mar 2018 16:09:05 +0000 Received: from DM5PR2101MB1032.namprd21.prod.outlook.com ([fe80::3d9b:79e7:94eb:5d62]) by DM5PR2101MB1032.namprd21.prod.outlook.com ([fe80::3d9b:79e7:94eb:5d62%5]) with mapi id 15.20.0631.004; Mon, 19 Mar 2018 16:09:05 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Yi Zeng , Zhang Rui , Sasha Levin Subject: [PATCH AUTOSEL for 4.4 083/167] thermal: power_allocator: fix one race condition issue for thermal_instances list Thread-Topic: [PATCH AUTOSEL for 4.4 083/167] thermal: power_allocator: fix one race condition issue for thermal_instances list Thread-Index: AQHTv5xTgR9uug1u/EyleCDVXprv5A== Date: Mon, 19 Mar 2018 16:07:06 +0000 Message-ID: <20180319160513.16384-83-alexander.levin@microsoft.com> References: <20180319160513.16384-1-alexander.levin@microsoft.com> In-Reply-To: <20180319160513.16384-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;DM5PR2101MB0902;7:F30KcN3JKOD/VsKuOQqtnNtxW0a8XX3ve4Jany36g6i9yvz+5gtHDDtNgu2OqDkkOk7NKcEET+kqVItHtbexBNYmQV/6INVIlLgzzx0ok+ub+j0oLeVv6diNqm25SRzGlPDkL5Q9Jhzw/yWz+gl55SOj77Pn2o2uhs6aK9Bik92ODKAeBpK0PMc63nyCjDYK7b0/DdVTalvuT6lTmdmjUoJk5yLrlSIr4ZjHxndKdpQ2GsnhT9MQtYSqiOhf7U5m;20:OzjgXeNrpP30N5D0bYW8DDsDSFWPXx5A9/9uYwnUWjpZ6/LTNJlLC5XPqomzqiHFjjhL/+NUBySDTpZ6/kKhHwLlSFU5VLgVZHQ0EhLNtMh1sA+/fyskTK+LeuU42u5QX05XFKE3PiUSyINgHUswdbqb4XrJrUeBHL8y/nOAir4= x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 12f01040-eabd-441f-29ce-08d58db3bd4f x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7193020);SRVR:DM5PR2101MB0902; x-ms-traffictypediagnostic: DM5PR2101MB0902: 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)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040522)(2401047)(5005006)(8121501046)(3231221)(944501300)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(61426038)(61427038)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123564045)(20161123558120)(6072148)(201708071742011);SRVR:DM5PR2101MB0902;BCL:0;PCL:0;RULEID:;SRVR:DM5PR2101MB0902; x-forefront-prvs: 06167FAD59 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(346002)(366004)(39860400002)(396003)(39380400002)(376002)(199004)(189003)(51234002)(4326008)(305945005)(7736002)(66066001)(105586002)(316002)(8676002)(25786009)(8936002)(2950100002)(5660300001)(97736004)(81166006)(81156014)(3280700002)(22452003)(99286004)(186003)(2906002)(76176011)(5250100002)(59450400001)(54906003)(10090500001)(110136005)(6116002)(2900100001)(3846002)(2501003)(1076002)(86612001)(107886003)(106356001)(6436002)(6512007)(575784001)(86362001)(53936002)(6506007)(6486002)(26005)(14454004)(10290500003)(102836004)(68736007)(3660700001)(478600001)(72206003)(36756003)(22906009)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR2101MB0902;H:DM5PR2101MB1032.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 0Lhpk3vrKM1iElkGelUQyUGt8cWB718+05ivBxJk2Qju2lGUl3zLHpomlYvWSmtQqO7TnV0/pSEkPFUN9VVwasjfPtkxzCxYnnUh1+xgNt1iY7BPu5BQILvtJbYbJR/KegnJGA9i6HMGVuIVNIsqur4G+Hxb+x6TVMC2M8JcT0f5GiqFNKMRzjslGkIu02I+59qPNLqYgAO5UE3HGvZHAWyxGAzJR1RckPDDR61cbktTZCrgI1EEWCCFh9iCRfA56wersZeFwYF0WWDvr6bSHK9ySOmlDm+3majo+1Exa2TVY65zxc5bRjPF6PVVtiAQHgDiOkn1bFsb+JrC/cERVQ== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12f01040-eabd-441f-29ce-08d58db3bd4f X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2018 16:07:06.2100 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB0902 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yi Zeng [ Upstream commit a5de11d67dcd268b8d0beb73dc374de5e97f0caf ] When invoking allow_maximum_power and traverse tz->thermal_instances, we should grab thermal_zone_device->lock to avoid race condition. For example, during the system reboot, if the mali GPU device implements device shutdown callback and unregister GPU devfreq cooling device, the deleted list head may be accessed to cause panic, as the following log shows: [ 33.551070] c3 25 (kworker/3:0) Unable to handle kernel paging request a= t virtual address dead000000000070 [ 33.566708] c3 25 (kworker/3:0) pgd =3D ffffffc0ed290000 [ 33.572071] c3 25 (kworker/3:0) [dead000000000070] *pgd=3D00000001ed2920= 03, *pud=3D00000001ed292003, *pmd=3D0000000000000000 [ 33.581515] c3 25 (kworker/3:0) Internal error: Oops: 96000004 [#1] PREE= MPT SMP [ 33.599761] c3 25 (kworker/3:0) CPU: 3 PID: 25 Comm: kworker/3:0 Not tai= nted 4.4.35+ #912 [ 33.614137] c3 25 (kworker/3:0) Workqueue: events_freezable thermal_zone= _device_check [ 33.620245] c3 25 (kworker/3:0) task: ffffffc0f32e4200 ti: ffffffc0f32f0= 000 task.ti: ffffffc0f32f0000 [ 33.629466] c3 25 (kworker/3:0) PC is at power_allocator_throttle+0x7c8/= 0x8a4 [ 33.636609] c3 25 (kworker/3:0) LR is at power_allocator_throttle+0x808/= 0x8a4 [ 33.643742] c3 25 (kworker/3:0) pc : [] lr : [] pstate: 20000145 [ 33.652874] c3 25 (kworker/3:0) sp : ffffffc0f32f3bb0 [ 34.468519] c3 25 (kworker/3:0) Process kworker/3:0 (pid: 25, stack limi= t =3D 0xffffffc0f32f0020) [ 34.477220] c3 25 (kworker/3:0) Stack: (0xffffffc0f32f3bb0 to 0xffffffc0= f32f4000) [ 34.819822] c3 25 (kworker/3:0) Call trace: [ 34.824021] c3 25 (kworker/3:0) Exception stack(0xffffffc0f32f39c0 to 0x= ffffffc0f32f3af0) [ 34.924993] c3 25 (kworker/3:0) [] power_allocator_thr= ottle+0x7c8/0x8a4 [ 34.933184] c3 25 (kworker/3:0) [] handle_thermal_trip= .part.25+0x70/0x224 [ 34.941545] c3 25 (kworker/3:0) [] thermal_zone_device= _update+0xc0/0x20c [ 34.949818] c3 25 (kworker/3:0) [] thermal_zone_device= _check+0x20/0x2c [ 34.957924] c3 25 (kworker/3:0) [] process_one_work+0x= 168/0x458 [ 34.965414] c3 25 (kworker/3:0) [] worker_thread+0x13c= /0x4b4 [ 34.972650] c3 25 (kworker/3:0) [] kthread+0xe8/0xfc [ 34.979187] c3 25 (kworker/3:0) [] ret_from_fork+0x10/= 0x40 [ 34.986244] c3 25 (kworker/3:0) Code: f9405e73 eb1302bf d102e273 54ffc46= 0 (b9402a61) [ 34.994339] c3 25 (kworker/3:0) ---[ end trace 32057901e3b7e1db ]--- Signed-off-by: Yi Zeng Signed-off-by: Zhang Rui Signed-off-by: Sasha Levin --- drivers/thermal/power_allocator.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/thermal/power_allocator.c b/drivers/thermal/power_allo= cator.c index 1246aa6fcab0..737635f0bec0 100644 --- a/drivers/thermal/power_allocator.c +++ b/drivers/thermal/power_allocator.c @@ -523,6 +523,7 @@ static void allow_maximum_power(struct thermal_zone_dev= ice *tz) struct thermal_instance *instance; struct power_allocator_params *params =3D tz->governor_data; =20 + mutex_lock(&tz->lock); list_for_each_entry(instance, &tz->thermal_instances, tz_node) { if ((instance->trip !=3D params->trip_max_desired_temperature) || (!cdev_is_power_actor(instance->cdev))) @@ -532,6 +533,7 @@ static void allow_maximum_power(struct thermal_zone_dev= ice *tz) instance->cdev->updated =3D false; thermal_cdev_update(instance->cdev); } + mutex_unlock(&tz->lock); } =20 /** --=20 2.14.1