Цитата(romez777 @ Jun 22 2017, 15:52)

Комментарии к коду pskb_may_pull() на
http://elixir.free-electrons.com/linux/lat.../skbuff.c#L1610 говорят, что функция может изменить skb указатели. Если так, то после выполнения этого API, нужно обновлять указатели, например, на L3/L4 заголовки.
Комментарии говорят совсем о другом, о том, что очередь сокетных буферов может быть изменена (переставлена, перетасована). Но это вовсе не значит, что изменится хоть один конкретный struct sk_buff*.
Но! Кроме того, если вы лезете в такую глубину, то:
- должны бы знать, что API ядра, начинающиеся с __ (2-х _) предназначены для внутреннего использования, а не для сторонних вызовов в качестве API;
- должны бы прочитать, в тех же комментариях, что это вызов сложный, экзотика и вызывается только в исключительных случаях.