* [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion
@ 2025-01-30 19:26 Easwar Hariharan
2025-01-31 7:06 ` Jiri Slaby
2025-01-31 8:43 ` [tip: timers/urgent] jiffies: Cast to unsigned long in " tip-bot2 for Easwar Hariharan
0 siblings, 2 replies; 6+ messages in thread
From: Easwar Hariharan @ 2025-01-30 19:26 UTC (permalink / raw)
To: Thomas Gleixner, Anna-Maria Behnsen, Easwar Hariharan,
Geert Uytterhoeven, Luiz Augusto von Dentz, Miguel Ojeda,
open list
Cc: stable, Andrew Morton, kernel test robot
While converting users of msecs_to_jiffies(), lkp reported that some
range checks would always be true because of the mismatch between the
implied int value of secs_to_jiffies() vs the unsigned long
return value of the msecs_to_jiffies() calls it was replacing. Fix this
by casting secs_to_jiffies() values as unsigned long.
Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()")
CC: stable@vger.kernel.org # 6.13+
CC: Andrew Morton <akpm@linux-foundation.org>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR-lkp@intel.com/
Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
---
include/linux/jiffies.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
index ed945f42e064..0ea8c9887429 100644
--- a/include/linux/jiffies.h
+++ b/include/linux/jiffies.h
@@ -537,7 +537,7 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m)
*
* Return: jiffies value
*/
-#define secs_to_jiffies(_secs) ((_secs) * HZ)
+#define secs_to_jiffies(_secs) (unsigned long)((_secs) * HZ)
extern unsigned long __usecs_to_jiffies(const unsigned int u);
#if !(USEC_PER_SEC % HZ)
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion 2025-01-30 19:26 [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion Easwar Hariharan @ 2025-01-31 7:06 ` Jiri Slaby 2025-01-31 8:30 ` Thomas Gleixner 2025-01-31 8:43 ` [tip: timers/urgent] jiffies: Cast to unsigned long in " tip-bot2 for Easwar Hariharan 1 sibling, 1 reply; 6+ messages in thread From: Jiri Slaby @ 2025-01-31 7:06 UTC (permalink / raw) To: Easwar Hariharan, Thomas Gleixner, Anna-Maria Behnsen, Geert Uytterhoeven, Luiz Augusto von Dentz, Miguel Ojeda, open list Cc: stable, Andrew Morton, kernel test robot On 30. 01. 25, 20:26, Easwar Hariharan wrote: > While converting users of msecs_to_jiffies(), lkp reported that some > range checks would always be true because of the mismatch between the > implied int value of secs_to_jiffies() vs the unsigned long > return value of the msecs_to_jiffies() calls it was replacing. Fix this > by casting secs_to_jiffies() values as unsigned long. > > Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()") > CC: stable@vger.kernel.org # 6.13+ > CC: Andrew Morton <akpm@linux-foundation.org> > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR-lkp@intel.com/ > Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com> > --- > include/linux/jiffies.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h > index ed945f42e064..0ea8c9887429 100644 > --- a/include/linux/jiffies.h > +++ b/include/linux/jiffies.h > @@ -537,7 +537,7 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m) > * > * Return: jiffies value > */ > -#define secs_to_jiffies(_secs) ((_secs) * HZ) > +#define secs_to_jiffies(_secs) (unsigned long)((_secs) * HZ) Could you just switch the fun to an inline instead? -- js suse labs ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion 2025-01-31 7:06 ` Jiri Slaby @ 2025-01-31 8:30 ` Thomas Gleixner 2025-01-31 8:52 ` Jiri Slaby 0 siblings, 1 reply; 6+ messages in thread From: Thomas Gleixner @ 2025-01-31 8:30 UTC (permalink / raw) To: Jiri Slaby, Easwar Hariharan, Anna-Maria Behnsen, Geert Uytterhoeven, Luiz Augusto von Dentz, Miguel Ojeda, open list Cc: stable, Andrew Morton, kernel test robot On Fri, Jan 31 2025 at 08:06, Jiri Slaby wrote: > On 30. 01. 25, 20:26, Easwar Hariharan wrote: >> While converting users of msecs_to_jiffies(), lkp reported that some >> range checks would always be true because of the mismatch between the >> implied int value of secs_to_jiffies() vs the unsigned long >> return value of the msecs_to_jiffies() calls it was replacing. Fix this >> by casting secs_to_jiffies() values as unsigned long. >> >> Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()") >> CC: stable@vger.kernel.org # 6.13+ >> CC: Andrew Morton <akpm@linux-foundation.org> >> Reported-by: kernel test robot <lkp@intel.com> >> Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR-lkp@intel.com/ >> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com> >> --- >> include/linux/jiffies.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h >> index ed945f42e064..0ea8c9887429 100644 >> --- a/include/linux/jiffies.h >> +++ b/include/linux/jiffies.h >> @@ -537,7 +537,7 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m) >> * >> * Return: jiffies value >> */ >> -#define secs_to_jiffies(_secs) ((_secs) * HZ) >> +#define secs_to_jiffies(_secs) (unsigned long)((_secs) * HZ) > > Could you just switch the fun to an inline instead? It's a macro so it can be used in static initializers. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion 2025-01-31 8:30 ` Thomas Gleixner @ 2025-01-31 8:52 ` Jiri Slaby 2025-01-31 17:52 ` Easwar Hariharan 0 siblings, 1 reply; 6+ messages in thread From: Jiri Slaby @ 2025-01-31 8:52 UTC (permalink / raw) To: Thomas Gleixner, Easwar Hariharan, Anna-Maria Behnsen, Geert Uytterhoeven, Luiz Augusto von Dentz, Miguel Ojeda, open list Cc: stable, Andrew Morton, kernel test robot On 31. 01. 25, 9:30, Thomas Gleixner wrote: > On Fri, Jan 31 2025 at 08:06, Jiri Slaby wrote: >> On 30. 01. 25, 20:26, Easwar Hariharan wrote: >>> While converting users of msecs_to_jiffies(), lkp reported that some >>> range checks would always be true because of the mismatch between the >>> implied int value of secs_to_jiffies() vs the unsigned long >>> return value of the msecs_to_jiffies() calls it was replacing. Fix this >>> by casting secs_to_jiffies() values as unsigned long. >>> >>> Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()") >>> CC: stable@vger.kernel.org # 6.13+ >>> CC: Andrew Morton <akpm@linux-foundation.org> >>> Reported-by: kernel test robot <lkp@intel.com> >>> Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR-lkp@intel.com/ >>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com> >>> --- >>> include/linux/jiffies.h | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h >>> index ed945f42e064..0ea8c9887429 100644 >>> --- a/include/linux/jiffies.h >>> +++ b/include/linux/jiffies.h >>> @@ -537,7 +537,7 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m) >>> * >>> * Return: jiffies value >>> */ >>> -#define secs_to_jiffies(_secs) ((_secs) * HZ) >>> +#define secs_to_jiffies(_secs) (unsigned long)((_secs) * HZ) >> >> Could you just switch the fun to an inline instead? > > It's a macro so it can be used in static initializers. It's the only one from the *_to_jiffies() family we offer. And I fail to find such a use (by a quick grep, it only might be hidden)? People apparently use "* HZ" in initializers... So sure, iff there is this intention for this very one, keep it as macro. -- js suse labs ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion 2025-01-31 8:52 ` Jiri Slaby @ 2025-01-31 17:52 ` Easwar Hariharan 0 siblings, 0 replies; 6+ messages in thread From: Easwar Hariharan @ 2025-01-31 17:52 UTC (permalink / raw) To: Jiri Slaby Cc: Thomas Gleixner, Anna-Maria Behnsen, Geert Uytterhoeven, Luiz Augusto von Dentz, Miguel Ojeda, open list, eahariha, stable, Andrew Morton, kernel test robot On 1/31/2025 12:52 AM, Jiri Slaby wrote: > On 31. 01. 25, 9:30, Thomas Gleixner wrote: >> On Fri, Jan 31 2025 at 08:06, Jiri Slaby wrote: >>> On 30. 01. 25, 20:26, Easwar Hariharan wrote: >>>> While converting users of msecs_to_jiffies(), lkp reported that some >>>> range checks would always be true because of the mismatch between the >>>> implied int value of secs_to_jiffies() vs the unsigned long >>>> return value of the msecs_to_jiffies() calls it was replacing. Fix this >>>> by casting secs_to_jiffies() values as unsigned long. >>>> >>>> Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()") >>>> CC: stable@vger.kernel.org # 6.13+ >>>> CC: Andrew Morton <akpm@linux-foundation.org> >>>> Reported-by: kernel test robot <lkp@intel.com> >>>> Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR- >>>> lkp@intel.com/ >>>> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com> >>>> --- >>>> include/linux/jiffies.h | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h >>>> index ed945f42e064..0ea8c9887429 100644 >>>> --- a/include/linux/jiffies.h >>>> +++ b/include/linux/jiffies.h >>>> @@ -537,7 +537,7 @@ static __always_inline unsigned long >>>> msecs_to_jiffies(const unsigned int m) >>>> * >>>> * Return: jiffies value >>>> */ >>>> -#define secs_to_jiffies(_secs) ((_secs) * HZ) >>>> +#define secs_to_jiffies(_secs) (unsigned long)((_secs) * HZ) >>> >>> Could you just switch the fun to an inline instead? >> >> It's a macro so it can be used in static initializers. > > It's the only one from the *_to_jiffies() family we offer. And I fail to > find such a use (by a quick grep, it only might be hidden)? People > apparently use "* HZ" in initializers... > > So sure, iff there is this intention for this very one, keep it as macro. > Yes, the intent is to convert those usages of "* HZ" to use secs_to_jiffies() for better readability. Thanks, Easwar ^ permalink raw reply [flat|nested] 6+ messages in thread
* [tip: timers/urgent] jiffies: Cast to unsigned long in secs_to_jiffies() conversion 2025-01-30 19:26 [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion Easwar Hariharan 2025-01-31 7:06 ` Jiri Slaby @ 2025-01-31 8:43 ` tip-bot2 for Easwar Hariharan 1 sibling, 0 replies; 6+ messages in thread From: tip-bot2 for Easwar Hariharan @ 2025-01-31 8:43 UTC (permalink / raw) To: linux-tip-commits Cc: kernel test robot, Easwar Hariharan, Thomas Gleixner, stable, x86, linux-kernel The following commit has been merged into the timers/urgent branch of tip: Commit-ID: bb2784d9ab49587ba4fbff37a319fff2924db289 Gitweb: https://git.kernel.org/tip/bb2784d9ab49587ba4fbff37a319fff2924db289 Author: Easwar Hariharan <eahariha@linux.microsoft.com> AuthorDate: Thu, 30 Jan 2025 19:26:58 Committer: Thomas Gleixner <tglx@linutronix.de> CommitterDate: Fri, 31 Jan 2025 09:30:49 +01:00 jiffies: Cast to unsigned long in secs_to_jiffies() conversion While converting users of msecs_to_jiffies(), lkp reported that some range checks would always be true because of the mismatch between the implied int value of secs_to_jiffies() vs the unsigned long return value of the msecs_to_jiffies() calls it was replacing. Fix this by casting the secs_to_jiffies() input value to unsigned long. Fixes: b35108a51cf7ba ("jiffies: Define secs_to_jiffies()") Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/all/20250130192701.99626-1-eahariha@linux.microsoft.com Closes: https://lore.kernel.org/oe-kbuild-all/202501301334.NB6NszQR-lkp@intel.com/ --- include/linux/jiffies.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index ed945f4..0ea8c98 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h @@ -537,7 +537,7 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m) * * Return: jiffies value */ -#define secs_to_jiffies(_secs) ((_secs) * HZ) +#define secs_to_jiffies(_secs) (unsigned long)((_secs) * HZ) extern unsigned long __usecs_to_jiffies(const unsigned int u); #if !(USEC_PER_SEC % HZ) ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-01-31 17:52 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-01-30 19:26 [PATCH v2] jiffies: Cast to unsigned long for secs_to_jiffies() conversion Easwar Hariharan 2025-01-31 7:06 ` Jiri Slaby 2025-01-31 8:30 ` Thomas Gleixner 2025-01-31 8:52 ` Jiri Slaby 2025-01-31 17:52 ` Easwar Hariharan 2025-01-31 8:43 ` [tip: timers/urgent] jiffies: Cast to unsigned long in " tip-bot2 for Easwar Hariharan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox