From: Nathan Chancellor <natechancellor@gmail.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [PATCH] iavf: Use printf instead of gnu_printf for iavf_debug_d
Date: Thu, 10 Jan 2019 12:07:15 -0700 [thread overview]
Message-ID: <20190110190715.GA18881@flashbox> (raw)
In-Reply-To: <CAKwvOdk=GZUG3FdP1gDg30H_Tt52cPXrZC-4Na8ZfD0h=jbU8g@mail.gmail.com>
On Thu, Jan 10, 2019 at 10:54:46AM -0800, Nick Desaulniers wrote:
> On Wed, Jan 9, 2019 at 8:22 PM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
> >
> > Clang warns:
> >
> > In file included from drivers/net/ethernet/intel/iavf/iavf_main.c:4:
> > In file included from drivers/net/ethernet/intel/iavf/iavf.h:37:
> > In file included from drivers/net/ethernet/intel/iavf/iavf_type.h:8:
> > drivers/net/ethernet/intel/iavf/iavf_osdep.h:49:18: warning: 'format' attribute argument not supported: gnu_printf [-Wignored-attributes]
> > __attribute__ ((format(gnu_printf, 3, 4)));
> > ^
> > 1 warning generated.
> >
> > We can convert from gnu_printf to printf without any side effects for
> > two reasons:
> >
> > 1. All iavf_debug instances use standard printf formats, as pointed out
> > by Miguel Ojeda at the below link, meaning gnu_printf is not strictly
> > required.
> >
> > 2. However, GCC has aliased printf to gnu_printf on Linux since at least
> > 2010 based on git history.
>
> Thanks for this fix!
> FWIW, using godbolt to see which version something was added in is
> better than giving a year of the commit. I don't think it matters for
> this case, as the kernel already makes use of `printf` as you do in
> this change, but food for thought for next time.
>
Yes that is a good point, I need to be taking advantage of that site
more.
Thank you for the review!
Nathan
> >
> > From gcc/c-family/c-format.c:
> >
> > /* Attributes such as "printf" are equivalent to those such as
> > "gnu_printf" unless this is overridden by a target. */
> > static const target_ovr_attr gnu_target_overrides_format_attributes[] =
> > {
> > { "gnu_printf", "printf" },
> > { "gnu_scanf", "scanf" },
> > { "gnu_strftime", "strftime" },
> > { "gnu_strfmon", "strfmon" },
> > { NULL, NULL }
> > };
> >
> > The mentioned override only happens on Windows (mingw32). Changing from
> > gnu_printf to printf is a no-op for GCC and stops Clang from warning.
> >
> > Link: https://github.com/ClangBuiltLinux/linux/issues/111
> > Suggested-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > ---
> > drivers/net/ethernet/intel/iavf/iavf_osdep.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/intel/iavf/iavf_osdep.h b/drivers/net/ethernet/intel/iavf/iavf_osdep.h
> > index e6e0b0328706..c90cafb526d0 100644
> > --- a/drivers/net/ethernet/intel/iavf/iavf_osdep.h
> > +++ b/drivers/net/ethernet/intel/iavf/iavf_osdep.h
> > @@ -46,7 +46,7 @@ struct iavf_virt_mem {
> >
> > #define iavf_debug(h, m, s, ...) iavf_debug_d(h, m, s, ##__VA_ARGS__)
> > extern void iavf_debug_d(void *hw, u32 mask, char *fmt_str, ...)
> > - __attribute__ ((format(gnu_printf, 3, 4)));
> > + __printf(3, 4);
>
> And you make use of the __attribute__ wrapper from
> include/linux/compiler_attributes.h, cool.
> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
>
> --
> Thanks,
> ~Nick Desaulniers
WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <natechancellor@gmail.com>
To: Nick Desaulniers <ndesaulniers@google.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
"David S. Miller" <davem@davemloft.net>,
intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Subject: Re: [PATCH] iavf: Use printf instead of gnu_printf for iavf_debug_d
Date: Thu, 10 Jan 2019 12:07:15 -0700 [thread overview]
Message-ID: <20190110190715.GA18881@flashbox> (raw)
In-Reply-To: <CAKwvOdk=GZUG3FdP1gDg30H_Tt52cPXrZC-4Na8ZfD0h=jbU8g@mail.gmail.com>
On Thu, Jan 10, 2019 at 10:54:46AM -0800, Nick Desaulniers wrote:
> On Wed, Jan 9, 2019 at 8:22 PM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
> >
> > Clang warns:
> >
> > In file included from drivers/net/ethernet/intel/iavf/iavf_main.c:4:
> > In file included from drivers/net/ethernet/intel/iavf/iavf.h:37:
> > In file included from drivers/net/ethernet/intel/iavf/iavf_type.h:8:
> > drivers/net/ethernet/intel/iavf/iavf_osdep.h:49:18: warning: 'format' attribute argument not supported: gnu_printf [-Wignored-attributes]
> > __attribute__ ((format(gnu_printf, 3, 4)));
> > ^
> > 1 warning generated.
> >
> > We can convert from gnu_printf to printf without any side effects for
> > two reasons:
> >
> > 1. All iavf_debug instances use standard printf formats, as pointed out
> > by Miguel Ojeda at the below link, meaning gnu_printf is not strictly
> > required.
> >
> > 2. However, GCC has aliased printf to gnu_printf on Linux since at least
> > 2010 based on git history.
>
> Thanks for this fix!
> FWIW, using godbolt to see which version something was added in is
> better than giving a year of the commit. I don't think it matters for
> this case, as the kernel already makes use of `printf` as you do in
> this change, but food for thought for next time.
>
Yes that is a good point, I need to be taking advantage of that site
more.
Thank you for the review!
Nathan
> >
> > From gcc/c-family/c-format.c:
> >
> > /* Attributes such as "printf" are equivalent to those such as
> > "gnu_printf" unless this is overridden by a target. */
> > static const target_ovr_attr gnu_target_overrides_format_attributes[] =
> > {
> > { "gnu_printf", "printf" },
> > { "gnu_scanf", "scanf" },
> > { "gnu_strftime", "strftime" },
> > { "gnu_strfmon", "strfmon" },
> > { NULL, NULL }
> > };
> >
> > The mentioned override only happens on Windows (mingw32). Changing from
> > gnu_printf to printf is a no-op for GCC and stops Clang from warning.
> >
> > Link: https://github.com/ClangBuiltLinux/linux/issues/111
> > Suggested-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > ---
> > drivers/net/ethernet/intel/iavf/iavf_osdep.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/intel/iavf/iavf_osdep.h b/drivers/net/ethernet/intel/iavf/iavf_osdep.h
> > index e6e0b0328706..c90cafb526d0 100644
> > --- a/drivers/net/ethernet/intel/iavf/iavf_osdep.h
> > +++ b/drivers/net/ethernet/intel/iavf/iavf_osdep.h
> > @@ -46,7 +46,7 @@ struct iavf_virt_mem {
> >
> > #define iavf_debug(h, m, s, ...) iavf_debug_d(h, m, s, ##__VA_ARGS__)
> > extern void iavf_debug_d(void *hw, u32 mask, char *fmt_str, ...)
> > - __attribute__ ((format(gnu_printf, 3, 4)));
> > + __printf(3, 4);
>
> And you make use of the __attribute__ wrapper from
> include/linux/compiler_attributes.h, cool.
> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
>
> --
> Thanks,
> ~Nick Desaulniers
next prev parent reply other threads:[~2019-01-10 19:07 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-10 4:21 [Intel-wired-lan] [PATCH] iavf: Use printf instead of gnu_printf for iavf_debug_d Nathan Chancellor
2019-01-10 4:21 ` Nathan Chancellor
2019-01-10 18:54 ` [Intel-wired-lan] " Nick Desaulniers
2019-01-10 18:54 ` Nick Desaulniers
2019-01-10 19:07 ` Nathan Chancellor [this message]
2019-01-10 19:07 ` Nathan Chancellor
2019-01-16 22:38 ` [Intel-wired-lan] " Miguel Ojeda
2019-01-16 22:38 ` Miguel Ojeda
2019-01-30 18:20 ` [Intel-wired-lan] " Bowers, AndrewX
2019-01-30 18:20 ` Bowers, AndrewX
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=20190110190715.GA18881@flashbox \
--to=natechancellor@gmail.com \
--cc=intel-wired-lan@osuosl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.