From: Xie He <xie.he.0...@gmail.com> 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 <k...@pm.waw.pl> > Cc: Martin Schiller <m...@dev.tdt.de> > Signed-off-by: Xie He <xie.he.0...@gmail.com> Applied, thanks.