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;
 	}