Re: DT parsing : duplicate name error

From: Grant Likely
Date: Wed Dec 03 2014 - 10:41:44 EST


On Wed, Dec 3, 2014 at 3:23 PM, Jean-Michel Hautbois
<jean-michel.hautbois@xxxxxxxxxxx> wrote:
> 2014-12-03 16:22 GMT+01:00 Grant Likely <grant.likely@xxxxxxxxxxxx>:
>> On Wed, Dec 3, 2014 at 1:27 PM, Jean-Michel Hautbois
>> <jean-michel.hautbois@xxxxxxxxxxx> wrote:
>>> Hi,
>>>
>>> I am using linux-next on a i.MX6 board, and it seems that there is a
>>> regression probably in DT parsing.
>>
>> Are you able to bisect down to the offending commit?
>
> I am trying to do it, but my computer is slow, so it takes a loooooot
> of time... so in the mean time I ask the ML in case this would be
> obvious to someone :).
>
> Thanks,
> JM

>From a quick reading of the backlog, for some reason the new device is
getting assigned NULL as the device name in led_classdev_register().
Probably because led_cdev->name is set to NULL. The leds are getting
bound to the LED driver in gpio_led_probe() which is the non-DT path
for creating LED devices. That would mean there is pdata attached to
the LED device, but I haven't dug any farther than that. Really need
the bisect to narrow down what is going on.

g.


>
>> Thanks,
>> g.
>>
>>>
>>> Here is the DT I am using :
>>> vbx-leds {
>>> compatible = "gpio-leds";
>>> pinctrl-names = "default";
>>> pinctrl-0 = <&pinctrl_gpio_leds>;
>>>
>>> led0-red {
>>> gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
>>> default-state = "off";
>>> };
>>> led0-green {
>>> gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
>>> default-state = "on";
>>> };
>>> led1-red {
>>> gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
>>> default-state = "off";
>>> };
>>> led1-green {
>>> gpios = <&gpio6 16 GPIO_ACTIVE_LOW>;
>>> default-state = "on";
>>> };
>>> };
>>>
>>> On linux-stable v3.17 it works correctly.
>>> On linux-next I get :
>>>
>>> [ 1.566876] ------------[ cut here ]------------
>>> [ 1.566899] WARNING: CPU: 0 PID: 1 at fs/sysfs/dir.c:31
>>> sysfs_warn_dup+0x68/0x88()
>>> [ 1.566906] sysfs: cannot create duplicate filename
>>> '/devices/soc0/vbx-leds/leds/(null)'
>>> [ 1.566913] Modules linked in:
>>> [ 1.566924] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
>>> 3.18.0-rc6-next-20141126+g0076d1c #1
>>> [ 1.566929] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
>>> [ 1.566935] Backtrace:
>>> [ 1.566957] [<80013bbc>] (dump_backtrace) from [<80013f10>]
>>> (show_stack+0x20/0x24)
>>> [ 1.566975] r6:80c68954 r5:00000000 r4:00000000 r3:00000000
>>> [ 1.566995] [<80013ef0>] (show_stack) from [<8079e498>]
>>> (dump_stack+0x8c/0xa4)
>>> [ 1.567010] [<8079e40c>] (dump_stack) from [<8002ed10>]
>>> (warn_slowpath_common+0x8c/0xc8)
>>> [ 1.567026] r6:8019b544 r5:00000009 r4:be0d1bb0 r3:00000000
>>> [ 1.567037] [<8002ec84>] (warn_slowpath_common) from [<8002ed8c>]
>>> (warn_slowpath_fmt+0x40/0x48)
>>> [ 1.567055] r8:be22f410 r7:bd931ec0 r6:bd930de0 r5:bd934100 r4:80abda98
>>> [ 1.567068] [<8002ed50>] (warn_slowpath_fmt) from [<8019b544>]
>>> (sysfs_warn_dup+0x68/0x88)
>>> [ 1.567078] r3:be03efe4 r2:80abda98
>>> [ 1.567085] r4:be03e000
>>> [ 1.567096] [<8019b4dc>] (sysfs_warn_dup) from [<8019b5f4>]
>>> (sysfs_create_dir_ns+0x90/0xa8)
>>> [ 1.567109] r6:bd930de0 r5:bd89bc08 r4:ffffffef
>>> [ 1.567131] [<8019b564>] (sysfs_create_dir_ns) from [<803284e8>]
>>> (kobject_add_internal+0xb4/0x33c)
>>> [ 1.567144] r6:bd931ec0 r5:00000000 r4:bd89bc08
>>> [ 1.567157] [<80328434>] (kobject_add_internal) from [<80328920>]
>>> (kobject_add+0x54/0x98)
>>> [ 1.567173] r7:00000000 r6:bd931ec0 r5:00000000 r4:bd89bc08
>>> [ 1.567189] [<803288d0>] (kobject_add) from [<80405098>]
>>> (device_add+0xf0/0x564)
>>> [ 1.567198] r3:be22f434 r2:00000000
>>> [ 1.567212] r6:bd89bc00 r5:be22f410 r4:bd89bc08
>>> [ 1.567223] [<80404fa8>] (device_add) from [<804056c8>]
>>> (device_create_groups_vargs+0xb4/0xd0)
>>> [ 1.567244] r10:00000000 r9:00000000 r8:be22f410 r7:bd8eb170
>>> r6:bd89bc08 r5:bd89bc00
>>> [ 1.567250] r4:00000000
>>> [ 1.567262] [<80405614>] (device_create_groups_vargs) from
>>> [<80405784>] (device_create_with_groups+0x30/0x38)
>>> [ 1.567283] r9:80c08d90 r8:00000000 r7:be0d1d84 r6:814d0d98
>>> r5:be22f410 r4:00000000
>>> [ 1.567298] [<80405754>] (device_create_with_groups) from
>>> [<8058c7d4>] (led_classdev_register+0x54/0x198)
>>> [ 1.567304] r4:bd8eb170
>>> [ 1.567316] [<8058c780>] (led_classdev_register) from [<8058d74c>]
>>> (create_gpio_led+0xfc/0x194)
>>> [ 1.567330] r6:be22f410 r5:814c5fe0 r4:bd8eb170
>>> [ 1.567340] [<8058d650>] (create_gpio_led) from [<8058d8c8>]
>>> (gpio_led_probe+0xe4/0x2f8)
>>> [ 1.567360] r8:be22f400 r7:bd8eb010 r6:00000000 r5:be22f410
>>> r4:be7e4e1c r3:00000000
>>> [ 1.567377] [<8058d7e4>] (gpio_led_probe) from [<8040a248>]
>>> (platform_drv_probe+0x54/0xb4)
>>> [ 1.567398] r10:00000000 r9:80c08d90 r8:80c98f58 r7:fffffdfb
>>> r6:80c98f58 r5:be22f410
>>> [ 1.567404] r4:814cd180
>>> [ 1.567418] [<8040a1f4>] (platform_drv_probe) from [<804082d8>]
>>> (driver_probe_device+0x144/0x3a0)
>>> [ 1.567435] r7:00000000 r6:80cbb2c8 r5:be22f410 r4:814cd180
>>> [ 1.567446] [<80408194>] (driver_probe_device) from [<8040862c>]
>>> (__driver_attach+0xa4/0xa8)
>>> [ 1.567467] r10:00000000 r9:80c08d90 r8:80cc3280 r7:00000000
>>> r6:be22f444 r5:80c98f58
>>> [ 1.567473] r4:be22f410
>>> [ 1.567485] [<80408588>] (__driver_attach) from [<80406250>]
>>> (bus_for_each_dev+0x7c/0xb0)
>>> [ 1.567501] r6:80408588 r5:80c98f58 r4:00000000 r3:be216f5c
>>> [ 1.567512] [<804061d4>] (bus_for_each_dev) from [<80407c88>]
>>> (driver_attach+0x28/0x30)
>>> [ 1.567525] r6:80c76ce0 r5:bd8f5600 r4:80c98f58
>>> [ 1.567536] [<80407c60>] (driver_attach) from [<8040787c>]
>>> (bus_add_driver+0x164/0x230)
>>> [ 1.567549] [<80407718>] (bus_add_driver) from [<80408e78>]
>>> (driver_register+0x88/0x108)
>>> [ 1.567566] r7:80be948c r6:bd931b40 r5:80c44620 r4:80c98f58
>>> [ 1.567578] [<80408df0>] (driver_register) from [<8040a168>]
>>> (__platform_driver_register+0x58/0x6c)
>>> [ 1.567588] r5:80c44620 r4:80c44620
>>> [ 1.567605] [<8040a110>] (__platform_driver_register) from
>>> [<80be94a4>] (gpio_led_driver_init+0x18/0x20)
>>> [ 1.567619] [<80be948c>] (gpio_led_driver_init) from [<80008b1c>]
>>> (do_one_initcall+0xb8/0x208)
>>> [ 1.567632] [<80008a64>] (do_one_initcall) from [<80ba0e3c>]
>>> (kernel_init_freeable+0x118/0x1e0)
>>> [ 1.567653] r10:80ba0604 r9:80c08d90 r8:80cc3280 r7:000000ca
>>> r6:80cc3280 r5:00000006
>>> [ 1.567659] r4:80c32270
>>> [ 1.567673] [<80ba0d24>] (kernel_init_freeable) from [<80799b2c>]
>>> (kernel_init+0x18/0xfc)
>>> [ 1.567693] r10:00000000 r9:00000000 r8:00000000 r7:00000000
>>> r6:00000000 r5:80799b14
>>> [ 1.567699] r4:00000000
>>> [ 1.567713] [<80799b14>] (kernel_init) from [<8000fb88>]
>>> (ret_from_fork+0x14/0x2c)
>>> [ 1.567722] r4:00000000 r3:00000000
>>> [ 1.567751] ---[ end trace aa4c820e66f8b9bb ]---
>>> [ 1.567758] ------------[ cut here ]------------
>>> [ 1.567774] WARNING: CPU: 0 PID: 1 at lib/kobject.c:240
>>> kobject_add_internal+0x2b0/0x33c()
>>> [ 1.567780] kobject_add_internal failed for (null) with -EEXIST,
>>> don't try to register things with the same name in the same directory.
>>> [ 1.567787] Modules linked in:
>>> [ 1.567796] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W
>>> 3.18.0-rc6-next-20141126+g0076d1c #1
>>> [ 1.567801] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
>>> [ 1.567807] Backtrace:
>>> [ 1.567820] [<80013bbc>] (dump_backtrace) from [<80013f10>]
>>> (show_stack+0x20/0x24)
>>> [ 1.567837] r6:80c68954 r5:00000000 r4:00000000 r3:00000000
>>> [ 1.567847] [<80013ef0>] (show_stack) from [<8079e498>]
>>> (dump_stack+0x8c/0xa4)
>>> [ 1.567860] [<8079e40c>] (dump_stack) from [<8002ed10>]
>>> (warn_slowpath_common+0x8c/0xc8)
>>> [ 1.567877] r6:803286e4 r5:00000009 r4:be0d1c00 r3:00000000
>>> [ 1.567887] [<8002ec84>] (warn_slowpath_common) from [<8002ed8c>]
>>> (warn_slowpath_fmt+0x40/0x48)
>>> [ 1.567907] r8:be22f410 r7:bd931ec0 r6:bd931ec0 r5:ffffffef r4:80adefb4
>>> [ 1.567919] [<8002ed50>] (warn_slowpath_fmt) from [<803286e4>]
>>> (kobject_add_internal+0x2b0/0x33c)
>>> [ 1.567928] r3:807e849c r2:80adefb4
>>> [ 1.567935] r4:bd89bc08
>>> [ 1.567947] [<80328434>] (kobject_add_internal) from [<80328920>]
>>> (kobject_add+0x54/0x98)
>>> [ 1.567963] r7:00000000 r6:bd931ec0 r5:00000000 r4:bd89bc08
>>> [ 1.567974] [<803288d0>] (kobject_add) from [<80405098>]
>>> (device_add+0xf0/0x564)
>>> [ 1.567985] r3:be22f434 r2:00000000
>>> [ 1.567997] r6:bd89bc00 r5:be22f410 r4:bd89bc08
>>> [ 1.568008] [<80404fa8>] (device_add) from [<804056c8>]
>>> (device_create_groups_vargs+0xb4/0xd0)
>>> [ 1.568029] r10:00000000 r9:00000000 r8:be22f410 r7:bd8eb170
>>> r6:bd89bc08 r5:bd89bc00
>>> [ 1.568035] r4:00000000
>>> [ 1.568046] [<80405614>] (device_create_groups_vargs) from
>>> [<80405784>] (device_create_with_groups+0x30/0x38)
>>> [ 1.568067] r9:80c08d90 r8:00000000 r7:be0d1d84 r6:814d0d98
>>> r5:be22f410 r4:00000000
>>> [ 1.568078] [<80405754>] (device_create_with_groups) from
>>> [<8058c7d4>] (led_classdev_register+0x54/0x198)
>>> [ 1.568085] r4:bd8eb170
>>> [ 1.568096] [<8058c780>] (led_classdev_register) from [<8058d74c>]
>>> (create_gpio_led+0xfc/0x194)
>>> [ 1.568109] r6:be22f410 r5:814c5fe0 r4:bd8eb170
>>> [ 1.568118] [<8058d650>] (create_gpio_led) from [<8058d8c8>]
>>> (gpio_led_probe+0xe4/0x2f8)
>>> [ 1.568139] r8:be22f400 r7:bd8eb010 r6:00000000 r5:be22f410
>>> r4:be7e4e1c r3:00000000
>>> [ 1.568151] [<8058d7e4>] (gpio_led_probe) from [<8040a248>]
>>> (platform_drv_probe+0x54/0xb4)
>>> [ 1.568172] r10:00000000 r9:80c08d90 r8:80c98f58 r7:fffffdfb
>>> r6:80c98f58 r5:be22f410
>>> [ 1.568236] r4:814cd180
>>> [ 1.568253] [<8040a1f4>] (platform_drv_probe) from [<804082d8>]
>>> (driver_probe_device+0x144/0x3a0)
>>> [ 1.568271] r7:00000000 r6:80cbb2c8 r5:be22f410 r4:814cd180
>>> [ 1.568284] [<80408194>] (driver_probe_device) from [<8040862c>]
>>> (__driver_attach+0xa4/0xa8)
>>> [ 1.568306] r10:00000000 r9:80c08d90 r8:80cc3280 r7:00000000
>>> r6:be22f444 r5:80c98f58
>>> [ 1.568312] r4:be22f410
>>> [ 1.568324] [<80408588>] (__driver_attach) from [<80406250>]
>>> (bus_for_each_dev+0x7c/0xb0)
>>> [ 1.568340] r6:80408588 r5:80c98f58 r4:00000000 r3:be216f5c
>>> [ 1.568351] [<804061d4>] (bus_for_each_dev) from [<80407c88>]
>>> (driver_attach+0x28/0x30)
>>> [ 1.568364] r6:80c76ce0 r5:bd8f5600 r4:80c98f58
>>> [ 1.568375] [<80407c60>] (driver_attach) from [<8040787c>]
>>> (bus_add_driver+0x164/0x230)
>>> [ 1.568386] [<80407718>] (bus_add_driver) from [<80408e78>]
>>> (driver_register+0x88/0x108)
>>> [ 1.568402] r7:80be948c r6:bd931b40 r5:80c44620 r4:80c98f58
>>> [ 1.568415] [<80408df0>] (driver_register) from [<8040a168>]
>>> (__platform_driver_register+0x58/0x6c)
>>> [ 1.568425] r5:80c44620 r4:80c44620
>>> [ 1.568442] [<8040a110>] (__platform_driver_register) from
>>> [<80be94a4>] (gpio_led_driver_init+0x18/0x20)
>>> [ 1.568454] [<80be948c>] (gpio_led_driver_init) from [<80008b1c>]
>>> (do_one_initcall+0xb8/0x208)
>>> [ 1.568466] [<80008a64>] (do_one_initcall) from [<80ba0e3c>]
>>> (kernel_init_freeable+0x118/0x1e0)
>>> [ 1.568487] r10:80ba0604 r9:80c08d90 r8:80cc3280 r7:000000ca
>>> r6:80cc3280 r5:00000006
>>> [ 1.568493] r4:80c32270
>>> [ 1.568505] [<80ba0d24>] (kernel_init_freeable) from [<80799b2c>]
>>> (kernel_init+0x18/0xfc)
>>> [ 1.568526] r10:00000000 r9:00000000 r8:00000000 r7:00000000
>>> r6:00000000 r5:80799b14
>>> [ 1.568532] r4:00000000
>>> [ 1.568544] [<80799b14>] (kernel_init) from [<8000fb88>]
>>> (ret_from_fork+0x14/0x2c)
>>> [ 1.568553] r4:00000000 r3:00000000
>>> [ 1.568558] ---[ end trace aa4c820e66f8b9bc ]---
>>>
>>> It seems Fabio (CC'ed here) experiences the same issue with another
>>> device too on i.MX53.
>>>
>>> Any idea ?
>>> Thanks,
>>> JM
>>> --
>>> 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/