1. A data processing system comprising: a data decoder circuit operable to: calculate a first number of errors remaining based upon a preceding set of variable node to check node messages, the preceding set of variable node to check node messages precedes a first set of variable node to check node messages; calculate a second number of errors based upon the first set of variable node to check node messages; determine a scaled set of check node to variable node messages based on one or more scalar values, the one or more scalar values being selected based at least in part on a difference between the first and second number of errors; and apply the variable node algorithm to the scaled set of check node to variable node messages to yield a second set of variable node to check node messages.