hv: minimize the case of "identifier reuse"

Identifier reuse may arise confusion. So should minimize the case of it
as much as possible. This patch is try to do this except the PCI related
module.

Tracked-On: #861
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
This commit is contained in:
Li, Fei1
2018-12-05 21:33:05 +08:00
committed by wenlingz
parent 3afc5113c4
commit ae9d4361fd
7 changed files with 68 additions and 71 deletions

View File

@@ -353,22 +353,22 @@ int32_t hcall_set_irqline(const struct acrn_vm *vm, uint16_t vmid,
return -EINVAL;
}
if (ops->nr_gsi >= vioapic_pincount(vm)) {
if (ops->gsi >= vioapic_pincount(vm)) {
return -EINVAL;
}
if (ops->nr_gsi < vpic_pincount()) {
if (ops->gsi < vpic_pincount()) {
/*
* IRQ line for 8254 timer is connected to
* I/O APIC pin #2 but PIC pin #0,route GSI
* number #2 to PIC IRQ #0.
*/
irq_pic = (ops->nr_gsi == 2U) ? 0U : ops->nr_gsi;
irq_pic = (ops->gsi == 2U) ? 0U : ops->gsi;
vpic_set_irq(target_vm, irq_pic, ops->op);
}
/* handle IOAPIC irqline */
vioapic_set_irq(target_vm, ops->nr_gsi, ops->op);
vioapic_set_irq(target_vm, ops->gsi, ops->op);
return 0;
}
@@ -588,20 +588,20 @@ static int32_t set_vm_memory_region(struct acrn_vm *vm,
*/
int32_t hcall_set_vm_memory_regions(struct acrn_vm *vm, uint64_t param)
{
struct set_regions set_regions;
struct vm_memory_region region;
struct set_regions regions;
struct vm_memory_region mr;
struct acrn_vm *target_vm;
uint32_t idx;
(void)memset((void *)&set_regions, 0U, sizeof(set_regions));
(void)memset((void *)&regions, 0U, sizeof(regions));
if (copy_from_gpa(vm, &set_regions, param, sizeof(set_regions)) != 0) {
if (copy_from_gpa(vm, &regions, param, sizeof(regions)) != 0) {
pr_err("%s: Unable copy param from vm\n", __func__);
return -EFAULT;
}
target_vm = get_vm_from_vmid(set_regions.vmid);
target_vm = get_vm_from_vmid(regions.vmid);
if (target_vm == NULL) {
return -EINVAL;
}
@@ -612,17 +612,15 @@ int32_t hcall_set_vm_memory_regions(struct acrn_vm *vm, uint64_t param)
}
idx = 0U;
while (idx < set_regions.mr_num) {
while (idx < regions.mr_num) {
int ret;
if (copy_from_gpa(vm, &region,
set_regions.regions_gpa + idx * sizeof(region),
sizeof(region)) != 0) {
pr_err("%s: Copy region entry fail from vm\n", __func__);
if (copy_from_gpa(vm, &mr, regions.regions_gpa + idx * sizeof(mr), sizeof(mr)) != 0) {
pr_err("%s: Copy mr entry fail from vm\n", __func__);
return -EFAULT;
}
ret = set_vm_memory_region(vm, target_vm, &region);
ret = set_vm_memory_region(vm, target_vm, &mr);
if (ret < 0) {
return ret;
}

View File

@@ -61,13 +61,13 @@ static void prepare_bsp_gdt(struct acrn_vm *vm)
static uint64_t create_zero_page(struct acrn_vm *vm)
{
struct zero_page *zeropage;
struct sw_linux *sw_linux = &(vm->sw.linux_info);
struct sw_linux *linux_info = &(vm->sw.linux_info);
struct sw_kernel_info *sw_kernel = &(vm->sw.kernel_info);
struct zero_page *hva;
uint64_t gpa, addr;
/* Set zeropage in Linux Guest RAM region just past boot args */
gpa = (uint64_t)sw_linux->bootargs_load_addr + MEM_4K;
gpa = (uint64_t)linux_info->bootargs_load_addr + MEM_4K;
hva = (struct zero_page *)gpa2hva(vm, gpa);
zeropage = hva;
@@ -80,16 +80,16 @@ static uint64_t create_zero_page(struct acrn_vm *vm)
&(hva->hdr), sizeof(hva->hdr));
/* See if kernel has a RAM disk */
if (sw_linux->ramdisk_src_addr != NULL) {
if (linux_info->ramdisk_src_addr != NULL) {
/* Copy ramdisk load_addr and size in zeropage header structure
*/
addr = (uint64_t)sw_linux->ramdisk_load_addr;
addr = (uint64_t)linux_info->ramdisk_load_addr;
zeropage->hdr.ramdisk_addr = (uint32_t)addr;
zeropage->hdr.ramdisk_size = (uint32_t)sw_linux->ramdisk_size;
zeropage->hdr.ramdisk_size = (uint32_t)linux_info->ramdisk_size;
}
/* Copy bootargs load_addr in zeropage header structure */
addr = (uint64_t)sw_linux->bootargs_load_addr;
addr = (uint64_t)linux_info->bootargs_load_addr;
zeropage->hdr.bootargs_addr = (uint32_t)addr;
/* set constant arguments in zero page */
@@ -97,7 +97,7 @@ static uint64_t create_zero_page(struct acrn_vm *vm)
zeropage->hdr.load_flags |= (1U << 5U); /* quiet */
/* Create/add e820 table entries in zeropage */
zeropage->e820_nentries = (uint8_t)create_e820_table(zeropage->e820);
zeropage->e820_nentries = (uint8_t)create_e820_table(zeropage->entries);
/* Return Physical Base Address of zeropage */
return gpa;
@@ -110,7 +110,7 @@ int general_sw_loader(struct acrn_vm *vm)
char dyn_bootargs[100] = {0};
uint32_t kernel_entry_offset;
struct zero_page *zeropage;
struct sw_linux *sw_linux = &(vm->sw.linux_info);
struct sw_linux *linux_info = &(vm->sw.linux_info);
struct sw_kernel_info *sw_kernel = &(vm->sw.kernel_info);
struct acrn_vcpu *vcpu = get_primary_vcpu(vm);
@@ -159,11 +159,11 @@ int general_sw_loader(struct acrn_vm *vm)
/* Get host-physical address for guest bootargs */
hva = gpa2hva(vm,
(uint64_t)sw_linux->bootargs_load_addr);
(uint64_t)linux_info->bootargs_load_addr);
/* Copy Guest OS bootargs to its load location */
(void)strcpy_s((char *)hva, MEM_2K,
sw_linux->bootargs_src_addr);
linux_info->bootargs_src_addr);
#ifdef CONFIG_CMA
/* add "cma=XXXXM@0xXXXXXXXX" to cmdline*/
@@ -172,7 +172,7 @@ int general_sw_loader(struct acrn_vm *vm)
(e820_mem.max_ram_blk_size >> 20U),
e820_mem.max_ram_blk_base);
(void)strcpy_s((char *)hva
+ sw_linux->bootargs_size,
+ linux_info->bootargs_size,
100U, dyn_bootargs);
}
#else
@@ -195,23 +195,23 @@ int general_sw_loader(struct acrn_vm *vm)
" hugepagesz=1G hugepages=%d",
reserving_1g_pages);
(void)strcpy_s((char *)hva
+ sw_linux->bootargs_size,
+ linux_info->bootargs_size,
100U, dyn_bootargs);
}
}
#endif
/* Check if a RAM disk is present with Linux guest */
if (sw_linux->ramdisk_src_addr != NULL) {
if (linux_info->ramdisk_src_addr != NULL) {
/* Get host-physical address for guest RAM disk */
hva = gpa2hva(vm,
(uint64_t)sw_linux->ramdisk_load_addr);
(uint64_t)linux_info->ramdisk_load_addr);
/* Copy RAM disk to its load location */
(void)memcpy_s((void *)hva,
sw_linux->ramdisk_size,
sw_linux->ramdisk_src_addr,
sw_linux->ramdisk_size);
linux_info->ramdisk_size,
linux_info->ramdisk_src_addr,
linux_info->ramdisk_size);
}