Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq_work.c Create Date:2022-07-28 12:46:50
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:irq_work_run_list

Proto:static void irq_work_run_list(struct llist_head *list)

Type:void

Parameter:

TypeParameterName
struct llist_head *list
139  BUG_ON(!Some architectures don't define arch_irqs_disabled(), so even if either* definition would be fine we need to use different ones for the time being* to avoid build issues.())
141  If llist_empty - tests whether a lock-less list is empty*@head: the list to test* Not guaranteed to be accurate or up to date. Just a quick way to* test whether the list is empty without deleting something from the* list. Then Return
144  llnode = llist_del_all - delete all entries from lock-less list*@head: the head of lock-less list to delete all entries* If list is empty, return NULL, otherwise, delete all entries and* return the pointer to the first entry. The order of entries
154  flags = atomic_fetch_andnot(An entry can be in one of four states:* free NULL, 0 -> {claimed} : free to be used* claimed NULL, 3 -> {pending} : claimed to be enqueued* pending next, 3 -> {busy} : queued, pending callback* busy NULL, 2 -> {free, claimed} : callback in progress, can , & flags)
156  func(work)
161  flags &= ~An entry can be in one of four states:* free NULL, 0 -> {claimed} : free to be used* claimed NULL, 3 -> {pending} : claimed to be enqueued* pending next, 3 -> {busy} : queued, pending callback* busy NULL, 2 -> {free, claimed} : callback in progress, can
162  atomic_cmpxchg( & flags, flags, flags & ~IRQ_WORK_BUSY)
Caller
NameDescribe
irq_work_runhotplug calls this through:* hotplug_cfd() -> flush_smp_call_function_queue()
irq_work_tick