int nr_bufs, i;
unsigned int cons;
unsigned int prod;
+ struct nc2_tx_buffer *txbuf;
/* get the netchannel2 interface corresponding to this queue */
nc = netdev_priv(nc2_vmq_queue_to_vif(netdevice, queue_id));
/* FIX ME: This can be simplified */
skb_shinfo(skb)->frags[i].page =
virt_to_page(vmq_idx_to_kaddr(vmq,idx));
- skb_shinfo(skb)->frags[i].page_offset = 0;
- skb_shinfo(skb)->frags[i].size = PAGE_SIZE;
+ txbuf = vmq->buffer[idx].buf;
+ skb_shinfo(skb)->frags[i].page_offset = txbuf->off_in_page;
+ skb_shinfo(skb)->frags[i].size = txbuf->size;
skb_shinfo(skb)->nr_frags++;
skb->dev = netdevice;
cons++;