On 05/28/16 at 02:53pm, Russell King - ARM Linux wrote: > On Sat, May 28, 2016 at 07:33:54PM +0800, Baoquan He wrote: > > On 05/03/16 at 11:21am, Russell King wrote: > > > diff --git a/kexec/kexec-uImage.c b/kexec/kexec-uImage.c > > > index 9df601b..5e24629 100644 > > > --- a/kexec/kexec-uImage.c > > > +++ b/kexec/kexec-uImage.c > > > @@ -82,7 +82,8 @@ int uImage_probe(const unsigned char *buf, off_t len, unsigned int arch) > > > if (be32_to_cpu(header.ih_size) > len - sizeof(header)) { > > > printf("uImage header claims that image has %d bytes\n", > > > be32_to_cpu(header.ih_size)); > > > - printf("we read only %ld bytes.\n", len - sizeof(header)); > > > + printf("we read only %lld bytes.\n", > > > + (long long)len - sizeof(header)); > > > > With "D_FILE_OFFSET_BITS=64" adding, off_t is identical to off64_t, is > > that necessary to still take a type conversion here? > > The printf format specifies an argument of "long long" type, which is > defined as a data type of at least 64-bits wide. So, it's more > correct to cast to long long, rather than relying on off64_t being > the same size as long long. Ok, it's fine to have an explict cast here so that people don't need to consider off_t is long or long long. Ack this patch. Acked-by: Baoquan He <bhe at redhat.com> Thanks Baoquan