]> bbs.cooldavid.org Git - jme.git/blobdiff - jme.c
net: introduce and use netdev_features_t for device features sets
[jme.git] / jme.c
diff --git a/jme.c b/jme.c
index 2695a8e324e2a05ff1a9ac2a6898e648f0ed4764..c62014dcecebd39ab83d94b3b5f453076d6bfcd6 100644 (file)
--- a/jme.c
+++ b/jme.c
@@ -1991,10 +1991,10 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx)
        struct jme_ring *txring = &(jme->txring[0]);
        struct txdesc *txdesc = txring->desc, *ctxdesc;
        struct jme_buffer_info *txbi = txring->bufinf, *ctxbi;
-       u8 hidma = jme->dev->features & NETIF_F_HIGHDMA;
+       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;
@@ -2457,9 +2463,9 @@ jme_get_drvinfo(struct net_device *netdev,
 {
        struct jme_adapter *jme = netdev_priv(netdev);
 
-       strcpy(info->driver, DRV_NAME);
-       strcpy(info->version, DRV_VERSION);
-       strcpy(info->bus_info, pci_name(jme->pdev));
+       strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
+       strlcpy(info->version, DRV_VERSION, sizeof(info->version));
+       strlcpy(info->bus_info, pci_name(jme->pdev), sizeof(info->bus_info));
 }
 
 static int
@@ -2856,8 +2862,13 @@ jme_set_tso(struct net_device *netdev, u32 on)
        return 0;
 }
 #else
+#ifndef __NEW_FIX_FEATURES_TYPE__
 static u32
 jme_fix_features(struct net_device *netdev, u32 features)
+#else
+static netdev_features_t
+jme_fix_features(struct net_device *netdev, netdev_features_t features)
+#endif
 {
        if (netdev->mtu > 1900)
                features &= ~(NETIF_F_ALL_TSO | NETIF_F_ALL_CSUM);
@@ -2865,7 +2876,11 @@ jme_fix_features(struct net_device *netdev, u32 features)
 }
 
 static int
+#ifndef __NEW_FIX_FEATURES_TYPE__
 jme_set_features(struct net_device *netdev, u32 features)
+#else
+jme_set_features(struct net_device *netdev, netdev_features_t features)
+#endif
 {
        struct jme_adapter *jme = netdev_priv(netdev);