[PATCH v2] drm: add a check to verify the size alignment
Arunpravin Paneer Selvam
Arunpravin.PaneerSelvam at amd.com
Wed Mar 23 07:34:26 UTC 2022
Add a simple check to reject any size not aligned to the
min_page_size.
handle instances when size is not aligned with the min_page_size.
Unigine Heaven has allocation requests for example required pages
are 257 and alignment request is 256. To allocate the left over 1
page, continues the iteration to find the order value which is 0
and when it compares with min_order = 8, triggers the BUG_ON(order
< min_order). To avoid this problem, we added a simple check to
return -EINVAL if size is not aligned to the min_page_size.
v2: Added more details to the commit description
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam at amd.com>
Suggested-by: Matthew Auld <matthew.auld at intel.com>
---
drivers/gpu/drm/drm_buddy.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
index 72f52f293249..b503c88786b0 100644
--- a/drivers/gpu/drm/drm_buddy.c
+++ b/drivers/gpu/drm/drm_buddy.c
@@ -661,6 +661,9 @@ int drm_buddy_alloc_blocks(struct drm_buddy *mm,
if (range_overflows(start, size, mm->size))
return -EINVAL;
+ if (WARN_ON(!IS_ALIGNED(size, min_page_size)))
+ return -EINVAL;
+
/* Actual range allocation */
if (start + size == end)
return __drm_buddy_alloc_range(mm, start, size, blocks);
base-commit: 056d47eaf6ea753fa2e21da31f9cbd8b721bbb7b
--
2.25.1
More information about the amd-gfx
mailing list