Kernel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- 45 participants
- 21955 discussions
[openeuler:OLK-6.6 3540/3540] kernel/dma/phytium/pswiotlb.c:1159:6: warning: variable 'cpuid' set but not used
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Jiakun,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: cd9eb9b4365b71652b2c2ac58293bea47c9f9302
commit: 03479a75f63bef0dca7ec44c1e1a7e8c45201aed [3540/3540] dma: Fix kabi breakage due to "dma: phytium: Add PSWIOTLB mechanism to improve DMA performance"
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251214/202512141034.7ERZ0sjF-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512141034.7ERZ0sjF-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512141034.7ERZ0sjF-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/dma/phytium/pswiotlb.c:1159:6: warning: variable 'cpuid' set but not used [-Wunused-but-set-variable]
1159 | int cpuid;
| ^
1 warning generated.
--
>> kernel/dma/phytium/pswiotlb.c:474: warning: Function parameter or member 'nid' not described in 'pswiotlb_alloc_tlb'
>> kernel/dma/phytium/pswiotlb.c:533: warning: Function parameter or member 'nid' not described in 'pswiotlb_alloc_pool'
>> kernel/dma/phytium/pswiotlb.c:533: warning: Function parameter or member 'transient' not described in 'pswiotlb_alloc_pool'
>> kernel/dma/phytium/pswiotlb.c:806: warning: Function parameter or member 'nid' not described in 'alloc_dma_pages'
>> kernel/dma/phytium/pswiotlb.c:836: warning: Function parameter or member 'nid' not described in 'pswiotlb_find_pool'
>> kernel/dma/phytium/pswiotlb.c:1005: warning: Function parameter or member 'nid' not described in 'pswiotlb_area_find_slots'
>> kernel/dma/phytium/pswiotlb.c:1115: warning: Function parameter or member 'nid' not described in 'pswiotlb_pool_find_slots'
>> kernel/dma/phytium/pswiotlb.c:1153: warning: Function parameter or member 'nid' not described in 'pswiotlb_find_slots'
>> kernel/dma/phytium/pswiotlb.c:1523: warning: Function parameter or member 'dev' not described in 'is_pswiotlb_allocated'
>> kernel/dma/phytium/pswiotlb.c:1542: warning: Function parameter or member 'dev' not described in 'default_pswiotlb_base'
>> kernel/dma/phytium/pswiotlb.c:1556: warning: Function parameter or member 'dev' not described in 'default_pswiotlb_limit'
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for DEBUG_FEATURE_BYPASS
Depends on [n]: (FAST_SYSCALL [=y] || FAST_IRQ [=y]) && !LOCKDEP [=y]
Selected by [y]:
- FAST_SYSCALL [=y]
- FAST_IRQ [=y] && ARM_GIC_V3 [=y]
WARNING: unmet direct dependencies detected for SECURITY_FEATURE_BYPASS
Depends on [n]: !ARM64_MTE [=y] && !KASAN_HW_TAGS [=n] && (FAST_SYSCALL [=y] || FAST_IRQ [=y])
Selected by [y]:
- FAST_SYSCALL [=y]
- FAST_IRQ [=y] && ARM_GIC_V3 [=y]
vim +/cpuid +1159 kernel/dma/phytium/pswiotlb.c
81a243170f720e Jiakun Shuai 2025-07-07 985
81a243170f720e Jiakun Shuai 2025-07-07 986 /**
81a243170f720e Jiakun Shuai 2025-07-07 987 * pswiotlb_area_find_slots() - search for slots in one Phytium IO TLB memory area
81a243170f720e Jiakun Shuai 2025-07-07 988 * @dev: Device which maps the buffer.
81a243170f720e Jiakun Shuai 2025-07-07 989 * @pool: Memory pool to be searched.
81a243170f720e Jiakun Shuai 2025-07-07 990 * @area_index: Index of the Phytium IO TLB memory area to be searched.
81a243170f720e Jiakun Shuai 2025-07-07 991 * @orig_addr: Original (non-bounced) Phytium IO buffer address.
81a243170f720e Jiakun Shuai 2025-07-07 992 * @alloc_size: Total requested size of the bounce buffer,
81a243170f720e Jiakun Shuai 2025-07-07 993 * including initial alignment padding.
81a243170f720e Jiakun Shuai 2025-07-07 994 * @alloc_align_mask: Required alignment of the allocated buffer.
81a243170f720e Jiakun Shuai 2025-07-07 995 *
81a243170f720e Jiakun Shuai 2025-07-07 996 * Find a suitable sequence of Phytium IO TLB entries for the request and allocate
81a243170f720e Jiakun Shuai 2025-07-07 997 * a buffer from the given Phytium IO TLB memory area.
81a243170f720e Jiakun Shuai 2025-07-07 998 * This function takes care of locking.
81a243170f720e Jiakun Shuai 2025-07-07 999 *
81a243170f720e Jiakun Shuai 2025-07-07 1000 * Return: Index of the first allocated slot, or -1 on error.
81a243170f720e Jiakun Shuai 2025-07-07 1001 */
81a243170f720e Jiakun Shuai 2025-07-07 1002 static int pswiotlb_area_find_slots(struct device *dev, int nid, struct p_io_tlb_pool *pool,
81a243170f720e Jiakun Shuai 2025-07-07 1003 int area_index, phys_addr_t orig_addr, size_t alloc_size,
81a243170f720e Jiakun Shuai 2025-07-07 1004 unsigned int alloc_align_mask)
81a243170f720e Jiakun Shuai 2025-07-07 @1005 {
81a243170f720e Jiakun Shuai 2025-07-07 1006 struct p_io_tlb_area *area = pool->areas + area_index;
81a243170f720e Jiakun Shuai 2025-07-07 1007 unsigned long boundary_mask = dma_get_seg_boundary(dev);
81a243170f720e Jiakun Shuai 2025-07-07 1008 dma_addr_t tbl_dma_addr =
81a243170f720e Jiakun Shuai 2025-07-07 1009 phys_to_dma_unencrypted(dev, pool->start) & boundary_mask;
81a243170f720e Jiakun Shuai 2025-07-07 1010 unsigned long max_slots = get_max_slots(boundary_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1011 unsigned int iotlb_align_mask =
81a243170f720e Jiakun Shuai 2025-07-07 1012 dma_get_min_align_mask(dev) | alloc_align_mask;
81a243170f720e Jiakun Shuai 2025-07-07 1013 unsigned int nslots = nr_slots(alloc_size), stride;
81a243170f720e Jiakun Shuai 2025-07-07 1014 unsigned int offset = pswiotlb_align_offset(dev, orig_addr);
81a243170f720e Jiakun Shuai 2025-07-07 1015 unsigned int index, slots_checked, count = 0, i;
81a243170f720e Jiakun Shuai 2025-07-07 1016 unsigned long flags;
81a243170f720e Jiakun Shuai 2025-07-07 1017 unsigned int slot_base;
81a243170f720e Jiakun Shuai 2025-07-07 1018 unsigned int slot_index;
81a243170f720e Jiakun Shuai 2025-07-07 1019
81a243170f720e Jiakun Shuai 2025-07-07 1020 WARN_ON(!nslots);
81a243170f720e Jiakun Shuai 2025-07-07 1021 WARN_ON(area_index >= pool->nareas);
81a243170f720e Jiakun Shuai 2025-07-07 1022
81a243170f720e Jiakun Shuai 2025-07-07 1023 /*
81a243170f720e Jiakun Shuai 2025-07-07 1024 * For allocations of PAGE_SIZE or larger only look for page aligned
81a243170f720e Jiakun Shuai 2025-07-07 1025 * allocations.
81a243170f720e Jiakun Shuai 2025-07-07 1026 */
81a243170f720e Jiakun Shuai 2025-07-07 1027 if (alloc_size >= PAGE_SIZE)
81a243170f720e Jiakun Shuai 2025-07-07 1028 iotlb_align_mask |= ~PAGE_MASK;
81a243170f720e Jiakun Shuai 2025-07-07 1029 iotlb_align_mask &= ~(P_IO_TLB_SIZE - 1);
81a243170f720e Jiakun Shuai 2025-07-07 1030
81a243170f720e Jiakun Shuai 2025-07-07 1031 /*
81a243170f720e Jiakun Shuai 2025-07-07 1032 * For mappings with an alignment requirement don't bother looping to
81a243170f720e Jiakun Shuai 2025-07-07 1033 * unaligned slots once we found an aligned one.
81a243170f720e Jiakun Shuai 2025-07-07 1034 */
81a243170f720e Jiakun Shuai 2025-07-07 1035 stride = (iotlb_align_mask >> P_IO_TLB_SHIFT) + 1;
81a243170f720e Jiakun Shuai 2025-07-07 1036
81a243170f720e Jiakun Shuai 2025-07-07 1037 if (spin_trylock_irqsave(&area->lock, flags)) {
81a243170f720e Jiakun Shuai 2025-07-07 1038 if (unlikely(nslots > pool->area_nslabs - area->used))
81a243170f720e Jiakun Shuai 2025-07-07 1039 goto not_found;
81a243170f720e Jiakun Shuai 2025-07-07 1040
81a243170f720e Jiakun Shuai 2025-07-07 1041 slot_base = area_index * pool->area_nslabs;
81a243170f720e Jiakun Shuai 2025-07-07 1042 index = area->index;
81a243170f720e Jiakun Shuai 2025-07-07 1043
81a243170f720e Jiakun Shuai 2025-07-07 1044 for (slots_checked = 0; slots_checked < pool->area_nslabs;) {
81a243170f720e Jiakun Shuai 2025-07-07 1045 slot_index = slot_base + index;
81a243170f720e Jiakun Shuai 2025-07-07 1046
81a243170f720e Jiakun Shuai 2025-07-07 1047 if (orig_addr &&
81a243170f720e Jiakun Shuai 2025-07-07 1048 (slot_addr(tbl_dma_addr, slot_index) &
81a243170f720e Jiakun Shuai 2025-07-07 1049 iotlb_align_mask) != (orig_addr & iotlb_align_mask)) {
81a243170f720e Jiakun Shuai 2025-07-07 1050 index = wrap_area_index(pool, index + 1);
81a243170f720e Jiakun Shuai 2025-07-07 1051 slots_checked++;
81a243170f720e Jiakun Shuai 2025-07-07 1052 continue;
81a243170f720e Jiakun Shuai 2025-07-07 1053 }
81a243170f720e Jiakun Shuai 2025-07-07 1054
81a243170f720e Jiakun Shuai 2025-07-07 1055 if (!iommu_is_span_boundary(slot_index, nslots,
81a243170f720e Jiakun Shuai 2025-07-07 1056 nr_slots(tbl_dma_addr),
81a243170f720e Jiakun Shuai 2025-07-07 1057 max_slots)) {
81a243170f720e Jiakun Shuai 2025-07-07 1058 if (pool->slots[slot_index].list >= nslots)
81a243170f720e Jiakun Shuai 2025-07-07 1059 goto found;
81a243170f720e Jiakun Shuai 2025-07-07 1060 }
81a243170f720e Jiakun Shuai 2025-07-07 1061 index = wrap_area_index(pool, index + stride);
81a243170f720e Jiakun Shuai 2025-07-07 1062 slots_checked += stride;
81a243170f720e Jiakun Shuai 2025-07-07 1063 }
81a243170f720e Jiakun Shuai 2025-07-07 1064 } else {
81a243170f720e Jiakun Shuai 2025-07-07 1065 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1066 }
81a243170f720e Jiakun Shuai 2025-07-07 1067
81a243170f720e Jiakun Shuai 2025-07-07 1068 not_found:
81a243170f720e Jiakun Shuai 2025-07-07 1069 spin_unlock_irqrestore(&area->lock, flags);
81a243170f720e Jiakun Shuai 2025-07-07 1070 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1071
81a243170f720e Jiakun Shuai 2025-07-07 1072 found:
81a243170f720e Jiakun Shuai 2025-07-07 1073 /*
81a243170f720e Jiakun Shuai 2025-07-07 1074 * If we find a slot that indicates we have 'nslots' number of
81a243170f720e Jiakun Shuai 2025-07-07 1075 * contiguous buffers, we allocate the buffers from that slot onwards
81a243170f720e Jiakun Shuai 2025-07-07 1076 * and set the list of free entries to '0' indicating unavailable.
81a243170f720e Jiakun Shuai 2025-07-07 1077 */
81a243170f720e Jiakun Shuai 2025-07-07 1078 for (i = slot_index; i < slot_index + nslots; i++) {
81a243170f720e Jiakun Shuai 2025-07-07 1079 pool->slots[i].list = 0;
81a243170f720e Jiakun Shuai 2025-07-07 1080 pool->slots[i].alloc_size = alloc_size - (offset +
81a243170f720e Jiakun Shuai 2025-07-07 1081 ((i - slot_index) << P_IO_TLB_SHIFT));
81a243170f720e Jiakun Shuai 2025-07-07 1082 }
81a243170f720e Jiakun Shuai 2025-07-07 1083 for (i = slot_index - 1;
81a243170f720e Jiakun Shuai 2025-07-07 1084 io_tlb_offset(i) != P_IO_TLB_SEGSIZE - 1 &&
81a243170f720e Jiakun Shuai 2025-07-07 1085 pool->slots[i].list; i--)
81a243170f720e Jiakun Shuai 2025-07-07 1086 pool->slots[i].list = ++count;
81a243170f720e Jiakun Shuai 2025-07-07 1087
81a243170f720e Jiakun Shuai 2025-07-07 1088 /*
81a243170f720e Jiakun Shuai 2025-07-07 1089 * Update the indices to avoid searching in the next round.
81a243170f720e Jiakun Shuai 2025-07-07 1090 */
81a243170f720e Jiakun Shuai 2025-07-07 1091 area->index = wrap_area_index(pool, index + nslots);
81a243170f720e Jiakun Shuai 2025-07-07 1092 area->used += nslots;
81a243170f720e Jiakun Shuai 2025-07-07 1093 spin_unlock_irqrestore(&area->lock, flags);
81a243170f720e Jiakun Shuai 2025-07-07 1094
81a243170f720e Jiakun Shuai 2025-07-07 1095 return slot_index;
81a243170f720e Jiakun Shuai 2025-07-07 1096 }
81a243170f720e Jiakun Shuai 2025-07-07 1097
81a243170f720e Jiakun Shuai 2025-07-07 1098 /**
81a243170f720e Jiakun Shuai 2025-07-07 1099 * pswiotlb_pool_find_slots() - search for slots in one memory pool
81a243170f720e Jiakun Shuai 2025-07-07 1100 * @dev: Device which maps the buffer.
81a243170f720e Jiakun Shuai 2025-07-07 1101 * @pool: Memory pool to be searched.
81a243170f720e Jiakun Shuai 2025-07-07 1102 * @orig_addr: Original (non-bounced)Phytium IO buffer address.
81a243170f720e Jiakun Shuai 2025-07-07 1103 * @alloc_size: Total requested size of the bounce buffer,
81a243170f720e Jiakun Shuai 2025-07-07 1104 * including initial alignment padding.
81a243170f720e Jiakun Shuai 2025-07-07 1105 * @alloc_align_mask: Required alignment of the allocated buffer.
81a243170f720e Jiakun Shuai 2025-07-07 1106 *
81a243170f720e Jiakun Shuai 2025-07-07 1107 * Search through one memory pool to find a sequence of slots that match the
81a243170f720e Jiakun Shuai 2025-07-07 1108 * allocation constraints.
81a243170f720e Jiakun Shuai 2025-07-07 1109 *
81a243170f720e Jiakun Shuai 2025-07-07 1110 * Return: Index of the first allocated slot, or -1 on error.
81a243170f720e Jiakun Shuai 2025-07-07 1111 */
81a243170f720e Jiakun Shuai 2025-07-07 1112 static int pswiotlb_pool_find_slots(struct device *dev, int nid, struct p_io_tlb_pool *pool,
81a243170f720e Jiakun Shuai 2025-07-07 1113 phys_addr_t orig_addr, size_t alloc_size,
81a243170f720e Jiakun Shuai 2025-07-07 1114 unsigned int alloc_align_mask)
81a243170f720e Jiakun Shuai 2025-07-07 @1115 {
81a243170f720e Jiakun Shuai 2025-07-07 1116 int start = raw_smp_processor_id() & (pool->nareas - 1);
81a243170f720e Jiakun Shuai 2025-07-07 1117 int i = start, index;
81a243170f720e Jiakun Shuai 2025-07-07 1118
81a243170f720e Jiakun Shuai 2025-07-07 1119 do {
81a243170f720e Jiakun Shuai 2025-07-07 1120 index = pswiotlb_area_find_slots(dev, nid, pool, i, orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1121 alloc_size, alloc_align_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1122 if (index >= 0) {
81a243170f720e Jiakun Shuai 2025-07-07 1123 if ((pool != &p_io_tlb_default_mem[nid].defpool) &&
81a243170f720e Jiakun Shuai 2025-07-07 1124 !pool->transient) {
81a243170f720e Jiakun Shuai 2025-07-07 1125 bitmap_set(pool->busy_record, i, 1);
81a243170f720e Jiakun Shuai 2025-07-07 1126 }
81a243170f720e Jiakun Shuai 2025-07-07 1127 return index;
81a243170f720e Jiakun Shuai 2025-07-07 1128 }
81a243170f720e Jiakun Shuai 2025-07-07 1129 if (++i >= pool->nareas)
81a243170f720e Jiakun Shuai 2025-07-07 1130 i = 0;
81a243170f720e Jiakun Shuai 2025-07-07 1131 } while (i != start);
81a243170f720e Jiakun Shuai 2025-07-07 1132
81a243170f720e Jiakun Shuai 2025-07-07 1133 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1134 }
81a243170f720e Jiakun Shuai 2025-07-07 1135
81a243170f720e Jiakun Shuai 2025-07-07 1136 /**
81a243170f720e Jiakun Shuai 2025-07-07 1137 * pswiotlb_find_slots() - search for slots in the whole pswiotlb
81a243170f720e Jiakun Shuai 2025-07-07 1138 * @dev: Device which maps the buffer.
81a243170f720e Jiakun Shuai 2025-07-07 1139 * @orig_addr: Original (non-bounced) Phytium IO buffer address.
81a243170f720e Jiakun Shuai 2025-07-07 1140 * @alloc_size: Total requested size of the bounce buffer,
81a243170f720e Jiakun Shuai 2025-07-07 1141 * including initial alignment padding.
81a243170f720e Jiakun Shuai 2025-07-07 1142 * @alloc_align_mask: Required alignment of the allocated buffer.
81a243170f720e Jiakun Shuai 2025-07-07 1143 * @retpool: Used memory pool, updated on return.
81a243170f720e Jiakun Shuai 2025-07-07 1144 *
81a243170f720e Jiakun Shuai 2025-07-07 1145 * Search through the whole Phytium software IO TLB to find a sequence of slots that
81a243170f720e Jiakun Shuai 2025-07-07 1146 * match the allocation constraints.
81a243170f720e Jiakun Shuai 2025-07-07 1147 *
81a243170f720e Jiakun Shuai 2025-07-07 1148 * Return: Index of the first allocated slot, or -1 on error.
81a243170f720e Jiakun Shuai 2025-07-07 1149 */
81a243170f720e Jiakun Shuai 2025-07-07 1150 static int pswiotlb_find_slots(struct device *dev, int nid, phys_addr_t orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1151 size_t alloc_size, unsigned int alloc_align_mask,
81a243170f720e Jiakun Shuai 2025-07-07 1152 struct p_io_tlb_pool **retpool)
81a243170f720e Jiakun Shuai 2025-07-07 @1153 {
81a243170f720e Jiakun Shuai 2025-07-07 1154 struct p_io_tlb_mem *mem = &dev->dma_p_io_tlb_mem[nid];
81a243170f720e Jiakun Shuai 2025-07-07 1155 struct p_io_tlb_pool *pool;
81a243170f720e Jiakun Shuai 2025-07-07 1156 int index;
81a243170f720e Jiakun Shuai 2025-07-07 1157 int try_pool_idx;
81a243170f720e Jiakun Shuai 2025-07-07 1158 int i;
81a243170f720e Jiakun Shuai 2025-07-07 @1159 int cpuid;
81a243170f720e Jiakun Shuai 2025-07-07 1160 int current_ratio;
81a243170f720e Jiakun Shuai 2025-07-07 1161 unsigned long pswiotlb_mem;
81a243170f720e Jiakun Shuai 2025-07-07 1162 unsigned long nslabs_per_pool = dynamic_inc_thr_npslabs;
81a243170f720e Jiakun Shuai 2025-07-07 1163
81a243170f720e Jiakun Shuai 2025-07-07 1164 cpuid = raw_smp_processor_id();
81a243170f720e Jiakun Shuai 2025-07-07 1165
81a243170f720e Jiakun Shuai 2025-07-07 1166 rcu_read_lock();
81a243170f720e Jiakun Shuai 2025-07-07 1167 #ifndef CONFIG_ARM64_4K_PAGES
81a243170f720e Jiakun Shuai 2025-07-07 1168 for (i = 0; i < 15; i++) {
81a243170f720e Jiakun Shuai 2025-07-07 1169 if (i == 0) {
81a243170f720e Jiakun Shuai 2025-07-07 1170 pool = mem->pool_addr[0];
81a243170f720e Jiakun Shuai 2025-07-07 1171 index = pswiotlb_pool_find_slots(dev, nid, pool, orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1172 alloc_size, alloc_align_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1173 } else if (i == 1 && mem->capacity > (cpuid + 1)) {
81a243170f720e Jiakun Shuai 2025-07-07 1174 pool = mem->pool_addr[cpuid + 1];
81a243170f720e Jiakun Shuai 2025-07-07 1175 index = pswiotlb_pool_find_slots(dev, nid, pool, orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1176 alloc_size, alloc_align_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1177 } else {
81a243170f720e Jiakun Shuai 2025-07-07 1178 try_pool_idx = get_random_u32() % mem->capacity;
81a243170f720e Jiakun Shuai 2025-07-07 1179 pool = mem->pool_addr[try_pool_idx];
81a243170f720e Jiakun Shuai 2025-07-07 1180 index = pswiotlb_pool_find_slots(dev, nid, pool, orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1181 alloc_size, alloc_align_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1182 }
81a243170f720e Jiakun Shuai 2025-07-07 1183
81a243170f720e Jiakun Shuai 2025-07-07 1184 if (index >= 0) {
81a243170f720e Jiakun Shuai 2025-07-07 1185 rcu_read_unlock();
81a243170f720e Jiakun Shuai 2025-07-07 1186 goto found;
81a243170f720e Jiakun Shuai 2025-07-07 1187 }
81a243170f720e Jiakun Shuai 2025-07-07 1188 }
81a243170f720e Jiakun Shuai 2025-07-07 1189 #else
81a243170f720e Jiakun Shuai 2025-07-07 1190 for (i = 0; i < 15; i++) {
81a243170f720e Jiakun Shuai 2025-07-07 1191 try_pool_idx = get_random_u32() % mem->capacity;
81a243170f720e Jiakun Shuai 2025-07-07 1192 pool = mem->pool_addr[try_pool_idx];
81a243170f720e Jiakun Shuai 2025-07-07 1193 index = pswiotlb_pool_find_slots(dev, nid, pool, orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1194 alloc_size, alloc_align_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1195
81a243170f720e Jiakun Shuai 2025-07-07 1196 if (index >= 0) {
81a243170f720e Jiakun Shuai 2025-07-07 1197 rcu_read_unlock();
81a243170f720e Jiakun Shuai 2025-07-07 1198 goto found;
81a243170f720e Jiakun Shuai 2025-07-07 1199 }
81a243170f720e Jiakun Shuai 2025-07-07 1200 }
81a243170f720e Jiakun Shuai 2025-07-07 1201 #endif
81a243170f720e Jiakun Shuai 2025-07-07 1202 rcu_read_unlock();
81a243170f720e Jiakun Shuai 2025-07-07 1203 if (nslabs_per_pool > SLABS_PER_PAGE << MAX_ORDER)
81a243170f720e Jiakun Shuai 2025-07-07 1204 nslabs_per_pool = SLABS_PER_PAGE << MAX_ORDER;
81a243170f720e Jiakun Shuai 2025-07-07 1205
81a243170f720e Jiakun Shuai 2025-07-07 1206 nslabs_per_pool = ALIGN(nslabs_per_pool >> 1, P_IO_TLB_SEGSIZE);
81a243170f720e Jiakun Shuai 2025-07-07 1207 pswiotlb_mem = P_IO_TLB_DEFAULT_SIZE +
81a243170f720e Jiakun Shuai 2025-07-07 1208 (nslabs_per_pool << P_IO_TLB_SHIFT) * (mem->whole_size - 1);
81a243170f720e Jiakun Shuai 2025-07-07 1209 current_ratio = (pswiotlb_mem * 100 + mem->node_total_mem / 2) / mem->node_total_mem;
81a243170f720e Jiakun Shuai 2025-07-07 1210 if (current_ratio >= P_IO_TLB_EXT_WATERMARK) {
81a243170f720e Jiakun Shuai 2025-07-07 1211 dev_warn_once(dev, "Total pswiotlb (%ld MB) exceeds the watermark (%d%%)\n"
81a243170f720e Jiakun Shuai 2025-07-07 1212 "of memory (%ld MB) in node %d, pswiotlb expansion is prohibited.\n",
81a243170f720e Jiakun Shuai 2025-07-07 1213 pswiotlb_mem >> 20, P_IO_TLB_EXT_WATERMARK,
81a243170f720e Jiakun Shuai 2025-07-07 1214 mem->node_total_mem >> 20, nid);
81a243170f720e Jiakun Shuai 2025-07-07 1215 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1216 }
81a243170f720e Jiakun Shuai 2025-07-07 1217
81a243170f720e Jiakun Shuai 2025-07-07 1218 if (!mem->can_grow)
81a243170f720e Jiakun Shuai 2025-07-07 1219 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1220
81a243170f720e Jiakun Shuai 2025-07-07 1221 pool = pswiotlb_formal_alloc(dev, mem);
81a243170f720e Jiakun Shuai 2025-07-07 1222 if (!pool)
81a243170f720e Jiakun Shuai 2025-07-07 1223 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1224
81a243170f720e Jiakun Shuai 2025-07-07 1225 /* retry */
81a243170f720e Jiakun Shuai 2025-07-07 1226 rcu_read_lock();
81a243170f720e Jiakun Shuai 2025-07-07 1227 index = pswiotlb_pool_find_slots(dev, nid, pool, orig_addr,
81a243170f720e Jiakun Shuai 2025-07-07 1228 alloc_size, alloc_align_mask);
81a243170f720e Jiakun Shuai 2025-07-07 1229 rcu_read_unlock();
81a243170f720e Jiakun Shuai 2025-07-07 1230
81a243170f720e Jiakun Shuai 2025-07-07 1231 if (index < 0) {
81a243170f720e Jiakun Shuai 2025-07-07 1232 pswiotlb_dyn_free(&pool->rcu);
81a243170f720e Jiakun Shuai 2025-07-07 1233 return -1;
81a243170f720e Jiakun Shuai 2025-07-07 1234 }
81a243170f720e Jiakun Shuai 2025-07-07 1235
81a243170f720e Jiakun Shuai 2025-07-07 1236 found:
81a243170f720e Jiakun Shuai 2025-07-07 1237 WRITE_ONCE(dev->dma_uses_p_io_tlb, true);
81a243170f720e Jiakun Shuai 2025-07-07 1238
81a243170f720e Jiakun Shuai 2025-07-07 1239 /*
81a243170f720e Jiakun Shuai 2025-07-07 1240 * The general barrier orders reads and writes against a presumed store
81a243170f720e Jiakun Shuai 2025-07-07 1241 * of the PSWIOTLB buffer address by a device driver (to a driver private
81a243170f720e Jiakun Shuai 2025-07-07 1242 * data structure). It serves two purposes.
81a243170f720e Jiakun Shuai 2025-07-07 1243 *
81a243170f720e Jiakun Shuai 2025-07-07 1244 * First, the store to dev->dma_uses_p_io_tlb must be ordered before the
81a243170f720e Jiakun Shuai 2025-07-07 1245 * presumed store. This guarantees that the returned buffer address
81a243170f720e Jiakun Shuai 2025-07-07 1246 * cannot be passed to another CPU before updating dev->dma_uses_p_io_tlb.
81a243170f720e Jiakun Shuai 2025-07-07 1247 *
81a243170f720e Jiakun Shuai 2025-07-07 1248 * Second, the load from mem->pools must be ordered before the same
81a243170f720e Jiakun Shuai 2025-07-07 1249 * presumed store. This guarantees that the returned buffer address
81a243170f720e Jiakun Shuai 2025-07-07 1250 * cannot be observed by another CPU before an update of the RCU list
81a243170f720e Jiakun Shuai 2025-07-07 1251 * that was made by pswiotlb_dyn_alloc() on a third CPU (cf. multicopy
81a243170f720e Jiakun Shuai 2025-07-07 1252 * atomicity).
81a243170f720e Jiakun Shuai 2025-07-07 1253 *
81a243170f720e Jiakun Shuai 2025-07-07 1254 * See also the comment in is_pswiotlb_buffer().
81a243170f720e Jiakun Shuai 2025-07-07 1255 */
81a243170f720e Jiakun Shuai 2025-07-07 1256 smp_mb();
81a243170f720e Jiakun Shuai 2025-07-07 1257
81a243170f720e Jiakun Shuai 2025-07-07 1258 *retpool = pool;
81a243170f720e Jiakun Shuai 2025-07-07 1259 return index;
81a243170f720e Jiakun Shuai 2025-07-07 1260 }
81a243170f720e Jiakun Shuai 2025-07-07 1261 #ifdef CONFIG_DEBUG_FS
81a243170f720e Jiakun Shuai 2025-07-07 1262
:::::: The code at line 1159 was first introduced by commit
:::::: 81a243170f720e9b8772c7b0a1dfb2922264e0c6 dma: phytium: Add PSWIOTLB mechanism to improve DMA performance
:::::: TO: Jiakun Shuai <shuaijiakun1288(a)phytium.com.cn>
:::::: CC: Jiakun Shuai <shuaijiakun1288(a)phytium.com.cn>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] arch/arm64/kernel/vdso/gettimeofday.c:268:13: warning: no previous prototype for '__kernel_clock_gettime'
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Andrew,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: f43f336031282e8ea7e5f7f887c5a6ff7b9c99b0 [1942/1942] arm64:vdso: Rewrite gettimeofday into C.
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20251214/202512140916.VwvjFYEj-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140916.VwvjFYEj-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140916.VwvjFYEj-lkp@intel.com/
Note: functions only called from assembly code should be annotated with the asmlinkage attribute
All warnings (new ones prefixed by >>):
>> arch/arm64/kernel/vdso/gettimeofday.c:268:13: warning: no previous prototype for '__kernel_clock_gettime' [-Wmissing-prototypes]
268 | notrace int __kernel_clock_gettime(clockid_t clock, struct timespec *ts)
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/vdso/gettimeofday.c:302:13: warning: no previous prototype for '__kernel_gettimeofday' [-Wmissing-prototypes]
302 | notrace int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz)
| ^~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kernel/vdso/gettimeofday.c:325:5: warning: no previous prototype for '__kernel_clock_getres' [-Wmissing-prototypes]
325 | int __kernel_clock_getres(clockid_t clock_id, struct timespec *res)
| ^~~~~~~~~~~~~~~~~~~~~
--
>> arch/arm64/kernel/vdso/gettimeofday.c:268:13: warning: no previous prototype for '__kernel_clock_gettime' [-Wmissing-prototypes]
268 | notrace int __kernel_clock_gettime(clockid_t clock, struct timespec *ts)
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/vdso/gettimeofday.c:302:13: warning: no previous prototype for '__kernel_gettimeofday' [-Wmissing-prototypes]
302 | notrace int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz)
| ^~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kernel/vdso/gettimeofday.c:325:5: warning: no previous prototype for '__kernel_clock_getres' [-Wmissing-prototypes]
325 | int __kernel_clock_getres(clockid_t clock_id, struct timespec *res)
| ^~~~~~~~~~~~~~~~~~~~~
vim +/__kernel_clock_gettime +268 arch/arm64/kernel/vdso/gettimeofday.c
267
> 268 notrace int __kernel_clock_gettime(clockid_t clock, struct timespec *ts)
269 {
270 const struct vdso_data *vd = &_vdso_data;
271
272 switch (clock) {
273 case CLOCK_REALTIME:
274 if (do_realtime(vd, ts))
275 goto fallback;
276 break;
277 case CLOCK_MONOTONIC:
278 if (do_monotonic(vd, ts))
279 goto fallback;
280 break;
281 case CLOCK_MONOTONIC_RAW:
282 if (do_monotonic_raw(vd, ts))
283 goto fallback;
284 break;
285 case CLOCK_REALTIME_COARSE:
286 do_realtime_coarse(vd, ts);
287 break;
288 case CLOCK_MONOTONIC_COARSE:
289 do_monotonic_coarse(vd, ts);
290 break;
291 default:
292 goto fallback;
293 }
294
295 return 0;
296 fallback:
297 return clock_gettime_fallback(clock, ts);
298 }
299
300
301
302 notrace int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz)
303 {
304 const struct vdso_data *vd = &_vdso_data;
305
306 if (likely(tv != NULL)) {
307 struct timespec ts;
308
309 if (do_realtime(vd, &ts))
310 return gettimeofday_fallback(tv, tz);
311
312 tv->tv_sec = ts.tv_sec;
313 tv->tv_usec = ts.tv_nsec / 1000;
314 }
315
316 if (unlikely(tz != NULL)) {
317 tz->tz_minuteswest = vd->tz_minuteswest;
318 tz->tz_dsttime = vd->tz_dsttime;
319 }
320
321 return 0;
322 }
323
324
> 325 int __kernel_clock_getres(clockid_t clock_id, struct timespec *res)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/iommu/arm-smmu-v3-context.c:591:5: warning: no previous prototype for 'arm_smmu_get_cd_mpam'
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Xingang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: 2b7032bc021bef1eeca51dac8213fd3abce61dc4 [1942/1942] iommu/arm-smmu-v3: Add support to get SMMU mpam configuration
config: arm64-randconfig-002-20251213 (https://download.01.org/0day-ci/archive/20251214/202512140917.x1FlS27Y-lkp@…)
compiler: aarch64-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140917.x1FlS27Y-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140917.x1FlS27Y-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/iommu/arm-smmu-v3-context.c:569:5: warning: no previous prototype for 'arm_smmu_set_cd_mpam' [-Wmissing-prototypes]
569 | int arm_smmu_set_cd_mpam(struct iommu_pasid_table_ops *ops,
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/arm-smmu-v3-context.c:591:5: warning: no previous prototype for 'arm_smmu_get_cd_mpam' [-Wmissing-prototypes]
591 | int arm_smmu_get_cd_mpam(struct iommu_pasid_table_ops *ops,
| ^~~~~~~~~~~~~~~~~~~~
--
drivers/iommu/arm-smmu-v3.c:4296:5: warning: no previous prototype for 'arm_smmu_set_dev_mpam' [-Wmissing-prototypes]
4296 | int arm_smmu_set_dev_mpam(struct device *dev, int ssid, int partid, int pmg,
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/arm-smmu-v3.c:4338:5: warning: no previous prototype for 'arm_smmu_get_dev_mpam' [-Wmissing-prototypes]
4338 | int arm_smmu_get_dev_mpam(struct device *dev, int ssid, int *partid, int *pmg,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/iommu/arm-smmu-v3.c:4298: warning: Function parameter or member 'dev' not described in 'arm_smmu_set_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4298: warning: Function parameter or member 'ssid' not described in 'arm_smmu_set_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4298: warning: Function parameter or member 'partid' not described in 'arm_smmu_set_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4298: warning: Function parameter or member 'pmg' not described in 'arm_smmu_set_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4298: warning: Function parameter or member 's1mpam' not described in 'arm_smmu_set_dev_mpam'
>> drivers/iommu/arm-smmu-v3.c:4340: warning: Function parameter or member 'ssid' not described in 'arm_smmu_get_dev_mpam'
>> drivers/iommu/arm-smmu-v3.c:4340: warning: Function parameter or member 'partid' not described in 'arm_smmu_get_dev_mpam'
>> drivers/iommu/arm-smmu-v3.c:4340: warning: Function parameter or member 'pmg' not described in 'arm_smmu_get_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4340: warning: Function parameter or member 's1mpam' not described in 'arm_smmu_get_dev_mpam'
vim +/arm_smmu_get_cd_mpam +591 drivers/iommu/arm-smmu-v3-context.c
590
> 591 int arm_smmu_get_cd_mpam(struct iommu_pasid_table_ops *ops,
592 int ssid, int *partid, int *pmg)
593 {
594 struct arm_smmu_cd_tables *tbl = pasid_ops_to_tables(ops);
595 u64 val;
596 __le64 *cdptr = arm_smmu_get_cd_ptr(tbl, ssid);
597
598 if (!cdptr)
599 return -ENOMEM;
600
601 val = le64_to_cpu(cdptr[5]);
602 *partid = FIELD_GET(CTXDESC_CD_5_PARTID_MASK, val);
603 *pmg = FIELD_GET(CTXDESC_CD_5_PMG_MASK, val);
604
605 return 0;
606 }
607
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1941/1941] block/genhd.c:642:5: warning: no previous prototype for 'disk_scan_partitions'
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Yu,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: cdfb5c11ad89867cd28c903369fbfebe3f36ca26 [1941/1941] block: fix kabi broken in ioctl.c
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251214/202512140221.GVjDgRQq-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140221.GVjDgRQq-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140221.GVjDgRQq-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> block/genhd.c:642:5: warning: no previous prototype for 'disk_scan_partitions' [-Wmissing-prototypes]
642 | int disk_scan_partitions(struct gendisk *disk, fmode_t mode)
| ^~~~~~~~~~~~~~~~~~~~
block/genhd.c:533: warning: Function parameter or member 'devt' not described in 'blk_invalidate_devt'
vim +/disk_scan_partitions +642 block/genhd.c
d2bf1b6723ed0e Tejun Heo 2010-12-08 641
efc73feb2901d2 Christoph Hellwig 2023-04-07 @642 int disk_scan_partitions(struct gendisk *disk, fmode_t mode)
b9484a857f600c Yu Kuai 2022-08-09 643 {
b9484a857f600c Yu Kuai 2022-08-09 644 struct block_device *bdev;
efc73feb2901d2 Christoph Hellwig 2023-04-07 645 int ret;
b9484a857f600c Yu Kuai 2022-08-09 646
efc73feb2901d2 Christoph Hellwig 2023-04-07 647 if (!disk_part_scan_enabled(disk))
efc73feb2901d2 Christoph Hellwig 2023-04-07 648 return -EINVAL;
b9484a857f600c Yu Kuai 2022-08-09 649
b9484a857f600c Yu Kuai 2022-08-09 650 bdev = bdget_disk(disk, 0);
b9484a857f600c Yu Kuai 2022-08-09 651 if (!bdev)
efc73feb2901d2 Christoph Hellwig 2023-04-07 652 return -ENOMEM;
b9484a857f600c Yu Kuai 2022-08-09 653
b9484a857f600c Yu Kuai 2022-08-09 654 bdev->bd_invalidated = 1;
efc73feb2901d2 Christoph Hellwig 2023-04-07 655
efc73feb2901d2 Christoph Hellwig 2023-04-07 656 ret = blkdev_get(bdev, mode, NULL);
efc73feb2901d2 Christoph Hellwig 2023-04-07 657 if (!ret)
efc73feb2901d2 Christoph Hellwig 2023-04-07 658 blkdev_put(bdev, mode);
efc73feb2901d2 Christoph Hellwig 2023-04-07 659
efc73feb2901d2 Christoph Hellwig 2023-04-07 660 return ret;
fbbec472351c99 Christoph Hellwig 2023-04-07 661 }
fbbec472351c99 Christoph Hellwig 2023-04-07 662
:::::: The code at line 642 was first introduced by commit
:::::: efc73feb2901d27dcd01fa859d1378aee42850aa block: merge disk_scan_partitions and blkdev_reread_part
:::::: TO: Christoph Hellwig <hch(a)lst.de>
:::::: CC: Yongqiang Liu <duanzi(a)zju.edu.cn>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3541/3541] kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: cd9eb9b4365b71652b2c2ac58293bea47c9f9302
commit: 2e1dfc02d115143587ccfee1815ad295763050f2 [3541/3541] sched: Adjust wakeup cpu range according CPU util dynamicly
config: arm64-randconfig-r113-20251213 (https://download.01.org/0day-ci/archive/20251214/202512140710.cAqdH8JK-lkp@…)
compiler: aarch64-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140710.cAqdH8JK-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140710.cAqdH8JK-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:143:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static?
kernel/sched/fair.c:144:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static?
>> kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
kernel/sched/fair.c:1256:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1256:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1256:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:3039:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu * @@
kernel/sched/fair.c:3039:13: sparse: expected struct task_struct *tsk
kernel/sched/fair.c:3039:13: sparse: got struct task_struct [noderef] __rcu *
kernel/sched/fair.c:12740:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12740:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12740:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5891:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5891:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:5891:22: sparse: struct task_struct *
kernel/sched/fair.c:7964:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7964:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:7964:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8258:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8258:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8258:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8367:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8367:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8367:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8587:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8587:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8587:22: sparse: struct task_struct *
kernel/sched/fair.c:8941:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8941:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8941:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:9934:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:9934:40: sparse: expected struct sched_domain *child
kernel/sched/fair.c:9934:40: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:10571:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:10571:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:10571:22: sparse: struct task_struct *
kernel/sched/fair.c:12012:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12012:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12012:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:11669:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:11669:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:11669:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12108:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12108:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12108:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:2985:9: sparse: sparse: context imbalance in 'task_numa_placement' - different lock contexts for basic block
kernel/sched/fair.c:7180:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7180:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7180:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7186:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7186:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7186:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7193:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7193:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7193:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7201:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7201:17: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:7201:17: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2309:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2309:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2309:9: sparse: struct task_struct *
kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2145:25: sparse: struct task_struct *
kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2145:25: sparse: struct task_struct *
vim +/sysctl_sched_util_low_pct +175 kernel/sched/fair.c
168
169 #ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
170 /*
171 * Low utilization threshold for CPU
172 *
173 * (default: 85%), units: percentage of CPU utilization)
174 */
> 175 int sysctl_sched_util_low_pct = 85;
176 #endif
177
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/iommu/arm-smmu-v3-context.c:569:5: warning: no previous prototype for 'arm_smmu_set_cd_mpam'
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Xingang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: 7c01a111ee8606b0c1986bb624808769d4236742 [1942/1942] iommu/arm-smmu-v3: Add support to configure mpam in STE/CD context
config: arm64-randconfig-002-20251213 (https://download.01.org/0day-ci/archive/20251214/202512140721.kLxdCMUB-lkp@…)
compiler: aarch64-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140721.kLxdCMUB-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140721.kLxdCMUB-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/iommu/arm-smmu-v3-context.c:569:5: warning: no previous prototype for 'arm_smmu_set_cd_mpam' [-Wmissing-prototypes]
569 | int arm_smmu_set_cd_mpam(struct iommu_pasid_table_ops *ops,
| ^~~~~~~~~~~~~~~~~~~~
--
drivers/iommu/arm-smmu-v3.c:4267:5: warning: no previous prototype for 'arm_smmu_set_dev_mpam' [-Wmissing-prototypes]
4267 | int arm_smmu_set_dev_mpam(struct device *dev, int ssid, int partid, int pmg,
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/arm-smmu-v3.c:4269: warning: Function parameter or member 'dev' not described in 'arm_smmu_set_dev_mpam'
>> drivers/iommu/arm-smmu-v3.c:4269: warning: Function parameter or member 'ssid' not described in 'arm_smmu_set_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4269: warning: Function parameter or member 'partid' not described in 'arm_smmu_set_dev_mpam'
drivers/iommu/arm-smmu-v3.c:4269: warning: Function parameter or member 'pmg' not described in 'arm_smmu_set_dev_mpam'
>> drivers/iommu/arm-smmu-v3.c:4269: warning: Function parameter or member 's1mpam' not described in 'arm_smmu_set_dev_mpam'
vim +/arm_smmu_set_cd_mpam +569 drivers/iommu/arm-smmu-v3-context.c
568
> 569 int arm_smmu_set_cd_mpam(struct iommu_pasid_table_ops *ops,
570 int ssid, int partid, int pmg)
571 {
572 struct arm_smmu_cd_tables *tbl = pasid_ops_to_tables(ops);
573 u64 val;
574 __le64 *cdptr = arm_smmu_get_cd_ptr(tbl, ssid);
575
576 if (!cdptr)
577 return -ENOMEM;
578
579 val = le64_to_cpu(cdptr[5]);
580 val &= ~CTXDESC_CD_5_PARTID_MASK;
581 val |= FIELD_PREP(CTXDESC_CD_5_PARTID_MASK, partid);
582 val &= ~CTXDESC_CD_5_PMG_MASK;
583 val |= FIELD_PREP(CTXDESC_CD_5_PMG_MASK, pmg);
584 WRITE_ONCE(cdptr[5], cpu_to_le64(val));
585
586 iommu_pasid_flush(&tbl->pasid, ssid, true);
587
588 return 0;
589 }
590
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1941/1941] kernel/cgroup/cgroup.c:2240: warning: Excess function parameter 'lock_threadgroup' description in 'cgroup_attach_lock'
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Tejun,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: 4924308a1ca9cc2f791398836a8744c22078ffbd [1941/1941] cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251213/202512132306.9jtRj6o7-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251213/202512132306.9jtRj6o7-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512132306.9jtRj6o7-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/cgroup/cgroup.c:2240: warning: Excess function parameter 'lock_threadgroup' description in 'cgroup_attach_lock'
>> kernel/cgroup/cgroup.c:2250: warning: Excess function parameter 'lock_threadgroup' description in 'cgroup_attach_unlock'
vim +2240 kernel/cgroup/cgroup.c
2215
2216 /**
2217 * cgroup_attach_lock - Lock for ->attach()
2218 * @lock_threadgroup: whether to down_write cgroup_threadgroup_rwsem
2219 *
2220 * cgroup migration sometimes needs to stabilize threadgroups against forks and
2221 * exits by write-locking cgroup_threadgroup_rwsem. However, some ->attach()
2222 * implementations (e.g. cpuset), also need to disable CPU hotplug.
2223 * Unfortunately, letting ->attach() operations acquire cpus_read_lock() can
2224 * lead to deadlocks.
2225 *
2226 * Bringing up a CPU may involve creating and destroying tasks which requires
2227 * read-locking threadgroup_rwsem, so threadgroup_rwsem nests inside
2228 * cpus_read_lock(). If we call an ->attach() which acquires the cpus lock while
2229 * write-locking threadgroup_rwsem, the locking order is reversed and we end up
2230 * waiting for an on-going CPU hotplug operation which in turn is waiting for
2231 * the threadgroup_rwsem to be released to create new tasks. For more details:
2232 *
2233 * http://lkml.kernel.org/r/20220711174629.uehfmqegcwn2lqzu@wubuntu
2234 *
2235 * Resolve the situation by always acquiring cpus_read_lock() before optionally
2236 * write-locking cgroup_threadgroup_rwsem. This allows ->attach() to assume that
2237 * CPU hotplug is disabled on entry.
2238 */
2239 static void cgroup_attach_lock(void)
> 2240 {
2241 cpus_read_lock();
2242 percpu_down_write(&cgroup_threadgroup_rwsem);
2243 }
2244
2245 /**
2246 * cgroup_attach_unlock - Undo cgroup_attach_lock()
2247 * @lock_threadgroup: whether to up_write cgroup_threadgroup_rwsem
2248 */
2249 static void cgroup_attach_unlock(void)
> 2250 {
2251 percpu_up_write(&cgroup_threadgroup_rwsem);
2252 cpus_read_unlock();
2253 }
2254
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/md/bcache/btree.h:386:14: warning: redefinition of typedef 'btree_map_keys_fn' is a C11 feature
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: b4a620ff5be6873f1669fa06c90cd15a0d569021 [1942/1942] make bch_btree_check() to be multiple threads
config: x86_64-randconfig-006-20251213 (https://download.01.org/0day-ci/archive/20251214/202512140641.mYQpHQXV-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140641.mYQpHQXV-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140641.mYQpHQXV-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:354:9: note: previous definition is here
354 | #define __SANITIZE_ADDRESS__ 1
| ^
In file included from drivers/md/bcache/super.c:12:
>> drivers/md/bcache/btree.h:386:14: warning: redefinition of typedef 'btree_map_keys_fn' is a C11 feature [-Wtypedef-redefinition]
386 | typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
| ^
drivers/md/bcache/btree.h:288:14: note: previous definition is here
288 | typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
| ^
2 warnings generated.
--
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:354:9: note: previous definition is here
354 | #define __SANITIZE_ADDRESS__ 1
| ^
In file included from drivers/md/bcache/acache.c:18:
In file included from drivers/md/bcache/request.h:4:
>> drivers/md/bcache/btree.h:386:14: warning: redefinition of typedef 'btree_map_keys_fn' is a C11 feature [-Wtypedef-redefinition]
386 | typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
| ^
drivers/md/bcache/btree.h:288:14: note: previous definition is here
288 | typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
| ^
drivers/md/bcache/acache.c:73:5: warning: no previous prototype for function 'acache_open' [-Wmissing-prototypes]
73 | int acache_open(struct inode *inode, struct file *filp)
| ^
drivers/md/bcache/acache.c:73:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
73 | int acache_open(struct inode *inode, struct file *filp)
| ^
| static
drivers/md/bcache/acache.c:91:5: warning: no previous prototype for function 'acache_release' [-Wmissing-prototypes]
91 | int acache_release(struct inode *inode, struct file *filp)
| ^
drivers/md/bcache/acache.c:91:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
91 | int acache_release(struct inode *inode, struct file *filp)
| ^
| static
drivers/md/bcache/acache.c:97:9: warning: no previous prototype for function 'read_circ_slice' [-Wmissing-prototypes]
97 | ssize_t read_circ_slice(struct acache_circ *circ, struct acache_info *buf,
| ^
drivers/md/bcache/acache.c:97:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
97 | ssize_t read_circ_slice(struct acache_circ *circ, struct acache_info *buf,
| ^
| static
drivers/md/bcache/acache.c:232:6: warning: no previous prototype for function 'init_acache_circ' [-Wmissing-prototypes]
232 | void init_acache_circ(struct acache_circ **circ, void *startaddr)
| ^
drivers/md/bcache/acache.c:232:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
232 | void init_acache_circ(struct acache_circ **circ, void *startaddr)
| ^
| static
drivers/md/bcache/acache.c:261:5: warning: no previous prototype for function 'acache_prefetch_init' [-Wmissing-prototypes]
261 | int acache_prefetch_init(struct acache_device *adev)
| ^
drivers/md/bcache/acache.c:261:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
261 | int acache_prefetch_init(struct acache_device *adev)
| ^
| static
drivers/md/bcache/acache.c:514:20: warning: no previous prototype for function 'get_cached_device_by_dev' [-Wmissing-prototypes]
514 | struct cached_dev *get_cached_device_by_dev(dev_t dev)
| ^
drivers/md/bcache/acache.c:514:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
514 | struct cached_dev *get_cached_device_by_dev(dev_t dev)
| ^
| static
drivers/md/bcache/acache.c:527:13: warning: no previous prototype for function 'get_bio_by_item' [-Wmissing-prototypes]
527 | struct bio *get_bio_by_item(struct cached_dev *dc, struct acache_info *item)
| ^
drivers/md/bcache/acache.c:527:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
527 | struct bio *get_bio_by_item(struct cached_dev *dc, struct acache_info *item)
| ^
| static
9 warnings generated.
--
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:354:9: note: previous definition is here
354 | #define __SANITIZE_ADDRESS__ 1
| ^
In file included from drivers/md/bcache/journal.c:9:
>> drivers/md/bcache/btree.h:386:14: warning: redefinition of typedef 'btree_map_keys_fn' is a C11 feature [-Wtypedef-redefinition]
386 | typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
| ^
drivers/md/bcache/btree.h:288:14: note: previous definition is here
288 | typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
| ^
drivers/md/bcache/journal.c:320:6: warning: no previous prototype for function 'is_discard_enabled' [-Wmissing-prototypes]
320 | bool is_discard_enabled(struct cache_set *s)
| ^
drivers/md/bcache/journal.c:320:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
320 | bool is_discard_enabled(struct cache_set *s)
| ^
| static
3 warnings generated.
vim +/btree_map_keys_fn +386 drivers/md/bcache/btree.h
48dad8baf92fe8 Kent Overstreet 2013-09-10 385
fc2d5988b5972b Coly Li 2018-08-11 @386 typedef int (btree_map_keys_fn)(struct btree_op *op, struct btree *b,
fc2d5988b5972b Coly Li 2018-08-11 387 struct bkey *k);
fc2d5988b5972b Coly Li 2018-08-11 388 int bch_btree_map_keys(struct btree_op *op, struct cache_set *c,
fc2d5988b5972b Coly Li 2018-08-11 389 struct bkey *from, btree_map_keys_fn *fn, int flags);
fc2d5988b5972b Coly Li 2018-08-11 390
:::::: The code at line 386 was first introduced by commit
:::::: fc2d5988b5972bced859944986fb36d902ac3698 bcache: add identifier names to arguments of function definitions
:::::: TO: Coly Li <colyli(a)suse.de>
:::::: CC: Jens Axboe <axboe(a)kernel.dk>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/gpu/drm/nouveau/nvkm/core/object.c:37:19: warning: mixing declarations and code is a C99 extension
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Dave,
First bad commit (maybe != root cause):
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 5a399b91821faeec2466751db2d714b24f8eb17c
commit: 901dbb48d8a4f60af427f1ec67ac1247ff219f39 [1942/1942] nouveau: lock the client object tree.
config: x86_64-rhel-9.4-rust (https://download.01.org/0day-ci/archive/20251214/202512140652.dui78VGp-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140652.dui78VGp-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140652.dui78VGp-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/nouveau/nvkm/core/object.c:37:19: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
37 | struct rb_node *node = client->objroot.rb_node;
| ^
1 warning generated.
vim +37 drivers/gpu/drm/nouveau/nvkm/core/object.c
9274f4a9ba7e70 drivers/gpu/drm/nouveau/core/core/object.c Ben Skeggs 2012-07-06 27
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 28 struct nvkm_object *
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 29 nvkm_object_search(struct nvkm_client *client, u64 handle,
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 30 const struct nvkm_object_func *func)
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 31 {
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 32 struct nvkm_object *object;
901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 33 unsigned long flags;
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 34
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 35 if (handle) {
901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 36 spin_lock_irqsave(&client->obj_lock, flags);
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 @37 struct rb_node *node = client->objroot.rb_node;
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 38 while (node) {
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 39 object = rb_entry(node, typeof(*object), node);
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 40 if (handle < object->object)
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 41 node = node->rb_left;
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 42 else
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 43 if (handle > object->object)
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 44 node = node->rb_right;
901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 45 else {
901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 46 spin_unlock_irqrestore(&client->obj_lock, flags);
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 47 goto done;
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 48 }
901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 49 }
901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 50 spin_unlock_irqrestore(&client->obj_lock, flags);
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 51 return ERR_PTR(-ENOENT);
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 52 } else {
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 53 object = &client->object;
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 54 }
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 55
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 56 done:
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 57 if (unlikely(func && object->func != func))
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 58 return ERR_PTR(-EINVAL);
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 59 return object;
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 60 }
110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 61
:::::: The code at line 37 was first introduced by commit
:::::: 110cccff955313c66dccd2817f62368f106d9bf2 drm/nouveau/core/object: support lookup of specific object types
:::::: TO: Ben Skeggs <bskeggs(a)redhat.com>
:::::: CC: Ben Skeggs <bskeggs(a)redhat.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3540/3540] clang: warning: no such include directory: 'drivers/infiniband/hw/hiroce3/include/mag'
by kernel test robot 14 Dec '25
by kernel test robot 14 Dec '25
14 Dec '25
Hi Shuai,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: cd9eb9b4365b71652b2c2ac58293bea47c9f9302
commit: 5bc8dbb5fdf565625b2eea4080dbd70bade992b8 [3540/3540] infiniband/hw/hiroce3: Add Huawei Intelligent Network Card RDMA Driver
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251214/202512140527.ZQJQrPyG-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251214/202512140527.ZQJQrPyG-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512140527.ZQJQrPyG-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> clang: warning: no such include directory: 'drivers/infiniband/hw/hiroce3/include/mag' [-Wmissing-include-dirs]
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:6:
In file included from drivers/net/ethernet/huawei/hinic3/hinic3_hw.h:10:
In file included from drivers/net/ethernet/huawei/hinic3/hinic3_crm.h:7:
In file included from include/linux/pci.h:1663:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_ccf_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_ccf_format.h:720:9: note: previous '#pragma pack' directive that modifies alignment is here
720 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:
drivers/infiniband/hw/hiroce3/include/rdma/roce_dif_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_verbs_mr_attr.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
15 | #include "roce_dif_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "rdma_ext_ctx_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:377:9: note: previous '#pragma pack' directive that modifies alignment is here
377 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
7 | #include "rdma_context_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:5179:9: note: previous '#pragma pack' directive that modifies alignment is here
5179 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_common.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "roce_verbs_pub.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_pub.h:223:9: note: previous '#pragma pack' directive that modifies alignment is here
223 | #pragma pack()
| ^
11 warnings generated.
--
>> clang: warning: no such include directory: 'drivers/infiniband/hw/hiroce3/include/mag' [-Wmissing-include-dirs]
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:7:
In file included from include/rdma/ib_verbs.h:15:
In file included from include/linux/ethtool.h:18:
In file included from include/linux/if_ether.h:19:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/arm64/include/asm/cacheflush.h:11:
In file included from include/linux/kgdb.h:19:
In file included from include/linux/kprobes.h:28:
In file included from include/linux/ftrace.h:13:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:13:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_ccf_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_ccf_format.h:720:9: note: previous '#pragma pack' directive that modifies alignment is here
720 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:13:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:
drivers/infiniband/hw/hiroce3/include/rdma/roce_dif_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_verbs_mr_attr.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:13:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
15 | #include "roce_dif_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:13:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "rdma_ext_ctx_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:377:9: note: previous '#pragma pack' directive that modifies alignment is here
377 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
drivers/infiniband/hw/hiroce3/cq/roce_cq.h:13:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
13 | #include "rdma_context_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:5179:9: note: previous '#pragma pack' directive that modifies alignment is here
5179 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:15:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "roce_verbs_pub.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_pub.h:223:9: note: previous '#pragma pack' directive that modifies alignment is here
223 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq.h:15:
drivers/infiniband/hw/hiroce3/roce.h:30:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
30 | #include "roce_verbs_cmd.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_pub.h:223:9: note: previous '#pragma pack' directive that modifies alignment is here
223 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_create.c:4:
drivers/infiniband/hw/hiroce3/cq/roce_cq.h:15:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
--
>> clang: warning: no such include directory: 'drivers/infiniband/hw/hiroce3/include/mag' [-Wmissing-include-dirs]
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:6:
In file included from drivers/net/ethernet/huawei/hinic3/hinic3_hw.h:10:
In file included from drivers/net/ethernet/huawei/hinic3/hinic3_crm.h:7:
In file included from include/linux/pci.h:1663:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_ccf_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_ccf_format.h:720:9: note: previous '#pragma pack' directive that modifies alignment is here
720 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:
drivers/infiniband/hw/hiroce3/include/rdma/roce_dif_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_verbs_mr_attr.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
15 | #include "roce_dif_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "rdma_ext_ctx_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:377:9: note: previous '#pragma pack' directive that modifies alignment is here
377 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
7 | #include "rdma_context_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:5179:9: note: previous '#pragma pack' directive that modifies alignment is here
5179 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:8:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "roce_verbs_pub.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_pub.h:223:9: note: previous '#pragma pack' directive that modifies alignment is here
223 | #pragma pack()
| ^
drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:63:5: warning: no previous prototype for function 'roce3_cq_hw2sw' [-Wmissing-prototypes]
63 | int roce3_cq_hw2sw(struct roce3_device *rdev, struct roce3_cq *cq)
| ^
drivers/infiniband/hw/hiroce3/cq/roce_cq_destroy.c:63:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
63 | int roce3_cq_hw2sw(struct roce3_device *rdev, struct roce3_cq *cq)
| ^
| static
12 warnings generated.
--
>> clang: warning: no such include directory: 'drivers/infiniband/hw/hiroce3/include/mag' [-Wmissing-include-dirs]
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:4:
In file included from include/net/ipv6.h:12:
In file included from include/linux/ipv6.h:100:
In file included from include/linux/tcp.h:17:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/arm64/include/asm/cacheflush.h:11:
In file included from include/linux/kgdb.h:19:
In file included from include/linux/kprobes.h:28:
In file included from include/linux/ftrace.h:13:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:26:
In file included from drivers/infiniband/hw/hiroce3/roce_event.h:20:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_ccf_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_ccf_format.h:720:9: note: previous '#pragma pack' directive that modifies alignment is here
720 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:26:
In file included from drivers/infiniband/hw/hiroce3/roce_event.h:20:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:
drivers/infiniband/hw/hiroce3/include/rdma/roce_dif_format.h:9:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
9 | #include "roce_verbs_mr_attr.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:26:
In file included from drivers/infiniband/hw/hiroce3/roce_event.h:20:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:15:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
15 | #include "roce_dif_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_mr_attr.h:328:9: note: previous '#pragma pack' directive that modifies alignment is here
328 | #pragma pack()
| ^
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:26:
In file included from drivers/infiniband/hw/hiroce3/roce_event.h:20:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
In file included from drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "rdma_ext_ctx_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_ext_ctx_format.h:377:9: note: previous '#pragma pack' directive that modifies alignment is here
377 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:26:
In file included from drivers/infiniband/hw/hiroce3/roce_event.h:20:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:7:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
7 | #include "rdma_context_format.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/rdma_context_format.h:5179:9: note: previous '#pragma pack' directive that modifies alignment is here
5179 | #pragma pack(0)
| ^
In file included from drivers/infiniband/hw/hiroce3/roce_main.c:26:
In file included from drivers/infiniband/hw/hiroce3/roce_event.h:20:
In file included from drivers/infiniband/hw/hiroce3/roce.h:30:
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_cmd.h:8:10: warning: the current #pragma pack alignment value is modified in the included file [-Wpragma-pack]
8 | #include "roce_verbs_pub.h"
| ^
drivers/infiniband/hw/hiroce3/include/rdma/roce_verbs_pub.h:223:9: note: previous '#pragma pack' directive that modifies alignment is here
223 | #pragma pack()
| ^
drivers/infiniband/hw/hiroce3/roce_main.c:1256:6: warning: no previous prototype for function 'roce3_need_proc_link_event' [-Wmissing-prototypes]
..
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0