With recent kernels (and possibly much older ones, too), ioctl() calls for ATAPI devices never make it to the driver layers. The reason for this is a borked return code test in drivers/scsi/sr.c. This patch fixes it. Signed-off-by: Mark Lord <mlord@xxxxxxxxx> --- --- old/drivers/scsi/sr.c 2006-11-29 16:57:37.000000000 -0500 +++ linux/drivers/scsi/sr.c 2007-01-02 16:40:33.000000000 -0500 @@ -468,7 +468,7 @@ } ret = cdrom_ioctl(file, &cd->cdi, inode, cmd, arg); - if (ret != ENOSYS) + if (ret != -ENOSYS) return ret; /* - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html