Re: [PATCH v2] watchdog: iTCO_wdt: No need to stop the timer in probe

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

 



On 05.07.23 13:22, Jan Kiszka wrote:
> On 21.09.21 12:29, Mika Westerberg wrote:
>> The watchdog core can handle pinging of the watchdog before userspace
>> opens the device. For this reason instead of stopping the timer, just
>> mark it as running and let the watchdog core take care of it.
>>
>> Cc: Malin Jonsson <malin.jonsson@xxxxxxxxxxxx>
>> Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
>> ---
>> Changes from v1:
>>
>>  - Only set the WDOG_HW_RUNNING flag.
>>
>>  drivers/watchdog/iTCO_wdt.c | 13 +++++++++++--
>>  1 file changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c
>> index 643c6c2d0b72..a0e8ad3901a4 100644
>> --- a/drivers/watchdog/iTCO_wdt.c
>> +++ b/drivers/watchdog/iTCO_wdt.c
>> @@ -430,6 +430,16 @@ static unsigned int iTCO_wdt_get_timeleft(struct watchdog_device *wd_dev)
>>  	return time_left;
>>  }
>>  
>> +static void iTCO_wdt_set_running(struct iTCO_wdt_private *p)
>> +{
>> +	u16 val;
>> +
>> +	/* Bit 11: TCO Timer Halt -> 0 = The TCO timer is * enabled */
>> +	val = inw(TCO1_CNT(p));
>> +	if (!(val & BIT(11)))
>> +		set_bit(WDOG_HW_RUNNING, &p->wddev.status);
>> +}
>> +
>>  /*
>>   *	Kernel Interfaces
>>   */
>> @@ -572,8 +582,7 @@ static int iTCO_wdt_probe(struct platform_device *pdev)
>>  	watchdog_set_drvdata(&p->wddev, p);
>>  	platform_set_drvdata(pdev, p);
>>  
>> -	/* Make sure the watchdog is not running */
>> -	iTCO_wdt_stop(&p->wddev);
>> +	iTCO_wdt_set_running(p);
>>  
>>  	/* Check that the heartbeat value is within it's range;
>>  	   if not reset to the default */
> 
> This turned out to be not just a cleanup, it's a fix for
> watchdog.handle_boot_enabled=0 as well. The issue is subtle, but this
> fix is critical when trying to establish monitoring for unattended early
> boot (OTA update scenarios). Can we still get this into stable trees,
> along with [1] then? I've tested these two over 5.10 so far, can look
> into older ones as well.
> 
> Jan
> 
> [1]
> https://patchwork.kernel.org/project/linux-watchdog/patch/20221028062750.45451-1-mika.westerberg@xxxxxxxxxxxxxxx/
> 

Any opinions about this?

Jan

-- 
Siemens AG, Technology
Competence Center Embedded Linux




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux