From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 09/10] arm64/BUG: Use BRK instruction for generic BUG traps
Date: Tue, 14 Jul 2015 12:09:05 +0100 [thread overview]
Message-ID: <20150714110904.GB12675@leverpostej> (raw)
In-Reply-To: <20150714102025.GD10670@e103592.cambridge.arm.com>
On Tue, Jul 14, 2015 at 11:20:27AM +0100, Dave P Martin wrote:
> On Mon, Jul 13, 2015 at 05:56:39PM +0100, Mark Rutland wrote:
> > On Mon, Jul 13, 2015 at 05:51:51PM +0100, Dave P Martin wrote:
> > > On Mon, Jul 13, 2015 at 05:43:15PM +0100, Mark Rutland wrote:
>
> [...]
>
> > > > Given the reliance on the labels in the caller, I think it might make
> > >
> > > Not sure what you mean here, can you elaborate?
> >
> > We're relying on label "0:" in the caller/user of the macro when we emit
> > ".long 2b - 0b".
> >
> > I think it would be clearer if folded into the caller (even with the
> > inline ifdef this necessitates).
> >
> > Though I could be missing something here that renders that impossible.
>
> Before I respin the series, can you cast your eye over this
> alternative?
>
> I'm testing it now, but in any case it should make the conditional
> structure of the code clearer as per your suggestion.
I think that style of macro is certainly more legible when applied to
single lines, but I got a little confused when reading this before I
noticed that each __BUGVERBOSE use covered a few lines.
Thanks,
Mark.
>
> Cheers
> ---Dave
>
>
> [...]
>
> #ifdef CONFIG_DEBUG_BUGVERBOSE
> #define __BUGVERBOSE(x...) x
> #else
> #define __BUGVERBOSE(x...)
> #endif
>
> #define _BUG_FLAGS(flags, file, line) __BUG_FLAGS(flags, file, line)
>
> #define __BUG_FLAGS(flags, file, line) asm volatile ( \
> __BUGVERBOSE( ".pushsection .rodata.str,\"aMS\", at progbits,1\n" \
> "2: .string \"" file "\"\n\t" \
> ".popsection\n\t" ) \
> \
> ".pushsection __bug_table,\"a\"\n\t" \
> ".align 2\n\t" \
> "0: .long 1f - 0b\n\t" \
> __BUGVERBOSE( ".long 2b - 0b\n\t" \
> ".short " #line "\n\t" ) \
> ".short " #flags "\n\t" \
> ".popsection\n" \
> \
> "1: brk %[imm]" \
> :: [imm] "i" (BUG_BRK_IMM) \
> )
>
> #define BUG() do { \
> _BUG_FLAGS(0, __FILE__, __LINE__); \
> unreachable(); \
> } while (0)
>
> #define __WARN_TAINT(taint) \
> _BUG_FLAGS(BUGFLAG_TAINT(taint), __FILE__, __LINE__)
>
> [...]
next prev parent reply other threads:[~2015-07-14 11:09 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 13:25 [PATCH v2 00/10] arm64: Use BRK instruction for generic BUG traps Dave Martin
2015-07-13 13:25 ` [PATCH v2 01/10] arm64/debug: Eliminate magic number for size of BRK instruction Dave Martin
2015-07-13 14:47 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 02/10] arm64/debug: Mask off all reserved bits from generated ESR values Dave Martin
2015-07-13 14:14 ` Mark Rutland
2015-07-13 14:22 ` Dave Martin
2015-07-13 13:25 ` [PATCH v2 03/10] arm64: esr.h type fixes and cleanup Dave Martin
2015-07-14 15:54 ` Mark Rutland
2015-07-14 16:53 ` Dave Martin
2015-07-13 13:25 ` [PATCH v2 04/10] arm64/debug: Eliminate magic number from ESR template definition Dave Martin
2015-07-13 14:16 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 05/10] arm64/debug: More consistent naming for the BRK ESR template macro Dave Martin
2015-07-13 14:19 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 06/10] arm64/debug: Move BRK ESR template macro into <asm/esr.h> Dave Martin
2015-07-13 14:18 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 07/10] arm64/debug: Simplify BRK insn opcode declarations Dave Martin
2015-07-13 14:38 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 08/10] arm64/debug: Add missing #include Dave Martin
2015-07-13 14:34 ` Mark Rutland
2015-07-13 14:44 ` Dave Martin
2015-07-13 14:45 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 09/10] arm64/BUG: Use BRK instruction for generic BUG traps Dave Martin
2015-07-13 16:43 ` Mark Rutland
2015-07-13 16:51 ` Dave Martin
2015-07-13 16:56 ` Mark Rutland
2015-07-13 17:05 ` Dave P Martin
2015-07-14 10:20 ` Dave Martin
2015-07-14 11:09 ` Mark Rutland [this message]
2015-07-14 11:34 ` Dave Martin
2015-07-14 15:51 ` Mark Rutland
2015-07-14 16:53 ` Dave Martin
2015-07-14 16:11 ` Catalin Marinas
2015-07-14 16:55 ` Dave Martin
2015-07-13 13:25 ` [PATCH v2 10/10] arm64/BUG: Show explicit backtrace for WARNs Dave Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150714110904.GB12675@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox