I'm sometimes getting "vblank wait timed out on crtc 0" when switching between X and console on my ThinkPad T420. Steps to reproduce: 1. get a machine with sandybridge and optimus 2. boot it with some 4.4-rc kernel 3. power off nvidia using bbswitch (couldn't reproduce without this) 4. switch between X and console a few times (while :; do chvt 10; sleep 2; chvt 1; sleep 2; done) 5. this happens: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1382 at drivers/gpu/drm/drm_irq.c:1216 drm_wait_one_vblank+0x1b0/0x1c0() vblank wait timed out on crtc 0 Modules linked in: ccm br_netfilter bridge stp llc dm_thin_pool dm_persistent_data dm_bio_prison libcrc32c dm_bufio binfmt_misc tun bnep nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_raw ip6table_filter ip6_tables xt_multiport xt_conntrack iptable_raw uvcvideo xt_TCPMSS xt_tcpudp iptable_mangle btusb ipt_MASQUERADE nf_nat_masquerade_ipv4 videobuf2_vmalloc btrtl xt_addrtype videobuf2_memops videobuf2_v4l2 btbcm iptable_nat arc4 nf_conntrack_ipv4 btintel videobuf2_core iwldvm bluetooth nf_defrag_ipv4 nf_nat_ipv4 v4l2_common nf_nat videodev mac80211 iptable_filter ip_tables x_tables x86_pkg_temp_thermal kvm_intel kvm iwlwifi snd_hda_codec_conexant snd_hda_codec_generic snd_hda_intel snd_hda_codec cfg80211 irqbypass crc32_pclmul snd_hwdep crc32c_intel sdhci_pci snd_hda_core sdhci snd_pcm_oss aesni_intel mmc_core aes_x86_64 lrw hdaps(O) thinkpad_ec(O) glue_helper psmouse ablk_helper snd_mixer_oss cryptd snd_pcm serio_raw e1000e thinkpad_acpi ehci_pci snd_timer nvram ehci_hcd wmi usbcore ptp snd pps_core tpm_rng tpm_tis tpm battery bbswitch(O) nf_conntrack_netlink soundcore ac i2c_i801 usb_common nfnetlink evdev nf_conntrack_sip nf_conntrack_proto_sctp nf_conntrack_pptp nf_conntrack_proto_gre nf_conntrack_netbios_ns nf_conntrack_broadcast nf_conntrack_h323 nf_conntrack_irc nf_conntrack_ftp nf_conntrack coretemp hwmon ecryptfs loop dm_crypt CPU: 0 PID: 1382 Comm: Xorg Tainted: G O 4.4.0-rc2-lis64-bisect+ #13 Hardware name: LENOVO 4178A3G/4178A3G, BIOS 83ET76WW (1.46 ) 07/05/2013 0000000000000000 0000000061618deb ffff88041fc0b790 ffffffff8f301fcc ffff88041fc0b7d8 ffff88041fc0b7c8 ffffffff8f05a062 ffff88042ad01000 0000000000000000 0000000000000000 0000000000000f58 ffff88042b485a08 Call Trace: [] dump_stack+0x4e/0x82 [] warn_slowpath_common+0x82/0xc0 [] warn_slowpath_fmt+0x5c/0x80 [] ? _raw_spin_unlock_irqrestore+0xe/0x10 [] ? finish_wait+0x55/0x70 [] drm_wait_one_vblank+0x1b0/0x1c0 [] ? wake_atomic_t_function+0x60/0x60 [] intel_atomic_commit+0x732/0x1890 [] ? drm_atomic_check_only+0x18e/0x590 [] ? drm_atomic_add_affected_connectors+0x27/0xf0 [] drm_atomic_commit+0x37/0x60 [] restore_fbdev_mode+0x22f/0x260 [] drm_fb_helper_restore_fbdev_mode_unlocked+0x33/0x80 [] drm_fb_helper_set_par+0x2d/0x50 [] intel_fbdev_set_par+0x1a/0x60 [] ? fb_set_var+0x301/0x450 [] fb_set_var+0x248/0x450 [] ? update_curr+0x5c/0x120 [] ? check_preempt_wakeup+0xdd/0x1c0 [] fbcon_blank+0x363/0x3b0 [] do_unblank_screen+0xc3/0x190 [] complete_change_console+0x59/0xe0 [] vt_ioctl+0x710/0x12e0 [] ? drm_ioctl+0x189/0x540 [] ? drm_setmaster_ioctl+0xa0/0xa0 [] vt_compat_ioctl+0x188/0x3b0 [] ? __call_rcu.constprop.56+0x250/0x250 [] tty_compat_ioctl+0x54/0xc0 [] compat_SyS_ioctl+0xeb/0x11f0 [] ? percpu_up_read+0x17/0x40 [] ? __sb_end_write+0x21/0x30 [] ? vfs_write+0x165/0x1a0 [] do_fast_syscall_32+0x9a/0x150 [] sysenter_flags_fixed+0x8/0x12 ---[ end trace 5d6ad91f242dc76e ]--- I couldn't reproduce this on 4.3 so I bisected it and got: 43d59eda1f69631c267e06ab6b94ed3c14f1f6d1 is the first bad commit commit 43d59eda1f69631c267e06ab6b94ed3c14f1f6d1 Author: Matt Roper