Merge pull request #11375 from liamwhite/nvhost-as-gpu
nvhost_as_gpu: ensure mappings are aligned to big page size when deallocated
This commit is contained in:
		| @@ -204,9 +204,11 @@ void nvhost_as_gpu::FreeMappingLocked(u64 offset) { | |||||||
|     if (!mapping->fixed) { |     if (!mapping->fixed) { | ||||||
|         auto& allocator{mapping->big_page ? *vm.big_page_allocator : *vm.small_page_allocator}; |         auto& allocator{mapping->big_page ? *vm.big_page_allocator : *vm.small_page_allocator}; | ||||||
|         u32 page_size_bits{mapping->big_page ? vm.big_page_size_bits : VM::PAGE_SIZE_BITS}; |         u32 page_size_bits{mapping->big_page ? vm.big_page_size_bits : VM::PAGE_SIZE_BITS}; | ||||||
|  |         u32 page_size{mapping->big_page ? vm.big_page_size : VM::YUZU_PAGESIZE}; | ||||||
|  |         u64 aligned_size{Common::AlignUp(mapping->size, page_size)}; | ||||||
|  |  | ||||||
|         allocator.Free(static_cast<u32>(mapping->offset >> page_size_bits), |         allocator.Free(static_cast<u32>(mapping->offset >> page_size_bits), | ||||||
|                        static_cast<u32>(mapping->size >> page_size_bits)); |                        static_cast<u32>(aligned_size >> page_size_bits)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Sparse mappings shouldn't be fully unmapped, just returned to their sparse state |     // Sparse mappings shouldn't be fully unmapped, just returned to their sparse state | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user