From: Stephen Hemminger <stephen@networkplumber.org>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com
Subject: Re: [PATCH net-next] net: core: Assert the size of netdev_featres_t
Date: Mon, 30 Apr 2018 09:42:10 -0700 [thread overview]
Message-ID: <20180430094210.5602265a@xeon-e3> (raw)
In-Reply-To: <20180427201114.28830-1-f.fainelli@gmail.com>
On Fri, 27 Apr 2018 13:11:14 -0700
Florian Fainelli <f.fainelli@gmail.com> wrote:
> We have about 53 netdev_features_t bits defined and counting, add a
> build time check to catch when an u64 type will not be enough and we
> will have to convert that to a bitmap. This is done in
> register_netdevice() for convenience.
>
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
> include/linux/netdevice.h | 6 ++++++
> net/core/dev.c | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index 366c32891158..4326bc6b27d1 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -4121,6 +4121,12 @@ const char *netdev_drivername(const struct net_device *dev);
>
> void linkwatch_run_queue(void);
>
> +static inline void netdev_features_size_check(void)
> +{
> + BUILD_BUG_ON(sizeof(netdev_features_t) * BITS_PER_BYTE <
> + NETDEV_FEATURE_COUNT);
> +}
> +
> static inline netdev_features_t netdev_intersect_features(netdev_features_t f1,
> netdev_features_t f2)
> {
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 0a2d46424069..23e6c1aa78c6 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -7881,6 +7881,7 @@ int register_netdevice(struct net_device *dev)
> int ret;
> struct net *net = dev_net(dev);
>
> + netdev_features_size_check();
> BUG_ON(dev_boot_phase);
> ASSERT_RTNL();
>
You don't have do this kind of inline function stuff to get the check.
Why not just put BUILD_BUG_ON directly in net/core/dev.c Could be anywhere.
Rather than adding inline in the header file.
prev parent reply other threads:[~2018-04-30 16:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-27 20:11 [PATCH net-next] net: core: Assert the size of netdev_featres_t Florian Fainelli
2018-04-30 2:52 ` David Miller
2018-04-30 16:42 ` Stephen Hemminger [this message]
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=20180430094210.5602265a@xeon-e3 \
--to=stephen@networkplumber.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=netdev@vger.kernel.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.