Skip to content

Commit

Permalink
pe: Enhance debug report for update_mem_attrs
Browse files Browse the repository at this point in the history
When memory attributes cannot be updated due to misalignment with 4K or
when the size is 0, the debug printout lacks sufficient clarity to
indicate the issue. To enhance troubleshooting, it is crucial to
generate an error log that explicitly states the failure to execute the
expected action. This error log will be visible even when the debug
level log is not enabled, thereby significantly reducing debugging time.

Signed-off-by: Jianyong Wu <[email protected]>
  • Loading branch information
jongwu authored and vathpela committed Feb 4, 2025
1 parent e42c319 commit c66c157
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion pe.c
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ update_mem_attrs(uintptr_t addr, uint64_t size,
&before, efi_status);

if (!IS_PAGE_ALIGNED(physaddr) || !IS_PAGE_ALIGNED(size) || size == 0) {
dprint(L"%a called on 0x%llx-0x%llx (size 0x%llx) +%a%a%a -%a%a%a\n",
perror(L"Invalid call %a(addr:0x%llx-0x%llx, size:0x%llx, +%a%a%a, -%a%a%a)\n",
__func__, (unsigned long long)physaddr,
(unsigned long long)(physaddr + size - 1),
(unsigned long long)size,
Expand All @@ -490,6 +490,12 @@ update_mem_attrs(uintptr_t addr, uint64_t size,
(clear_attrs & MEM_ATTR_R) ? "r" : "",
(clear_attrs & MEM_ATTR_W) ? "w" : "",
(clear_attrs & MEM_ATTR_X) ? "x" : "");
if (!IS_PAGE_ALIGNED(physaddr))
perror(L" addr is not page aligned\n");
if (!IS_PAGE_ALIGNED(size))
perror(L" size is not page aligned\n");
if (size == 0)
perror(L" size is 0\n");
return 0;
}

Expand Down

0 comments on commit c66c157

Please sign in to comment.