staging: android: ion: Remove alignment from allocation field
authorLaura Abbott <labbott@redhat.com>
Mon, 3 Apr 2017 18:57:46 +0000 (11:57 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Apr 2017 10:35:11 +0000 (12:35 +0200)
The align field was supposed to be used to specify the alignment of
the allocation. Nobody actually does anything with it except to check
if the alignment specified is out of bounds. Since this has no effect
on the actual allocation, just remove it.

Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/ion/ion-ioctl.c
drivers/staging/android/ion/ion.c
drivers/staging/android/ion/ion.h
drivers/staging/android/ion/ion_carveout_heap.c
drivers/staging/android/ion/ion_chunk_heap.c
drivers/staging/android/ion/ion_cma_heap.c
drivers/staging/android/ion/ion_priv.h
drivers/staging/android/ion/ion_system_heap.c

index 9ff815ad1cb16fc60db94ecfed6ded7a92f1efde..5b2e93fd18c6172effb05163dd92ccae4a76e893 100644 (file)
@@ -95,7 +95,6 @@ long ion_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                struct ion_handle *handle;
 
                handle = ion_alloc(client, data.allocation.len,
-                                               data.allocation.align,
                                                data.allocation.heap_id_mask,
                                                data.allocation.flags);
                if (IS_ERR(handle))
index f45115fce4eb7c56534ceb277151782c1e9a23d8..c2adfe1ea2b940dac538fc7af489f717a533ab4d 100644 (file)
@@ -103,7 +103,6 @@ static void ion_buffer_add(struct ion_device *dev,
 static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
                                            struct ion_device *dev,
                                            unsigned long len,
-                                           unsigned long align,
                                            unsigned long flags)
 {
        struct ion_buffer *buffer;
@@ -119,15 +118,14 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
        buffer->flags = flags;
        kref_init(&buffer->ref);
 
-       ret = heap->ops->allocate(heap, buffer, len, align, flags);
+       ret = heap->ops->allocate(heap, buffer, len, flags);
 
        if (ret) {
                if (!(heap->flags & ION_HEAP_FLAG_DEFER_FREE))
                        goto err2;
 
                ion_heap_freelist_drain(heap, 0);
-               ret = heap->ops->allocate(heap, buffer, len, align,
-                                         flags);
+               ret = heap->ops->allocate(heap, buffer, len, flags);
                if (ret)
                        goto err2;
        }
@@ -401,7 +399,7 @@ static int ion_handle_add(struct ion_client *client, struct ion_handle *handle)
 }
 
 struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
-                            size_t align, unsigned int heap_id_mask,
+                            unsigned int heap_id_mask,
                             unsigned int flags)
 {
        struct ion_handle *handle;
@@ -410,8 +408,8 @@ struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
        struct ion_heap *heap;
        int ret;
 
-       pr_debug("%s: len %zu align %zu heap_id_mask %u flags %x\n", __func__,
-                len, align, heap_id_mask, flags);
+       pr_debug("%s: len %zu heap_id_mask %u flags %x\n", __func__,
+                len, heap_id_mask, flags);
        /*
         * traverse the list of heaps available in this system in priority
         * order.  If the heap type is supported by the client, and matches the
@@ -428,7 +426,7 @@ struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
                /* if the caller didn't specify this heap id */
                if (!((1 << heap->id) & heap_id_mask))
                        continue;
-               buffer = ion_buffer_create(heap, dev, len, align, flags);
+               buffer = ion_buffer_create(heap, dev, len, flags);
                if (!IS_ERR(buffer))
                        break;
        }
index 93dafb4586e43359c050da946f088d95ba35610f..3b4bff5c09121daa21bce10a6f7663b408bd0262 100644 (file)
@@ -45,7 +45,6 @@ struct ion_buffer;
  * @name:      used for debug purposes
  * @base:      base address of heap in physical memory if applicable
  * @size:      size of the heap in bytes if applicable
- * @align:     required alignment in physical memory if applicable
  * @priv:      private info passed from the board file
  *
  * Provided by the board file.
@@ -93,8 +92,6 @@ void ion_client_destroy(struct ion_client *client);
  * ion_alloc - allocate ion memory
  * @client:            the client
  * @len:               size of the allocation
- * @align:             requested allocation alignment, lots of hardware blocks
- *                     have alignment requirements of some kind
  * @heap_id_mask:      mask of heaps to allocate from, if multiple bits are set
  *                     heaps will be tried in order from highest to lowest
  *                     id
@@ -106,7 +103,7 @@ void ion_client_destroy(struct ion_client *client);
  * an opaque handle to it.
  */
 struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
-                            size_t align, unsigned int heap_id_mask,
+                            unsigned int heap_id_mask,
                             unsigned int flags);
 
 /**
index a8ea97391c40f985ac1ee801edf5991dd97fd710..9bf8e98d47f253fe930cc088829aebbf69635f62 100644 (file)
@@ -34,8 +34,7 @@ struct ion_carveout_heap {
 };
 
 static ion_phys_addr_t ion_carveout_allocate(struct ion_heap *heap,
-                                            unsigned long size,
-                                            unsigned long align)
+                                            unsigned long size)
 {
        struct ion_carveout_heap *carveout_heap =
                container_of(heap, struct ion_carveout_heap, heap);
@@ -60,16 +59,13 @@ static void ion_carveout_free(struct ion_heap *heap, ion_phys_addr_t addr,
 
 static int ion_carveout_heap_allocate(struct ion_heap *heap,
                                      struct ion_buffer *buffer,
-                                     unsigned long size, unsigned long align,
+                                     unsigned long size,
                                      unsigned long flags)
 {
        struct sg_table *table;
        ion_phys_addr_t paddr;
        int ret;
 
-       if (align > PAGE_SIZE)
-               return -EINVAL;
-
        table = kmalloc(sizeof(*table), GFP_KERNEL);
        if (!table)
                return -ENOMEM;
@@ -77,7 +73,7 @@ static int ion_carveout_heap_allocate(struct ion_heap *heap,
        if (ret)
                goto err_free;
 
-       paddr = ion_carveout_allocate(heap, size, align);
+       paddr = ion_carveout_allocate(heap, size);
        if (paddr == ION_CARVEOUT_ALLOCATE_FAIL) {
                ret = -ENOMEM;
                goto err_free_table;
index 70495dc645ea13b03d317b00d6110105e59fede0..8c418896d433258ffbf92de5411e0331e55f43f2 100644 (file)
@@ -35,7 +35,7 @@ struct ion_chunk_heap {
 
 static int ion_chunk_heap_allocate(struct ion_heap *heap,
                                   struct ion_buffer *buffer,
-                                  unsigned long size, unsigned long align,
+                                  unsigned long size,
                                   unsigned long flags)
 {
        struct ion_chunk_heap *chunk_heap =
@@ -46,9 +46,6 @@ static int ion_chunk_heap_allocate(struct ion_heap *heap,
        unsigned long num_chunks;
        unsigned long allocated_size;
 
-       if (align > chunk_heap->chunk_size)
-               return -EINVAL;
-
        allocated_size = ALIGN(size, chunk_heap->chunk_size);
        num_chunks = allocated_size / chunk_heap->chunk_size;
 
@@ -160,8 +157,8 @@ struct ion_heap *ion_chunk_heap_create(struct ion_platform_heap *heap_data)
        chunk_heap->heap.ops = &chunk_heap_ops;
        chunk_heap->heap.type = ION_HEAP_TYPE_CHUNK;
        chunk_heap->heap.flags = ION_HEAP_FLAG_DEFER_FREE;
-       pr_debug("%s: base %lu size %zu align %ld\n", __func__,
-                chunk_heap->base, heap_data->size, heap_data->align);
+       pr_debug("%s: base %lu size %zu \n", __func__,
+                chunk_heap->base, heap_data->size);
 
        return &chunk_heap->heap;
 
index 6c4068523781a45387b454da33ec1d49279d77e1..d562fd75c1310b231b9f0295687167d1c9746b67 100644 (file)
@@ -40,7 +40,7 @@ struct ion_cma_buffer_info {
 
 /* ION CMA heap operations functions */
 static int ion_cma_allocate(struct ion_heap *heap, struct ion_buffer *buffer,
-                           unsigned long len, unsigned long align,
+                           unsigned long len,
                            unsigned long flags)
 {
        struct ion_cma_heap *cma_heap = to_cma_heap(heap);
@@ -52,9 +52,6 @@ static int ion_cma_allocate(struct ion_heap *heap, struct ion_buffer *buffer,
        if (buffer->flags & ION_FLAG_CACHED)
                return -EINVAL;
 
-       if (align > PAGE_SIZE)
-               return -EINVAL;
-
        info = kzalloc(sizeof(*info), GFP_KERNEL);
        if (!info)
                return -ENOMEM;
index 46d3ff5087c290208e2e1a6dfc7c3827928bffc7..b09bc7cdf2db94486465f7f6f36eeee7f35962f5 100644 (file)
@@ -172,7 +172,7 @@ struct ion_handle {
 struct ion_heap_ops {
        int (*allocate)(struct ion_heap *heap,
                        struct ion_buffer *buffer, unsigned long len,
-                       unsigned long align, unsigned long flags);
+                       unsigned long flags);
        void (*free)(struct ion_buffer *buffer);
        void * (*map_kernel)(struct ion_heap *heap, struct ion_buffer *buffer);
        void (*unmap_kernel)(struct ion_heap *heap, struct ion_buffer *buffer);
index 3ebbb75746e8c4de63781defd360ed7f11e77b46..6cb2fe7ec07ff148ba0faf621573d409b555f3a6 100644 (file)
@@ -129,7 +129,7 @@ static struct page *alloc_largest_available(struct ion_system_heap *heap,
 
 static int ion_system_heap_allocate(struct ion_heap *heap,
                                    struct ion_buffer *buffer,
-                                   unsigned long size, unsigned long align,
+                                   unsigned long size,
                                    unsigned long flags)
 {
        struct ion_system_heap *sys_heap = container_of(heap,
@@ -143,9 +143,6 @@ static int ion_system_heap_allocate(struct ion_heap *heap,
        unsigned long size_remaining = PAGE_ALIGN(size);
        unsigned int max_order = orders[0];
 
-       if (align > PAGE_SIZE)
-               return -EINVAL;
-
        if (size / PAGE_SIZE > totalram_pages / 2)
                return -ENOMEM;
 
@@ -372,7 +369,6 @@ void ion_system_heap_destroy(struct ion_heap *heap)
 static int ion_system_contig_heap_allocate(struct ion_heap *heap,
                                           struct ion_buffer *buffer,
                                           unsigned long len,
-                                          unsigned long align,
                                           unsigned long flags)
 {
        int order = get_order(len);
@@ -381,9 +377,6 @@ static int ion_system_contig_heap_allocate(struct ion_heap *heap,
        unsigned long i;
        int ret;
 
-       if (align > (PAGE_SIZE << order))
-               return -EINVAL;
-
        page = alloc_pages(low_order_gfp_flags, order);
        if (!page)
                return -ENOMEM;