]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/cdrom/gdrom.c
cdrom: Make device operations read-only
[karo-tx-linux.git] / drivers / cdrom / gdrom.c
index 584bc3126403d58955a915db2117fcd1d16de5a2..1afab6558d0c77a29ec94bcba8c5c01e251ff444 100644 (file)
@@ -481,7 +481,7 @@ static int gdrom_audio_ioctl(struct cdrom_device_info *cdi, unsigned int cmd,
        return -EINVAL;
 }
 
-static struct cdrom_device_ops gdrom_ops = {
+static const struct cdrom_device_ops gdrom_ops = {
        .open                   = gdrom_open,
        .release                = gdrom_release,
        .drive_status           = gdrom_drivestatus,
@@ -489,9 +489,9 @@ static struct cdrom_device_ops gdrom_ops = {
        .get_last_session       = gdrom_get_last_session,
        .reset                  = gdrom_hardreset,
        .audio_ioctl            = gdrom_audio_ioctl,
+       .generic_packet         = cdrom_dummy_generic_packet,
        .capability             = CDC_MULTI_SESSION | CDC_MEDIA_CHANGED |
                                  CDC_RESET | CDC_DRIVE_STATUS | CDC_CD_R,
-       .n_minors               = 1,
 };
 
 static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
@@ -807,16 +807,20 @@ static int probe_gdrom(struct platform_device *devptr)
        if (err)
                goto probe_fail_cmdirq_register;
        gd.gdrom_rq = blk_init_queue(gdrom_request, &gdrom_lock);
-       if (!gd.gdrom_rq)
+       if (!gd.gdrom_rq) {
+               err = -ENOMEM;
                goto probe_fail_requestq;
+       }
 
        err = probe_gdrom_setupqueue();
        if (err)
                goto probe_fail_toc;
 
        gd.toc = kzalloc(sizeof(struct gdromtoc), GFP_KERNEL);
-       if (!gd.toc)
+       if (!gd.toc) {
+               err = -ENOMEM;
                goto probe_fail_toc;
+       }
        add_disk(gd.disk);
        return 0;