|
|
@@ -319,29 +319,20 @@ Remember the advice above: you can always use
|
|
|
:c:func:`spin_lock_irqsave()`, which is a superset of all other
|
|
|
spinlock primitives.
|
|
|
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| | IRQ Handler A | IRQ Handler B | Softirq A | Softirq B | Tasklet A | Tasklet B | Timer A | Timer B | User Context A | User Context B |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| IRQ Handler A | None | | | | | | | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| IRQ Handler B | SLIS | None | | | | | | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| Softirq A | SLI | SLI | SL | | | | | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| Softirq B | SLI | SLI | SL | SL | | | | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| Tasklet A | SLI | SLI | SL | SL | None | | | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| Tasklet B | SLI | SLI | SL | SL | SL | None | | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| Timer A | SLI | SLI | SL | SL | SL | SL | None | | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| Timer B | SLI | SLI | SL | SL | SL | SL | SL | None | | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| User Context A | SLI | SLI | SLBH | SLBH | SLBH | SLBH | SLBH | SLBH | None | |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
-| User Context B | SLI | SLI | SLBH | SLBH | SLBH | SLBH | SLBH | SLBH | MLI | None |
|
|
|
-+------------------+-----------------+-----------------+-------------+-------------+-------------+-------------+-----------+-----------+------------------+------------------+
|
|
|
+============== ============= ============= ========= ========= ========= ========= ======= ======= ============== ==============
|
|
|
+. IRQ Handler A IRQ Handler B Softirq A Softirq B Tasklet A Tasklet B Timer A Timer B User Context A User Context B
|
|
|
+============== ============= ============= ========= ========= ========= ========= ======= ======= ============== ==============
|
|
|
+IRQ Handler A None
|
|
|
+IRQ Handler B SLIS None
|
|
|
+Softirq A SLI SLI SL
|
|
|
+Softirq B SLI SLI SL SL
|
|
|
+Tasklet A SLI SLI SL SL None
|
|
|
+Tasklet B SLI SLI SL SL SL None
|
|
|
+Timer A SLI SLI SL SL SL SL None
|
|
|
+Timer B SLI SLI SL SL SL SL SL None
|
|
|
+User Context A SLI SLI SLBH SLBH SLBH SLBH SLBH SLBH None
|
|
|
+User Context B SLI SLI SLBH SLBH SLBH SLBH SLBH SLBH MLI None
|
|
|
+============== ============= ============= ========= ========= ========= ========= ======= ======= ============== ==============
|
|
|
|
|
|
Table: Table of Locking Requirements
|
|
|
|