On 25/10/2021 14:00, Arunpravin wrote:
- Remove drm_mm references and replace with drm buddy functionalities
- Add res cursor support for drm buddy
Signed-off-by: Arunpravin Arunpravin.PaneerSelvam@amd.com
<snip>
spin_lock(&mgr->lock);
r = drm_buddy_alloc(mm, (uint64_t)place->fpfn << PAGE_SHIFT,
(uint64_t)lpfn << PAGE_SHIFT,
(uint64_t)n_pages << PAGE_SHIFT,
min_page_size, &node->blocks,
node->flags);
Is spinlock + GFP_KERNEL allowed?
spin_unlock(&mgr->lock);
if (unlikely(r))
goto error_free_blocks;
pages_left -= pages; ++i;
if (pages > pages_left) pages = pages_left; }
- spin_unlock(&mgr->lock);
- /* Free unused pages for contiguous allocation */
- if (place->flags & TTM_PL_FLAG_CONTIGUOUS) {
uint64_t actual_size = (uint64_t)node->base.num_pages << PAGE_SHIFT;
r = drm_buddy_free_unused_pages(mm,
actual_size,
&node->blocks);
Needs some locking.