• Xie He's avatar
    drivers/net/wan/hdlc: Change the default of hard_header_len to 0 · 2b7bcd96
    Xie He authored
    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@pm.waw.pl>
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: default avatarXie He <xie.he.0141@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2b7bcd96
hdlc.c 8.03 KB