x86/xen: Rework the xen_{cpu,irq,mmu}_opsarrays
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2090231 commit 1462eb38 Author: Peter Zijlstra <peterz@infradead.org> Date: Thu, 24 Jun 2021 11:41:22 +0200 x86/xen: Rework the xen_{cpu,irq,mmu}_opsarrays In order to allow objtool to make sense of all the various paravirt functions, it needs to either parse whole pv_ops[] tables, or observe individual assignments in the form: bf87: 48 c7 05 00 00 00 00 00 00 00 00 movq $0x0,0x0(%rip) bf92 <xen_init_spinlocks+0x5f> bf8a: R_X86_64_PC32 pv_ops+0x268 As is, xen_cpu_ops[] is at offset +0 in pv_ops[] and could thus be parsed as a 'normal' pv_ops[] table, however xen_irq_ops[] and xen_mmu_ops[] are not. Worse, both the latter two are compiled into the individual assignment for by current GCC, but that's not something one can rely on. Therefore, convert all three into full pv_ops[] tables. This has the benefit of not needing to teach objtool about the offsets and resulting in more conservative code-gen. Signed-off-by:Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by:
Juergen Gross <jgross@suse.com> Link: https://lore.kernel.org/r/20210624095149.057262522@infradead.org Signed-off-by:
Waiman Long <longman@redhat.com>
Loading
Please register or sign in to comment