vppinfra: mspace_get_aligned should respect MALLOC_ALIGNMENT 83/29783/2
authorDamjan Marion <damarion@cisco.com>
Thu, 5 Nov 2020 13:54:08 +0000 (14:54 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 5 Nov 2020 20:53:43 +0000 (20:53 +0000)
While underlying mspace_malloc() respects MALLOC_ALIGNMENT (16)
mspace_get_aligned moves start of data for 4 bytes making final result
not aligned to MALLOC_ALIGNED.

Type: fix
Change-Id: Ib1584f315e3658b3b748ebf4886fb7389ce640fe
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vppinfra/dlmalloc.c

index 7c4664b..36c80b0 100644 (file)
@@ -4200,28 +4200,7 @@ void* mspace_get_aligned (mspace msp,
    * the base of the dlmalloc object
    */
   n_user_data_bytes += sizeof(unsigned);
-
-  /*
-   * Alignment requests less than the size of an mmx vector are ignored
-   */
-  if (align < sizeof (uword)) {
-    rv = mspace_malloc (msp, n_user_data_bytes);
-    if (rv == 0)
-        return rv;
-
-    if (use_trace(ms)) {
-      mchunkptr p  = mem2chunk(rv);
-      size_t psize = chunksize(p);
-
-      mheap_get_trace ((unsigned long)rv + sizeof (unsigned), psize);
-    }
-
-    wwp = (unsigned *)rv;
-    *wwp = 0;
-    rv += sizeof (unsigned);
-
-    return rv;
-  }
+  align = align < MALLOC_ALIGNMENT ? MALLOC_ALIGNMENT : align;
 
   /*
    * Alignment requests greater than 4K must be at offset zero,