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
next prev parent 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.