This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / sh / cchips / voyagergx / consistent.c
index 921d12b..95a309d 100644 (file)
@@ -49,13 +49,13 @@ void *voyagergx_consistent_alloc(struct device *dev, size_t size,
        if (!dev || dev->bus != &sh_bus_types[SH_BUS_VIRT] ||
                   (dev->bus == &sh_bus_types[SH_BUS_VIRT] &&
                    shdev->dev_id != SH_DEV_ID_USB_OHCI))
-               return NULL;
+               return consistent_alloc(flag, size, handle);
 
        start = OHCI_SRAM_START + OHCI_HCCA_SIZE;
 
        entry = kmalloc(sizeof(struct voya_alloc_entry), GFP_ATOMIC);
        if (!entry)
-               return ERR_PTR(-ENOMEM);
+               return NULL;
 
        entry->len = (size + 15) & ~15;
 
@@ -91,11 +91,11 @@ out:
        kfree(entry);
        spin_unlock_irqrestore(&voya_list_lock, flags);
 
-       return ERR_PTR(-EINVAL);
+       return NULL;
 }
 
-int voyagergx_consistent_free(struct device *dev, size_t size,
-                             void *vaddr, dma_addr_t handle)
+void voyagergx_consistent_free(struct device *dev, size_t size,
+                              void *vaddr, dma_addr_t handle)
 {
        struct voya_alloc_entry *entry;
        struct sh_dev *shdev = to_sh_dev(dev);
@@ -103,8 +103,10 @@ int voyagergx_consistent_free(struct device *dev, size_t size,
 
        if (!dev || dev->bus != &sh_bus_types[SH_BUS_VIRT] ||
                   (dev->bus == &sh_bus_types[SH_BUS_VIRT] &&
-                   shdev->dev_id != SH_DEV_ID_USB_OHCI))
-               return -EINVAL;
+                   shdev->dev_id != SH_DEV_ID_USB_OHCI)) {
+               consistent_free(vaddr, size);
+               return;
+       }
 
        spin_lock_irqsave(&voya_list_lock, flags);
        list_for_each_entry(entry, &voya_alloc_list, list) {
@@ -117,8 +119,6 @@ int voyagergx_consistent_free(struct device *dev, size_t size,
                break;
        }
        spin_unlock_irqrestore(&voya_list_lock, flags);
-
-       return 0;
 }
 
 EXPORT_SYMBOL(voyagergx_consistent_alloc);