[PATCH] sbsa_gwdt: Calculate timeout with 64-bit math

Guenter Roeck linux at roeck-us.net
Sun Oct 29 10:00:54 PDT 2023


On 10/29/23 09:10, Wim Van Sebroeck wrote:
> Hi Guenter,
> 
>> On 10/14/23 02:12, Darren Hart wrote:
>>> On Tue, Sep 26, 2023 at 05:45:13AM -0700, Guenter Roeck wrote:
>>>> On Thu, Sep 21, 2023 at 02:02:36AM -0700, Darren Hart wrote:
>>>>> Commit abd3ac7902fb ("watchdog: sbsa: Support architecture version 1")
>>>>> introduced new timer math for watchdog revision 1 with the 48 bit offset
>>>>> register.
>>>>>
>>>>> The gwdt->clk and timeout are u32, but the argument being calculated is
>>>>> u64. Without a cast, the compiler performs u32 operations, truncating
>>>>> intermediate steps, resulting in incorrect values.
>>>>>
>>>>> A watchdog revision 1 implementation with a gwdt->clk of 1GHz and a
>>>>> timeout of 600s writes 3647256576 to the one shot watchdog instead of
>>>>> 300000000000, resulting in the watchdog firing in 3.6s instead of 600s.
>>>>>
>>>>> Force u64 math by casting the first argument (gwdt->clk) as a u64. Make
>>>>> the order of operations explicit with parenthesis.
>>>>>
>>>>> Fixes: abd3ac7902fb ("watchdog: sbsa: Support architecture version 1")
>>>>> Reported-by: Vanshidhar Konda <vanshikonda at os.amperecomputing.com>
>>>>> Signed-off-by: Darren Hart <darren at os.amperecomputing.com>
>>>>> Cc: Wim Van Sebroeck <wim at linux-watchdog.org>
>>>>> Cc: Guenter Roeck <linux at roeck-us.net>
>>>>> Cc: linux-watchdog at vger.kernel.org
>>>>> Cc: linux-kernel at vger.kernel.org
>>>>> Cc: linux-arm-kernel at lists.infradead.org
>>>>> Cc: <stable at vger.kernel.org> # 5.14.x
>>>>
>>>> Reviewed-by: Guenter Roeck <linux at roeck-us.net>
>>>
>>> Guenter or Wim, I haven't seen this land in the RCs or in next yet. Have
>>> you already picked it up? Anything more needed from me?
>>>
>>> Thanks,
>>>
>>
>> Sorry, I am suffering from what I can only describe as a severe case of
>> maintainer/reviewer PTSD, and I have yet to find a way of dealing with that.
> 
> I can imagine what it is like. And I do know that if you wouldn't have been there,
> that I would have allready stopped being a maintainer. So I hope you can find the
> right cooping mechanisms. I also had to work non-stop the last 4 to 5 weeks and it was hell.
> So I wish you all the best.
> 
> PS: picking up all patches that have your review-by tag on it as we speack.
> 

Thanks,
Guenter




More information about the linux-arm-kernel mailing list