X-Git-Url: http://rtime.felk.cvut.cz/gitweb/linux-lin.git/blobdiff_plain/51781f6a9cf523263c2aaf94835524025f85e96e..258d510bf0d298d32de4565e223c58bdc3b1a5f5:/sllin/sllin.c diff --git a/sllin/sllin.c b/sllin/sllin.c index c922b84..61c8134 100644 --- a/sllin/sllin.c +++ b/sllin/sllin.c @@ -517,6 +517,9 @@ static void sllin_master_receive_buf(struct tty_struct *tty, */ static void sllin_report_error(struct sllin *sl, int err) { + unsigned char *lin_buff; + int lin_id; + switch (err) { case LIN_ERR_CHECKSUM: sl->dev->stats.rx_crc_errors++; @@ -531,7 +534,9 @@ static void sllin_report_error(struct sllin *sl, int err) break; } - sllin_send_canfr(sl, 0 | CAN_EFF_FLAG | + lin_buff = (sl->lin_master) ? sl->tx_buff : sl->rx_buff; + lin_id = lin_buff[SLLIN_BUFF_ID] & LIN_ID_MASK; + sllin_send_canfr(sl, lin_id | CAN_EFF_FLAG | (err & ~LIN_ID_MASK), NULL, 0); }