summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8ad2a26)
raw | patch | inline | side by side (parent: 8ad2a26)
author | Subash Lakkimsetti <x0091084@ti.com> | |
Mon, 29 Aug 2016 16:28:55 +0000 (11:28 -0500) | ||
committer | Buddy Liong <a0270631@ti.com> | |
Wed, 7 Sep 2016 17:11:55 +0000 (12:11 -0500) |
Previously version_buf pointer is set to buffer pointer (data.buf)
of (IVIDDEC3_Status *) status.
The pointer dyn_params and status are not cache invalidated first which
can cause the status->data.buf to be accessed without cache invalidation.
Due to this corruption, it can cause exception on IPUMM.
The solution is to cache invalidate the dyn_params and status pointer
first to get the valid pointer of dyn_params and status.
Then set the version_buf with status->data.buf.
Perform cache invalidation on the version_buf to get the valid pointer.
Change-Id: I3258cca0ee191c488fc6457391215b8bfcde3b85
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
of (IVIDDEC3_Status *) status.
The pointer dyn_params and status are not cache invalidated first which
can cause the status->data.buf to be accessed without cache invalidation.
Due to this corruption, it can cause exception on IPUMM.
The solution is to cache invalidate the dyn_params and status pointer
first to get the valid pointer of dyn_params and status.
Then set the version_buf with status->data.buf.
Perform cache invalidation on the version_buf to get the valid pointer.
Change-Id: I3258cca0ee191c488fc6457391215b8bfcde3b85
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
src/ti/framework/dce/dce.c | patch | blob | history |
index 78848d4408d34ff54339ad0e2bb9a8f8cdecd09b..f33b772a60f05d953000dc6ab079554883bbc80d 100644 (file)
ERROR("invalid number of params sent");
return (-1);
}
+
+ dce_inv(dyn_params);
+ dce_inv(status);
+
if( codec_id == OMAP_DCE_VIDDEC3 ) {
version_buf = (void *)(H2P((MemHeader *)((IVIDDEC3_Status *)status)->data.buf));
} else if( codec_id == OMAP_DCE_VIDENC2 ) {
version_buf = (void *)(H2P((MemHeader *)((IVIDENC2_Status *)status)->data.buf));
}
- dce_inv(dyn_params);
- dce_inv(status);
dce_inv(version_buf);
ivahd_acquire();