All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tommaso Califano" <tcalifano@redhat.com>
To: "Peter Maydell" <peter.maydell@linaro.org>, <qemu-devel@nongnu.org>
Cc: "Brian Cain" <brian.cain@oss.qualcomm.com>,
	"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
	<qemu-devel-bounces+tcalifano=redhat.com@nongnu.org>
Subject: Re: [PATCH] hw/intc/hex-l2vic: avoid shift into sign bit
Date: Fri, 23 Oct 2026 12:22:11 +0200	[thread overview]
Message-ID: <DMC560EFHM9D.1HX2E0YM5X8RM@redhat.com> (raw)
In-Reply-To: <20261023084624.1063258-1-peter.maydell@linaro.org>

On Fri Oct 23, 2026 at 10:46 AM CEST, Peter Maydell wrote:
> In fastl2vic_write() we do:
>    val = 1 << (irq % 32);
>
> Because '1' is a signed integer, this can shift into the sign
> bit of 'int'; the cast to uint64_t to assign to 'val' then
> results in all the high bits being set. This happens to cause
> no visible problems because l2vic_write never looks at those
> bits, but it's obviously not intended. Use 1ULL so that we
> do the shift as 64 bits unsigned.
>
> Resolves: Coverity CID 1685261
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  hw/intc/hex-l2vic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/hex-l2vic.c b/hw/intc/hex-l2vic.c
> index 736f1be3b1d..89b44200928 100644
> --- a/hw/intc/hex-l2vic.c
> +++ b/hw/intc/hex-l2vic.c
> @@ -381,7 +381,7 @@ static void fastl2vic_write(void *opaque, hwaddr offset, uint64_t val,
>          uint32_t cmd = (val >> 16) & 0x3;
>          uint32_t irq = val & 0x3ff;
>          uint32_t slice = (irq / 32) * 4;
> -        val = 1 << (irq % 32);
> +        val = 1ULL << (irq % 32);
>  
>          if (cmd == FASTL2VIC_ENABLE) {
>              l2vic_write(opaque, L2VIC_INT_ENABLE_SETn + slice, val, size);


Not an expert, but LGTM.

Reviewed-by: Tommaso Califano <tcalifano@redhat.com>

Regards,
Tommaso



  reply	other threads:[~2026-10-23 10:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-23  8:46 [PATCH] hw/intc/hex-l2vic: avoid shift into sign bit Peter Maydell
2026-10-23 10:22 ` Tommaso Califano [this message]
2026-10-23 13:32 ` Brian Cain

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=DMC560EFHM9D.1HX2E0YM5X8RM@redhat.com \
    --to=tcalifano@redhat.com \
    --cc=brian.cain@oss.qualcomm.com \
    --cc=peter.maydell@linaro.org \
    --cc=pierrick.bouvier@oss.qualcomm.com \
    --cc=qemu-devel-bounces+tcalifano=redhat.com@nongnu.org \
    --cc=qemu-devel@nongnu.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.