From: Ben Hutchings Date: Tue, 24 Jul 2012 02:13:10 +0000 (+0100) Subject: Include package version along with kernel release in stack traces X-Git-Tag: archive/raspbian/6.12.27-1+rpi1^2~73 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=98d03260e450dc6f4438a94bf00e86a210924341;p=linux.git Include package version along with kernel release in stack traces Forwarded: not-needed For distribution binary packages we assume $DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION are set. Gbp-Pq: Topic debian Gbp-Pq: Name version.patch --- diff --git a/Makefile b/Makefile index 77f5d180902..5cb8afea761 100644 --- a/Makefile +++ b/Makefile @@ -1214,7 +1214,8 @@ PHONY += prepare archprepare archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \ asm-generic $(version_h) include/generated/utsrelease.h \ - include/generated/compile.h include/generated/autoconf.h remove-stale-files + include/generated/compile.h include/generated/autoconf.h \ + include/generated/package.h remove-stale-files prepare0: archprepare $(Q)$(MAKE) $(build)=scripts/mod @@ -1272,6 +1273,16 @@ define filechk_version.h echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL) endef +ifneq ($(DISTRIBUTION_OFFICIAL_BUILD),) +define filechk_package.h + echo \#define LINUX_PACKAGE_ID \" $(DISTRIBUTOR) $(DISTRIBUTION_VERSION)\" +endef +else +define filechk_package.h + echo \#define LINUX_PACKAGE_ID \"\" +endef +endif + $(version_h): private PATCHLEVEL := $(or $(PATCHLEVEL), 0) $(version_h): private SUBLEVEL := $(or $(SUBLEVEL), 0) $(version_h): FORCE @@ -1286,6 +1297,9 @@ filechk_compile.h = $(srctree)/scripts/mkcompile_h \ include/generated/compile.h: FORCE $(call filechk,compile.h) +include/generated/package.h: $(srctree)/Makefile FORCE + $(call filechk,package.h) + PHONY += headerdep headerdep: $(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \ diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index ff61a3e7984..6d100075e50 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -1560,8 +1561,9 @@ static void __show_regs(struct pt_regs *regs) printk("NIP: "REG" LR: "REG" CTR: "REG"\n", regs->nip, regs->link, regs->ctr); - printk("REGS: %px TRAP: %04lx %s (%s)\n", - regs, regs->trap, print_tainted(), init_utsname()->release); + printk("REGS: %px TRAP: %04lx %s (%s%s)\n", + regs, regs->trap, print_tainted(), init_utsname()->release, + LINUX_PACKAGE_ID); printk("MSR: "REG" ", regs->msr); print_msr_bits(regs->msr); pr_cont(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); diff --git a/arch/x86/um/sysrq_64.c b/arch/x86/um/sysrq_64.c index 340d8a243c8..0e01cedb302 100644 --- a/arch/x86/um/sysrq_64.c +++ b/arch/x86/um/sysrq_64.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -17,8 +18,9 @@ void show_regs(struct pt_regs *regs) { printk("\n"); print_modules(); - printk(KERN_INFO "Pid: %d, comm: %.20s %s %s\n", task_pid_nr(current), - current->comm, print_tainted(), init_utsname()->release); + printk(KERN_INFO "Pid: %d, comm: %.20s %s %s%s\n", task_pid_nr(current), + current->comm, print_tainted(), init_utsname()->release, + LINUX_PACKAGE_ID); printk(KERN_INFO "RIP: %04lx:%pS\n", PT_REGS_CS(regs) & 0xffff, (void *)PT_REGS_IP(regs)); printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n", PT_REGS_SP(regs), diff --git a/kernel/hung_task.c b/kernel/hung_task.c index 959d99583d1..99f8badcab2 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -24,6 +24,7 @@ #include #include +#include /* * The number of tasks checked: @@ -132,10 +133,11 @@ static void check_hung_task(struct task_struct *t, unsigned long timeout) sysctl_hung_task_warnings--; pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n", t->comm, t->pid, (jiffies - t->last_switch_time) / HZ); - pr_err(" %s %s %.*s\n", + pr_err(" %s %s %.*s%s\n", print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), - init_utsname()->version); + init_utsname()->version, + LINUX_PACKAGE_ID); pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\"" " disables this message.\n"); sched_show_task(t); diff --git a/lib/dump_stack.c b/lib/dump_stack.c index 388da1aea14..37c47eaa6af 100644 --- a/lib/dump_stack.c +++ b/lib/dump_stack.c @@ -14,6 +14,7 @@ #include #include #include +#include static char dump_stack_arch_desc_str[128]; @@ -54,7 +55,7 @@ void __init dump_stack_set_arch_desc(const char *fmt, ...) */ void dump_stack_print_info(const char *log_lvl) { - printk("%sCPU: %d UID: %u PID: %d Comm: %.20s %s%s %s %.*s" BUILD_ID_FMT "\n", + printk("%sCPU: %d UID: %u PID: %d Comm: %.20s %s%s %s %.*s %s" BUILD_ID_FMT "\n", log_lvl, raw_smp_processor_id(), __kuid_val(current_real_cred()->euid), current->pid, current->comm, @@ -62,7 +63,9 @@ void dump_stack_print_info(const char *log_lvl) print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), - init_utsname()->version, BUILD_ID_VAL); + init_utsname()->version, + LINUX_PACKAGE_ID, + BUILD_ID_VAL); if (get_taint()) printk("%s%s\n", log_lvl, print_tainted_verbose());