diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2011-03-06 20:02:40 +0100 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2011-03-06 20:02:40 +0100 |
commit | 0d2e91c17829729812bf5d22d20dd0f5d2554ec2 (patch) | |
tree | 9d1c42597f6d426e6c59300dca3519bd1db6d9d4 /hw/sd.c | |
parent | ce0536616d338e3ee56288fa8e7aee1ea75e92d4 (diff) | |
download | qemu-0d2e91c17829729812bf5d22d20dd0f5d2554ec2.tar.gz qemu-0d2e91c17829729812bf5d22d20dd0f5d2554ec2.tar.bz2 qemu-0d2e91c17829729812bf5d22d20dd0f5d2554ec2.zip |
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 <aurelien@aurel32.net>
Diffstat (limited to 'hw/sd.c')
-rw-r--r-- | hw/sd.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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) |