mapping address pointer to page structure
swathi suresh
swathi.suresh07 at gmail.com
Thu Mar 31 00:09:21 EDT 2011
On Wed, Mar 30, 2011 at 10:42 PM, sk.syed2 <sk.syed2 at gmail.com> wrote:
> > struct page *page = virt_to_page(skb->data);
> > int offset = (unsigned long) skb->data - (unsigned long)
> page_address(page);
> > skb_add_rx_frag(master_skb, skb_shinfo(master_skb)->nr_frags, page,
> offset,
> > skb->len)
> > .
> > .
> > is this the right way to do ?
> This will work if skb->len < PAGE_SIZE, otherwise it means it spans
> more than a page and you need to do skb_add_rx_frag for each PAGE_SIZE
> data present. Refer to Understanding Linux network internals By
> Christian Benvenuti p 488/489.
>
Thanks Syed, skb->len is always smaller then PAGE_SIZE because i have set
the mtu size as 1500 from my network driver.
But am facing kernel panic, if i just the moment the driver call
dev_queue_xmit, so i guess this may not be right way to get
the page.
Anyways thanks for the support.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110331/5e41ff38/attachment.html
More information about the Kernelnewbies
mailing list