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

Commit 7a58c760 authored by Hemant Kumar's avatar Hemant Kumar Committed by Mayank Rana
Browse files

usb: gadget: Invalidate interface id upon adding function to config



Commit f487482fb604 ("usb: gadget: f_mbim: Queue notification request
upon function resume") added variable to store interface id in
usb_interface_id(). This interface id is used to send function wake
device notification. Functions having control interface and data
interface calls usb_interface_id() twice causing invalid interface
index stored in the variable. This is causing remote wakeup failure.
Fix this issue by initializing variable to -EINVAL and set it to
interface index only when it is invalidated.

CRs-Fixed: 810737
Change-Id: I41bce0a71ce0b8e92f3736d4e292132ce16de021
Signed-off-by: default avatarHemant Kumar <hemantk@codeaurora.org>
parent 73beaeae
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -261,6 +261,7 @@ int usb_add_function(struct usb_configuration *config,
		goto done;

	function->config = config;
	function->intf_id = -EINVAL;
	list_add_tail(&function->list, &config->functions);

	if (function->bind_deactivated) {
@@ -411,6 +412,7 @@ int usb_interface_id(struct usb_configuration *config,

	if (id < MAX_CONFIG_INTERFACES) {
		config->interface[id] = function;
		if (function->intf_id < 0)
			function->intf_id = id;
		config->next_interface_id = id + 1;
		return id;