diff mbox series

[net,v2] i40e: Fix interface init with MSI interrupts (no MSI-X)

Message ID 20220520180703.680212-1-michal.maloszewski@intel.com
State Accepted
Delegated to: Anthony Nguyen
Headers show
Series [net,v2] i40e: Fix interface init with MSI interrupts (no MSI-X) | expand

Commit Message

Michal Maloszewski May 20, 2022, 6:07 p.m. UTC
Fix the inability to bring an interface up on a setup with
only MSI interrupts enabled (no MSI-X).
Solution is to add a default number of QPs = 1. This is enough,
since without MSI-X support driver enables only a basic feature set.

Fixes: bc6d33c8d93f ("i40e: Fix the number of queues available to be mapped for use")
Signed-off-by: Dawid Lukwinski <dawid.lukwinski@intel.com>
Signed-off-by: Michal Maloszewski <michal.maloszewski@intel.com>
---
v2: Moving the comment in right place 
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Switzer, David July 20, 2022, 6:15 p.m. UTC | #1
>-----Original Message-----
>From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
>Michal Maloszewski
>Sent: Friday, May 20, 2022 11:07 AM
>To: intel-wired-lan@lists.osuosl.org
>Cc: Maloszewski, Michal <michal.maloszewski@intel.com>; Lukwinski, Dawid
><dawid.lukwinski@intel.com>
>Subject: [Intel-wired-lan] [PATCH net v2] i40e: Fix interface init with MSI
>interrupts (no MSI-X)
>
>Fix the inability to bring an interface up on a setup with only MSI interrupts
>enabled (no MSI-X).
>Solution is to add a default number of QPs = 1. This is enough, since without
>MSI-X support driver enables only a basic feature set.
>
>Fixes: bc6d33c8d93f ("i40e: Fix the number of queues available to be mapped
>for use")
>Signed-off-by: Dawid Lukwinski <dawid.lukwinski@intel.com>
>Signed-off-by: Michal Maloszewski <michal.maloszewski@intel.com>
>---
>v2: Moving the comment in right place
>---
> drivers/net/ethernet/intel/i40e/i40e_main.c | 4 ++++
> 1 file changed, 4 insertions(+)
Tested-by: Dave Switzer <david.switzer@intel.com>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 8572993972ef..6c41ee966570 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -1835,11 +1835,15 @@  static void i40e_vsi_setup_queue_map(struct i40e_vsi *vsi,
 		 * non-zero req_queue_pairs says that user requested a new
 		 * queue count via ethtool's set_channels, so use this
 		 * value for queues distribution across traffic classes
+		 * We need at least one queue pair for the interface
+		 * to be usable as we see in else statement.
 		 */
 		if (vsi->req_queue_pairs > 0)
 			vsi->num_queue_pairs = vsi->req_queue_pairs;
 		else if (pf->flags & I40E_FLAG_MSIX_ENABLED)
 			vsi->num_queue_pairs = pf->num_lan_msix;
+		else
+			vsi->num_queue_pairs = 1;
 	}
 
 	/* Number of queues per enabled TC */