Nothing useful was done after the finish label when count is negative so
return directly instead of jumping to finish.

Signed-off-by: Ferdinand Blomqvist <[email protected]>
---
 lib/reed_solomon/decode_rs.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/lib/reed_solomon/decode_rs.c b/lib/reed_solomon/decode_rs.c
index 22006eaa41e6..78629bbe6590 100644
--- a/lib/reed_solomon/decode_rs.c
+++ b/lib/reed_solomon/decode_rs.c
@@ -88,8 +88,7 @@
                /* if syndrome is zero, data[] is a codeword and there are no
                 * errors to correct. So return data[] unmodified
                 */
-               count = 0;
-               goto finish;
+               return 0;
        }
 
  decode:
@@ -202,8 +201,7 @@
                 * deg(lambda) unequal to number of roots => uncorrectable
                 * error detected
                 */
-               count = -EBADMSG;
-               goto finish;
+               return -EBADMSG;
        }
        /*
         * Compute err+eras evaluator poly omega(x) = s(x)*lambda(x) (modulo
@@ -261,7 +259,6 @@
                }
        }
 
-finish:
        if (eras_pos != NULL) {
                for (i = 0; i < count; i++)
                        eras_pos[i] = loc[i] - pad;
-- 
2.17.2

Reply via email to