All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Borislav Petkov <bp@amd64.org>
Cc: Linux Edac Mailing List <linux-edac@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Doug Thompson <norsk5@yahoo.com>,
	Greg K H <gregkh@linuxfoundation.org>
Subject: Re: [EDAC ABI v13 09/25] edac: rewrite the sysfs code to use struct device
Date: Wed, 09 May 2012 10:10:33 -0300	[thread overview]
Message-ID: <4FAA6CC9.5060106@redhat.com> (raw)
In-Reply-To: <20120509123441.GC22737@aftab.osrc.amd.com>

(c/c Greg, as this is related to the kobj->struct device conversion)

Em 09-05-2012 09:34, Borislav Petkov escreveu:
> Inserting latest version:
> 
>> From e8765894c6d43326c9968a3687f5140708ee163f Mon Sep 17 00:00:00 2001
>> From: Mauro Carvalho Chehab <mchehab@redhat.com>
>> Date: Mon, 16 Apr 2012 16:41:11 -0300
>> Subject: [PATCH] edac: rewrite the sysfs code to use struct device
>>
>> The EDAC subsystem uses the old struct sysdev approach,
>> creating all nodes using the raw sysfs API. This is bad,
>> as the API is deprecated.
>>
>> As we'll be changing the EDAC API, let's first port the existing
>> code to struct device.
>>
>> There's one side-back on this patch: all device-specific sysfs
> 
> 	      drawback to
> 
>> nodes won't be created anymore. While it would be possible to
> 
> which device-specific nodes?

I mean driver-specific. The ones that i7core_edac, amd64_edac and 
mpc85xx_edac create (mainly) for debug purposes. 

Everything will compile and run fine, but the core won't create them
anymore, as they're based on kobj.

The next 3 patches on this series will convert each of the above to
use kernel devices, solving this issue.

I'll fix the comment.

> 
>> also port the device-specific code, it is easier and nicer to
>> move the code to the drivers, instead, as the core can get rid
>> of some complex logic that just emulates what the device_add()
>> and device_create_file() already does.
>>
>> The next patches will convert the driver-specific code to use
>> the device-specific calls. Then, the remaining bits of the old
>> sysfs API will be removed.
>>
>> Reviewed-by: Aristeu Rozanski <arozansk@redhat.com>
>> Cc: Doug Thompson <norsk5@yahoo.com>
>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> 
> Btw, this patch is b0rked. Here's the EDAC debug output from the second
> node on when booting:
> 
> ...
> [    9.692291] EDAC amd64: F10h detected (node 1).
> [    9.692324] EDAC DEBUG: reserve_mc_sibling_devs: F1: 0000:00:19.1
> [    9.692330] EDAC DEBUG: reserve_mc_sibling_devs: F2: 0000:00:19.2
> [    9.692335] EDAC DEBUG: reserve_mc_sibling_devs: F3: 0000:00:19.3
> [    9.692341] EDAC DEBUG: read_mc_regs:   TOP_MEM:  0x00000000c8000000
> [    9.692347] EDAC DEBUG: read_mc_regs:   TOP_MEM2: 0x0000001038000000
> [    9.692356] EDAC DEBUG: read_dram_ctl_register: F2x110 (DCTSelLow): 0x000005e4, High range addrs at: 0x0
> [    9.692363] EDAC DEBUG: read_dram_ctl_register:   DCTs operate in unganged mode.
> [    9.692369] EDAC DEBUG: read_dram_ctl_register:   Address range split per DCT: no
> [    9.692376] EDAC DEBUG: read_dram_ctl_register:   data interleave for ECC: enabled, DRAM cleared since last warm reset: yes
> [    9.692384] EDAC DEBUG: read_dram_ctl_register:   channel interleave: enabled, interleave bits selector: 0x3
> [    9.692395] EDAC DEBUG: read_mc_regs:   DRAM range[0], base: 0x0000000000000000; limit: 0x0000000437ffffff
> [    9.692404] EDAC DEBUG: read_mc_regs:    IntlvEn=Disabled; Range access: RW IntlvSel=0 DstNode=0
> [    9.692413] EDAC DEBUG: read_mc_regs:   DRAM range[1], base: 0x0000000438000000; limit: 0x0000000837ffffff
> [    9.692422] EDAC DEBUG: read_mc_regs:    IntlvEn=Disabled; Range access: RW IntlvSel=0 DstNode=1
> [    9.692431] EDAC DEBUG: read_mc_regs:   DRAM range[2], base: 0x0000000838000000; limit: 0x0000000c37ffffff
> [    9.692439] EDAC DEBUG: read_mc_regs:    IntlvEn=Disabled; Range access: RW IntlvSel=0 DstNode=2
> [    9.692448] EDAC DEBUG: read_mc_regs:   DRAM range[3], base: 0x0000000c38000000; limit: 0x0000001037ffffff
> [    9.692456] EDAC DEBUG: read_mc_regs:    IntlvEn=Disabled; Range access: RW IntlvSel=0 DstNode=3
> [    9.692469] EDAC DEBUG: read_dct_base_mask:   DCSB0[0]=0x00000001 reg: F2x40
> [    9.692476] EDAC DEBUG: read_dct_base_mask:   DCSB1[0]=0x00000001 reg: F2x140
> [    9.692483] EDAC DEBUG: read_dct_base_mask:   DCSB0[1]=0x00000201 reg: F2x44
> [    9.692489] EDAC DEBUG: read_dct_base_mask:   DCSB1[1]=0x00000201 reg: F2x144
> [    9.692496] EDAC DEBUG: read_dct_base_mask:   DCSB0[2]=0x00000401 reg: F2x48
> [    9.692503] EDAC DEBUG: read_dct_base_mask:   DCSB1[2]=0x00000401 reg: F2x148
> [    9.692510] EDAC DEBUG: read_dct_base_mask:   DCSB0[3]=0x00000601 reg: F2x4c
> [    9.692516] EDAC DEBUG: read_dct_base_mask:   DCSB1[3]=0x00000601 reg: F2x14c
> [    9.692523] EDAC DEBUG: read_dct_base_mask:   DCSB0[4]=0x00000000 reg: F2x50
> [    9.692530] EDAC DEBUG: read_dct_base_mask:   DCSB1[4]=0x00000000 reg: F2x150
> [    9.692537] EDAC DEBUG: read_dct_base_mask:   DCSB0[5]=0x00000000 reg: F2x54
> [    9.692543] EDAC DEBUG: read_dct_base_mask:   DCSB1[5]=0x00000000 reg: F2x154
> [    9.692550] EDAC DEBUG: read_dct_base_mask:   DCSB0[6]=0x00000000 reg: F2x58
> [    9.692557] EDAC DEBUG: read_dct_base_mask:   DCSB1[6]=0x00000000 reg: F2x158
> [    9.692564] EDAC DEBUG: read_dct_base_mask:   DCSB0[7]=0x00000000 reg: F2x5c
> [    9.692570] EDAC DEBUG: read_dct_base_mask:   DCSB1[7]=0x00000000 reg: F2x15c
> [    9.692577] EDAC DEBUG: read_dct_base_mask:     DCSM0[0]=0x01f839e0 reg: F2x60
> [    9.692584] EDAC DEBUG: read_dct_base_mask:     DCSM1[0]=0x01f839e0 reg: F2x160
> [    9.692591] EDAC DEBUG: read_dct_base_mask:     DCSM0[1]=0x01f839e0 reg: F2x64
> [    9.692598] EDAC DEBUG: read_dct_base_mask:     DCSM1[1]=0x01f839e0 reg: F2x164
> [    9.692605] EDAC DEBUG: read_dct_base_mask:     DCSM0[2]=0x00000000 reg: F2x68
> [    9.692612] EDAC DEBUG: read_dct_base_mask:     DCSM1[2]=0x00000000 reg: F2x168
> [    9.692619] EDAC DEBUG: read_dct_base_mask:     DCSM0[3]=0x00000000 reg: F2x6c
> [    9.692625] EDAC DEBUG: read_dct_base_mask:     DCSM1[3]=0x00000000 reg: F2x16c
> [    9.692635] EDAC DEBUG: dump_misc_regs: F3xE8 (NB Cap): 0x62f0df1f
> [    9.692641] EDAC DEBUG: dump_misc_regs:   NB two channel DRAM capable: yes
> [    9.692647] EDAC DEBUG: dump_misc_regs:   ECC capable: yes, ChipKill ECC capable: yes
> [    9.692653] EDAC DEBUG: amd64_dump_dramcfg_low: F2x090 (DRAM Cfg Low): 0x00083100
> [    9.692660] EDAC DEBUG: amd64_dump_dramcfg_low:   DIMM type: buffered; all DIMMs support ECC: yes
> [    9.692666] EDAC DEBUG: amd64_dump_dramcfg_low:   PAR/ERR parity: enabled
> [    9.692671] EDAC DEBUG: amd64_dump_dramcfg_low:   DCT 128bit mode width: 64b
> [    9.692678] EDAC DEBUG: amd64_dump_dramcfg_low:   x4 logical DIMMs present: L0: yes L1: yes L2: no L3: no
> [    9.692685] EDAC DEBUG: dump_misc_regs: F3xB0 (Online Spare): 0x00000000
> [    9.692692] EDAC DEBUG: dump_misc_regs: F1xF0 (DRAM Hole Address): 0xc8000002, base: 0xc8000000, offset: 0x00000000
> [    9.692699] EDAC DEBUG: dump_misc_regs:   DramHoleValid: no
> [    9.692705] EDAC DEBUG: amd64_debug_display_dimm_sizes: F2x080 (DRAM Bank Address Mapping): 0x00000088
> [    9.692711] EDAC MC: DCT0 chip selects:
> [    9.692717] EDAC amd64: MC: 0:  2048MB 1:  2048MB
> [    9.692723] EDAC amd64: MC: 2:  2048MB 3:  2048MB
> [    9.692728] EDAC amd64: MC: 4:     0MB 5:     0MB
> [    9.692733] EDAC amd64: MC: 6:     0MB 7:     0MB
> [    9.692738] EDAC DEBUG: amd64_debug_display_dimm_sizes: F2x180 (DRAM Bank Address Mapping): 0x00000088
> [    9.692744] EDAC MC: DCT1 chip selects:
> [    9.692749] EDAC amd64: MC: 0:  2048MB 1:  2048MB
> [    9.692754] EDAC amd64: MC: 2:  2048MB 3:  2048MB
> [    9.692759] EDAC amd64: MC: 4:     0MB 5:     0MB
> [    9.692764] EDAC amd64: MC: 6:     0MB 7:     0MB
> [    9.692769] EDAC amd64: using x8 syndromes.
> [    9.692774] EDAC DEBUG: amd64_dump_dramcfg_low: F2x190 (DRAM Cfg Low): 0x00083100
> [    9.692780] EDAC DEBUG: amd64_dump_dramcfg_low:   DIMM type: buffered; all DIMMs support ECC: yes
> [    9.692786] EDAC DEBUG: amd64_dump_dramcfg_low:   PAR/ERR parity: enabled
> [    9.692791] EDAC DEBUG: amd64_dump_dramcfg_low:   DCT 128bit mode width: 64b
> [    9.692798] EDAC DEBUG: amd64_dump_dramcfg_low:   x4 logical DIMMs present: L0: yes L1: yes L2: no L3: no
> [    9.692805] EDAC DEBUG: f1x_early_channel_count: Data width is not 128 bits - need more decoding
> [    9.692812] EDAC amd64: MCT channel count: 2
> [    9.692821] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc(): allocating 30948 bytes for mci data (16 ranks, 16 csrows/channels)
> [    9.692851] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 0: rank0 (0:0:0): row 0, chan 0
> [    9.692863] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 1: rank1 (0:1:0): row 1, chan 0
> [    9.692873] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 2: rank2 (1:0:0): row 2, chan 0
> [    9.692883] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 3: rank3 (1:1:0): row 3, chan 0
> [    9.692893] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 4: rank4 (2:0:0): row 4, chan 0
> [    9.692903] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 5: rank5 (2:1:0): row 5, chan 0
> [    9.692912] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 6: rank6 (3:0:0): row 6, chan 0
> [    9.692922] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 7: rank7 (3:1:0): row 7, chan 0
> [    9.692931] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 8: rank8 (4:0:0): row 0, chan 1
> [    9.692941] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 9: rank9 (4:1:0): row 1, chan 1
> [    9.692951] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 10: rank10 (5:0:0): row 2, chan 1
> [    9.692961] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 11: rank11 (5:1:0): row 3, chan 1
> [    9.692971] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 12: rank12 (6:0:0): row 4, chan 1
> [    9.692980] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 13: rank13 (6:1:0): row 5, chan 1
> [    9.692990] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 14: rank14 (7:0:0): row 6, chan 1
> [    9.692999] EDAC DEBUG: edac_mc_alloc: edac_mc_alloc: 15: rank15 (7:1:0): row 7, chan 1
> [    9.693010] EDAC DEBUG: init_csrows: node 1, NBCFG=0x4af0005c[ChipKillEccCap: 1|DramEccEn: 1]
> [    9.693017] EDAC DEBUG: init_csrows: ----CSROW 0 VALID for MC node 1
> [    9.693022] EDAC DEBUG: amd64_csrow_nr_pages:   (csrow=0) DBAM map index= 8
> [    9.693029] EDAC DEBUG: amd64_csrow_nr_pages:     nr_pages= 524288  channel-count = 2
> [    9.693035] EDAC amd64: CS0: Registered DDR3 RAM
> [    9.693040] EDAC DEBUG: init_csrows:   for MC node 1 csrow 0:
> [    9.693045] EDAC DEBUG: init_csrows:     nr_pages: 524288
> [    9.693050] EDAC DEBUG: init_csrows: ----CSROW 1 VALID for MC node 1
> [    9.693056] EDAC DEBUG: amd64_csrow_nr_pages:   (csrow=1) DBAM map index= 8
> [    9.693062] EDAC DEBUG: amd64_csrow_nr_pages:     nr_pages= 524288  channel-count = 2
> [    9.693068] EDAC amd64: CS1: Registered DDR3 RAM
> [    9.693072] EDAC DEBUG: init_csrows:   for MC node 1 csrow 1:
> [    9.693077] EDAC DEBUG: init_csrows:     nr_pages: 524288
> [    9.693083] EDAC DEBUG: init_csrows: ----CSROW 2 VALID for MC node 1
> [    9.693089] EDAC DEBUG: amd64_csrow_nr_pages:   (csrow=2) DBAM map index= 8
> [    9.693095] EDAC DEBUG: amd64_csrow_nr_pages:     nr_pages= 524288  channel-count = 2
> [    9.693100] EDAC amd64: CS2: Registered DDR3 RAM
> [    9.693105] EDAC DEBUG: init_csrows:   for MC node 1 csrow 2:
> [    9.693110] EDAC DEBUG: init_csrows:     nr_pages: 524288
> [    9.693116] EDAC DEBUG: init_csrows: ----CSROW 3 VALID for MC node 1
> [    9.693121] EDAC DEBUG: amd64_csrow_nr_pages:   (csrow=3) DBAM map index= 8
> [    9.693128] EDAC DEBUG: amd64_csrow_nr_pages:     nr_pages= 524288  channel-count = 2
> [    9.693133] EDAC amd64: CS3: Registered DDR3 RAM
> [    9.693138] EDAC DEBUG: init_csrows:   for MC node 1 csrow 3:
> [    9.693143] EDAC DEBUG: init_csrows:     nr_pages: 524288
> [    9.693148] EDAC DEBUG: init_csrows: ----CSROW 4 EMPTY for node 1
> [    9.693154] EDAC DEBUG: init_csrows: ----CSROW 5 EMPTY for node 1
> [    9.693159] EDAC DEBUG: init_csrows: ----CSROW 6 EMPTY for node 1
> [    9.693165] EDAC DEBUG: init_csrows: ----CSROW 7 EMPTY for node 1
> [    9.693171] EDAC DEBUG: edac_mc_add_mc: edac_mc_add_mc()
> [    9.693179] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device() idx=1
> [    9.693193] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device(): creating device mc1
> [    9.693288] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm0, located at csrow 0 channel 0 
> [    9.693300] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm1, located at csrow 0 channel 1 
> [    9.693312] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm2, located at csrow 1 channel 0 
> [    9.693322] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm3, located at csrow 1 channel 1 
> [    9.693333] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm8, located at csrow 4 channel 0 
> [    9.693344] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm9, located at csrow 4 channel 1 
> [    9.693355] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm10, located at csrow 5 channel 0 
> [    9.693365] EDAC DEBUG: edac_create_sysfs_mci_device: edac_create_sysfs_mci_device creating dimm11, located at csrow 5 channel 1 
> [    9.693379] EDAC DEBUG: edac_create_csrow_object: edac_create_csrow_object(): creating (virtual) csrow node csrow0
> [    9.693417] ------------[ cut here ]------------
> [    9.693434] WARNING: at fs/sysfs/dir.c:481 sysfs_add_one+0x97/0xab()
> [    9.693440] Hardware name: <redacted>
> [    9.693444] sysfs: cannot create duplicate filename '/bus/edac/devices/csrow0'
> [    9.693449] Modules linked in: radeon(+) ttm drm_kms_helper hwmon backlight e1000e amd64_edac_mod(+) ohci_hcd cfbcopyarea cfbimgblt cfbfillrect ehci_hcd edac_core
> [    9.693479] Pid: 1569, comm: work_for_cpu Not tainted 3.3.0+ #4
> [    9.693484] Call Trace:
> [    9.693499]  [<ffffffff8102d50c>] warn_slowpath_common+0x85/0x9d
> [    9.693509]  [<ffffffff8102d5c7>] warn_slowpath_fmt+0x46/0x48
> [    9.693518]  [<ffffffff8114dd94>] sysfs_add_one+0x97/0xab
> [    9.693527]  [<ffffffff8114e542>] sysfs_do_create_link+0x103/0x1a0
> [    9.693538]  [<ffffffff8114e5f2>] sysfs_create_link+0x13/0x15
> [    9.693549]  [<ffffffff812803e1>] bus_add_device+0xd8/0x163
> [    9.693558]  [<ffffffff8127eaa7>] device_add+0x3ca/0x598
> [    9.693567]  [<ffffffff8127e6d5>] ? device_private_init+0x5d/0x65
> [    9.693588]  [<ffffffffa002aacb>] edac_create_sysfs_mci_device+0x228/0x3f3 [edac_core]
> [    9.693604]  [<ffffffffa0028c95>] edac_mc_add_mc+0x5cf/0x711 [edac_core]
> [    9.693622]  [<ffffffffa00f0807>] amd64_probe_one_instance+0x143b/0x1559 [amd64_edac_mod]
> [    9.693634]  [<ffffffff811e7aac>] local_pci_probe+0x4d/0x96
> [    9.693645]  [<ffffffff81042ecf>] ? cwq_dec_nr_in_flight+0x7b/0x7b
> [    9.693654]  [<ffffffff81042ee7>] do_work_for_cpu+0x18/0x2a
> [    9.693663]  [<ffffffff81048d0d>] kthread+0x89/0x91
> [    9.693675]  [<ffffffff8144ca64>] kernel_thread_helper+0x4/0x10
> [    9.693686]  [<ffffffff81444f4a>] ? retint_restore_args+0xe/0xe
> [    9.693695]  [<ffffffff81048c84>] ? kthread_freezable_should_stop+0x57/0x57
> [    9.693704]  [<ffffffff8144ca60>] ? gs_change+0xb/0xb
> [    9.693710] ---[ end trace c72c379fedc94aa5 ]---
> [    9.693741] ------------[ cut here ]------------
> [    9.693751] WARNING: at lib/kobject.c:595 kobject_put+0x37/0x50()
> [    9.693755] Hardware name: <redacted>
> [    9.693761] kobject: '(null)' (ffff880824e4e8bc): is not initialized, yet kobject_put() is being called.
> [    9.693767] Modules linked in: radeon(+) ttm drm_kms_helper hwmon backlight e1000e amd64_edac_mod(+) ohci_hcd cfbcopyarea cfbimgblt cfbfillrect ehci_hcd edac_core
> [    9.693790] Pid: 1569, comm: work_for_cpu Tainted: G        W    3.3.0+ #4
> [    9.693795] Call Trace:
> [    9.693803]  [<ffffffff8102d50c>] warn_slowpath_common+0x85/0x9d
> [    9.693811]  [<ffffffff8102d5c7>] warn_slowpath_fmt+0x46/0x48
> [    9.693820]  [<ffffffff811c7193>] kobject_put+0x37/0x50
> [    9.693829]  [<ffffffff8127d67d>] put_device+0x17/0x19
> [    9.693846]  [<ffffffffa002ac4f>] edac_create_sysfs_mci_device+0x3ac/0x3f3 [edac_core]
> [    9.693862]  [<ffffffffa0028c95>] edac_mc_add_mc+0x5cf/0x711 [edac_core]
> [    9.693877]  [<ffffffffa00f0807>] amd64_probe_one_instance+0x143b/0x1559 [amd64_edac_mod]
> [    9.693888]  [<ffffffff811e7aac>] local_pci_probe+0x4d/0x96
> [    9.693897]  [<ffffffff81042ecf>] ? cwq_dec_nr_in_flight+0x7b/0x7b
> [    9.693905]  [<ffffffff81042ee7>] do_work_for_cpu+0x18/0x2a
> [    9.693913]  [<ffffffff81048d0d>] kthread+0x89/0x91
> [    9.693922]  [<ffffffff8144ca64>] kernel_thread_helper+0x4/0x10
> [    9.693931]  [<ffffffff81444f4a>] ? retint_restore_args+0xe/0xe
> [    9.693940]  [<ffffffff81048c84>] ? kthread_freezable_should_stop+0x57/0x57
> [    9.693950]  [<ffffffff8144ca60>] ? gs_change+0xb/0xb
> [    9.693955] ---[ end trace c72c379fedc94aa6 ]---
> [    9.693968] BUG: unable to handle kernel NULL pointer dereference at           (null)
> [    9.693976] IP: [<ffffffff8104f240>] __wake_up_common+0x2e/0x84
> [    9.693987] PGD 0 
> [    9.693992] Oops: 0000 [#1] SMP 
> [    9.693999] CPU 6 
> [    9.694002] Modules linked in: radeon(+) ttm drm_kms_helper hwmon backlight e1000e amd64_edac_mod(+) ohci_hcd cfbcopyarea cfbimgblt cfbfillrect ehci_hcd edac_core
> [    9.694022] 
> [    9.694028] Pid: 1569, comm: work_for_cpu Tainted: G        W    3.3.0+ #4 AMD <redacted>/<redacted>
> [    9.694037] RIP: 0010:[<ffffffff8104f240>]  [<ffffffff8104f240>] __wake_up_common+0x2e/0x84
> [    9.694048] RSP: 0018:ffff8804256d5c60  EFLAGS: 00010097
> [    9.694054] RAX: ffffffffffffffe8 RBX: 0000000000000000 RCX: 0000000000000000
> [    9.694060] RDX: 0000000000000000 RSI: 0000000000000003 RDI: ffff880824e4e96c
> [    9.694067] RBP: ffff8804256d5ca0 R08: 0000000000000000 R09: 00000000fffffffe
> [    9.694073] R10: ffff8804a56d5b6f R11: 0000000000000000 R12: 0000000000000003
> [    9.694079] R13: ffff880824e4e95c R14: 00000000ffffffff R15: 0000000000000000
> [    9.694087] FS:  00007f605e6cc740(0000) GS:ffff880827c00000(0000) knlGS:0000000000000000
> [    9.694095] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [    9.694100] CR2: 0000000000000000 CR3: 0000000001a05000 CR4: 00000000000006e0
> [    9.694106] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [    9.694113] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [    9.694120] Process work_for_cpu (pid: 1569, threadinfo ffff8804256d4000, task ffff880425510000)
> [    9.694125] Stack:
> [    9.694129]  0000000000000282 ffff880824e4e96c 00000000ffffffff ffff880824e4e964
> [    9.694137]  0000000000000282 ffff880824e4e95c 00000000ffffffff 0000000000000018
> [    9.694146]  ffff8804256d5cd0 ffffffff81051d6d ffff8804256d5d00 ffff880824e4e8ac
> [    9.694154] Call Trace:
> [    9.694164]  [<ffffffff81051d6d>] complete_all+0x40/0x53
> [    9.694175]  [<ffffffff8128699c>] device_pm_remove+0x5e/0xbc
> [    9.694183]  [<ffffffff8127e47a>] device_del+0x44/0x172
> [    9.694199]  [<ffffffffa002ac57>] edac_create_sysfs_mci_device+0x3b4/0x3f3 [edac_core]
> [    9.694214]  [<ffffffffa0028c95>] edac_mc_add_mc+0x5cf/0x711 [edac_core]
> [    9.694229]  [<ffffffffa00f0807>] amd64_probe_one_instance+0x143b/0x1559 [amd64_edac_mod]
> [    9.694239]  [<ffffffff811e7aac>] local_pci_probe+0x4d/0x96
> [    9.694249]  [<ffffffff81042ecf>] ? cwq_dec_nr_in_flight+0x7b/0x7b
> [    9.694257]  [<ffffffff81042ee7>] do_work_for_cpu+0x18/0x2a
> [    9.694265]  [<ffffffff81048d0d>] kthread+0x89/0x91
> [    9.694274]  [<ffffffff8144ca64>] kernel_thread_helper+0x4/0x10
> [    9.694283]  [<ffffffff81444f4a>] ? retint_restore_args+0xe/0xe
> [    9.694292]  [<ffffffff81048c84>] ? kthread_freezable_should_stop+0x57/0x57
> [    9.694301]  [<ffffffff8144ca60>] ? gs_change+0xb/0xb
> [    9.694306] Code: e5 41 57 41 56 41 55 41 54 53 48 83 ec 18 66 66 66 66 90 48 8b 47 08 48 83 c7 08 41 89 f4 89 d3 41 89 cf 48 89 7d c8 48 83 e8 18 <4c> 8b 68 18 49 83 ed 18 eb 33 44 8b 30 4c 89 c1 4c 89 45 c0 44 
> [    9.694363] RIP  [<ffffffff8104f240>] __wake_up_common+0x2e/0x84
> [    9.694372]  RSP <ffff8804256d5c60>
> [    9.694376] CR2: 0000000000000000
> [    9.694382] ---[ end trace c72c379fedc94aa7 ]---
> [    9.870234] Console: switching to colour frame buffer device 128x48
> [   13.530549] fb0: radeondrmfb frame buffer device
> [   13.544530] drm: registered panic notifier
> [   13.557928] [drm] Initialized radeon 2.13.0 20080528 for 0000:02:06.0 on minor 0
> [   68.764044] EXT3-fs (sda2): using internal journal
> [   71.182320] ADDRCONF(NETDEV_UP): eth0: link is not ready
> [   74.225091] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
> [   74.246314] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
> [   84.480093] eth0: no IPv6 routers present
> [   87.227601] RPC: Registered named UNIX socket transport module.
> [   87.246392] RPC: Registered udp transport module.
> [   87.263673] RPC: Registered tcp transport module.
> [   87.263678] RPC: Registered tcp NFSv4.1 backchannel transport module.

This is fixed by this patch, already acked-by Greg:
	[EDAC ABI v13 17/25] edac: Create a per-Memory Controller bus
	http://git.infradead.org/users/mchehab/edac.git/commit/a2c90149c2e87e51908003b1ba504f92d749f74b

Basically, on devices with multiple controllers, there a separate per-memory controller bus
is needed due to sysfs nodes under /sys/bus.

I opted to keep it on a separate patch, in order to preserve the history, and properly
document why this is needed.

Regards,
Mauro

  reply	other threads:[~2012-05-09 13:10 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-16 20:38 [EDAC ABI v13 00/25] Fix EDAC userspace ABI Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 01/25] edac: Initialize the dimm label with the known information Mauro Carvalho Chehab
2012-05-07 15:52   ` Borislav Petkov
2012-05-14 12:48     ` Borislav Petkov
2012-05-14 13:47       ` Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 02/25] edac: Cleanup the logs for i7core and sb edac drivers Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 03/25] i5400_edac: improve debug messages to better represent the filled memory Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 04/25] events/hw_event: Create a Hardware Events Report Mecanism (HERM) Mauro Carvalho Chehab
2012-05-09 12:13   ` Borislav Petkov
2012-05-09 12:50     ` Mauro Carvalho Chehab
2012-05-09 13:22       ` Borislav Petkov
2012-05-09 13:51         ` Mauro Carvalho Chehab
2012-05-09 14:06           ` Borislav Petkov
2012-05-09 14:15             ` Mauro Carvalho Chehab
2012-05-09 14:24               ` Borislav Petkov
2012-05-10 13:16                 ` Mauro Carvalho Chehab
2012-05-10 13:41                   ` Borislav Petkov
2012-05-10 14:53                     ` Mauro Carvalho Chehab
2012-05-10 15:02                       ` Borislav Petkov
2012-05-10 15:08                       ` Mauro Carvalho Chehab
2012-05-10 15:12                         ` Borislav Petkov
2012-05-10 15:16                           ` Mauro Carvalho Chehab
2012-05-10 19:57                             ` [PATCH] edac: Increase version to 3.0.0 (aka: "HERM" version) Mauro Carvalho Chehab
2012-05-11 10:08                               ` Borislav Petkov
2012-05-10 15:20                           ` [EDAC ABI v13 04/25] events/hw_event: Create a Hardware Events Report Mecanism (HERM) Steven Rostedt
2012-05-10 15:27                             ` Borislav Petkov
2012-05-10 15:34                             ` Mauro Carvalho Chehab
2012-05-09 14:19           ` Steven Rostedt
2012-05-10 13:17             ` Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 05/25] i5000_edac: Fix the logic that retrieves memory information Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 06/25] e752x_edac: provide more info about how DIMMS/ranks are mapped Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 07/25] edac: Rename the parent dev to pdev Mauro Carvalho Chehab
2012-04-16 20:38   ` Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 08/25] edac: use Documentation-nano format for some data structs Mauro Carvalho Chehab
2012-05-09 12:23   ` Borislav Petkov
2012-05-09 12:55     ` Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 09/25] edac: rewrite the sysfs code to use struct device Mauro Carvalho Chehab
2012-05-09 12:34   ` Borislav Petkov
2012-05-09 13:10     ` Mauro Carvalho Chehab [this message]
2012-05-09 13:24       ` Borislav Petkov
2012-05-09 14:09         ` [PATCH v21] edac: rewrite the sysfs code to use struct device - Was: " Mauro Carvalho Chehab
2012-05-09 13:13     ` Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 10/25] mpc85xx_edac: convert sysfs logic " Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 11/25] amd64_edac: " Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 12/25] i7core_edac: convert it " Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 13/25] edac: Get rid of the old kobj's from the edac mc code Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 14/25] edac: add a new per-dimm API and make the old per-virtual-rank API obsolete Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 15/25] edac: add a sysfs node to report the maximum location for the system Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 16/25] edac: Add debufs nodes to allow doing fake error inject Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 17/25] edac: Create a per-Memory Controller bus Mauro Carvalho Chehab
2012-04-16 23:25   ` Greg K H
2012-04-16 20:38 ` [EDAC ABI v13 18/25] edac: Move grain/dtype/edac_type calculus to be out of channel loop Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 19/25] i82975x_edac: Test nr_pages earlier to save a few CPU cycles Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 20/25] i5100_edac: Fix a warning when compiled with 32 bits Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 21/25] i7300_edac: Get rid of some wrongly-solved rebase conflict Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 22/25] edac: Only expose csrows/channels on legacy API if they're populated Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 23/25] edac: Fix a typo at edac_mc_sysfs Mauro Carvalho Chehab
2012-04-16 20:38 ` [EDAC ABI v13 24/25] edac: change the mem allocation scheme to make Documentation/kobject.txt happy Mauro Carvalho Chehab
2012-04-16 20:38   ` Mauro Carvalho Chehab
2012-04-17 21:17   ` Joe Perches
2012-04-17 21:17     ` Joe Perches
2012-04-19 13:14     ` Mauro Carvalho Chehab
2012-04-19 13:14       ` Mauro Carvalho Chehab
2012-04-22  6:37       ` Joe Perches
2012-04-22  6:37         ` Joe Perches
2012-04-19 13:21     ` [PATCH] " Mauro Carvalho Chehab
2012-04-19 13:21       ` Mauro Carvalho Chehab
2012-04-19 15:28       ` Greg K H
2012-04-19 15:28         ` Greg K H
2012-04-16 20:38 ` [EDAC ABI v13 25/25] i7core_edac: " Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FAA6CC9.5060106@redhat.com \
    --to=mchehab@redhat.com \
    --cc=bp@amd64.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=norsk5@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.