[Intel-gfx] [PATCH]i915: use WARN_ON_ONCE in intel_dp_aux_transfer
Jani Nikula
jani.nikula at linux.intel.com
Thu Nov 24 08:53:53 UTC 2016
On Thu, 24 Nov 2016, Dave Young <dyoung at redhat.com> wrote:
> I see a lot of below warning:
No, we must not hide this under the carpet. There's a bug at fdo about
this, and we need to fix it.
BR,
Jani.
> [ 17.128256] WARNING: CPU: 1 PID: 95 at drivers/gpu/drm/i915/intel_dp.c:1062 intel_dp_aux_transfer+0x201/0x240 [i915]
> [ 17.128264] WARN_ON_ONCE(!msg->buffer != !msg->size)
> [ 17.128267] Modules linked in:
> [ 17.128273] kvm_intel kvm irqbypass i915 intel_gtt drm_kms_helper snd_hda_codec_realtek syscopyarea snd_hda_codec_generic sysfillrect sysimgblt fb_sys_fops drm arc4 rtsx_pci_sdmmc iwlmvm mac80211 snd_hda_intel btusb snd_hda_codec btrtl iwlwifi btbcm btintel snd_hwdep snd_hda_core snd_seq bluetooth e1000e i2c_i801 cfg80211 input_leds snd_seq_device i2c_smbus serio_raw pcspkr snd_pcm ptp rtsx_pci pps_core mfd_core snd_timer thinkpad_acpi snd soundcore rfkill video nfsd auth_rpcgss nfs_acl lockd grace sunrpc
> [ 17.128338] CPU: 1 PID: 95 Comm: kworker/u16:2 Not tainted 4.9.0-rc6+ #200
> [ 17.128344] Hardware name: LENOVO 20ARS1BJ02/20ARS1BJ02, BIOS GJET91WW (2.41 ) 09/21/2016
> [ 17.128355] Workqueue: events_unbound async_run_entry_fn
> [ 17.128361] ffff9db20105fa98 ffffffffa9eeb8ed ffff9db20105fae8 0000000000000000
> [ 17.128370] ffff9db20105fad8 ffffffffa9c5339b 00000426907d27c8 ffff9db20105fbc0
> [ 17.128379] ffff9474910510e0 0000000000000003 00000000fffffffb 0000000000000000
> [ 17.128388] Call Trace:
> [ 17.128396] [<ffffffffa9eeb8ed>] dump_stack+0x63/0x86
> [ 17.128404] [<ffffffffa9c5339b>] __warn+0xcb/0xf0
> [ 17.128410] [<ffffffffa9c5341f>] warn_slowpath_fmt+0x5f/0x80
> [ 17.128454] [<ffffffffc0a8e45e>] ? intel_dp_aux_transfer+0xde/0x240 [i915]
> [ 17.128492] [<ffffffffc0a8e581>] intel_dp_aux_transfer+0x201/0x240 [i915]
> [ 17.128507] [<ffffffffc09b2c82>] drm_dp_dpcd_access+0x72/0x110 [drm_kms_helper]
> [ 17.128519] [<ffffffffc09b2d3b>] drm_dp_dpcd_write+0x1b/0x20 [drm_kms_helper]
> [ 17.128557] [<ffffffffc0a89b3b>] intel_dp_start_link_train+0x2cb/0x4c0 [i915]
> [ 17.128594] [<ffffffffc0a8b099>] intel_dp_check_link_status+0xd9/0x110 [i915]
> [ 17.128630] [<ffffffffc0a8fc3f>] intel_dp_detect+0x79f/0xb90 [i915]
> [ 17.128641] [<ffffffffc09b413f>] drm_helper_probe_single_connector_modes+0x3ff/0x4f0 [drm_kms_helper]
> [ 17.128654] [<ffffffffc09c21fe>] drm_fb_helper_initial_config+0xae/0x430 [drm_kms_helper]
> [ 17.128697] [<ffffffffc0a81418>] intel_fbdev_initial_config+0x18/0x30 [i915]
> [ 17.128705] [<ffffffffa9c74fb7>] async_run_entry_fn+0x37/0xe0
> [ 17.128713] [<ffffffffa9c6c4a9>] process_one_work+0x1e9/0x440
> [ 17.128721] [<ffffffffa9c6c74b>] worker_thread+0x4b/0x4f0
> [ 17.128728] [<ffffffffa9c6c700>] ? process_one_work+0x440/0x440
> [ 17.128721] [<ffffffffa9c6c74b>] worker_thread+0x4b/0x4f0
> [ 17.128728] [<ffffffffa9c6c700>] ? process_one_work+0x440/0x440
> [ 17.128735] [<ffffffffa9c71f99>] kthread+0xd9/0xf0
> [ 17.128741] [<ffffffffa9c1172e>] ? __switch_to+0x2ce/0x580
> [ 17.128748] [<ffffffffa9c71ec0>] ? kthread_park+0x60/0x60
> [ 17.128754] [<ffffffffa9c71ec0>] ? kthread_park+0x60/0x60
> [ 17.128762] [<ffffffffaa1f7835>] ret_from_fork+0x25/0x30
> [ 17.128768] ---[ end trace 1c8614b2fcd03dac ]---
> [ 17.151929] [drm:intel_dp_start_link_train [i915]] *ERROR* failed to update link training
>
> It seems a known issue below:
> https://bugs.freedesktop.org/show_bug.cgi?id=97344
>
> This is not to fix the real problem just use WARN_ON_ONCE is better for
> this kind of warnings instead of warn again and again.
>
> Signed-off-by: Dave Young <dyoung at redhat.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- linux-x86.orig/drivers/gpu/drm/i915/intel_dp.c
> +++ linux-x86/drivers/gpu/drm/i915/intel_dp.c
> @@ -1059,7 +1059,7 @@ intel_dp_aux_transfer(struct drm_dp_aux
> if (WARN_ON(txsize > 20))
> return -E2BIG;
>
> - WARN_ON(!msg->buffer != !msg->size);
> + WARN_ON_ONCE(!msg->buffer != !msg->size);
>
> if (msg->buffer)
> memcpy(txbuf + HEADER_SIZE, msg->buffer, msg->size);
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list