mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 14:40:12 -04:00
drm/i915/selftests: Switch 4k kmalloc to use get_free_page for alignment
In generating the reference LRC, we want a page-aligned address for simplicity in computing the offsets within. This then shares the computation for the HW LRC which is mapped and so page aligned, making the comparison straightforward. It seems that kmalloc(4k) is not always returning from a 4k-aligned slab cache (which would give us a page aligned address) so force alignment by explicitly allocating a page. Reported-by: "Gote, Nitin R" <nitin.r.gote@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: "Gote, Nitin R" <nitin.r.gote@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200923114156.17749-1-chris@chris-wilson.co.uk
This commit is contained in:
@@ -139,9 +139,10 @@ static int live_lrc_layout(void *arg)
|
||||
* match the layout saved by HW.
|
||||
*/
|
||||
|
||||
lrc = kmalloc(PAGE_SIZE, GFP_KERNEL);
|
||||
lrc = (u32 *)__get_free_page(GFP_KERNEL); /* requires page alignment */
|
||||
if (!lrc)
|
||||
return -ENOMEM;
|
||||
GEM_BUG_ON(offset_in_page(lrc));
|
||||
|
||||
err = 0;
|
||||
for_each_engine(engine, gt, id) {
|
||||
@@ -225,7 +226,7 @@ static int live_lrc_layout(void *arg)
|
||||
break;
|
||||
}
|
||||
|
||||
kfree(lrc);
|
||||
free_page((unsigned long)lrc);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user