[tip:x86/urgent 3/3] arch/x86//kernel/apic/vector.c:151:11: error: 'struct apic' has no member named 'vector'

From: kbuild test robot
Date: Thu Feb 22 2018 - 16:19:13 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/urgent
head: f60606c4ce402963dc552c62910ffa7080b4a628
commit: f60606c4ce402963dc552c62910ffa7080b4a628 [3/3] x86/apic/vector: Handle vector release on CPU unplug correctly
config: x86_64-randconfig-x017-201807 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
git checkout f60606c4ce402963dc552c62910ffa7080b4a628
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

arch/x86//kernel/apic/vector.c: In function 'apic_update_vector':
>> arch/x86//kernel/apic/vector.c:151:11: error: 'struct apic' has no member named 'vector'
if (!apic->vector || apicd->vector == MANAGED_IRQ_SHUTDOWN_VECTOR)
^~

vim +151 arch/x86//kernel/apic/vector.c

131
132 static void apic_update_vector(struct irq_data *irqd, unsigned int newvec,
133 unsigned int newcpu)
134 {
135 struct apic_chip_data *apicd = apic_chip_data(irqd);
136 struct irq_desc *desc = irq_data_to_desc(irqd);
137 bool managed = irqd_affinity_is_managed(irqd);
138
139 lockdep_assert_held(&vector_lock);
140
141 trace_vector_update(irqd->irq, newvec, newcpu, apicd->vector,
142 apicd->cpu);
143
144 /*
145 * If there is no vector associated or if the associated vector is
146 * the shutdown vector, which is associated to make PCI/MSI
147 * shutdown mode work, then there is nothing to release. Clear out
148 * prev_vector for this and the offlined target case.
149 */
150 apicd->prev_vector = 0;
> 151 if (!apic->vector || apicd->vector == MANAGED_IRQ_SHUTDOWN_VECTOR)
152 goto setnew;
153 /*
154 * If the target CPU of the previous vector is online, then mark
155 * the vector as move in progress and store it for cleanup when the
156 * first interrupt on the new vector arrives. If the target CPU is
157 * offline then the regular release mechanism via the cleanup
158 * vector is not possible and the vector can be immediately freed
159 * in the underlying matrix allocator.
160 */
161 if (cpu_online(apicd->cpu)) {
162 apicd->move_in_progress = true;
163 apicd->prev_vector = apicd->vector;
164 apicd->prev_cpu = apicd->cpu;
165 } else {
166 irq_matrix_free(vector_matrix, apicd->cpu, apicd->vector,
167 managed);
168 }
169
170 setnew:
171 apicd->vector = newvec;
172 apicd->cpu = newcpu;
173 BUG_ON(!IS_ERR_OR_NULL(per_cpu(vector_irq, newcpu)[newvec]));
174 per_cpu(vector_irq, newcpu)[newvec] = desc;
175 }
176

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip