|
23 | 23 | #define IOMMU_INIT_BUS_LIMIT (0xf)
|
24 | 24 |
|
25 | 25 | #define PAGE_MASK (0xFFFUL)
|
26 |
| -#define LEVEL_WIDTH 9 |
| 26 | +#define LEVEL_WIDTH 9U |
27 | 27 |
|
28 |
| -#define ROOT_ENTRY_LOWER_PRESENT_POS (0) |
29 |
| -#define ROOT_ENTRY_LOWER_PRESENT_MASK ((uint64_t)1) |
30 |
| -#define ROOT_ENTRY_LOWER_CTP_POS (12) |
31 |
| -#define ROOT_ENTRY_LOWER_CTP_MASK ((uint64_t)0xFFFFFFFFFFFFF) |
| 28 | +#define ROOT_ENTRY_LOWER_PRESENT_POS (0U) |
| 29 | +#define ROOT_ENTRY_LOWER_PRESENT_MASK (1UL) |
| 30 | +#define ROOT_ENTRY_LOWER_CTP_POS (12U) |
| 31 | +#define ROOT_ENTRY_LOWER_CTP_MASK (0xFFFFFFFFFFFFFUL) |
32 | 32 |
|
33 |
| -#define CTX_ENTRY_UPPER_AW_POS (0) |
| 33 | +#define CTX_ENTRY_UPPER_AW_POS (0U) |
34 | 34 | #define CTX_ENTRY_UPPER_AW_MASK \
|
35 |
| - ((uint64_t)0x7 << CTX_ENTRY_UPPER_AW_POS) |
36 |
| -#define CTX_ENTRY_UPPER_DID_POS (8) |
| 35 | + (0x7UL << CTX_ENTRY_UPPER_AW_POS) |
| 36 | +#define CTX_ENTRY_UPPER_DID_POS (8U) |
37 | 37 | #define CTX_ENTRY_UPPER_DID_MASK \
|
38 |
| - ((uint64_t)0x3F << CTX_ENTRY_UPPER_DID_POS) |
39 |
| -#define CTX_ENTRY_LOWER_P_POS (0) |
| 38 | + (0x3FUL << CTX_ENTRY_UPPER_DID_POS) |
| 39 | +#define CTX_ENTRY_LOWER_P_POS (0U) |
40 | 40 | #define CTX_ENTRY_LOWER_P_MASK \
|
41 |
| - ((uint64_t)0x1 << CTX_ENTRY_LOWER_P_POS) |
42 |
| -#define CTX_ENTRY_LOWER_FPD_POS (1) |
| 41 | + (0x1UL << CTX_ENTRY_LOWER_P_POS) |
| 42 | +#define CTX_ENTRY_LOWER_FPD_POS (1U) |
43 | 43 | #define CTX_ENTRY_LOWER_FPD_MASK \
|
44 |
| - ((uint64_t)0x1 << CTX_ENTRY_LOWER_FPD_POS) |
45 |
| -#define CTX_ENTRY_LOWER_TT_POS (2) |
| 44 | + (0x1UL << CTX_ENTRY_LOWER_FPD_POS) |
| 45 | +#define CTX_ENTRY_LOWER_TT_POS (2U) |
46 | 46 | #define CTX_ENTRY_LOWER_TT_MASK \
|
47 |
| - ((uint64_t)0x3 << CTX_ENTRY_LOWER_TT_POS) |
48 |
| -#define CTX_ENTRY_LOWER_SLPTPTR_POS (12) |
| 47 | + (0x3UL << CTX_ENTRY_LOWER_TT_POS) |
| 48 | +#define CTX_ENTRY_LOWER_SLPTPTR_POS (12U) |
49 | 49 | #define CTX_ENTRY_LOWER_SLPTPTR_MASK \
|
50 |
| - ((uint64_t)0xFFFFFFFFFFFFF << CTX_ENTRY_LOWER_SLPTPTR_POS) |
| 50 | + (0xFFFFFFFFFFFFFUL << CTX_ENTRY_LOWER_SLPTPTR_POS) |
51 | 51 |
|
52 | 52 | #define DMAR_GET_BITSLICE(var, bitname) \
|
53 | 53 | ((var & bitname ## _MASK) >> bitname ## _POS)
|
|
57 | 57 | ~bitname ## _MASK) | ((val << bitname ## _POS) & bitname ## _MASK))
|
58 | 58 |
|
59 | 59 | /* translation type */
|
60 |
| -#define DMAR_CTX_TT_UNTRANSLATED 0x0 |
61 |
| -#define DMAR_CTX_TT_ALL 0x1 |
62 |
| -#define DMAR_CTX_TT_PASSTHROUGH 0x2 |
| 60 | +#define DMAR_CTX_TT_UNTRANSLATED 0x0UL |
| 61 | +#define DMAR_CTX_TT_ALL 0x1UL |
| 62 | +#define DMAR_CTX_TT_PASSTHROUGH 0x2UL |
63 | 63 |
|
64 | 64 | /* Fault event MSI data register */
|
65 |
| -#define DMAR_MSI_DELIVERY_MODE_SHIFT (8) |
66 |
| -#define DMAR_MSI_DELIVERY_FIXED (0 << DMAR_MSI_DELIVERY_MODE_SHIFT) |
67 |
| -#define DMAR_MSI_DELIVERY_LOWPRI (1 << DMAR_MSI_DELIVERY_MODE_SHIFT) |
| 65 | +#define DMAR_MSI_DELIVERY_MODE_SHIFT (8U) |
| 66 | +#define DMAR_MSI_DELIVERY_FIXED (0U << DMAR_MSI_DELIVERY_MODE_SHIFT) |
| 67 | +#define DMAR_MSI_DELIVERY_LOWPRI (1U << DMAR_MSI_DELIVERY_MODE_SHIFT) |
68 | 68 |
|
69 | 69 | /* Fault event MSI address register */
|
70 | 70 | #define DMAR_MSI_DEST_MODE_SHIFT (2)
|
@@ -312,37 +312,38 @@ static void dmar_uint_show_capability(struct dmar_drhd_rt *dmar_uint)
|
312 | 312 | }
|
313 | 313 | #endif
|
314 | 314 |
|
315 |
| -static inline uint8_t width_to_level(int width) |
| 315 | +static inline uint8_t width_to_level(uint32_t width) |
316 | 316 | {
|
317 |
| - return ((width - 12) + (LEVEL_WIDTH)-1) / (LEVEL_WIDTH); |
| 317 | + return ((width - 12U) + (LEVEL_WIDTH)-1U) / (LEVEL_WIDTH); |
318 | 318 | }
|
319 | 319 |
|
320 |
| -static inline uint8_t width_to_agaw(int width) |
| 320 | +static inline uint8_t width_to_agaw(uint32_t width) |
321 | 321 | {
|
322 |
| - return width_to_level(width) - 2; |
| 322 | + return width_to_level(width) - 2U; |
323 | 323 | }
|
324 | 324 |
|
325 | 325 | static uint8_t dmar_uint_get_msagw(struct dmar_drhd_rt *dmar_uint)
|
326 | 326 | {
|
327 |
| - int i; |
| 327 | + uint8_t i; |
328 | 328 | uint8_t sgaw = iommu_cap_sagaw(dmar_uint->cap);
|
329 | 329 |
|
330 |
| - for (i = 4; i >= 0; i--) { |
331 |
| - if (((1 << i) & sgaw) != 0) { |
| 330 | + for (i = 5U; i > 0U;) { |
| 331 | + i--; |
| 332 | + if (((1U << i) & sgaw) != 0U) { |
332 | 333 | break;
|
333 | 334 | }
|
334 | 335 | }
|
335 |
| - return (uint8_t)i; |
| 336 | + return i; |
336 | 337 | }
|
337 | 338 |
|
338 | 339 | static bool
|
339 | 340 | dmar_unit_support_aw(struct dmar_drhd_rt *dmar_uint, uint32_t addr_width)
|
340 | 341 | {
|
341 | 342 | uint8_t aw;
|
342 | 343 |
|
343 |
| - aw = (uint8_t)width_to_agaw(addr_width); |
| 344 | + aw = width_to_agaw(addr_width); |
344 | 345 |
|
345 |
| - return ((1U << aw) & iommu_cap_sagaw(dmar_uint->cap)) != 0; |
| 346 | + return (((1U << aw) & iommu_cap_sagaw(dmar_uint->cap)) != 0U); |
346 | 347 | }
|
347 | 348 |
|
348 | 349 | static void dmar_enable_translation(struct dmar_drhd_rt *dmar_uint)
|
@@ -390,6 +391,7 @@ static void dmar_register_hrhd(struct dmar_drhd_rt *dmar_uint)
|
390 | 391 | dmar_uint->gcmd = iommu_read64(dmar_uint, DMAR_GCMD_REG);
|
391 | 392 |
|
392 | 393 | dmar_uint->cap_msagaw = dmar_uint_get_msagw(dmar_uint);
|
| 394 | + |
393 | 395 | dmar_uint->cap_num_fault_regs =
|
394 | 396 | iommu_cap_num_fault_regs(dmar_uint->cap);
|
395 | 397 | dmar_uint->cap_fault_reg_offset =
|
@@ -508,7 +510,7 @@ static uint8_t alloc_domain_id(void)
|
508 | 510 |
|
509 | 511 | static void free_domain_id(uint16_t dom_id)
|
510 | 512 | {
|
511 |
| - uint64_t mask = (1 << dom_id); |
| 513 | + uint64_t mask = (1UL << dom_id); |
512 | 514 |
|
513 | 515 | spinlock_obtain(&domain_lock);
|
514 | 516 | domain_bitmap &= ~mask;
|
@@ -577,7 +579,7 @@ static void dmar_invalid_context_cache(struct dmar_drhd_rt *dmar_uint,
|
577 | 579 | IOMMU_LOCK(dmar_uint);
|
578 | 580 | iommu_write64(dmar_uint, DMAR_CCMD_REG, cmd);
|
579 | 581 | /* read upper 32bits to check */
|
580 |
| - DMAR_WAIT_COMPLETION(DMAR_CCMD_REG + 4, (status & DMA_CCMD_ICC_32) == 0U, |
| 582 | + DMAR_WAIT_COMPLETION(DMAR_CCMD_REG + 4U, (status & DMA_CCMD_ICC_32) == 0U, |
581 | 583 | status);
|
582 | 584 |
|
583 | 585 | IOMMU_UNLOCK(dmar_uint);
|
@@ -867,7 +869,7 @@ static void dmar_disable(struct dmar_drhd_rt *dmar_uint)
|
867 | 869 | }
|
868 | 870 |
|
869 | 871 | struct iommu_domain *create_iommu_domain(uint16_t vm_id, uint64_t translation_table,
|
870 |
| - int addr_width) |
| 872 | + uint32_t addr_width) |
871 | 873 | {
|
872 | 874 | struct iommu_domain *domain;
|
873 | 875 | uint16_t domain_id;
|
@@ -1172,7 +1174,7 @@ void disable_iommu(void)
|
1172 | 1174 | }
|
1173 | 1175 |
|
1174 | 1176 | /* 4 iommu fault register state */
|
1175 |
| -#define IOMMU_FAULT_REGISTER_STATE_NUM 4 |
| 1177 | +#define IOMMU_FAULT_REGISTER_STATE_NUM 4U |
1176 | 1178 | static uint32_t
|
1177 | 1179 | iommu_fault_state[CONFIG_MAX_IOMMU_NUM][IOMMU_FAULT_REGISTER_STATE_NUM];
|
1178 | 1180 |
|
|
0 commit comments