 +rlsd-y := rlsd_lsm.o
 diff -rupN linux-3.14.19-orig/security/rlsd/rlsd_lsm.c linux-3.14.19/security/rlsd/rlsd_lsm.c
 --- linux-3.14.19-orig/security/rlsd/rlsd_lsm.c	1970-01-01 02:00:00.000000000 +0200
-+++ linux-3.14.19/security/rlsd/rlsd_lsm.c	2014-09-29 21:20:35.251962693 +0300
-@@ -0,0 +1,195 @@
++++ linux-3.14.19/security/rlsd/rlsd_lsm.c	2014-10-01 20:05:46.879999339 +0300
+@@ -0,0 +1,214 @@
 +/*
 + * RLSD Linux Security Module
 + *

+		return 0;
+
+	tsk = current;
+	printk(KERN_ALERT "rlsd: denied PROT_EXEC from %lu (%s)\n",
+	       (unsigned long) tsk->pid,
+	       get_task_comm(name, tsk));
+	return -EPERM;

+	return -EINVAL;
+}
+
+static int rlsd_mmap_file(struct file *file,
+                          unsigned long reqprot,
+                          unsigned long prot,
+                          unsigned long flags)
+{
+	char name[FIELD_SIZEOF(struct task_struct, comm)];
+	struct task_struct *tsk;
+
+	if ((!(MAP_ANONYMOUS & prot)) || (!(PROT_EXEC & prot)))
+		return 0;
+
+	tsk = current;
+	printk(KERN_ALERT "rlsd: denied PROT_EXEC mapping from %lu (%s)\n",
+	       (unsigned long) tsk->pid,
+	       get_task_comm(name, tsk));
+	return -EPERM;
+}
+
+static int rlsd_file_mprotect(struct vm_area_struct *vma,
+                              unsigned long reqprot,
+                              unsigned long prot)
