net: infiniband/hw/nes: convert to hw_features
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Tue, 19 Apr 2011 00:43:20 +0000 (00:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Apr 2011 08:30:41 +0000 (01:30 -0700)
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/infiniband/hw/nes/nes_hw.c
drivers/infiniband/hw/nes/nes_hw.h
drivers/infiniband/hw/nes/nes_nic.c

index 10d0a5ec9add4f50e6dd0f9a89edb27f7db91965..96fa9a4cafdf29eecc39a8b181b9944e4569ad7a 100644 (file)
@@ -2885,9 +2885,8 @@ void nes_nic_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *cq)
                                        if ((cqe_errv &
                                                        (NES_NIC_ERRV_BITS_IPV4_CSUM_ERR | NES_NIC_ERRV_BITS_TCPUDP_CSUM_ERR |
                                                        NES_NIC_ERRV_BITS_IPH_ERR | NES_NIC_ERRV_BITS_WQE_OVERRUN)) == 0) {
-                                               if (nesvnic->rx_checksum_disabled == 0) {
+                                               if (nesvnic->netdev->features & NETIF_F_RXCSUM)
                                                        rx_skb->ip_summed = CHECKSUM_UNNECESSARY;
-                                               }
                                        } else
                                                nes_debug(NES_DBG_CQ, "%s: unsuccessfully checksummed TCP or UDP packet."
                                                                " errv = 0x%X, pkt_type = 0x%X.\n",
@@ -2897,7 +2896,7 @@ void nes_nic_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *cq)
                                        if ((cqe_errv &
                                                        (NES_NIC_ERRV_BITS_IPV4_CSUM_ERR | NES_NIC_ERRV_BITS_IPH_ERR |
                                                        NES_NIC_ERRV_BITS_WQE_OVERRUN)) == 0) {
-                                               if (nesvnic->rx_checksum_disabled == 0) {
+                                               if (nesvnic->netdev->features & NETIF_F_RXCSUM) {
                                                        rx_skb->ip_summed = CHECKSUM_UNNECESSARY;
                                                        /* nes_debug(NES_DBG_CQ, "%s: Reporting successfully checksummed IPv4 packet.\n",
                                                                  nesvnic->netdev->name); */
index d2abe07133a5d4ac9c04bb59b66c316cc2c423ac..91594116f947ea34715fa9874a533028656c03f6 100644 (file)
@@ -1245,7 +1245,6 @@ struct nes_vnic {
        u8  next_qp_nic_index;
        u8  of_device_registered;
        u8  rdma_enabled;
-       u8  rx_checksum_disabled;
        u32 lro_max_aggr;
        struct net_lro_mgr lro_mgr;
        struct net_lro_desc lro_desc[NES_MAX_LRO_DESCRIPTORS];
index e96b8fb5d44ce042071bf58c9fe6ce28507b8dba..d2e67c4e3228ff1dd410ded1105f4d2e9f765e13 100644 (file)
@@ -1093,34 +1093,6 @@ static const char nes_ethtool_stringset[][ETH_GSTRING_LEN] = {
 };
 #define NES_ETHTOOL_STAT_COUNT  ARRAY_SIZE(nes_ethtool_stringset)
 
-/**
- * nes_netdev_get_rx_csum
- */
-static u32 nes_netdev_get_rx_csum (struct net_device *netdev)
-{
-       struct nes_vnic *nesvnic = netdev_priv(netdev);
-
-       if (nesvnic->rx_checksum_disabled)
-               return 0;
-       else
-               return 1;
-}
-
-
-/**
- * nes_netdev_set_rc_csum
- */
-static int nes_netdev_set_rx_csum(struct net_device *netdev, u32 enable)
-{
-       struct nes_vnic *nesvnic = netdev_priv(netdev);
-
-       if (enable)
-               nesvnic->rx_checksum_disabled = 0;
-       else
-               nesvnic->rx_checksum_disabled = 1;
-       return 0;
-}
-
 
 /**
  * nes_netdev_get_sset_count
@@ -1598,19 +1570,10 @@ static int nes_netdev_set_settings(struct net_device *netdev, struct ethtool_cmd
 }
 
 
-static int nes_netdev_set_flags(struct net_device *netdev, u32 flags)
-{
-       return ethtool_op_set_flags(netdev, flags, ETH_FLAG_LRO);
-}
-
-
 static const struct ethtool_ops nes_ethtool_ops = {
        .get_link = ethtool_op_get_link,
        .get_settings = nes_netdev_get_settings,
        .set_settings = nes_netdev_set_settings,
-       .get_tx_csum = ethtool_op_get_tx_csum,
-       .get_rx_csum = nes_netdev_get_rx_csum,
-       .get_sg = ethtool_op_get_sg,
        .get_strings = nes_netdev_get_strings,
        .get_sset_count = nes_netdev_get_sset_count,
        .get_ethtool_stats = nes_netdev_get_ethtool_stats,
@@ -1619,13 +1582,6 @@ static const struct ethtool_ops nes_ethtool_ops = {
        .set_coalesce = nes_netdev_set_coalesce,
        .get_pauseparam = nes_netdev_get_pauseparam,
        .set_pauseparam = nes_netdev_set_pauseparam,
-       .set_tx_csum = ethtool_op_set_tx_csum,
-       .set_rx_csum = nes_netdev_set_rx_csum,
-       .set_sg = ethtool_op_set_sg,
-       .get_tso = ethtool_op_get_tso,
-       .set_tso = ethtool_op_set_tso,
-       .get_flags = ethtool_op_get_flags,
-       .set_flags = nes_netdev_set_flags,
 };
 
 
@@ -1727,12 +1683,11 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
        netdev->dev_addr[5] = (u8)u64temp;
        memcpy(netdev->perm_addr, netdev->dev_addr, 6);
 
-       if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV)) {
-               netdev->features |= NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
-               netdev->features |= NETIF_F_GSO | NETIF_F_TSO | NETIF_F_SG | NETIF_F_IP_CSUM;
-       } else {
-               netdev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
-       }
+       netdev->hw_features = NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_IP_CSUM;
+       if ((nesvnic->logical_port < 2) || (nesdev->nesadapter->hw_rev != NE020_REV))
+               netdev->hw_features |= NETIF_F_TSO;
+       netdev->features |= netdev->hw_features;
+       netdev->hw_features |= NETIF_F_LRO;
 
        nes_debug(NES_DBG_INIT, "nesvnic = %p, reported features = 0x%lX, QPid = %d,"
                        " nic_index = %d, logical_port = %d, mac_index = %d.\n",