msm: pil: Fix loadable segment type check
Currently, a segment's p_type value from program head is bitwise
AND with PT_LOAD type constant to determine if it's a loadable
segment. This might cause problem when the p_type value of a
non-LOAD segment has the PT_LOAD bit set. For example, the
GNU_STACK segment.
Fix this by comparing p_type value against PT_LOAD type constant.
Change-Id: Ie293dfd3ad744fc5dab3d9a6e7992f42d609b17c
Signed-off-by: Tianyi Gou <tgou@codeaurora.org>
diff --git a/arch/arm/mach-msm/peripheral-loader.c b/arch/arm/mach-msm/peripheral-loader.c
index bfbf4bc..16c21f7 100644
--- a/arch/arm/mach-msm/peripheral-loader.c
+++ b/arch/arm/mach-msm/peripheral-loader.c
@@ -226,7 +226,7 @@
static int segment_is_loadable(const struct elf32_phdr *p)
{
- return (p->p_type & PT_LOAD) && !segment_is_hash(p->p_flags);
+ return (p->p_type == PT_LOAD) && !segment_is_hash(p->p_flags);
}
/* Sychronize request_firmware() with suspend */