From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933511AbdKOS3X (ORCPT ); Wed, 15 Nov 2017 13:29:23 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:42866 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933173AbdKOS2D (ORCPT ); Wed, 15 Nov 2017 13:28:03 -0500 Message-Id: <20171115182657.542096222@linutronix.de> User-Agent: quilt/0.63-1 Date: Wed, 15 Nov 2017 19:15:36 +0100 From: Thomas Gleixner To: LKML Cc: Linus Torvalds , Prarit Bhargava , Mark Salyzyn , Petr Mladek , Ingo Molnar , "H. Peter Anvin" , Peter Zijlstra , Andrew Morton , Sergey Senozhatsky , Steven Rostedt , Joe Perches , Linus Torvalds Subject: [RFC patch 5/7] crash: Add VMCOREINFO_FIELD_AND_OFFSET() References: <20171115181531.322572387@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Disposition: inline; filename=crash--Add-VMCOREINFO_FIELD_ANDOFFSET--.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changing the time stamp storage in the printk ringbuffer entries would break existing tools which rely on the availability of the 'ts_nsec' field in vmcore info. Provide a new macro which allows to store the offset of a member of struct printk_log with a different name. This allows to change the underlying storage and without breaking tools. Suggested-by: Linus Torvalds Signed-off-by: Thomas Gleixner --- include/linux/crash_core.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/include/linux/crash_core.h +++ b/include/linux/crash_core.h @@ -48,9 +48,11 @@ phys_addr_t paddr_vmcoreinfo_note(void); #define VMCOREINFO_STRUCT_SIZE(name) \ vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \ (unsigned long)sizeof(struct name)) -#define VMCOREINFO_OFFSET(name, field) \ - vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \ +#define VMCOREINFO_FIELD_AND_OFFSET(name, fieldname, field) \ + vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #fieldname, \ (unsigned long)offsetof(struct name, field)) +#define VMCOREINFO_OFFSET(name, field) \ + VMCOREINFO_FIELD_AND_OFFSET(name, field, field) #define VMCOREINFO_LENGTH(name, value) \ vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value) #define VMCOREINFO_NUMBER(name) \