[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86/hvm: Allow hvm_copy_to_guest_*() to come from const sources
commit 9895e3374237267697bd505c04810d2d10e42c7b Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Wed Jul 19 11:30:56 2023 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Wed Jul 26 13:58:27 2023 +0100 x86/hvm: Allow hvm_copy_to_guest_*() to come from const sources The work to fix MISRA rule 7.4 (using mutable pointers to string literals) identifies that string literals do indeed get passed into hvm_copy_to_guest_linear() by way of the PVH dom0 command line. This higlights that the copy_to_* helpers really ought to take a const source. Update the function types to match, and cast away constness in the wrappers around __hvm_copy() where HVMCOPY_to_guest is used. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/hvm/hvm.c | 11 ++++++----- xen/arch/x86/include/asm/hvm/support.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 0fa58ce6a0..0e471e02a1 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3401,9 +3401,10 @@ static enum hvm_translation_result __hvm_copy( } enum hvm_translation_result hvm_copy_to_guest_phys( - paddr_t paddr, void *buf, unsigned int size, struct vcpu *v) + paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v) { - return __hvm_copy(buf, paddr, size, v, + return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */, + paddr, size, v, HVMCOPY_to_guest | HVMCOPY_phys, 0, NULL); } @@ -3415,11 +3416,11 @@ enum hvm_translation_result hvm_copy_from_guest_phys( } enum hvm_translation_result hvm_copy_to_guest_linear( - unsigned long addr, void *buf, unsigned int size, uint32_t pfec, + unsigned long addr, const void *buf, unsigned int size, uint32_t pfec, pagefault_info_t *pfinfo) { - return __hvm_copy(buf, addr, size, current, - HVMCOPY_to_guest | HVMCOPY_linear, + return __hvm_copy((void *)buf /* HVMCOPY_to_guest doesn't modify */, + addr, size, current, HVMCOPY_to_guest | HVMCOPY_linear, PFEC_page_present | PFEC_write_access | pfec, pfinfo); } diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/asm/hvm/support.h index ab7de0a43b..2a7ba36af0 100644 --- a/xen/arch/x86/include/asm/hvm/support.h +++ b/xen/arch/x86/include/asm/hvm/support.h @@ -59,7 +59,7 @@ enum hvm_translation_result { * address range does not map entirely onto ordinary machine memory. */ enum hvm_translation_result hvm_copy_to_guest_phys( - paddr_t paddr, void *buf, unsigned int size, struct vcpu *v); + paddr_t paddr, const void *buf, unsigned int size, struct vcpu *v); enum hvm_translation_result hvm_copy_from_guest_phys( void *buf, paddr_t paddr, unsigned int size); @@ -85,7 +85,7 @@ typedef struct pagefault_info } pagefault_info_t; enum hvm_translation_result hvm_copy_to_guest_linear( - unsigned long addr, void *buf, unsigned int size, uint32_t pfec, + unsigned long addr, const void *buf, unsigned int size, uint32_t pfec, pagefault_info_t *pfinfo); enum hvm_translation_result hvm_copy_from_guest_linear( void *buf, unsigned long addr, unsigned int size, uint32_t pfec, -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |