On Mon, 25 Mar 2019, Zhao, Yakui wrote: > >> +/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_X86_ACRNHYPER_H > >> +#define _ASM_X86_ACRNHYPER_H > >> + > >> +#include <linux/types.h> > >> +#include <asm/io.h> > >> + > >> +#ifdef CONFIG_ACRN > >> +/* ACRN Hypervisor callback */ > >> +void acrn_hv_callback_vector(void); > > > >What declares acrn_hv_vector_handler() ? > > Acrn_hv_callback_vector is defined in arch/x86/entry/entry_64.S, which will > be used as > the parameter of alloc_intr_gate > > Acrn_hv_vector_handler is the real ISR handler, which is defined in acrn.c.
I know how that works and I was not asking where stuff is defined. I was asking where it is declared. Global functions need a declaration in a header file. > >> +void acrn_remove_intr_irq(void) > >> +{ > >> + acrn_intr_handler = NULL; > >> +} > >> +EXPORT_SYMBOL(acrn_remove_intr_irq); > > > >Where is the code which uses these exports? We are not adding exports just > >because or for consumption by out of tree modules. > > Understand it. > Is it reasonable that the above two functions are added in the driver patch > set? Yes, because then we see the context. Thanks, tglx