* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
@ 2017-01-09 16:59 ` Daniel Vetter
0 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-09 16:59 UTC (permalink / raw)
To: Dave Hansen
Cc: intel-gfx, Linux Kernel Mailing List, dri-devel, Daniel Vetter
On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>> Well, now I found where the -2 comes from.
>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
>>> fails to add the kobject (warning below). But, it does zero error
>>> checking on the drm_connector_register() call and leaves the
>>> partially-constructed connector in place.
>>>
>>> The next time some poor, hapless code goes and tries to do anything with
>>> that kdev, they oops. I'm perplexed by this, though. The
>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
>>> a bit goofy that it can't even _return_ failure.
>>>
>>> Is there some stable code to go back to here? Or, is there something
>>> about my configuration that's unique? I really wonder why nobody else
>>> is running into this.
>>>
>>> There's probably some other race going on here. This warning doesn't
>>> happen on every boot.
>> This smells more like the root-cause: Something goes wrong on boot
>> that prevents connectors from properly registering, then we fall over
>> later on. And the register callback is intentionally void, assuming
>> that any prep work has been done earlier and that therefore the
>> register step can't fail. Can you pls check whether the oops later on
>> only happens together with this warning at boot, or whether they're
>> not correlated?
>
> Looking through my logs, I can't find any instance of the oops without
> the warning at boot. So I do think the later oops is entirely caused by
> the issue warned about in early boot.
Hm, I guess then we'd need to fix that boot-up warning. Can you try to
figure out why it's unhappy? On a hunch it could be that we call
drm_connector_register from the mst probe worker before the main
driver load thread has reached the drm_dev_register call. A few printk
to decide whether that's the case (plus a few boot-up tests to gather
the statistics, sorry about that) would be real great.
If that's inconclusive I'm again a bit low on ideas ...
> My distro kernel (4.4.0-57-generic) is also unstable, but I haven't
> managed to capture a good oops there. It's hitting this, which I assume
> is unrelated:
>
> WARNING: CPU: 0 PID: 41 at /build/linux-lts-xenial-FdAdUy/linux-
> lts-xenial-4.4.0/ubuntu/i915/intel_pm.c:3675
> skl_update_other_pipe_wm+0x191/0x1a0 [i915_bpo]()
wm programming issues, which will kill your box. Needs a newer kernel
to fix (both the wm programming issues, and that wm programming issues
lead to system death).
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-09 16:59 ` Daniel Vetter
@ 2017-01-09 17:22 ` Dave Hansen
-1 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-09 17:22 UTC (permalink / raw)
To: Daniel Vetter
Cc: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/09/2017 08:59 AM, Daniel Vetter wrote:
> On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
>>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>>> Well, now I found where the -2 comes from.
>>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
>>>> fails to add the kobject (warning below). But, it does zero error
>>>> checking on the drm_connector_register() call and leaves the
>>>> partially-constructed connector in place.
>>>>
>>>> The next time some poor, hapless code goes and tries to do anything with
>>>> that kdev, they oops. I'm perplexed by this, though. The
>>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
>>>> a bit goofy that it can't even _return_ failure.
>>>>
>>>> Is there some stable code to go back to here? Or, is there something
>>>> about my configuration that's unique? I really wonder why nobody else
>>>> is running into this.
>>>>
>>>> There's probably some other race going on here. This warning doesn't
>>>> happen on every boot.
>>> This smells more like the root-cause: Something goes wrong on boot
>>> that prevents connectors from properly registering, then we fall over
>>> later on. And the register callback is intentionally void, assuming
>>> that any prep work has been done earlier and that therefore the
>>> register step can't fail. Can you pls check whether the oops later on
>>> only happens together with this warning at boot, or whether they're
>>> not correlated?
>>
>> Looking through my logs, I can't find any instance of the oops without
>> the warning at boot. So I do think the later oops is entirely caused by
>> the issue warned about in early boot.
>
> Hm, I guess then we'd need to fix that boot-up warning. Can you try to
> figure out why it's unhappy? On a hunch it could be that we call
> drm_connector_register from the mst probe worker before the main
> driver load thread has reached the drm_dev_register call. A few printk
> to decide whether that's the case (plus a few boot-up tests to gather
> the statistics, sorry about that) would be real great.
>
> If that's inconclusive I'm again a bit low on ideas ...
I'll do that shortly. But, for now I can confirm that the failure is
precipitated by the !parent check in sysfs_create_dir_ns().
I also can't reproduce this if I build i915 as a module. It only
happens when built in.
> Jan 9 09:07:34 ray kernel: [ 1.400547] sysfs_create_dir_ns()::53 error: -2
> Jan 9 09:07:34 ray kernel: [ 1.400554] create_dir()::75 error: -2
> Jan 9 09:07:34 ray kernel: [ 1.400558] ------------[ cut here ]------------
> Jan 9 09:07:34 ray kernel: [ 1.400565] WARNING: CPU: 1 PID: 90 at lib/kobject.c:249 kobject_add_internal+0x273/0x320
> Jan 9 09:07:34 ray kernel: [ 1.400569] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> Jan 9 09:07:34 ray kernel: [ 1.400572] Modules linked in:
> Jan 9 09:07:34 ray kernel: [ 1.400577] CPU: 1 PID: 90 Comm: kworker/1:2 Not tainted 4.10.0-rc3-dirty #61
> Jan 9 09:07:34 ray kernel: [ 1.400579] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> Jan 9 09:07:34 ray kernel: [ 1.400585] Workqueue: events_long drm_dp_mst_link_probe_work
> Jan 9 09:07:34 ray kernel: [ 1.400588] Call Trace:
> Jan 9 09:07:34 ray kernel: [ 1.400593] dump_stack+0x67/0x99
> Jan 9 09:07:34 ray kernel: [ 1.400598] __warn+0xd1/0xf0
> Jan 9 09:07:34 ray kernel: [ 1.400601] warn_slowpath_fmt+0x4f/0x60
> Jan 9 09:07:34 ray kernel: [ 1.400604] kobject_add_internal+0x273/0x320
> Jan 9 09:07:34 ray kernel: [ 1.400607] kobject_add+0x65/0xb0
> Jan 9 09:07:34 ray kernel: [ 1.400611] ? klist_init+0x31/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400615] device_add+0x102/0x5d0
> Jan 9 09:07:34 ray kernel: [ 1.400619] ? kfree_const+0x22/0x30
> Jan 9 09:07:34 ray kernel: [ 1.400623] device_create_groups_vargs+0xd8/0x100
> Jan 9 09:07:34 ray kernel: [ 1.400626] device_create_with_groups+0x36/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400631] ? drm_fb_helper_add_one_connector+0x57/0xd0
> Jan 9 09:07:34 ray kernel: [ 1.400636] ? kmem_cache_alloc_trace+0x1d2/0x1f0
> Jan 9 09:07:34 ray kernel: [ 1.400641] drm_sysfs_connector_add+0x60/0xe0
> Jan 9 09:07:34 ray kernel: [ 1.400645] drm_connector_register+0x21/0xc0
> Jan 9 09:07:34 ray kernel: [ 1.400649] intel_dp_register_mst_connector+0x41/0x50
> Jan 9 09:07:34 ray kernel: [ 1.400653] drm_dp_add_port+0x350/0x450
> Jan 9 09:07:34 ray kernel: [ 1.400657] ? rcu_early_boot_tests+0x1/0x10
> Jan 9 09:07:34 ray kernel: [ 1.400660] ? schedule_timeout+0x1cd/0x390
> Jan 9 09:07:34 ray kernel: [ 1.400664] ? __might_sleep+0x4a/0x90
> Jan 9 09:07:34 ray kernel: [ 1.400667] ? mutex_lock+0x25/0x50
> Jan 9 09:07:34 ray kernel: [ 1.400670] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> Jan 9 09:07:34 ray kernel: [ 1.400673] ? prepare_to_wait_event+0x120/0x120
> Jan 9 09:07:34 ray kernel: [ 1.400675] drm_sysfs_connector_add() connector: ffff88040c778000 kdev: ffff88040ef15000
> Jan 9 09:07:34 ray kernel: [ 1.400681] ? drm_dp_check_mstb_guid+0x3d/0x120
> Jan 9 09:07:34 ray kernel: [ 1.400684] drm_dp_send_link_address+0x185/0x1f0
> Jan 9 09:07:34 ray kernel: [ 1.400688] drm_dp_check_and_send_link_address+0xad/0xc0
> Jan 9 09:07:34 ray kernel: [ 1.400691] drm_dp_mst_link_probe_work+0x57/0xa0
> Jan 9 09:07:34 ray kernel: [ 1.400694] process_one_work+0x14b/0x430
> Jan 9 09:07:34 ray kernel: [ 1.400697] worker_thread+0x12b/0x4a0
> Jan 9 09:07:34 ray kernel: [ 1.400700] kthread+0x10c/0x140
> Jan 9 09:07:34 ray kernel: [ 1.400703] ? process_one_work+0x430/0x430
> Jan 9 09:07:34 ray kernel: [ 1.400706] ? kthread_create_on_node+0x40/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400709] ret_from_fork+0x27/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400714] ---[ end trace 0009c9dc7b253d9c ]---
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-09 17:22 ` Dave Hansen
0 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-09 17:22 UTC (permalink / raw)
To: Daniel Vetter
Cc: David Airlie, intel-gfx, Linux Kernel Mailing List, dri-devel,
Daniel Vetter
On 01/09/2017 08:59 AM, Daniel Vetter wrote:
> On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
>>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>>> Well, now I found where the -2 comes from.
>>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
>>>> fails to add the kobject (warning below). But, it does zero error
>>>> checking on the drm_connector_register() call and leaves the
>>>> partially-constructed connector in place.
>>>>
>>>> The next time some poor, hapless code goes and tries to do anything with
>>>> that kdev, they oops. I'm perplexed by this, though. The
>>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
>>>> a bit goofy that it can't even _return_ failure.
>>>>
>>>> Is there some stable code to go back to here? Or, is there something
>>>> about my configuration that's unique? I really wonder why nobody else
>>>> is running into this.
>>>>
>>>> There's probably some other race going on here. This warning doesn't
>>>> happen on every boot.
>>> This smells more like the root-cause: Something goes wrong on boot
>>> that prevents connectors from properly registering, then we fall over
>>> later on. And the register callback is intentionally void, assuming
>>> that any prep work has been done earlier and that therefore the
>>> register step can't fail. Can you pls check whether the oops later on
>>> only happens together with this warning at boot, or whether they're
>>> not correlated?
>>
>> Looking through my logs, I can't find any instance of the oops without
>> the warning at boot. So I do think the later oops is entirely caused by
>> the issue warned about in early boot.
>
> Hm, I guess then we'd need to fix that boot-up warning. Can you try to
> figure out why it's unhappy? On a hunch it could be that we call
> drm_connector_register from the mst probe worker before the main
> driver load thread has reached the drm_dev_register call. A few printk
> to decide whether that's the case (plus a few boot-up tests to gather
> the statistics, sorry about that) would be real great.
>
> If that's inconclusive I'm again a bit low on ideas ...
I'll do that shortly. But, for now I can confirm that the failure is
precipitated by the !parent check in sysfs_create_dir_ns().
I also can't reproduce this if I build i915 as a module. It only
happens when built in.
> Jan 9 09:07:34 ray kernel: [ 1.400547] sysfs_create_dir_ns()::53 error: -2
> Jan 9 09:07:34 ray kernel: [ 1.400554] create_dir()::75 error: -2
> Jan 9 09:07:34 ray kernel: [ 1.400558] ------------[ cut here ]------------
> Jan 9 09:07:34 ray kernel: [ 1.400565] WARNING: CPU: 1 PID: 90 at lib/kobject.c:249 kobject_add_internal+0x273/0x320
> Jan 9 09:07:34 ray kernel: [ 1.400569] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> Jan 9 09:07:34 ray kernel: [ 1.400572] Modules linked in:
> Jan 9 09:07:34 ray kernel: [ 1.400577] CPU: 1 PID: 90 Comm: kworker/1:2 Not tainted 4.10.0-rc3-dirty #61
> Jan 9 09:07:34 ray kernel: [ 1.400579] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> Jan 9 09:07:34 ray kernel: [ 1.400585] Workqueue: events_long drm_dp_mst_link_probe_work
> Jan 9 09:07:34 ray kernel: [ 1.400588] Call Trace:
> Jan 9 09:07:34 ray kernel: [ 1.400593] dump_stack+0x67/0x99
> Jan 9 09:07:34 ray kernel: [ 1.400598] __warn+0xd1/0xf0
> Jan 9 09:07:34 ray kernel: [ 1.400601] warn_slowpath_fmt+0x4f/0x60
> Jan 9 09:07:34 ray kernel: [ 1.400604] kobject_add_internal+0x273/0x320
> Jan 9 09:07:34 ray kernel: [ 1.400607] kobject_add+0x65/0xb0
> Jan 9 09:07:34 ray kernel: [ 1.400611] ? klist_init+0x31/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400615] device_add+0x102/0x5d0
> Jan 9 09:07:34 ray kernel: [ 1.400619] ? kfree_const+0x22/0x30
> Jan 9 09:07:34 ray kernel: [ 1.400623] device_create_groups_vargs+0xd8/0x100
> Jan 9 09:07:34 ray kernel: [ 1.400626] device_create_with_groups+0x36/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400631] ? drm_fb_helper_add_one_connector+0x57/0xd0
> Jan 9 09:07:34 ray kernel: [ 1.400636] ? kmem_cache_alloc_trace+0x1d2/0x1f0
> Jan 9 09:07:34 ray kernel: [ 1.400641] drm_sysfs_connector_add+0x60/0xe0
> Jan 9 09:07:34 ray kernel: [ 1.400645] drm_connector_register+0x21/0xc0
> Jan 9 09:07:34 ray kernel: [ 1.400649] intel_dp_register_mst_connector+0x41/0x50
> Jan 9 09:07:34 ray kernel: [ 1.400653] drm_dp_add_port+0x350/0x450
> Jan 9 09:07:34 ray kernel: [ 1.400657] ? rcu_early_boot_tests+0x1/0x10
> Jan 9 09:07:34 ray kernel: [ 1.400660] ? schedule_timeout+0x1cd/0x390
> Jan 9 09:07:34 ray kernel: [ 1.400664] ? __might_sleep+0x4a/0x90
> Jan 9 09:07:34 ray kernel: [ 1.400667] ? mutex_lock+0x25/0x50
> Jan 9 09:07:34 ray kernel: [ 1.400670] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> Jan 9 09:07:34 ray kernel: [ 1.400673] ? prepare_to_wait_event+0x120/0x120
> Jan 9 09:07:34 ray kernel: [ 1.400675] drm_sysfs_connector_add() connector: ffff88040c778000 kdev: ffff88040ef15000
> Jan 9 09:07:34 ray kernel: [ 1.400681] ? drm_dp_check_mstb_guid+0x3d/0x120
> Jan 9 09:07:34 ray kernel: [ 1.400684] drm_dp_send_link_address+0x185/0x1f0
> Jan 9 09:07:34 ray kernel: [ 1.400688] drm_dp_check_and_send_link_address+0xad/0xc0
> Jan 9 09:07:34 ray kernel: [ 1.400691] drm_dp_mst_link_probe_work+0x57/0xa0
> Jan 9 09:07:34 ray kernel: [ 1.400694] process_one_work+0x14b/0x430
> Jan 9 09:07:34 ray kernel: [ 1.400697] worker_thread+0x12b/0x4a0
> Jan 9 09:07:34 ray kernel: [ 1.400700] kthread+0x10c/0x140
> Jan 9 09:07:34 ray kernel: [ 1.400703] ? process_one_work+0x430/0x430
> Jan 9 09:07:34 ray kernel: [ 1.400706] ? kthread_create_on_node+0x40/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400709] ret_from_fork+0x27/0x40
> Jan 9 09:07:34 ray kernel: [ 1.400714] ---[ end trace 0009c9dc7b253d9c ]---
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-09 17:22 ` Dave Hansen
(?)
@ 2017-01-09 19:34 ` Alex Deucher
-1 siblings, 0 replies; 38+ messages in thread
From: Alex Deucher @ 2017-01-09 19:34 UTC (permalink / raw)
To: Dave Hansen, Andrey Grodzovsky
Cc: Daniel Vetter, intel-gfx, Linux Kernel Mailing List, dri-devel,
Daniel Vetter
On Mon, Jan 9, 2017 at 12:22 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> On 01/09/2017 08:59 AM, Daniel Vetter wrote:
>> On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
>>>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>>>> Well, now I found where the -2 comes from.
>>>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
>>>>> fails to add the kobject (warning below). But, it does zero error
>>>>> checking on the drm_connector_register() call and leaves the
>>>>> partially-constructed connector in place.
>>>>>
>>>>> The next time some poor, hapless code goes and tries to do anything with
>>>>> that kdev, they oops. I'm perplexed by this, though. The
>>>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
>>>>> a bit goofy that it can't even _return_ failure.
>>>>>
>>>>> Is there some stable code to go back to here? Or, is there something
>>>>> about my configuration that's unique? I really wonder why nobody else
>>>>> is running into this.
>>>>>
>>>>> There's probably some other race going on here. This warning doesn't
>>>>> happen on every boot.
>>>> This smells more like the root-cause: Something goes wrong on boot
>>>> that prevents connectors from properly registering, then we fall over
>>>> later on. And the register callback is intentionally void, assuming
>>>> that any prep work has been done earlier and that therefore the
>>>> register step can't fail. Can you pls check whether the oops later on
>>>> only happens together with this warning at boot, or whether they're
>>>> not correlated?
>>>
>>> Looking through my logs, I can't find any instance of the oops without
>>> the warning at boot. So I do think the later oops is entirely caused by
>>> the issue warned about in early boot.
>>
>> Hm, I guess then we'd need to fix that boot-up warning. Can you try to
>> figure out why it's unhappy? On a hunch it could be that we call
>> drm_connector_register from the mst probe worker before the main
>> driver load thread has reached the drm_dev_register call. A few printk
>> to decide whether that's the case (plus a few boot-up tests to gather
>> the statistics, sorry about that) would be real great.
>>
>> If that's inconclusive I'm again a bit low on ideas ...
>
> I'll do that shortly. But, for now I can confirm that the failure is
> precipitated by the !parent check in sysfs_create_dir_ns().
>
> I also can't reproduce this if I build i915 as a module. It only
> happens when built in.
FWIW, we ran into a race with fbdev and mst topology discovery. Maybe
you are seeing something similar?
Alex
>
>> Jan 9 09:07:34 ray kernel: [ 1.400547] sysfs_create_dir_ns()::53 error: -2
>> Jan 9 09:07:34 ray kernel: [ 1.400554] create_dir()::75 error: -2
>> Jan 9 09:07:34 ray kernel: [ 1.400558] ------------[ cut here ]------------
>> Jan 9 09:07:34 ray kernel: [ 1.400565] WARNING: CPU: 1 PID: 90 at lib/kobject.c:249 kobject_add_internal+0x273/0x320
>> Jan 9 09:07:34 ray kernel: [ 1.400569] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
>> Jan 9 09:07:34 ray kernel: [ 1.400572] Modules linked in:
>> Jan 9 09:07:34 ray kernel: [ 1.400577] CPU: 1 PID: 90 Comm: kworker/1:2 Not tainted 4.10.0-rc3-dirty #61
>> Jan 9 09:07:34 ray kernel: [ 1.400579] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
>> Jan 9 09:07:34 ray kernel: [ 1.400585] Workqueue: events_long drm_dp_mst_link_probe_work
>> Jan 9 09:07:34 ray kernel: [ 1.400588] Call Trace:
>> Jan 9 09:07:34 ray kernel: [ 1.400593] dump_stack+0x67/0x99
>> Jan 9 09:07:34 ray kernel: [ 1.400598] __warn+0xd1/0xf0
>> Jan 9 09:07:34 ray kernel: [ 1.400601] warn_slowpath_fmt+0x4f/0x60
>> Jan 9 09:07:34 ray kernel: [ 1.400604] kobject_add_internal+0x273/0x320
>> Jan 9 09:07:34 ray kernel: [ 1.400607] kobject_add+0x65/0xb0
>> Jan 9 09:07:34 ray kernel: [ 1.400611] ? klist_init+0x31/0x40
>> Jan 9 09:07:34 ray kernel: [ 1.400615] device_add+0x102/0x5d0
>> Jan 9 09:07:34 ray kernel: [ 1.400619] ? kfree_const+0x22/0x30
>> Jan 9 09:07:34 ray kernel: [ 1.400623] device_create_groups_vargs+0xd8/0x100
>> Jan 9 09:07:34 ray kernel: [ 1.400626] device_create_with_groups+0x36/0x40
>> Jan 9 09:07:34 ray kernel: [ 1.400631] ? drm_fb_helper_add_one_connector+0x57/0xd0
>> Jan 9 09:07:34 ray kernel: [ 1.400636] ? kmem_cache_alloc_trace+0x1d2/0x1f0
>> Jan 9 09:07:34 ray kernel: [ 1.400641] drm_sysfs_connector_add+0x60/0xe0
>> Jan 9 09:07:34 ray kernel: [ 1.400645] drm_connector_register+0x21/0xc0
>> Jan 9 09:07:34 ray kernel: [ 1.400649] intel_dp_register_mst_connector+0x41/0x50
>> Jan 9 09:07:34 ray kernel: [ 1.400653] drm_dp_add_port+0x350/0x450
>> Jan 9 09:07:34 ray kernel: [ 1.400657] ? rcu_early_boot_tests+0x1/0x10
>> Jan 9 09:07:34 ray kernel: [ 1.400660] ? schedule_timeout+0x1cd/0x390
>> Jan 9 09:07:34 ray kernel: [ 1.400664] ? __might_sleep+0x4a/0x90
>> Jan 9 09:07:34 ray kernel: [ 1.400667] ? mutex_lock+0x25/0x50
>> Jan 9 09:07:34 ray kernel: [ 1.400670] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
>> Jan 9 09:07:34 ray kernel: [ 1.400673] ? prepare_to_wait_event+0x120/0x120
>> Jan 9 09:07:34 ray kernel: [ 1.400675] drm_sysfs_connector_add() connector: ffff88040c778000 kdev: ffff88040ef15000
>> Jan 9 09:07:34 ray kernel: [ 1.400681] ? drm_dp_check_mstb_guid+0x3d/0x120
>> Jan 9 09:07:34 ray kernel: [ 1.400684] drm_dp_send_link_address+0x185/0x1f0
>> Jan 9 09:07:34 ray kernel: [ 1.400688] drm_dp_check_and_send_link_address+0xad/0xc0
>> Jan 9 09:07:34 ray kernel: [ 1.400691] drm_dp_mst_link_probe_work+0x57/0xa0
>> Jan 9 09:07:34 ray kernel: [ 1.400694] process_one_work+0x14b/0x430
>> Jan 9 09:07:34 ray kernel: [ 1.400697] worker_thread+0x12b/0x4a0
>> Jan 9 09:07:34 ray kernel: [ 1.400700] kthread+0x10c/0x140
>> Jan 9 09:07:34 ray kernel: [ 1.400703] ? process_one_work+0x430/0x430
>> Jan 9 09:07:34 ray kernel: [ 1.400706] ? kthread_create_on_node+0x40/0x40
>> Jan 9 09:07:34 ray kernel: [ 1.400709] ret_from_fork+0x27/0x40
>> Jan 9 09:07:34 ray kernel: [ 1.400714] ---[ end trace 0009c9dc7b253d9c ]---
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-09 16:59 ` Daniel Vetter
@ 2017-01-09 17:42 ` Dave Hansen
-1 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-09 17:42 UTC (permalink / raw)
To: Daniel Vetter
Cc: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/09/2017 08:59 AM, Daniel Vetter wrote:
> On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
>>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>>> Well, now I found where the -2 comes from.
>>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
>>>> fails to add the kobject (warning below). But, it does zero error
>>>> checking on the drm_connector_register() call and leaves the
>>>> partially-constructed connector in place.
>>>>
>>>> The next time some poor, hapless code goes and tries to do anything with
>>>> that kdev, they oops. I'm perplexed by this, though. The
>>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
>>>> a bit goofy that it can't even _return_ failure.
>>>>
>>>> Is there some stable code to go back to here? Or, is there something
>>>> about my configuration that's unique? I really wonder why nobody else
>>>> is running into this.
>>>>
>>>> There's probably some other race going on here. This warning doesn't
>>>> happen on every boot.
>>> This smells more like the root-cause: Something goes wrong on boot
>>> that prevents connectors from properly registering, then we fall over
>>> later on. And the register callback is intentionally void, assuming
>>> that any prep work has been done earlier and that therefore the
>>> register step can't fail. Can you pls check whether the oops later on
>>> only happens together with this warning at boot, or whether they're
>>> not correlated?
>>
>> Looking through my logs, I can't find any instance of the oops without
>> the warning at boot. So I do think the later oops is entirely caused by
>> the issue warned about in early boot.
>
> Hm, I guess then we'd need to fix that boot-up warning. Can you try to
> figure out why it's unhappy? On a hunch it could be that we call
> drm_connector_register from the mst probe worker before the main
> driver load thread has reached the drm_dev_register call. A few printk
> to decide whether that's the case (plus a few boot-up tests to gather
> the statistics, sorry about that) would be real great.
I think your suspicion is correct.
The WARNING is getting printed from CPU0 (the
drm_dp_mst_link_probe_work() thread) and we can see the
drm_connector_register()s happening in parallel on CPU1 while the
WARNING is getting printed out.
This seems to happen very consistently when i915 is built into the kernel.
> [ 1.404237] drm_dev_register(00000000000002da)::209092608 cpu: 1
> [ 1.404284] drm_connector_register(ffff88040ed3e800)::379 connector->registered: 0 cpu: 0
> [ 1.404293] sysfs_create_dir_ns()::53 error: -2
> [ 1.404295] create_dir()::75 error: -2 cpu: 0
> [ 1.404298] ------------[ cut here ]------------
> [ 1.404304] WARNING: CPU: 0 PID: 3 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> [ 1.404308] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> [ 1.404311] Modules linked in:
> [ 1.404316] CPU: 0 PID: 3 Comm: kworker/0:0 Not tainted 4.10.0-rc3-i915borked-dirty #66
> [ 1.404319] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> [ 1.404325] Workqueue: events_long drm_dp_mst_link_probe_work
> [ 1.404328] Call Trace:
> [ 1.404334] dump_stack+0x67/0x99
> [ 1.404338] __warn+0xd1/0xf0
> [ 1.404342] warn_slowpath_fmt+0x4f/0x60
> [ 1.404345] kobject_add_internal+0x273/0x330
> [ 1.404347] kobject_add+0x65/0xb0
> [ 1.404352] ? klist_init+0x31/0x40
> [ 1.404356] device_add+0x102/0x5d0
> [ 1.404360] ? kfree_const+0x22/0x30
> [ 1.404364] device_create_groups_vargs+0xd8/0x100
> [ 1.404367] device_create_with_groups+0x36/0x40
> [ 1.404370] drm_connector_register(ffff88040c779000)::379 connector->registered: 0 cpu: 1
> [ 1.404374] ? vprintk_default+0x29/0x50
> [ 1.404375] ? printk+0x4d/0x4f
> [ 1.404378] drm_sysfs_connector_add+0x60/0xe0
> [ 1.404381] drm_connector_register+0x4e/0x100
> [ 1.404383] intel_dp_register_mst_connector+0x41/0x50
> [ 1.404385] drm_dp_add_port+0x350/0x450
> [ 1.404388] ? rcu_early_boot_tests+0x1/0x10
> [ 1.404390] ? schedule_timeout+0x1cd/0x390
> [ 1.404392] ? __might_sleep+0x4a/0x90
> [ 1.404394] ? mutex_lock+0x25/0x50
> [ 1.404395] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> [ 1.404397] ? prepare_to_wait_event+0x120/0x120
> [ 1.404399] ? drm_dp_check_mstb_guid+0x3d/0x120
> [ 1.404401] drm_dp_send_link_address+0x185/0x1f0
> [ 1.404403] drm_dp_check_and_send_link_address+0xad/0xc0
> [ 1.404405] drm_dp_mst_link_probe_work+0x57/0xa0
> [ 1.404407] process_one_work+0x14b/0x430
> [ 1.404408] worker_thread+0x12b/0x4a0
> [ 1.404410] kthread+0x10c/0x140
> [ 1.404411] ? process_one_work+0x430/0x430
> [ 1.404413] ? kthread_create_on_node+0x40/0x40
> [ 1.404415] ret_from_fork+0x27/0x40
> [ 1.404418] ---[ end trace 952a97b7cba4984f ]---
> [ 1.404420] drm_sysfs_connector_add() connector: ffff88040ed3e800 kdev: fffffffffffffffe
> [ 1.404422] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> [ 1.404453] drm_sysfs_connector_add() connector: ffff88040c779000 kdev: ffff88040c771c00
> [ 1.404508] drm_connector_register(ffff88040c779000)::402 connector->registered: 1 cpu: 1
> [ 1.404512] drm_connector_register(ffff88040ed3b800)::379 connector->registered: 0 cpu: 1
> [ 1.404531] drm_sysfs_connector_add() connector: ffff88040ed3b800 kdev: ffff88040c772000
> [ 1.404559] drm_connector_register(ffff88040ed3b800)::402 connector->registered: 1 cpu: 1
> [ 1.404564] drm_connector_register(ffff88040ed3c000)::379 connector->registered: 0 cpu: 1
> [ 1.404583] drm_sysfs_connector_add() connector: ffff88040ed3c000 kdev: ffff88040c772400
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-09 17:42 ` Dave Hansen
0 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-09 17:42 UTC (permalink / raw)
To: Daniel Vetter
Cc: David Airlie, intel-gfx, Linux Kernel Mailing List, dri-devel,
Daniel Vetter
On 01/09/2017 08:59 AM, Daniel Vetter wrote:
> On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
>>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>>>> Well, now I found where the -2 comes from.
>>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
>>>> fails to add the kobject (warning below). But, it does zero error
>>>> checking on the drm_connector_register() call and leaves the
>>>> partially-constructed connector in place.
>>>>
>>>> The next time some poor, hapless code goes and tries to do anything with
>>>> that kdev, they oops. I'm perplexed by this, though. The
>>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
>>>> a bit goofy that it can't even _return_ failure.
>>>>
>>>> Is there some stable code to go back to here? Or, is there something
>>>> about my configuration that's unique? I really wonder why nobody else
>>>> is running into this.
>>>>
>>>> There's probably some other race going on here. This warning doesn't
>>>> happen on every boot.
>>> This smells more like the root-cause: Something goes wrong on boot
>>> that prevents connectors from properly registering, then we fall over
>>> later on. And the register callback is intentionally void, assuming
>>> that any prep work has been done earlier and that therefore the
>>> register step can't fail. Can you pls check whether the oops later on
>>> only happens together with this warning at boot, or whether they're
>>> not correlated?
>>
>> Looking through my logs, I can't find any instance of the oops without
>> the warning at boot. So I do think the later oops is entirely caused by
>> the issue warned about in early boot.
>
> Hm, I guess then we'd need to fix that boot-up warning. Can you try to
> figure out why it's unhappy? On a hunch it could be that we call
> drm_connector_register from the mst probe worker before the main
> driver load thread has reached the drm_dev_register call. A few printk
> to decide whether that's the case (plus a few boot-up tests to gather
> the statistics, sorry about that) would be real great.
I think your suspicion is correct.
The WARNING is getting printed from CPU0 (the
drm_dp_mst_link_probe_work() thread) and we can see the
drm_connector_register()s happening in parallel on CPU1 while the
WARNING is getting printed out.
This seems to happen very consistently when i915 is built into the kernel.
> [ 1.404237] drm_dev_register(00000000000002da)::209092608 cpu: 1
> [ 1.404284] drm_connector_register(ffff88040ed3e800)::379 connector->registered: 0 cpu: 0
> [ 1.404293] sysfs_create_dir_ns()::53 error: -2
> [ 1.404295] create_dir()::75 error: -2 cpu: 0
> [ 1.404298] ------------[ cut here ]------------
> [ 1.404304] WARNING: CPU: 0 PID: 3 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> [ 1.404308] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> [ 1.404311] Modules linked in:
> [ 1.404316] CPU: 0 PID: 3 Comm: kworker/0:0 Not tainted 4.10.0-rc3-i915borked-dirty #66
> [ 1.404319] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> [ 1.404325] Workqueue: events_long drm_dp_mst_link_probe_work
> [ 1.404328] Call Trace:
> [ 1.404334] dump_stack+0x67/0x99
> [ 1.404338] __warn+0xd1/0xf0
> [ 1.404342] warn_slowpath_fmt+0x4f/0x60
> [ 1.404345] kobject_add_internal+0x273/0x330
> [ 1.404347] kobject_add+0x65/0xb0
> [ 1.404352] ? klist_init+0x31/0x40
> [ 1.404356] device_add+0x102/0x5d0
> [ 1.404360] ? kfree_const+0x22/0x30
> [ 1.404364] device_create_groups_vargs+0xd8/0x100
> [ 1.404367] device_create_with_groups+0x36/0x40
> [ 1.404370] drm_connector_register(ffff88040c779000)::379 connector->registered: 0 cpu: 1
> [ 1.404374] ? vprintk_default+0x29/0x50
> [ 1.404375] ? printk+0x4d/0x4f
> [ 1.404378] drm_sysfs_connector_add+0x60/0xe0
> [ 1.404381] drm_connector_register+0x4e/0x100
> [ 1.404383] intel_dp_register_mst_connector+0x41/0x50
> [ 1.404385] drm_dp_add_port+0x350/0x450
> [ 1.404388] ? rcu_early_boot_tests+0x1/0x10
> [ 1.404390] ? schedule_timeout+0x1cd/0x390
> [ 1.404392] ? __might_sleep+0x4a/0x90
> [ 1.404394] ? mutex_lock+0x25/0x50
> [ 1.404395] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> [ 1.404397] ? prepare_to_wait_event+0x120/0x120
> [ 1.404399] ? drm_dp_check_mstb_guid+0x3d/0x120
> [ 1.404401] drm_dp_send_link_address+0x185/0x1f0
> [ 1.404403] drm_dp_check_and_send_link_address+0xad/0xc0
> [ 1.404405] drm_dp_mst_link_probe_work+0x57/0xa0
> [ 1.404407] process_one_work+0x14b/0x430
> [ 1.404408] worker_thread+0x12b/0x4a0
> [ 1.404410] kthread+0x10c/0x140
> [ 1.404411] ? process_one_work+0x430/0x430
> [ 1.404413] ? kthread_create_on_node+0x40/0x40
> [ 1.404415] ret_from_fork+0x27/0x40
> [ 1.404418] ---[ end trace 952a97b7cba4984f ]---
> [ 1.404420] drm_sysfs_connector_add() connector: ffff88040ed3e800 kdev: fffffffffffffffe
> [ 1.404422] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> [ 1.404453] drm_sysfs_connector_add() connector: ffff88040c779000 kdev: ffff88040c771c00
> [ 1.404508] drm_connector_register(ffff88040c779000)::402 connector->registered: 1 cpu: 1
> [ 1.404512] drm_connector_register(ffff88040ed3b800)::379 connector->registered: 0 cpu: 1
> [ 1.404531] drm_sysfs_connector_add() connector: ffff88040ed3b800 kdev: ffff88040c772000
> [ 1.404559] drm_connector_register(ffff88040ed3b800)::402 connector->registered: 1 cpu: 1
> [ 1.404564] drm_connector_register(ffff88040ed3c000)::379 connector->registered: 0 cpu: 1
> [ 1.404583] drm_sysfs_connector_add() connector: ffff88040ed3c000 kdev: ffff88040c772400
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-09 17:42 ` Dave Hansen
(?)
@ 2017-01-10 10:31 ` Daniel Vetter
2017-01-10 16:52 ` Dave Hansen
-1 siblings, 1 reply; 38+ messages in thread
From: Daniel Vetter @ 2017-01-10 10:31 UTC (permalink / raw)
To: Dave Hansen
Cc: Daniel Vetter, Daniel Vetter, Jani Nikula, David Airlie,
intel-gfx, dri-devel, Linux Kernel Mailing List
On Mon, Jan 09, 2017 at 09:42:22AM -0800, Dave Hansen wrote:
> On 01/09/2017 08:59 AM, Daniel Vetter wrote:
> > On Mon, Jan 9, 2017 at 5:50 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> >> On 01/09/2017 08:41 AM, Daniel Vetter wrote:
> >>> On Mon, Jan 9, 2017 at 2:40 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> >>>> Well, now I found where the -2 comes from.
> >>>> intel_dp_register_mst_connector() calls drm_connector_register(), which
> >>>> fails to add the kobject (warning below). But, it does zero error
> >>>> checking on the drm_connector_register() call and leaves the
> >>>> partially-constructed connector in place.
> >>>>
> >>>> The next time some poor, hapless code goes and tries to do anything with
> >>>> that kdev, they oops. I'm perplexed by this, though. The
> >>>> drm_dp_mst_topology_cbs->register_connector just returns void. It seems
> >>>> a bit goofy that it can't even _return_ failure.
> >>>>
> >>>> Is there some stable code to go back to here? Or, is there something
> >>>> about my configuration that's unique? I really wonder why nobody else
> >>>> is running into this.
> >>>>
> >>>> There's probably some other race going on here. This warning doesn't
> >>>> happen on every boot.
> >>> This smells more like the root-cause: Something goes wrong on boot
> >>> that prevents connectors from properly registering, then we fall over
> >>> later on. And the register callback is intentionally void, assuming
> >>> that any prep work has been done earlier and that therefore the
> >>> register step can't fail. Can you pls check whether the oops later on
> >>> only happens together with this warning at boot, or whether they're
> >>> not correlated?
> >>
> >> Looking through my logs, I can't find any instance of the oops without
> >> the warning at boot. So I do think the later oops is entirely caused by
> >> the issue warned about in early boot.
> >
> > Hm, I guess then we'd need to fix that boot-up warning. Can you try to
> > figure out why it's unhappy? On a hunch it could be that we call
> > drm_connector_register from the mst probe worker before the main
> > driver load thread has reached the drm_dev_register call. A few printk
> > to decide whether that's the case (plus a few boot-up tests to gather
> > the statistics, sorry about that) would be real great.
>
> I think your suspicion is correct.
>
> The WARNING is getting printed from CPU0 (the
> drm_dp_mst_link_probe_work() thread) and we can see the
> drm_connector_register()s happening in parallel on CPU1 while the
> WARNING is getting printed out.
>
> This seems to happen very consistently when i915 is built into the kernel.
Do you have
commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Sun Dec 18 14:35:45 2016 +0100
drm: prevent double-(un)registration for connectors
Lack of that would perfectly explain that oops ... Otherwise still no idea
what's going wrong.
-Daniel
>
> > [ 1.404237] drm_dev_register(00000000000002da)::209092608 cpu: 1
> > [ 1.404284] drm_connector_register(ffff88040ed3e800)::379 connector->registered: 0 cpu: 0
> > [ 1.404293] sysfs_create_dir_ns()::53 error: -2
> > [ 1.404295] create_dir()::75 error: -2 cpu: 0
> > [ 1.404298] ------------[ cut here ]------------
> > [ 1.404304] WARNING: CPU: 0 PID: 3 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> > [ 1.404308] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> > [ 1.404311] Modules linked in:
> > [ 1.404316] CPU: 0 PID: 3 Comm: kworker/0:0 Not tainted 4.10.0-rc3-i915borked-dirty #66
> > [ 1.404319] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> > [ 1.404325] Workqueue: events_long drm_dp_mst_link_probe_work
> > [ 1.404328] Call Trace:
> > [ 1.404334] dump_stack+0x67/0x99
> > [ 1.404338] __warn+0xd1/0xf0
> > [ 1.404342] warn_slowpath_fmt+0x4f/0x60
> > [ 1.404345] kobject_add_internal+0x273/0x330
> > [ 1.404347] kobject_add+0x65/0xb0
> > [ 1.404352] ? klist_init+0x31/0x40
> > [ 1.404356] device_add+0x102/0x5d0
> > [ 1.404360] ? kfree_const+0x22/0x30
> > [ 1.404364] device_create_groups_vargs+0xd8/0x100
> > [ 1.404367] device_create_with_groups+0x36/0x40
> > [ 1.404370] drm_connector_register(ffff88040c779000)::379 connector->registered: 0 cpu: 1
> > [ 1.404374] ? vprintk_default+0x29/0x50
> > [ 1.404375] ? printk+0x4d/0x4f
> > [ 1.404378] drm_sysfs_connector_add+0x60/0xe0
> > [ 1.404381] drm_connector_register+0x4e/0x100
> > [ 1.404383] intel_dp_register_mst_connector+0x41/0x50
> > [ 1.404385] drm_dp_add_port+0x350/0x450
> > [ 1.404388] ? rcu_early_boot_tests+0x1/0x10
> > [ 1.404390] ? schedule_timeout+0x1cd/0x390
> > [ 1.404392] ? __might_sleep+0x4a/0x90
> > [ 1.404394] ? mutex_lock+0x25/0x50
> > [ 1.404395] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> > [ 1.404397] ? prepare_to_wait_event+0x120/0x120
> > [ 1.404399] ? drm_dp_check_mstb_guid+0x3d/0x120
> > [ 1.404401] drm_dp_send_link_address+0x185/0x1f0
> > [ 1.404403] drm_dp_check_and_send_link_address+0xad/0xc0
> > [ 1.404405] drm_dp_mst_link_probe_work+0x57/0xa0
> > [ 1.404407] process_one_work+0x14b/0x430
> > [ 1.404408] worker_thread+0x12b/0x4a0
> > [ 1.404410] kthread+0x10c/0x140
> > [ 1.404411] ? process_one_work+0x430/0x430
> > [ 1.404413] ? kthread_create_on_node+0x40/0x40
> > [ 1.404415] ret_from_fork+0x27/0x40
> > [ 1.404418] ---[ end trace 952a97b7cba4984f ]---
> > [ 1.404420] drm_sysfs_connector_add() connector: ffff88040ed3e800 kdev: fffffffffffffffe
> > [ 1.404422] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> > [ 1.404453] drm_sysfs_connector_add() connector: ffff88040c779000 kdev: ffff88040c771c00
> > [ 1.404508] drm_connector_register(ffff88040c779000)::402 connector->registered: 1 cpu: 1
> > [ 1.404512] drm_connector_register(ffff88040ed3b800)::379 connector->registered: 0 cpu: 1
> > [ 1.404531] drm_sysfs_connector_add() connector: ffff88040ed3b800 kdev: ffff88040c772000
> > [ 1.404559] drm_connector_register(ffff88040ed3b800)::402 connector->registered: 1 cpu: 1
> > [ 1.404564] drm_connector_register(ffff88040ed3c000)::379 connector->registered: 0 cpu: 1
> > [ 1.404583] drm_sysfs_connector_add() connector: ffff88040ed3c000 kdev: ffff88040c772400
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-10 10:31 ` [Intel-gfx] " Daniel Vetter
@ 2017-01-10 16:52 ` Dave Hansen
0 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-10 16:52 UTC (permalink / raw)
To: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/10/2017 02:31 AM, Daniel Vetter wrote:
> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date: Sun Dec 18 14:35:45 2016 +0100
>
> drm: prevent double-(un)registration for connectors
>
> Lack of that would perfectly explain that oops ... Otherwise still no idea
> what's going wrong.
No... That's not in mainline as far as I can see. Should I test with
it applied?
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-10 16:52 ` Dave Hansen
0 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-10 16:52 UTC (permalink / raw)
To: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/10/2017 02:31 AM, Daniel Vetter wrote:
> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date: Sun Dec 18 14:35:45 2016 +0100
>
> drm: prevent double-(un)registration for connectors
>
> Lack of that would perfectly explain that oops ... Otherwise still no idea
> what's going wrong.
No... That's not in mainline as far as I can see. Should I test with
it applied?
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-10 16:52 ` Dave Hansen
@ 2017-01-11 7:43 ` Daniel Vetter
-1 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-11 7:43 UTC (permalink / raw)
To: Dave Hansen
Cc: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
> > commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
> > Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Date: Sun Dec 18 14:35:45 2016 +0100
> >
> > drm: prevent double-(un)registration for connectors
> >
> > Lack of that would perfectly explain that oops ... Otherwise still no idea
> > what's going wrong.
>
> No... That's not in mainline as far as I can see. Should I test with
> it applied?
Hm, I guess failed to cc: stable that one properly, iirc we decided the
race fix is too academic and can't be hit in reality ;-)
Testing would be great. Probably conflicts because we extracted
drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
over the diff and then applying with some fudge should take care of that.
Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
@ 2017-01-11 7:43 ` Daniel Vetter
0 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-11 7:43 UTC (permalink / raw)
To: Dave Hansen
Cc: intel-gfx, Linux Kernel Mailing List, dri-devel, Daniel Vetter
On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
> > commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
> > Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Date: Sun Dec 18 14:35:45 2016 +0100
> >
> > drm: prevent double-(un)registration for connectors
> >
> > Lack of that would perfectly explain that oops ... Otherwise still no idea
> > what's going wrong.
>
> No... That's not in mainline as far as I can see. Should I test with
> it applied?
Hm, I guess failed to cc: stable that one properly, iirc we decided the
race fix is too academic and can't be hit in reality ;-)
Testing would be great. Probably conflicts because we extracted
drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
over the diff and then applying with some fudge should take care of that.
Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-11 7:43 ` Daniel Vetter
@ 2017-01-11 15:24 ` Dave Hansen
-1 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-11 15:24 UTC (permalink / raw)
To: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/10/2017 11:43 PM, Daniel Vetter wrote:
> On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
>> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
>>> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
>>> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Date: Sun Dec 18 14:35:45 2016 +0100
>>>
>>> drm: prevent double-(un)registration for connectors
>>>
>>> Lack of that would perfectly explain that oops ... Otherwise still no idea
>>> what's going wrong.
>> No... That's not in mainline as far as I can see. Should I test with
>> it applied?
> Hm, I guess failed to cc: stable that one properly, iirc we decided the
> race fix is too academic and can't be hit in reality ;-)
>
> Testing would be great. Probably conflicts because we extracted
> drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
> over the diff and then applying with some fudge should take care of that.
It doesn't apply to mainline, with or without the substitution you suggest.
Do you want that commit itself tested from -next?
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-11 15:24 ` Dave Hansen
0 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-11 15:24 UTC (permalink / raw)
To: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/10/2017 11:43 PM, Daniel Vetter wrote:
> On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
>> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
>>> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
>>> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Date: Sun Dec 18 14:35:45 2016 +0100
>>>
>>> drm: prevent double-(un)registration for connectors
>>>
>>> Lack of that would perfectly explain that oops ... Otherwise still no idea
>>> what's going wrong.
>> No... That's not in mainline as far as I can see. Should I test with
>> it applied?
> Hm, I guess failed to cc: stable that one properly, iirc we decided the
> race fix is too academic and can't be hit in reality ;-)
>
> Testing would be great. Probably conflicts because we extracted
> drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
> over the diff and then applying with some fudge should take care of that.
It doesn't apply to mainline, with or without the substitution you suggest.
Do you want that commit itself tested from -next?
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-11 15:24 ` Dave Hansen
@ 2017-01-11 15:39 ` Daniel Vetter
-1 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-11 15:39 UTC (permalink / raw)
To: Dave Hansen
Cc: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On Wed, Jan 11, 2017 at 4:24 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> On 01/10/2017 11:43 PM, Daniel Vetter wrote:
>> On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
>>> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
>>>> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
>>>> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>> Date: Sun Dec 18 14:35:45 2016 +0100
>>>>
>>>> drm: prevent double-(un)registration for connectors
>>>>
>>>> Lack of that would perfectly explain that oops ... Otherwise still no idea
>>>> what's going wrong.
>>> No... That's not in mainline as far as I can see. Should I test with
>>> it applied?
>> Hm, I guess failed to cc: stable that one properly, iirc we decided the
>> race fix is too academic and can't be hit in reality ;-)
>>
>> Testing would be great. Probably conflicts because we extracted
>> drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
>> over the diff and then applying with some fudge should take care of that.
>
> It doesn't apply to mainline, with or without the substitution you suggest.
>
> Do you want that commit itself tested from -next?
Hm, just cherry-picked it on top of Linus' latest 4.10 git, applies
cleanly there. The substituation was for 4.9. I can send you the patch
here, but seems all fine from what I can tell ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-11 15:39 ` Daniel Vetter
0 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-11 15:39 UTC (permalink / raw)
To: Dave Hansen
Cc: David Airlie, intel-gfx, Linux Kernel Mailing List, dri-devel,
Daniel Vetter
On Wed, Jan 11, 2017 at 4:24 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> On 01/10/2017 11:43 PM, Daniel Vetter wrote:
>> On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
>>> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
>>>> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
>>>> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>> Date: Sun Dec 18 14:35:45 2016 +0100
>>>>
>>>> drm: prevent double-(un)registration for connectors
>>>>
>>>> Lack of that would perfectly explain that oops ... Otherwise still no idea
>>>> what's going wrong.
>>> No... That's not in mainline as far as I can see. Should I test with
>>> it applied?
>> Hm, I guess failed to cc: stable that one properly, iirc we decided the
>> race fix is too academic and can't be hit in reality ;-)
>>
>> Testing would be great. Probably conflicts because we extracted
>> drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
>> over the diff and then applying with some fudge should take care of that.
>
> It doesn't apply to mainline, with or without the substitution you suggest.
>
> Do you want that commit itself tested from -next?
Hm, just cherry-picked it on top of Linus' latest 4.10 git, applies
cleanly there. The substituation was for 4.9. I can send you the patch
here, but seems all fine from what I can tell ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-11 15:39 ` Daniel Vetter
@ 2017-01-11 16:16 ` Dave Hansen
-1 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-11 16:16 UTC (permalink / raw)
To: Daniel Vetter
Cc: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
On 01/11/2017 07:39 AM, Daniel Vetter wrote:
> Hm, just cherry-picked it on top of Linus' latest 4.10 git, applies
> cleanly there. The substituation was for 4.9. I can send you the patch
> here, but seems all fine from what I can tell ...
All of the printk's that I added were making it fail to apply.
So, I took a 4.10-rc3 kernel with i915 compiled in (not as a module) and
applied e73ab00e9a0f17, which I grabbed from linux-next.
I'm seeing basically the same behavior that I did before applying
e73ab00e9a0f17. sysfs_create_dir_ns() fails because of a NULL kobj->parent.
Have you guys tried testing this yourselves? It seems really easy to
reproduce if you just compile the driver in.
> [ 1.400797] drm_dev_register(ffff88040c730000)::730 cpu: 2
> [ 1.400860] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 1
> [ 1.400870] sysfs_create_dir_ns()::53 error: -2
> [ 1.400874] create_dir()::75 error: -2 cpu: 1
> [ 1.400878] ------------[ cut here ]------------
> [ 1.400884] WARNING: CPU: 1 PID: 91 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> [ 1.400888] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> [ 1.400892] Modules linked in:
> [ 1.400896] CPU: 1 PID: 91 Comm: kworker/1:2 Not tainted 4.10.0-rc3-i915borked-dirty #67
> [ 1.400900] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> [ 1.400906] Workqueue: events_long drm_dp_mst_link_probe_work
> [ 1.400909] Call Trace:
> [ 1.400914] dump_stack+0x67/0x99
> [ 1.400918] __warn+0xd1/0xf0
> [ 1.400922] warn_slowpath_fmt+0x4f/0x60
> [ 1.400925] kobject_add_internal+0x273/0x330
> [ 1.400927] kobject_add+0x65/0xb0
> [ 1.400931] ? klist_init+0x31/0x40
> [ 1.400936] device_add+0x102/0x5d0
> [ 1.400940] ? kfree_const+0x22/0x30
> [ 1.400944] device_create_groups_vargs+0xd8/0x100
> [ 1.400947] device_create_with_groups+0x36/0x40
> [ 1.400952] ? vprintk_default+0x29/0x50
> [ 1.400957] ? __might_sleep+0x4a/0x90
> [ 1.400962] drm_sysfs_connector_add+0x60/0xe0
> [ 1.400967] drm_connector_register+0x74/0xd0
> [ 1.400971] intel_dp_register_mst_connector+0x41/0x50
> [ 1.400975] drm_dp_add_port+0x350/0x450
> [ 1.400977] drm_connector_register(ffff88040ee6f800)::382 connector->registered: 0 cpu: 2
> [ 1.400982] ? rcu_early_boot_tests+0x1/0x10
> [ 1.400986] ? schedule_timeout+0x1cd/0x390
> [ 1.400989] ? __might_sleep+0x4a/0x90
> [ 1.400992] ? mutex_lock+0x25/0x50
> [ 1.400995] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> [ 1.400996] drm_sysfs_connector_add() connector: ffff88040ee6f800 kdev: ffff88040eef9c00
> [ 1.401002] ? prepare_to_wait_event+0x120/0x120
> [ 1.401005] ? drm_dp_check_mstb_guid+0x3d/0x120
> [ 1.401008] drm_dp_send_link_address+0x185/0x1f0
> [ 1.401012] drm_dp_check_and_send_link_address+0xad/0xc0
> [ 1.401015] drm_dp_mst_link_probe_work+0x57/0xa0
> [ 1.401018] process_one_work+0x14b/0x430
> [ 1.401021] worker_thread+0x12b/0x4a0
> [ 1.401025] kthread+0x10c/0x140
> [ 1.401027] ? process_one_work+0x430/0x430
> [ 1.401030] ? kthread_create_on_node+0x40/0x40
> [ 1.401034] ret_from_fork+0x27/0x40
> [ 1.401038] ---[ end trace ba43fc250fbf282d ]---
> [ 1.401041] drm_sysfs_connector_add() connector: ffff88040c76b000 kdev: fffffffffffffffe
> [ 1.401043] drm_connector_register(ffff88040c768000)::382 connector->registered: 0 cpu: 2
> [ 1.401050] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> [ 1.401057] drm_sysfs_connector_add() connector: ffff88040c768000 kdev: ffff88040eefa000
> [ 1.401093] drm_connector_register(ffff88040c768800)::382 connector->registered: 0 cpu: 2
> [ 1.401113] drm_sysfs_connector_add() connector: ffff88040c768800 kdev: ffff88040eefa400
> [ 1.401122] drm_connector_register(ffff88040c769000)::382 connector->registered: 0 cpu: 2
> [ 1.401140] drm_sysfs_connector_add() connector: ffff88040c769000 kdev: ffff88040eefa800
> [ 1.401167] drm_connector_register(ffff88040c769800)::382 connector->registered: 0 cpu: 2
> [ 1.401186] drm_sysfs_connector_add() connector: ffff88040c769800 kdev: ffff88040eefac00
> [ 1.401195] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 2
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-11 16:16 ` Dave Hansen
0 siblings, 0 replies; 38+ messages in thread
From: Dave Hansen @ 2017-01-11 16:16 UTC (permalink / raw)
To: Daniel Vetter
Cc: David Airlie, intel-gfx, Linux Kernel Mailing List, dri-devel,
Daniel Vetter
On 01/11/2017 07:39 AM, Daniel Vetter wrote:
> Hm, just cherry-picked it on top of Linus' latest 4.10 git, applies
> cleanly there. The substituation was for 4.9. I can send you the patch
> here, but seems all fine from what I can tell ...
All of the printk's that I added were making it fail to apply.
So, I took a 4.10-rc3 kernel with i915 compiled in (not as a module) and
applied e73ab00e9a0f17, which I grabbed from linux-next.
I'm seeing basically the same behavior that I did before applying
e73ab00e9a0f17. sysfs_create_dir_ns() fails because of a NULL kobj->parent.
Have you guys tried testing this yourselves? It seems really easy to
reproduce if you just compile the driver in.
> [ 1.400797] drm_dev_register(ffff88040c730000)::730 cpu: 2
> [ 1.400860] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 1
> [ 1.400870] sysfs_create_dir_ns()::53 error: -2
> [ 1.400874] create_dir()::75 error: -2 cpu: 1
> [ 1.400878] ------------[ cut here ]------------
> [ 1.400884] WARNING: CPU: 1 PID: 91 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> [ 1.400888] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> [ 1.400892] Modules linked in:
> [ 1.400896] CPU: 1 PID: 91 Comm: kworker/1:2 Not tainted 4.10.0-rc3-i915borked-dirty #67
> [ 1.400900] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> [ 1.400906] Workqueue: events_long drm_dp_mst_link_probe_work
> [ 1.400909] Call Trace:
> [ 1.400914] dump_stack+0x67/0x99
> [ 1.400918] __warn+0xd1/0xf0
> [ 1.400922] warn_slowpath_fmt+0x4f/0x60
> [ 1.400925] kobject_add_internal+0x273/0x330
> [ 1.400927] kobject_add+0x65/0xb0
> [ 1.400931] ? klist_init+0x31/0x40
> [ 1.400936] device_add+0x102/0x5d0
> [ 1.400940] ? kfree_const+0x22/0x30
> [ 1.400944] device_create_groups_vargs+0xd8/0x100
> [ 1.400947] device_create_with_groups+0x36/0x40
> [ 1.400952] ? vprintk_default+0x29/0x50
> [ 1.400957] ? __might_sleep+0x4a/0x90
> [ 1.400962] drm_sysfs_connector_add+0x60/0xe0
> [ 1.400967] drm_connector_register+0x74/0xd0
> [ 1.400971] intel_dp_register_mst_connector+0x41/0x50
> [ 1.400975] drm_dp_add_port+0x350/0x450
> [ 1.400977] drm_connector_register(ffff88040ee6f800)::382 connector->registered: 0 cpu: 2
> [ 1.400982] ? rcu_early_boot_tests+0x1/0x10
> [ 1.400986] ? schedule_timeout+0x1cd/0x390
> [ 1.400989] ? __might_sleep+0x4a/0x90
> [ 1.400992] ? mutex_lock+0x25/0x50
> [ 1.400995] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> [ 1.400996] drm_sysfs_connector_add() connector: ffff88040ee6f800 kdev: ffff88040eef9c00
> [ 1.401002] ? prepare_to_wait_event+0x120/0x120
> [ 1.401005] ? drm_dp_check_mstb_guid+0x3d/0x120
> [ 1.401008] drm_dp_send_link_address+0x185/0x1f0
> [ 1.401012] drm_dp_check_and_send_link_address+0xad/0xc0
> [ 1.401015] drm_dp_mst_link_probe_work+0x57/0xa0
> [ 1.401018] process_one_work+0x14b/0x430
> [ 1.401021] worker_thread+0x12b/0x4a0
> [ 1.401025] kthread+0x10c/0x140
> [ 1.401027] ? process_one_work+0x430/0x430
> [ 1.401030] ? kthread_create_on_node+0x40/0x40
> [ 1.401034] ret_from_fork+0x27/0x40
> [ 1.401038] ---[ end trace ba43fc250fbf282d ]---
> [ 1.401041] drm_sysfs_connector_add() connector: ffff88040c76b000 kdev: fffffffffffffffe
> [ 1.401043] drm_connector_register(ffff88040c768000)::382 connector->registered: 0 cpu: 2
> [ 1.401050] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> [ 1.401057] drm_sysfs_connector_add() connector: ffff88040c768000 kdev: ffff88040eefa000
> [ 1.401093] drm_connector_register(ffff88040c768800)::382 connector->registered: 0 cpu: 2
> [ 1.401113] drm_sysfs_connector_add() connector: ffff88040c768800 kdev: ffff88040eefa400
> [ 1.401122] drm_connector_register(ffff88040c769000)::382 connector->registered: 0 cpu: 2
> [ 1.401140] drm_sysfs_connector_add() connector: ffff88040c769000 kdev: ffff88040eefa800
> [ 1.401167] drm_connector_register(ffff88040c769800)::382 connector->registered: 0 cpu: 2
> [ 1.401186] drm_sysfs_connector_add() connector: ffff88040c769800 kdev: ffff88040eefac00
> [ 1.401195] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-11 16:16 ` Dave Hansen
@ 2017-01-11 22:25 ` Daniel Vetter
-1 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-11 22:25 UTC (permalink / raw)
To: Dave Hansen
Cc: Daniel Vetter, Daniel Vetter, Jani Nikula, David Airlie,
intel-gfx, dri-devel, Linux Kernel Mailing List
On Wed, Jan 11, 2017 at 08:16:56AM -0800, Dave Hansen wrote:
> On 01/11/2017 07:39 AM, Daniel Vetter wrote:
> > Hm, just cherry-picked it on top of Linus' latest 4.10 git, applies
> > cleanly there. The substituation was for 4.9. I can send you the patch
> > here, but seems all fine from what I can tell ...
>
> All of the printk's that I added were making it fail to apply.
>
> So, I took a 4.10-rc3 kernel with i915 compiled in (not as a module) and
> applied e73ab00e9a0f17, which I grabbed from linux-next.
>
> I'm seeing basically the same behavior that I did before applying
> e73ab00e9a0f17. sysfs_create_dir_ns() fails because of a NULL kobj->parent.
>
> Have you guys tried testing this yourselves? It seems really easy to
> reproduce if you just compile the driver in.
With some screaming I can reproduce it. I'll try to take a look, but since
I'm travelling to lca might need someone else to look into this too (I
don't have an mst machine to carry around). And I still don't get why this
blows up even.
-Daniel
>
> > [ 1.400797] drm_dev_register(ffff88040c730000)::730 cpu: 2
> > [ 1.400860] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 1
> > [ 1.400870] sysfs_create_dir_ns()::53 error: -2
> > [ 1.400874] create_dir()::75 error: -2 cpu: 1
> > [ 1.400878] ------------[ cut here ]------------
> > [ 1.400884] WARNING: CPU: 1 PID: 91 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> > [ 1.400888] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> > [ 1.400892] Modules linked in:
> > [ 1.400896] CPU: 1 PID: 91 Comm: kworker/1:2 Not tainted 4.10.0-rc3-i915borked-dirty #67
> > [ 1.400900] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> > [ 1.400906] Workqueue: events_long drm_dp_mst_link_probe_work
> > [ 1.400909] Call Trace:
> > [ 1.400914] dump_stack+0x67/0x99
> > [ 1.400918] __warn+0xd1/0xf0
> > [ 1.400922] warn_slowpath_fmt+0x4f/0x60
> > [ 1.400925] kobject_add_internal+0x273/0x330
> > [ 1.400927] kobject_add+0x65/0xb0
> > [ 1.400931] ? klist_init+0x31/0x40
> > [ 1.400936] device_add+0x102/0x5d0
> > [ 1.400940] ? kfree_const+0x22/0x30
> > [ 1.400944] device_create_groups_vargs+0xd8/0x100
> > [ 1.400947] device_create_with_groups+0x36/0x40
> > [ 1.400952] ? vprintk_default+0x29/0x50
> > [ 1.400957] ? __might_sleep+0x4a/0x90
> > [ 1.400962] drm_sysfs_connector_add+0x60/0xe0
> > [ 1.400967] drm_connector_register+0x74/0xd0
> > [ 1.400971] intel_dp_register_mst_connector+0x41/0x50
> > [ 1.400975] drm_dp_add_port+0x350/0x450
> > [ 1.400977] drm_connector_register(ffff88040ee6f800)::382 connector->registered: 0 cpu: 2
> > [ 1.400982] ? rcu_early_boot_tests+0x1/0x10
> > [ 1.400986] ? schedule_timeout+0x1cd/0x390
> > [ 1.400989] ? __might_sleep+0x4a/0x90
> > [ 1.400992] ? mutex_lock+0x25/0x50
> > [ 1.400995] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> > [ 1.400996] drm_sysfs_connector_add() connector: ffff88040ee6f800 kdev: ffff88040eef9c00
> > [ 1.401002] ? prepare_to_wait_event+0x120/0x120
> > [ 1.401005] ? drm_dp_check_mstb_guid+0x3d/0x120
> > [ 1.401008] drm_dp_send_link_address+0x185/0x1f0
> > [ 1.401012] drm_dp_check_and_send_link_address+0xad/0xc0
> > [ 1.401015] drm_dp_mst_link_probe_work+0x57/0xa0
> > [ 1.401018] process_one_work+0x14b/0x430
> > [ 1.401021] worker_thread+0x12b/0x4a0
> > [ 1.401025] kthread+0x10c/0x140
> > [ 1.401027] ? process_one_work+0x430/0x430
> > [ 1.401030] ? kthread_create_on_node+0x40/0x40
> > [ 1.401034] ret_from_fork+0x27/0x40
> > [ 1.401038] ---[ end trace ba43fc250fbf282d ]---
> > [ 1.401041] drm_sysfs_connector_add() connector: ffff88040c76b000 kdev: fffffffffffffffe
> > [ 1.401043] drm_connector_register(ffff88040c768000)::382 connector->registered: 0 cpu: 2
> > [ 1.401050] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> > [ 1.401057] drm_sysfs_connector_add() connector: ffff88040c768000 kdev: ffff88040eefa000
> > [ 1.401093] drm_connector_register(ffff88040c768800)::382 connector->registered: 0 cpu: 2
> > [ 1.401113] drm_sysfs_connector_add() connector: ffff88040c768800 kdev: ffff88040eefa400
> > [ 1.401122] drm_connector_register(ffff88040c769000)::382 connector->registered: 0 cpu: 2
> > [ 1.401140] drm_sysfs_connector_add() connector: ffff88040c769000 kdev: ffff88040eefa800
> > [ 1.401167] drm_connector_register(ffff88040c769800)::382 connector->registered: 0 cpu: 2
> > [ 1.401186] drm_sysfs_connector_add() connector: ffff88040c769800 kdev: ffff88040eefac00
> > [ 1.401195] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 2
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
@ 2017-01-11 22:25 ` Daniel Vetter
0 siblings, 0 replies; 38+ messages in thread
From: Daniel Vetter @ 2017-01-11 22:25 UTC (permalink / raw)
To: Dave Hansen
Cc: intel-gfx, Linux Kernel Mailing List, dri-devel, Daniel Vetter
On Wed, Jan 11, 2017 at 08:16:56AM -0800, Dave Hansen wrote:
> On 01/11/2017 07:39 AM, Daniel Vetter wrote:
> > Hm, just cherry-picked it on top of Linus' latest 4.10 git, applies
> > cleanly there. The substituation was for 4.9. I can send you the patch
> > here, but seems all fine from what I can tell ...
>
> All of the printk's that I added were making it fail to apply.
>
> So, I took a 4.10-rc3 kernel with i915 compiled in (not as a module) and
> applied e73ab00e9a0f17, which I grabbed from linux-next.
>
> I'm seeing basically the same behavior that I did before applying
> e73ab00e9a0f17. sysfs_create_dir_ns() fails because of a NULL kobj->parent.
>
> Have you guys tried testing this yourselves? It seems really easy to
> reproduce if you just compile the driver in.
With some screaming I can reproduce it. I'll try to take a look, but since
I'm travelling to lca might need someone else to look into this too (I
don't have an mst machine to carry around). And I still don't get why this
blows up even.
-Daniel
>
> > [ 1.400797] drm_dev_register(ffff88040c730000)::730 cpu: 2
> > [ 1.400860] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 1
> > [ 1.400870] sysfs_create_dir_ns()::53 error: -2
> > [ 1.400874] create_dir()::75 error: -2 cpu: 1
> > [ 1.400878] ------------[ cut here ]------------
> > [ 1.400884] WARNING: CPU: 1 PID: 91 at lib/kobject.c:249 kobject_add_internal+0x273/0x330
> > [ 1.400888] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
> > [ 1.400892] Modules linked in:
> > [ 1.400896] CPU: 1 PID: 91 Comm: kworker/1:2 Not tainted 4.10.0-rc3-i915borked-dirty #67
> > [ 1.400900] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
> > [ 1.400906] Workqueue: events_long drm_dp_mst_link_probe_work
> > [ 1.400909] Call Trace:
> > [ 1.400914] dump_stack+0x67/0x99
> > [ 1.400918] __warn+0xd1/0xf0
> > [ 1.400922] warn_slowpath_fmt+0x4f/0x60
> > [ 1.400925] kobject_add_internal+0x273/0x330
> > [ 1.400927] kobject_add+0x65/0xb0
> > [ 1.400931] ? klist_init+0x31/0x40
> > [ 1.400936] device_add+0x102/0x5d0
> > [ 1.400940] ? kfree_const+0x22/0x30
> > [ 1.400944] device_create_groups_vargs+0xd8/0x100
> > [ 1.400947] device_create_with_groups+0x36/0x40
> > [ 1.400952] ? vprintk_default+0x29/0x50
> > [ 1.400957] ? __might_sleep+0x4a/0x90
> > [ 1.400962] drm_sysfs_connector_add+0x60/0xe0
> > [ 1.400967] drm_connector_register+0x74/0xd0
> > [ 1.400971] intel_dp_register_mst_connector+0x41/0x50
> > [ 1.400975] drm_dp_add_port+0x350/0x450
> > [ 1.400977] drm_connector_register(ffff88040ee6f800)::382 connector->registered: 0 cpu: 2
> > [ 1.400982] ? rcu_early_boot_tests+0x1/0x10
> > [ 1.400986] ? schedule_timeout+0x1cd/0x390
> > [ 1.400989] ? __might_sleep+0x4a/0x90
> > [ 1.400992] ? mutex_lock+0x25/0x50
> > [ 1.400995] ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
> > [ 1.400996] drm_sysfs_connector_add() connector: ffff88040ee6f800 kdev: ffff88040eef9c00
> > [ 1.401002] ? prepare_to_wait_event+0x120/0x120
> > [ 1.401005] ? drm_dp_check_mstb_guid+0x3d/0x120
> > [ 1.401008] drm_dp_send_link_address+0x185/0x1f0
> > [ 1.401012] drm_dp_check_and_send_link_address+0xad/0xc0
> > [ 1.401015] drm_dp_mst_link_probe_work+0x57/0xa0
> > [ 1.401018] process_one_work+0x14b/0x430
> > [ 1.401021] worker_thread+0x12b/0x4a0
> > [ 1.401025] kthread+0x10c/0x140
> > [ 1.401027] ? process_one_work+0x430/0x430
> > [ 1.401030] ? kthread_create_on_node+0x40/0x40
> > [ 1.401034] ret_from_fork+0x27/0x40
> > [ 1.401038] ---[ end trace ba43fc250fbf282d ]---
> > [ 1.401041] drm_sysfs_connector_add() connector: ffff88040c76b000 kdev: fffffffffffffffe
> > [ 1.401043] drm_connector_register(ffff88040c768000)::382 connector->registered: 0 cpu: 2
> > [ 1.401050] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
> > [ 1.401057] drm_sysfs_connector_add() connector: ffff88040c768000 kdev: ffff88040eefa000
> > [ 1.401093] drm_connector_register(ffff88040c768800)::382 connector->registered: 0 cpu: 2
> > [ 1.401113] drm_sysfs_connector_add() connector: ffff88040c768800 kdev: ffff88040eefa400
> > [ 1.401122] drm_connector_register(ffff88040c769000)::382 connector->registered: 0 cpu: 2
> > [ 1.401140] drm_sysfs_connector_add() connector: ffff88040c769000 kdev: ffff88040eefa800
> > [ 1.401167] drm_connector_register(ffff88040c769800)::382 connector->registered: 0 cpu: 2
> > [ 1.401186] drm_sysfs_connector_add() connector: ffff88040c769800 kdev: ffff88040eefac00
> > [ 1.401195] drm_connector_register(ffff88040c76b000)::382 connector->registered: 0 cpu: 2
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
2017-01-11 15:24 ` Dave Hansen
@ 2017-01-11 15:40 ` Chris Wilson
-1 siblings, 0 replies; 38+ messages in thread
From: Chris Wilson @ 2017-01-11 15:40 UTC (permalink / raw)
To: Dave Hansen
Cc: Daniel Vetter, Jani Nikula, David Airlie, intel-gfx, dri-devel,
Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 1355 bytes --]
On Wed, Jan 11, 2017 at 07:24:45AM -0800, Dave Hansen wrote:
> On 01/10/2017 11:43 PM, Daniel Vetter wrote:
> > On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
> >> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
> >>> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
> >>> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> >>> Date: Sun Dec 18 14:35:45 2016 +0100
> >>>
> >>> drm: prevent double-(un)registration for connectors
> >>>
> >>> Lack of that would perfectly explain that oops ... Otherwise still no idea
> >>> what's going wrong.
> >> No... That's not in mainline as far as I can see. Should I test with
> >> it applied?
> > Hm, I guess failed to cc: stable that one properly, iirc we decided the
> > race fix is too academic and can't be hit in reality ;-)
> >
> > Testing would be great. Probably conflicts because we extracted
> > drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
> > over the diff and then applying with some fudge should take care of that.
>
> It doesn't apply to mainline, with or without the substitution you suggest.
I was hoping that the locking was the real cause here and would be an
easy fix to apply. I did have a look at trying to reorder the DP-MST
worker with driver registration. Hacky to say the least.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
[-- Attachment #2: 0001-dp-mst-register.patch --]
[-- Type: text/x-diff, Size: 1995 bytes --]
>From 30ac9092e934295f12775f03d73170fc480b7fc8 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 10 Jan 2017 10:46:25 +0000
Subject: [PATCH] dp-mst-register
---
drivers/gpu/drm/i915/intel_dp.c | 12 +++++++++++-
drivers/gpu/drm/i915/intel_dp_mst.c | 9 ++++++---
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f0f44cdbe4b4..fc10eb2c8563 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4762,7 +4762,17 @@ intel_dp_connector_register(struct drm_connector *connector)
intel_dp->aux.name, connector->kdev->kobj.name);
intel_dp->aux.dev = connector->kdev;
- return drm_dp_aux_register(&intel_dp->aux);
+ ret = drm_dp_aux_register(&intel_dp->aux);
+ if (ret)
+ return ret;
+
+ if (intel_dp->mst_mgr.cbs) {
+ intel_dp->can_mst = true;
+ if (intel_dp->attached_connector)
+ intel_dp->attached_connector->base.status = intel_dp_long_pulse(intel_dp->attached_connector);
+ }
+
+ return 0;
}
static void
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index c93c1999a494..f0a664041dbc 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -582,16 +582,19 @@ intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_ba
struct drm_device *dev = intel_dig_port->base.base.dev;
int ret;
- intel_dp->can_mst = true;
+ intel_dp->can_mst = false;
intel_dp->mst_mgr.cbs = &mst_cbs;
/* create encoders */
intel_dp_create_fake_mst_encoders(intel_dig_port);
- ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev->dev, &intel_dp->aux, 16, 3, conn_base_id);
+ ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev->dev,
+ &intel_dp->aux, 16, 3,
+ conn_base_id);
if (ret) {
- intel_dp->can_mst = false;
+ intel_dp->mst_mgr.cbs = NULL;
return ret;
}
+
return 0;
}
--
2.11.0
^ permalink raw reply related [flat|nested] 38+ messages in thread
* Re: 4.10-rc2 oops in DRM connector code
@ 2017-01-11 15:40 ` Chris Wilson
0 siblings, 0 replies; 38+ messages in thread
From: Chris Wilson @ 2017-01-11 15:40 UTC (permalink / raw)
To: Dave Hansen
Cc: David Airlie, intel-gfx, Linux Kernel Mailing List, dri-devel,
Daniel Vetter
[-- Attachment #1: Type: text/plain, Size: 1355 bytes --]
On Wed, Jan 11, 2017 at 07:24:45AM -0800, Dave Hansen wrote:
> On 01/10/2017 11:43 PM, Daniel Vetter wrote:
> > On Tue, Jan 10, 2017 at 08:52:47AM -0800, Dave Hansen wrote:
> >> On 01/10/2017 02:31 AM, Daniel Vetter wrote:
> >>> commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e
> >>> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> >>> Date: Sun Dec 18 14:35:45 2016 +0100
> >>>
> >>> drm: prevent double-(un)registration for connectors
> >>>
> >>> Lack of that would perfectly explain that oops ... Otherwise still no idea
> >>> what's going wrong.
> >> No... That's not in mainline as far as I can see. Should I test with
> >> it applied?
> > Hm, I guess failed to cc: stable that one properly, iirc we decided the
> > race fix is too academic and can't be hit in reality ;-)
> >
> > Testing would be great. Probably conflicts because we extracted
> > drm_connector.c only recently, but running s/drm_connector\.c/drm_crtc.c/
> > over the diff and then applying with some fudge should take care of that.
>
> It doesn't apply to mainline, with or without the substitution you suggest.
I was hoping that the locking was the real cause here and would be an
easy fix to apply. I did have a look at trying to reorder the DP-MST
worker with driver registration. Hacky to say the least.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
[-- Attachment #2: 0001-dp-mst-register.patch --]
[-- Type: text/x-diff, Size: 1995 bytes --]
>From 30ac9092e934295f12775f03d73170fc480b7fc8 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 10 Jan 2017 10:46:25 +0000
Subject: [PATCH] dp-mst-register
---
drivers/gpu/drm/i915/intel_dp.c | 12 +++++++++++-
drivers/gpu/drm/i915/intel_dp_mst.c | 9 ++++++---
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f0f44cdbe4b4..fc10eb2c8563 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4762,7 +4762,17 @@ intel_dp_connector_register(struct drm_connector *connector)
intel_dp->aux.name, connector->kdev->kobj.name);
intel_dp->aux.dev = connector->kdev;
- return drm_dp_aux_register(&intel_dp->aux);
+ ret = drm_dp_aux_register(&intel_dp->aux);
+ if (ret)
+ return ret;
+
+ if (intel_dp->mst_mgr.cbs) {
+ intel_dp->can_mst = true;
+ if (intel_dp->attached_connector)
+ intel_dp->attached_connector->base.status = intel_dp_long_pulse(intel_dp->attached_connector);
+ }
+
+ return 0;
}
static void
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index c93c1999a494..f0a664041dbc 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -582,16 +582,19 @@ intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_ba
struct drm_device *dev = intel_dig_port->base.base.dev;
int ret;
- intel_dp->can_mst = true;
+ intel_dp->can_mst = false;
intel_dp->mst_mgr.cbs = &mst_cbs;
/* create encoders */
intel_dp_create_fake_mst_encoders(intel_dig_port);
- ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev->dev, &intel_dp->aux, 16, 3, conn_base_id);
+ ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev->dev,
+ &intel_dp->aux, 16, 3,
+ conn_base_id);
if (ret) {
- intel_dp->can_mst = false;
+ intel_dp->mst_mgr.cbs = NULL;
return ret;
}
+
return 0;
}
--
2.11.0
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 38+ messages in thread