Embedded Linux Kernel Networking issue - skb headroom values

S

stevenr

Guest
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.
 

Members online


Latest posts

Top