[armhf,armel] fix CRC generation for modules
This commit is contained in:
parent
6c0c9bcf78
commit
0971da3b71
|
@ -1,3 +1,9 @@
|
|||
linux (4.9~rc5-1~exp2) UNRELEASED; urgency=medium
|
||||
|
||||
* [armhf,armel] Fix problem with module CRC generation (Closes: #844530)
|
||||
|
||||
-- Uwe Kleine-König <ukleinek@debian.org> Thu, 17 Nov 2016 09:55:16 +0100
|
||||
|
||||
linux (4.9~rc5-1~exp1) experimental; urgency=medium
|
||||
|
||||
* New upstream release candidate
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
From: Arnd Bergmann <arnd@arndb.de>
|
||||
Subject: ARM: move mmiocpy/mmioset exports to io.c
|
||||
Date: Mon, 24 Oct 2016 17:06:45 +0200
|
||||
Origin: https://patchwork.kernel.org/patch/9392291/
|
||||
|
||||
The prototypes for mmioset/mmiocpy are intentionally hidden
|
||||
inside of inline functions, which breaks the EXPORT_SYMBOL
|
||||
statements when symbol versioning is enabled.
|
||||
|
||||
This moves the two exports from the files that implement the
|
||||
code into the kernel/io.c file, adding another local declaration
|
||||
there.
|
||||
|
||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||||
---
|
||||
|
||||
diff --git a/arch/arm/kernel/io.c b/arch/arm/kernel/io.c
|
||||
index eedefe050022..c74746997626 100644
|
||||
--- a/arch/arm/kernel/io.c
|
||||
+++ b/arch/arm/kernel/io.c
|
||||
@@ -82,3 +82,10 @@ void _memset_io(volatile void __iomem *dst, int c, size_t count)
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(_memset_io);
|
||||
+
|
||||
+/* can't export them from memcpy.S/memset.S because of hidden declaration */
|
||||
+void mmioset(void __iomem *addr, unsigned int c, size_t n);
|
||||
+EXPORT_SYMBOL(mmioset);
|
||||
+
|
||||
+void mmiocpy(void *dest, const void __iomem *src, size_t n);
|
||||
+EXPORT_SYMBOL(mmiocpy);
|
||||
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S
|
||||
index 1be5b6ddf37c..1f822fc52400 100644
|
||||
--- a/arch/arm/lib/memcpy.S
|
||||
+++ b/arch/arm/lib/memcpy.S
|
||||
@@ -70,4 +70,3 @@ ENTRY(memcpy)
|
||||
ENDPROC(memcpy)
|
||||
ENDPROC(mmiocpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
-EXPORT_SYMBOL(mmiocpy)
|
||||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
|
||||
index 7b72044cba62..6f075ca09abc 100644
|
||||
--- a/arch/arm/lib/memset.S
|
||||
+++ b/arch/arm/lib/memset.S
|
||||
@@ -137,4 +137,3 @@ UNWIND( .fnend )
|
||||
ENDPROC(memset)
|
||||
ENDPROC(mmioset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
-EXPORT_SYMBOL(mmioset)
|
41
debian/patches/bugfix/arm/kbuild-be-more-careful-about-matching-preprocessed-a.patch
vendored
Normal file
41
debian/patches/bugfix/arm/kbuild-be-more-careful-about-matching-preprocessed-a.patch
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
From: Nicholas Piggin <npiggin@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 15:34:05 +1100
|
||||
Subject: kbuild: be more careful about matching preprocessed asm ___EXPORT_SYMBOL
|
||||
Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=cc6acc11cad1eb1ae39707a3a6e4a97fafbeeabd
|
||||
|
||||
The CRC code for asm exports grabs the preprocessed asm, finds the
|
||||
___EXPORT_SYMBOL and turns those into EXPORT_SYMBOL in a C program
|
||||
that can be preprocessed and parsed to create the CRC signatures from
|
||||
the type.
|
||||
|
||||
The existing regex matching and replacement is too strict, and doesn't
|
||||
deal well with whitespace among other things. The line
|
||||
" EXPORT_SYMBOL(sym)" in a .S file would not match due to initial
|
||||
whitespace, for example, which resulted in x86's ___preempt_schedule
|
||||
failing to get CRCs.
|
||||
|
||||
Reported-by: Philip Müller <philm@manjaro.org>
|
||||
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
|
||||
Signed-off-by: Michal Marek <mmarek@suse.com>
|
||||
---
|
||||
scripts/Makefile.build | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
|
||||
index 3e223c264469..7675d11ee65e 100644
|
||||
--- a/scripts/Makefile.build
|
||||
+++ b/scripts/Makefile.build
|
||||
@@ -332,8 +332,8 @@ cmd_gensymtypes_S = \
|
||||
(echo "\#include <linux/kernel.h>" ; \
|
||||
echo "\#include <asm/asm-prototypes.h>" ; \
|
||||
$(CPP) $(a_flags) $< | \
|
||||
- grep ^___EXPORT_SYMBOL | \
|
||||
- sed 's/___EXPORT_SYMBOL \([a-zA-Z0-9_]*\),.*/EXPORT_SYMBOL(\1);/' ) | \
|
||||
+ grep "\<___EXPORT_SYMBOL\>" | \
|
||||
+ sed 's/.*___EXPORT_SYMBOL[[:space:]]*\([a-zA-Z0-9_]*\)[[:space:]]*,.*/EXPORT_SYMBOL(\1);/' ) | \
|
||||
$(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \
|
||||
$(GENKSYMS) $(if $(1), -T $(2)) \
|
||||
$(patsubst y,-s _,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX)) \
|
||||
--
|
||||
2.10.2
|
||||
|
149
debian/patches/bugfix/arm/kbuild-modversions-for-EXPORT_SYMBOL-for-asm.patch
vendored
Normal file
149
debian/patches/bugfix/arm/kbuild-modversions-for-EXPORT_SYMBOL-for-asm.patch
vendored
Normal file
|
@ -0,0 +1,149 @@
|
|||
From: Nicholas Piggin <npiggin@gmail.com>
|
||||
Date: Tue, 1 Nov 2016 12:46:19 +1100
|
||||
Subject: [PATCH] kbuild: modversions for EXPORT_SYMBOL() for asm
|
||||
Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=4efca4ed05cbdfd13ec3e8cb623fb77d6e4ab187
|
||||
|
||||
Allow architectures to create asm/asm-prototypes.h file that
|
||||
provides C prototypes for exported asm functions, which enables
|
||||
proper CRC versions to be generated for them.
|
||||
|
||||
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
|
||||
Signed-off-by: Michal Marek <mmarek@suse.com>
|
||||
---
|
||||
scripts/Makefile.build | 78 ++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 72 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
|
||||
index e1f25d6d132e..3e223c264469 100644
|
||||
--- a/scripts/Makefile.build
|
||||
+++ b/scripts/Makefile.build
|
||||
@@ -159,7 +159,8 @@ cmd_cpp_i_c = $(CPP) $(c_flags) -o $@ $<
|
||||
$(obj)/%.i: $(src)/%.c FORCE
|
||||
$(call if_changed_dep,cpp_i_c)
|
||||
|
||||
-cmd_gensymtypes = \
|
||||
+# These mirror gensymtypes_S and co below, keep them in synch.
|
||||
+cmd_gensymtypes_c = \
|
||||
$(CPP) -D__GENKSYMS__ $(c_flags) $< | \
|
||||
$(GENKSYMS) $(if $(1), -T $(2)) \
|
||||
$(patsubst y,-s _,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX)) \
|
||||
@@ -169,7 +170,7 @@ cmd_gensymtypes = \
|
||||
quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@
|
||||
cmd_cc_symtypes_c = \
|
||||
set -e; \
|
||||
- $(call cmd_gensymtypes,true,$@) >/dev/null; \
|
||||
+ $(call cmd_gensymtypes_c,true,$@) >/dev/null; \
|
||||
test -s $@ || rm -f $@
|
||||
|
||||
$(obj)/%.symtypes : $(src)/%.c FORCE
|
||||
@@ -198,9 +199,10 @@ else
|
||||
# the actual value of the checksum generated by genksyms
|
||||
|
||||
cmd_cc_o_c = $(CC) $(c_flags) -c -o $(@D)/.tmp_$(@F) $<
|
||||
-cmd_modversions = \
|
||||
+
|
||||
+cmd_modversions_c = \
|
||||
if $(OBJDUMP) -h $(@D)/.tmp_$(@F) | grep -q __ksymtab; then \
|
||||
- $(call cmd_gensymtypes,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \
|
||||
+ $(call cmd_gensymtypes_c,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \
|
||||
> $(@D)/.tmp_$(@F:.o=.ver); \
|
||||
\
|
||||
$(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \
|
||||
@@ -268,13 +270,14 @@ endif # CONFIG_STACK_VALIDATION
|
||||
define rule_cc_o_c
|
||||
$(call echo-cmd,checksrc) $(cmd_checksrc) \
|
||||
$(call cmd_and_fixdep,cc_o_c) \
|
||||
- $(cmd_modversions) \
|
||||
+ $(cmd_modversions_c) \
|
||||
$(cmd_objtool) \
|
||||
$(call echo-cmd,record_mcount) $(cmd_record_mcount)
|
||||
endef
|
||||
|
||||
define rule_as_o_S
|
||||
$(call cmd_and_fixdep,as_o_S) \
|
||||
+ $(cmd_modversions_S) \
|
||||
$(cmd_objtool)
|
||||
endef
|
||||
|
||||
@@ -314,6 +317,39 @@ modkern_aflags := $(KBUILD_AFLAGS_KERNEL) $(AFLAGS_KERNEL)
|
||||
$(real-objs-m) : modkern_aflags := $(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE)
|
||||
$(real-objs-m:.o=.s): modkern_aflags := $(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE)
|
||||
|
||||
+# .S file exports must have their C prototypes defined in asm/asm-prototypes.h
|
||||
+# or a file that it includes, in order to get versioned symbols. We build a
|
||||
+# dummy C file that includes asm-prototypes and the EXPORT_SYMBOL lines from
|
||||
+# the .S file (with trailing ';'), and run genksyms on that, to extract vers.
|
||||
+#
|
||||
+# This is convoluted. The .S file must first be preprocessed to run guards and
|
||||
+# expand names, then the resulting exports must be constructed into plain
|
||||
+# EXPORT_SYMBOL(symbol); to build our dummy C file, and that gets preprocessed
|
||||
+# to make the genksyms input.
|
||||
+#
|
||||
+# These mirror gensymtypes_c and co above, keep them in synch.
|
||||
+cmd_gensymtypes_S = \
|
||||
+ (echo "\#include <linux/kernel.h>" ; \
|
||||
+ echo "\#include <asm/asm-prototypes.h>" ; \
|
||||
+ $(CPP) $(a_flags) $< | \
|
||||
+ grep ^___EXPORT_SYMBOL | \
|
||||
+ sed 's/___EXPORT_SYMBOL \([a-zA-Z0-9_]*\),.*/EXPORT_SYMBOL(\1);/' ) | \
|
||||
+ $(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \
|
||||
+ $(GENKSYMS) $(if $(1), -T $(2)) \
|
||||
+ $(patsubst y,-s _,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX)) \
|
||||
+ $(if $(KBUILD_PRESERVE),-p) \
|
||||
+ -r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null))
|
||||
+
|
||||
+quiet_cmd_cc_symtypes_S = SYM $(quiet_modtag) $@
|
||||
+cmd_cc_symtypes_S = \
|
||||
+ set -e; \
|
||||
+ $(call cmd_gensymtypes_S,true,$@) >/dev/null; \
|
||||
+ test -s $@ || rm -f $@
|
||||
+
|
||||
+$(obj)/%.symtypes : $(src)/%.S FORCE
|
||||
+ $(call cmd,cc_symtypes_S)
|
||||
+
|
||||
+
|
||||
quiet_cmd_cpp_s_S = CPP $(quiet_modtag) $@
|
||||
cmd_cpp_s_S = $(CPP) $(a_flags) -o $@ $<
|
||||
|
||||
@@ -321,7 +357,37 @@ $(obj)/%.s: $(src)/%.S FORCE
|
||||
$(call if_changed_dep,cpp_s_S)
|
||||
|
||||
quiet_cmd_as_o_S = AS $(quiet_modtag) $@
|
||||
-cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
|
||||
+
|
||||
+ifndef CONFIG_MODVERSIONS
|
||||
+cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
|
||||
+
|
||||
+else
|
||||
+
|
||||
+ASM_PROTOTYPES := $(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/asm-prototypes.h)
|
||||
+
|
||||
+ifeq ($(ASM_PROTOTYPES),)
|
||||
+cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $<
|
||||
+
|
||||
+else
|
||||
+
|
||||
+# versioning matches the C process described above, with difference that
|
||||
+# we parse asm-prototypes.h C header to get function definitions.
|
||||
+
|
||||
+cmd_as_o_S = $(CC) $(a_flags) -c -o $(@D)/.tmp_$(@F) $<
|
||||
+
|
||||
+cmd_modversions_S = \
|
||||
+ if $(OBJDUMP) -h $(@D)/.tmp_$(@F) | grep -q __ksymtab; then \
|
||||
+ $(call cmd_gensymtypes_S,$(KBUILD_SYMTYPES),$(@:.o=.symtypes)) \
|
||||
+ > $(@D)/.tmp_$(@F:.o=.ver); \
|
||||
+ \
|
||||
+ $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \
|
||||
+ -T $(@D)/.tmp_$(@F:.o=.ver); \
|
||||
+ rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver); \
|
||||
+ else \
|
||||
+ mv -f $(@D)/.tmp_$(@F) $@; \
|
||||
+ fi;
|
||||
+endif
|
||||
+endif
|
||||
|
||||
$(obj)/%.o: $(src)/%.S $(objtool_obj) FORCE
|
||||
$(call if_changed_rule,as_o_S)
|
||||
--
|
||||
2.10.2
|
||||
|
192
debian/patches/bugfix/arm/kbuild-provide-include-asm-asm-prototypes.h-for-ARM.patch
vendored
Normal file
192
debian/patches/bugfix/arm/kbuild-provide-include-asm-asm-prototypes.h-for-ARM.patch
vendored
Normal file
|
@ -0,0 +1,192 @@
|
|||
From: Arnd Bergmann <arnd@arndb.de>
|
||||
Subject: kbuild: provide include/asm/asm-prototypes.h for ARM
|
||||
Date: Mon, 24 Oct 2016 17:05:26 +0200
|
||||
Origin: https://patchwork.kernel.org/patch/9392287/
|
||||
|
||||
This adds an asm/asm-prototypes.h header for ARM to fix the
|
||||
broken symbol versioning for symbols exported from assembler
|
||||
files.
|
||||
|
||||
In addition to the header, we have to do these other small
|
||||
changes:
|
||||
|
||||
- move the exports from bitops.h to {change,clear,set,...}bit.S
|
||||
- move the exports from csumpartialgeneric.S into the files
|
||||
including it
|
||||
|
||||
I couldn't find the correct prototypes for the compiler builtins,
|
||||
so I went with the fake 'void f(void)' prototypes that we had
|
||||
before.
|
||||
|
||||
This leaves the mmioset/mmiocpy function for now, as it's not
|
||||
obvious how to best handle them.
|
||||
|
||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||||
---
|
||||
|
||||
diff --git a/arch/arm/include/asm/asm-prototypes.h b/arch/arm/include/asm/asm-prototypes.h
|
||||
new file mode 100644
|
||||
index 000000000000..04e5616a7b15
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/include/asm/asm-prototypes.h
|
||||
@@ -0,0 +1,34 @@
|
||||
+#include <linux/arm-smccc.h>
|
||||
+#include <linux/bitops.h>
|
||||
+#include <linux/ftrace.h>
|
||||
+#include <linux/io.h>
|
||||
+#include <linux/platform_data/asoc-imx-ssi.h>
|
||||
+#include <linux/string.h>
|
||||
+#include <linux/uaccess.h>
|
||||
+
|
||||
+#include <asm/checksum.h>
|
||||
+#include <asm/div64.h>
|
||||
+#include <asm/memory.h>
|
||||
+
|
||||
+extern void __aeabi_idivmod(void);
|
||||
+extern void __aeabi_idiv(void);
|
||||
+extern void __aeabi_lasr(void);
|
||||
+extern void __aeabi_llsl(void);
|
||||
+extern void __aeabi_llsr(void);
|
||||
+extern void __aeabi_lmul(void);
|
||||
+extern void __aeabi_uidivmod(void);
|
||||
+extern void __aeabi_uidiv(void);
|
||||
+extern void __aeabi_ulcmp(void);
|
||||
+
|
||||
+extern void __ashldi3(void);
|
||||
+extern void __ashrdi3(void);
|
||||
+extern void __bswapdi2(void);
|
||||
+extern void __bswapsi2(void);
|
||||
+extern void __divsi3(void);
|
||||
+extern void __do_div64(void);
|
||||
+extern void __lshrdi3(void);
|
||||
+extern void __modsi3(void);
|
||||
+extern void __muldi3(void);
|
||||
+extern void __ucmpdi2(void);
|
||||
+extern void __udivsi3(void);
|
||||
+extern void __umodsi3(void);
|
||||
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h
|
||||
index df06638b327c..afaef2a7faec 100644
|
||||
--- a/arch/arm/lib/bitops.h
|
||||
+++ b/arch/arm/lib/bitops.h
|
||||
@@ -26,7 +26,6 @@ UNWIND( .fnstart )
|
||||
bx lr
|
||||
UNWIND( .fnend )
|
||||
ENDPROC(\name )
|
||||
-EXPORT_SYMBOL(\name )
|
||||
.endm
|
||||
|
||||
.macro testop, name, instr, store
|
||||
@@ -57,7 +56,6 @@ UNWIND( .fnstart )
|
||||
2: bx lr
|
||||
UNWIND( .fnend )
|
||||
ENDPROC(\name )
|
||||
-EXPORT_SYMBOL(\name )
|
||||
.endm
|
||||
#else
|
||||
.macro bitop, name, instr
|
||||
@@ -77,7 +75,6 @@ UNWIND( .fnstart )
|
||||
ret lr
|
||||
UNWIND( .fnend )
|
||||
ENDPROC(\name )
|
||||
-EXPORT_SYMBOL(\name )
|
||||
.endm
|
||||
|
||||
/**
|
||||
@@ -106,6 +103,5 @@ UNWIND( .fnstart )
|
||||
ret lr
|
||||
UNWIND( .fnend )
|
||||
ENDPROC(\name )
|
||||
-EXPORT_SYMBOL(\name )
|
||||
.endm
|
||||
#endif
|
||||
diff --git a/arch/arm/lib/changebit.S b/arch/arm/lib/changebit.S
|
||||
index f4027862172f..005fdd18c509 100644
|
||||
--- a/arch/arm/lib/changebit.S
|
||||
+++ b/arch/arm/lib/changebit.S
|
||||
@@ -13,3 +13,4 @@
|
||||
.text
|
||||
|
||||
bitop _change_bit, eor
|
||||
+EXPORT_SYMBOL(_change_bit)
|
||||
diff --git a/arch/arm/lib/clearbit.S b/arch/arm/lib/clearbit.S
|
||||
index f6b75fb64d30..501eff09968d 100644
|
||||
--- a/arch/arm/lib/clearbit.S
|
||||
+++ b/arch/arm/lib/clearbit.S
|
||||
@@ -13,3 +13,4 @@
|
||||
.text
|
||||
|
||||
bitop _clear_bit, bic
|
||||
+EXPORT_SYMBOL(_clear_bit)
|
||||
diff --git a/arch/arm/lib/csumpartialcopy.S b/arch/arm/lib/csumpartialcopy.S
|
||||
index 9c3383fed129..bdcc2eea4e5c 100644
|
||||
--- a/arch/arm/lib/csumpartialcopy.S
|
||||
+++ b/arch/arm/lib/csumpartialcopy.S
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
#define FN_ENTRY ENTRY(csum_partial_copy_nocheck)
|
||||
#define FN_EXIT ENDPROC(csum_partial_copy_nocheck)
|
||||
-#define FN_EXPORT EXPORT_SYMBOL(csum_partial_copy_nocheck)
|
||||
|
||||
#include "csumpartialcopygeneric.S"
|
||||
+
|
||||
+EXPORT_SYMBOL(csum_partial_copy_nocheck)
|
||||
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S
|
||||
index 8b94d20e51d1..06825566c0f7 100644
|
||||
--- a/arch/arm/lib/csumpartialcopygeneric.S
|
||||
+++ b/arch/arm/lib/csumpartialcopygeneric.S
|
||||
@@ -332,4 +332,3 @@ FN_ENTRY
|
||||
mov r5, r4, get_byte_1
|
||||
b .Lexit
|
||||
FN_EXIT
|
||||
-FN_EXPORT
|
||||
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
|
||||
index 5d495edf3d83..d5522c94f58c 100644
|
||||
--- a/arch/arm/lib/csumpartialcopyuser.S
|
||||
+++ b/arch/arm/lib/csumpartialcopyuser.S
|
||||
@@ -73,9 +73,9 @@
|
||||
|
||||
#define FN_ENTRY ENTRY(csum_partial_copy_from_user)
|
||||
#define FN_EXIT ENDPROC(csum_partial_copy_from_user)
|
||||
-#define FN_EXPORT EXPORT_SYMBOL(csum_partial_copy_from_user)
|
||||
|
||||
#include "csumpartialcopygeneric.S"
|
||||
+EXPORT_SYMBOL(csum_partial_copy_from_user)
|
||||
|
||||
/*
|
||||
* FIXME: minor buglet here
|
||||
diff --git a/arch/arm/lib/setbit.S b/arch/arm/lib/setbit.S
|
||||
index 618fedae4b37..d748b8d1326f 100644
|
||||
--- a/arch/arm/lib/setbit.S
|
||||
+++ b/arch/arm/lib/setbit.S
|
||||
@@ -13,3 +13,4 @@
|
||||
.text
|
||||
|
||||
bitop _set_bit, orr
|
||||
+EXPORT_SYMBOL(_set_bit)
|
||||
diff --git a/arch/arm/lib/testchangebit.S b/arch/arm/lib/testchangebit.S
|
||||
index 4becdc3a59cb..4d2dafa9b787 100644
|
||||
--- a/arch/arm/lib/testchangebit.S
|
||||
+++ b/arch/arm/lib/testchangebit.S
|
||||
@@ -13,3 +13,4 @@
|
||||
.text
|
||||
|
||||
testop _test_and_change_bit, eor, str
|
||||
+EXPORT_SYMBOL(_test_and_change_bit)
|
||||
diff --git a/arch/arm/lib/testclearbit.S b/arch/arm/lib/testclearbit.S
|
||||
index 918841dcce7a..fe5cae2e480a 100644
|
||||
--- a/arch/arm/lib/testclearbit.S
|
||||
+++ b/arch/arm/lib/testclearbit.S
|
||||
@@ -13,3 +13,4 @@
|
||||
.text
|
||||
|
||||
testop _test_and_clear_bit, bicne, strne
|
||||
+EXPORT_SYMBOL(_test_and_clear_bit)
|
||||
diff --git a/arch/arm/lib/testsetbit.S b/arch/arm/lib/testsetbit.S
|
||||
index 8d1b2fe9e487..25fed837edb3 100644
|
||||
--- a/arch/arm/lib/testsetbit.S
|
||||
+++ b/arch/arm/lib/testsetbit.S
|
||||
@@ -13,3 +13,4 @@
|
||||
.text
|
||||
|
||||
testop _test_and_set_bit, orreq, streq
|
||||
+EXPORT_SYMBOL(_test_and_set_bit)
|
|
@ -48,6 +48,10 @@ debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch
|
|||
# Arch bug fixes
|
||||
bugfix/arm64/arm64-mm-limit-task_size_64-for-compatibility.patch
|
||||
bugfix/x86/x86-efi-prevent-mixed-mode-boot-corruption-with-conf.patch
|
||||
bugfix/arm/kbuild-modversions-for-EXPORT_SYMBOL-for-asm.patch
|
||||
bugfix/arm/kbuild-be-more-careful-about-matching-preprocessed-a.patch
|
||||
bugfix/arm/kbuild-provide-include-asm-asm-prototypes.h-for-ARM.patch
|
||||
bugfix/arm/ARM-move-mmiocpy-mmioset-exports-to-io.c.patch
|
||||
|
||||
# Arch features
|
||||
features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
|
||||
|
|
Loading…
Reference in New Issue