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.

Reply via email to