ANDROID: GKI: do not export symbol_get/put()

People keep trying to use these in Android kernels, and they should not
be used, use the correct, real, symbol name instead.

Turn off a number of things in the allmodconfig builds that were using
these symbols to not break the build.  That was for build-testing only,
no functional changes.

Bug: 157965270
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I13bf351b3ae59fa6dfed7bd41dfff8c8d521e3a4
This commit is contained in:
Greg Kroah-Hartman 2020-07-14 19:11:20 +02:00
parent bafbd0599c
commit 882b7ca141
2 changed files with 32 additions and 2 deletions

View File

@ -1,5 +1,36 @@
DEFCONFIG=allmodconfig DEFCONFIG=allmodconfig
# When trying to prevent others from using symbol_get/put we need to exclude a
# number of in-kernel modules that use those functions.
SYMBOL_GET_USERS=" \
-d CAIF \
-d DELL_LAPTOP \
-d DRM_I915 \
-d DVB_USB \
-d DVB_USB_V2 \
-d FSL_ENETC \
-d FSL_ENETC_VF \
-d INTEL_IPS \
-d KVM \
-d MEDIA_DIGITAL_TV_SUPPORT \
-d MEDIA_PCI_SUPPORT \
-d MEDIA_RADIO_SUPPORT \
-d MTD_CFI \
-d MTD_GEN_PROBE \
-d MTD_HYPERBUS \
-d MTD_JEDECPROBE \
-d MTD_TS5500 \
-d NFS_V4 \
-d SAMPLE_HW_BREAKPOINT \
-d VFIO \
-d VIDEO_CX231XX \
-d VIDEO_EM28XX \
-d VIDEO_GO7007 \
-d VIDEO_PVRUSB2 \
-d VIDEO_TM6000 \
-d VIDEO_USBVISION \
"
POST_DEFCONFIG_CMDS="update_config" POST_DEFCONFIG_CMDS="update_config"
function update_config() { function update_config() {
${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \ ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
@ -7,6 +38,7 @@ function update_config() {
-d CPU_BIG_ENDIAN \ -d CPU_BIG_ENDIAN \
-d STM \ -d STM \
-d TEST_MEMCAT_P \ -d TEST_MEMCAT_P \
${SYMBOL_GET_USERS} \
-e UNWINDER_FRAME_POINTER \ -e UNWINDER_FRAME_POINTER \
(cd ${OUT_DIR} && \ (cd ${OUT_DIR} && \

View File

@ -1079,7 +1079,6 @@ void __symbol_put(const char *symbol)
module_put(owner); module_put(owner);
preempt_enable(); preempt_enable();
} }
EXPORT_SYMBOL(__symbol_put);
/* Note this assumes addr is a function, which it currently always is. */ /* Note this assumes addr is a function, which it currently always is. */
void symbol_put_addr(void *addr) void symbol_put_addr(void *addr)
@ -2259,7 +2258,6 @@ void *__symbol_get(const char *symbol)
return sym ? (void *)kernel_symbol_value(sym) : NULL; return sym ? (void *)kernel_symbol_value(sym) : NULL;
} }
EXPORT_SYMBOL_GPL(__symbol_get);
/* /*
* Ensure that an exported symbol [global namespace] does not already exist * Ensure that an exported symbol [global namespace] does not already exist