Skip to content

Commit b488107

Browse files
mmindlag-linaro
authored andcommitted
mfd: qnap-mcu: Calculate the checksum on the actual number of bytes received
In the case of an error message, the number of received bytes can be less than originally expected but still contain a valid message. If the transfer itself ended in an error we would exit earlier already. So calculate the checksum on the number of received bytes and not the number of expected bytes. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patch.msgid.link/20251113165218.449616-2-heiko@sntech.de Signed-off-by: Lee Jones <lee@kernel.org>
1 parent 46bddb5 commit b488107

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

drivers/mfd/qnap-mcu.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ int qnap_mcu_exec(struct qnap_mcu *mcu,
175175
return -ETIMEDOUT;
176176
}
177177

178-
crc = qnap_mcu_csum(rx, reply_data_size);
179-
if (crc != rx[reply_data_size]) {
178+
crc = qnap_mcu_csum(rx, reply->received - QNAP_MCU_CHECKSUM_SIZE);
179+
if (crc != rx[reply->received - QNAP_MCU_CHECKSUM_SIZE]) {
180180
dev_err(&mcu->serdev->dev, "Invalid Checksum received\n");
181181
return -EIO;
182182
}

0 commit comments

Comments
 (0)