On Fri, Apr 29, 2016 at 08:36:43PM +0530, Pratyush Anand wrote: > On Thu, Apr 28, 2016 at 2:58 PM, Russell King > <rmk+kernel@xxxxxxxxxxxxxxxx> wrote: > > diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c > > index 152da4a48867..9f1920d2d0c6 100644 > > --- a/kernel/ksysfs.c > > +++ b/kernel/ksysfs.c > > @@ -128,8 +128,8 @@ KERNEL_ATTR_RW(kexec_crash_size); > > static ssize_t vmcoreinfo_show(struct kobject *kobj, > > struct kobj_attribute *attr, char *buf) > > { > > - return sprintf(buf, "%lx %x\n", > > - paddr_vmcoreinfo_note(), > > + 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? You seem to not know what the "%pa" format string means. %p always takes a _pointer_ as per C standard, so the printf argument must be a pointer. However, the kernel format strings are extended with additional suffixes - in this case 'a', which means that we want to print the contents of a _pointer_ to a phys_addr_t. Full details in Documentation/printk-formats.txt in the kernel. The code above is correct. -- RMK's Patch system: http://www.arm.linux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |