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

Commit dd107afc authored by Mohit Aggarwal's avatar Mohit Aggarwal
Browse files

diag: Do not clear masks during logging mode switch



Currently, masks will be cleared during logging mode
switch if physical USB disconnection will happen in
concurrency. There is no need to clear the masks in
logging switch case. The patch ensures that masks
will be cleared only in valid cases.

Change-Id: I68f5335c4fa8fe06ba1f686f29336a8150991368
Signed-off-by: default avatarMohit Aggarwal <maggarwa@codeaurora.org>
parent b91c5bdc
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -228,13 +228,6 @@ static void usb_connect_work_fn(struct work_struct *work)
 */
static void usb_disconnect(struct diag_usb_info *ch)
{
	if (!ch)
		return;

	if (!atomic_read(&ch->connected) &&
		driver->usb_connected && diag_mask_param())
		diag_clear_masks(0);

	if (ch && ch->ops && ch->ops->close)
		ch->ops->close(ch->ctxt, DIAG_USB_MODE);
}
@@ -244,6 +237,9 @@ static void usb_disconnect_work_fn(struct work_struct *work)
	struct diag_usb_info *ch = container_of(work, struct diag_usb_info,
						disconnect_work);

	if (!ch)
		return;

	atomic_set(&ch->disconnected, 1);
	DIAG_LOG(DIAG_DEBUG_PERIPHERALS,
	"diag: USB channel %s: disconnected_status: %d, connected_status: %d\n",
@@ -256,6 +252,10 @@ static void usb_disconnect_work_fn(struct work_struct *work)
	"diag: USB channel %s: Cleared disconnected(%d) and connected(%d) status\n",
	ch->name, atomic_read(&ch->disconnected), atomic_read(&ch->connected));

	if (!atomic_read(&ch->connected) &&
		driver->usb_connected && diag_mask_param())
		diag_clear_masks(0);

	usb_disconnect(ch);
}