diff options
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c index 5bacf5210aed..1b7f3dbae289 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | |||
@@ -726,6 +726,11 @@ static int qlcnic_set_channels(struct net_device *dev, | |||
726 | struct qlcnic_adapter *adapter = netdev_priv(dev); | 726 | struct qlcnic_adapter *adapter = netdev_priv(dev); |
727 | int err; | 727 | int err; |
728 | 728 | ||
729 | if (!(adapter->flags & QLCNIC_MSIX_ENABLED)) { | ||
730 | netdev_err(dev, "No RSS/TSS support in non MSI-X mode\n"); | ||
731 | return -EINVAL; | ||
732 | } | ||
733 | |||
729 | if (channel->other_count || channel->combined_count) | 734 | if (channel->other_count || channel->combined_count) |
730 | return -EINVAL; | 735 | return -EINVAL; |
731 | 736 | ||
@@ -734,7 +739,7 @@ static int qlcnic_set_channels(struct net_device *dev, | |||
734 | if (err) | 739 | if (err) |
735 | return err; | 740 | return err; |
736 | 741 | ||
737 | if (channel->rx_count) { | 742 | if (adapter->drv_sds_rings != channel->rx_count) { |
738 | err = qlcnic_validate_rings(adapter, channel->rx_count, | 743 | err = qlcnic_validate_rings(adapter, channel->rx_count, |
739 | QLCNIC_RX_QUEUE); | 744 | QLCNIC_RX_QUEUE); |
740 | if (err) { | 745 | if (err) { |
@@ -745,7 +750,7 @@ static int qlcnic_set_channels(struct net_device *dev, | |||
745 | adapter->drv_rss_rings = channel->rx_count; | 750 | adapter->drv_rss_rings = channel->rx_count; |
746 | } | 751 | } |
747 | 752 | ||
748 | if (channel->tx_count) { | 753 | if (adapter->drv_tx_rings != channel->tx_count) { |
749 | err = qlcnic_validate_rings(adapter, channel->tx_count, | 754 | err = qlcnic_validate_rings(adapter, channel->tx_count, |
750 | QLCNIC_TX_QUEUE); | 755 | QLCNIC_TX_QUEUE); |
751 | if (err) { | 756 | if (err) { |