int transfer;
char disk_type;
struct gdromtoc *toc;
- struct request_queue *gdrom_rq;
struct blk_mq_tag_set tag_set;
} gd;
static int probe_gdrom_setupqueue(void)
{
- blk_queue_logical_block_size(gd.gdrom_rq, GDROM_HARD_SECTOR);
+ blk_queue_logical_block_size(gd.disk->queue, GDROM_HARD_SECTOR);
/* using DMA so memory will need to be contiguous */
- blk_queue_max_segments(gd.gdrom_rq, 1);
+ blk_queue_max_segments(gd.disk->queue, 1);
/* set a large max size to get most from DMA */
- blk_queue_max_segment_size(gd.gdrom_rq, 0x40000);
- gd.disk->queue = gd.gdrom_rq;
+ blk_queue_max_segment_size(gd.disk->queue, 0x40000);
return gdrom_init_dma_mode();
}
err = PTR_ERR(gd.disk);
goto probe_fail_free_tag_set;
}
- gd.gdrom_rq = gd.disk->queue;
probe_gdrom_setupdisk();
if (register_cdrom(gd.disk, gd.cd_info)) {
err = -ENODEV;
static int remove_gdrom(struct platform_device *devptr)
{
- blk_cleanup_queue(gd.gdrom_rq);
blk_mq_free_tag_set(&gd.tag_set);
free_irq(HW_EVENT_GDROM_CMD, &gd);
free_irq(HW_EVENT_GDROM_DMA, &gd);
if (gdrom_major)
unregister_blkdev(gdrom_major, GDROM_DEV_NAME);
unregister_cdrom(gd.cd_info);
+ blk_cleanup_disk(gd.disk);
kfree(gd.cd_info);
kfree(gd.toc);