Skip to content

Commit

Permalink
xen/gnttab: Use phys_addr_t to describe the grant frame base address
Browse files Browse the repository at this point in the history
On ARM, address size can be 32 bits or 64 bits (if CONFIG_ARCH_PHYS_ADDR_T_64BIT
is enabled).
We can't assume that the grant frame base address will always fits in an
unsigned long. Use phys_addr_t instead of unsigned long as argument for
gnttab_setup_auto_xlat_frames.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
  • Loading branch information
Julien Grall authored and Stefano Stabellini committed Jan 30, 2014
1 parent e17b2f1 commit 47c5420
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
6 changes: 3 additions & 3 deletions arch/arm/xen/enlighten.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ static int __init xen_guest_init(void)
const char *version = NULL;
const char *xen_prefix = "xen,xen-";
struct resource res;
unsigned long grant_frames;
phys_addr_t grant_frames;

node = of_find_compatible_node(NULL, NULL, "xen,xen");
if (!node) {
Expand All @@ -253,8 +253,8 @@ static int __init xen_guest_init(void)
return 0;
grant_frames = res.start;
xen_events_irq = irq_of_parse_and_map(node, 0);
pr_info("Xen %s support found, events_irq=%d gnttab_frame_pfn=%lx\n",
version, xen_events_irq, (grant_frames >> PAGE_SHIFT));
pr_info("Xen %s support found, events_irq=%d gnttab_frame=%pa\n",
version, xen_events_irq, &grant_frames);

if (xen_events_irq < 0)
return -ENODEV;
Expand Down
6 changes: 3 additions & 3 deletions drivers/xen/grant-table.c
Original file line number Diff line number Diff line change
Expand Up @@ -837,7 +837,7 @@ unsigned int gnttab_max_grant_frames(void)
}
EXPORT_SYMBOL_GPL(gnttab_max_grant_frames);

int gnttab_setup_auto_xlat_frames(unsigned long addr)
int gnttab_setup_auto_xlat_frames(phys_addr_t addr)
{
xen_pfn_t *pfn;
unsigned int max_nr_gframes = __max_nr_grant_frames();
Expand All @@ -849,8 +849,8 @@ int gnttab_setup_auto_xlat_frames(unsigned long addr)

vaddr = xen_remap(addr, PAGE_SIZE * max_nr_gframes);
if (vaddr == NULL) {
pr_warn("Failed to ioremap gnttab share frames (addr=0x%08lx)!\n",
addr);
pr_warn("Failed to ioremap gnttab share frames (addr=%pa)!\n",
&addr);
return -ENOMEM;
}
pfn = kcalloc(max_nr_gframes, sizeof(pfn[0]), GFP_KERNEL);
Expand Down
2 changes: 1 addition & 1 deletion include/xen/grant_table.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ struct grant_frames {
};
extern struct grant_frames xen_auto_xlat_grant_frames;
unsigned int gnttab_max_grant_frames(void);
int gnttab_setup_auto_xlat_frames(unsigned long addr);
int gnttab_setup_auto_xlat_frames(phys_addr_t addr);
void gnttab_free_auto_xlat_frames(void);

#define gnttab_map_vaddr(map) ((void *)(map.host_virt_addr))
Expand Down

0 comments on commit 47c5420

Please sign in to comment.