Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd3be169 authored by Catherine Sullivan's avatar Catherine Sullivan Committed by Jeff Kirsher
Browse files

i40e: Move the mutex lock in i40e_client_unregister



We need to lock the client list around the i40e_client_release call to
prevent the release from interrupting the client instances while they are
being added.

Change-Id: I99993f20179aaf8730207833e7d0869d2ccffa1d
Signed-off-by: default avatarCatherine Sullivan <catherine.sullivan@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 4dec7d04
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -980,13 +980,13 @@ int i40e_unregister_client(struct i40e_client *client)
	 * a close for each of the client instances that were opened.
	 * client_release function is called to handle this.
	 */
	mutex_lock(&i40e_client_mutex);
	if (!client || i40e_client_release(client)) {
		ret = -EIO;
		goto out;
	}

	/* TODO: check if device is in reset, or if that matters? */
	mutex_lock(&i40e_client_mutex);
	if (!i40e_client_is_registered(client)) {
		pr_info("i40e: Client %s has not been registered\n",
			client->name);
@@ -1005,8 +1005,8 @@ int i40e_unregister_client(struct i40e_client *client)
		       client->name);
	}

	mutex_unlock(&i40e_client_mutex);
out:
	mutex_unlock(&i40e_client_mutex);
	return ret;
}
EXPORT_SYMBOL(i40e_unregister_client);