From: Andrew Cooper Date: Tue, 12 Nov 2013 16:20:34 +0000 (+0100) Subject: common/vsprintf: fix signed->unsigned error, causing glacial performance X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5981 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ddd48f0ea099621ef1e891f634b938dda76a5bba;p=xen.git common/vsprintf: fix signed->unsigned error, causing glacial performance The original patch for c/s 67a3542c5bc356e6452d8305991617c875f87de4 "common/vsprintf: Refactor string() out of vsnprintf()" specifically used signed integers, identical to the code copied out of vsprintf. When committed, these had changed to unsigned integers, which causes a functional change. This causes glacial boot performance and an excessive quantity of spaces printed to the serial console, as we loop to the upper bound of a 32bit integer. Signed-off-by: Andrew Cooper --- diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c index e8f45ebf6f..43dc392916 100644 --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -239,7 +239,7 @@ static char *number( static char *string(char *str, char *end, const char *s, int field_width, int precision, int flags) { - unsigned int i, len = strnlen(s, precision); + int i, len = strnlen(s, precision); if (!(flags & LEFT)) { while (len < field_width--) {