]> bbs.cooldavid.org Git - jme.git/blobdiff - jme.c
net: add skb frag size accessors
[jme.git] / jme.c
diff --git a/jme.c b/jme.c
index 7dae9b86c92964ce46ccb28aafc440be877b57e9..e918eaaea9d7a064789fcec30cb777f9ff71f53c 100644 (file)
--- a/jme.c
+++ b/jme.c
@@ -1994,7 +1994,7 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx)
        u8 hidma = jme->dev->features & NETIF_F_HIGHDMA;
        int i, nr_frags = skb_shinfo(skb)->nr_frags;
        int mask = jme->tx_ring_mask;
-       struct skb_frag_struct *frag;
+       const struct skb_frag_struct *frag;
        u32 len;
 
        for (i = 0 ; i < nr_frags ; ++i) {
@@ -2002,8 +2002,14 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx)
                ctxdesc = txdesc + ((idx + i + 2) & (mask));
                ctxbi = txbi + ((idx + i + 2) & (mask));
 
+#ifndef __USE_SKB_FRAG_API__
                jme_fill_tx_map(jme->pdev, ctxdesc, ctxbi, frag->page,
                                 frag->page_offset, frag->size, hidma);
+#else
+               jme_fill_tx_map(jme->pdev, ctxdesc, ctxbi,
+                               skb_frag_page(frag),
+                               frag->page_offset, skb_frag_size(frag), hidma);
+#endif
        }
 
        len = skb_is_nonlinear(skb) ? skb_headlen(skb) : skb->len;
@@ -3112,7 +3118,11 @@ static const struct net_device_ops jme_netdev_ops = {
        .ndo_do_ioctl           = jme_ioctl,
        .ndo_start_xmit         = jme_start_xmit,
        .ndo_set_mac_address    = jme_set_macaddr,
+#ifndef __USE_NDO_SET_RX_MODE__
        .ndo_set_multicast_list = jme_set_multi,
+#else
+       .ndo_set_rx_mode        = jme_set_multi,
+#endif
        .ndo_change_mtu         = jme_change_mtu,
        .ndo_tx_timeout         = jme_tx_timeout,
 #ifndef __UNIFY_VLAN_RX_PATH__