Re: [PATCH] net_sched: use explicit size of struct tcmsg, remove need to declare tcm
From: Eric Dumazet
Date: Mon Sep 18 2017 - 11:00:43 EST
On Mon, 2017-09-18 at 12:18 +0000, David Laight wrote:
> From: Colin King
> > Sent: 18 September 2017 12:41
> > Pointer tcm is being initialized and is never read, it is only being used
> > to determine the size of struct tcmsg. Clean this up by removing
> > variable tcm and explicitly using the sizeof struct tcmsg rather than *tcm.
> > Cleans up clang warning:
> >
> > warning: Value stored to 'tcm' during its initialization is never read
> >
> > Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> > ---
> > net/sched/sch_api.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
> > index c6deb74e3d2f..aa82116ed10c 100644
> > --- a/net/sched/sch_api.c
> > +++ b/net/sched/sch_api.c
> > @@ -1500,7 +1500,6 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb)
> > int s_idx, s_q_idx;
> > struct net_device *dev;
> > const struct nlmsghdr *nlh = cb->nlh;
> > - struct tcmsg *tcm = nlmsg_data(nlh);
> > struct nlattr *tca[TCA_MAX + 1];
> > int err;
> >
> > @@ -1510,7 +1509,7 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb)
> > idx = 0;
> > ASSERT_RTNL();
> >
> > - err = nlmsg_parse(nlh, sizeof(*tcm), tca, TCA_MAX, NULL, NULL);
> > + err = nlmsg_parse(nlh, sizeof(struct tcmsg), tca, TCA_MAX, NULL, NULL);
>
> Would sizeof(*nlmsg_data(nlh)) be cleaner??
Not really, since
static inline void *nlmsg_data(const struct nlmsghdr *nlh)
{
...
}