---
name: "irq_disable"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/irq_disable"
---

# irq\_disable(9)

Mark interrupt disabled

## NAME

irq\_disable - Mark interrupt disabled

## SYNOPSIS

**void irq\_disable(struct irq\_desc \*** *desc***);**

## ARGUMENTS

*desc*

irq descriptor which should be disabled

## DESCRIPTION

If the chip does not implement the irq\_disable callback, we use a lazy disable approach. That means we mark the interrupt disabled, but leave the hardware unmasked. That's an optimization because we avoid the hardware access for the common case where no interrupt happens after we marked it disabled. If an interrupt happens, then the interrupt flow handler masks the line at the hardware level and marks it pending.

If the interrupt chip does not implement the irq\_disable callback, a driver can disable the lazy approach for a particular irq line by calling 'irq\_set\_status\_flags(irq, IRQ\_DISABLE\_UNLAZY)'. This can be used for devices which cannot disable the interrupt at the device level under certain circumstances and have to use disable\_irq\[\_nosync\] instead.

## AUTHORS

**Thomas Gleixner** \<tglx@linutronix.de\>

Author.

**Ingo Molnar** \<mingo@elte.hu\>

Author.

## COPYRIGHT
