]> git.baikalelectronics.ru Git - kernel.git/commit
XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt
authorThomas Gleixner <tglx@linutronix.de>
Tue, 25 Aug 2020 15:22:58 +0000 (17:22 +0200)
committerJuergen Gross <jgross@suse.com>
Thu, 27 Aug 2020 06:32:36 +0000 (08:32 +0200)
commit4be9790a60ee2ccfa305f2bdcf842e04e5b5c4e6
treeb33303b64af0a863bc01bc5ec926c4ddc4638b40
parentfa6804df0ef657b82977ac65f51eeed72165b84d
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.

Cc: stable@vger.kernel.org
Reported-by: Roman Shaposhnik <roman@zededa.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Roman Shaposhnik <roman@zededa.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/87lfi2yckt.fsf@nanos.tec.linutronix.de
Signed-off-by: Juergen Gross <jgross@suse.com>
drivers/xen/events/events_base.c