diff options
| author | Petr Mladek <pmladek@suse.com> | 2021-11-02 10:39:27 +0100 | 
|---|---|---|
| committer | Petr Mladek <pmladek@suse.com> | 2021-11-02 10:39:27 +0100 | 
| commit | 40e64a88dadcfa168914065baf7f035de957bbe0 (patch) | |
| tree | 06c8c4a9e6c1b478aa6851794c6a33bec1ce6ec4 /scripts/mod | |
| parent | 24a1dffbecafeb00d8830985eb7a318e37aabc4e (diff) | |
| parent | 6a7ca80f4033c9cf3003625b2ef8b497f4ec44da (diff) | |
Merge branch 'for-5.16-vsprintf-pgp' into for-linus
Diffstat (limited to 'scripts/mod')
| -rw-r--r-- | scripts/mod/devicetable-offsets.c | 1 | ||||
| -rw-r--r-- | scripts/mod/file2alias.c | 17 | ||||
| -rw-r--r-- | scripts/mod/modpost.c | 13 | ||||
| -rw-r--r-- | scripts/mod/modpost.h | 9 | ||||
| -rw-r--r-- | scripts/mod/sumversion.c | 7 | 
5 files changed, 28 insertions, 19 deletions
diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c index 9bb6c7edccc4..cc3625617a0e 100644 --- a/scripts/mod/devicetable-offsets.c +++ b/scripts/mod/devicetable-offsets.c @@ -42,6 +42,7 @@ int main(void)  	DEVID_FIELD(pci_device_id, subdevice);  	DEVID_FIELD(pci_device_id, class);  	DEVID_FIELD(pci_device_id, class_mask); +	DEVID_FIELD(pci_device_id, override_only);  	DEVID(ccw_device_id);  	DEVID_FIELD(ccw_device_id, match_flags); diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 7c97fa8e36bc..49aba862073e 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -426,7 +426,7 @@ static int do_ieee1394_entry(const char *filename,  	return 1;  } -/* Looks like: pci:vNdNsvNsdNbcNscNiN. */ +/* Looks like: pci:vNdNsvNsdNbcNscNiN or <prefix>_pci:vNdNsvNsdNbcNscNiN. */  static int do_pci_entry(const char *filename,  			void *symval, char *alias)  { @@ -440,8 +440,21 @@ static int do_pci_entry(const char *filename,  	DEF_FIELD(symval, pci_device_id, subdevice);  	DEF_FIELD(symval, pci_device_id, class);  	DEF_FIELD(symval, pci_device_id, class_mask); +	DEF_FIELD(symval, pci_device_id, override_only); + +	switch (override_only) { +	case 0: +		strcpy(alias, "pci:"); +		break; +	case PCI_ID_F_VFIO_DRIVER_OVERRIDE: +		strcpy(alias, "vfio_pci:"); +		break; +	default: +		warn("Unknown PCI driver_override alias %08X\n", +		     override_only); +		return 0; +	} -	strcpy(alias, "pci:");  	ADD(alias, "v", vendor != PCI_ANY_ID, vendor);  	ADD(alias, "d", device != PCI_ANY_ID, device);  	ADD(alias, "sv", subvendor != PCI_ANY_ID, subvendor); diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 270a7df898e2..cb8ab7d91d30 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -17,6 +17,7 @@  #include <ctype.h>  #include <string.h>  #include <limits.h> +#include <stdbool.h>  #include <errno.h>  #include "modpost.h"  #include "../../include/linux/license.h" @@ -89,6 +90,14 @@ modpost_log(enum loglevel loglevel, const char *fmt, ...)  		error_occurred = true;  } +static inline bool strends(const char *str, const char *postfix) +{ +	if (strlen(str) < strlen(postfix)) +		return false; + +	return strcmp(str + strlen(str) - strlen(postfix), postfix) == 0; +} +  void *do_nofail(void *ptr, const char *expr)  {  	if (!ptr) @@ -931,7 +940,7 @@ static void check_section(const char *modname, struct elf_info *elf,  		".kprobes.text", ".cpuidle.text", ".noinstr.text"  #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \  		".fixup", ".entry.text", ".exception.text", ".text.*", \ -		".coldtext" +		".coldtext", ".softirqentry.text"  #define INIT_SECTIONS      ".init.*"  #define MEM_INIT_SECTIONS  ".meminit.*" @@ -2060,7 +2069,7 @@ static void read_symbols(const char *modname)  	if (!mod->is_vmlinux) {  		version = get_modinfo(&info, "version");  		if (version || all_versions) -			get_src_version(modname, mod->srcversion, +			get_src_version(mod->name, mod->srcversion,  					sizeof(mod->srcversion) - 1);  	} diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index c1a895c0d682..0c47ff95c0e2 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -2,7 +2,6 @@  #include <stdio.h>  #include <stdlib.h>  #include <stdarg.h> -#include <stdbool.h>  #include <string.h>  #include <sys/types.h>  #include <sys/stat.h> @@ -178,14 +177,6 @@ static inline unsigned int get_secindex(const struct elf_info *info,  	return info->symtab_shndx_start[sym - info->symtab_start];  } -static inline bool strends(const char *str, const char *postfix) -{ -	if (strlen(str) < strlen(postfix)) -		return false; - -	return strcmp(str + strlen(str) - strlen(postfix), postfix) == 0; -} -  /* file2alias.c */  extern unsigned int cross_build;  void handle_moddevtable(struct module *mod, struct elf_info *info, diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c index 760e6baa7eda..905c0ec291e1 100644 --- a/scripts/mod/sumversion.c +++ b/scripts/mod/sumversion.c @@ -391,14 +391,9 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)  	struct md4_ctx md;  	char *fname;  	char filelist[PATH_MAX + 1]; -	int postfix_len = 1; - -	if (strends(modname, ".lto.o")) -		postfix_len = 5;  	/* objects for a module are listed in the first line of *.mod file. */ -	snprintf(filelist, sizeof(filelist), "%.*smod", -		 (int)strlen(modname) - postfix_len, modname); +	snprintf(filelist, sizeof(filelist), "%s.mod", modname);  	buf = read_text_file(filelist);  | 
