On Tue, 2017-10-31 at 15:39 +0800, Hongxu Jia wrote: > Since we split the scsi_request out of struct request, while the > standard prep_rq_fn builds 10 byte cmds, it missed to invoke > scsi_req_init() to initialize certain fields of a scsi_request > structure (.__cmd[], .cmd, .cmd_len and .sense_len but no other > members of struct scsi_request). > > An example panic on virtual machines (qemu/virtualbox) to boot > from IDE cdrom: > ... > [ 8.754381] Call Trace: > [ 8.755419] blk_peek_request+0x182/0x2e0 > [ 8.755863] blk_fetch_request+0x1c/0x40 > [ 8.756148] ? ktime_get+0x40/0xa0 > [ 8.756385] do_ide_request+0x37d/0x660 > [ 8.756704] ? cfq_group_service_tree_add+0x98/0xc0 > [ 8.757011] ? cfq_service_tree_add+0x1e5/0x2c0 > [ 8.757313] ? ktime_get+0x40/0xa0 > [ 8.757544] __blk_run_queue+0x3d/0x60 > [ 8.757837] queue_unplugged+0x2f/0xc0 > [ 8.758088] blk_flush_plug_list+0x1f4/0x240 > [ 8.758362] blk_finish_plug+0x2c/0x40 > ... > [ 8.770906] RIP: ide_cdrom_prep_fn+0x63/0x180 RSP: ffff92aec018bae8 > [ 8.772329] ---[ end trace 6408481e551a85c9 ]--- > ... With which kernel version did you encounter this kernel panic? IDE CD-ROM access works fine here from inside qemu with kernel v4.14.0-rc6. Bart.