The commit is pushed to "branch-rh9-5.14.0-427.44.1.vz9.80.x-ovz" and will 
appear at g...@bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.44.1.vz9.80.5
------>
commit ac2f43aeebdad6a8b6e44c26d4a75ee3383af2e1
Author: Steve Sistare <steven.sist...@oracle.com>
Date:   Tue Oct 27 16:48:37 2020 -0700

    oracle/mm: madv_doexec_flag sysctl
    
    Export the value of MADV_DOEXEC in /proc/sys/vm/madv_doexec_flag in case
    it must change due to a conflict with upstream.  Applications must use the
    sysctl until the flag is upstreamed, and UEK will provide the sysctl until
    the apps are updated to use the final value.
    
    Orabug: 32387875
    Signed-off-by: Steve Sistare <steven.sist...@oracle.com>
    Reviewed-by: Liam R. Howlett <liam.howl...@oracle.com>
    
    https://virtuozzo.atlassian.net/browse/VSTOR-96305
    
    (cherry picked from Oracle commit 4e520e5b5f4d4ea5be3d1ee5759bf1453580e896)
    Signed-off-by: Konstantin Khorenko <khore...@virtuozzo.com>
    
    Feature: oracle/mm: MADV_DOEXEC madvise() flag
---
 include/linux/mm.h | 1 +
 kernel/sysctl.c    | 7 +++++++
 mm/madvise.c       | 2 ++
 3 files changed, 10 insertions(+)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0aa3e411fedf..d2ce7bded6da 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -3317,6 +3317,7 @@ extern bool process_shares_mm(struct task_struct *p, 
struct mm_struct *mm);
 extern int sysctl_drop_caches;
 int drop_caches_sysctl_handler(struct ctl_table *, int, void *, size_t *,
                loff_t *);
+extern int madv_doexec_flag;
 #endif
 
 void drop_slab(void);
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 532a13d25394..0a06aee8f772 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -2277,6 +2277,13 @@ static struct ctl_table kern_table[] = {
 };
 
 static struct ctl_table vm_table[] = {
+       {
+               .procname       = "madv_doexec_flag",
+               .data           = &madv_doexec_flag,
+               .maxlen         = sizeof (int),
+               .mode           = 0444,
+               .proc_handler   = proc_dointvec,
+       },
        {
                .procname       = "overcommit_memory",
                .data           = &sysctl_overcommit_memory,
diff --git a/mm/madvise.c b/mm/madvise.c
index 8cab55109411..2458d6ccdeb2 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -37,6 +37,8 @@
 #include "internal.h"
 #include "swap.h"
 
+int madv_doexec_flag = MADV_DOEXEC;
+
 struct madvise_walk_private {
        struct mmu_gather *tlb;
        bool pageout;
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to