1. A data processing system, the data processing system comprising: a data decoder circuit operable to: apply a variable node algorithm to a data input to yield a first set of variable node to check node messages, and apply a check node algorithm to the first set of variable node to check node messages to yield a set of check node to variable node messages during a first iteration; calculate a number of errors remaining based upon a preceding set of variable node to check node messages, wherein the preceding set of variable node to check node messages precedes the first set of variable node to check node messages; calculate a number of errors based upon the first set of variable node to check node messages; calculate a difference between the number of errors based upon the first set of variable node to check node messages and the number of errors remaining based upon a preceding set of variable node to check node messages; multiply the set of check node to variable node messages by respective scalar values selected based at least in part on the difference to yield a scaled set of check node to variable node messages; 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.