mirror of https://github.com/xemu-project/xemu.git
Handle NULL bdrv.
Signed-off-by: Paul Brook <paul@codesourcery.com>
This commit is contained in:
parent
b89e94af1d
commit
03f311edd3
10
hw/sd.c
10
hw/sd.c
|
@ -365,7 +365,11 @@ static void sd_reset(SDState *sd, BlockDriverState *bdrv)
|
||||||
uint32_t size;
|
uint32_t size;
|
||||||
uint64_t sect;
|
uint64_t sect;
|
||||||
|
|
||||||
|
if (bdrv) {
|
||||||
bdrv_get_geometry(bdrv, §);
|
bdrv_get_geometry(bdrv, §);
|
||||||
|
} else {
|
||||||
|
sect = 0;
|
||||||
|
}
|
||||||
sect <<= 9;
|
sect <<= 9;
|
||||||
|
|
||||||
if (sect > 0x40000000)
|
if (sect > 0x40000000)
|
||||||
|
@ -388,7 +392,7 @@ static void sd_reset(SDState *sd, BlockDriverState *bdrv)
|
||||||
|
|
||||||
if (sd->wp_groups)
|
if (sd->wp_groups)
|
||||||
qemu_free(sd->wp_groups);
|
qemu_free(sd->wp_groups);
|
||||||
sd->wp_switch = bdrv_is_read_only(bdrv);
|
sd->wp_switch = bdrv ? bdrv_is_read_only(bdrv) : 0;
|
||||||
sd->wp_groups = (int *) qemu_mallocz(sizeof(int) * sect);
|
sd->wp_groups = (int *) qemu_mallocz(sizeof(int) * sect);
|
||||||
memset(sd->function_group, 0, sizeof(int) * 6);
|
memset(sd->function_group, 0, sizeof(int) * 6);
|
||||||
sd->erase_start = 0;
|
sd->erase_start = 0;
|
||||||
|
@ -421,7 +425,9 @@ SDState *sd_init(BlockDriverState *bs, int is_spi)
|
||||||
sd->spi = is_spi;
|
sd->spi = is_spi;
|
||||||
sd->enable = 1;
|
sd->enable = 1;
|
||||||
sd_reset(sd, bs);
|
sd_reset(sd, bs);
|
||||||
|
if (sd->bdrv) {
|
||||||
bdrv_set_change_cb(sd->bdrv, sd_cardchange, sd);
|
bdrv_set_change_cb(sd->bdrv, sd_cardchange, sd);
|
||||||
|
}
|
||||||
return sd;
|
return sd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1228,7 +1234,7 @@ int sd_do_command(SDState *sd, struct sd_request_s *req,
|
||||||
sd_rsp_type_t rtype;
|
sd_rsp_type_t rtype;
|
||||||
int rsplen;
|
int rsplen;
|
||||||
|
|
||||||
if (!bdrv_is_inserted(sd->bdrv) || !sd->enable) {
|
if (!sd->bdrv || !bdrv_is_inserted(sd->bdrv) || !sd->enable) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue