Embedded Linux Kernel Networking issue - skb headroom values

Discussion in 'Forum Assistance' started by stevenr, Aug 30, 2013.

  1. stevenr

    stevenr New Member

    Aug 30, 2013
    Likes Received:
    Embedded Linux Kernel Networking issue using skb buffer
    Anaysis of the skb buffer shows a headroom of 2 bytes. Sometimes the headroom value of two bytes is zero and sometimes it isn't.
    In calling alloc_buffer(), skb_reserve(skb, 2), skb_put() and then csum_and_copy_from_user(), the later sometimes returns -EFAULT (-14) which seems to be bad address and sometimes it succeeds.
    I believe the failure is because it sometimes (possibly the first time) expects a specific value in the headroom (the data portion is always the same, it is a ping ICMP message). If anyone understands exactly what the headroom is supposed to contain and from where please advise.
    Thank you for your help in advance.


Share This Page