rslib: Fix handling of of caller provided syndrome

Check if the syndrome provided by the caller is zero, and act
accordingly.

Signed-off-by: Ferdinand Blomqvist <ferdinand.blomqvist@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20190620141039.9874-6-ferdinand.blomqvist@gmail.com
This commit is contained in:
Ferdinand Blomqvist 2019-06-20 17:10:37 +03:00 committed by Thomas Gleixner
parent 647cc9ece6
commit ef4d6a8556
1 changed files with 12 additions and 2 deletions

View File

@ -42,8 +42,18 @@
BUG_ON(pad < 0 || pad >= nn - nroots);
/* Does the caller provide the syndrome ? */
if (s != NULL)
goto decode;
if (s != NULL) {
for (i = 0; i < nroots; i++) {
/* The syndrome is in index form,
* so nn represents zero
*/
if (s[i] != nn)
goto decode;
}
/* syndrome is zero, no errors to correct */
return 0;
}
/* form the syndromes; i.e., evaluate data(x) at roots of
* g(x) */