|
@@ -1571,7 +1571,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
|
|
|
skb->protocol = eth_type_trans(skb, ndev);
|
|
|
skb_checksum_none_assert(skb);
|
|
|
|
|
|
- if (qdev->rx_csum &&
|
|
|
+ if ((ndev->features & NETIF_F_RXCSUM) &&
|
|
|
!(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
|
|
|
/* TCP frame. */
|
|
|
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
|
|
@@ -1684,7 +1684,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
|
|
|
/* If rx checksum is on, and there are no
|
|
|
* csum or frame errors.
|
|
|
*/
|
|
|
- if (qdev->rx_csum &&
|
|
|
+ if ((ndev->features & NETIF_F_RXCSUM) &&
|
|
|
!(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
|
|
|
/* TCP frame. */
|
|
|
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
|
|
@@ -2004,7 +2004,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
|
|
|
/* If rx checksum is on, and there are no
|
|
|
* csum or frame errors.
|
|
|
*/
|
|
|
- if (qdev->rx_csum &&
|
|
|
+ if ((ndev->features & NETIF_F_RXCSUM) &&
|
|
|
!(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
|
|
|
/* TCP frame. */
|
|
|
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_T) {
|
|
@@ -4621,7 +4621,6 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
|
|
|
/*
|
|
|
* Set up the operating parameters.
|
|
|
*/
|
|
|
- qdev->rx_csum = 1;
|
|
|
qdev->workqueue = create_singlethread_workqueue(ndev->name);
|
|
|
INIT_DELAYED_WORK(&qdev->asic_reset_work, ql_asic_reset_work);
|
|
|
INIT_DELAYED_WORK(&qdev->mpi_reset_work, ql_mpi_reset_work);
|
|
@@ -4695,15 +4694,11 @@ static int __devinit qlge_probe(struct pci_dev *pdev,
|
|
|
|
|
|
qdev = netdev_priv(ndev);
|
|
|
SET_NETDEV_DEV(ndev, &pdev->dev);
|
|
|
- ndev->features = (0
|
|
|
- | NETIF_F_IP_CSUM
|
|
|
- | NETIF_F_SG
|
|
|
- | NETIF_F_TSO
|
|
|
- | NETIF_F_TSO6
|
|
|
- | NETIF_F_TSO_ECN
|
|
|
- | NETIF_F_HW_VLAN_TX
|
|
|
- | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER);
|
|
|
- ndev->features |= NETIF_F_GRO;
|
|
|
+ ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
|
|
|
+ NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN |
|
|
|
+ NETIF_F_HW_VLAN_TX | NETIF_F_RXCSUM;
|
|
|
+ ndev->features = ndev->hw_features |
|
|
|
+ NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER;
|
|
|
|
|
|
if (test_bit(QL_DMA64, &qdev->flags))
|
|
|
ndev->features |= NETIF_F_HIGHDMA;
|