Search Linux Wireless

Re: [PATCH] thermal: adding check if the thermal firmware is running

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 5/17/24 13:25, Guilherme Giácomo Simões wrote:
Em sex., 17 de mai. de 2024 às 13:57, Jonathan Bither
<jonbither@xxxxxxxxx> escreveu:

On 5/17/24 10:16, Guilherme Giacomo Simoes wrote:
In the dmesg is showing the message "failed to read out thermal zone"
as if the temperature read is failed by don't find the thermal zone.

After researching and debugging, I see that this specific error is
occurrenced because the thermal try read the temperature when is started,
but the firmware is not running yet.

For more legibiliti i change the tt.c for return EAGAIN when this was occurrence.
After this change, in my computer I compile and install kernel in /boot
and in my dmesg the message "failed to read out thermal zone" is not show
any more.

I would like to thanks for Rafael Wysocki <refael.j.wysocki@xxxxxxxxx> for
your suggestions in mu first patch that results in this another patch.
---
   drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 10 ++++++++--
   1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
index 8083c4b2ab6b..68ab9966330c 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
@@ -620,8 +620,14 @@ static int iwl_mvm_tzone_get_temp(struct thermal_zone_device *device,

       mutex_lock(&mvm->mutex);

-     if (!iwl_mvm_firmware_running(mvm) ||
-         mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
+     const int res = iwl_mvm_firmware_running(mvm);
+
+     if (!res) {
+             ret = -EAGAIN;
+             goto out;
+     }
+
You could skip using the res variable and move the mutex lock here and
simplify the above a bit. Ex:

          int temp;

-       mutex_lock(&mvm->mutex);
+       if (!iwl_mvm_firmware_running(mvm))
+               return -EAGAIN;

-       if (!iwl_mvm_firmware_running(mvm) ||
-           mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
+       mutex_lock(&mvm->mutex);
+       if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
                  ret = -ENODATA;
                  goto out;
          }

+     if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
               ret = -ENODATA;
               goto out;
       }
Hey Jonathan, Thank you for your suggestion.
I sended a v2 patch of this patch
https://patchwork.kernel.org/project/linux-wireless/patch/20240517171311.3705-1-trintaeoitogc@xxxxxxxxx/

If you want, you can send this suggestion in this patch v2.
Hey Guilherme, no worries.

Thanks.




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux