From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751275AbbJGHD0 (ORCPT ); Wed, 7 Oct 2015 03:03:26 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:33773 "EHLO mail-wi0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750973AbbJGHDZ (ORCPT ); Wed, 7 Oct 2015 03:03:25 -0400 Date: Wed, 7 Oct 2015 09:03:21 +0200 From: Ingo Molnar To: Rasmus Villemoes Cc: Paul Gortmaker , Jiri Slaby , Ingo Molnar , Andrew Morton , Thomas Gleixner , "H. Peter Anvin" , Michal Marek , linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] x86: dumpstack: eliminate some #ifdefs Message-ID: <20151007070321.GB7837@gmail.com> References: <5613F3DE.4010406@suse.cz> <1444165543-2209-1-git-send-email-linux@rasmusvillemoes.dk> <1444165543-2209-2-git-send-email-linux@rasmusvillemoes.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1444165543-2209-2-git-send-email-linux@rasmusvillemoes.dk> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Rasmus Villemoes wrote: > + static const char build_flags[] = "" > + CHOOSE_EXPR(CONFIG_PREEMPT, " PREEMPT") > + CHOOSE_EXPR(CONFIG_SMP, " SMP") > + CHOOSE_EXPR(CONFIG_DEBUG_PAGEALLOC, " DEBUG_PAGEALLOC") > + CHOOSE_EXPR(CONFIG_KASAN, " KASAN"); > + > printk(KERN_DEFAULT > - "%s: %04lx [#%d] ", str, err & 0xffff, ++die_counter); > -#ifdef CONFIG_PREEMPT > - printk("PREEMPT "); > -#endif > -#ifdef CONFIG_SMP > - printk("SMP "); > -#endif > -#ifdef CONFIG_DEBUG_PAGEALLOC > - printk("DEBUG_PAGEALLOC "); > -#endif > -#ifdef CONFIG_KASAN > - printk("KASAN"); > -#endif > - printk("\n"); > + "%s: %04lx [#%d]%s\n", str, err & 0xffff, ++die_counter, > + build_flags); > + > if (notify_die(DIE_OOPS, str, regs, err, > current->thread.trap_nr, SIGSEGV) == NOTIFY_STOP) > return 1; Looks cleaner than what we had before, but I have a naming nit: CHOOSE_EXPR() is not something I'd be able to remember, I'd have to look it up again all the time, because it does not have 'config' in its name, and because 'choose' is usually associated with different constructs. So how about something more intuitive, like: COND_CONFIG(CONFIG_PREEMPT, " PREEMPT") COND_CONFIG(CONFIG_SMP, " SMP") COND_CONFIG(CONFIG_DEBUG_PAGEALLOC, " DEBUG_PAGEALLOC") COND_CONFIG(CONFIG_KASAN, " KASAN"); or: IF_CONFIG(CONFIG_PREEMPT, " PREEMPT") IF_CONFIG(CONFIG_SMP, " SMP") IF_CONFIG(CONFIG_DEBUG_PAGEALLOC, " DEBUG_PAGEALLOC") IF_CONFIG(CONFIG_KASAN, " KASAN"); ? Both names are still unused in the kernel repo. Thanks, Ingo