Merge branch 'timecounter-next'
[cascardo/linux.git] / drivers / net / ethernet / broadcom / bnx2x / bnx2x_main.c
index 07c6368..0758c8b 100644 (file)
@@ -45,6 +45,7 @@
 #include <net/ip.h>
 #include <net/ipv6.h>
 #include <net/tcp.h>
+#include <net/vxlan.h>
 #include <net/checksum.h>
 #include <net/ip6_checksum.h>
 #include <linux/workqueue.h>
@@ -12552,6 +12553,13 @@ static int bnx2x_get_phys_port_id(struct net_device *netdev,
        return 0;
 }
 
+static netdev_features_t bnx2x_features_check(struct sk_buff *skb,
+                                             struct net_device *dev,
+                                             netdev_features_t features)
+{
+       return vxlan_features_check(skb, features);
+}
+
 static const struct net_device_ops bnx2x_netdev_ops = {
        .ndo_open               = bnx2x_open,
        .ndo_stop               = bnx2x_close,
@@ -12583,6 +12591,7 @@ static const struct net_device_ops bnx2x_netdev_ops = {
 #endif
        .ndo_get_phys_port_id   = bnx2x_get_phys_port_id,
        .ndo_set_vf_link_state  = bnx2x_set_vf_link_state,
+       .ndo_features_check     = bnx2x_features_check,
 };
 
 static int bnx2x_set_coherency_mask(struct bnx2x *bp)
@@ -13249,7 +13258,7 @@ static int bnx2x_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb)
                return -EFAULT;
        }
 
-       DP(BNX2X_MSG_PTP, "Configrued val = %d, period = %d\n", best_val,
+       DP(BNX2X_MSG_PTP, "Configured val = %d, period = %d\n", best_val,
           best_period);
 
        return 0;
@@ -13258,14 +13267,10 @@ static int bnx2x_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb)
 static int bnx2x_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
 {
        struct bnx2x *bp = container_of(ptp, struct bnx2x, ptp_clock_info);
-       u64 now;
 
        DP(BNX2X_MSG_PTP, "PTP adjtime called, delta = %llx\n", delta);
 
-       now = timecounter_read(&bp->timecounter);
-       now += delta;
-       /* Re-init the timecounter */
-       timecounter_init(&bp->timecounter, &bp->cyclecounter, now);
+       timecounter_adjtime(&bp->timecounter, delta);
 
        return 0;
 }
@@ -14605,7 +14610,7 @@ static void bnx2x_init_cyclecounter(struct bnx2x *bp)
 {
        memset(&bp->cyclecounter, 0, sizeof(bp->cyclecounter));
        bp->cyclecounter.read = bnx2x_cyclecounter_read;
-       bp->cyclecounter.mask = CLOCKSOURCE_MASK(64);
+       bp->cyclecounter.mask = CYCLECOUNTER_MASK(64);
        bp->cyclecounter.shift = 1;
        bp->cyclecounter.mult = 1;
 }
@@ -14777,7 +14782,7 @@ static int bnx2x_hwtstamp_ioctl(struct bnx2x *bp, struct ifreq *ifr)
                -EFAULT : 0;
 }
 
-/* Configrues HW for PTP */
+/* Configures HW for PTP */
 static int bnx2x_configure_ptp(struct bnx2x *bp)
 {
        int rc, port = BP_PORT(bp);