From 7be6ba578d92f4b9251293aee99b74adfbdef069 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Fri, 25 Nov 2011 02:58:41 +0100 Subject: [PATCH] Update response checksum calculation for kernel code too. Signed-off-by: Pavel Pisa --- sllin/sllin.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sllin/sllin.c b/sllin/sllin.c index 497e3e2..011743e 100644 --- a/sllin/sllin.c +++ b/sllin/sllin.c @@ -479,10 +479,22 @@ int sllin_setup_msg(struct sllin *sl, int mode, int id, sl->tx_lim = SLLIN_BUFF_DATA; if ((data != NULL) && len) { + int i; + unsigned csum = 0; + sl->tx_lim += len; memcpy(sl->tx_buff + SLLIN_BUFF_DATA, data, len); + /* compute data parity there */ + for (i = SLLIN_BUFF_DATA; i < sl->tx_lim; i++) { + csum += sl->tx_buff[i]; + if (csum > 255) + csum -= 255; + } + + sl->tx_buff[sl->tx_lim++] = csum; } - sl->rx_lim += len; + if (len != 0) + sl->rx_lim += len + 1; return 0; } -- 2.39.2