Merge pull request #3247 from FernandoS27/remap-fix

NvServices: Correct Ioctl Remap.
merge-requests/60/head
bunnei 2020-01-03 12:30:56 +07:00 committed by GitHub
commit 624a0f7f3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 3 deletions

@ -104,10 +104,12 @@ u32 nvhost_as_gpu::Remap(const std::vector<u8>& input, std::vector<u8>& output)
ASSERT(object->status == nvmap::Object::Status::Allocated); ASSERT(object->status == nvmap::Object::Status::Allocated);
u64 size = static_cast<u64>(entry.pages) << 0x10; const u64 size = static_cast<u64>(entry.pages) << 0x10;
ASSERT(size <= object->size); ASSERT(size <= object->size);
const u64 map_offset = static_cast<u64>(entry.map_offset) << 0x10;
GPUVAddr returned = gpu.MemoryManager().MapBufferEx(object->addr, offset, size); const GPUVAddr returned =
gpu.MemoryManager().MapBufferEx(object->addr + map_offset, offset, size);
ASSERT(returned == offset); ASSERT(returned == offset);
} }
std::memcpy(output.data(), entries.data(), output.size()); std::memcpy(output.data(), entries.data(), output.size());

@ -62,7 +62,7 @@ private:
u16_le flags; u16_le flags;
u16_le kind; u16_le kind;
u32_le nvmap_handle; u32_le nvmap_handle;
INSERT_PADDING_WORDS(1); u32_le map_offset;
u32_le offset; u32_le offset;
u32_le pages; u32_le pages;
}; };