Just like already done in the default case, for CDROM_GET_CAPABILITY info->gd should not be blindly de-referenced, as the ioctl can be called prior to full device setup having completed. Signed-off-by: Jan Beulich --- a/drivers/xen/blkfront/blkfront.c +++ b/drivers/xen/blkfront/blkfront.c @@ -566,12 +566,11 @@ int blkif_ioctl(struct block_device *bd, return -EFAULT; return 0; - case CDROM_GET_CAPABILITY: { - struct gendisk *gd = info->gd; - if (gd->flags & GENHD_FL_CD) + case CDROM_GET_CAPABILITY: + if (info->gd && (info->gd->flags & GENHD_FL_CD)) return 0; return -EINVAL; - } + default: if (info->mi && info->gd) { switch (info->mi->major) {