unsigned_long:1                     see_all_hwtstamp_requests                                       
 unsigned_long:1                     change_proto_down                                               
 unsigned_long:1                     netns_local                                                     
+unsigned_long:1                     fcoe_mtu                                                        
 struct_list_head                    net_notifier_list                                               
 struct_macsec_ops*                  macsec_ops                                                      
 struct_udp_tunnel_nic_info*         udp_tunnel_nic_info                                             
 
 
        netdev->features |= NETIF_F_FCOE_CRC;
        netdev->vlan_features |= NETIF_F_FCOE_CRC;
-       netdev->features |= NETIF_F_FCOE_MTU;
-       netdev->vlan_features |= NETIF_F_FCOE_MTU;
+       netdev->fcoe_mtu = true;
 
        netdev_features_change(netdev);
 
 
        netdev->features &= ~NETIF_F_FCOE_CRC;
        netdev->vlan_features &= ~NETIF_F_FCOE_CRC;
-       netdev->features &= ~NETIF_F_FCOE_MTU;
-       netdev->vlan_features &= ~NETIF_F_FCOE_MTU;
+       netdev->fcoe_mtu = false;
 
        netdev_features_change(netdev);
 
 
                int max_frame = adapter->netdev->mtu + ETH_HLEN + ETH_FCS_LEN;
 
 #ifdef IXGBE_FCOE
-               if (adapter->netdev->features & NETIF_F_FCOE_MTU)
+               if (adapter->netdev->fcoe_mtu)
                        max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE);
 #endif
 
 
 
        /* enable FCoE and notify stack */
        adapter->flags |= IXGBE_FLAG_FCOE_ENABLED;
-       netdev->features |= NETIF_F_FCOE_MTU;
+       netdev->fcoe_mtu = true;
        netdev_features_change(netdev);
 
        /* release existing queues and reallocate them */
 
        /* disable FCoE and notify stack */
        adapter->flags &= ~IXGBE_FLAG_FCOE_ENABLED;
-       netdev->features &= ~NETIF_F_FCOE_MTU;
+       netdev->fcoe_mtu = false;
 
        netdev_features_change(netdev);
 
 
                        set_bit(__IXGBE_RX_CSUM_UDP_ZERO_ERR, &ring->state);
 
 #ifdef IXGBE_FCOE
-               if (adapter->netdev->features & NETIF_F_FCOE_MTU) {
+               if (adapter->netdev->fcoe_mtu) {
                        struct ixgbe_ring_feature *f;
                        f = &adapter->ring_feature[RING_F_FCOE];
                        if ((rxr_idx >= f->offset) &&
 
                netif_set_tso_max_size(adapter->netdev, 32768);
 
 #ifdef IXGBE_FCOE
-       if (adapter->netdev->features & NETIF_F_FCOE_MTU)
+       if (adapter->netdev->fcoe_mtu)
                max_frame = max(max_frame, IXGBE_FCOE_JUMBO_FRAME_SIZE);
 #endif
 
 
 #ifdef IXGBE_FCOE
        /* FCoE traffic class uses FCOE jumbo frames */
-       if ((dev->features & NETIF_F_FCOE_MTU) &&
-           (tc < IXGBE_FCOE_JUMBO_FRAME_SIZE) &&
+       if (dev->fcoe_mtu && tc < IXGBE_FCOE_JUMBO_FRAME_SIZE &&
            (pb == ixgbe_fcoe_get_tc(adapter)))
                tc = IXGBE_FCOE_JUMBO_FRAME_SIZE;
 #endif
 
 #ifdef IXGBE_FCOE
        /* FCoE traffic class uses FCOE jumbo frames */
-       if ((dev->features & NETIF_F_FCOE_MTU) &&
-           (tc < IXGBE_FCOE_JUMBO_FRAME_SIZE) &&
+       if (dev->fcoe_mtu && tc < IXGBE_FCOE_JUMBO_FRAME_SIZE &&
            (pb == netdev_get_prio_tc_map(dev, adapter->fcoe.up)))
                tc = IXGBE_FCOE_JUMBO_FRAME_SIZE;
 #endif
                                    NETIF_F_FCOE_CRC;
 
                netdev->vlan_features |= NETIF_F_FSO |
-                                        NETIF_F_FCOE_CRC |
-                                        NETIF_F_FCOE_MTU;
+                                        NETIF_F_FCOE_CRC;
        }
 #endif /* IXGBE_FCOE */
        if (adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE)
 
                int err = 0;
 
 #ifdef CONFIG_FCOE
-               if (dev->features & NETIF_F_FCOE_MTU)
+               if (dev->fcoe_mtu)
                        pf_max_frame = max_t(int, pf_max_frame,
                                             IXGBE_FCOE_JUMBO_FRAME_SIZE);
 
                int pf_max_frame = dev->mtu + ETH_HLEN;
 
 #if IS_ENABLED(CONFIG_FCOE)
-               if (dev->features & NETIF_F_FCOE_MTU)
+               if (dev->fcoe_mtu)
                        pf_max_frame = max_t(int, pf_max_frame,
                                             IXGBE_FCOE_JUMBO_FRAME_SIZE);
 #endif /* CONFIG_FCOE */
 
         * will return 0, so do this first.
         */
        mfs = netdev->mtu;
-       if (netdev->features & NETIF_F_FCOE_MTU) {
+       if (netdev->fcoe_mtu) {
                mfs = FCOE_MTU;
                FCOE_NETDEV_DBG(netdev, "Supports FCOE_MTU of %d bytes\n", mfs);
        }
        case NETDEV_CHANGE:
                break;
        case NETDEV_CHANGEMTU:
-               if (netdev->features & NETIF_F_FCOE_MTU)
+               if (netdev->fcoe_mtu)
                        break;
                mfs = netdev->mtu - (sizeof(struct fcoe_hdr) +
                                     sizeof(struct fcoe_crc_eof));
 
 
        NETIF_F_FCOE_CRC_BIT,           /* FCoE CRC32 */
        NETIF_F_SCTP_CRC_BIT,           /* SCTP checksum offload */
-       NETIF_F_FCOE_MTU_BIT,           /* Supports max FCoE MTU, 2158 bytes*/
+       __UNUSED_NETIF_F_37,
        NETIF_F_NTUPLE_BIT,             /* N-tuple filters supported */
        NETIF_F_RXHASH_BIT,             /* Receive hashing offload */
        NETIF_F_RXCSUM_BIT,             /* Receive checksumming offload */
 #define __NETIF_F(name)                __NETIF_F_BIT(NETIF_F_##name##_BIT)
 
 #define NETIF_F_FCOE_CRC       __NETIF_F(FCOE_CRC)
-#define NETIF_F_FCOE_MTU       __NETIF_F(FCOE_MTU)
 #define NETIF_F_FRAGLIST       __NETIF_F(FRAGLIST)
 #define NETIF_F_FSO            __NETIF_F(FSO)
 #define NETIF_F_GRO            __NETIF_F(GRO)
 #define NETIF_F_ALL_TSO        (NETIF_F_TSO | NETIF_F_TSO6 | \
                                 NETIF_F_TSO_ECN | NETIF_F_TSO_MANGLEID)
 
-#define NETIF_F_ALL_FCOE       (NETIF_F_FCOE_CRC | NETIF_F_FCOE_MTU | \
-                                NETIF_F_FSO)
+#define NETIF_F_ALL_FCOE       (NETIF_F_FCOE_CRC | NETIF_F_FSO)
 
 /* List of features with software fallbacks. */
 #define NETIF_F_GSO_SOFTWARE   (NETIF_F_ALL_TSO | NETIF_F_GSO_SCTP |        \
 
  *                     HWTSTAMP_SOURCE_NETDEV
  *     @change_proto_down: device supports setting carrier via IFLA_PROTO_DOWN
  *     @netns_local: interface can't change network namespaces
+ *     @fcoe_mtu:      device supports maximum FCoE MTU, 2158 bytes
  *
  *     @net_notifier_list:     List of per-net netdev notifier block
  *                             that follow this device when it is moved
        unsigned long           see_all_hwtstamp_requests:1;
        unsigned long           change_proto_down:1;
        unsigned long           netns_local:1;
+       unsigned long           fcoe_mtu:1;
 
        struct list_head        net_notifier_list;
 
 
 
        dev->features |= dev->hw_features;
        dev->lltx = true;
+       dev->fcoe_mtu = true;
        netif_inherit_tso_max(dev, real_dev);
        if (dev->features & NETIF_F_VLAN_FEATURES)
                netdev_warn(real_dev, "VLAN features are set incorrectly.  Q-in-Q configurations may not work correctly.\n");
 
 
        [NETIF_F_FCOE_CRC_BIT] =         "tx-checksum-fcoe-crc",
        [NETIF_F_SCTP_CRC_BIT] =        "tx-checksum-sctp",
-       [NETIF_F_FCOE_MTU_BIT] =         "fcoe-mtu",
        [NETIF_F_NTUPLE_BIT] =           "rx-ntuple-filter",
        [NETIF_F_RXHASH_BIT] =           "rx-hashing",
        [NETIF_F_RXCSUM_BIT] =           "rx-checksum",