diff options
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 15 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c | 4 |
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, | |||
2944 | void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) | 2950 | void 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"); | ||
2979 | out: | 2984 | out: |
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); |