Received: by 2002:a05:7412:6592:b0:d7:7d3a:4fe2 with SMTP id m18csp1125224rdg; Fri, 11 Aug 2023 10:26:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEdcqKN20+UG1pNkGJR/SdhU+ivEHoSMNHUapr50NKKuklpjyXL59bM9svVppz9DU1/+uK6 X-Received: by 2002:a17:902:ea03:b0:1bc:4f77:e34f with SMTP id s3-20020a170902ea0300b001bc4f77e34fmr3123051plg.27.1691774814406; Fri, 11 Aug 2023 10:26:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691774814; cv=none; d=google.com; s=arc-20160816; b=GDtbjGomtoAK58CSj4jqgxSNPdFjz0jlZ7pAKfsmzsdQ0F+Hrs1Qmz7RSCujLfASwY bt7m/zmjiG3fGL/VQ/AU1Ge80i+Q44+jLzlFnpevHNFK2INwgPX64dFaaYYk0/dyleE0 SbcsWBj47S0FWPXqdNY1Q0xA9rPzKULSPb+/yd5beJuCoS9fJ1wE5AtIWqmR0dSBSSwB UKSPTUCXY/9HxXbIG214hF82bg+eN4J/mew6KeNxO3lDLDy1/c15XcIbdM2UDFg7bAIr 26C5bLgfgVZ7xF60gT9AuutSXwht0gg+ItMG0fr3vAvaJO4ZiY0wS5VmKCmEmV5i+DAt T8yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version; bh=uGRMWW6Lx+iMNRU6Skhjhk+WYh5c/2J74yDLp7c2U9c=; fh=3ERrpUiBAnkV8VDz5QUlUpCn0pkCmTLY8Vr67tbYADk=; b=CUpuKrW7qKhpM6cMpqujQnQU4z96I1MP2Qckd2mw6/qQ+NziOzVvVpzbs+r3f9O6kj Li451JYl1yewJMfxZP2zvLXK/hvwEQTV+Rstd6a4+R/OdjntV9EktQG1Wuu/YiUawzZu ehaOBLo39kKhlGwvsftIeb2ze7BmH8ZPvcpHdLPgPa2CFoGohiY1Va9i/J0/ka+dWdFN 1a2CldwVJBSU0fYW7Htyw1jgQu5Y/6moJwSV1R8s0Td5ZOUvB8ZjUCLFWHnp3q7WOn40 YHeKKsLMtLaPxMEcmHRetmg7ubmL6lBdUV8Sxv2nz4p+x1ITcgn5qyYy8np4qm1JxPLl c4wg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c14-20020a170903234e00b001b569049666si3748105plh.617.2023.08.11.10.26.02; Fri, 11 Aug 2023 10:26:54 -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; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234775AbjHKQzd convert rfc822-to-8bit (ORCPT + 99 others); Fri, 11 Aug 2023 12:55:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233761AbjHKQzb (ORCPT ); Fri, 11 Aug 2023 12:55:31 -0400 Received: from mail-oo1-f47.google.com (mail-oo1-f47.google.com [209.85.161.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1BB02D7D; Fri, 11 Aug 2023 09:55:31 -0700 (PDT) Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-56d75fb64a6so415411eaf.0; Fri, 11 Aug 2023 09:55:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691772931; x=1692377731; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LTQqkkPYcIfD6dJJByzooT8UPz1lJcIxZqzAyRvmCqI=; b=HKJUEmbOQY8wgPsjB3lY6WRDW6v9FAfseYr58ZtYjhY506ozMkOdXBe+sKfEM+zg+W RqycZ0LBvBR9pe4ms17GSTfW1rINvASkPAenajuVqlx4FDh/wd37e8vU+C8UQjPJdQQ9 O5CBcd2hB4uuEtauTb1UhnCH0GUBmU9yS3YynkiolWONUPkkeK0SAedchSMV8/hyse4E jlhwydJ0JDJhaTZ+8vLrWHfbhz9Li1cGDyt54lREtqhf5Y4xXswvWzmY+zBoTVpGTdhx 6m4yJ6SuCcpL2cIk1VkqHuUjHurG+P40BES/aVNPowwOw6egRi/uNAkeOPcsPXfR55jp dj0Q== X-Gm-Message-State: AOJu0YwTRkAVhSeuBISjgf15uP30VOpGVqHX5e15fGs1GWJKtP2tGnqN a717iKsGIxCxnUWQPzSQnyReXnsiCdx84dU03FbCVQR4ZZQ= X-Received: by 2002:a05:6820:1ace:b0:560:b01a:653d with SMTP id bu14-20020a0568201ace00b00560b01a653dmr2308895oob.0.1691772930921; Fri, 11 Aug 2023 09:55:30 -0700 (PDT) MIME-Version: 1.0 References: <20230811084523.1689671-1-rui.zhang@intel.com> In-Reply-To: <20230811084523.1689671-1-rui.zhang@intel.com> From: "Rafael J. Wysocki" Date: Fri, 11 Aug 2023 18:55:19 +0200 Message-ID: Subject: Re: [PATCH] thermal: intel: intel_soc_dts_iosf: Fix thermal_zone removal To: Zhang Rui Cc: rafael.j.wysocki@intel.com, daniel.lezcano@linaro.or, srinivas.pandruvada@intel.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, 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 On Fri, Aug 11, 2023 at 10:45 AM Zhang Rui wrote: > > All of the existing callers of remove_dts_thermal_zone() pass a valid > pointer as the argument, so checking for the NULL pointer is redundant. True. > Plus, when calling remove_dts_thermal_zone() from > intel_soc_dts_iosf_init(), it is possible that > 1. dts->tzone is an error pointer, when the sensor fails to be > registered as a valid thermal zone > 2. dts->tzone is unregistered in add_dts_thermal_zone(), when some > failure occurs after thermal zone registered > In both cases, there is no need to unregister dts->tzone in > remove_dts_thermal_zone(). > > Clear dst->tzone when add_dts_thermal_zone() fails. And do thermal zone > removal in remove_dts_thermal_zone() only when dts->tzone is set. Well, I'm not sure. thermal_zone_device_unregister() will do nothing if the thermal zone is not really registered AFAICS and it is prudent to restore SOC_DTS_OFFSET_ENABLE on failure IMO. > Signed-off-by: Zhang Rui > --- > drivers/thermal/intel/intel_soc_dts_iosf.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/thermal/intel/intel_soc_dts_iosf.c b/drivers/thermal/intel/intel_soc_dts_iosf.c > index 7a66d0f077b0..c5203ba8f0b9 100644 > --- a/drivers/thermal/intel/intel_soc_dts_iosf.c > +++ b/drivers/thermal/intel/intel_soc_dts_iosf.c > @@ -212,7 +212,7 @@ static int soc_dts_enable(int id) > > static void remove_dts_thermal_zone(struct intel_soc_dts_sensor_entry *dts) > { > - if (dts) { > + if (dts->tzone) { > iosf_mbi_write(BT_MBI_UNIT_PMC, MBI_REG_WRITE, > SOC_DTS_OFFSET_ENABLE, dts->store_status); > thermal_zone_device_unregister(dts->tzone); > @@ -277,6 +277,7 @@ static int add_dts_thermal_zone(int id, struct intel_soc_dts_sensor_entry *dts, > err_enable: > thermal_zone_device_unregister(dts->tzone); > err_ret: > + dts->tzone = NULL; > return ret; > } > > -- > 2.34.1 >