kernel: fix prebuilt get_cred_rcu on certain linux version
Previously, i think non_rcu not available on 4.4.186 and below
but, apparently 4.9 too.
Fix: 33d2961b05
Signed-off-by: Rissu <90097027+rsuntk@users.noreply.github.com>
This commit is contained in:
@@ -80,12 +80,11 @@ endif
|
|||||||
ifeq ($(shell grep -q "get_cred_rcu" $(srctree)/include/linux/cred.h; echo $$?),0)
|
ifeq ($(shell grep -q "get_cred_rcu" $(srctree)/include/linux/cred.h; echo $$?),0)
|
||||||
ccflags-y += -DKSU_COMPAT_HAS_GET_CRED_RCU
|
ccflags-y += -DKSU_COMPAT_HAS_GET_CRED_RCU
|
||||||
else
|
else
|
||||||
# https://github.com/gregkh/linux/commit/123e44b9a49a42ff5313ec65256f1540d7c52fa0
|
|
||||||
ifeq ($(shell grep -q "atomic_long_t\s\+\usage" $(srctree)/include/linux/cred.h; echo $$?),0)
|
ifeq ($(shell grep -q "atomic_long_t\s\+\usage" $(srctree)/include/linux/cred.h; echo $$?),0)
|
||||||
$(info -- KernelSU compat: atomic_long_t detected.)
|
|
||||||
ccflags-y += -DKSU_COMPAT_ATOMIC_LONG
|
ccflags-y += -DKSU_COMPAT_ATOMIC_LONG
|
||||||
else
|
endif
|
||||||
$(info -- KernelSU compat: atomic_t detected.)
|
ifeq ($(shell grep -q "int\s\+\non_rcu" $(srctree)/include/linux/cred.h; echo $$?),0)
|
||||||
|
ccflags-y += -DKSU_COMPAT_HAS_NONCONST_CRED
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,9 @@
|
|||||||
#endif
|
#endif
|
||||||
return NULL;
|
return NULL;
|
||||||
validate_creds(cred);
|
validate_creds(cred);
|
||||||
|
#ifdef KSU_COMPAT_HAS_NONCONST_CRED
|
||||||
nonconst_cred->non_rcu = 0;
|
nonconst_cred->non_rcu = 0;
|
||||||
|
#endif
|
||||||
return cred;
|
return cred;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user