[PATCH 10/12] kexec: arrange for paddr_vmcoreinfo_note() to return phys_addr_t

Pratyush Anand panand at redhat.com
Fri Apr 29 08:47:40 PDT 2016

On Fri, Apr 29, 2016 at 8:46 PM, Mark Rutland <mark.rutland at arm.com> wrote:
> On Fri, Apr 29, 2016 at 08:36:43PM +0530, Pratyush Anand wrote:
>> > +       phys_addr_t vmcore_base = paddr_vmcoreinfo_note();
>> > +       return sprintf(buf, "%pa %x\n", &vmcore_base,
>> Why do we pass &vmcore_base? Shouldn't it be vmcore_base?
> The %pa* printk format specifiers take the value by reference (as
> phys_addr_t and friends are not necessarily the same width as a
> pointer). Per Documentation/printk-formats.txt:
> Physical addresses types phys_addr_t:
>         %pa[p]  0x01234567 or 0x0123456789abcdef
>         For printing a phys_addr_t type (and its derivatives, such as
>         resource_size_t) which can vary based on build options, regardless of
>         the width of the CPU data path. Passed by reference.
> So the above prints the value of vmcore_base as expected.

Thanks a lot Mark for explaining :-)

Reviewed-by: Pratyush Anand <panand at redhat.com>

More information about the kexec mailing list