|
Jeff Mahoney |
450b8d |
From: Jeff Mahoney <jeffm@suse.com>
|
|
Jeff Mahoney |
450b8d |
Subject: kernel: add product-identifying information to kernel build
|
|
Michal Kubecek |
0a6d0d |
Patch-mainline: Never, SUSE specific
|
|
Michal Kubecek |
b493de |
References: FATE#325281
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
Our kernels may be offered using the same base kernel version across
|
|
Jeff Mahoney |
450b8d |
several product streams. We have tags in our git repository to map
|
|
Jeff Mahoney |
450b8d |
specific versions to a release, but that requires having easy access
|
|
Jeff Mahoney |
450b8d |
to the repository and taking the multiple steps to resolve the release
|
|
Jeff Mahoney |
450b8d |
information.
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
This patch makes the product release easier to discover by both SUSE
|
|
Jeff Mahoney |
450b8d |
support staff and third-party developers.
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
This adds a new <linux/suse_version.h> header that defines several
|
|
Jeff Mahoney |
450b8d |
values that can be used to programatically discover what kernel
|
|
Jeff Mahoney |
450b8d |
version is being used:
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
* SUSE_PRODUCT_FAMILY The "family" of product, e.g. SLE or Leap
|
|
Jeff Mahoney |
450b8d |
* SUSE_PRODUCT_NAME The full product name, which may consist of
|
|
Jeff Mahoney |
450b8d |
several whitespace-separated words
|
|
Jeff Mahoney |
450b8d |
* SUSE_PRODUCT_SHORTNAME The abbreviated product name where it makes
|
|
Jeff Mahoney |
450b8d |
sense, e.g. SLE15-SP1.
|
|
Jeff Mahoney |
450b8d |
* SUSE_VERSION Numeric major number of release
|
|
Jeff Mahoney |
450b8d |
* SUSE_PATCHLEVEL The minor numer or service pack level of the
|
|
Jeff Mahoney |
450b8d |
release
|
|
Jeff Mahoney |
450b8d |
* SUSE_AUXRELEASE Currently unused
|
|
Jeff Mahoney |
450b8d |
* SUSE_PRODUCT_CODE An encoded product code that is the result of
|
|
Jeff Mahoney |
450b8d |
combining the family, version, patchlevel, and
|
|
Jeff Mahoney |
450b8d |
aux release
|
|
Jeff Mahoney |
450b8d |
* SUSE_PRODUCT Macro to use to generate the code
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
It also adds a new "suserelease" module tag that contains the
|
|
Jeff Mahoney |
450b8d |
shortname and also prints the shortname after the kernel version during
|
|
Jeff Mahoney |
450b8d |
system faults.
|
|
Jeff Mahoney |
450b8d |
|
|
Michal Kubecek |
8751a9 |
mkubecek: after 5.17-rc1 mainline commit 129ab0d2d9f3 ("kbuild: do not
|
|
Michal Kubecek |
8751a9 |
quote string values in include/config/auto.conf"), we cannot include
|
|
Michal Kubecek |
8751a9 |
include/config/auto.conf in scripts/gen-suse_version_h.sh any more, extract
|
|
Michal Kubecek |
8751a9 |
the config values from it manually.
|
|
Michal Kubecek |
8751a9 |
|
|
Jeff Mahoney |
450b8d |
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
|
Jeff Mahoney |
450b8d |
---
|
|
Jeff Mahoney |
0f442b |
Makefile | 12 ++++-
|
|
Jeff Mahoney |
a26a81 |
init/Kconfig.suse | 86 ++++++++++++++++++++++++++++++++++++
|
|
Jeff Mahoney |
0f442b |
lib/dump_stack.c | 5 +-
|
|
Jeff Mahoney |
a26a81 |
scripts/gen-suse_version_h.sh | 100 ++++++++++++++++++++++++++++++++++++++++++
|
|
Jeff Mahoney |
0f442b |
scripts/mod/modpost.c | 10 ++++
|
|
Jeff Mahoney |
a26a81 |
5 files changed, 210 insertions(+), 3 deletions(-)
|
|
Michal Kubecek |
4e61ec |
create mode 100644 scripts/gen-suse_version_h.sh
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
--- a/Makefile
|
|
Jeff Mahoney |
450b8d |
+++ b/Makefile
|
|
Jeff Mahoney |
0f442b |
@@ -1173,6 +1173,15 @@ export extmod_prefix = $(if $(KBUILD_EXT
|
|
Michal Kubecek |
0ba08a |
export MODORDER := $(extmod_prefix)modules.order
|
|
Michal Kubecek |
0ba08a |
export MODULES_NSDEPS := $(extmod_prefix)modules.nsdeps
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
+suse_version_h := include/generated/uapi/linux/suse_version.h
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+define filechk_suse_version
|
|
Jeff Mahoney |
450b8d |
+ $(CONFIG_SHELL) $(srctree)/scripts/gen-suse_version_h.sh
|
|
Jeff Mahoney |
450b8d |
+endef
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+$(suse_version_h): include/config/auto.conf FORCE
|
|
Jeff Mahoney |
450b8d |
+ $(call filechk,suse_version)
|
|
Jeff Mahoney |
450b8d |
+
|
|
Michal Kubecek |
4e61ec |
ifeq ($(KBUILD_EXTMOD),)
|
|
Michal Kubecek |
79462d |
|
|
Michal Kubecek |
79462d |
build-dir := .
|
|
Michal Kubecek |
79462d |
@@ -1268,7 +1277,8 @@ PHONY += prepare archprepare
|
|
Jeff Mahoney |
450b8d |
|
|
Michal Kubecek |
059916 |
archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \
|
|
Michal Kubecek |
887490 |
asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h \
|
|
Michal Kubecek |
79462d |
- include/generated/compile.h include/generated/autoconf.h remove-stale-files
|
|
Michal Kubecek |
79462d |
+ include/generated/compile.h include/generated/autoconf.h remove-stale-files \
|
|
Michal Kubecek |
79462d |
+ $(suse_version_h)
|
|
Jeff Mahoney |
450b8d |
|
|
Michal Kubecek |
0a6d0d |
prepare0: archprepare
|
|
Michal Kubecek |
0a6d0d |
$(Q)$(MAKE) $(build)=scripts/mod
|
|
Jeff Mahoney |
450b8d |
--- a/init/Kconfig.suse
|
|
Jeff Mahoney |
450b8d |
+++ b/init/Kconfig.suse
|
|
Jeff Mahoney |
0f442b |
@@ -1,6 +1,91 @@
|
|
Jeff Mahoney |
450b8d |
config SUSE_KERNEL
|
|
Jeff Mahoney |
450b8d |
def_bool y
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
+menu "SUSE Release Details"
|
|
Jeff Mahoney |
450b8d |
+choice SUSE_PRODUCT_CODE
|
|
Jeff Mahoney |
450b8d |
+ prompt "SUSE Product Family"
|
|
Jeff Mahoney |
450b8d |
+ default SUSE_PRODUCT_SLE
|
|
Jeff Mahoney |
450b8d |
+ depends on SUSE_KERNEL
|
|
Jeff Mahoney |
450b8d |
+ help
|
|
Jeff Mahoney |
450b8d |
+ This option defines the SUSE product family that owns this
|
|
Jeff Mahoney |
450b8d |
+ kernel release.
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PRODUCT_SLE
|
|
Jeff Mahoney |
450b8d |
+ bool "SUSE Linux Enteprise"
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PRODUCT_OPENSUSE_LEAP
|
|
Jeff Mahoney |
450b8d |
+ bool "openSUSE Leap"
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PRODUCT_OPENSUSE_TUMBLEWEED
|
|
Jeff Mahoney |
450b8d |
+ bool "openSUSE Tumbleweed"
|
|
Jeff Mahoney |
0f442b |
+
|
|
Jeff Mahoney |
0f442b |
+config SUSE_PRODUCT_ALP
|
|
Jeff Mahoney |
0f442b |
+ bool "SUSE Adaptable Linux Platform"
|
|
Jeff Mahoney |
450b8d |
+endchoice
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PRODUCT_CODE
|
|
Jeff Mahoney |
450b8d |
+ int
|
|
Jeff Mahoney |
0f442b |
+ range 1 4
|
|
Jeff Mahoney |
450b8d |
+ default 1 if SUSE_PRODUCT_SLE
|
|
Jeff Mahoney |
450b8d |
+ default 2 if SUSE_PRODUCT_OPENSUSE_LEAP
|
|
Jeff Mahoney |
450b8d |
+ default 3 if SUSE_PRODUCT_OPENSUSE_TUMBLEWEED
|
|
Jeff Mahoney |
0f442b |
+ default 4 if SUSE_PRODUCT_ALP
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+if SUSE_PRODUCT_SLE
|
|
Jeff Mahoney |
450b8d |
+config SUSE_VERSION
|
|
Jeff Mahoney |
450b8d |
+ int "Release Version"
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 255
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PATCHLEVEL
|
|
Jeff Mahoney |
450b8d |
+ int "Service Pack Version"
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 255
|
|
Jeff Mahoney |
450b8d |
+endif
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+if SUSE_PRODUCT_OPENSUSE_LEAP
|
|
Jeff Mahoney |
450b8d |
+config SUSE_VERSION
|
|
Jeff Mahoney |
450b8d |
+ int "Release Major Version"
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 255
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PATCHLEVEL
|
|
Jeff Mahoney |
450b8d |
+ int "Release Minor Version"
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 255
|
|
Jeff Mahoney |
450b8d |
+endif
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+# Tumbleweed doesn't currently use version information, but we should
|
|
Jeff Mahoney |
450b8d |
+# still have the values defined even if zeroed out.
|
|
Jeff Mahoney |
450b8d |
+if SUSE_PRODUCT_OPENSUSE_TUMBLEWEED
|
|
Jeff Mahoney |
450b8d |
+config SUSE_VERSION
|
|
Jeff Mahoney |
450b8d |
+ int
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 0
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_PATCHLEVEL
|
|
Jeff Mahoney |
450b8d |
+ int
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 0
|
|
Jeff Mahoney |
450b8d |
+endif
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
0f442b |
+if SUSE_PRODUCT_ALP
|
|
Jeff Mahoney |
0f442b |
+config SUSE_VERSION
|
|
Jeff Mahoney |
0f442b |
+ int "Release Major Version"
|
|
Jeff Mahoney |
0f442b |
+ range 0 255
|
|
Jeff Mahoney |
0f442b |
+ default 255
|
|
Jeff Mahoney |
0f442b |
+
|
|
Jeff Mahoney |
0f442b |
+config SUSE_PATCHLEVEL
|
|
Jeff Mahoney |
0f442b |
+ int "Release Minor Version"
|
|
Jeff Mahoney |
0f442b |
+ range 0 255
|
|
Jeff Mahoney |
0f442b |
+ default 255
|
|
Jeff Mahoney |
0f442b |
+endif
|
|
Jeff Mahoney |
0f442b |
+
|
|
Jeff Mahoney |
450b8d |
+config SUSE_AUXRELEASE
|
|
Jeff Mahoney |
450b8d |
+ int
|
|
Jeff Mahoney |
450b8d |
+ range 0 255
|
|
Jeff Mahoney |
450b8d |
+ default 0
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
config SUSE_KERNEL_SUPPORTED
|
|
Jeff Mahoney |
450b8d |
bool "Enable enterprise support facility"
|
|
Jeff Mahoney |
450b8d |
depends on SUSE_KERNEL
|
|
Jeff Mahoney |
0f442b |
@@ -18,3 +103,4 @@ config SUSE_KERNEL_SUPPORTED
|
|
Jeff Mahoney |
450b8d |
If you aren't building a kernel for an enterprise distribution,
|
|
Jeff Mahoney |
450b8d |
say n.
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
+endmenu
|
|
Michal Kubecek |
4e61ec |
--- a/lib/dump_stack.c
|
|
Michal Kubecek |
4e61ec |
+++ b/lib/dump_stack.c
|
|
Michal Kubecek |
34fe32 |
@@ -14,6 +14,7 @@
|
|
Michal Kubecek |
4e61ec |
#include <linux/kexec.h>
|
|
Michal Kubecek |
4e61ec |
#include <linux/utsname.h>
|
|
Michal Kubecek |
acbbbf |
#include <linux/stop_machine.h>
|
|
Jeff Mahoney |
450b8d |
+#include <linux/suse_version.h>
|
|
Jeff Mahoney |
450b8d |
|
|
Michal Kubecek |
4e61ec |
static char dump_stack_arch_desc_str[128];
|
|
Michal Kubecek |
4e61ec |
|
|
Jeff Mahoney |
0f442b |
@@ -54,13 +55,13 @@ void __init dump_stack_set_arch_desc(con
|
|
Jeff Mahoney |
450b8d |
*/
|
|
Jeff Mahoney |
450b8d |
void dump_stack_print_info(const char *log_lvl)
|
|
Jeff Mahoney |
450b8d |
{
|
|
Michal Kubecek |
34fe32 |
- printk("%sCPU: %d PID: %d Comm: %.20s %s%s %s %.*s" BUILD_ID_FMT "\n",
|
|
Michal Kubecek |
34fe32 |
+ printk("%sCPU: %d PID: %d Comm: %.20s %s%s %s %.*s %s" BUILD_ID_FMT "\n",
|
|
Jeff Mahoney |
450b8d |
log_lvl, raw_smp_processor_id(), current->pid, current->comm,
|
|
Michal Kubecek |
4e61ec |
kexec_crash_loaded() ? "Kdump: loaded " : "",
|
|
Michal Kubecek |
4e61ec |
print_tainted(),
|
|
Michal Kubecek |
4e61ec |
init_utsname()->release,
|
|
Jeff Mahoney |
450b8d |
(int)strcspn(init_utsname()->version, " "),
|
|
Michal Kubecek |
34fe32 |
- init_utsname()->version, BUILD_ID_VAL);
|
|
Michal Kubecek |
34fe32 |
+ init_utsname()->version, SUSE_PRODUCT_SHORTNAME, BUILD_ID_VAL);
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
if (dump_stack_arch_desc_str[0] != '\0')
|
|
Jeff Mahoney |
450b8d |
printk("%sHardware name: %s\n",
|
|
Jeff Mahoney |
450b8d |
--- /dev/null
|
|
Jeff Mahoney |
450b8d |
+++ b/scripts/gen-suse_version_h.sh
|
|
Jeff Mahoney |
a26a81 |
@@ -0,0 +1,100 @@
|
|
Jeff Mahoney |
450b8d |
+#!/bin/bash
|
|
Jeff Mahoney |
450b8d |
+
|
|
Michal Kubecek |
8751a9 |
+function get_config() {
|
|
Michal Kubecek |
8751a9 |
+ local line
|
|
Michal Kubecek |
8751a9 |
+
|
|
Michal Kubecek |
8751a9 |
+ line=$(grep "^${1}=" include/config/auto.conf)
|
|
Michal Kubecek |
8751a9 |
+ if [ -z "$line" ]; then
|
|
Michal Kubecek |
8751a9 |
+ return
|
|
Michal Kubecek |
8751a9 |
+ fi
|
|
Michal Kubecek |
8751a9 |
+ echo "${line#*=}"
|
|
Michal Kubecek |
8751a9 |
+}
|
|
Michal Kubecek |
8751a9 |
+
|
|
Michal Kubecek |
8751a9 |
+if [ ! -e include/config/auto.conf ]; then
|
|
Jeff Mahoney |
450b8d |
+ echo "Error: auto.conf not generated - run 'make prepare' to create it" >&2
|
|
Jeff Mahoney |
450b8d |
+ exit 1
|
|
Jeff Mahoney |
450b8d |
+fi
|
|
Jeff Mahoney |
450b8d |
+
|
|
Michal Kubecek |
8751a9 |
+VERSION=$(get_config CONFIG_SUSE_VERSION)
|
|
Michal Kubecek |
8751a9 |
+PATCHLEVEL=$(get_config CONFIG_SUSE_PATCHLEVEL)
|
|
Michal Kubecek |
8751a9 |
+AUXRELEASE=$(get_config CONFIG_SUSE_AUXRELEASE)
|
|
Michal Kubecek |
8751a9 |
+PRODUCT_CODE=$(get_config CONFIG_SUSE_PRODUCT_CODE)
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+if [ -z "$VERSION" -o -z "$PATCHLEVEL" -o -z "$AUXRELEASE" ]; then
|
|
Jeff Mahoney |
450b8d |
+ # This would be a bug in the Kconfig
|
|
Jeff Mahoney |
450b8d |
+ cat <<- END >&2
|
|
Jeff Mahoney |
450b8d |
+ ERROR: Missing VERSION, PATCHLEVEL, or AUXRELEASE."
|
|
Jeff Mahoney |
450b8d |
+ Please check init/Kconfig.suse for correctness.
|
|
Jeff Mahoney |
450b8d |
+ END
|
|
Jeff Mahoney |
450b8d |
+ exit 1
|
|
Jeff Mahoney |
450b8d |
+fi
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+if [ "$VERSION" = 255 -o "$PATCHLEVEL" = 255 ]; then
|
|
Jeff Mahoney |
450b8d |
+ cat <<- END >&2
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+ ERROR: This release needs to be properly configured.
|
|
Jeff Mahoney |
450b8d |
+ Please add real values for SUSE_VERSION and SUSE_PATCHLEVEL.
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+ END
|
|
Jeff Mahoney |
450b8d |
+ exit 1
|
|
Jeff Mahoney |
450b8d |
+fi
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+
|
|
Michal Kubecek |
8751a9 |
+case "$PRODUCT_CODE" in
|
|
Jeff Mahoney |
450b8d |
+ 1)
|
|
Jeff Mahoney |
450b8d |
+ if [ "${PATCHLEVEL}" = "0" ]; then
|
|
Jeff Mahoney |
450b8d |
+ SP=""
|
|
Jeff Mahoney |
450b8d |
+ else
|
|
Jeff Mahoney |
450b8d |
+ SP="${PATCHLEVEL}"
|
|
Jeff Mahoney |
450b8d |
+ fi
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_NAME="SUSE Linux Enterprise ${VERSION}${SP:+ SP}${SP}"
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_SHORTNAME="SLE${VERSION}${SP:+-SP}${SP}"
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_FAMILY="SLE"
|
|
Jeff Mahoney |
450b8d |
+ ;;
|
|
Jeff Mahoney |
450b8d |
+ 2)
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_NAME="openSUSE Leap ${VERSION}.${PATCHLEVEL}"
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_SHORTNAME="$SUSE_PRODUCT_NAME"
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_FAMILY="Leap"
|
|
Jeff Mahoney |
450b8d |
+ ;;
|
|
Jeff Mahoney |
450b8d |
+ 3)
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_NAME="openSUSE Tumbleweed"
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_SHORTNAME="$SUSE_PRODUCT_NAME"
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_FAMILY="Tumbleweed"
|
|
Jeff Mahoney |
450b8d |
+ ;;
|
|
Jeff Mahoney |
0f442b |
+ 4)
|
|
Jeff Mahoney |
0f442b |
+ SUSE_PRODUCT_NAME="SUSE Adaptable Linux Platform ${VERSION}.${PATCHLEVEL}"
|
|
Jeff Mahoney |
0f442b |
+ SUSE_PRODUCT_SHORTNAME="ALP-${VERSION}.${PATCHLEVEL}"
|
|
Jeff Mahoney |
0f442b |
+ SUSE_PRODUCT_FAMILY="ALP"
|
|
Jeff Mahoney |
0f442b |
+ ;;
|
|
Jeff Mahoney |
450b8d |
+ *)
|
|
Michal Kubecek |
8751a9 |
+ echo "Unknown SUSE_PRODUCT_CODE=${PRODUCT_CODE}" >&2
|
|
Jeff Mahoney |
450b8d |
+ exit 1
|
|
Jeff Mahoney |
450b8d |
+ ;;
|
|
Jeff Mahoney |
450b8d |
+esac
|
|
Jeff Mahoney |
450b8d |
+
|
|
Michal Kubecek |
8751a9 |
+SUSE_PRODUCT_CODE=$(( (${PRODUCT_CODE} << 24) + \
|
|
Jeff Mahoney |
450b8d |
+ (${VERSION} << 16) + (${PATCHLEVEL} << 8) + \
|
|
Jeff Mahoney |
450b8d |
+ ${AUXRELEASE} ))
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+cat <
|
|
Jeff Mahoney |
450b8d |
+#ifndef _SUSE_VERSION_H
|
|
Jeff Mahoney |
450b8d |
+#define _SUSE_VERSION_H
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
a26a81 |
+#define SUSE_PRODUCT_CODE_SLE 1
|
|
Jeff Mahoney |
a26a81 |
+#define SUSE_PRODUCT_CODE_OPENSUSE_LEAP 2
|
|
Jeff Mahoney |
a26a81 |
+#define SUSE_PRODUCT_CODE_OPENSUSE_TUMBLEWEED 3
|
|
Jeff Mahoney |
a26a81 |
+#define SUSE_PRODUCT_CODE_ALP 4
|
|
Jeff Mahoney |
a26a81 |
+
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_PRODUCT_FAMILY "${SUSE_PRODUCT_FAMILY}"
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_PRODUCT_NAME "${SUSE_PRODUCT_NAME}"
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_PRODUCT_SHORTNAME "${SUSE_PRODUCT_SHORTNAME}"
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_VERSION ${VERSION}
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_PATCHLEVEL ${PATCHLEVEL}
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_AUXRELEASE ${AUXRELEASE}
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_PRODUCT_CODE ${SUSE_PRODUCT_CODE}
|
|
Jeff Mahoney |
450b8d |
+#define SUSE_PRODUCT(product, version, patchlevel, auxrelease) \\
|
|
Jeff Mahoney |
450b8d |
+ (((product) << 24) + ((version) << 16) + \\
|
|
Jeff Mahoney |
450b8d |
+ ((patchlevel) << 8) + (auxrelease))
|
|
Jeff Mahoney |
450b8d |
+
|
|
Jeff Mahoney |
450b8d |
+#endif /* _SUSE_VERSION_H */
|
|
Jeff Mahoney |
450b8d |
+END
|
|
Jeff Mahoney |
450b8d |
--- a/scripts/mod/modpost.c
|
|
Jeff Mahoney |
450b8d |
+++ b/scripts/mod/modpost.c
|
|
Michal Kubecek |
79462d |
@@ -24,6 +24,7 @@
|
|
Michal Kubecek |
549a5b |
#include "modpost.h"
|
|
Jan Beulich |
8b0e2e |
#include "../../include/generated/autoconf.h"
|
|
Jeff Mahoney |
450b8d |
#include "../../include/linux/license.h"
|
|
Jeff Mahoney |
450b8d |
+#include "../../include/generated/uapi/linux/suse_version.h"
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
/* Are we using CONFIG_MODVERSIONS? */
|
|
Michal Kubecek |
515f42 |
static bool modversions;
|
|
Jeff Mahoney |
0f442b |
@@ -2268,6 +2269,14 @@ static void write_buf(struct buffer *b,
|
|
Jeff Mahoney |
450b8d |
}
|
|
Jeff Mahoney |
450b8d |
}
|
|
Jeff Mahoney |
450b8d |
|
|
Jeff Mahoney |
450b8d |
+static void add_suserelease(struct buffer *b, struct module *mod)
|
|
Jeff Mahoney |
450b8d |
+{
|
|
Jeff Mahoney |
450b8d |
+#ifdef SUSE_PRODUCT_SHORTNAME
|
|
Jeff Mahoney |
450b8d |
+ buf_printf(b, "\n");
|
|
Jeff Mahoney |
450b8d |
+ buf_printf(b, "MODULE_INFO(suserelease, \"%s\");\n",
|
|
Jeff Mahoney |
450b8d |
+ SUSE_PRODUCT_SHORTNAME);
|
|
Jeff Mahoney |
450b8d |
+#endif
|
|
Jeff Mahoney |
450b8d |
+}
|
|
Jeff Mahoney |
450b8d |
static void write_if_changed(struct buffer *b, const char *fname)
|
|
Jeff Mahoney |
450b8d |
{
|
|
Jeff Mahoney |
450b8d |
char *tmp;
|
|
Jeff Mahoney |
0f442b |
@@ -2334,6 +2343,7 @@ static void write_mod_c_file(struct modu
|
|
Michal Kubecek |
515f42 |
add_depends(&buf, mod);
|
|
Michal Kubecek |
515f42 |
add_moddevtable(&buf, mod);
|
|
Michal Kubecek |
515f42 |
add_srcversion(&buf, mod);
|
|
Michal Kubecek |
515f42 |
+ add_suserelease(&buf, mod);
|
|
Jeff Mahoney |
450b8d |
|
|
Michal Kubecek |
515f42 |
ret = snprintf(fname, sizeof(fname), "%s.mod.c", mod->name);
|
|
Michal Kubecek |
515f42 |
if (ret >= sizeof(fname)) {
|