mfd: qnap-mcu: improve structure in qnap_mcu_exec
From: Heiko Stuebner <heiko@...> Date: Sat, 26 Jul 2025 23:43:39 +0200
Commit-Message
Now with guard(mutex) in place, we can make the function's structure a bit easier to read, by removing the nested if-else-clauses. Signed-off-by: Heiko Stuebner <heiko@...>
Patch-Comment
drivers/mfd/qnap-mcu.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
Statistics
- 9 lines added
- 10 lines removed
Changes
---------------------------- drivers/mfd/qnap-mcu.c ----------------------------
index 7bc44c64b7fd..2be429a50611 100644
@@ -150,6 +150,7 @@ int qnap_mcu_exec(struct qnap_mcu *mcu,
size_t length = reply_data_size + QNAP_MCU_CHECKSUM_SIZE;
struct qnap_mcu_reply *reply = &mcu->reply;
int ret = 0;
+ u8 crc;
if (length > sizeof(rx)) {
dev_err(&mcu->serdev->dev, "expected data too big for receive buffer");
@@ -172,18 +173,16 @@ int qnap_mcu_exec(struct qnap_mcu *mcu,
if (!wait_for_completion_timeout(&reply->done, msecs_to_jiffies(QNAP_MCU_TIMEOUT_MS))) {
dev_err(&mcu->serdev->dev, "Command timeout\n");
return -ETIMEDOUT;
}
+ crc = qnap_mcu_csum(rx, reply_data_size);
+ if (crc != rx[reply_data_size]) {
+ dev_err(&mcu->serdev->dev, "Invalid Checksum received\n");
+ return -EIO;
+ }
+
+ memcpy(reply_data, rx, reply_data_size);
+
return 0;
}
EXPORT_SYMBOL_GPL(qnap_mcu_exec);