So the problem turned out to be thunderbolt 3. I noticed issues in the kernel log (one example below). I disabled thunderbolt3 in the BIOS and suspend/resume works fine even with the standard artful kernel (currently 4.11). Aug 2 09:40:56 valor kernel: [ 30.815914] thunderbolt 0000:08:00.0: NHI initialized, starting thunderbolt Aug 2 09:40:56 valor kernel: [ 30.815918] thunderbolt 0000:08:00.0: allocating TX ring 0 of size 10 Aug 2 09:40:56 valor kernel: [ 30.815943] thunderbolt 0000:08:00.0: allocating RX ring 0 of size 10 Aug 2 09:40:56 valor kernel: [ 30.815956] thunderbolt 0000:08:00.0: control channel created Aug 2 09:40:56 valor kernel: [ 30.815957] thunderbolt 0000:08:00.0: control channel starting... Aug 2 09:40:56 valor kernel: [ 30.815957] thunderbolt 0000:08:00.0: starting TX ring 0 Aug 2 09:40:56 valor kernel: [ 30.815973] thunderbolt 0000:08:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1) Aug 2 09:40:56 valor kernel: [ 30.815974] thunderbolt 0000:08:00.0: starting RX ring 0 Aug 2 09:40:56 valor kernel: [ 30.815988] thunderbolt 0000:08:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001) Aug 2 09:40:56 valor kernel: [ 30.816009] thunderbolt 0000:08:00.0: starting ICM firmware Aug 2 09:40:56 valor kernel: [ 30.816019] BUG: unable to handle kernel NULL pointer dereference at 0000000000000988 Aug 2 09:40:56 valor kernel: [ 30.816060] IP: pci_write_config_dword+0x5/0x40 Aug 2 09:40:56 valor kernel: [ 30.816078] PGD 0 Aug 2 09:40:56 valor kernel: [ 30.816078] P4D 0 Aug 2 09:40:56 valor kernel: [ 30.816088] Aug 2 09:40:56 valor kernel: [ 30.816106] Oops: 0000 [#1] SMP Aug 2 09:40:56 valor kernel: [ 30.816120] Modules linked in: videobuf2_core thunderbolt(+) cfg80211(+) rtsx_pci_ms snd_timer memstick videodev btusb btqca btrtl media btbcm btintel mei_me bluetooth intel_pch_thermal mei snd shpchp soundcore ecdh_generic intel_lpss_acpi intel_lpss mac_hid tpm_crb acpi_pad parport_pc ppdev lp parport ip_tables x_tables autofs4 algif_skcipher af_alg dm_crypt crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc i915 e1000e aesni_intel i2c_algo_bit ptp drm_kms_helper aes_x86_64 syscopyarea crypto_simd sysfillrect glue_helper sysimgblt cryptd rtsx_pci_sdmmc psmouse pps_core fb_sys_fops nvme drm nvme_core rtsx_pci wmi pinctrl_sunrisepoint video pinctrl_intel i2c_hid hid Aug 2 09:40:56 valor kernel: [ 30.816364] CPU: 0 PID: 427 Comm: systemd-udevd Not tainted 4.13.0-041300rc3-generic #201707301631 Aug 2 09:40:56 valor kernel: [ 30.816393] Hardware name: LENOVO 20HRCTO1WW/20HRCTO1WW, BIOS N1MET37W (1.22 ) 07/04/2017 Aug 2 09:40:56 valor kernel: [ 30.816419] task: ffff92450353df00 task.stack: ffffb1b402110000 Aug 2 09:40:56 valor kernel: [ 30.816441] RIP: 0010:pci_write_config_dword+0x5/0x40 Aug 2 09:40:56 valor kernel: [ 30.816460] RSP: 0018:ffffb1b4021139f8 EFLAGS: 00010286 Aug 2 09:40:56 valor kernel: [ 30.816479] RAX: 0000000040000126 RBX: 0000000000000000 RCX: 0000000000000050 Aug 2 09:40:56 valor kernel: [ 30.816504] RDX: 0000000000000200 RSI: 0000000000000034 RDI: 0000000000000000 Aug 2 09:40:56 valor kernel: [ 30.816529] RBP: ffffb1b402113a30 R08: 0000000000000200 R09: 000000000000038d Aug 2 09:40:56 valor kernel: [ 30.816555] R10: ffff924509459080 R11: 000000000000038d R12: 0000000000000000 Aug 2 09:40:56 valor kernel: [ 30.816578] R13: ffff924509823b30 R14: 0000000000000000 R15: 0000000000000050 Aug 2 09:40:56 valor kernel: [ 30.816602] FS: 00007f5c6372f8c0(0000) GS:ffff924521400000(0000) knlGS:0000000000000000 Aug 2 09:40:56 valor kernel: [ 30.816627] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Aug 2 09:40:56 valor kernel: [ 30.816646] CR2: 0000000000000988 CR3: 0000000483528000 CR4: 00000000003406f0 Aug 2 09:40:56 valor kernel: [ 30.816678] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 Aug 2 09:40:56 valor kernel: [ 30.816702] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Aug 2 09:40:56 valor kernel: [ 30.816725] Call Trace: Aug 2 09:40:56 valor kernel: [ 30.816739] ? pcie2cio_write+0x3f/0xa0 [thunderbolt] Aug 2 09:40:56 valor kernel: [ 30.816760] icm_driver_ready+0x1e5/0x2a0 [thunderbolt] Aug 2 09:40:56 valor kernel: [ 30.816782] ? tb_ctl_start+0x50/0x90 [thunderbolt] Aug 2 09:40:56 valor kernel: [ 30.816801] tb_domain_add+0x74/0xf0 [thunderbolt] Aug 2 09:40:56 valor kernel: [ 30.816823] nhi_probe+0x188/0x320 [thunderbolt] Aug 2 09:40:56 valor kernel: [ 30.816841] ? __pm_runtime_resume+0x5b/0x80 Aug 2 09:40:56 valor kernel: [ 30.816859] local_pci_probe+0x45/0xa0 Aug 2 09:40:56 valor kernel: [ 30.816874] pci_device_probe+0x154/0x1a0 Aug 2 09:40:56 valor kernel: [ 30.816890] driver_probe_device+0x29c/0x450 Aug 2 09:40:56 valor kernel: [ 30.816907] __driver_attach+0xdf/0xf0 Aug 2 09:40:56 valor kernel: [ 30.816923] ? driver_probe_device+0x450/0x450 Aug 2 09:40:56 valor kernel: [ 30.816939] bus_for_each_dev+0x6c/0xc0 Aug 2 09:40:56 valor kernel: [ 30.816955] driver_attach+0x1e/0x20 Aug 2 09:40:56 valor kernel: [ 30.816970] bus_add_driver+0x170/0x270 Aug 2 09:40:56 valor kernel: [ 30.816985] driver_register+0x60/0xe0 Aug 2 09:40:56 valor kernel: [ 30.816999] ? 0xffffffffc064e000 Aug 2 09:40:56 valor kernel: [ 30.817014] __pci_register_driver+0x4c/0x50 Aug 2 09:40:56 valor kernel: [ 30.817031] nhi_init+0x28/0x1000 [thunderbolt] Aug 2 09:40:56 valor kernel: [ 30.817049] do_one_initcall+0x52/0x1a0 Aug 2 09:40:56 valor kernel: [ 30.817065] ? kfree+0x14a/0x160 Aug 2 09:40:56 valor kernel: [ 30.817077] ? kfree+0x14a/0x160 Aug 2 09:40:56 valor kernel: [ 30.817090] ? kmem_cache_alloc_trace+0x142/0x190 Aug 2 09:40:56 valor kernel: [ 30.817108] do_init_module+0x5f/0x209 Aug 2 09:40:56 valor kernel: [ 30.817124] load_module+0x19d4/0x1d70 Aug 2 09:40:56 valor kernel: [ 30.817142] ? ima_post_read_file+0x7e/0xa0 Aug 2 09:40:56 valor kernel: [ 30.817166] ? security_kernel_post_read_file+0x6b/0x80 Aug 2 09:40:56 valor kernel: [ 30.817186] SYSC_finit_module+0xe5/0x120 Aug 2 09:40:56 valor kernel: [ 30.817201] ? SYSC_finit_module+0xe5/0x120 Aug 2 09:40:56 valor kernel: [ 30.817218] SyS_finit_module+0xe/0x10 Aug 2 09:40:56 valor kernel: [ 30.817245] do_syscall_64+0x5b/0xc0 Aug 2 09:40:56 valor kernel: [ 30.817263] entry_SYSCALL64_slow_path+0x25/0x25 Aug 2 09:40:56 valor kernel: [ 30.817283] RIP: 0033:0x7f5c625ae949 Aug 2 09:40:56 valor kernel: [ 30.817299] RSP: 002b:00007ffd978936f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 Aug 2 09:40:56 valor kernel: [ 30.817331] RAX: ffffffffffffffda RBX: 000000fa57266e30 RCX: 00007f5c625ae949 Aug 2 09:40:56 valor kernel: [ 30.817360] RDX: 0000000000000000 RSI: 00007f5c62ecff75 RDI: 0000000000000007 Aug 2 09:40:56 valor kernel: [ 30.817389] RBP: 00007f5c62ecff75 R08: 0000000000000000 R09: 000000fa57266e30 Aug 2 09:40:56 valor kernel: [ 30.817417] R10: 0000000000000007 R11: 0000000000000246 R12: 0000000000000000 Aug 2 09:40:56 valor kernel: [ 30.817447] R13: 000000fa5726b200 R14: 0000000000020000 R15: 000000fa56a014ed Aug 2 09:40:56 valor kernel: [ 30.817476] Code: f6 c6 01 b8 87 00 00 00 75 f3 55 89 d1 89 f2 8b 77 38 48 8b 7f 10 0f b7 c9 48 89 e5 e8 e5 f8 ff ff 5d c3 0f 1f 00 0f 1f 44 00 00 <4c> 8b 87 88 09 00 00 b8 86 00 00 00 41 83 e0 01 74 02 f3 c3 40 Aug 2 09:40:56 valor kernel: [ 30.817565] RIP: pci_write_config_dword+0x5/0x40 RSP: ffffb1b4021139f8 Aug 2 09:40:56 valor kernel: [ 30.817590] CR2: 0000000000000988 Aug 2 09:40:56 valor kernel: [ 30.828770] ---[ end trace a7125a3653ad444a ]---