skb_shinfo(skb)->nr_frags
показывает количество фрагментов с разбивкой по страницам, но это не единственное место, где данные могут быть помещены в skb за пределами линейной области данных. Также есть список фрагментов skb, прикрепленных к этому skb в skb_shinfo(skb)->frag_list
(см. Skb_walk_frags () в ядре). Ваши данные могут быть там. Если нет, то трудно сказать, что происходит, не видя ваш код на всем пути в ядре от входа и до вызова sk_data_ready()
. Это может быть просто ошибка где-то.