Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751623AbdFOGUZ (ORCPT ); Thu, 15 Jun 2017 02:20:25 -0400 Received: from ozlabs.org ([103.22.144.67]:33411 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750774AbdFOGUY (ORCPT ); Thu, 15 Jun 2017 02:20:24 -0400 From: Michael Ellerman To: Alexey Kardashevskiy , linuxppc-dev@lists.ozlabs.org Cc: Benjamin Herrenschmidt , Paul Mackerras , Peter Zijlstra , linux-kernel@vger.kernel.org, "dan.carpenter\@oracle.com" Subject: Re: [PATCH kernel] powerpc/debug: Add missing warn flag to WARN_ON's non-builtin path In-Reply-To: References: <20170614030125.45899-1-aik@ozlabs.ru> <87mv9a3k59.fsf@concordia.ellerman.id.au> User-Agent: Notmuch/0.21 (https://notmuchmail.org) Date: Thu, 15 Jun 2017 16:20:20 +1000 Message-ID: <87h8zhpyaj.fsf@concordia.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1857 Lines: 55 Alexey Kardashevskiy writes: > On 14/06/17 21:04, Michael Ellerman wrote: >> Alexey Kardashevskiy writes: >> >>> When trapped on WARN_ON(), report_bug() is expected to return >>> BUG_TRAP_TYPE_WARN so the caller could increment NIP by 4 and continue. >>> The __builtin_constant_p() path of the PPC's WARN_ON() calls (indirectly) >>> __WARN_FLAGS() which has BUGFLAG_WARNING set, however the other branch >>> does not which makes report_bug() report a bug rather than a warning. >>> >>> Fixes: 19d436268dde95389 ("debug: Add _ONCE() logic to report_bug()") >>> Signed-off-by: Alexey Kardashevskiy >>> --- >>> >>> Actually 19d436268dde95389 replaced __WARN_TAINT() with __WARN_FLAGS() >>> and lost BUGFLAG_TAINT() and this is not in the commit log so it is >>> unclear: >>> 1) why >> >> I think the rename is because previously the argument was a taint value, >> whereas now it is a flags value (which is a superset of taint). >> >>> 2) whether this particular patch should be doing >>> BUGFLAG_WARNING|BUGFLAG_TAINT(TAINT_WARN) >>> or >>> BUGFLAG_WARNING|(flags) >> >> There is no flags here so the latter won't work AFAICS. >> >>> Any ideas? Thanks. >> >> Your patch looks correct to me. I assume it works? > > Yes, it does. Thanks. >> The bug isn't introduced by 19d436268dde ("debug: Add _ONCE() logic to >> report_bug()") as far as I can see. >> >> If you check out that revision you see that BUGFLAG_TAINT still contains >> BUGFLAG_WARNING: >> >> #define BUGFLAG_TAINT(taint) (BUGFLAG_WARNING | ((taint) << 8)) >> >> But that was removed in f26dee15103f ("debug: Avoid setting >> BUGFLAG_WARNING twice"). So I think the Fixes: tag should point at that >> commit. > > Ah, you're right. Should I repost the patch with the updated "fixes:" clause? No that's fine I can update it. cheers