Skip to content

Commit 83ebd43

Browse files
binbinwu1wenlingz
authored andcommitted
hv: ptdev: fix MISRAC violations
This patch fixs MISRAC violations in common/ptdev.c and include/common/ptdev.h Tracked-On: #861 Signed-off-by: Binbin Wu <binbin.wu@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com>
1 parent ccda459 commit 83ebd43

File tree

2 files changed

+22
-24
lines changed

2 files changed

+22
-24
lines changed

hypervisor/common/ptdev.c

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ static inline uint16_t ptirq_alloc_entry_id(void)
2424

2525
while (id < CONFIG_MAX_PT_IRQ_ENTRIES) {
2626
if (!bitmap_test_and_set_lock((id & 0x3FU), &ptirq_entry_bitmaps[id >> 6U])) {
27-
return id;
27+
break;
2828
}
2929
id = (uint16_t)ffz64_ex(ptirq_entry_bitmaps, CONFIG_MAX_PT_IRQ_ENTRIES);
3030
}
3131

32-
return INVALID_PTDEV_ENTRY_ID;
32+
return (id < CONFIG_MAX_PT_IRQ_ENTRIES) ? id: INVALID_PTDEV_ENTRY_ID;
3333
}
3434

3535
static void ptirq_enqueue_softirq(struct ptirq_remapping_info *entry)
@@ -86,27 +86,26 @@ struct ptirq_remapping_info *ptirq_dequeue_softirq(struct acrn_vm *vm)
8686

8787
struct ptirq_remapping_info *ptirq_alloc_entry(struct acrn_vm *vm, uint32_t intr_type)
8888
{
89-
struct ptirq_remapping_info *entry;
89+
struct ptirq_remapping_info *entry = NULL;
9090
uint16_t ptirq_id = ptirq_alloc_entry_id();
9191

92-
if (ptirq_id >= CONFIG_MAX_PT_IRQ_ENTRIES) {
93-
pr_err("Alloc ptdev irq entry failed");
94-
return NULL;
95-
}
96-
97-
entry = &ptirq_entries[ptirq_id];
98-
(void)memset((void *)entry, 0U, sizeof(struct ptirq_remapping_info));
99-
entry->ptdev_entry_id = ptirq_id;
100-
entry->intr_type = intr_type;
101-
entry->vm = vm;
102-
entry->intr_count = 0UL;
92+
if (ptirq_id < CONFIG_MAX_PT_IRQ_ENTRIES) {
93+
entry = &ptirq_entries[ptirq_id];
94+
(void)memset((void *)entry, 0U, sizeof(struct ptirq_remapping_info));
95+
entry->ptdev_entry_id = ptirq_id;
96+
entry->intr_type = intr_type;
97+
entry->vm = vm;
98+
entry->intr_count = 0UL;
10399

104-
INIT_LIST_HEAD(&entry->softirq_node);
100+
INIT_LIST_HEAD(&entry->softirq_node);
105101

106-
initialize_timer(&entry->intr_delay_timer, ptirq_intr_delay_callback,
107-
entry, 0UL, 0, 0UL);
102+
initialize_timer(&entry->intr_delay_timer, ptirq_intr_delay_callback,
103+
entry, 0UL, 0, 0UL);
108104

109-
atomic_clear32(&entry->active, ACTIVE_FLAG);
105+
atomic_clear32(&entry->active, ACTIVE_FLAG);
106+
} else {
107+
pr_err("Alloc ptdev irq entry failed");
108+
}
110109

111110
return entry;
112111
}
@@ -188,12 +187,11 @@ void ptirq_deactivate_entry(struct ptirq_remapping_info *entry)
188187

189188
void ptdev_init(void)
190189
{
191-
if (get_cpu_id() != BOOT_CPU_ID) {
192-
return;
193-
}
190+
if (get_cpu_id() == BOOT_CPU_ID) {
194191

195-
spinlock_init(&ptdev_lock);
196-
register_softirq(SOFTIRQ_PTDEV, ptirq_softirq);
192+
spinlock_init(&ptdev_lock);
193+
register_softirq(SOFTIRQ_PTDEV, ptirq_softirq);
194+
}
197195
}
198196

199197
void ptdev_release_all_entries(const struct acrn_vm *vm)

hypervisor/include/common/ptdev.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ struct ptirq_remapping_info {
6868
struct hv_timer intr_delay_timer; /* used for delay intr injection */
6969
};
7070

71-
extern struct ptirq_remapping_info ptirq_entries[];
71+
extern struct ptirq_remapping_info ptirq_entries[CONFIG_MAX_PT_IRQ_ENTRIES];
7272
extern spinlock_t ptdev_lock;
7373

7474
bool is_entry_active(const struct ptirq_remapping_info *entry);

0 commit comments

Comments
 (0)