[PATCH v2 1/4] dt-bindings: add multidomain support to i.MX GPC DT binding

Shawn Guo shawnguo at kernel.org
Wed Feb 15 17:35:28 PST 2017


On Wed, Feb 15, 2017 at 10:26:05AM +0100, Lucas Stach wrote:
> Am Mittwoch, den 15.02.2017, 15:08 +0800 schrieb Shawn Guo:
> > On Fri, Feb 10, 2017 at 04:43:59PM +0100, Lucas Stach wrote:
> > > Hi Shawn,
> > > 
> > > are you willing to take this series through your tree or do you think we
> > > need to get this in via some other tree?
> > 
> > I'm willing to take it.  But I don't think it's been ready yet.  Since
> > you insist on keeping the .remove hook for both imx_gpc_driver and
> > imx_pgc_power_domain_driver, did you actually test it with manually
> > bind/unbind the drivers?  I tested it a bit and found it doesn't work
> > well for me.
> 
> It works as well as it could at this point. The driver unloads fine, but
> obviously anything that depends on it is broken at that point. Try
> unloading a regulator driver, it's the same experience.
> 
> This will get better once the functional dependency stuff is far enough
> to either block unloading of drivers providing resources to other
> devices, or unload the dependent drivers first.

I'm seeing two problems with my testing.  I need some help to understand
whether they are expected.

1. There is an error message with imx-pgc-power-domain.1 unbind.

root at arm:~# echo imx-pgc-power-domain.1 > /sys/bus/platform/drivers/imx-pgc-pd/unbind
[   31.934370] genpd_remove: unable to remove PU

2. Unbind 20dc000.gpc and bind again causes a fat kernel warning and
drops out console login.

root at arm:~# echo 20dc000.gpc > /sys/bus/platform/drivers/imx-gpc/unbind
root at arm:~# echo 20dc000.gpc > /sys/bus/platform/drivers/imx-gpc/bind
[   45.855469] ------------[ cut here ]------------
[   45.860282] WARNING: CPU: 3 PID: 1899 at ../fs/sysfs/dir.c:31 sysfs_warn_dup+0x5c/0x7c
[   45.868510] sysfs: cannot create duplicate filename '/devices/soc0/soc/2000000.aips-bus/20dc000.gpc/imx-pgc-power-domain.0'
[   45.879991] Modules linked in:
[   45.883228] CPU: 3 PID: 1899 Comm: bash Not tainted 4.10.0-rc2-00051-geada826574ce #757
[   45.891462] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[   45.898175] Backtrace: 
[   45.900753] [<c010c390>] (dump_backtrace) from [<c010c638>] (show_stack+0x18/0x1c)
[   45.908548]  r7:00000000 r6:60000013 r5:00000000 r4:c0e27758
[   45.914391] [<c010c620>] (show_stack) from [<c03fa3b8>] (dump_stack+0xb4/0xe8)
[   45.921830] [<c03fa304>] (dump_stack) from [<c01258d8>] (__warn+0xd8/0x104)
[   45.929000]  r10:ee202400 r9:c0297be4 r8:0000001f r7:00000009 r6:c0c0e780 r5:00000000
[   45.937047]  r4:ed93dc78 r3:00000000
[   45.940749] [<c0125800>] (__warn) from [<c0125940>] (warn_slowpath_fmt+0x3c/0x44)
[   45.948464]  r9:c0e2cd48 r8:ef1b4c10 r7:ef1b4c18 r6:ef1a4c00 r5:ed5b43c0 r4:c0c0e74c
[   45.956435] [<c0125908>] (warn_slowpath_fmt) from [<c0297be4>] (sysfs_warn_dup+0x5c/0x7c)
[   45.964839]  r3:ee545000 r2:c0c0e74c
[   45.968528]  r4:ee545000
[   45.971163] [<c0297b88>] (sysfs_warn_dup) from [<c0297cdc>] (sysfs_create_dir_ns+0x88/0xa0)
[   45.979746]  r6:ef1a4c00 r5:ee202418 r4:ffffffef
[   45.984521] [<c0297c54>] (sysfs_create_dir_ns) from [<c03fd080>] (kobject_add_internal+0xa4/0x2dc)
[   45.993728]  r6:ef1b4c18 r5:00000000 r4:ee202418
[   45.998501] [<c03fcfdc>] (kobject_add_internal) from [<c03fd464>] (kobject_add+0x54/0x98)
[   46.006798]  r7:00000000 r6:ef1b4c18 r5:00000000 r4:ee202418
[   46.012549] [<c03fd414>] (kobject_add) from [<c051bd30>] (device_add+0xd8/0x5a8)
[   46.020046]  r3:00000000 r2:00000000
[   46.023679]  r6:ef1b4c10 r5:ee202410 r4:ee202418
[   46.028371] [<c051bc58>] (device_add) from [<c0520594>] (platform_device_add+0xa8/0x204)
[   46.036577]  r10:ee202400 r9:c0e2cd48 r8:ef1b4c10 r7:ef7e5404 r6:ee202410 r5:ee202400
[   46.044511]  r4:00000000
[   46.047098] [<c05204ec>] (platform_device_add) from [<c048c54c>] (imx_gpc_probe+0x198/0x308)
[   46.055651]  r7:ef7e5404 r6:00000000 r5:ef7e5548 r4:00000000
[   46.061396] [<c048c3b4>] (imx_gpc_probe) from [<c052088c>] (platform_drv_probe+0x54/0xb8)
[   46.069687]  r10:eda26ccc r9:00000000 r8:00000003 r7:fffffdfb r6:c0e2cdb8 r5:ef1b4c10
[   46.077621]  r4:ef1b4c10
[   46.080211] [<c0520838>] (platform_drv_probe) from [<c051ec64>] (driver_probe_device+0x20c/0x2e4)
[   46.089204]  r7:c0e2cdb8 r6:00000000 r5:c1661940 r4:ef1b4c10
[   46.094951] [<c051ea58>] (driver_probe_device) from [<c051d478>] (bind_store+0xb8/0x14c)
[   46.103154]  r9:00000000 r8:0000000c r7:ef1b4c44 r6:c0e2cdb8 r5:c0e39ec0 r4:ef1b4c10
[   46.111009] [<c051d3c0>] (bind_store) from [<c051cb34>] (drv_attr_store+0x28/0x34)
[   46.118686]  r9:00000000 r8:00000000 r7:ed5b4140 r6:ed5b4140 r5:c051cb0c r4:c051d3c0
[   46.126540] [<c051cb0c>] (drv_attr_store) from [<c0297434>] (sysfs_kf_write+0x54/0x58)
[   46.134564]  r5:c051cb0c r4:0000000c
[   46.138200] [<c02973e0>] (sysfs_kf_write) from [<c0296988>] (kernfs_fop_write+0xfc/0x208)
[   46.146490]  r7:ed5b4140 r6:ed93df80 r5:00000000 r4:eda26cc0
[   46.155538] [<c029688c>] (kernfs_fop_write) from [<c021ea88>] (__vfs_write+0x30/0x120)
[   46.166869]  r10:00000000 r9:ed93c000 r8:c0107f44 r7:ed93df80 r6:ed93df80 r5:c029688c
[   46.178177]  r4:ed609cc0
[   46.184137] [<c021ea58>] (__vfs_write) from [<c022030c>] (vfs_write+0xa8/0x16c)
[   46.194915]  r9:ed93c000 r8:c0107f44 r7:ed93df80 r6:01b9fc08 r5:ed609cc0 r4:0000000c
[   46.206109] [<c0220264>] (vfs_write) from [<c0221130>] (SyS_write+0x4c/0xa8)
[   46.216565]  r9:ed93c000 r8:c0107f44 r7:0000000c r6:01b9fc08 r5:ed609cc0 r4:ed609cc0
[   46.227728] [<c02210e4>] (SyS_write) from [<c0107da0>] (ret_fast_syscall+0x0/0x1c)
[   46.238718]  r7:00000004 r6:01b9fc08 r5:0000000c r4:b6ef55e0
[   46.247885] ---[ end trace 4e5758c98dab08c4 ]---
[   46.259297] ------------[ cut here ]------------
[   46.266636] WARNING: CPU: 3 PID: 1899 at ../lib/kobject.c:240 kobject_add_internal+0x260/0x2dc
[   46.278058] kobject_add_internal failed for imx-pgc-power-domain.0 with -EEXIST, don't try to register things with the same name in the same directory.
[   46.297292] Modules linked in:
[   46.303175] CPU: 3 PID: 1899 Comm: bash Tainted: G        W       4.10.0-rc2-00051-geada826574ce #757
[   46.315170] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[   46.324446] Backtrace: 
[   46.329613] [<c010c390>] (dump_backtrace) from [<c010c638>] (show_stack+0x18/0x1c)
[   46.339939]  r7:00000000 r6:60000013 r5:00000000 r4:c0e27758
[   46.348367] [<c010c620>] (show_stack) from [<c03fa3b8>] (dump_stack+0xb4/0xe8)
[   46.358379] [<c03fa304>] (dump_stack) from [<c01258d8>] (__warn+0xd8/0x104)
[   46.368101]  r10:ee202400 r9:c03fd23c r8:000000f0 r7:00000009 r6:c0c25bc8 r5:00000000
[   46.378669]  r4:ed93dcc8 r3:00000000
[   46.384940] [<c0125800>] (__warn) from [<c0125940>] (warn_slowpath_fmt+0x3c/0x44)
[   46.395154]  r9:c0e2cd48 r8:ef1b4c10 r7:ef1b4c18 r6:ef1b4c18 r5:ffffffef r4:c0c25cb4
[   46.405637] [<c0125908>] (warn_slowpath_fmt) from [<c03fd23c>] (kobject_add_internal+0x260/0x2dc)
[   46.417256]  r3:c0a22098 r2:c0c25cb4
[   46.423537]  r4:ee202418
[   46.428780] [<c03fcfdc>] (kobject_add_internal) from [<c03fd464>] (kobject_add+0x54/0x98)
[   46.439716]  r7:00000000 r6:ef1b4c18 r5:00000000 r4:ee202418
[   46.448111] [<c03fd414>] (kobject_add) from [<c051bd30>] (device_add+0xd8/0x5a8)
[   46.458250]  r3:00000000 r2:00000000
[   46.464520]  r6:ef1b4c10 r5:ee202410 r4:ee202418
[   46.471821] [<c051bc58>] (device_add) from [<c0520594>] (platform_device_add+0xa8/0x204)
[   46.482618]  r10:ee202400 r9:c0e2cd48 r8:ef1b4c10 r7:ef7e5404 r6:ee202410 r5:ee202400
[   46.493151]  r4:00000000
[   46.498343] [<c05204ec>] (platform_device_add) from [<c048c54c>] (imx_gpc_probe+0x198/0x308)
[   46.509489]  r7:ef7e5404 r6:00000000 r5:ef7e5548 r4:00000000
[   46.517837] [<c048c3b4>] (imx_gpc_probe) from [<c052088c>] (platform_drv_probe+0x54/0xb8)
[   46.528727]  r10:eda26ccc r9:00000000 r8:00000003 r7:fffffdfb r6:c0e2cdb8 r5:ef1b4c10
[   46.539269]  r4:ef1b4c10
[   46.544458] [<c0520838>] (platform_drv_probe) from [<c051ec64>] (driver_probe_device+0x20c/0x2e4)
[   46.556060]  r7:c0e2cdb8 r6:00000000 r5:c1661940 r4:ef1b4c10
[   46.564432] [<c051ea58>] (driver_probe_device) from [<c051d478>] (bind_store+0xb8/0x14c)
[   46.575249]  r9:00000000 r8:0000000c r7:ef1b4c44 r6:c0e2cdb8 r5:c0e39ec0 r4:ef1b4c10
[   46.585715] [<c051d3c0>] (bind_store) from [<c051cb34>] (drv_attr_store+0x28/0x34)
[   46.595996]  r9:00000000 r8:00000000 r7:ed5b4140 r6:ed5b4140 r5:c051cb0c r4:c051d3c0
[   46.606454] [<c051cb0c>] (drv_attr_store) from [<c0297434>] (sysfs_kf_write+0x54/0x58)
[   46.617089]  r5:c051cb0c r4:0000000c
[   46.623349] [<c02973e0>] (sysfs_kf_write) from [<c0296988>] (kernfs_fop_write+0xfc/0x208)
[   46.634260]  r7:ed5b4140 r6:ed93df80 r5:00000000 r4:eda26cc0
[   46.642629] [<c029688c>] (kernfs_fop_write) from [<c021ea88>] (__vfs_write+0x30/0x120)
[   46.653271]  r10:00000000 r9:ed93c000 r8:c0107f44 r7:ed93df80 r6:ed93df80 r5:c029688c
[   46.663830]  r4:ed609cc0
[   46.669041] [<c021ea58>] (__vfs_write) from [<c022030c>] (vfs_write+0xa8/0x16c)
[   46.679084]  r9:ed93c000 r8:c0107f44 r7:ed93df80 r6:01b9fc08 r5:ed609cc0 r4:0000000c
[   46.689568] [<c0220264>] (vfs_write) from [<c0221130>] (SyS_write+0x4c/0xa8)
[   46.699379]  r9:ed93c000 r8:c0107f44 r7:0000000c r6:01b9fc08 r5:ed609cc0 r4:ed609cc0
[   46.709891] [<c02210e4>] (SyS_write) from [<c0107da0>] (ret_fast_syscall+0x0/0x1c)
[   46.720200]  r7:00000004 r6:01b9fc08 r5:0000000c r4:b6ef55e0
[   46.728617] ---[ end trace 4e5758c98dab08c5 ]---
[   46.736054] ------------[ cut here ]------------
[   46.743333] Kernel BUG at c02170f8 [verbose debug info unavailable]
[   46.752248] Internal error: Oops - BUG: 0 [#1] SMP ARM
[   46.760028] Modules linked in:
[   46.765684] CPU: 3 PID: 1899 Comm: bash Tainted: G        W       4.10.0-rc2-00051-geada826574ce #757
[   46.777574] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[   46.786744] task: edb1c800 task.stack: ed93c000
[   46.793923] PC is at kfree+0x160/0x1ac
[   46.800284] LR is at platform_device_release+0x18/0x3c
[   46.808039] pc : [<c02170f8>]    lr : [<c0520394>]    psr: 40000013
[   46.808039] sp : ed93dce0  ip : ed93dd18  fp : ed93dd14
[   46.824688] r10: ee202400  r9 : c0e2cd48  r8 : ef1b4c10
[   46.832462] r7 : c0520394  r6 : c0e2ce00  r5 : ee202410  r4 : ef814580
[   46.841515] r3 : ef814594  r2 : c164e500  r1 : 00000110  r0 : c0e2ce00
[   46.850584] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   46.860261] Control: 10c5387d  Table: 3dbb004a  DAC: 00000051
[   46.868524] Process bash (pid: 1899, stack limit = 0xed93c210)
[   46.876856] Stack: (0xed93dce0 to 0xed93e000)
[   46.883697] dce0: ed93dce0 ed93dce0 00000001 ee202410 ee202410 00000000 ee202418 ef1b4c10
[   46.894424] dd00: c0e2cd48 ee202400 ed93dd2c ed93dd18 c0520394 c0216fa4 ee202418 ee202410
[   46.905142] dd20: ed93dd4c ed93dd30 c0519a30 c0520388 ee202434 c0e39884 ed5b43c0 ee202418
[   46.915845] dd40: ed93dd6c ed93dd50 c03fc838 c0519a08 ee202418 ef7e5548 00000000 ef7e5404
[   46.926532] dd60: ed93dd8c ed93dd70 c03fc8c4 c03fc7f4 ef7e5404 ef1b4c10 c0e2cd48 00000000
[   46.937199] dd80: ed93dd9c ed93dd90 c0519dc0 c03fc878 ed93ddac ed93dda0 c0520378 c0519db0
[   46.947851] dda0: ed93ddf4 ed93ddb0 c048c560 c0520368 00000000 c0c413ac 00000042 ffffffef
[   46.958491] ddc0: ef1b4c10 00000000 c0e2cdb8 ef1b4c10 ef1b4c10 c0e2cdb8 fffffdfb 00000003
[   46.969127] dde0: 00000000 eda26ccc ed93de14 ed93ddf8 c052088c c048c3c0 ef1b4c10 c1661940
[   46.979755] de00: 00000000 c0e2cdb8 ed93de3c ed93de18 c051ec64 c0520844 ef1b4c10 c0e39ec0
[   46.990362] de20: c0e2cdb8 ef1b4c44 0000000c 00000000 ed93de64 ed93de40 c051d478 c051ea64
[   47.000956] de40: c051d3c0 c051cb0c ed5b4140 ed5b4140 00000000 00000000 ed93de7c ed93de68
[   47.011547] de60: c051cb34 c051d3cc 0000000c c051cb0c ed93de9c ed93de80 c0297434 c051cb18
[   47.022127] de80: eda26cc0 00000000 ed93df80 ed5b4140 ed93dedc ed93dea0 c0296988 c02973ec
[   47.032698] dea0: 00000000 00000000 00000000 00000000 ee4861fc ed609cc0 c029688c ed93df80
[   47.043266] dec0: ed93df80 c0107f44 ed93c000 00000000 ed93df4c ed93dee0 c021ea88 c0296898
[   47.053817] dee0: c0187754 c016e4f0 c0e1c707 ee4861fc ed93df14 ed93df00 c0187ad8 c01876e0
[   47.064351] df00: 00000000 ee4862b0 ed93df4c ed93df18 c0222a30 c0187aa4 00000001 00000000
[   47.074888] df20: c02203b8 60000013 0000000c ed609cc0 01b9fc08 ed93df80 c0107f44 ed93c000
[   47.085421] df40: ed93df7c ed93df50 c022030c c021ea64 00000003 ed997040 ed609cc0 ed609cc0
[   47.095949] df60: 01b9fc08 0000000c c0107f44 ed93c000 ed93dfa4 ed93df80 c0221130 c0220270
[   47.106474] df80: 00000000 00000000 b6ef55e0 0000000c 01b9fc08 00000004 00000000 ed93dfa8
[   47.116994] dfa0: c0107da0 c02210f0 b6ef55e0 0000000c 00000001 01b9fc08 0000000c 00000000
[   47.127503] dfc0: b6ef55e0 0000000c 01b9fc08 00000004 be967a9c 000ad08c 00000000 01ba7328
[   47.138000] dfe0: 0000000c be967a20 b6e6496d b6e9d6bc 40000010 00000001 00000000 00000000
[   47.148482] Backtrace: 
[   47.153195] [<c0216f98>] (kfree) from [<c0520394>] (platform_device_release+0x18/0x3c)
[   47.163431]  r10:ee202400 r9:c0e2cd48 r8:ef1b4c10 r7:ee202418 r6:00000000 r5:ee202410
[   47.173569]  r4:ee202410
[   47.178389] [<c052037c>] (platform_device_release) from [<c0519a30>] (device_release+0x34/0x9c)
[   47.189460]  r5:ee202410 r4:ee202418
[   47.195379] [<c05199fc>] (device_release) from [<c03fc838>] (kobject_release+0x50/0x84)
[   47.205783]  r7:ee202418 r6:ed5b43c0 r5:c0e39884 r4:ee202434
[   47.213839] [<c03fc7e8>] (kobject_release) from [<c03fc8c4>] (kobject_put+0x58/0x88)
[   47.223997]  r7:ef7e5404 r6:00000000 r5:ef7e5548 r4:ee202418
[   47.232039] [<c03fc86c>] (kobject_put) from [<c0519dc0>] (put_device+0x1c/0x20)
[   47.241748]  r4:00000000
[   47.246662] [<c0519da4>] (put_device) from [<c0520378>] (platform_device_put+0x1c/0x20)
[   47.257123] [<c052035c>] (platform_device_put) from [<c048c560>] (imx_gpc_probe+0x1ac/0x308)
[   47.268035] [<c048c3b4>] (imx_gpc_probe) from [<c052088c>] (platform_drv_probe+0x54/0xb8)
[   47.278698]  r10:eda26ccc r9:00000000 r8:00000003 r7:fffffdfb r6:c0e2cdb8 r5:ef1b4c10
[   47.289037]  r4:ef1b4c10
[   47.294055] [<c0520838>] (platform_drv_probe) from [<c051ec64>] (driver_probe_device+0x20c/0x2e4)
[   47.305495]  r7:c0e2cdb8 r6:00000000 r5:c1661940 r4:ef1b4c10
[   47.313716] [<c051ea58>] (driver_probe_device) from [<c051d478>] (bind_store+0xb8/0x14c)
[   47.324392]  r9:00000000 r8:0000000c r7:ef1b4c44 r6:c0e2cdb8 r5:c0e39ec0 r4:ef1b4c10
[   47.334733] [<c051d3c0>] (bind_store) from [<c051cb34>] (drv_attr_store+0x28/0x34)
[   47.344922]  r9:00000000 r8:00000000 r7:ed5b4140 r6:ed5b4140 r5:c051cb0c r4:c051d3c0
[   47.355274] [<c051cb0c>] (drv_attr_store) from [<c0297434>] (sysfs_kf_write+0x54/0x58)
[   47.365798]  r5:c051cb0c r4:0000000c
[   47.371957] [<c02973e0>] (sysfs_kf_write) from [<c0296988>] (kernfs_fop_write+0xfc/0x208)
[   47.382774]  r7:ed5b4140 r6:ed93df80 r5:00000000 r4:eda26cc0
[   47.391069] [<c029688c>] (kernfs_fop_write) from [<c021ea88>] (__vfs_write+0x30/0x120)
[   47.401668]  r10:00000000 r9:ed93c000 r8:c0107f44 r7:ed93df80 r6:ed93df80 r5:c029688c
[   47.412173]  r4:ed609cc0
[   47.417345] [<c021ea58>] (__vfs_write) from [<c022030c>] (vfs_write+0xa8/0x16c)
[   47.427333]  r9:ed93c000 r8:c0107f44 r7:ed93df80 r6:01b9fc08 r5:ed609cc0 r4:0000000c
[   47.437780] [<c0220264>] (vfs_write) from [<c0221130>] (SyS_write+0x4c/0xa8)
[   47.447522]  r9:ed93c000 r8:c0107f44 r7:0000000c r6:01b9fc08 r5:ed609cc0 r4:ed609cc0
[   47.457975] [<c02210e4>] (SyS_write) from [<c0107da0>] (ret_fast_syscall+0x0/0x1c)
[   47.468247]  r7:00000004 r6:01b9fc08 r5:0000000c r4:b6ef55e0
[   47.476613] Code: 1a000003 e5943014 e3130001 1a000000 (e7f001f2) 
[   47.485413] ---[ end trace 4e5758c98dab08c6 ]---

Message from syslogd at arm at Feb 16 01:25:29 ...
 kernel:[   46.752248] Internal error: Oops - BUG: 0 [#1] SMP ARM

Message from syslogd at arm at Feb 16 01:25:29 ...
 kernel:[   46.868524] Process bash (pid: 1899, stack limit = 0xed93c210)

Message from syslogd at arm at Feb 16 01:25:29 ...
 kernel:[   46.876856] Stack: (0xed93dce0 to 0xed93e000)

Message from syslogd at arm at Feb 16 01:25:29 ...
 kernel:[   46.883697] �
Debian GNU/Linux 7 arm ttymxc0

arm login: 



More information about the linux-arm-kernel mailing list