On Tue, Aug 25, 2020 at 8:43 AM Jürgen Groß <jgr...@suse.com> wrote: > > On 25.08.20 17:22, Thomas Gleixner wrote: > > XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt > > XEN data pointer which contains XEN specific information. > > > > handler data is meant for interrupt handlers and not for storing irq chip > > specific information as some devices require handler data to store internal > > per interrupt information, e.g. pinctrl/GPIO chained interrupt handlers. > > > > This obviously creates a conflict of interests and crashes the machine > > because the XEN pointer is overwritten by the driver pointer. > > > > As the XEN data is not handler specific it should be stored in > > irqdesc::irq_data::chip_data instead. > > > > A simple sed s/irq_[sg]et_handler_data/irq_[sg]et_chip_data/ cures that. > > > > Reported-by: Roman Shaposhnik <ro...@zededa.com> > > Signed-off-by: Thomas Gleixner <t...@linutronix.de> > > Reviewed-by: Juergen Gross <jgr...@suse.com>
Tested-by: Roman Shaposhnik <ro...@zededa.com> Thank you everyone for coming up with the fix so quickly! I tested it out and it appears to be functional with and without Xen. Thanks, Roman.