From patchwork Mon Oct 17 13:09:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 3450 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp1439283wrs; Mon, 17 Oct 2022 06:11:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5Ug4Q+D9R17bd7yUqKOmbUh687Wem392yy3k53fW0kZ6mkcKEY6Dk77h+6rs6ScBU19FI2 X-Received: by 2002:a17:902:eecc:b0:17f:624e:8af2 with SMTP id h12-20020a170902eecc00b0017f624e8af2mr12033886plb.152.1666012310881; Mon, 17 Oct 2022 06:11:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666012310; cv=none; d=google.com; s=arc-20160816; b=Z8Qq3tIky6KDfxFXBO8x53xs2WNAWQm3ULUwjudhMlGgwrAXHVUYbdKHk0Qf3kQBKR 8eEJScSCWWExvTjl042k1o05QVDcFvrfgLfxpXQ3HbTpwjGUhgDk+oRUQByCg7VbJleP aghHliNnm4meNLB8A0oQDmcoSiJ0W2c2pWHfidC1377tKU84hcxXsl22CZj4WGbiM2Lb rfAoMBe98DiG5lKFRwlJqEduGUHuOkpKSL76d3rM46B8zJq2TdEeaGORgjVUEMRQbqy8 jXskT/Mdt6QGjjfkxmwLeLcanqCNBJnBX5VWrm4hvo8u7SJxtC9lT+I+39O2UGTxpfv7 0/QQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :dkim-signature; bh=BwRejXer5Ur/UoCRRVie9rgEWzLwsDyLLE/R9VX6Lfg=; b=PSIq0ogJxY7WksOJYecId8b19qeBxxljI2uk0UE9PBjrTGRmRwcrzSyvvXVpaxhx/I avHrW6jC4Gg7muQzUJHssqIz9uFj07Tj2KXkBLj3xnimZYdUYEm6xKU3/yIadkCSz0pA Wtr8lgryeYZ7g9hD05pEH4xzt6TNjaGblmn0duw1BIR4hPgLpgwn/jzjR1b1Np0OmtpR FizxSijyRfcso29Um4LZKoaY+/vmPAHAmYfzq1XIHF4wA+m1RpNdNZ7T+Wn3XqEPedIV Scjt+P9Y4yaBFuKJZbeO5YCCcepgycfQsSdHRrf1uDK8cvus45zqx9uS2SLuO+cKjdfG IAUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=NqU8PvVs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k190-20020a6384c7000000b0045fd1d35d83si11478154pgd.795.2022.10.17.06.11.35; Mon, 17 Oct 2022 06:11:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=NqU8PvVs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231153AbiJQNKL (ORCPT + 99 others); Mon, 17 Oct 2022 09:10:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230313AbiJQNJj (ORCPT ); Mon, 17 Oct 2022 09:09:39 -0400 Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com [IPv6:2607:f8b0:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21EDE9FDC; Mon, 17 Oct 2022 06:09:27 -0700 (PDT) Received: by mail-ot1-x32e.google.com with SMTP id cb2-20020a056830618200b00661b6e5dcd8so5739070otb.8; Mon, 17 Oct 2022 06:09:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=BwRejXer5Ur/UoCRRVie9rgEWzLwsDyLLE/R9VX6Lfg=; b=NqU8PvVseFrjUduslOpG55OpX156OcwaqAIKEcPUs7QDawFmImH0oWY2PhNbZb8+ym imH1qx6uQSX7oLKheirQpKNa5H46dFnFvGBw7YbQXRdo5x0+vcVH131mIj1HgF1OFQHS ACxH1PHJNRxdAZ/z5k1vB1BRTGPbzxz2mDSUz77gXnxVKPuep722RZ76DnHn5Rs8E+BZ 1tr+SxiZtChqgALmebo++LZiPa9ep5DJ2Ax9Yifomt+ey55K0rrkbid7exZ3Em1pfvDY E82DX76B6DnL+wbkIVgmO3iEP1rTz7Z6XJ3UO6Bsd8lDR5mN9liiGzsVWoX13rKvkwZb Vc1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BwRejXer5Ur/UoCRRVie9rgEWzLwsDyLLE/R9VX6Lfg=; b=dk9c6iWIuDLEYP7MVx+wOSBX0JxsZJs2RFBv7fqZGwCyDxnWe98H8Rs0K7hS58lgkk kWXInTg+0LKvydu+vbGef0GOVfuWyA6c71iGI7JY9k6zaK0eRkqLkjC9kP1R7qvjiVJ8 vWjI93TtazESoTj1/6/YnJNJ+unW0bw1F6wiaeDHiTC7GCQ/V4js3E+tL9H6e+s47ckA so3zYryCy2/nUIH/a+iGW3M3uOMNdDsfrnjeMcvwsyAwUX8RMyKyctRyqr2JheMpNuZ5 T4wnTX2yhhfTAwCBKARm7QkdeRdDziiijyMTih5EnZi/H0HkbnMjV3rCizX7v/vxopbC 2NkQ== X-Gm-Message-State: ACrzQf1pKl1ynmjJhDvosiU9Qh6ZJEEKfNJCBllXAZQO15tNA4XD+qg3 2h9mluhlYP0UbHaQcra/vnU= X-Received: by 2002:a05:6830:660c:b0:661:a38c:a1f9 with SMTP id cp12-20020a056830660c00b00661a38ca1f9mr4819013otb.238.1666012166409; Mon, 17 Oct 2022 06:09:26 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id l20-20020a0568301d7400b00661a3f4113bsm4649136oti.64.2022.10.17.06.09.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 06:09:26 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: "Rafael J . Wysocki" Cc: Daniel Lezcano , Amit Kucheria , Zhang Rui , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Guenter Roeck Subject: [PATCH 9/9] thermal/core: Protect thermal device operations against thermal device removal Date: Mon, 17 Oct 2022 06:09:10 -0700 Message-Id: <20221017130910.2307118-10-linux@roeck-us.net> X-Mailer: git-send-email 2.36.2 In-Reply-To: <20221017130910.2307118-1-linux@roeck-us.net> References: <20221017130910.2307118-1-linux@roeck-us.net> MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746940524549289232?= X-GMAIL-MSGID: =?utf-8?q?1746940524549289232?= Thermal device operations may be called after thermal zone device removal. After thermal zone device removal, thermal zond device operations must no longer be called. To prevent such calls from happening, ensure that the thermal device is registered before executing any thermal device operations. Signed-off-by: Guenter Roeck --- drivers/thermal/thermal_core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index b8e3b262b2bd..aa0107f11c98 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -203,6 +203,9 @@ int thermal_zone_device_set_policy(struct thermal_zone_device *tz, mutex_lock(&thermal_governor_lock); mutex_lock(&tz->lock); + if (!device_is_registered(&tz->device)) + goto exit; + gov = __find_governor(strim(policy)); if (!gov) goto exit; @@ -445,6 +448,12 @@ static int thermal_zone_device_set_mode(struct thermal_zone_device *tz, return ret; } + if (!device_is_registered(&tz->device)) { + mutex_unlock(&tz->lock); + + return -ENODEV; + } + if (tz->ops->change_mode) ret = tz->ops->change_mode(tz, mode); @@ -486,7 +495,8 @@ void thermal_zone_device_update(struct thermal_zone_device *tz, enum thermal_notify_event event) { mutex_lock(&tz->lock); - __thermal_zone_device_update(tz, event); + if (device_is_registered(&tz->device)) + __thermal_zone_device_update(tz, event); mutex_unlock(&tz->lock); } EXPORT_SYMBOL_GPL(thermal_zone_device_update);