bcm2835_property: disable reentrancy detection for iomem
authorAlexander Bulekov <alxndr@bu.edu>
Thu, 27 Apr 2023 21:10:11 +0000 (17:10 -0400)
committerThomas Huth <thuth@redhat.com>
Fri, 28 Apr 2023 09:31:54 +0000 (11:31 +0200)
As the code is designed for re-entrant calls from bcm2835_property to
bcm2835_mbox and back into bcm2835_property, mark iomem as
reentrancy-safe.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20230427211013.2994127-7-alxndr@bu.edu>
Signed-off-by: Thomas Huth <thuth@redhat.com>
hw/misc/bcm2835_property.c

index 890ae7bae56c628b6bebe773cba9289bd4bf706c..de056ea2df89aeaf3d8c77b770b89c2ccef74e50 100644 (file)
@@ -382,6 +382,13 @@ static void bcm2835_property_init(Object *obj)
 
     memory_region_init_io(&s->iomem, OBJECT(s), &bcm2835_property_ops, s,
                           TYPE_BCM2835_PROPERTY, 0x10);
+
+    /*
+     * bcm2835_property_ops call into bcm2835_mbox, which in-turn reads from
+     * iomem. As such, mark iomem as re-entracy safe.
+     */
+    s->iomem.disable_reentrancy_guard = true;
+
     sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->iomem);
     sysbus_init_irq(SYS_BUS_DEVICE(s), &s->mbox_irq);
 }