Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crc-itu-t: fix typo in CRC ITU-T polynomial comment

The code comment says that the polynomial is x^16 + x^12 + x^15 + 1, but
the correct polynomial is x^16 + x^12 + x^5 + 1. Quoting from page 2 in
the ITU-T V.41 specification [1]:

2 Encoding and checking process

The service bits and information bits, taken in conjunction,
correspond to the coefficients of a message polynomial having terms
from x^(n-1) (n = total number of bits in a block or sequence) down to
x^16. This polynomial is divided, modulo 2, by the generating
polynomial x^16 + x^12 + x^5 + 1.

The hex (truncated) polynomial 0x1021 and CRC code implementation are
correct, however.

[1] https://www.itu.int/rec/T-REC-V.41-198811-I/en

Signed-off-by: Roger Knecht <roger@norberthealth.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

authored by

Roger Knecht and committed by
Jason A. Donenfeld
77991645 e71e60cd

+2 -2
+1 -1
include/linux/crc-itu-t.h
··· 4 4 * 5 5 * Implements the standard CRC ITU-T V.41: 6 6 * Width 16 7 - * Poly 0x1021 (x^16 + x^12 + x^15 + 1) 7 + * Poly 0x1021 (x^16 + x^12 + x^5 + 1) 8 8 * Init 0 9 9 */ 10 10
+1 -1
lib/crc-itu-t.c
··· 7 7 #include <linux/module.h> 8 8 #include <linux/crc-itu-t.h> 9 9 10 - /** CRC table for the CRC ITU-T V.41 0x1021 (x^16 + x^12 + x^15 + 1) */ 10 + /* CRC table for the CRC ITU-T V.41 0x1021 (x^16 + x^12 + x^5 + 1) */ 11 11 const u16 crc_itu_t_table[256] = { 12 12 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 13 13 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,