mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xen/arm: Don't mix GFN and MFN when using iomem_deny_access
iomem_deny_access is working on MFN and not GFN. Make it clear by renaming the local variables. Signed-off-by: Julien Grall <julien.grall@arm.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
1 parent
960cd2cd17
commit
ac94372254
3 files changed
+21
-21
No files matched your search
@@ -1373,7 +1373,7 @@ static int acpi_iomem_deny_access(struct domain *d)
|
||||
{
|
||||
acpi_status status;
|
||||
struct acpi_table_spcr *spcr = NULL;
|
||||
unsigned long gfn;
|
||||
unsigned long mfn;
|
||||
int rc;
|
||||
|
||||
/* Firstly permit full MMIO capabilities. */
|
||||
@@ -1391,9 +1391,9 @@ static int acpi_iomem_deny_access(struct domain *d)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
gfn = spcr->serial_port.address >> PAGE_SHIFT;
|
||||
mfn = spcr->serial_port.address >> PAGE_SHIFT;
|
||||
/* Deny MMIO access for UART */
|
||||
rc = iomem_deny_access(d, gfn, gfn + 1);
|
||||
rc = iomem_deny_access(d, mfn, mfn + 1);
|
||||
if ( rc )
|
||||
return rc;
|
||||
|
||||
|
||||
@@ -991,26 +991,26 @@ static void __init gicv2_dt_init(void)
|
||||
static int gicv2_iomem_deny_access(const struct domain *d)
|
||||
{
|
||||
int rc;
|
||||
unsigned long gfn, nr;
|
||||
unsigned long mfn, nr;
|
||||
|
||||
gfn = dbase >> PAGE_SHIFT;
|
||||
rc = iomem_deny_access(d, gfn, gfn + 1);
|
||||
mfn = dbase >> PAGE_SHIFT;
|
||||
rc = iomem_deny_access(d, mfn, mfn + 1);
|
||||
if ( rc )
|
||||
return rc;
|
||||
|
||||
gfn = hbase >> PAGE_SHIFT;
|
||||
rc = iomem_deny_access(d, gfn, gfn + 1);
|
||||
mfn = hbase >> PAGE_SHIFT;
|
||||
rc = iomem_deny_access(d, mfn, mfn + 1);
|
||||
if ( rc )
|
||||
return rc;
|
||||
|
||||
gfn = cbase >> PAGE_SHIFT;
|
||||
mfn = cbase >> PAGE_SHIFT;
|
||||
nr = DIV_ROUND_UP(csize, PAGE_SIZE);
|
||||
rc = iomem_deny_access(d, gfn, gfn + nr);
|
||||
rc = iomem_deny_access(d, mfn, mfn + nr);
|
||||
if ( rc )
|
||||
return rc;
|
||||
|
||||
gfn = vbase >> PAGE_SHIFT;
|
||||
return iomem_deny_access(d, gfn, gfn + nr);
|
||||
mfn = vbase >> PAGE_SHIFT;
|
||||
return iomem_deny_access(d, mfn, mfn + nr);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
|
||||
@@ -1234,37 +1234,37 @@ static void __init gicv3_dt_init(void)
|
||||
static int gicv3_iomem_deny_access(const struct domain *d)
|
||||
{
|
||||
int rc, i;
|
||||
unsigned long gfn, nr;
|
||||
unsigned long mfn, nr;
|
||||
|
||||
gfn = dbase >> PAGE_SHIFT;
|
||||
mfn = dbase >> PAGE_SHIFT;
|
||||
nr = DIV_ROUND_UP(SZ_64K, PAGE_SIZE);
|
||||
rc = iomem_deny_access(d, gfn, gfn + nr);
|
||||
rc = iomem_deny_access(d, mfn, mfn + nr);
|
||||
if ( rc )
|
||||
return rc;
|
||||
|
||||
for ( i = 0; i < gicv3.rdist_count; i++ )
|
||||
{
|
||||
gfn = gicv3.rdist_regions[i].base >> PAGE_SHIFT;
|
||||
mfn = gicv3.rdist_regions[i].base >> PAGE_SHIFT;
|
||||
nr = DIV_ROUND_UP(gicv3.rdist_regions[i].size, PAGE_SIZE);
|
||||
rc = iomem_deny_access(d, gfn, gfn + nr);
|
||||
rc = iomem_deny_access(d, mfn, mfn + nr);
|
||||
if ( rc )
|
||||
return rc;
|
||||
}
|
||||
|
||||
if ( cbase != INVALID_PADDR )
|
||||
{
|
||||
gfn = cbase >> PAGE_SHIFT;
|
||||
mfn = cbase >> PAGE_SHIFT;
|
||||
nr = DIV_ROUND_UP(csize, PAGE_SIZE);
|
||||
rc = iomem_deny_access(d, gfn, gfn + nr);
|
||||
rc = iomem_deny_access(d, mfn, mfn + nr);
|
||||
if ( rc )
|
||||
return rc;
|
||||
}
|
||||
|
||||
if ( vbase != INVALID_PADDR )
|
||||
{
|
||||
gfn = vbase >> PAGE_SHIFT;
|
||||
mfn = vbase >> PAGE_SHIFT;
|
||||
nr = DIV_ROUND_UP(csize, PAGE_SIZE);
|
||||
return iomem_deny_access(d, gfn, gfn + nr);
|
||||
return iomem_deny_access(d, mfn, mfn + nr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||