Messages in this thread |  | | From | Thomas Gleixner <> | Subject | Re: [PATCH v4 02/17] x86/acrn: Introduce acrn_{setup, remove}_intr_handler() | Date | Tue, 29 Sep 2020 22:07:17 +0200 |
| |
On Tue, Sep 29 2020 at 20:01, Borislav Petkov wrote: > On Tue, Sep 22, 2020 at 07:42:56PM +0800, shuo.a.liu@intel.com wrote: >> +void acrn_setup_intr_handler(void (*handler)(void)) >> +{ >> + acrn_intr_handler = handler; >> +} >> +EXPORT_SYMBOL_GPL(acrn_setup_intr_handler); >> + >> +void acrn_remove_intr_handler(void) >> +{ >> + acrn_intr_handler = NULL; >> +} >> +EXPORT_SYMBOL_GPL(acrn_remove_intr_handler); > > I don't like this one bit. > > Also, what stops the module from doing acrn_remove_intr_handler() > while it gets a HYPERVISOR_CALLBACK_VECTOR interrupt and the handler > disappearing from under it? > > IOW, this should be an atomic notifier instead.
That does not prevent that either and notifiers suck. The pointer is fine and if something removes the handler before all of the muck is shutdown then the author can keep the pieces and mop up the remains.
Thanks,
tglx
|  |