On Fri, 2017-05-26 at 08:08 +0200, Christoph Hellwig wrote: > On Thu, May 25, 2017 at 11:43:13AM -0700, Bart Van Assche wrote: > > Since the cdrom driver only supports request queues for which > > struct scsi_request is the first member of their private request > > data, refuse to register block layer queues for which this is > > not the case. > > Hmm. I think we have a deeper issue there. The cdrom layer usually > sends packets commands through the cdrom ops ->generic_packet > method, but one function (cdrom_read_cdda_bpc) seems to directly > send a scsi passthrough request. It is only used if the cdda_method > is not CDDA_OLD, which is set if the cdrom_device_info structure > does not have a gendisk pointer hanging off it. It seems like > the legacy cdrom drivers fall into that category and would be > broken by this change. Hello Christoph, How about moving the check into cdrom_read_cdda_bpc()? As far as I can see that function is only called if a CDROMREADAUDIO ioctl is submitted. Although Documentation/cdrom/cdrom-standard.tex mentions that that ioctl is unsupported applications like cdparanoia use it. Bart.