Revision 15cf17d26e08ee95c2e392a3a71f55d32e99e971 authored by Konstantin Khlebnikov on 08 March 2013, 20:43:36 UTC, committed by Linus Torvalds on 08 March 2013, 23:05:34 UTC
Fix a warning from lockdep caused by calling cancel_work_sync() for uninitialized struct work. This path has been triggered by destructon kmem-cache hierarchy via destroying its root kmem-cache. cache ffff88003c072d80 obj ffff88003b410000 cache ffff88003c072d80 obj ffff88003b924000 cache ffff88003c20bd40 INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. Pid: 2825, comm: insmod Tainted: G O 3.9.0-rc1-next-20130307+ #611 Call Trace: __lock_acquire+0x16a2/0x1cb0 lock_acquire+0x8a/0x120 flush_work+0x38/0x2a0 __cancel_work_timer+0x89/0xf0 cancel_work_sync+0xb/0x10 kmem_cache_destroy_memcg_children+0x81/0xb0 kmem_cache_destroy+0xf/0xe0 init_module+0xcb/0x1000 [kmem_test] do_one_initcall+0x11a/0x170 load_module+0x19b0/0x2320 SyS_init_module+0xc6/0xf0 system_call_fastpath+0x16/0x1b Example module to demonstrate: #include <linux/module.h> #include <linux/slab.h> #include <linux/mm.h> #include <linux/workqueue.h> int __init mod_init(void) { int size = 256; struct kmem_cache *cache; void *obj; struct page *page; cache = kmem_cache_create("kmem_cache_test", size, size, 0, NULL); if (!cache) return -ENOMEM; printk("cache %p\n", cache); obj = kmem_cache_alloc(cache, GFP_KERNEL); if (obj) { page = virt_to_head_page(obj); printk("obj %p cache %p\n", obj, page->slab_cache); kmem_cache_free(cache, obj); } flush_scheduled_work(); obj = kmem_cache_alloc(cache, GFP_KERNEL); if (obj) { page = virt_to_head_page(obj); printk("obj %p cache %p\n", obj, page->slab_cache); kmem_cache_free(cache, obj); } kmem_cache_destroy(cache); return -EBUSY; } module_init(mod_init); MODULE_LICENSE("GPL"); Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org> Cc: Glauber Costa <glommer@parallels.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 755727b
File | Mode | Size |
---|---|---|
ABI | ||
DocBook | ||
EDID | ||
PCI | ||
RCU | ||
accounting | ||
acpi | ||
aoe | ||
arm | ||
arm64 | ||
auxdisplay | ||
backlight | ||
blackfin | ||
block | ||
blockdev | ||
bus-devices | ||
cdrom | ||
cgroups | ||
connector | ||
console | ||
cpu-freq | ||
cpuidle | ||
cris | ||
crypto | ||
development-process | ||
device-mapper | ||
devicetree | ||
driver-model | ||
dvb | ||
early-userspace | ||
extcon | ||
fault-injection | ||
fb | ||
filesystems | ||
firmware_class | ||
frv | ||
hid | ||
hwmon | ||
i2c | ||
i2o | ||
ia64 | ||
ide | ||
infiniband | ||
input | ||
ioctl | ||
isdn | ||
ja_JP | ||
kbuild | ||
kdump | ||
ko_KR | ||
laptops | ||
leds | ||
m68k | ||
make | ||
memory-devices | ||
metag | ||
mips | ||
misc-devices | ||
mmc | ||
mn10300 | ||
mtd | ||
namespaces | ||
netlabel | ||
networking | ||
nfc | ||
parisc | ||
pcmcia | ||
power | ||
powerpc | ||
pps | ||
prctl | ||
pti | ||
ptp | ||
rapidio | ||
s390 | ||
scheduler | ||
scsi | ||
security | ||
serial | ||
sh | ||
sound | ||
spi | ||
sysctl | ||
target | ||
thermal | ||
timers | ||
trace | ||
usb | ||
vDSO | ||
video4linux | ||
virtual | ||
vm | ||
w1 | ||
watchdog | ||
wimax | ||
x86 | ||
xtensa | ||
zh_CN | ||
.gitignore | -rw-r--r-- | 107 bytes |
00-INDEX | -rw-r--r-- | 16.5 KB |
BUG-HUNTING | -rw-r--r-- | 8.1 KB |
Changes | -rw-r--r-- | 11.7 KB |
CodingStyle | -rw-r--r-- | 30.7 KB |
DMA-API-HOWTO.txt | -rw-r--r-- | 31.3 KB |
DMA-API.txt | -rw-r--r-- | 27.3 KB |
DMA-ISA-LPC.txt | -rw-r--r-- | 5.2 KB |
DMA-attributes.txt | -rw-r--r-- | 4.5 KB |
HOWTO | -rw-r--r-- | 27.2 KB |
IPMI.txt | -rw-r--r-- | 26.1 KB |
IRQ-affinity.txt | -rw-r--r-- | 2.5 KB |
IRQ-domain.txt | -rw-r--r-- | 6.9 KB |
IRQ.txt | -rw-r--r-- | 962 bytes |
Intel-IOMMU.txt | -rw-r--r-- | 3.8 KB |
Makefile | -rw-r--r-- | 174 bytes |
ManagementStyle | -rw-r--r-- | 12.9 KB |
SAK.txt | -rw-r--r-- | 2.8 KB |
SM501.txt | -rw-r--r-- | 2.8 KB |
SecurityBugs | -rw-r--r-- | 1.8 KB |
SubmitChecklist | -rw-r--r-- | 4.4 KB |
SubmittingDrivers | -rw-r--r-- | 6.3 KB |
SubmittingPatches | -rw-r--r-- | 28.5 KB |
VGA-softcursor.txt | -rw-r--r-- | 2.0 KB |
applying-patches.txt | -rw-r--r-- | 19.5 KB |
atomic_ops.txt | -rw-r--r-- | 21.7 KB |
bad_memory.txt | -rw-r--r-- | 1.1 KB |
basic_profiling.txt | -rw-r--r-- | 1.7 KB |
binfmt_misc.txt | -rw-r--r-- | 5.9 KB |
braille-console.txt | -rw-r--r-- | 1.4 KB |
bt8xxgpio.txt | -rw-r--r-- | 4.3 KB |
btmrvl.txt | -rw-r--r-- | 2.9 KB |
bus-virt-phys-mapping.txt | -rw-r--r-- | 7.9 KB |
cachetlb.txt | -rw-r--r-- | 17.1 KB |
circular-buffers.txt | -rw-r--r-- | 7.6 KB |
clk.txt | -rw-r--r-- | 8.5 KB |
coccinelle.txt | -rw-r--r-- | 8.2 KB |
cpu-hotplug.txt | -rw-r--r-- | 15.6 KB |
cpu-load.txt | -rw-r--r-- | 3.0 KB |
cputopology.txt | -rw-r--r-- | 3.8 KB |
crc32.txt | -rw-r--r-- | 8.5 KB |
dcdbas.txt | -rw-r--r-- | 3.6 KB |
debugging-modules.txt | -rw-r--r-- | 954 bytes |
debugging-via-ohci1394.txt | -rw-r--r-- | 7.4 KB |
dell_rbu.txt | -rw-r--r-- | 4.9 KB |
devices.txt | -rw-r--r-- | 115.9 KB |
digsig.txt | -rw-r--r-- | 2.8 KB |
dma-buf-sharing.txt | -rw-r--r-- | 19.8 KB |
dmaengine.txt | -rw-r--r-- | 7.6 KB |
dontdiff | -rw-r--r-- | 2.5 KB |
dynamic-debug-howto.txt | -rw-r--r-- | 12.3 KB |
edac.txt | -rw-r--r-- | 24.3 KB |
eisa.txt | -rw-r--r-- | 7.1 KB |
email-clients.txt | -rw-r--r-- | 8.6 KB |
flexible-arrays.txt | -rw-r--r-- | 5.5 KB |
futex-requeue-pi.txt | -rw-r--r-- | 5.0 KB |
gcov.txt | -rw-r--r-- | 7.5 KB |
gpio.txt | -rw-r--r-- | 34.1 KB |
highuid.txt | -rw-r--r-- | 2.4 KB |
hw_random.txt | -rw-r--r-- | 3.5 KB |
hwspinlock.txt | -rw-r--r-- | 12.1 KB |
init.txt | -rw-r--r-- | 2.5 KB |
initrd.txt | -rw-r--r-- | 14.1 KB |
intel_txt.txt | -rw-r--r-- | 10.2 KB |
io-mapping.txt | -rw-r--r-- | 3.2 KB |
io_ordering.txt | -rw-r--r-- | 1.9 KB |
iostats.txt | -rw-r--r-- | 7.9 KB |
irqflags-tracing.txt | -rw-r--r-- | 2.6 KB |
isapnp.txt | -rw-r--r-- | 433 bytes |
java.txt | -rw-r--r-- | 10.7 KB |
kernel-doc-nano-HOWTO.txt | -rw-r--r-- | 11.6 KB |
kernel-docs.txt | -rw-r--r-- | 33.1 KB |
kernel-parameters.txt | -rw-r--r-- | 111.6 KB |
kmemcheck.txt | -rw-r--r-- | 29.8 KB |
kmemleak.txt | -rw-r--r-- | 7.9 KB |
kobject.txt | -rw-r--r-- | 17.8 KB |
kprobes.txt | -rw-r--r-- | 29.5 KB |
kref.txt | -rw-r--r-- | 8.4 KB |
ldm.txt | -rw-r--r-- | 3.8 KB |
local_ops.txt | -rw-r--r-- | 6.1 KB |
lockdep-design.txt | -rw-r--r-- | 11.6 KB |
lockstat.txt | -rw-r--r-- | 10.7 KB |
lockup-watchdogs.txt | -rw-r--r-- | 3.1 KB |
logo.gif | -rw-r--r-- | 16.0 KB |
logo.txt | -rw-r--r-- | 563 bytes |
magic-number.txt | -rw-r--r-- | 9.7 KB |
md.txt | -rw-r--r-- | 25.4 KB |
media-framework.txt | -rw-r--r-- | 14.7 KB |
memory-barriers.txt | -rw-r--r-- | 82.4 KB |
memory-hotplug.txt | -rw-r--r-- | 15.9 KB |
mono.txt | -rw-r--r-- | 2.5 KB |
mutex-design.txt | -rw-r--r-- | 5.8 KB |
nommu-mmap.txt | -rw-r--r-- | 12.7 KB |
numastat.txt | -rw-r--r-- | 836 bytes |
oops-tracing.txt | -rw-r--r-- | 12.5 KB |
padata.txt | -rw-r--r-- | 7.3 KB |
parport-lowlevel.txt | -rw-r--r-- | 32.2 KB |
parport.txt | -rw-r--r-- | 8.8 KB |
percpu-rw-semaphore.txt | -rw-r--r-- | 1.1 KB |
pi-futex.txt | -rw-r--r-- | 5.7 KB |
pinctrl.txt | -rw-r--r-- | 41.0 KB |
pnp.txt | -rw-r--r-- | 6.8 KB |
preempt-locking.txt | -rw-r--r-- | 5.2 KB |
printk-formats.txt | -rw-r--r-- | 5.6 KB |
pwm.txt | -rw-r--r-- | 2.9 KB |
ramoops.txt | -rw-r--r-- | 4.6 KB |
rbtree.txt | -rw-r--r-- | 13.3 KB |
remoteproc.txt | -rw-r--r-- | 12.3 KB |
rfkill.txt | -rw-r--r-- | 4.7 KB |
robust-futex-ABI.txt | -rw-r--r-- | 8.7 KB |
robust-futexes.txt | -rw-r--r-- | 9.4 KB |
rpmsg.txt | -rw-r--r-- | 13.5 KB |
rt-mutex-design.txt | -rw-r--r-- | 32.8 KB |
rt-mutex.txt | -rw-r--r-- | 3.5 KB |
rtc.txt | -rw-r--r-- | 15.5 KB |
serial-console.txt | -rw-r--r-- | 4.0 KB |
sgi-ioc4.txt | -rw-r--r-- | 2.0 KB |
sgi-visws.txt | -rw-r--r-- | 678 bytes |
smsc_ece1099.txt | -rw-r--r-- | 2.4 KB |
sparse.txt | -rw-r--r-- | 3.8 KB |
spinlocks.txt | -rw-r--r-- | 6.5 KB |
stable_api_nonsense.txt | -rw-r--r-- | 9.2 KB |
stable_kernel_rules.txt | -rw-r--r-- | 4.4 KB |
static-keys.txt | -rw-r--r-- | 11.9 KB |
svga.txt | -rw-r--r-- | 14.1 KB |
sysfs-rules.txt | -rw-r--r-- | 8.1 KB |
sysrq.txt | -rw-r--r-- | 11.6 KB |
unaligned-memory-access.txt | -rw-r--r-- | 10.0 KB |
unicode.txt | -rw-r--r-- | 6.5 KB |
unshare.txt | -rw-r--r-- | 13.1 KB |
vfio.txt | -rw-r--r-- | 13.6 KB |
vgaarbiter.txt | -rw-r--r-- | 8.1 KB |
video-output.txt | -rw-r--r-- | 1.1 KB |
vme_api.txt | -rw-r--r-- | 13.1 KB |
volatile-considered-harmful.txt | -rw-r--r-- | 5.6 KB |
workqueue.txt | -rw-r--r-- | 14.9 KB |
xz.txt | -rw-r--r-- | 5.7 KB |
zorro.txt | -rw-r--r-- | 2.8 KB |
Computing file changes ...