Message ID | 20230906103014.19574-1-michal.orzel@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xen/arm: Fix printk specifiers and arguments in iomem_remove_cb() | expand |
On Wed, Sep 06, 2023 at 12:30:14PM +0200, Michal Orzel wrote: > When building Xen for arm32 with CONFIG_DTB_OVERLAY, the following > error is printed: > > common/dt-overlay.c: In function ‘iomem_remove_cb’: > ././include/xen/config.h:55:24: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘long unsigned int’ [-Werror=format=] > > Function parameters s and e (denoting MMIO region) are of type unsigned > long and indicate frame numbers and not addresses. This also means that > the arguments passed to printk() are incorrect (using PAGE_ALIGN() or > PAGE_MASK ANDed with a frame number results in unwanted output). Fix it. > > Take the opportunity to switch to %pd specifier to print domain id in > a consolidated way. > > Fixes: 7e5c4a8b86f1 ("xen/arm: Implement device tree node removal functionalities") > Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Vikram Garhwal <vikram.garhwal@amd.com> > --- > After this patch (and the one for xl), we are left with one issue breaking CI: > https://gitlab.com/xen-project/patchew/xen/-/jobs/5026938514 > --- > xen/common/dt-overlay.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/xen/common/dt-overlay.c b/xen/common/dt-overlay.c > index b07a6128dc99..5663a049e90a 100644 > --- a/xen/common/dt-overlay.c > +++ b/xen/common/dt-overlay.c > @@ -251,10 +251,8 @@ static int iomem_remove_cb(unsigned long s, unsigned long e, void *dom, > rc = iomem_deny_access(d, s, e); > if ( rc ) > { > - printk(XENLOG_ERR "Unable to remove dom%d access to" > - " 0x%"PRIx64" - 0x%"PRIx64"\n", > - d->domain_id, > - s & PAGE_MASK, PAGE_ALIGN(e) - 1); > + printk(XENLOG_ERR "Unable to remove %pd access to %#lx - %#lx\n", > + d, s, e); > } > else > *c += e - s + 1; > -- > 2.25.1 >
On Wed, 6 Sep 2023, Vikram Garhwal wrote: > On Wed, Sep 06, 2023 at 12:30:14PM +0200, Michal Orzel wrote: > > When building Xen for arm32 with CONFIG_DTB_OVERLAY, the following > > error is printed: > > > > common/dt-overlay.c: In function ‘iomem_remove_cb’: > > ././include/xen/config.h:55:24: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘long unsigned int’ [-Werror=format=] > > > > Function parameters s and e (denoting MMIO region) are of type unsigned > > long and indicate frame numbers and not addresses. This also means that > > the arguments passed to printk() are incorrect (using PAGE_ALIGN() or > > PAGE_MASK ANDed with a frame number results in unwanted output). Fix it. > > > > Take the opportunity to switch to %pd specifier to print domain id in > > a consolidated way. > > > > Fixes: 7e5c4a8b86f1 ("xen/arm: Implement device tree node removal functionalities") > > Signed-off-by: Michal Orzel <michal.orzel@amd.com> > Reviewed-by: Vikram Garhwal <vikram.garhwal@amd.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org> > > --- > > After this patch (and the one for xl), we are left with one issue breaking CI: > > https://gitlab.com/xen-project/patchew/xen/-/jobs/5026938514 > > --- > > xen/common/dt-overlay.c | 6 ++---- > > 1 file changed, 2 insertions(+), 4 deletions(-) > > > > diff --git a/xen/common/dt-overlay.c b/xen/common/dt-overlay.c > > index b07a6128dc99..5663a049e90a 100644 > > --- a/xen/common/dt-overlay.c > > +++ b/xen/common/dt-overlay.c > > @@ -251,10 +251,8 @@ static int iomem_remove_cb(unsigned long s, unsigned long e, void *dom, > > rc = iomem_deny_access(d, s, e); > > if ( rc ) > > { > > - printk(XENLOG_ERR "Unable to remove dom%d access to" > > - " 0x%"PRIx64" - 0x%"PRIx64"\n", > > - d->domain_id, > > - s & PAGE_MASK, PAGE_ALIGN(e) - 1); > > + printk(XENLOG_ERR "Unable to remove %pd access to %#lx - %#lx\n", > > + d, s, e); > > } > > else > > *c += e - s + 1; > > -- > > 2.25.1 > > >
diff --git a/xen/common/dt-overlay.c b/xen/common/dt-overlay.c index b07a6128dc99..5663a049e90a 100644 --- a/xen/common/dt-overlay.c +++ b/xen/common/dt-overlay.c @@ -251,10 +251,8 @@ static int iomem_remove_cb(unsigned long s, unsigned long e, void *dom, rc = iomem_deny_access(d, s, e); if ( rc ) { - printk(XENLOG_ERR "Unable to remove dom%d access to" - " 0x%"PRIx64" - 0x%"PRIx64"\n", - d->domain_id, - s & PAGE_MASK, PAGE_ALIGN(e) - 1); + printk(XENLOG_ERR "Unable to remove %pd access to %#lx - %#lx\n", + d, s, e); } else *c += e - s + 1;
When building Xen for arm32 with CONFIG_DTB_OVERLAY, the following error is printed: common/dt-overlay.c: In function ‘iomem_remove_cb’: ././include/xen/config.h:55:24: error: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘long unsigned int’ [-Werror=format=] Function parameters s and e (denoting MMIO region) are of type unsigned long and indicate frame numbers and not addresses. This also means that the arguments passed to printk() are incorrect (using PAGE_ALIGN() or PAGE_MASK ANDed with a frame number results in unwanted output). Fix it. Take the opportunity to switch to %pd specifier to print domain id in a consolidated way. Fixes: 7e5c4a8b86f1 ("xen/arm: Implement device tree node removal functionalities") Signed-off-by: Michal Orzel <michal.orzel@amd.com> --- After this patch (and the one for xl), we are left with one issue breaking CI: https://gitlab.com/xen-project/patchew/xen/-/jobs/5026938514 --- xen/common/dt-overlay.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)