Re: [PATCH 1/4] lockdep: lock_set_subclass() fix

From: Tejun Heo
Date: Mon Nov 07 2011 - 09:02:59 EST


(cc'ing the bug reporter and kmemcheck ppl)

Hello,

On Mon, Nov 07, 2011 at 09:31:31PM +0800, Yong Zhang wrote:
> I prefer reverting that commit, but bugzilla is down and I don't know
> what the real problem behind that commit.

So, this was the kmemcheck which triggers.

PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and
report a bug
WARNING: kmemcheck: Caught 64-bit read from uninitialized memory
(ffff8801c6783c58)
0000000000000000ee0caa81ffffffff00000000000000000000000000000000
i i i i i i i i i i i i i i i i i i i i u u u u u u u u u u u u
^

Pid: 1, comm: swapper Not tainted 3.0.0-rc2 #8 Acer Aspire 7750G/JE70_HR
RIP: 0010:[<ffffffff8108f3b3>] [<ffffffff8108f3b3>]
process_one_work+0x83/0x450
RSP: 0018:ffff8801c6507d80 EFLAGS: 00010002
RAX: 0000000000000000 RBX: ffff8801c7418300 RCX: 0000000000000000
RDX: ffff8801c79d5800 RSI: ffff8801c6783c10 RDI: ffff8801c7418300
RBP: ffff8801c6507e10 R08: ffff8801c64f8058 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000000 R12: ffff8801c6783c10
R13: ffff8801c79d5800 R14: ffff8801c780ca00 R15: 000000000000003b
FS: 0000000000000000(0000) GS:ffff8801c7800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffff8801c7430364 CR3: 0000000001c03000 CR4: 00000000000406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
[<ffffffff810927cc>] worker_thread+0x15c/0x330
[<ffffffff81097396>] kthread+0xa6/0xb0
[<ffffffff817b3c54>] kernel_thread_helper+0x4/0x10
[<ffffffffffffffff>] 0xffffffffffffffff
\_SB_.PCI0:_OSC invalid UUID
_OSC request data:1 8 1f

kmemcheck is complaining that memory area which hasn't been
initialized before is being read. The offending code line is "struct
lockdep_map = work->lockdep_map" in process_one_work(), which caches
lockdep_map because work item can be destroyed once it starts
execution.

I don't have problem with reverting the patch but it would be much
better if it can play nice with kmemcheck. It seems lockdep_map init
requirements are rather weird. Maybe just avoiding clearing ->name is
better?

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/