]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
can: m_can: disable_all_interrupts, not clear active_interrupts
authorMarkus Schneider-Pargmann <msp@baylibre.com>
Mon, 5 Aug 2024 18:30:45 +0000 (20:30 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 6 Aug 2024 07:25:30 +0000 (09:25 +0200)
active_interrupts is a cache for the enabled interrupts and not the
global masking of interrupts. Do not clear this variable otherwise we
may loose the state of the interrupts.

Fixes: 07f25091ca02 ("can: m_can: Implement receive coalescing")
Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
Link: https://lore.kernel.org/all/20240805183047.305630-6-msp@baylibre.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/m_can/m_can.c

index 5228304779f19e70983a1bb8fee7c4a3bafc651e..68bd4a00eccaafaba1fccbe962fbaa8868f35b74 100644 (file)
@@ -483,7 +483,6 @@ static inline void m_can_disable_all_interrupts(struct m_can_classdev *cdev)
 {
        m_can_coalescing_disable(cdev);
        m_can_write(cdev, M_CAN_ILE, 0x0);
-       cdev->active_interrupts = 0x0;
 
        if (!cdev->net->irq) {
                dev_dbg(cdev->dev, "Stop hrtimer\n");