qed: Allow more than 16 VFs
authorYuval Mintz <Yuval.Mintz@qlogic.com>
Sun, 15 May 2016 11:48:08 +0000 (14:48 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 May 2016 17:59:19 +0000 (13:59 -0400)
In multi-function modes, PFs are currently limited to using 16 VFs -
But that limitation would also currently apply in case there's a single
PCI function exposed, where no such restriction should have existed.

This lifts the restriction for the default mode; User should be able
to start the maximum number of VFs as appear in the PCI config space.

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_sriov.c

index a977f39f534c35be5a882a6efd5ab4c3ec17eff3..c325ee857ecd7f10e0c63cb031a30fae1eee3d49 100644 (file)
@@ -3099,6 +3099,9 @@ static int qed_sriov_enable(struct qed_dev *cdev, int num)
                        goto err;
                }
 
+               if (IS_MF_DEFAULT(hwfn))
+                       limit = MAX_NUM_VFS_BB / hwfn->num_funcs_on_engine;
+
                memset(&sb_cnt_info, 0, sizeof(sb_cnt_info));
                qed_int_get_num_sbs(hwfn, &sb_cnt_info);
                num_sbs = min_t(int, sb_cnt_info.sb_free_blk, limit);