linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	David Airlie <airlied@linux.ie>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [Intel-gfx] 4.10-rc2 oops in DRM connector code
Date: Mon, 9 Jan 2017 17:41:25 +0100	[thread overview]
Message-ID: <CAKMK7uEjjmD=Aq5=DC2QmjX2V8PCwwF2hd6N4Ma_oreY_C8iFw@mail.gmail.com> (raw)
In-Reply-To: <16a1e734-667c-5d9a-c418-555b1f13e446@intel.com>

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?

Still no idea though why this blows up for you.
-Daniel

>
>> [    1.396475] ------------[ cut here ]------------
>> [    1.396486] WARNING: CPU: 0 PID: 91 at lib/kobject.c:244 kobject_add_internal+0x108/0x2d0
>> [    1.396492] kobject_add_internal failed for card0-DP-3 (error: -2 parent: card0)
>> [    1.396496] Modules linked in:
>> [    1.396500] CPU: 0 PID: 91 Comm: kworker/0:2 Not tainted 4.10.0-rc2-dirty #58
>> [    1.396503] Hardware name: LENOVO 20F5S7V800/20F5S7V800, BIOS R02ET50W (1.23 ) 09/20/2016
>> [    1.396509] Workqueue: events_long drm_dp_mst_link_probe_work
>> [    1.396511] Call Trace:
>> [    1.396517]  dump_stack+0x67/0x99
>> [    1.396521]  __warn+0xd1/0xf0
>> [    1.396524]  warn_slowpath_fmt+0x4f/0x60
>> [    1.396527]  kobject_add_internal+0x108/0x2d0
>> [    1.396531]  ? vsnprintf+0x112/0x4b0
>> [    1.396533]  kobject_add+0x65/0xb0
>> [    1.396537]  ? klist_init+0x31/0x40
>> [    1.396542]  device_add+0x102/0x5d0
>> [    1.396546]  ? kfree_const+0x22/0x30
>> [    1.396549]  device_create_groups_vargs+0xd8/0x100
>> [    1.396553]  device_create_with_groups+0x36/0x40
>> [    1.396557]  ? drm_fb_helper_add_one_connector+0x57/0xd0
>> [    1.396561]  ? kmem_cache_alloc_trace+0x1d2/0x1f0
>> [    1.396566]  drm_sysfs_connector_add+0x60/0xe0
>> [    1.396570]  drm_connector_register+0x21/0xc0
>> [    1.396575]  intel_dp_register_mst_connector+0x41/0x50
>> [    1.396579]  drm_dp_add_port+0x350/0x450
>> [    1.396583]  ? rcu_early_boot_tests+0x1/0x10
>> [    1.396587]  ? schedule_timeout+0x1cd/0x390
>> [    1.396591]  ? __might_sleep+0x4a/0x90
>> [    1.396594]  ? mutex_lock+0x25/0x50
>> [    1.396597]  ? drm_dp_mst_wait_tx_reply+0x118/0x1e0
>> [    1.396600]  ? prepare_to_wait_event+0x120/0x120
>> [    1.396603]  ? drm_dp_check_mstb_guid+0x3d/0x120
>> [    1.396606] drm_sysfs_connector_add() connector: ffff88040ed3f000 kdev: ffff88040c55dc00
>> [    1.396610]  drm_dp_send_link_address+0x185/0x1f0
>> [    1.396614]  drm_dp_check_and_send_link_address+0xad/0xc0
>> [    1.396617]  drm_dp_mst_link_probe_work+0x57/0xa0
>> [    1.396620]  process_one_work+0x14b/0x430
>> [    1.396623]  worker_thread+0x12b/0x4a0
>> [    1.396626]  kthread+0x10c/0x140
>> [    1.396629]  ? process_one_work+0x430/0x430
>> [    1.396632]  ? kthread_create_on_node+0x40/0x40
>> [    1.396635]  ret_from_fork+0x27/0x40
>> [    1.396639] ---[ end trace dd05bb2cd9ebd900 ]---
>> [    1.396643] drm_sysfs_connector_add() connector: ffff88040c75a000 kdev: fffffffffffffffe
>> [    1.396648] [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -2
>> [    1.396651] drm_connector_register(ffff88040ed3f000) connector->registered: 1
>> [    1.396666] drm_sysfs_connector_add() connector: ffff88040ed3f800 kdev: ffff88040c55e400
>> [    1.396700] drm_connector_register(ffff88040ed3f800) connector->registered: 1
>> [    1.396717] drm_sysfs_connector_add() connector: ffff88040ed39800 kdev: ffff88040c55e800
>> [    1.396726] drm_connector_register(ffff88040ed39800) connector->registered: 1
>> [    1.396743] drm_sysfs_connector_add() connector: ffff88040c758000 kdev: ffff88040c55ec00
>> [    1.396769] drm_connector_register(ffff88040c758000) connector->registered: 1
>> [    1.396786] drm_sysfs_connector_add() connector: ffff88040c758800 kdev: ffff88040c55f000
>> [    1.396799] drm_connector_register(ffff88040c758800) connector->registered: 1
>> [    1.396804] drm_connector_register(ffff88040c75a000) connector->registered: 1
>> [    1.398665] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
>> [    1.398893] drm_sysfs_connector_add() connector: ffff88040c75b000 kdev: ffff88040c790400
>> [    1.398907] drm_connector_register(ffff88040c75b000) connector->registered: 1
>> [    1.398930] drm_sysfs_connector_add() connector: ffff88040c75c000 kdev: ffff88040c790800
>> [    1.398939] drm_connector_register(ffff88040c75c000) connector->registered: 1
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

  parent reply	other threads:[~2017-01-09 16:41 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-05 19:03 4.10-rc2 oops in DRM connector code Dave Hansen
2017-01-09 10:15 ` [Intel-gfx] " Daniel Vetter
2017-01-09 12:59   ` Dave Hansen
2017-01-09 13:40   ` Dave Hansen
2017-01-09 13:46     ` Dave Hansen
2017-01-09 16:41     ` Daniel Vetter [this message]
2017-01-09 16:50       ` Dave Hansen
2017-01-09 16:59         ` Daniel Vetter
2017-01-09 17:22           ` Dave Hansen
2017-01-09 19:34             ` Alex Deucher
2017-01-09 17:42           ` Dave Hansen
2017-01-10 10:31             ` Daniel Vetter
2017-01-10 16:52               ` Dave Hansen
2017-01-11  7:43                 ` Daniel Vetter
2017-01-11 15:24                   ` Dave Hansen
2017-01-11 15:39                     ` Daniel Vetter
2017-01-11 16:16                       ` Dave Hansen
2017-01-11 22:25                         ` Daniel Vetter
2017-01-11 15:40                     ` Chris Wilson

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to='CAKMK7uEjjmD=Aq5=DC2QmjX2V8PCwwF2hd6N4Ma_oreY_C8iFw@mail.gmail.com' \
    --to=daniel@ffwll.ch \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).