Since converting 2 ascii hex digits into a byte with error checks is commonly used, we can replace multiple hex_to_bin() calls with a single call to unpack_hex_byte(). Changelog: - Error checking added based on Tetsuo Handa's patch. - Moved the hex2bin code here, making it into a static inline function. (Andy Shevchenko's request.) Signed-off-by: Mimi Zohar <zohar@xxxxxxxxxxxxxxxxxx> --- include/linux/kernel.h | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 46ac9a5..d8ea13b 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -385,6 +385,27 @@ extern int hex_to_bin(char ch); extern void hex2bin(u8 *dst, const char *src, size_t count); /* + * unpack_hex_byte - convert 2 asii hex digits into a byte + * @byte: binary result + * @buf: ascii hexadecimal byte string + */ +static inline bool unpack_hex_byte(u8 *byte, const char *buf) +{ + int hi, lo; + + hi = hex_to_bin(buf[0]); + if (hi < 0) + return false; + + lo = hex_to_bin(buf[1]); + if (lo < 0) + return false; + + *byte = (hi << 4) | lo; + return true; +} + +/* * General tracing related utility functions - trace_printk(), * tracing_on/tracing_off and tracing_start()/tracing_stop * -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html