mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 00:41:26 +12:00
check address in sys_rsx_context_iomap
* Fix 0 vm page flags to behave like 1m flags, follows c8a681e60
* check if address exists and valid for rsx io allcations (must be allocated on 1m pages)
This commit is contained in:
parent
d82362fa1d
commit
e38b7aee5a
4 changed files with 46 additions and 25 deletions
|
@ -689,14 +689,14 @@ namespace vm
|
|||
|
||||
u8 pflags = page_readable | page_writable;
|
||||
|
||||
if (align >= 0x100000)
|
||||
{
|
||||
pflags |= page_1m_size;
|
||||
}
|
||||
else if (align >= 0x10000)
|
||||
if ((flags & SYS_MEMORY_PAGE_SIZE_64K) == SYS_MEMORY_PAGE_SIZE_64K)
|
||||
{
|
||||
pflags |= page_64k_size;
|
||||
}
|
||||
else if (!(flags & (SYS_MEMORY_PAGE_SIZE_MASK & ~SYS_MEMORY_PAGE_SIZE_1M)))
|
||||
{
|
||||
pflags |= page_1m_size;
|
||||
}
|
||||
|
||||
// Create or import shared memory object
|
||||
std::shared_ptr<utils::shm> shm;
|
||||
|
@ -738,14 +738,14 @@ namespace vm
|
|||
|
||||
u8 pflags = page_readable | page_writable;
|
||||
|
||||
if ((flags & SYS_MEMORY_PAGE_SIZE_1M) == SYS_MEMORY_PAGE_SIZE_1M)
|
||||
{
|
||||
pflags |= page_1m_size;
|
||||
}
|
||||
else if ((flags & SYS_MEMORY_PAGE_SIZE_64K) == SYS_MEMORY_PAGE_SIZE_64K)
|
||||
if ((flags & SYS_MEMORY_PAGE_SIZE_64K) == SYS_MEMORY_PAGE_SIZE_64K)
|
||||
{
|
||||
pflags |= page_64k_size;
|
||||
}
|
||||
else if (!(flags & (SYS_MEMORY_PAGE_SIZE_MASK & ~SYS_MEMORY_PAGE_SIZE_1M)))
|
||||
{
|
||||
pflags |= page_1m_size;
|
||||
}
|
||||
|
||||
// Create or import shared memory object
|
||||
std::shared_ptr<utils::shm> shm;
|
||||
|
@ -1027,7 +1027,7 @@ namespace vm
|
|||
{
|
||||
g_locations =
|
||||
{
|
||||
std::make_shared<block_t>(0x00010000, 0x1FFF0000), // main
|
||||
std::make_shared<block_t>(0x00010000, 0x1FFF0000, 0x200), // main
|
||||
std::make_shared<block_t>(0x20000000, 0x10000000, 0x201), // user 64k pages
|
||||
nullptr, // user 1m pages
|
||||
std::make_shared<block_t>(0xC0000000, 0x10000000), // video
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue