Good afternoon .. I wonder if the prediction run in kernel mali 3:13 or even 3:14? and is to run what would be the procedure
Thanked until the very moment Em terça-feira, 14 de janeiro de 2014 07h36min25s UTC-2, Luc Verhaegen escreveu: > > The UMP code allocated the requested size in the page table, and > then tried to map the original buffer size on the same page table. > This lead to nice segfaults when userspace did not completely map > a UMP buffer (which it only rarely does). > > Signed-off-by: Luc Verhaegen <[email protected] <javascript:>> > --- > drivers/gpu/mali/mali/common/mali_memory.c | 12 +++++++++--- > 1 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/mali/mali/common/mali_memory.c > b/drivers/gpu/mali/mali/common/mali_memory.c > index 776dd1e..613bd88 100644 > --- a/drivers/gpu/mali/mali/common/mali_memory.c > +++ b/drivers/gpu/mali/mali/common/mali_memory.c > @@ -482,8 +482,14 @@ static mali_physical_memory_allocation_result > ump_memory_commit(void* ctx, mali_ > > for(i=0; i<nr_blocks; ++i) > { > - MALI_DEBUG_PRINT(4, ("Mapping in 0x%08x size %d\n", > ump_blocks[i].addr , ump_blocks[i].size)); > - if (_MALI_OSK_ERR_OK != > mali_allocation_engine_map_physical(engine, descriptor, *offset, > ump_blocks[i].addr , 0, ump_blocks[i].size )) > + u32 remainder = descriptor->size - (*offset - > ret_allocation->initial_offset); > + > + if (remainder > ump_blocks[i].size) > + remainder = ump_blocks[i].size; > + > + MALI_DEBUG_PRINT(4, ("Mapping in 0x%08x size %d\n", > ump_blocks[i].addr , remainder)); > + > + if (_MALI_OSK_ERR_OK != > mali_allocation_engine_map_physical(engine, descriptor, *offset, > ump_blocks[i].addr , 0, remainder)) > { > u32 size_allocated = *offset - > ret_allocation->initial_offset; > MALI_DEBUG_PRINT(1, ("Mapping of external memory > failed\n")); > @@ -495,7 +501,7 @@ static mali_physical_memory_allocation_result > ump_memory_commit(void* ctx, mali_ > _mali_osk_free(ret_allocation); > return MALI_MEM_ALLOC_INTERNAL_FAILURE; > } > - *offset += ump_blocks[i].size; > + *offset += remainder; > } > > if (descriptor->flags & > MALI_MEMORY_ALLOCATION_FLAG_MAP_GUARD_PAGE) > -- > 1.7.7 > > -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
