sync with OpenBSD -current
This commit is contained in:
parent
3d86e50ab8
commit
cd0f69e643
5 changed files with 101 additions and 23 deletions
|
@ -342,6 +342,7 @@ alloc_range_bias(struct drm_buddy *mm,
|
|||
u64 start, u64 end,
|
||||
unsigned int order)
|
||||
{
|
||||
u64 req_size = mm->chunk_size << order;
|
||||
struct drm_buddy_block *block;
|
||||
struct drm_buddy_block *buddy;
|
||||
DRM_LIST_HEAD(dfs);
|
||||
|
@ -377,6 +378,15 @@ alloc_range_bias(struct drm_buddy *mm,
|
|||
if (drm_buddy_block_is_allocated(block))
|
||||
continue;
|
||||
|
||||
if (block_start < start || block_end > end) {
|
||||
u64 adjusted_start = max(block_start, start);
|
||||
u64 adjusted_end = min(block_end, end);
|
||||
|
||||
if (round_down(adjusted_end + 1, req_size) <=
|
||||
round_up(adjusted_start, req_size))
|
||||
continue;
|
||||
}
|
||||
|
||||
if (contains(start, end, block_start, block_end) &&
|
||||
order == drm_buddy_block_order(block)) {
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue