The algorithm was sub-optimal so replace it with something more elegant.
(From OE-Core rev: 6119a90173f9222efa6df25aacf873af85d64bcd)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>