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 first 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 second number of errors based upon the first set of variable node to check node messages; calculate a difference between the first and second number of errors; multiply the set of check node to variable node messages by one or more scalar values to yield a scaled set of check node to variable node messages, the one or more scalar values being selected based at least in part on the calculated 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.