int unit;
 
        if (disable)
-               return -1;
+               return -EINVAL;
 
        pcd_init_units();
 
        if (pcd_detect())
-               return -1;
+               return -ENODEV;
 
        /* get the atapi capabilities page */
        pcd_probe_capabilities();
        if (register_blkdev(major, name)) {
                for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++)
                        put_disk(cd->disk);
-               return -1;
+               return -EBUSY;
        }
 
        pcd_queue = blk_init_queue(do_pcd_request, &pcd_lock);
                unregister_blkdev(major, name);
                for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++)
                        put_disk(cd->disk);
-               return -1;
+               return -ENOMEM;
        }
 
        for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++) {
 
        int unit;
 
        if (disable)
-               return -1;
+               return -EINVAL;
 
        pf_init_units();
 
        if (pf_detect())
-               return -1;
+               return -ENODEV;
        pf_busy = 0;
 
        if (register_blkdev(major, name)) {
                for (pf = units, unit = 0; unit < PF_UNITS; pf++, unit++)
                        put_disk(pf->disk);
-               return -1;
+               return -EBUSY;
        }
        pf_queue = blk_init_queue(do_pf_request, &pf_spin_lock);
        if (!pf_queue) {
                unregister_blkdev(major, name);
                for (pf = units, unit = 0; unit < PF_UNITS; pf++, unit++)
                        put_disk(pf->disk);
-               return -1;
+               return -ENOMEM;
        }
 
        blk_queue_max_phys_segments(pf_queue, cluster);