]> Pileus Git - ~andy/linux/blobdiff - drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[~andy/linux] / drivers / net / ethernet / qlogic / qlcnic / qlcnic_sriov_pf.c
index 98b621fb12274d3209957527beffd16a951984fc..d14d9a139eef1e72fbd5742a813ea414a66f7cf8 100644 (file)
@@ -81,9 +81,12 @@ static int qlcnic_sriov_pf_cal_res_limit(struct qlcnic_adapter *adapter,
        if (qlcnic_83xx_pf_check(adapter))
                num_macs = 1;
 
+       info->max_rx_mcast_mac_filters = res->num_rx_mcast_mac_filters;
+
        if (adapter->ahw->pci_func == func) {
                info->min_tx_bw = 0;
                info->max_tx_bw = MAX_BW;
+
                temp = res->num_rx_ucast_mac_filters - num_macs * num_vfs;
                info->max_rx_ucast_mac_filters = temp;
                temp = res->num_tx_mac_filters - num_macs * num_vfs;
@@ -92,6 +95,7 @@ static int qlcnic_sriov_pf_cal_res_limit(struct qlcnic_adapter *adapter,
                temp = res->num_rx_mcast_mac_filters - temp;
                info->max_rx_mcast_mac_filters = temp;
 
+               info->max_tx_ques = res->num_tx_queues - sriov->num_vfs;
        } else {
                id = qlcnic_sriov_func_to_index(adapter, func);
                if (id < 0)
@@ -99,10 +103,13 @@ static int qlcnic_sriov_pf_cal_res_limit(struct qlcnic_adapter *adapter,
                vp = sriov->vf_info[id].vp;
                info->min_tx_bw = vp->min_tx_bw;
                info->max_tx_bw = vp->max_tx_bw;
+
                info->max_rx_ucast_mac_filters = num_macs;
                info->max_tx_mac_filters = num_macs;
                temp = num_macs * QLCNIC_SRIOV_VF_MAX_MAC;
                info->max_rx_mcast_mac_filters = temp;
+
+               info->max_tx_ques = QLCNIC_SINGLE_RING;
        }
 
        info->max_rx_ip_addr = res->num_destip / max;