Skip to content

Commit

Permalink
iommu/amd: Fix failure return from snp_lookup_rmpentry()
Browse files Browse the repository at this point in the history
Commit

  f366a8d: ("iommu/amd: Clean up RMP entries for IOMMU pages during SNP shutdown")

leads to the following Smatch static checker warning:

  drivers/iommu/amd/init.c:3820 iommu_page_make_shared() error: uninitialized symbol 'assigned'.

Fix it.

  [ bp: Address the other error cases too. ]

Fixes: f366a8d ("iommu/amd: Clean up RMP entries for IOMMU pages during SNP shutdown")
Closes: https://lore.kernel.org/linux-iommu/1be69f6a-e7e1-45f9-9a74-b2550344f3fd@moroto.mountain
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Ashish Kalra <ashish.kalra@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: Joerg Roedel <jroedel@suse.com>
Link: https://lore.kernel.org/lkml/20240126041126.1927228-20-michael.roth@amd.com
  • Loading branch information
Ashish Kalra authored and Borislav Petkov (AMD) committed Feb 7, 2024
1 parent 1c811d4 commit 45ba5b3
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions drivers/iommu/amd/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -3813,23 +3813,28 @@ static int iommu_page_make_shared(void *page)
bool assigned;

ret = snp_lookup_rmpentry(pfn, &assigned, &level);
if (ret)
pr_warn("IOMMU PFN %lx RMP lookup failed, ret %d\n",
pfn, ret);
if (ret) {
pr_warn("IOMMU PFN %lx RMP lookup failed, ret %d\n", pfn, ret);
return ret;
}

if (!assigned)
pr_warn("IOMMU PFN %lx not assigned in RMP table\n",
pfn);
if (!assigned) {
pr_warn("IOMMU PFN %lx not assigned in RMP table\n", pfn);
return -EINVAL;
}

if (level > PG_LEVEL_4K) {
ret = psmash(pfn);
if (ret) {
pr_warn("IOMMU PFN %lx had a huge RMP entry, but attempted psmash failed, ret: %d, level: %d\n",
pfn, ret, level);
}
if (!ret)
goto done;

pr_warn("PSMASH failed for IOMMU PFN %lx huge RMP entry, ret: %d, level: %d\n",
pfn, ret, level);
return ret;
}
}

done:
return rmp_make_shared(pfn, PG_LEVEL_4K);
}

Expand Down

0 comments on commit 45ba5b3

Please sign in to comment.