Zhenyu Wang
850555d1d3
drm/i915/gvt: fix user copy warning by whitelist workload rb_tail field
...
This is to fix warning got as:
[ 6730.476938] ------------[ cut here ]------------
[ 6730.476979] Bad or missing usercopy whitelist? Kernel memory exposure attempt detected from SLAB object 'gvt-g_vgpu_workload' (offset 120, size 4)!
[ 6730.477021] WARNING: CPU: 2 PID: 441 at mm/usercopy.c:81 usercopy_warn+0x7e/0xa0
[ 6730.477042] Modules linked in: tun(E) bridge(E) stp(E) llc(E) kvmgt(E) x86_pkg_temp_thermal(E) vfio_mdev(E) intel_powerclamp(E) mdev(E) coretemp(E) vfio_iommu_type1(E) vfio(E) kvm_intel(E) kvm(E) hid_generic(E) irqbypass(E) crct10dif_pclmul(E) crc32_pclmul(E) usbhid(E) i915(E) crc32c_intel(E) hid(E) ghash_clmulni_intel(E) pcbc(E) aesni_intel(E) aes_x86_64(E) crypto_simd(E) cryptd(E) glue_helper(E) intel_cstate(E) idma64(E) evdev(E) virt_dma(E) iTCO_wdt(E) intel_uncore(E) intel_rapl_perf(E) intel_lpss_pci(E) sg(E) shpchp(E) mei_me(E) pcspkr(E) iTCO_vendor_support(E) intel_lpss(E) intel_pch_thermal(E) prime_numbers(E) mei(E) mfd_core(E) video(E) acpi_pad(E) button(E) binfmt_misc(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) sd_mod(E) e1000e(E) xhci_pci(E) sdhci_pci(E)
[ 6730.477244] ptp(E) cqhci(E) xhci_hcd(E) pps_core(E) sdhci(E) mmc_core(E) i2c_i801(E) usbcore(E) thermal(E) fan(E)
[ 6730.477276] CPU: 2 PID: 441 Comm: gvt workload 0 Tainted: G E 4.16.0-rc1-gvt-staging-0213+ #127
[ 6730.477303] Hardware name: /NUC6i5SYB, BIOS SYSKLi35.86A.0039.2016.0316.1747 03/16/2016
[ 6730.477326] RIP: 0010:usercopy_warn+0x7e/0xa0
[ 6730.477340] RSP: 0018:ffffba6301223d18 EFLAGS: 00010286
[ 6730.477355] RAX: 0000000000000000 RBX: ffff8f41caae9838 RCX: 0000000000000006
[ 6730.477375] RDX: 0000000000000007 RSI: 0000000000000082 RDI: ffff8f41dad166f0
[ 6730.477395] RBP: 0000000000000004 R08: 0000000000000576 R09: 0000000000000000
[ 6730.477415] R10: ffffffffb1293fb2 R11: 00000000ffffffff R12: 0000000000000001
[ 6730.477447] R13: ffff8f41caae983c R14: ffff8f41caae9838 R15: 00007f183ca2b000
[ 6730.477467] FS: 0000000000000000(0000) GS:ffff8f41dad00000(0000) knlGS:0000000000000000
[ 6730.477489] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6730.477506] CR2: 0000559462817291 CR3: 000000028b46c006 CR4: 00000000003626e0
[ 6730.477526] Call Trace:
[ 6730.477537] __check_object_size+0x9c/0x1a0
[ 6730.477562] __kvm_write_guest_page+0x45/0x90 [kvm]
[ 6730.477585] kvm_write_guest+0x46/0x80 [kvm]
[ 6730.477599] kvmgt_rw_gpa+0x9b/0xf0 [kvmgt]
[ 6730.477642] workload_thread+0xa38/0x1040 [i915]
[ 6730.477659] ? do_wait_intr_irq+0xc0/0xc0
[ 6730.477673] ? finish_wait+0x80/0x80
[ 6730.477707] ? clean_workloads+0x120/0x120 [i915]
[ 6730.477722] kthread+0x111/0x130
[ 6730.477733] ? _kthread_create_worker_on_cpu+0x60/0x60
[ 6730.477750] ? exit_to_usermode_loop+0x6f/0xb0
[ 6730.477766] ret_from_fork+0x35/0x40
[ 6730.477777] Code: 48 c7 c0 20 e3 25 b1 48 0f 44 c2 41 50 51 41 51 48 89 f9 49 89 f1 4d 89 d8 4c 89 d2 48 89 c6 48 c7 c7 78 e3 25 b1 e8 b2 bc e4 ff <0f> ff 48 83 c4 18 c3 48 c7 c6 09 d0 26 b1 49 89 f1 49 89 f3 eb
[ 6730.477849] ---[ end trace cae869c1c323e45a ]---
By whitelist guest page write from workload struct allocated from kmem cache.
Reviewed-by: Hang Yuan <hang.yuan@linux.intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit 5627705406874df57fdfad3b4e0c9aedd3b007df)
2018-03-15 15:07:22 +08:00
..
2018-03-15 15:07:22 +08:00
2017-12-18 21:54:59 +00:00
2017-06-01 15:53:03 +03:00
2017-05-10 13:47:55 +03:00
2018-02-06 11:41:40 -08:00
2017-12-22 09:19:49 +00:00
2018-02-14 11:41:47 -08:00
2018-02-14 11:43:31 -08:00
2017-06-14 14:06:22 +01:00
2017-12-13 13:17:44 +00:00
2017-07-27 22:07:24 +02:00
2018-02-12 23:34:59 -08:00
2017-11-10 17:23:10 +00:00
2017-10-09 17:07:29 +01:00
2017-11-02 12:40:41 +10:00
2018-02-28 11:10:43 -08:00
2017-10-09 17:07:29 +01:00
2018-02-01 07:33:04 -08:00
2017-12-12 12:30:22 +02:00
2017-12-15 11:35:43 +00:00
2017-08-15 15:46:57 +01:00
2017-12-04 11:24:33 +08:00
2017-11-20 15:56:16 +00:00
2017-11-10 17:23:22 +00:00
2018-02-28 11:10:48 -08:00
2017-12-13 13:17:44 +00:00
2018-02-01 07:32:41 -08:00
2017-12-12 12:30:22 +02:00
2017-12-07 23:26:55 +00:00
2017-12-14 20:10:01 +02:00
2017-11-27 16:37:15 +00:00
2017-11-28 10:01:15 -08:00
2018-03-05 16:08:31 -08:00
2017-11-16 15:35:47 +02:00
2017-11-30 10:11:49 +02:00
2017-10-07 10:11:41 +01:00
2017-12-19 21:55:13 +00:00
2017-12-06 14:41:49 +00:00
2017-12-22 11:12:15 +00:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-09-18 19:46:36 +01:00
2018-02-12 23:34:50 -08:00
2017-11-13 15:59:03 +00:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2018-02-12 23:34:55 -08:00
2017-11-13 15:59:24 +00:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-11-02 14:52:58 +00:00
2017-08-03 18:18:05 +01:00
2017-12-19 15:07:08 +00:00
2017-12-19 15:07:08 +00:00
2018-02-01 07:32:58 -08:00
2018-03-05 16:08:28 -08:00
2018-02-13 16:56:06 -08:00
2018-02-13 16:56:03 -08:00
2017-10-16 13:56:29 +03:00
2018-02-28 11:10:37 -08:00
2017-11-10 11:31:58 +00:00
2017-09-29 12:30:17 +01:00
2017-12-14 10:58:59 +02:00
2017-07-09 18:48:37 -07:00
2017-05-03 11:08:48 +01:00
2017-05-03 11:08:48 +01:00
2018-02-01 17:48:47 -08:00
2017-11-02 11:10:55 +01:00
2017-12-18 16:10:32 +00:00
2017-12-22 09:13:47 +00:00
2017-08-15 10:12:48 +08:00
2017-10-16 13:56:29 +03:00
2017-12-12 12:30:21 +02:00
2017-12-07 23:26:55 +00:00
2017-11-02 11:10:55 +01:00
2017-09-01 16:48:24 +03:00
2017-06-12 09:45:55 -07:00
2018-02-28 11:10:32 -08:00
2018-02-14 11:43:31 -08:00
2018-02-13 16:55:45 -08:00
2018-02-14 11:39:44 -08:00
2017-11-17 12:14:25 +01:00
2017-11-09 20:05:18 +02:00
2017-12-05 15:57:08 +02:00
2017-12-19 14:59:53 +02:00
2017-12-22 09:19:49 +00:00
2017-12-22 09:19:49 +00:00
2018-02-01 07:31:31 -08:00
2017-12-22 09:18:24 +00:00
2017-09-22 14:50:36 +03:00
2018-02-01 07:32:54 -08:00
2017-11-09 20:06:14 +02:00
2017-12-08 08:41:22 +10:00
2017-11-09 20:06:14 +02:00
2017-11-16 09:45:39 -08:00
2017-06-12 09:42:18 -07:00
2018-01-15 16:44:51 +02:00
2017-08-16 18:02:00 +03:00
2017-08-21 11:52:29 +03:00
2017-12-08 08:41:22 +10:00
2017-10-30 19:53:22 +02:00
2018-02-13 16:55:55 -08:00
2017-12-12 12:30:19 +02:00
2017-12-12 12:30:22 +02:00
2017-09-25 16:54:09 +03:00
2017-11-06 13:57:37 +00:00
2017-05-26 13:26:53 +01:00
2018-02-01 07:31:12 -08:00
2017-12-06 14:41:47 +00:00
2017-11-02 08:42:11 +00:00
2017-12-14 08:06:54 +00:00
2017-10-06 14:09:40 +03:00
2017-11-24 20:47:39 +00:00
2017-12-14 08:07:00 +00:00
2017-12-14 08:06:54 +00:00
2017-12-14 08:06:54 +00:00
2017-12-14 08:06:54 +00:00
2017-12-06 14:41:49 +00:00
2017-05-30 15:59:47 +03:00
2018-02-01 07:33:02 -08:00
2018-02-01 07:31:27 -08:00
2017-08-11 11:53:47 -07:00
2018-02-01 07:31:12 -08:00
2017-12-06 14:41:54 +00:00
2017-12-22 14:23:14 +02:00
2017-12-19 14:59:40 +02:00
2018-03-05 16:08:31 -08:00
2017-11-20 21:53:59 +00:00
2017-10-13 12:15:10 +03:00
2017-10-30 19:53:22 +02:00
2017-06-07 07:29:51 -07:00
2017-11-21 14:17:56 +01:00
2017-12-22 09:19:48 +00:00
2017-12-22 09:19:48 +00:00
2017-12-12 12:30:21 +02:00
2017-11-27 17:27:15 +01:00
2017-11-30 16:49:42 +01:00
2018-02-06 11:41:39 -08:00
2018-01-02 13:44:56 +02:00
2017-08-14 12:15:49 +03:00
2017-11-23 16:12:06 +00:00
2018-02-13 16:55:59 -08:00
2018-01-18 09:32:15 +10:00
2017-11-09 20:04:47 +02:00
2017-10-11 08:56:56 +01:00
2018-01-15 16:44:51 +02:00
2017-11-09 20:04:56 +02:00
2017-12-06 14:41:52 +00:00
2017-12-06 14:41:47 +00:00
2018-02-01 07:31:33 -08:00
2017-12-14 08:06:56 +00:00
2017-12-01 15:20:02 +00:00
2017-11-21 11:39:31 +02:00
2018-02-07 12:32:14 -08:00
2017-09-19 13:06:21 +01:00
2017-12-19 23:04:45 +00:00
2017-12-08 08:41:22 +10:00