Re: Possible regression: BUG in fs/sysfs/group.c:65

From: Kent Yoder
Date: Fri Oct 05 2012 - 15:23:23 EST


On Fri, Oct 05, 2012 at 11:16:06AM -0700, Eric W. Biederman wrote:
> Ben Guthro <ben@xxxxxxxxxx> writes:
>
> > I am seeing a regression in today's (Oct 5) kernel - 2 WARNINGS, and a
> > BUG below that seems to occur upon resuming from S3.
> >
> > I can start a bisection with 3.6 - but wanted to check to see if
> > anyone else is also experiencing this failure...
>
> I took a quick look and this is a deterministic failure. The same
> file is being added to sysfs twice.
>
> Since the routine causing this failure appears to be sys_add_ppi I
> expect the commit that added this failure mode is the commit below.
>
> Xiaoyan Zhang, Kent Yoder can you guys look at this see why the tpm
> code is adding itself multiple times into sysfs?

It looks like the ppi sysfs teardown code is MIA. Xiaoyan, can you add
it to tpm_ppi.c, with a caller in tpm_unregister_hardware?

Kent

> Thanks,
> Eric
>
> commit f84fdff0fdcda7e509ce530e0ee612233a2104fb
> Author: Xiaoyan Zhang <xiaoyan.zhang@xxxxxxxxx>
> Date: Wed Aug 22 18:47:22 2012 +0800
>
> driver: add PPI support in tpm driver
>
> The Physical Presence Interface enables the OS and the BIOS to cooperate and
> provides a simple and straightforward platform user experience for
> administering the TPM without sacrificing security.
>
> V2: separate the patch out in a separate source file,
> add #ifdef CONFIG_ACPI so it compiles out on ppc,
> use standard error instead of ACPI error as return code of show/store fns.
> V3: move #ifdef CONFIG_ACPI from .c file to .h file.
> V4: move tpm_ppi code from tpm module to tpm_bios module.
> V5: modify sys_add_ppi() so that ppi_attr_grp doesn't need to be exported
>
> Signed-off-by: Xiaoyan Zhang <xiaoyan.zhang@xxxxxxxxx>
> Signed-off-by: Kent Yoder <key@xxxxxxxxxxxxxxxxxx>
>
>
> > I'm not sure that it matters in this case, but this is running as a
> > Xen dom0 pvops kernel.
> >
> > Regards
> > Ben Guthro
> >
> >
> > [ 1554.684622] ------------[ cut here ]------------
> > [ 1554.684634] WARNING: at
> > /data/home/bguthro/dev/unstable/linux/fs/sysfs/dir.c:536
> > sysfs_add_one+0xc0/0xf0()
> > [ 1554.684636] Hardware name: 2765T6U
> > [ 1554.684638] sysfs: cannot create duplicate filename '/devices/pnp0/00:0c/ppi'
> > [ 1554.684640] Modules linked in: tpm_tis(+) tpm tpm_bios ehci_hcd
> > ebtable_filter ebtables ip_tables x_tables zram(C) zsmalloc(C) bridge
> > stp llc snd_hda_codec_conexant arc4 i915 snd_hda_intel iwldvm
> > snd_hda_codec mac80211 pcmcia hid_generic drm_kms_helper yenta_socket
> > snd_hwdep snd_pcm iwlwifi drm pcmcia_rsrc snd_timer pcmcia_core usbhid
> > thinkpad_acpi coretemp snd_page_alloc cfg80211 psmouse hid
> > i2c_algo_bit intel_agp serio_raw microcode intel_gtt snd soundcore
> > video nvram ahci libahci e1000e [last unloaded: tpm_bios]
> > [ 1554.684681] Pid: 3492, comm: modprobe Tainted: G C 3.6.0-orc #3
> > [ 1554.684683] Call Trace:
> > [ 1554.684691] [<ffffffff810539cf>] warn_slowpath_common+0x7f/0xc0
> > [ 1554.684695] [<ffffffff81053ac6>] warn_slowpath_fmt+0x46/0x50
> > [ 1554.684699] [<ffffffff811d0bb0>] sysfs_add_one+0xc0/0xf0
> > [ 1554.684702] [<ffffffff811d0d9c>] create_dir+0x7c/0xd0
> > [ 1554.684706] [<ffffffff811d1116>] sysfs_create_dir+0x86/0xe0
> > [ 1554.684712] [<ffffffff812bffec>] kobject_add_internal+0x9c/0x210
> > [ 1554.684716] [<ffffffff812c05e7>] kobject_add+0x67/0xc0
> > [ 1554.684720] [<ffffffff812c090e>] kobject_create_and_add+0x3e/0x80
> > [ 1554.684725] [<ffffffffa00d7898>] sys_add_ppi+0x18/0x40 [tpm_bios]
> > [ 1554.684731] [<ffffffffa0100aee>] tpm_register_hardware+0x22e/0x3c0 [tpm]
> > [ 1554.684736] [<ffffffffa0109b7a>] tpm_tis_init+0x44/0x601 [tpm_tis]
> > [ 1554.684741] [<ffffffffa010a225>] tpm_tis_pnp_init+0xee/0x10d [tpm_tis]
> > [ 1554.684746] [<ffffffffa010a137>] ? tpm_tis_init+0x601/0x601 [tpm_tis]
> > [ 1554.684751] [<ffffffff81348180>] pnp_device_probe+0x70/0xf0
> > [ 1554.684757] [<ffffffff813a6f4a>] ? driver_sysfs_add+0x7a/0xb0
> > [ 1554.684761] [<ffffffff813a722b>] driver_probe_device+0x7b/0x240
> > [ 1554.684764] [<ffffffff813a749b>] __driver_attach+0xab/0xb0
> > [ 1554.684768] [<ffffffff813a73f0>] ? driver_probe_device+0x240/0x240
> > [ 1554.684772] [<ffffffff813a5646>] bus_for_each_dev+0x56/0x90
> > [ 1554.684776] [<ffffffff813a6d5e>] driver_attach+0x1e/0x20
> > [ 1554.684779] [<ffffffff813a68d0>] bus_add_driver+0x190/0x290
> > [ 1554.684784] [<ffffffffa010d000>] ? 0xffffffffa010cfff
> > [ 1554.684787] [<ffffffff813a79fa>] driver_register+0x7a/0x160
> > [ 1554.684791] [<ffffffffa010d000>] ? 0xffffffffa010cfff
> > [ 1554.684795] [<ffffffff81347eb1>] pnp_register_driver+0x21/0x30
> > [ 1554.684800] [<ffffffffa010d01d>] init_tis+0x1d/0xc5 [tpm_tis]
> > [ 1554.684805] [<ffffffff8107d6f3>] ? __blocking_notifier_call_chain+0x63/0x80
> > [ 1554.684809] [<ffffffff8100203f>] do_one_initcall+0x3f/0x170
> > [ 1554.684814] [<ffffffff810b562f>] sys_init_module+0x8f/0x200
> > [ 1554.684819] [<ffffffff815a46e9>] system_call_fastpath+0x16/0x1b
> > [ 1554.684822] ---[ end trace b394e16efa725e57 ]---
> > [ 1554.684825] ------------[ cut here ]------------
> > [ 1554.684829] WARNING: at
> > /data/home/bguthro/dev/unstable/linux/lib/kobject.c:196
> > kobject_add_internal+0x1f4/0x210()
> > [ 1554.684830] Hardware name: 2765T6U
> > [ 1554.684832] kobject_add_internal failed for ppi with -EEXIST, don't
> > try to register things with the same name in the same directory.
> > [ 1554.684834] Modules linked in: tpm_tis(+) tpm tpm_bios ehci_hcd
> > ebtable_filter ebtables ip_tables x_tables zram(C) zsmalloc(C) bridge
> > stp llc snd_hda_codec_conexant arc4 i915 snd_hda_intel iwldvm
> > snd_hda_codec mac80211 pcmcia hid_generic drm_kms_helper yenta_socket
> > snd_hwdep snd_pcm iwlwifi drm pcmcia_rsrc snd_timer pcmcia_core usbhid
> > thinkpad_acpi coretemp snd_page_alloc cfg80211 psmouse hid
> > i2c_algo_bit intel_agp serio_raw microcode intel_gtt snd soundcore
> > video nvram ahci libahci e1000e [last unloaded: tpm_bios]
> > [ 1554.684870] Pid: 3492, comm: modprobe Tainted: G WC 3.6.0-orc #3
> > [ 1554.684872] Call Trace:
> > [ 1554.684876] [<ffffffff810539cf>] warn_slowpath_common+0x7f/0xc0
> > [ 1554.684880] [<ffffffff81053ac6>] warn_slowpath_fmt+0x46/0x50
> > [ 1554.684884] [<ffffffff811d0431>] ? release_sysfs_dirent+0x61/0xe0
> > [ 1554.684888] [<ffffffff812c0144>] kobject_add_internal+0x1f4/0x210
> > [ 1554.684892] [<ffffffff812c05e7>] kobject_add+0x67/0xc0
> > [ 1554.684897] [<ffffffff812c090e>] kobject_create_and_add+0x3e/0x80
> > [ 1554.684901] [<ffffffffa00d7898>] sys_add_ppi+0x18/0x40 [tpm_bios]
> > [ 1554.684906] [<ffffffffa0100aee>] tpm_register_hardware+0x22e/0x3c0 [tpm]
> > [ 1554.684911] [<ffffffffa0109b7a>] tpm_tis_init+0x44/0x601 [tpm_tis]
> > [ 1554.684916] [<ffffffffa010a225>] tpm_tis_pnp_init+0xee/0x10d [tpm_tis]
> > [ 1554.684921] [<ffffffffa010a137>] ? tpm_tis_init+0x601/0x601 [tpm_tis]
> > [ 1554.684925] [<ffffffff81348180>] pnp_device_probe+0x70/0xf0
> > [ 1554.684929] [<ffffffff813a6f4a>] ? driver_sysfs_add+0x7a/0xb0
> > [ 1554.684933] [<ffffffff813a722b>] driver_probe_device+0x7b/0x240
> > [ 1554.684936] [<ffffffff813a749b>] __driver_attach+0xab/0xb0
> > [ 1554.684940] [<ffffffff813a73f0>] ? driver_probe_device+0x240/0x240
> > [ 1554.684944] [<ffffffff813a5646>] bus_for_each_dev+0x56/0x90
> > [ 1554.684947] [<ffffffff813a6d5e>] driver_attach+0x1e/0x20
> > [ 1554.684951] [<ffffffff813a68d0>] bus_add_driver+0x190/0x290
> > [ 1554.684955] [<ffffffffa010d000>] ? 0xffffffffa010cfff
> > [ 1554.684958] [<ffffffff813a79fa>] driver_register+0x7a/0x160
> > [ 1554.684962] [<ffffffffa010d000>] ? 0xffffffffa010cfff
> > [ 1554.684966] [<ffffffff81347eb1>] pnp_register_driver+0x21/0x30
> > [ 1554.684970] [<ffffffffa010d01d>] init_tis+0x1d/0xc5 [tpm_tis]
> > [ 1554.684974] [<ffffffff8107d6f3>] ? __blocking_notifier_call_chain+0x63/0x80
> > [ 1554.684978] [<ffffffff8100203f>] do_one_initcall+0x3f/0x170
> > [ 1554.684981] [<ffffffff810b562f>] sys_init_module+0x8f/0x200
> > [ 1554.684985] [<ffffffff815a46e9>] system_call_fastpath+0x16/0x1b
> > [ 1554.684987] ---[ end trace b394e16efa725e58 ]---
> > [ 1554.684990] kobject_create_and_add: kobject_add error: -17
> > [ 1554.685002] ------------[ cut here ]------------
> > [ 1554.685040] kernel BUG at
> > /data/home/bguthro/dev/unstable/linux/fs/sysfs/group.c:65!
> > [ 1554.685086] invalid opcode: 0000 [#1] SMP
> > [ 1554.685118] Modules linked in: tpm_tis(+) tpm tpm_bios ehci_hcd
> > ebtable_filter ebtables ip_tables x_tables zram(C) zsmalloc(C) bridge
> > stp llc snd_hda_codec_conexant arc4 i915 snd_hda_intel iwldvm
> > snd_hda_codec mac80211 pcmcia hid_generic drm_kms_helper yenta_socket
> > snd_hwdep snd_pcm iwlwifi drm pcmcia_rsrc snd_timer pcmcia_core usbhid
> > thinkpad_acpi coretemp snd_page_alloc cfg80211 psmouse hid
> > i2c_algo_bit intel_agp serio_raw microcode intel_gtt snd soundcore
> > video nvram ahci libahci e1000e [last unloaded: tpm_bios]
> > [ 1554.685524] CPU 0
> > [ 1554.685540] Pid: 3492, comm: modprobe Tainted: G WC
> > 3.6.0-orc #3 LENOVO 2765T6U/2765T6U
> > [ 1554.685593] RIP: e030:[<ffffffff811d29f9>] [<ffffffff811d29f9>]
> > internal_create_group+0x1e9/0x210
> > [ 1554.686670] RSP: e02b:ffff880002a4fbd8 EFLAGS: 00010246
> > [ 1554.686706] RAX: 0000000000000000 RBX: ffff880002ecc000 RCX: 000000000000a9c8
> > [ 1554.686747] RDX: ffffffffa00d8ec0 RSI: 0000000000000000 RDI: 0000000000000000
> > [ 1554.686788] RBP: ffff880002a4fc28 R08: 0000000000016640 R09: ffffea00009d7000
> > [ 1554.686829] R10: ffffffff812bfec9 R11: 6464615f646e615f R12: ffff88002871cc10
> > [ 1554.686870] R13: ffff880002ecc220 R14: ffffffffa00d8ec0 R15: 0000000000000000
> > [ 1554.686915] FS: 00007f33000ba700(0000) GS:ffff88002dc00000(0000)
> > knlGS:0000000000000000
> > [ 1554.686963] CS: e033 DS: 0000 ES: 0000 CR0: 000000008005003b
> > [ 1554.686996] CR2: 00007fac43cd0000 CR3: 000000000298a000 CR4: 0000000000002660
> > [ 1554.687038] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [ 1554.687079] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > [ 1554.687121] Process modprobe (pid: 3492, threadinfo
> > ffff880002a4e000, task ffff880025c52d20)
> > [ 1554.687170] Stack:
> > [ 1554.687184] ffffffffa00d8b38 0000000000000000 ffff880002a4fc08
> > ffffffff812bfd7c
> > [ 1554.687238] 000000005b2d2d2d ffff880002ecc000 ffff88002871cc10
> > ffff880002ecc220
> > [ 1554.687292] ffff8800275c0e90 ffff880002ecc130 ffff880002a4fc38
> > ffffffff811d2a53
> > [ 1554.687345] Call Trace:
> > [ 1554.687366] [<ffffffff812bfd7c>] ? kobject_put+0x2c/0x60
> > [ 1554.687400] [<ffffffff811d2a53>] sysfs_create_group+0x13/0x20
> > [ 1554.687439] [<ffffffffa00d78a7>] sys_add_ppi+0x27/0x40 [tpm_bios]
> > [ 1554.687480] [<ffffffffa0100aee>] tpm_register_hardware+0x22e/0x3c0 [tpm]
> > [ 1554.687523] [<ffffffffa0109b7a>] tpm_tis_init+0x44/0x601 [tpm_tis]
> > [ 1554.687562] [<ffffffffa010a225>] tpm_tis_pnp_init+0xee/0x10d [tpm_tis]
> > [ 1554.687604] [<ffffffffa010a137>] ? tpm_tis_init+0x601/0x601 [tpm_tis]
> > [ 1554.687645] [<ffffffff81348180>] pnp_device_probe+0x70/0xf0
> > [ 1554.687681] [<ffffffff813a6f4a>] ? driver_sysfs_add+0x7a/0xb0
> > [ 1554.687718] [<ffffffff813a722b>] driver_probe_device+0x7b/0x240
> > [ 1554.687756] [<ffffffff813a749b>] __driver_attach+0xab/0xb0
> > [ 1554.687795] [<ffffffff813a73f0>] ? driver_probe_device+0x240/0x240
> > [ 1554.687832] [<ffffffff813a5646>] bus_for_each_dev+0x56/0x90
> > [ 1554.687868] [<ffffffff813a6d5e>] driver_attach+0x1e/0x20
> > [ 1554.687902] [<ffffffff813a68d0>] bus_add_driver+0x190/0x290
> > [ 1554.687939] [<ffffffffa010d000>] ? 0xffffffffa010cfff
> > [ 1554.687973] [<ffffffff813a79fa>] driver_register+0x7a/0x160
> > [ 1554.688009] [<ffffffffa010d000>] ? 0xffffffffa010cfff
> > [ 1554.688042] [<ffffffff81347eb1>] pnp_register_driver+0x21/0x30
> > [ 1554.688080] [<ffffffffa010d01d>] init_tis+0x1d/0xc5 [tpm_tis]
> > [ 1554.688117] [<ffffffff8107d6f3>] ? __blocking_notifier_call_chain+0x63/0x80
> > [ 1554.688161] [<ffffffff8100203f>] do_one_initcall+0x3f/0x170
> > [ 1554.688197] [<ffffffff810b562f>] sys_init_module+0x8f/0x200
> > [ 1554.688233] [<ffffffff815a46e9>] system_call_fastpath+0x16/0x1b
> > [ 1554.688269] Code: 45 b0 0f 84 60 ff ff ff 48 8b 7d c8 89 45 b0 e8
> > 8e e7 ff ff 4c 8b 6d c8 8b 45 b0 e9 48 ff ff ff 48 83 7f 30 00 0f 85
> > 57 fe ff ff <0f> 0b be c3 00 00 00 48 c7 c7 f8 7e 7e 81 e8 04 10 e8 ff
> > e9 80
> > [ 1554.688576] RIP [<ffffffff811d29f9>] internal_create_group+0x1e9/0x210
> > [ 1554.688621] RSP <ffff880002a4fbd8>
> > [ 1554.704039] ---[ end trace b394e16efa725e59 ]---
> > --
> > 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/
>

--
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/