Please ignore this patch. Thanks, Deepak Chitriki Rudramuni, Deepak wrote:
kmalloc() does not guarantee page aligned memory always,hence resulting in virtual addresses not getting aligned to page boundary. This patch replaces kmalloc() with __get_free_pages() which allocates kernel memory in terms of PAGES fixing the Kernel memory corruption after DSP_MMUFAULT. Signed-off-by: Deepak Chitriki <deepak.chitriki@xxxxxx> --- drivers/dsp/bridge/wmd/ue_deh.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/dsp/bridge/wmd/ue_deh.c b/drivers/dsp/bridge/wmd/ue_deh.c index 14dd8ae..7ed5f60 100644 --- a/drivers/dsp/bridge/wmd/ue_deh.c +++ b/drivers/dsp/bridge/wmd/ue_deh.c @@ -239,7 +239,8 @@ void bridge_deh_notify(struct deh_mgr *hdeh_mgr, u32 ulEventMask, u32 dwErrInfo) "bridge_deh_notify: DSP_MMUFAULT, fault " "address = 0x%x\n", (unsigned int)fault_addr); dummy_va_addr = - (u32) mem_calloc(sizeof(char) * 0x1000, MEM_PAGED); + (void *)__get_free_pages(GFP_ATOMIC | __GFP_ZERO, + 0); mem_physical = VIRT_TO_PHYS(PG_ALIGN_LOW ((u32) dummy_va_addr, PG_SIZE4K)); @@ -338,6 +339,6 @@ dsp_status bridge_deh_get_info(struct deh_mgr *hdeh_mgr, */ void bridge_deh_release_dummy_mem(void) { - kfree((void *)dummy_va_addr); + free_pages((void *)dummy_va_addr, 0); dummy_va_addr = 0; }
-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html