Commit 5c5d8eb8 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by Greg Kroah-Hartman
Browse files

usb: misc: ljca: move usb_autopm_put_interface() after wait for response



Do not mark interface as ready to suspend when we are still waiting
for response messages from the device.

Fixes: acd6199f ("usb: Add support for Intel LJCA device")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Tested-by: Hans de Goede <hdegoede@redhat.com> # ThinkPad X1 Yoga Gen 8, ov2740
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Link: https://lore.kernel.org/r/20241112075514.680712-1-stanislaw.gruszka@linux.intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1d062ff3
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -332,14 +332,11 @@ static int ljca_send(struct ljca_adapter *adap, u8 type, u8 cmd,

	ret = usb_bulk_msg(adap->usb_dev, adap->tx_pipe, header,
			   msg_len, &transferred, LJCA_WRITE_TIMEOUT_MS);

	usb_autopm_put_interface(adap->intf);

	if (ret < 0)
		goto out;
		goto out_put;
	if (transferred != msg_len) {
		ret = -EIO;
		goto out;
		goto out_put;
	}

	if (ack) {
@@ -347,11 +344,14 @@ static int ljca_send(struct ljca_adapter *adap, u8 type, u8 cmd,
						  timeout);
		if (!ret) {
			ret = -ETIMEDOUT;
			goto out;
			goto out_put;
		}
	}
	ret = adap->actual_length;

out_put:
	usb_autopm_put_interface(adap->intf);

out:
	spin_lock_irqsave(&adap->lock, flags);
	adap->ex_buf = NULL;