linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: jim.cromie@gmail.com
To: Petr Mladek <pmladek@suse.com>
Cc: Jason Baron <jbaron@akamai.com>,
	LKML <linux-kernel@vger.kernel.org>,
	akpm@linuxfoundation.org, Greg KH <gregkh@linuxfoundation.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>
Subject: Re: [PATCH v2 07/24] dyndbg: fix a BUG_ON in ddebug_describe_flags
Date: Mon, 15 Jun 2020 15:53:45 -0600	[thread overview]
Message-ID: <CAJfuBxxdoZ1T9nLi-X2g=zk8poLX-CtRAA=0A-i1KPq2_RhX9Q@mail.gmail.com> (raw)
In-Reply-To: <20200615132028.GE31238@alley>

On Mon, Jun 15, 2020 at 7:20 AM Petr Mladek <pmladek@suse.com> wrote:
>
> On Sat 2020-06-13 09:57:21, Jim Cromie wrote:

> In all patches is missing:
>
> Signed-off-by: Jim Cromie <jim.cromie@gmail.com>

right, I missed the -s invoking format-patch, v3 will have them


>
> > ---
> >  lib/dynamic_debug.c | 31 +++++++++++++++----------------
> >  1 file changed, 15 insertions(+), 16 deletions(-)
> >
> > diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
> > index 9b2445507988..aaace13d7536 100644
> > --- a/lib/dynamic_debug.c
> > +++ b/lib/dynamic_debug.c
> > @@ -87,22 +87,22 @@ static struct { unsigned flag:8; char opt_char; } opt_array[] = {
> >       { _DPRINTK_FLAGS_NONE, '_' },
> >  };
> >
> > +struct flagsbuf { char buf[ARRAY_SIZE(opt_array)+1]; };
>
> This looks too complicated. What about?
>
>         typedef char flags_buf[ARRAY_SIZE(opt_array) + 1];
>     used as
>         flags_buf fb;
>

I used the struct to give type safety.
old code passed a pointer to a string, and hoped it was big enough.
then used a BUG_ON to insist.
passing (the address of the) struct means the contained string is
known big enough.
and the addy is also that of the string itself (member offset 0), no overhead.

>
>         #define FLAGS_BUF_SIZE (ARRAY_SIZE(opt_array) + 1)
>     used as
>         char flags_buf[FLAGS_BUF_SIZE];
>

I never needed that constant, cuz the string is filled once,
in the function just below the struct def, using the same expression (sans +1)

I would/will update the 1-line comment on ddebug_describe_flags
and add another on the struct itself, once I figure out how to say
all of this succinctly and clearly enough.
Im open to suggestions.

thanks
jimc

>
> Best Regards,
> Petr

  reply	other threads:[~2020-06-15 21:54 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-13 15:57 [PATCH v2 00/24] dynamic_debug cleanups, query features, WIP print-classes Jim Cromie
2020-06-13 15:57 ` [PATCH v2 01/24] dyndbg-docs: eschew file /full/path query in docs Jim Cromie
2020-06-14  6:04   ` Greg KH
2020-06-14 14:24     ` jim.cromie
2020-06-13 15:57 ` [PATCH v2 02/24] dyndbg-docs: initialization is done early, not arch Jim Cromie
2020-06-13 15:57 ` [PATCH v2 03/24] dyndbg: drop obsolete comment on ddebug_proc_open Jim Cromie
2020-06-13 15:57 ` [PATCH v2 04/24] dyndbg: refine debug verbosity; 1 is basic, 2 more chatty Jim Cromie
2020-06-13 15:57 ` [PATCH v2 05/24] dyndbg: rename __verbose section to __dyndbg Jim Cromie
2020-06-13 15:57 ` [PATCH v2 06/24] dyndbg: fix overcounting of ram used by dyndbg Jim Cromie
2020-06-13 15:57 ` [PATCH v2 07/24] dyndbg: fix a BUG_ON in ddebug_describe_flags Jim Cromie
2020-06-15 13:20   ` Petr Mladek
2020-06-15 21:53     ` jim.cromie [this message]
2020-06-13 15:57 ` [PATCH v2 08/24] dyndbg: make ddebug_tables list LIFO for add/remove_module Jim Cromie
2020-06-13 15:57 ` [PATCH v2 09/24] dyndbg: add maybe(str,"") macro to reduce code Jim Cromie
2020-06-13 16:14   ` Joe Perches
2020-06-15 20:50     ` jim.cromie
2020-06-15 13:28   ` Petr Mladek
2020-06-15 20:52     ` jim.cromie
2020-06-13 15:57 ` [PATCH v2 10/24] dyndbg: refactor parse_linerange out of ddebug_parse_query Jim Cromie
2020-06-15 13:37   ` Petr Mladek
2020-06-15 22:37     ` jim.cromie
2020-06-13 15:57 ` [PATCH v2 11/24] dyndbg: accept 'file foo.c:func1' and 'file foo.c:10-100' Jim Cromie
2020-06-15 14:46   ` Petr Mladek
2020-06-13 15:57 ` [PATCH v2 12/24] dyndbg: refactor ddebug_read_flags out of ddebug_parse_flags Jim Cromie
2020-06-13 15:57 ` [PATCH v2 13/24] dyndbg: combine flags & mask into a struct, use that Jim Cromie
2020-06-15 15:14   ` Petr Mladek
2020-06-16  5:47     ` jim.cromie
2020-06-16 11:34       ` Petr Mladek
2020-06-13 15:57 ` [PATCH v2 14/24] dyndbg: add filter parameter to ddebug_parse_flags Jim Cromie
2020-06-15 15:17   ` Petr Mladek
2020-06-13 15:57 ` [PATCH v2 15/24] dyndbg: extend ddebug_parse_flags to accept optional leading filter-flags Jim Cromie
2020-06-15 15:37   ` Petr Mladek
2020-06-13 15:57 ` [PATCH v2 16/24] dyndbg: prefer declarative init in caller, to memset in callee Jim Cromie
2020-06-13 15:57 ` [PATCH v2 17/24] dyndbg: add user-flag, negating-flags, and filtering on flags Jim Cromie
2020-06-16 11:41   ` Petr Mladek
2020-06-13 15:57 ` [PATCH v2 18/24] dyndbg: allow negating flag-chars in modflags Jim Cromie
2020-06-16 11:47   ` Petr Mladek
2020-06-13 15:57 ` [PATCH v2 19/24] dyndbg: accept query terms like module:foo and file=bar Jim Cromie
2020-06-16 11:57   ` Petr Mladek
2020-06-16 20:08     ` jim.cromie
2020-06-17 12:11       ` Petr Mladek
2020-06-17 13:32         ` jim.cromie
2020-06-17 14:01           ` Greg KH
2020-06-13 15:57 ` [PATCH v2 20/24] dyndbg: WIP towards debug-print-class based callsite controls Jim Cromie
2020-06-13 19:22   ` Joe Perches
2020-06-16 13:45   ` Petr Mladek
2020-06-16 21:05     ` Joe Perches
2020-06-17  9:31       ` Daniel Thompson
2020-06-17  9:52         ` Petr Mladek
2020-06-17 13:23           ` jim.cromie
2020-06-18 12:20             ` Petr Mladek
2020-06-16 21:13     ` jim.cromie
2020-06-16 21:25       ` jim.cromie
2020-06-13 15:57 ` [PATCH v2 21/24] dyndbg: adapt header macros to pass print-class Jim Cromie
2020-06-13 17:11   ` kernel test robot
2020-06-13 20:25   ` kernel test robot
2020-06-13 15:57 ` [PATCH v2 22/24] dyndbg: add print-class as trailing number to control output Jim Cromie
2020-06-13 15:57 ` [PATCH v2 23/24] kset-example: add pr_debug()s for easy visibility of its operation Jim Cromie
2020-06-14  6:05   ` Greg KH
2020-06-15 22:18     ` jim.cromie
2020-06-16  6:37       ` Greg KH
2020-06-13 15:57 ` [PATCH v2 24/24] kset-example: use pr_debug_n to create example print-classes Jim Cromie

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='CAJfuBxxdoZ1T9nLi-X2g=zk8poLX-CtRAA=0A-i1KPq2_RhX9Q@mail.gmail.com' \
    --to=jim.cromie@gmail.com \
    --cc=akpm@linuxfoundation.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jbaron@akamai.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=pmladek@suse.com \
    /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;
as well as URLs for NNTP newsgroup(s).