From 7dc758bbc3b0fc095fbac01b33336435c2489332 Mon Sep 17 00:00:00 2001 From: Lukasz Mastalerz Date: Wed, 7 Jun 2023 15:53:10 +0200 Subject: [PATCH] [CP-1968] Disconnecting the device during file upload causes problems with the USB Fixed the problem with an endless loop while sending data when USB is already disconnected. --- harmony_changelog.md | 1 + module-services/service-desktop/WorkerDesktop.cpp | 7 +++++-- pure_changelog.md | 1 + third-party/usb_stack | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/harmony_changelog.md b/harmony_changelog.md index 7a3928ebdf1433badab1ae14a43fc6bdc1fa1bfc..caefae16d32a7b68d7c2ec6ab5c4b6b51e10158f 100644 --- a/harmony_changelog.md +++ b/harmony_changelog.md @@ -19,6 +19,7 @@ * Fixed USB charging port detection. * Fixed problem with deleting files during Relaxation session. * Fixed occasional crash on system startup. +* Fixed occasional USB crash when USB cable was disconnected during files upload ### Added diff --git a/module-services/service-desktop/WorkerDesktop.cpp b/module-services/service-desktop/WorkerDesktop.cpp index dfeefd46b42477e74b84504e79b77e6d19258d7c..013f62459d7b5afdfe1fa29ef7eaac85d60fed63 100644 --- a/module-services/service-desktop/WorkerDesktop.cpp +++ b/module-services/service-desktop/WorkerDesktop.cpp @@ -124,7 +124,6 @@ bool WorkerDesktop::handleMessage(std::uint32_t queueID) bool result = false; auto &queue = queues[queueID]; const auto &qname = queue->GetQueueName(); - if (qname == sdesktop::RECEIVE_QUEUE_BUFFER_NAME) { result = handleReceiveQueueMessage(queue); } @@ -179,7 +178,11 @@ bool WorkerDesktop::handleSendQueueMessage(std::shared_ptr &qu return false; } - bsp::usbCDCSend(sendMsg); + const std::uint32_t dataSent = bsp::usbCDCSend(sendMsg); + if (dataSent != sendMsg->length()) { + LOG_ERROR("Data not sent! Data sent: %" PRIu32 "B, Msg length: %zuB", dataSent, sendMsg->length()); + } + delete sendMsg; return true; } diff --git a/pure_changelog.md b/pure_changelog.md index fd2bf8b00d75deab251ab184b2ac829fc0d45631..277f7192f02c877f3c62953893d5bb5c95e1b3e9 100644 --- a/pure_changelog.md +++ b/pure_changelog.md @@ -47,6 +47,7 @@ * Fixed a ghost call after quick click back key to end a call after start a call * Fixed autofill data during adding previously deleted phone number from dialing window * Fixed redirection to dial number view by pressing BACK from add new number view +* Fixed occasional USB crash when USB cable was disconnected during files upload ## [1.7.0 2023-03-23] ### Changed / Improved diff --git a/third-party/usb_stack b/third-party/usb_stack index 66264940da90314542d3e4087e88d1f57992628f..6dbe44c472ebbfe1890018aa7ff538cdaa5ffa7e 160000 --- a/third-party/usb_stack +++ b/third-party/usb_stack @@ -1 +1 @@ -Subproject commit 66264940da90314542d3e4087e88d1f57992628f +Subproject commit 6dbe44c472ebbfe1890018aa7ff538cdaa5ffa7e