Loading drivers/net/cxgb4/cxgb4.h +0 −6 Original line number Diff line number Diff line Loading @@ -290,7 +290,6 @@ struct port_info { u8 port_id; u8 tx_chan; u8 lport; /* associated offload logical port */ u8 rx_offload; /* CSO, etc */ u8 nqsets; /* # of qsets */ u8 first_qset; /* index of first qset */ u8 rss_mode; Loading @@ -298,11 +297,6 @@ struct port_info { u16 *rss; }; /* port_info.rx_offload flags */ enum { RX_CSO = 1 << 0, }; struct dentry; struct work_struct; Loading drivers/net/cxgb4/cxgb4_main.c +17 −55 Original line number Diff line number Diff line Loading @@ -1531,24 +1531,6 @@ static int set_pauseparam(struct net_device *dev, return 0; } static u32 get_rx_csum(struct net_device *dev) { struct port_info *p = netdev_priv(dev); return p->rx_offload & RX_CSO; } static int set_rx_csum(struct net_device *dev, u32 data) { struct port_info *p = netdev_priv(dev); if (data) p->rx_offload |= RX_CSO; else p->rx_offload &= ~RX_CSO; return 0; } static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e) { const struct port_info *pi = netdev_priv(dev); Loading Loading @@ -1870,36 +1852,20 @@ static int set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) return err; } #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN) static int set_tso(struct net_device *dev, u32 value) { if (value) dev->features |= TSO_FLAGS; else dev->features &= ~TSO_FLAGS; return 0; } static int set_flags(struct net_device *dev, u32 flags) static int cxgb_set_features(struct net_device *dev, u32 features) { const struct port_info *pi = netdev_priv(dev); u32 changed = dev->features ^ features; int err; unsigned long old_feat = dev->features; err = ethtool_op_set_flags(dev, flags, ETH_FLAG_RXHASH | ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN); if (err) return err; if ((old_feat ^ dev->features) & NETIF_F_HW_VLAN_RX) { const struct port_info *pi = netdev_priv(dev); if (!(changed & NETIF_F_HW_VLAN_RX)) return 0; err = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, -1, -1, -1, -1, !!(flags & ETH_FLAG_RXVLAN), true); if (err) dev->features = old_feat; } -1, -1, -1, !!(features & NETIF_F_HW_VLAN_RX), true); if (unlikely(err)) dev->features = features ^ NETIF_F_HW_VLAN_RX; return err; } Loading Loading @@ -2010,10 +1976,6 @@ static struct ethtool_ops cxgb_ethtool_ops = { .set_eeprom = set_eeprom, .get_pauseparam = get_pauseparam, .set_pauseparam = set_pauseparam, .get_rx_csum = get_rx_csum, .set_rx_csum = set_rx_csum, .set_tx_csum = ethtool_op_set_tx_ipv6_csum, .set_sg = ethtool_op_set_sg, .get_link = ethtool_op_get_link, .get_strings = get_strings, .set_phys_id = identify_port, Loading @@ -2024,8 +1986,6 @@ static struct ethtool_ops cxgb_ethtool_ops = { .get_regs = get_regs, .get_wol = get_wol, .set_wol = set_wol, .set_tso = set_tso, .set_flags = set_flags, .get_rxnfc = get_rxnfc, .get_rxfh_indir = get_rss_table, .set_rxfh_indir = set_rss_table, Loading Loading @@ -2882,6 +2842,7 @@ static const struct net_device_ops cxgb4_netdev_ops = { .ndo_get_stats64 = cxgb_get_stats, .ndo_set_rx_mode = cxgb_set_rxmode, .ndo_set_mac_address = cxgb_set_mac_addr, .ndo_set_features = cxgb_set_features, .ndo_validate_addr = eth_validate_addr, .ndo_do_ioctl = cxgb_ioctl, .ndo_change_mtu = cxgb_change_mtu, Loading Loading @@ -3564,6 +3525,7 @@ static void free_some_resources(struct adapter *adapter) t4_fw_bye(adapter, adapter->fn); } #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN) #define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \ NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA) Loading Loading @@ -3665,14 +3627,14 @@ static int __devinit init_one(struct pci_dev *pdev, pi = netdev_priv(netdev); pi->adapter = adapter; pi->xact_addr_filt = -1; pi->rx_offload = RX_CSO; pi->port_id = i; netdev->irq = pdev->irq; netdev->features |= NETIF_F_SG | TSO_FLAGS; netdev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; netdev->features |= NETIF_F_GRO | NETIF_F_RXHASH | highdma; netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; netdev->hw_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; netdev->features |= netdev->hw_features | highdma; netdev->vlan_features = netdev->features & VLAN_FEAT; netdev->netdev_ops = &cxgb4_netdev_ops; Loading drivers/net/cxgb4/sge.c +1 −3 Original line number Diff line number Diff line Loading @@ -1556,7 +1556,6 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp, { bool csum_ok; struct sk_buff *skb; struct port_info *pi; const struct cpl_rx_pkt *pkt; struct sge_eth_rxq *rxq = container_of(q, struct sge_eth_rxq, rspq); Loading Loading @@ -1584,10 +1583,9 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp, if (skb->dev->features & NETIF_F_RXHASH) skb->rxhash = (__force u32)pkt->rsshdr.hash_val; pi = netdev_priv(skb->dev); rxq->stats.pkts++; if (csum_ok && (pi->rx_offload & RX_CSO) && if (csum_ok && (q->netdev->features & NETIF_F_RXCSUM) && (pkt->l2info & htonl(RXF_UDP | RXF_TCP))) { if (!pkt->ip_frag) { skb->ip_summed = CHECKSUM_UNNECESSARY; Loading drivers/net/cxgb4vf/adapter.h +0 −6 Original line number Diff line number Diff line Loading @@ -97,17 +97,11 @@ struct port_info { u16 rss_size; /* size of VI's RSS table slice */ u8 pidx; /* index into adapter port[] */ u8 port_id; /* physical port ID */ u8 rx_offload; /* CSO, etc. */ u8 nqsets; /* # of "Queue Sets" */ u8 first_qset; /* index of first "Queue Set" */ struct link_config link_cfg; /* physical port configuration */ }; /* port_info.rx_offload flags */ enum { RX_CSO = 1 << 0, }; /* * Scatter Gather Engine resources for the "adapter". Our ingress and egress * queues are organized into "Queue Sets" with one ingress and one egress Loading drivers/net/cxgb4vf/cxgb4vf_main.c +8 −49 Original line number Diff line number Diff line Loading @@ -1325,30 +1325,6 @@ static void cxgb4vf_get_pauseparam(struct net_device *dev, pauseparam->tx_pause = (pi->link_cfg.fc & PAUSE_TX) != 0; } /* * Return whether RX Checksum Offloading is currently enabled for the device. */ static u32 cxgb4vf_get_rx_csum(struct net_device *dev) { struct port_info *pi = netdev_priv(dev); return (pi->rx_offload & RX_CSO) != 0; } /* * Turn RX Checksum Offloading on or off for the device. */ static int cxgb4vf_set_rx_csum(struct net_device *dev, u32 csum) { struct port_info *pi = netdev_priv(dev); if (csum) pi->rx_offload |= RX_CSO; else pi->rx_offload &= ~RX_CSO; return 0; } /* * Identify the port by blinking the port's LED. */ Loading Loading @@ -1569,18 +1545,6 @@ static void cxgb4vf_get_wol(struct net_device *dev, */ #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN) /* * Set TCP Segmentation Offloading feature capabilities. */ static int cxgb4vf_set_tso(struct net_device *dev, u32 tso) { if (tso) dev->features |= TSO_FLAGS; else dev->features &= ~TSO_FLAGS; return 0; } static struct ethtool_ops cxgb4vf_ethtool_ops = { .get_settings = cxgb4vf_get_settings, .get_drvinfo = cxgb4vf_get_drvinfo, Loading @@ -1591,10 +1555,6 @@ static struct ethtool_ops cxgb4vf_ethtool_ops = { .get_coalesce = cxgb4vf_get_coalesce, .set_coalesce = cxgb4vf_set_coalesce, .get_pauseparam = cxgb4vf_get_pauseparam, .get_rx_csum = cxgb4vf_get_rx_csum, .set_rx_csum = cxgb4vf_set_rx_csum, .set_tx_csum = ethtool_op_set_tx_ipv6_csum, .set_sg = ethtool_op_set_sg, .get_link = ethtool_op_get_link, .get_strings = cxgb4vf_get_strings, .set_phys_id = cxgb4vf_phys_id, Loading @@ -1603,7 +1563,6 @@ static struct ethtool_ops cxgb4vf_ethtool_ops = { .get_regs_len = cxgb4vf_get_regs_len, .get_regs = cxgb4vf_get_regs, .get_wol = cxgb4vf_get_wol, .set_tso = cxgb4vf_set_tso, }; /* Loading Loading @@ -2638,19 +2597,19 @@ static int __devinit cxgb4vf_pci_probe(struct pci_dev *pdev, * it. */ pi->xact_addr_filt = -1; pi->rx_offload = RX_CSO; netif_carrier_off(netdev); netdev->irq = pdev->irq; netdev->features = (NETIF_F_SG | TSO_FLAGS | netdev->hw_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_HW_VLAN_TX | NETIF_F_RXCSUM; netdev->vlan_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | NETIF_F_GRO); NETIF_F_HIGHDMA; netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_RX; if (pci_using_dac) netdev->features |= NETIF_F_HIGHDMA; netdev->vlan_features = (netdev->features & ~(NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX)); #ifdef HAVE_NET_DEVICE_OPS netdev->netdev_ops = &cxgb4vf_netdev_ops; Loading Loading
drivers/net/cxgb4/cxgb4.h +0 −6 Original line number Diff line number Diff line Loading @@ -290,7 +290,6 @@ struct port_info { u8 port_id; u8 tx_chan; u8 lport; /* associated offload logical port */ u8 rx_offload; /* CSO, etc */ u8 nqsets; /* # of qsets */ u8 first_qset; /* index of first qset */ u8 rss_mode; Loading @@ -298,11 +297,6 @@ struct port_info { u16 *rss; }; /* port_info.rx_offload flags */ enum { RX_CSO = 1 << 0, }; struct dentry; struct work_struct; Loading
drivers/net/cxgb4/cxgb4_main.c +17 −55 Original line number Diff line number Diff line Loading @@ -1531,24 +1531,6 @@ static int set_pauseparam(struct net_device *dev, return 0; } static u32 get_rx_csum(struct net_device *dev) { struct port_info *p = netdev_priv(dev); return p->rx_offload & RX_CSO; } static int set_rx_csum(struct net_device *dev, u32 data) { struct port_info *p = netdev_priv(dev); if (data) p->rx_offload |= RX_CSO; else p->rx_offload &= ~RX_CSO; return 0; } static void get_sge_param(struct net_device *dev, struct ethtool_ringparam *e) { const struct port_info *pi = netdev_priv(dev); Loading Loading @@ -1870,36 +1852,20 @@ static int set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) return err; } #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN) static int set_tso(struct net_device *dev, u32 value) { if (value) dev->features |= TSO_FLAGS; else dev->features &= ~TSO_FLAGS; return 0; } static int set_flags(struct net_device *dev, u32 flags) static int cxgb_set_features(struct net_device *dev, u32 features) { const struct port_info *pi = netdev_priv(dev); u32 changed = dev->features ^ features; int err; unsigned long old_feat = dev->features; err = ethtool_op_set_flags(dev, flags, ETH_FLAG_RXHASH | ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN); if (err) return err; if ((old_feat ^ dev->features) & NETIF_F_HW_VLAN_RX) { const struct port_info *pi = netdev_priv(dev); if (!(changed & NETIF_F_HW_VLAN_RX)) return 0; err = t4_set_rxmode(pi->adapter, pi->adapter->fn, pi->viid, -1, -1, -1, -1, !!(flags & ETH_FLAG_RXVLAN), true); if (err) dev->features = old_feat; } -1, -1, -1, !!(features & NETIF_F_HW_VLAN_RX), true); if (unlikely(err)) dev->features = features ^ NETIF_F_HW_VLAN_RX; return err; } Loading Loading @@ -2010,10 +1976,6 @@ static struct ethtool_ops cxgb_ethtool_ops = { .set_eeprom = set_eeprom, .get_pauseparam = get_pauseparam, .set_pauseparam = set_pauseparam, .get_rx_csum = get_rx_csum, .set_rx_csum = set_rx_csum, .set_tx_csum = ethtool_op_set_tx_ipv6_csum, .set_sg = ethtool_op_set_sg, .get_link = ethtool_op_get_link, .get_strings = get_strings, .set_phys_id = identify_port, Loading @@ -2024,8 +1986,6 @@ static struct ethtool_ops cxgb_ethtool_ops = { .get_regs = get_regs, .get_wol = get_wol, .set_wol = set_wol, .set_tso = set_tso, .set_flags = set_flags, .get_rxnfc = get_rxnfc, .get_rxfh_indir = get_rss_table, .set_rxfh_indir = set_rss_table, Loading Loading @@ -2882,6 +2842,7 @@ static const struct net_device_ops cxgb4_netdev_ops = { .ndo_get_stats64 = cxgb_get_stats, .ndo_set_rx_mode = cxgb_set_rxmode, .ndo_set_mac_address = cxgb_set_mac_addr, .ndo_set_features = cxgb_set_features, .ndo_validate_addr = eth_validate_addr, .ndo_do_ioctl = cxgb_ioctl, .ndo_change_mtu = cxgb_change_mtu, Loading Loading @@ -3564,6 +3525,7 @@ static void free_some_resources(struct adapter *adapter) t4_fw_bye(adapter, adapter->fn); } #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN) #define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \ NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA) Loading Loading @@ -3665,14 +3627,14 @@ static int __devinit init_one(struct pci_dev *pdev, pi = netdev_priv(netdev); pi->adapter = adapter; pi->xact_addr_filt = -1; pi->rx_offload = RX_CSO; pi->port_id = i; netdev->irq = pdev->irq; netdev->features |= NETIF_F_SG | TSO_FLAGS; netdev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; netdev->features |= NETIF_F_GRO | NETIF_F_RXHASH | highdma; netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; netdev->hw_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | NETIF_F_RXHASH | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; netdev->features |= netdev->hw_features | highdma; netdev->vlan_features = netdev->features & VLAN_FEAT; netdev->netdev_ops = &cxgb4_netdev_ops; Loading
drivers/net/cxgb4/sge.c +1 −3 Original line number Diff line number Diff line Loading @@ -1556,7 +1556,6 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp, { bool csum_ok; struct sk_buff *skb; struct port_info *pi; const struct cpl_rx_pkt *pkt; struct sge_eth_rxq *rxq = container_of(q, struct sge_eth_rxq, rspq); Loading Loading @@ -1584,10 +1583,9 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp, if (skb->dev->features & NETIF_F_RXHASH) skb->rxhash = (__force u32)pkt->rsshdr.hash_val; pi = netdev_priv(skb->dev); rxq->stats.pkts++; if (csum_ok && (pi->rx_offload & RX_CSO) && if (csum_ok && (q->netdev->features & NETIF_F_RXCSUM) && (pkt->l2info & htonl(RXF_UDP | RXF_TCP))) { if (!pkt->ip_frag) { skb->ip_summed = CHECKSUM_UNNECESSARY; Loading
drivers/net/cxgb4vf/adapter.h +0 −6 Original line number Diff line number Diff line Loading @@ -97,17 +97,11 @@ struct port_info { u16 rss_size; /* size of VI's RSS table slice */ u8 pidx; /* index into adapter port[] */ u8 port_id; /* physical port ID */ u8 rx_offload; /* CSO, etc. */ u8 nqsets; /* # of "Queue Sets" */ u8 first_qset; /* index of first "Queue Set" */ struct link_config link_cfg; /* physical port configuration */ }; /* port_info.rx_offload flags */ enum { RX_CSO = 1 << 0, }; /* * Scatter Gather Engine resources for the "adapter". Our ingress and egress * queues are organized into "Queue Sets" with one ingress and one egress Loading
drivers/net/cxgb4vf/cxgb4vf_main.c +8 −49 Original line number Diff line number Diff line Loading @@ -1325,30 +1325,6 @@ static void cxgb4vf_get_pauseparam(struct net_device *dev, pauseparam->tx_pause = (pi->link_cfg.fc & PAUSE_TX) != 0; } /* * Return whether RX Checksum Offloading is currently enabled for the device. */ static u32 cxgb4vf_get_rx_csum(struct net_device *dev) { struct port_info *pi = netdev_priv(dev); return (pi->rx_offload & RX_CSO) != 0; } /* * Turn RX Checksum Offloading on or off for the device. */ static int cxgb4vf_set_rx_csum(struct net_device *dev, u32 csum) { struct port_info *pi = netdev_priv(dev); if (csum) pi->rx_offload |= RX_CSO; else pi->rx_offload &= ~RX_CSO; return 0; } /* * Identify the port by blinking the port's LED. */ Loading Loading @@ -1569,18 +1545,6 @@ static void cxgb4vf_get_wol(struct net_device *dev, */ #define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN) /* * Set TCP Segmentation Offloading feature capabilities. */ static int cxgb4vf_set_tso(struct net_device *dev, u32 tso) { if (tso) dev->features |= TSO_FLAGS; else dev->features &= ~TSO_FLAGS; return 0; } static struct ethtool_ops cxgb4vf_ethtool_ops = { .get_settings = cxgb4vf_get_settings, .get_drvinfo = cxgb4vf_get_drvinfo, Loading @@ -1591,10 +1555,6 @@ static struct ethtool_ops cxgb4vf_ethtool_ops = { .get_coalesce = cxgb4vf_get_coalesce, .set_coalesce = cxgb4vf_set_coalesce, .get_pauseparam = cxgb4vf_get_pauseparam, .get_rx_csum = cxgb4vf_get_rx_csum, .set_rx_csum = cxgb4vf_set_rx_csum, .set_tx_csum = ethtool_op_set_tx_ipv6_csum, .set_sg = ethtool_op_set_sg, .get_link = ethtool_op_get_link, .get_strings = cxgb4vf_get_strings, .set_phys_id = cxgb4vf_phys_id, Loading @@ -1603,7 +1563,6 @@ static struct ethtool_ops cxgb4vf_ethtool_ops = { .get_regs_len = cxgb4vf_get_regs_len, .get_regs = cxgb4vf_get_regs, .get_wol = cxgb4vf_get_wol, .set_tso = cxgb4vf_set_tso, }; /* Loading Loading @@ -2638,19 +2597,19 @@ static int __devinit cxgb4vf_pci_probe(struct pci_dev *pdev, * it. */ pi->xact_addr_filt = -1; pi->rx_offload = RX_CSO; netif_carrier_off(netdev); netdev->irq = pdev->irq; netdev->features = (NETIF_F_SG | TSO_FLAGS | netdev->hw_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_HW_VLAN_TX | NETIF_F_RXCSUM; netdev->vlan_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX | NETIF_F_GRO); NETIF_F_HIGHDMA; netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_RX; if (pci_using_dac) netdev->features |= NETIF_F_HIGHDMA; netdev->vlan_features = (netdev->features & ~(NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX)); #ifdef HAVE_NET_DEVICE_OPS netdev->netdev_ops = &cxgb4vf_netdev_ops; Loading