Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933549AbbDVMAZ (ORCPT ); Wed, 22 Apr 2015 08:00:25 -0400 Received: from www.linutronix.de ([62.245.132.108]:33771 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756207AbbDVMAW (ORCPT ); Wed, 22 Apr 2015 08:00:22 -0400 Date: Wed, 22 Apr 2015 14:00:07 +0200 (CEST) From: Thomas Gleixner To: Nicholas Mc Guire cc: Michal Marek , Masahiro Yamada , Sam Ravnborg , "H. Peter Alvin" , Joe Perches , John Stultz , Andrew Hunter , Paul Turner , Aaron Sierra , Brian Norris , linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3 V2] time: allow gcc to fold constants when using In-Reply-To: <1428840815-21974-3-git-send-email-hofrat@osadl.org> Message-ID: References: <1428840815-21974-1-git-send-email-hofrat@osadl.org> <1428840815-21974-3-git-send-email-hofrat@osadl.org> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1573 Lines: 51 On Sun, 12 Apr 2015, Nicholas Mc Guire wrote: > +extern unsigned long __msecs_to_jiffies(const unsigned int m); > +#if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ) > +static inline unsigned long _msecs_to_jiffies(const unsigned int m) > +{ This should move the comments explaining the logic for each variant as well. > + return (m + (MSEC_PER_SEC / HZ) - 1) / (MSEC_PER_SEC / HZ); > +} > +#elif HZ > MSEC_PER_SEC && !(HZ % MSEC_PER_SEC) > +static inline unsigned long _msecs_to_jiffies(const unsigned int m) > +{ > + if (m > jiffies_to_msecs(MAX_JIFFY_OFFSET)) > + return MAX_JIFFY_OFFSET; > + return m * (HZ / MSEC_PER_SEC); > +} > +#else > +static inline unsigned long _msecs_to_jiffies(const unsigned int m) > +{ > + if (HZ > MSEC_PER_SEC && m > jiffies_to_msecs(MAX_JIFFY_OFFSET)) > + return MAX_JIFFY_OFFSET; > + > + return (MSEC_TO_HZ_MUL32 * m + MSEC_TO_HZ_ADJ32) > + >> MSEC_TO_HZ_SHR32; > +} > +#endif > +static inline unsigned long msecs_to_jiffies(const unsigned int m) > +{ > + if (__builtin_constant_p(m)) { > + if ((int)m < 0) > + return MAX_JIFFY_OFFSET; > + return _msecs_to_jiffies(m); > + } else > + return __msecs_to_jiffies(m); It'd be nice to have this as two patches: 1) Factor out the code into inline helpers w/o adding anything 2) Add the __builtin_constant_p() check Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/