From 0d2e91c17829729812bf5d22d20dd0f5d2554ec2 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sun, 6 Mar 2011 20:02:40 +0100 Subject: [PATCH] hw/sd.c: fix sd_set_cb() crash when bdrv == NULL sd_set_cb() calls bdrv_is_read_only() and bdrv_is_inserted() even if no block driver is associated with the card reader. This patch fixes the issues by not setting the irq in this case, this fixes ARM versatile crash. Signed-off-by: Aurelien Jarno --- hw/sd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/sd.c b/hw/sd.c index 5e29752d90..f44a97092b 100644 --- a/hw/sd.c +++ b/hw/sd.c @@ -460,8 +460,8 @@ void sd_set_cb(SDState *sd, qemu_irq readonly, qemu_irq insert) { sd->readonly_cb = readonly; sd->inserted_cb = insert; - qemu_set_irq(readonly, bdrv_is_read_only(sd->bdrv)); - qemu_set_irq(insert, bdrv_is_inserted(sd->bdrv)); + qemu_set_irq(readonly, sd->bdrv ? bdrv_is_read_only(sd->bdrv) : 0); + qemu_set_irq(insert, sd->bdrv ? bdrv_is_inserted(sd->bdrv) : 0); } static void sd_erase(SDState *sd)