]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
net: Simplify ptp class checks
authorStefan Sørensen <stefan.sorensen@spectralink.com>
Fri, 27 Jun 2014 09:59:09 +0000 (11:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Jul 2014 23:57:09 +0000 (16:57 -0700)
Replace two switch statements enumerating all valid ptp classes with an if
statement matching for not PTP_CLASS_NONE.

Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/timestamping.c

index 6521dfd8b7c8563aa5cc7ccea8e5d6da05a7a586..a8770391ea5bfc0db85135cf913c84d09f55cedb 100644 (file)
@@ -43,31 +43,22 @@ void skb_clone_tx_timestamp(struct sk_buff *skb)
                return;
 
        type = classify(skb);
+       if (type == PTP_CLASS_NONE)
+               return;
+
+       phydev = skb->dev->phydev;
+       if (likely(phydev->drv->txtstamp)) {
+               if (!atomic_inc_not_zero(&sk->sk_refcnt))
+                       return;
 
-       switch (type) {
-       case PTP_CLASS_V1_IPV4:
-       case PTP_CLASS_V1_IPV6:
-       case PTP_CLASS_V2_IPV4:
-       case PTP_CLASS_V2_IPV6:
-       case PTP_CLASS_V2_L2:
-       case PTP_CLASS_V2_VLAN:
-               phydev = skb->dev->phydev;
-               if (likely(phydev->drv->txtstamp)) {
-                       if (!atomic_inc_not_zero(&sk->sk_refcnt))
-                               return;
-
-                       clone = skb_clone(skb, GFP_ATOMIC);
-                       if (!clone) {
-                               sock_put(sk);
-                               return;
-                       }
-
-                       clone->sk = sk;
-                       phydev->drv->txtstamp(phydev, clone, type);
+               clone = skb_clone(skb, GFP_ATOMIC);
+               if (!clone) {
+                       sock_put(sk);
+                       return;
                }
-               break;
-       default:
-               break;
+
+               clone->sk = sk;
+               phydev->drv->txtstamp(phydev, clone, type);
        }
 }
 EXPORT_SYMBOL_GPL(skb_clone_tx_timestamp);
@@ -114,20 +105,12 @@ bool skb_defer_rx_timestamp(struct sk_buff *skb)
 
        __skb_pull(skb, ETH_HLEN);
 
-       switch (type) {
-       case PTP_CLASS_V1_IPV4:
-       case PTP_CLASS_V1_IPV6:
-       case PTP_CLASS_V2_IPV4:
-       case PTP_CLASS_V2_IPV6:
-       case PTP_CLASS_V2_L2:
-       case PTP_CLASS_V2_VLAN:
-               phydev = skb->dev->phydev;
-               if (likely(phydev->drv->rxtstamp))
-                       return phydev->drv->rxtstamp(phydev, skb, type);
-               break;
-       default:
-               break;
-       }
+       if (type == PTP_CLASS_NONE)
+               return false;
+
+       phydev = skb->dev->phydev;
+       if (likely(phydev->drv->rxtstamp))
+               return phydev->drv->rxtstamp(phydev, skb, type);
 
        return false;
 }