From: Hans de Goede <hdegoede@redhat.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Richard Narron <richard@aaazen.com>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Marcin Wojtas <marcin.s.wojtas@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S . Miller" <davem@davemloft.net>,
Arnd Bergmann <arnd@kernel.org>,
Linus Torvalds <torvalds@linuxfoundation.org>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-media@vger.kernel.org, linux-staging@lists.linux.dev,
linux-mm@kvack.org, Andrew Lunn <andrew@lunn.ch>,
Dan Carpenter <dan.carpenter@linaro.org>,
stable@vger.kernel.org
Subject: Re: [PATCH hotfix 6.11 v2 3/3] minmax: reduce min/max macro expansion in atomisp driver
Date: Wed, 11 Sep 2024 20:03:58 +0200 [thread overview]
Message-ID: <bfd0243f-9159-4397-9f8a-e26372ce85a5@redhat.com> (raw)
In-Reply-To: <b38d8936eaddd524d19823f7429138e2ef24e0d1.1726074904.git.lorenzo.stoakes@oracle.com>
Hi,
On 9/11/24 7:51 PM, Lorenzo Stoakes wrote:
> Avoid unnecessary nested min()/max() which results in egregious macro
> expansion. Use clamp_t() as this introduces the least possible expansion.
>
> Not doing so results in an impact on build times.
>
> This resolves an issue with slackware 15.0 32-bit compilation as reported
> by Richard Narron.
>
> Presumably the min/max fixups would be difficult to backport, this patch
> should be easier and fix's Richard's problem in 5.15.
>
> Reported-by: Richard Narron <richard@aaazen.com>
> Closes: https://lore.kernel.org/all/4a5321bd-b1f-1832-f0c-cea8694dc5aa@aaazen.com/
> Fixes: 867046cc7027 ("minmax: relax check to allow comparison between unsigned arguments and signed constants")
> Cc: stable@vger.kernel.org
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Regards,
Hans
> ---
> .../staging/media/atomisp/pci/sh_css_frac.h | 26 ++++++++++++++-----
> 1 file changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/staging/media/atomisp/pci/sh_css_frac.h b/drivers/staging/media/atomisp/pci/sh_css_frac.h
> index b90b5b330dfa..8ba65161f7a9 100644
> --- a/drivers/staging/media/atomisp/pci/sh_css_frac.h
> +++ b/drivers/staging/media/atomisp/pci/sh_css_frac.h
> @@ -32,12 +32,24 @@
> #define uISP_VAL_MAX ((unsigned int)((1 << uISP_REG_BIT) - 1))
>
> /* a:fraction bits for 16bit precision, b:fraction bits for ISP precision */
> -#define sDIGIT_FITTING(v, a, b) \
> - min_t(int, max_t(int, (((v) >> sSHIFT) >> max(sFRACTION_BITS_FITTING(a) - (b), 0)), \
> - sISP_VAL_MIN), sISP_VAL_MAX)
> -#define uDIGIT_FITTING(v, a, b) \
> - min((unsigned int)max((unsigned)(((v) >> uSHIFT) \
> - >> max((int)(uFRACTION_BITS_FITTING(a) - (b)), 0)), \
> - uISP_VAL_MIN), uISP_VAL_MAX)
> +static inline int sDIGIT_FITTING(int v, int a, int b)
> +{
> + int fit_shift = sFRACTION_BITS_FITTING(a) - b;
> +
> + v >>= sSHIFT;
> + v >>= fit_shift > 0 ? fit_shift : 0;
> +
> + return clamp_t(int, v, sISP_VAL_MIN, sISP_VAL_MAX);
> +}
> +
> +static inline unsigned int uDIGIT_FITTING(unsigned int v, int a, int b)
> +{
> + int fit_shift = uFRACTION_BITS_FITTING(a) - b;
> +
> + v >>= uSHIFT;
> + v >>= fit_shift > 0 ? fit_shift : 0;
> +
> + return clamp_t(unsigned int, v, uISP_VAL_MIN, uISP_VAL_MAX);
> +}
>
> #endif /* __SH_CSS_FRAC_H */
> --
> 2.46.0
>
next prev parent reply other threads:[~2024-09-11 18:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-11 17:51 [PATCH hotfix 6.11 v2 0/3] minmax: reduce egregious min/max macro expansion Lorenzo Stoakes
2024-09-11 17:51 ` [PATCH hotfix 6.11 v2 1/3] minmax: reduce min/max macro expansion in mvpp2 driver Lorenzo Stoakes
2024-09-11 17:51 ` [PATCH hotfix 6.11 v2 2/3] minmax: reduce min/max macro expansion in skbuff Lorenzo Stoakes
2024-09-11 17:52 ` kernel test robot
2024-09-11 17:51 ` [PATCH hotfix 6.11 v2 3/3] minmax: reduce min/max macro expansion in atomisp driver Lorenzo Stoakes
2024-09-11 18:03 ` Hans de Goede [this message]
2024-09-11 18:11 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bfd0243f-9159-4397-9f8a-e26372ce85a5@redhat.com \
--to=hdegoede@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andrew@lunn.ch \
--cc=arnd@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux@armlinux.org.uk \
--cc=lorenzo.stoakes@oracle.com \
--cc=marcin.s.wojtas@gmail.com \
--cc=mchehab@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richard@aaazen.com \
--cc=sakari.ailus@linux.intel.com \
--cc=stable@vger.kernel.org \
--cc=torvalds@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.