modified the lapic_id type to uint8_t

According intel mannual and ACPI mannual,lapic_id length is 1 byte.

V1->V2:
  Add U suffix to the numeric when do arithmetic operation on lapic.

Signed-off-by: Huihuang Shi <huihuang.shi@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Huihuang Shi 2018-06-29 11:04:25 +08:00 committed by lijinxia
parent 6f097b1633
commit 5c75f29a2d
5 changed files with 12 additions and 11 deletions

View File

@ -54,7 +54,7 @@ static void vapic_cap_detect(void);
static void cpu_xsave_init(void);
static void cpu_set_logical_id(uint32_t logical_id);
static void print_hv_banner(void);
int cpu_find_logical_id(uint32_t lapic_id);
int cpu_find_logical_id(uint8_t lapic_id);
static void pcpu_sync_sleep(unsigned long *sync, int mask_bit);
int ibrs_type;
static uint64_t __attribute__((__section__(".bss_noinit"))) start_tsc;
@ -252,7 +252,7 @@ static void alloc_phy_cpu_data(uint16_t pcpu_num)
uint16_t __attribute__((weak)) parse_madt(uint8_t *lapic_id_base)
{
static const uint32_t lapic_id[] = {0, 2, 4, 6};
static const uint8_t lapic_id[] = {0U, 2U, 4U, 6U};
uint32_t i;
for (i = 0; i < ARRAY_SIZE(lapic_id); i++)
@ -631,7 +631,7 @@ static void cpu_secondary_post(void)
cpu_dead(get_cpu_id());
}
int cpu_find_logical_id(uint32_t lapic_id)
int cpu_find_logical_id(uint8_t lapic_id)
{
int i;

View File

@ -331,12 +331,13 @@ static void wait_for_delivery(void)
} while (tmp.bits.delivery_status != 0U);
}
uint32_t get_cur_lapic_id(void)
uint8_t get_cur_lapic_id(void)
{
uint32_t lapic_id;
uint32_t lapic_id_reg;
uint8_t lapic_id;
lapic_id = read_lapic_reg32(LAPIC_ID_REGISTER);
lapic_id = (lapic_id >> 24);
lapic_id_reg = read_lapic_reg32(LAPIC_ID_REGISTER);
lapic_id = (lapic_id_reg >> 24U);
return lapic_id;
}

View File

@ -675,13 +675,13 @@ static void dmar_fault_msi_write(struct dmar_drhd_rt *dmar_uint,
{
uint32_t data;
uint32_t addr_low;
uint32_t lapic_id = get_cur_lapic_id();
uint8_t lapic_id = get_cur_lapic_id();
data = DMAR_MSI_DELIVERY_LOWPRI | vector;
/* redirection hint: 0
* destination mode: 0
*/
addr_low = 0xFEE00000U | ((lapic_id & 0xFFU) << 12);
addr_low = 0xFEE00000U | ((uint32_t)(lapic_id) << 12U);
IOMMU_LOCK(dmar_uint);
iommu_write32(dmar_uint, DMAR_FEDATA_REG, data);

View File

@ -153,7 +153,7 @@
#ifndef ASSEMBLER
int cpu_find_logical_id(uint32_t lapic_id);
int cpu_find_logical_id(uint8_t lapic_id);
/**********************************/
/* EXTERNAL VARIABLES */

View File

@ -160,7 +160,7 @@ void save_lapic(struct lapic_regs *regs);
int early_init_lapic(void);
int init_lapic(uint16_t cpu_id);
void send_lapic_eoi(void);
uint32_t get_cur_lapic_id(void);
uint8_t get_cur_lapic_id(void);
int send_startup_ipi(enum intr_cpu_startup_shorthand cpu_startup_shorthand,
uint32_t cpu_startup_dest,
uint64_t cpu_startup_start_address);