diff options
Diffstat (limited to 'arch/powerpc/boot/stdio.c')
| -rw-r--r-- | arch/powerpc/boot/stdio.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/powerpc/boot/stdio.c b/arch/powerpc/boot/stdio.c index 0a9feeb9834..5b57800bbc6 100644 --- a/arch/powerpc/boot/stdio.c +++ b/arch/powerpc/boot/stdio.c @@ -190,7 +190,11 @@ int vsprintf(char *buf, const char *fmt, va_list args)  		/* get the conversion qualifier */  		qualifier = -1; -		if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt =='Z') { +		if (*fmt == 'l' && *(fmt + 1) == 'l') { +			qualifier = 'q'; +			fmt += 2; +		} else if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' +			|| *fmt == 'Z') {  			qualifier = *fmt;  			++fmt;  		} @@ -281,6 +285,10 @@ int vsprintf(char *buf, const char *fmt, va_list args)  			num = va_arg(args, unsigned long);  			if (flags & SIGN)  				num = (signed long) num; +		} else if (qualifier == 'q') { +			num = va_arg(args, unsigned long long); +			if (flags & SIGN) +				num = (signed long long) num;  		} else if (qualifier == 'Z') {  			num = va_arg(args, size_t);  		} else if (qualifier == 'h') {  |