thunk: fix a vm area release issue

On some asics, like tonga, the memory alignment size is as big as 0x8000.

fmm_allocate* alloc vm area with size passed in which is not aligned mostly.
But __fmm_release free vm area with vm_object_t->size which is aligned.

That might cause aperture_release_area fail to free the vm area as the
size might be bigger than zone itself or it just free another vm area
nearby unexpected.

This patch somehow will alloc more space than it needed on tonga.
gfx900+ is not affected.

Change-Id: I5a88c92b08c4e6f6bc05881798f769b55d6debe9
Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Αυτή η υποβολή περιλαμβάνεται σε:
xinhui pan
2018-08-09 17:41:03 +08:00
υποβλήθηκε από Xinhui Pan
γονέας fe04dd6890
υποβολή 8fbf4a26ec
+1 -1
Προβολή Αρχείου
@@ -509,7 +509,7 @@ static bool aperture_is_valid(void *app_base, void *app_limit)
*/
static uint64_t vm_align_area_size(manageable_aperture_t *app, uint64_t size)
{
return ALIGN_UP(size + (uint64_t)app->guard_pages * PAGE_SIZE,
return ALIGN_UP(ALIGN_UP(size, app->align) + (uint64_t)app->guard_pages * PAGE_SIZE,
app->align);
}