Re: [patch net-next] net: hns: add skb_reset_mac_header() after skb being alloc

From: David Miller
Date: Wed Jun 15 2016 - 01:41:40 EST


From: Yisen Zhuang <Yisen.Zhuang@xxxxxxxxxx>
Date: Mon, 13 Jun 2016 20:41:22 +0800

> From: Kejian Yan <yankejian@xxxxxxxxxx>
>
> HNS receives a packet without doing anything, but it should call
> skb_reset_mac_header() to initialize the header before using
> eth_hdr().
>
> Fixes: 0d6b425a3773c3445b0f51b2f333821beaacb619
> Signed-off-by: Kejian Yan <yankejian@xxxxxxxxxx>
> Signed-off-by: Yisen Zhuang <Yisen.Zhuang@xxxxxxxxxx>

Well, this patch made me look at this function.

You really shouldn't be filtering packets looped back, that is
the stack's job. It shouldn't be happening in the driver.

And once you remove that code, this patch here is no longer
necessary.

Second of all, unless you card supports every protocol that
exists in the past, present, and _future_ you cannot set
skb->ip_summed to CHECKSUM_UNNECSSARY unconditionally like
that.

You can only set that for protocols your chip actually supports.