]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/char/viotape.c
[POWERPC] iSeries: Move detection of virtual cdroms
[linux-2.6-omap-h63xx.git] / drivers / char / viotape.c
index 9438512b17f1d593d119753d0def60be2b536cda..064c091952152861814d7295c6cc9e687352d2f8 100644 (file)
@@ -392,8 +392,8 @@ static int get_viotape_info(void)
        if (op == NULL)
                return -ENOMEM;
 
-       viotape_unitinfo = dma_alloc_coherent(iSeries_vio_dev, len,
-               &viotape_unitinfo_token, GFP_ATOMIC);
+       viotape_unitinfo = iseries_hv_alloc(len, &viotape_unitinfo_token,
+               GFP_ATOMIC);
        if (viotape_unitinfo == NULL) {
                free_op_struct(op);
                return -ENOMEM;
@@ -872,13 +872,13 @@ free_op:
        return ret;
 }
 
-struct file_operations viotap_fops = {
-       owner: THIS_MODULE,
-       read: viotap_read,
-       write: viotap_write,
-       ioctl: viotap_ioctl,
-       open: viotap_open,
-       release: viotap_release,
+const struct file_operations viotap_fops = {
+       .owner =        THIS_MODULE,
+       .read =         viotap_read,
+       .write =        viotap_write,
+       .ioctl =        viotap_ioctl,
+       .open =         viotap_open,
+       .release =      viotap_release,
 };
 
 /* Handle interrupt events for tape */
@@ -1098,18 +1098,12 @@ static int chg_state(int index, unsigned char new_state, struct file *file)
 /* Cleanup */
 static void __exit viotap_exit(void)
 {
-       int ret;
-
        remove_proc_entry("iSeries/viotape", NULL);
        vio_unregister_driver(&viotape_driver);
        class_destroy(tape_class);
-       ret = unregister_chrdev(VIOTAPE_MAJOR, "viotape");
-       if (ret < 0)
-               printk(VIOTAPE_KERN_WARN "Error unregistering device: %d\n",
-                               ret);
+       unregister_chrdev(VIOTAPE_MAJOR, "viotape");
        if (viotape_unitinfo)
-               dma_free_coherent(iSeries_vio_dev,
-                               sizeof(viotape_unitinfo[0]) * VIOTAPE_MAX_TAPE,
+               iseries_hv_free(sizeof(viotape_unitinfo[0]) * VIOTAPE_MAX_TAPE,
                                viotape_unitinfo, viotape_unitinfo_token);
        viopath_close(viopath_hostLp, viomajorsubtype_tape, VIOTAPE_MAXREQ + 2);
        vio_clearHandler(viomajorsubtype_tape);