Re: [PATCH net] drivers/net/wan/hdlc: Change the default of hard_header_len to 0
From: David Miller
Date: Wed Sep 02 2020 - 18:43:07 EST
From: Xie He <xie.he.0141@xxxxxxxxx>
Date: Wed, 2 Sep 2020 05:07:06 -0700
> Change the default value of hard_header_len in hdlc.c from 16 to 0.
>
> Currently there are 6 HDLC protocol drivers, among them:
>
> hdlc_raw_eth, hdlc_cisco, hdlc_ppp, hdlc_x25 set hard_header_len when
> attaching the protocol, overriding the default. So this patch does not
> affect them.
>
> hdlc_raw and hdlc_fr don't set hard_header_len when attaching the
> protocol. So this patch will change the hard_header_len of the HDLC
> device for them from 16 to 0.
>
> This is the correct change because both hdlc_raw and hdlc_fr don't have
> header_ops, and the code in net/packet/af_packet.c expects the value of
> hard_header_len to be consistent with header_ops.
>
> In net/packet/af_packet.c, in the packet_snd function,
> for AF_PACKET/DGRAM sockets it would reserve a headroom of
> hard_header_len and call dev_hard_header to fill in that headroom,
> and for AF_PACKET/RAW sockets, it does not reserve the headroom and
> does not call dev_hard_header, but checks if the user has provided a
> header of length hard_header_len (in function dev_validate_header).
>
> Cc: Krzysztof Halasa <khc@xxxxxxxxx>
> Cc: Martin Schiller <ms@xxxxxxxxxx>
> Signed-off-by: Xie He <xie.he.0141@xxxxxxxxx>
Applied, thanks.