Skip to content

Commit 8b94957

Browse files
Shawnshhlijinxia
authored andcommitted
HV:guest:fix "signed/unsigned conversion without cast"
Misra C required signed/unsigned conversion with cast. V1->V2: a.split patch to patch series V2->V3: a.change the uint64_t type numeric constant's suffix from U to UL Signed-off-by: Huihuang Shi <huihuang.shi@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
1 parent a27f33f commit 8b94957

File tree

11 files changed

+150
-144
lines changed

11 files changed

+150
-144
lines changed

hypervisor/arch/x86/cpuid.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ static inline int set_vcpuid_entry(struct vm *vm,
6363
size_t entry_size = sizeof(struct vcpuid_entry);
6464

6565
if (vm->vcpuid_entry_nr == MAX_VM_VCPUID_ENTRIES) {
66-
pr_err("%s, vcpuid entry over MAX_VM_VCPUID_ENTRIES(%d)\n",
66+
pr_err("%s, vcpuid entry over MAX_VM_VCPUID_ENTRIES(%u)\n",
6767
__func__, MAX_VM_VCPUID_ENTRIES);
6868
return -ENOMEM;
6969
}

hypervisor/arch/x86/guest/guest.c

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ enum vm_paging_mode get_vcpu_paging_mode(struct vcpu *vcpu)
127127
static int _gva2gpa_common(struct vcpu *vcpu, struct page_walk_info *pw_info,
128128
uint64_t gva, uint64_t *gpa, uint32_t *err_code)
129129
{
130-
int i, index;
131-
uint32_t shift;
130+
int i;
131+
uint32_t index, shift;
132132
uint8_t *base;
133133
uint64_t entry;
134134
uint64_t addr, page_size;
@@ -147,15 +147,15 @@ static int _gva2gpa_common(struct vcpu *vcpu, struct page_walk_info *pw_info,
147147
goto out;
148148
}
149149

150-
shift = i * pw_info->width + 12;
151-
index = (gva >> shift) & ((1UL << pw_info->width) - 1);
150+
shift = (uint32_t) i * pw_info->width + 12U;
151+
index = (gva >> shift) & ((1UL << pw_info->width) - 1UL);
152152
page_size = 1UL << shift;
153153

154-
if (pw_info->width == 10)
154+
if (pw_info->width == 10U)
155155
/* 32bit entry */
156-
entry = *((uint32_t *)(base + 4 * index));
156+
entry = *((uint32_t *)(base + 4U * index));
157157
else
158-
entry = *((uint64_t *)(base + 8 * index));
158+
entry = *((uint64_t *)(base + 8U * index));
159159

160160
/* check if the entry present */
161161
if ((entry & MMU_32BIT_PDE_P) == 0U) {
@@ -259,7 +259,7 @@ int gva2gpa(struct vcpu *vcpu, uint64_t gva, uint64_t *gpa,
259259

260260
if ((gpa == NULL) || (err_code == NULL))
261261
return -EINVAL;
262-
*gpa = 0;
262+
*gpa = 0UL;
263263

264264
pw_info.top_entry = cur_context->cr3;
265265
pw_info.level = pm;
@@ -302,12 +302,12 @@ static inline int32_t _copy_gpa(struct vm *vm, void *h_ptr, uint64_t gpa,
302302
void *g_ptr;
303303

304304
hpa = _gpa2hpa(vm, gpa, &pg_size);
305-
if (pg_size == 0) {
305+
if (pg_size == 0U) {
306306
pr_err("GPA2HPA not found");
307307
return -EINVAL;
308308
}
309309

310-
if (fix_pg_size != 0)
310+
if (fix_pg_size != 0U)
311311
pg_size = fix_pg_size;
312312

313313
off_in_pg = gpa & (pg_size - 1);
@@ -327,22 +327,24 @@ static inline int32_t _copy_gpa(struct vm *vm, void *h_ptr, uint64_t gpa,
327327
static inline int copy_gpa(struct vm *vm, void *h_ptr, uint64_t gpa,
328328
uint32_t size, bool cp_from_vm)
329329
{
330-
int32_t len;
330+
int32_t ret;
331+
uint32_t len;
331332

332333
if (vm == NULL) {
333334
pr_err("guest phy addr copy need vm param");
334335
return -EINVAL;
335336
}
336337

337338
do {
338-
len = _copy_gpa(vm, h_ptr, gpa, size, 0, cp_from_vm);
339-
if (len < 0)
340-
return len;
339+
ret = _copy_gpa(vm, h_ptr, gpa, size, 0, cp_from_vm);
340+
if (ret < 0)
341+
return ret;
341342

343+
len = (uint32_t) ret;
342344
gpa += len;
343345
h_ptr += len;
344346
size -= len;
345-
} while (size > 0);
347+
} while (size > 0U);
346348

347349
return 0;
348350
}
@@ -351,7 +353,8 @@ static inline int copy_gva(struct vcpu *vcpu, void *h_ptr, uint64_t gva,
351353
uint32_t size, uint32_t *err_code, bool cp_from_vm)
352354
{
353355
uint64_t gpa = 0;
354-
int32_t len, ret;
356+
int32_t ret;
357+
uint32_t len;
355358

356359
if (vcpu == NULL) {
357360
pr_err("guest virt addr copy need vcpu param");
@@ -370,15 +373,16 @@ static inline int copy_gva(struct vcpu *vcpu, void *h_ptr, uint64_t gva,
370373
return ret;
371374
}
372375

373-
len = ret = _copy_gpa(vcpu->vm, h_ptr, gpa, size,
376+
ret = _copy_gpa(vcpu->vm, h_ptr, gpa, size,
374377
PAGE_SIZE_4K, cp_from_vm);
375378
if (ret < 0)
376379
return ret;
377380

381+
len = (uint32_t) ret;
378382
gva += len;
379383
h_ptr += len;
380384
size -= len;
381-
} while (size > 0);
385+
} while (size > 0U);
382386

383387
return 0;
384388
}
@@ -413,7 +417,7 @@ int copy_to_gva(struct vcpu *vcpu, void *h_ptr, uint64_t gva,
413417

414418
void init_e820(void)
415419
{
416-
unsigned int i;
420+
uint32_t i;
417421

418422
if (boot_regs[0] == MULTIBOOT_INFO_MAGIC) {
419423
struct multiboot_info *mbi = (struct multiboot_info *)
@@ -435,7 +439,7 @@ void init_e820(void)
435439
"mmap length 0x%x addr 0x%x entries %d\n",
436440
mbi->mi_mmap_length, mbi->mi_mmap_addr,
437441
e820_entries);
438-
for (i = 0; i < e820_entries; i++) {
442+
for (i = 0U; i < e820_entries; i++) {
439443
e820[i].baseaddr = mmap[i].baseaddr;
440444
e820[i].length = mmap[i].length;
441445
e820[i].type = mmap[i].type;
@@ -455,16 +459,16 @@ void init_e820(void)
455459

456460
void obtain_e820_mem_info(void)
457461
{
458-
unsigned int i;
462+
uint32_t i;
459463
struct e820_entry *entry;
460464

461465
e820_mem.mem_bottom = UINT64_MAX;
462-
e820_mem.mem_top = 0x00;
463-
e820_mem.total_mem_size = 0;
464-
e820_mem.max_ram_blk_base = 0;
465-
e820_mem.max_ram_blk_size = 0;
466+
e820_mem.mem_top = 0x0UL;
467+
e820_mem.total_mem_size = 0UL;
468+
e820_mem.max_ram_blk_base = 0UL;
469+
e820_mem.max_ram_blk_size = 0UL;
466470

467-
for (i = 0; i < e820_entries; i++) {
471+
for (i = 0U; i < e820_entries; i++) {
468472
entry = &e820[i];
469473
if (e820_mem.mem_bottom > entry->baseaddr)
470474
e820_mem.mem_bottom = entry->baseaddr;
@@ -488,7 +492,7 @@ void obtain_e820_mem_info(void)
488492

489493
static void rebuild_vm0_e820(void)
490494
{
491-
unsigned int i;
495+
uint32_t i;
492496
uint64_t entry_start;
493497
uint64_t entry_end;
494498
uint64_t hv_start = CONFIG_RAM_START;
@@ -498,7 +502,7 @@ static void rebuild_vm0_e820(void)
498502
/* hypervisor mem need be filter out from e820 table
499503
* it's hv itself + other hv reserved mem like vgt etc
500504
*/
501-
for (i = 0; i < e820_entries; i++) {
505+
for (i = 0U; i < e820_entries; i++) {
502506
entry = &e820[i];
503507
entry_start = entry->baseaddr;
504508
entry_end = entry->baseaddr + entry->length;
@@ -539,7 +543,7 @@ static void rebuild_vm0_e820(void)
539543

540544
}
541545

542-
if (new_entry.length > 0) {
546+
if (new_entry.length > 0UL) {
543547
e820_entries++;
544548
ASSERT(e820_entries <= E820_MAX_ENTRIES,
545549
"e820 entry overflow");
@@ -562,7 +566,7 @@ static void rebuild_vm0_e820(void)
562566
*/
563567
int prepare_vm0_memmap_and_e820(struct vm *vm)
564568
{
565-
unsigned int i;
569+
uint32_t i;
566570
uint32_t attr_wb = (IA32E_EPT_R_BIT |
567571
IA32E_EPT_W_BIT |
568572
IA32E_EPT_X_BIT |
@@ -584,7 +588,7 @@ int prepare_vm0_memmap_and_e820(struct vm *vm)
584588
MAP_MMIO, attr_uc);
585589

586590
/* update ram entries to WB attr */
587-
for (i = 0; i < e820_entries; i++) {
591+
for (i = 0U; i < e820_entries; i++) {
588592
entry = &e820[i];
589593
if (entry->type == E820_TYPE_RAM)
590594
ept_mmap(vm, entry->baseaddr, entry->baseaddr,
@@ -593,7 +597,7 @@ int prepare_vm0_memmap_and_e820(struct vm *vm)
593597

594598

595599
dev_dbg(ACRN_DBG_GUEST, "VM0 e820 layout:\n");
596-
for (i = 0; i < e820_entries; i++) {
600+
for (i = 0U; i < e820_entries; i++) {
597601
entry = &e820[i];
598602
dev_dbg(ACRN_DBG_GUEST,
599603
"e820 table: %d type: 0x%x", i, entry->type);
@@ -618,7 +622,7 @@ uint64_t e820_alloc_low_memory(uint32_t size)
618622
/* We want memory in page boundary and integral multiple of pages */
619623
size = ROUND_PAGE_UP(size);
620624

621-
for (i = 0; i < e820_entries; i++) {
625+
for (i = 0U; i < e820_entries; i++) {
622626
entry = &e820[i];
623627
uint64_t start, end, length;
624628

0 commit comments

Comments
 (0)