mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
Merge tag 'v6.6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroid-6.6.y
This is the 6.6.18 stable release Change-Id: Ia858c852fcc18cc41b5e2e99ce138f7c2d1ed2f3
This commit is contained in:
@@ -135,8 +135,13 @@ gen_btf()
|
||||
${OBJCOPY} --only-section=.BTF --set-section-flags .BTF=alloc,readonly \
|
||||
--strip-all ${1} ${2} 2>/dev/null
|
||||
# Change e_type to ET_REL so that it can be used to link final vmlinux.
|
||||
# Unlike GNU ld, lld does not allow an ET_EXEC input.
|
||||
printf '\1' | dd of=${2} conv=notrunc bs=1 seek=16 status=none
|
||||
# GNU ld 2.35+ and lld do not allow an ET_EXEC input.
|
||||
if is_enabled CONFIG_CPU_BIG_ENDIAN; then
|
||||
et_rel='\0\1'
|
||||
else
|
||||
et_rel='\1\0'
|
||||
fi
|
||||
printf "${et_rel}" | dd of=${2} conv=notrunc bs=1 seek=16 status=none
|
||||
}
|
||||
|
||||
# Create ${2} .S file with all symbols from the ${1} object file
|
||||
|
||||
@@ -48,17 +48,8 @@ ${NM} -n ${1} | sed >${2} -e "
|
||||
/ __kvm_nvhe_\\$/d
|
||||
/ __kvm_nvhe_\.L/d
|
||||
|
||||
# arm64 lld
|
||||
/ __AArch64ADRPThunk_/d
|
||||
|
||||
# arm lld
|
||||
/ __ARMV5PILongThunk_/d
|
||||
/ __ARMV7PILongThunk_/d
|
||||
/ __ThumbV7PILongThunk_/d
|
||||
|
||||
# mips lld
|
||||
/ __LA25Thunk_/d
|
||||
/ __microLA25Thunk_/d
|
||||
# lld arm/aarch64/mips thunks
|
||||
/ __[[:alnum:]]*Thunk_/d
|
||||
|
||||
# CFI type identifiers
|
||||
/ __kcfi_typeid_/d
|
||||
|
||||
@@ -798,7 +798,7 @@ static void check_section(const char *modname, struct elf_info *elf,
|
||||
#define ALL_INIT_TEXT_SECTIONS \
|
||||
".init.text", ".meminit.text"
|
||||
#define ALL_EXIT_TEXT_SECTIONS \
|
||||
".exit.text", ".memexit.text"
|
||||
".exit.text"
|
||||
|
||||
#define ALL_PCI_INIT_SECTIONS \
|
||||
".pci_fixup_early", ".pci_fixup_header", ".pci_fixup_final", \
|
||||
@@ -806,14 +806,14 @@ static void check_section(const char *modname, struct elf_info *elf,
|
||||
".pci_fixup_resume_early", ".pci_fixup_suspend"
|
||||
|
||||
#define ALL_XXXINIT_SECTIONS MEM_INIT_SECTIONS
|
||||
#define ALL_XXXEXIT_SECTIONS MEM_EXIT_SECTIONS
|
||||
|
||||
#define ALL_INIT_SECTIONS INIT_SECTIONS, ALL_XXXINIT_SECTIONS
|
||||
#define ALL_EXIT_SECTIONS EXIT_SECTIONS, ALL_XXXEXIT_SECTIONS
|
||||
#define ALL_EXIT_SECTIONS EXIT_SECTIONS
|
||||
|
||||
#define DATA_SECTIONS ".data", ".data.rel"
|
||||
#define TEXT_SECTIONS ".text", ".text.*", ".sched.text", \
|
||||
".kprobes.text", ".cpuidle.text", ".noinstr.text"
|
||||
".kprobes.text", ".cpuidle.text", ".noinstr.text", \
|
||||
".ltext", ".ltext.*"
|
||||
#define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \
|
||||
".fixup", ".entry.text", ".exception.text", \
|
||||
".coldtext", ".softirqentry.text"
|
||||
@@ -822,7 +822,6 @@ static void check_section(const char *modname, struct elf_info *elf,
|
||||
#define MEM_INIT_SECTIONS ".meminit.*"
|
||||
|
||||
#define EXIT_SECTIONS ".exit.*"
|
||||
#define MEM_EXIT_SECTIONS ".memexit.*"
|
||||
|
||||
#define ALL_TEXT_SECTIONS ALL_INIT_TEXT_SECTIONS, ALL_EXIT_TEXT_SECTIONS, \
|
||||
TEXT_SECTIONS, OTHER_TEXT_SECTIONS
|
||||
@@ -832,7 +831,6 @@ enum mismatch {
|
||||
DATA_TO_ANY_INIT,
|
||||
TEXTDATA_TO_ANY_EXIT,
|
||||
XXXINIT_TO_SOME_INIT,
|
||||
XXXEXIT_TO_SOME_EXIT,
|
||||
ANY_INIT_TO_ANY_EXIT,
|
||||
ANY_EXIT_TO_ANY_INIT,
|
||||
EXTABLE_TO_NON_TEXT,
|
||||
@@ -883,12 +881,6 @@ static const struct sectioncheck sectioncheck[] = {
|
||||
.bad_tosec = { INIT_SECTIONS, NULL },
|
||||
.mismatch = XXXINIT_TO_SOME_INIT,
|
||||
},
|
||||
/* Do not reference exit code/data from memexit code/data */
|
||||
{
|
||||
.fromsec = { ALL_XXXEXIT_SECTIONS, NULL },
|
||||
.bad_tosec = { EXIT_SECTIONS, NULL },
|
||||
.mismatch = XXXEXIT_TO_SOME_EXIT,
|
||||
},
|
||||
/* Do not use exit code/data from init code */
|
||||
{
|
||||
.fromsec = { ALL_INIT_SECTIONS, NULL },
|
||||
@@ -1017,7 +1009,7 @@ static int secref_whitelist(const char *fromsec, const char *fromsym,
|
||||
|
||||
/* symbols in data sections that may refer to meminit sections */
|
||||
if (match(fromsec, PATTERNS(DATA_SECTIONS)) &&
|
||||
match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS, ALL_XXXEXIT_SECTIONS)) &&
|
||||
match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS)) &&
|
||||
match(fromsym, PATTERNS("*driver")))
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -326,7 +326,12 @@ static int parse_source_files(const char *objfile, struct md4_ctx *md)
|
||||
|
||||
/* Sum all files in the same dir or subdirs. */
|
||||
while ((line = get_line(&pos))) {
|
||||
char* p = line;
|
||||
char* p;
|
||||
|
||||
/* trim the leading spaces away */
|
||||
while (isspace(*line))
|
||||
line++;
|
||||
p = line;
|
||||
|
||||
if (strncmp(line, "source_", sizeof("source_")-1) == 0) {
|
||||
p = strrchr(line, ' ');
|
||||
|
||||
Reference in New Issue
Block a user