aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic/qlcnic
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic')
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c15
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c3
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c4
3 files changed, 13 insertions, 9 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 32a95c105e4e..fd0829c2839d 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -1619,6 +1619,12 @@ int qlcnic_83xx_loopback_test(struct net_device *netdev, u8 mode)
1619 } 1619 }
1620 } while ((adapter->ahw->linkup && ahw->has_link_events) != 1); 1620 } while ((adapter->ahw->linkup && ahw->has_link_events) != 1);
1621 1621
1622 /* Make sure carrier is off and queue is stopped during loopback */
1623 if (netif_running(netdev)) {
1624 netif_carrier_off(netdev);
1625 netif_stop_queue(netdev);
1626 }
1627
1622 ret = qlcnic_do_lb_test(adapter, mode); 1628 ret = qlcnic_do_lb_test(adapter, mode);
1623 1629
1624 qlcnic_83xx_clear_lb_mode(adapter, mode); 1630 qlcnic_83xx_clear_lb_mode(adapter, mode);
@@ -2944,6 +2950,7 @@ static u64 *qlcnic_83xx_fill_stats(struct qlcnic_adapter *adapter,
2944void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) 2950void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data)
2945{ 2951{
2946 struct qlcnic_cmd_args cmd; 2952 struct qlcnic_cmd_args cmd;
2953 struct net_device *netdev = adapter->netdev;
2947 int ret = 0; 2954 int ret = 0;
2948 2955
2949 qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_STATISTICS); 2956 qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_STATISTICS);
@@ -2953,7 +2960,7 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data)
2953 data = qlcnic_83xx_fill_stats(adapter, &cmd, data, 2960 data = qlcnic_83xx_fill_stats(adapter, &cmd, data,
2954 QLC_83XX_STAT_TX, &ret); 2961 QLC_83XX_STAT_TX, &ret);
2955 if (ret) { 2962 if (ret) {
2956 dev_info(&adapter->pdev->dev, "Error getting MAC stats\n"); 2963 netdev_err(netdev, "Error getting Tx stats\n");
2957 goto out; 2964 goto out;
2958 } 2965 }
2959 /* Get MAC stats */ 2966 /* Get MAC stats */
@@ -2963,8 +2970,7 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data)
2963 data = qlcnic_83xx_fill_stats(adapter, &cmd, data, 2970 data = qlcnic_83xx_fill_stats(adapter, &cmd, data,
2964 QLC_83XX_STAT_MAC, &ret); 2971 QLC_83XX_STAT_MAC, &ret);
2965 if (ret) { 2972 if (ret) {
2966 dev_info(&adapter->pdev->dev, 2973 netdev_err(netdev, "Error getting MAC stats\n");
2967 "Error getting Rx stats\n");
2968 goto out; 2974 goto out;
2969 } 2975 }
2970 /* Get Rx stats */ 2976 /* Get Rx stats */
@@ -2974,8 +2980,7 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data)
2974 data = qlcnic_83xx_fill_stats(adapter, &cmd, data, 2980 data = qlcnic_83xx_fill_stats(adapter, &cmd, data,
2975 QLC_83XX_STAT_RX, &ret); 2981 QLC_83XX_STAT_RX, &ret);
2976 if (ret) 2982 if (ret)
2977 dev_info(&adapter->pdev->dev, 2983 netdev_err(netdev, "Error getting Rx stats\n");
2978 "Error getting Tx stats\n");
2979out: 2984out:
2980 qlcnic_free_mbx_args(&cmd); 2985 qlcnic_free_mbx_args(&cmd);
2981} 2986}
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
index 356859b9f21c..d3f8797efcc3 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
@@ -362,8 +362,7 @@ set_flags:
362 memcpy(&first_desc->eth_addr, skb->data, ETH_ALEN); 362 memcpy(&first_desc->eth_addr, skb->data, ETH_ALEN);
363 } 363 }
364 opcode = TX_ETHER_PKT; 364 opcode = TX_ETHER_PKT;
365 if ((adapter->netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)) && 365 if (skb_is_gso(skb)) {
366 skb_shinfo(skb)->gso_size > 0) {
367 hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); 366 hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb);
368 first_desc->mss = cpu_to_le16(skb_shinfo(skb)->gso_size); 367 first_desc->mss = cpu_to_le16(skb_shinfo(skb)->gso_size);
369 first_desc->total_hdr_length = hdr_len; 368 first_desc->total_hdr_length = hdr_len;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
index c77675da671f..4e22e794a186 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
@@ -198,10 +198,10 @@ beacon_err:
198 } 198 }
199 199
200 err = qlcnic_config_led(adapter, b_state, b_rate); 200 err = qlcnic_config_led(adapter, b_state, b_rate);
201 if (!err) 201 if (!err) {
202 err = len; 202 err = len;
203 else
204 ahw->beacon_state = b_state; 203 ahw->beacon_state = b_state;
204 }
205 205
206 if (test_and_clear_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state)) 206 if (test_and_clear_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state))
207 qlcnic_diag_free_res(adapter->netdev, max_sds_rings); 207 qlcnic_diag_free_res(adapter->netdev, max_sds_rings);