projects
/
elmcan.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7f51e65
)
Extract RX sanity checker into separate function
author
norly
<ny-git@enpas.org>
Mon, 25 Feb 2019 15:35:52 +0000
(16:35 +0100)
committer
norly
<ny-git@enpas.org>
Mon, 25 Feb 2019 15:35:52 +0000
(16:35 +0100)
module/elmcan.c
patch
|
blob
|
history
diff --git
a/module/elmcan.c
b/module/elmcan.c
index ef6fc6db3106c929b2343196dfe9654d8e8b3c51..239970d04fd32fbc044536cdabc75771cf58126d 100644
(file)
--- a/
module/elmcan.c
+++ b/
module/elmcan.c
@@
-949,6
+949,23
@@
static void put_elm(struct elmcan *elm)
}
}
+static bool elmcan_is_valid_rx_char(char c)
+{
+ return (accept_flaky_uart
+ || isdigit(c)
+ || isupper(c)
+ || ELM327_MAGIC_CHAR == c
+ || ELM327_READY_CHAR == c
+ || '<' == c
+ || 'a' == c
+ || 'b' == c
+ || 'v' == c
+ || '.' == c
+ || '?' == c
+ || '\r' == c
+ || ' ' == c);
+}
+
/* Handle incoming ELM327 ASCII data.
* This will not be re-entered while running, but other ldisc
* functions may be called in parallel.
/* Handle incoming ELM327 ASCII data.
* This will not be re-entered while running, but other ldisc
* functions may be called in parallel.
@@
-985,19
+1002,7
@@
static void elmcan_ldisc_rx(struct tty_struct *tty,
/* Check for stray characters on the UART line.
* Likely caused by bad hardware.
*/
/* Check for stray characters on the UART line.
* Likely caused by bad hardware.
*/
- if (!accept_flaky_uart
- && !isdigit(*cp)
- && !isupper(*cp)
- && ELM327_MAGIC_CHAR != *cp
- && ELM327_READY_CHAR != *cp
- && '<' != *cp
- && 'a' != *cp
- && 'b' != *cp
- && 'v' != *cp
- && '.' != *cp
- && '?' != *cp
- && '\r' != *cp
- && ' ' != *cp) {
+ if (!elmcan_is_valid_rx_char(*cp)) {
netdev_err(elm->dev,
"Received illegal character %02x.\n",
*cp);
netdev_err(elm->dev,
"Received illegal character %02x.\n",
*cp);