You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
Merge tag 'v6.1.84'
This is the 6.1.84 stable release * tag 'v6.1.84': (1865 commits) Linux 6.1.84 tools/resolve_btfids: fix build with musl libc USB: core: Fix deadlock in usb_deauthorize_interface() x86/sev: Skip ROM range scans and validation for SEV-SNP guests scsi: libsas: Fix disk not being scanned in after being removed scsi: libsas: Add a helper sas_get_sas_addr_and_dev_type() scsi: lpfc: Correct size for wqe for memset() scsi: lpfc: Correct size for cmdwqe/rspwqe for memset() tls: fix use-after-free on failed backlog decryption x86/cpu: Enable STIBP on AMD if Automatic IBRS is enabled scsi: qla2xxx: Delay I/O Abort on PCI error scsi: qla2xxx: Change debug message during driver unload scsi: qla2xxx: Fix double free of fcport scsi: qla2xxx: Fix command flush on cable pull scsi: qla2xxx: NVME|FCP prefer flag not being honored scsi: qla2xxx: Update manufacturer detail scsi: qla2xxx: Split FCE|EFT trace control scsi: qla2xxx: Fix N2N stuck connection scsi: qla2xxx: Prevent command send on chip reset usb: typec: ucsi: Clear UCSI_CCI_RESET_COMPLETE before reset ... Change-Id: If6edd552c88012d97f5eefc5e1d97a4f1683f171 Conflicts: drivers/gpu/drm/bridge/sii902x.c drivers/gpu/drm/rockchip/rockchip_lvds.c drivers/media/i2c/imx335.c drivers/usb/dwc3/gadget.c drivers/usb/host/xhci-plat.c sound/soc/rockchip/rockchip_i2s_tdm.c
This commit is contained in:
@@ -65,6 +65,8 @@ KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
|
||||
KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, cast-function-type-strict)
|
||||
KBUILD_CFLAGS += -Wno-enum-compare-conditional
|
||||
KBUILD_CFLAGS += -Wno-enum-enum-conversion
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
@@ -44,6 +44,7 @@ modpost-args = \
|
||||
$(if $(CONFIG_SECTION_MISMATCH_WARN_ONLY),,-E) \
|
||||
$(if $(KBUILD_NSDEPS),-d $(MODULES_NSDEPS)) \
|
||||
$(if $(CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS)$(KBUILD_NSDEPS),-N) \
|
||||
$(if $(findstring 1, $(KBUILD_EXTRA_WARN)),-W) \
|
||||
-o $@
|
||||
|
||||
# 'make -i -k' ignores compile errors, and builds as many modules as possible.
|
||||
|
||||
@@ -495,7 +495,7 @@ eBPF programs can have an associated license, passed along with the bytecode
|
||||
instructions to the kernel when the programs are loaded. The format for that
|
||||
string is identical to the one in use for kernel modules (Dual licenses, such
|
||||
as "Dual BSD/GPL", may be used). Some helper functions are only accessible to
|
||||
programs that are compatible with the GNU Privacy License (GPL).
|
||||
programs that are compatible with the GNU General Public License (GNU GPL).
|
||||
|
||||
In order to use such helpers, the eBPF program must be loaded with the correct
|
||||
license string passed (via **attr**) to the **bpf**\ () system call, and this
|
||||
|
||||
@@ -4971,7 +4971,7 @@ sub process {
|
||||
if|for|while|switch|return|case|
|
||||
volatile|__volatile__|
|
||||
__attribute__|format|__extension__|
|
||||
asm|__asm__)$/x)
|
||||
asm|__asm__|scoped_guard)$/x)
|
||||
{
|
||||
# cpp #define statements have non-optional spaces, ie
|
||||
# if there is a space between the name and the open
|
||||
|
||||
@@ -170,7 +170,7 @@ def process_line(root_directory, command_prefix, file_path):
|
||||
# escape the pound sign '#', either as '\#' or '$(pound)' (depending on the
|
||||
# kernel version). The compile_commands.json file is not interepreted
|
||||
# by Make, so this code replaces the escaped version with '#'.
|
||||
prefix = command_prefix.replace('\#', '#').replace('$(pound)', '#')
|
||||
prefix = command_prefix.replace(r'\#', '#').replace('$(pound)', '#')
|
||||
|
||||
# Use os.path.abspath() to normalize the path resolving '.' and '..' .
|
||||
abs_path = os.path.abspath(os.path.join(root_directory, file_path))
|
||||
|
||||
@@ -98,7 +98,7 @@ sub parse_abi {
|
||||
$name =~ s,.*/,,;
|
||||
|
||||
my $fn = $file;
|
||||
$fn =~ s,Documentation/ABI/,,;
|
||||
$fn =~ s,.*Documentation/ABI/,,;
|
||||
|
||||
my $nametag = "File $fn";
|
||||
$data{$nametag}->{what} = "File $name";
|
||||
|
||||
@@ -302,8 +302,11 @@ static char *expand_token(const char *in, size_t n)
|
||||
new_string();
|
||||
append_string(in, n);
|
||||
|
||||
/* get the whole line because we do not know the end of token. */
|
||||
while ((c = input()) != EOF) {
|
||||
/*
|
||||
* get the whole line because we do not know the end of token.
|
||||
* input() returns 0 (not EOF!) when it reachs the end of file.
|
||||
*/
|
||||
while ((c = input()) != 0) {
|
||||
if (c == '\n') {
|
||||
unput(c);
|
||||
break;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -41,6 +41,8 @@ static bool allow_missing_ns_imports;
|
||||
|
||||
static bool error_occurred;
|
||||
|
||||
static bool extra_warn;
|
||||
|
||||
/*
|
||||
* Cut off the warnings when there are too many. This typically occurs when
|
||||
* vmlinux is missing. ('make modules' without building vmlinux.)
|
||||
@@ -809,7 +811,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", \
|
||||
@@ -817,23 +819,22 @@ 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.unlikely", ".sched.text", \
|
||||
".kprobes.text", ".cpuidle.text", ".noinstr.text"
|
||||
#define TEXT_SECTIONS ".text", ".text.*", ".sched.text", \
|
||||
".kprobes.text", ".cpuidle.text", ".noinstr.text", \
|
||||
".ltext", ".ltext.*"
|
||||
#define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \
|
||||
".fixup", ".entry.text", ".exception.text", ".text.*", \
|
||||
".fixup", ".entry.text", ".exception.text", \
|
||||
".coldtext", ".softirqentry.text"
|
||||
|
||||
#define INIT_SECTIONS ".init.*"
|
||||
#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
|
||||
@@ -862,7 +863,6 @@ enum mismatch {
|
||||
TEXT_TO_ANY_EXIT,
|
||||
DATA_TO_ANY_EXIT,
|
||||
XXXINIT_TO_SOME_INIT,
|
||||
XXXEXIT_TO_SOME_EXIT,
|
||||
ANY_INIT_TO_ANY_EXIT,
|
||||
ANY_EXIT_TO_ANY_INIT,
|
||||
EXPORT_TO_INIT_EXIT,
|
||||
@@ -937,12 +937,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 },
|
||||
@@ -1085,9 +1079,20 @@ static int secref_whitelist(const struct sectioncheck *mismatch,
|
||||
"*_console")))
|
||||
return 0;
|
||||
|
||||
/* symbols in data sections that may refer to meminit/exit sections */
|
||||
/* symbols in data sections that may refer to meminit sections */
|
||||
if (match(fromsec, PATTERNS(DATA_SECTIONS)) &&
|
||||
match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS, ALL_EXIT_SECTIONS)) &&
|
||||
match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS)) &&
|
||||
match(fromsym, PATTERNS("*driver")))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* symbols in data sections must not refer to .exit.*, but there are
|
||||
* quite a few offenders, so hide these unless for W=1 builds until
|
||||
* these are fixed.
|
||||
*/
|
||||
if (!extra_warn &&
|
||||
match(fromsec, PATTERNS(DATA_SECTIONS)) &&
|
||||
match(tosec, PATTERNS(EXIT_SECTIONS)) &&
|
||||
match(fromsym, PATTERNS("*driver")))
|
||||
return 0;
|
||||
|
||||
@@ -1254,7 +1259,6 @@ static void report_sec_mismatch(const char *modname,
|
||||
case TEXT_TO_ANY_EXIT:
|
||||
case DATA_TO_ANY_EXIT:
|
||||
case XXXINIT_TO_SOME_INIT:
|
||||
case XXXEXIT_TO_SOME_EXIT:
|
||||
case ANY_INIT_TO_ANY_EXIT:
|
||||
case ANY_EXIT_TO_ANY_INIT:
|
||||
warn("%s: section mismatch in reference: %s (section: %s) -> %s (section: %s)\n",
|
||||
@@ -2290,7 +2294,7 @@ int main(int argc, char **argv)
|
||||
LIST_HEAD(dump_lists);
|
||||
struct dump_list *dl, *dl2;
|
||||
|
||||
while ((opt = getopt(argc, argv, "ei:mnT:o:awENd:")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "ei:mnT:o:aWwENd:")) != -1) {
|
||||
switch (opt) {
|
||||
case 'e':
|
||||
external_module = true;
|
||||
@@ -2315,6 +2319,9 @@ int main(int argc, char **argv)
|
||||
case 'T':
|
||||
files_source = optarg;
|
||||
break;
|
||||
case 'W':
|
||||
extra_warn = true;
|
||||
break;
|
||||
case 'w':
|
||||
warn_unresolved = true;
|
||||
break;
|
||||
|
||||
@@ -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