The client interface is meant for X722 iWARP support. Modprobing i40iw
on systems with X710/XL710 NICs currently may crash the system. Adding a
check which limits client interface access to the appropriate hardware.

Signed-off-by: Stefan Assmann <sassm...@kpanic.de>
---
 drivers/net/ethernet/intel/i40e/i40e_client.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c 
b/drivers/net/ethernet/intel/i40e/i40e_client.c
index 191028b..6f873449 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_client.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_client.c
@@ -525,15 +525,17 @@ static void i40e_client_release(struct i40e_client 
*client)
 static void i40e_client_prepare(struct i40e_client *client)
 {
        struct i40e_device *ldev;
-       struct i40e_pf *pf;
 
        mutex_lock(&i40e_device_mutex);
        list_for_each_entry(ldev, &i40e_devices, list) {
-               pf = ldev->pf;
-               i40e_client_add_instance(pf);
-               /* Start the client subtask */
-               pf->flags |= I40E_FLAG_SERVICE_CLIENT_REQUESTED;
-               i40e_service_event_schedule(pf);
+               struct i40e_pf *pf = ldev->pf;
+
+               if (pf->hw.mac.type == I40E_MAC_X722) {
+                       i40e_client_add_instance(pf);
+                       /* Start the client subtask */
+                       pf->flags |= I40E_FLAG_SERVICE_CLIENT_REQUESTED;
+                       i40e_service_event_schedule(pf);
+               }
        }
        mutex_unlock(&i40e_device_mutex);
 }
-- 
2.9.3

Reply via email to