Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Avoid common Linux kernel mistakes — atomic context violations, allocation failures, and locking traps.
Avoid common Linux kernel mistakes — atomic context violations, allocation failures, and locking traps.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
spin_lock held = cannot sleep — no kmalloc(GFP_KERNEL), no mutex_lock, no copy_from_user Interrupt can take same spinlock — must use spin_lock_irqsave, not plain spin_lock rcu_read_lock() section cannot sleep — no blocking calls inside RCU read-side might_sleep() annotation — add to functions that may sleep, catches bugs with CONFIG_DEBUG_ATOMIC_SLEEP
GFP_ATOMIC can return NULL — always check, don't assume success vmalloc memory not physically contiguous — cannot use for DMA kzalloc over kmalloc — uninitialized memory leaks kernel info to userspace Allocation in loop risks OOM — preallocate or use memory pool
copy_from_user returns bytes NOT copied — 0 means success, not failure Never use %s with user pointer in printk — kernel crash or info leak User memory can change during syscall — copy to kernel buffer, validate the copy __user annotation is documentation — doesn't enforce anything, you must use copy functions
READ_ONCE/WRITE_ONCE for lockless shared data — prevents compiler from caching/reordering Spinlock release has implicit barrier — but check-then-act patterns still need care smp_wmb() before publishing pointer — ensures data visible before pointer is
Init fails midway — must undo everything already done Reverse order cleanup — unregister in opposite order of register goto err_* pattern standard — cleaner than nested ifs Check what's actually initialized — don't free/unregister what wasn't set up
Same lock acquired twice = deadlock — even in different functions Inconsistent lock ordering — document order, acquire in same sequence everywhere mutex_trylock returns 1 on success — opposite of pthread_mutex_trylock Reader-writer locks rarely worth it — contention overhead usually exceeds benefit
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.