* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.