msm: smem_log: Handle disabled logging regions
Properly handle disabled logging regions.
CRs-fixed: 300312
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
diff --git a/arch/arm/mach-msm/smem_log.c b/arch/arm/mach-msm/smem_log.c
index 1cb0440..6b7573c 100644
--- a/arch/arm/mach-msm/smem_log.c
+++ b/arch/arm/mach-msm/smem_log.c
@@ -1118,10 +1118,6 @@
static long smem_log_ioctl(struct file *fp,
unsigned int cmd, unsigned long arg)
{
- struct smem_log_inst *inst;
-
- inst = fp->private_data;
-
switch (cmd) {
default:
return -ENOTTY;
@@ -1138,12 +1134,19 @@
}
break;
case SMIOC_SETLOG:
- if (arg == SMIOC_LOG)
- fp->private_data = &inst[GEN];
- else if (arg == SMIOC_STATIC_LOG)
- fp->private_data = &inst[STA];
- else
+ if (arg == SMIOC_LOG) {
+ if (inst[GEN].events)
+ fp->private_data = &inst[GEN];
+ else
+ return -ENODEV;
+ } else if (arg == SMIOC_STATIC_LOG) {
+ if (inst[STA].events)
+ fp->private_data = &inst[STA];
+ else
+ return -ENODEV;
+ } else {
return -EINVAL;
+ }
break;
}