All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] hw/misc: use extract64 instead of 1 << i
@ 2024-12-27 10:46 Tigran Sogomonian
  2024-12-27 12:37 ` Alex Bennée
  2024-12-27 15:16 ` Richard Henderson
  0 siblings, 2 replies; 6+ messages in thread
From: Tigran Sogomonian @ 2024-12-27 10:46 UTC (permalink / raw)
  To: peter.maydell, qemu-arm, qemu-devel, sdl.qemu; +Cc: Tigran Sogomonian

1 << i is casted to uint64_t while bitwise and with val.
So this value may become 0xffffffff80000000 but only
31th "start" bit is required.
Use the bitfield extract() API instead.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Tigran Sogomonian <tsogomonian@astralinux.ru>
---
 hw/misc/mps2-fpgaio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c
index d07568248d..04a3da5db0 100644
--- a/hw/misc/mps2-fpgaio.c
+++ b/hw/misc/mps2-fpgaio.c
@@ -198,7 +198,7 @@ static void mps2_fpgaio_write(void *opaque, hwaddr offset, uint64_t value,
 
             s->led0 = value & MAKE_64BIT_MASK(0, s->num_leds);
             for (i = 0; i < s->num_leds; i++) {
-                led_set_state(s->led[i], value & (1 << i));
+                led_set_state(s->led[i], extract64(value, i, 1));
             }
         }
         break;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-03-11 12:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-27 10:46 [PATCH v2] hw/misc: use extract64 instead of 1 << i Tigran Sogomonian
2024-12-27 12:37 ` Alex Bennée
2024-12-27 15:16 ` Richard Henderson
2025-02-04 12:20   ` Тигран Согомонян
2025-02-04 12:24   ` Тигран Согомонян
2025-03-11 12:56     ` Тигран Согомонян

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.