Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gvt stable 4.14 #52

Open
wants to merge 1,603 commits into
base: gvt-staging
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1603 commits
Select commit Hold shift + click to select a range
b50f563
x86/alternatives: Fix optimize_nops() checking
suryasaimadhu Jan 10, 2018
22e64ef
x86/pti: Make unpoison of pgd for trusted boot work for real
hansendc Jan 10, 2018
6a4d118
objtool: Detect jumps to retpoline thunks
jpoimboe Jan 11, 2018
6b95f61
objtool: Allow alternatives to be ignored
jpoimboe Jan 11, 2018
3a72bd4
x86/retpoline: Add initial retpoline support
dwmw2 Jan 11, 2018
dcd4311
x86/spectre: Add boot time option to select Spectre v2 mitigation
dwmw2 Jan 11, 2018
79f2c12
x86/retpoline/crypto: Convert crypto assembler indirect jumps
dwmw2 Jan 11, 2018
d4edaa9
x86/retpoline/entry: Convert entry assembler indirect jumps
dwmw2 Jan 11, 2018
82de930
x86/retpoline/ftrace: Convert ftrace assembler indirect jumps
dwmw2 Jan 11, 2018
e0dcc73
x86/retpoline/hyperv: Convert assembler indirect jumps
dwmw2 Jan 11, 2018
41f8af6
x86/retpoline/xen: Convert Xen hypercall indirect jumps
dwmw2 Jan 11, 2018
4707037
x86/retpoline/checksum32: Convert assembler indirect jumps
dwmw2 Jan 11, 2018
b0edc2d
x86/retpoline/irq32: Convert assembler indirect jumps
Jan 11, 2018
b9cdaaf
x86/retpoline: Fill return stack buffer on vmexit
dwmw2 Jan 12, 2018
5a6e7a2
selftests/x86: Add test_vsyscall
amluto Jan 12, 2018
026b3f2
x86/pti: Fix !PCID and sanitize defines
KAGA-KOKO Jan 13, 2018
c3e7fc9
security/Kconfig: Correct the Documentation reference for PTI
wking Jan 12, 2018
6d8b7d3
x86,perf: Disable intel_bts when PTI
Jan 14, 2018
198660b
x86/retpoline: Remove compile time warning
KAGA-KOKO Jan 14, 2018
9c0bf98
Linux 4.14.14
gregkh Jan 17, 2018
50c1c6c
tools/objtool/Makefile: don't assume sync-check.sh is executable
akpm00 Jan 13, 2018
aa9b501
drm/nouveau/disp/gf119: add missing drive vfunc ptr
robclark Jan 6, 2018
e093c08
objtool: Fix seg fault with clang-compiled objects
emersion Dec 30, 2017
78172c7
objtool: Fix Clang enum conversion warning
bulwahn Dec 26, 2017
5174ec1
objtool: Fix seg fault caused by missing parameter
emersion Dec 30, 2017
4167dcb
powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper
mikey Jan 8, 2018
bcba6b9
powerpc/64: Add macros for annotating the destination of rfid/hrfid
npiggin Jan 9, 2018
11caf81
powerpc/64s: Simple RFI macro conversions
npiggin Jan 9, 2018
627700e
powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL
npiggin Jan 9, 2018
bcac5d3
powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL
npiggin Jan 9, 2018
9488c6b
powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL
npiggin Jan 9, 2018
b434c15
powerpc/64s: Add support for RFI flush of L1-D cache
mpe Jan 9, 2018
9472d89
powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti
mpe Jan 9, 2018
4b5158c
powerpc/pseries: Query hypervisor for RFI flush settings
mikey Jan 9, 2018
5dc5971
powerpc/powernv: Check device-tree for RFI flush settings
oohal Jan 9, 2018
1352130
futex: Avoid violating the 10th rule of futex
Dec 8, 2017
17ae6cc
futex: Prevent overflow by strengthen input validation
LiJinyue Dec 14, 2017
c316238
ALSA: seq: Make ioctls race-free
tiwai Jan 9, 2018
004cecc
ALSA: pcm: Remove yet superfluous WARN_ON()
tiwai Jan 10, 2018
f50902a
ALSA: hda - Apply headphone noise quirk for another Dell XPS 13 variant
tiwai Jan 10, 2018
f0299a1
ALSA: hda - Apply the existing quirk to iMac 14,1
tiwai Jan 10, 2018
b3049d3
IB/hfi1: Prevent a NULL dereference
Jan 9, 2018
6985762
RDMA/mlx5: Fix out-of-bound access while querying AH
Jan 12, 2018
4db98c5
timers: Unconditionally check deferrable base
KAGA-KOKO Jan 14, 2018
bee113a
af_key: fix buffer overread in verify_address_len()
ebiggers Dec 30, 2017
754705d
af_key: fix buffer overread in parse_exthdrs()
ebiggers Dec 30, 2017
9ace222
iser-target: Fix possible use-after-free in connection establishment …
sagigrimberg Nov 26, 2017
36ae2e6
delayacct: Account blkio completion on the correct task
hashbrowncipher Dec 18, 2017
f41b2d7
objtool: Fix seg fault with gold linker
jpoimboe Jan 15, 2018
f2264bb
mmc: sdhci-esdhc-imx: Fix i.MX53 eSDHCv3 clock
bthebaudeau Jan 14, 2018
fbb8c0a
x86/kasan: Panic if there is not enough memory to boot
aryabinin Jan 10, 2018
0515475
x86/retpoline: Fill RSB on context switch for affected CPUs
dwmw2 Jan 12, 2018
956ec9e
x86/retpoline: Add LFENCE to the retpoline/RSB filling RSB macros
tlendacky Jan 13, 2018
f45bbd9
objtool: Improve error message for bad file argument
jpoimboe Jan 15, 2018
4d9c9ab
x86/cpufeature: Move processor tracing out of scattered features
bonzini Jan 16, 2018
8c55678
module: Add retpoline tag to VERMAGIC
Jan 16, 2018
929e4b3
x86/intel_rdt/cqm: Prevent use after free
KAGA-KOKO Jan 16, 2018
239f288
x86/mm/pkeys: Fix fill_sig_info_pkey
ebiederm Jan 12, 2018
ad2d620
x86/idt: Mark IDT tables __initconst
Dec 22, 2017
a5ab7b5
x86/tsc: Future-proof native_calibrate_tsc()
lenb Dec 22, 2017
8352a3f
x86/tsc: Fix erroneous TSC rate on Skylake Xeon
lenb Dec 22, 2017
e109607
pipe: avoid round_pipe_size() nr_pages overflow on 32-bit
joe-lawrence Nov 17, 2017
0062c10
x86/apic/vector: Fix off by one in error path
KAGA-KOKO Jan 16, 2018
25e1197
x86/mm: Clean up register saving in the __enc_copy() assembly code
tlendacky Jan 10, 2018
ce1805f
x86/mm: Use a struct to reduce parameters for SME PGD mapping
tlendacky Jan 10, 2018
69a39cf
x86/mm: Centralize PMD flags in sme_encrypt_kernel()
tlendacky Jan 10, 2018
33e4ca3
x86/mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption
tlendacky Jan 10, 2018
5455eef
ARM: OMAP3: hwmod_data: add missing module_offs for MMC3
Oct 30, 2017
e0f82cb
x86/mm: Encrypt the initrd earlier for BSP microcode update
tlendacky Jan 10, 2018
e86e543
Input: ALPS - fix multi-touch decoding on SS4 plus touchpads
Jan 12, 2018
b276eae
Input: synaptics-rmi4 - prevent UAF reported by KASAN
nickdesaulniers Jan 18, 2018
1bb19ef
Input: 88pm860x-ts - fix child-node lookup
jhovold Jan 9, 2018
aabc966
Input: twl6040-vibra - fix child-node lookup
jhovold Jan 9, 2018
b1c7c57
Input: twl4030-vibra - fix sibling-node lookup
jhovold Jan 9, 2018
7296666
tracing: Fix converting enum's from the map in trace_event_eval_update()
rostedt Jan 18, 2018
c044369
phy: work around 'phys' references to usb-nop-xceiv devices
arndb Jan 12, 2018
ebc8d9c
ARM64: dts: marvell: armada-cp110: Fix clock resources for various node
gclement Jul 25, 2017
fb7f328
ARM: sunxi_defconfig: Enable CMA
mripard Jan 19, 2018
e53050a
ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7
tpetazzoni Jan 4, 2018
659af12
can: peak: fix potential bug in packet fragmentation
Jan 15, 2018
91c5fbf
can: af_can: can_rcv(): replace WARN_ONCE by pr_warn_once
marckleinebudde Jan 16, 2018
41812e4
can: af_can: canfd_rcv(): replace WARN_ONCE by pr_warn_once
marckleinebudde Jan 16, 2018
c7b8be8
i2c: core-smbus: prevent stack corruption on read I2C_BLOCK_DATA
jeremy-compostella Nov 15, 2017
4616525
scripts/gdb/linux/tasks.py: fix get_thread_info
consen Jan 19, 2018
ea5c294
proc: fix coredump vs read /proc/*/stat race
Jan 19, 2018
25b13c2
libata: apply MAX_SEC_1024 to all LITEON EP1 series devices
xinyulin Dec 17, 2017
edd0a40
scsi: libsas: Disable asynchronous aborts for SATA devices
hreinecke Jan 10, 2018
a6d5930
workqueue: avoid hard lockups in show_workqueue_state()
sergey-senozhatsky Jan 11, 2018
8f0b1d5
drm/vmwgfx: fix memory corruption with legacy/sou connectors
Jan 17, 2018
9056370
dm btree: fix serious bug in btree_split_beneath()
Dec 20, 2017
5f12c33
dm thin metadata: THIN_MAX_CONCURRENT_LOCKS should be 6
qnap-dennisyang Dec 12, 2017
c808f1d
dm integrity: don't store cipher request on the stack
Jan 10, 2018
6b8fdea
dm crypt: fix crash by adding missing check for auth key size
mbroz Jan 3, 2018
82e12f1
dm crypt: wipe kernel key copy after IV initialization
oniko Jan 12, 2018
f054314
dm crypt: fix error return code in crypt_ctr()
Jan 17, 2018
314a028
x86: Use __nostackprotect for sme_encrypt_kernel
labbott Jan 21, 2018
708a15f
alpha/PCI: Fix noname IRQ level detection
Jan 16, 2018
550ba97
MIPS: CM: Drop WARN_ON(vp != 0)
amalon Dec 5, 2017
d641053
KVM: arm/arm64: Check pagesize when allocating a hugepage at Stage 2
punitagrawal Jan 4, 2018
14c7f5b
arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
Jan 16, 2018
020c755
x86/mce: Make machine check speculation protected
KAGA-KOKO Jan 18, 2018
22371c4
retpoline: Introduce start/end markers of indirect thunk
mhiramat Jan 18, 2018
aaadccc
kprobes/x86: Blacklist indirect thunk functions for kprobes
mhiramat Jan 18, 2018
4fb8368
kprobes/x86: Disable optimizing on the function jumps to indirect thunk
mhiramat Jan 18, 2018
cd8d78e
x86/pti: Document fix wrong index
Jan 18, 2018
5fa8716
x86/retpoline: Optimize inline assembler for vmexit_fill_RSB
Jan 17, 2018
9cc86f9
x86/mm: Rework wbinvd, hlt operation in stop_this_cpu()
tlendacky Jan 17, 2018
3abb4c1
mm, page_vma_mapped: Drop faulty pointer arithmetics in check_pte()
kiryl Jan 19, 2018
0c28707
net: mvpp2: do not disable GMAC padding
yanmarkman Nov 28, 2017
d602cb8
MIPS: AR7: ensure the port type's FCR value is used
KanjiMonster Oct 29, 2017
a16134b
Linux 4.14.15
gregkh Jan 23, 2018
37b3c60
arch/x86/xen: add infrastruction in xen to support gvt
pei6 Mar 7, 2017
987bc82
drm/i915/gvt: write guest ppgtt entry for xengt support
pei6 Mar 31, 2017
5bb3f73
drm/i915/xengt: xengt moudule initial files
pei6 Apr 10, 2017
2bbae4a
i915/gvt/opregion.c: Clean vgpu opregion instead of return error when…
xiongzha Apr 12, 2017
b37d128
drm/i915/xengt: check on_destroy on pfn_to_mfn
pei6 Apr 14, 2017
046d3b7
arch/x86/xen: Import x4.9 interface for ioreq
xiongzha Apr 18, 2017
e3f95fb
i915/gvt/xengt.c: Use new dm_op instead of hvm_op
xiongzha Apr 18, 2017
02a12dc
i915/gvt/xengt.c: New interface to write protect PPGTT
xiongzha Apr 19, 2017
85a8d4e
xen/interface/memory.h: New hypercall number for XENMEM_get_mfn_from_pfn
xiongzha Apr 19, 2017
42a03bb
xen/interface/xen.h: update XEN_DOMCTL_INTERFACE_VERSION to 0x0000000e
xiongzha Apr 19, 2017
dfc125b
i915/gvt/xengt.c: Select vgpu type according to low_gm_sz in hvm.cfg
xiongzha May 8, 2017
75cec9a
drm/i915/gvt: Don't output error message when DomU max gfn don't alig…
xiongzha May 16, 2017
7dd9eac
drm/i915/gvt/xengt: Correctly get low mem max gfn
xiongzha May 25, 2017
aa67e49
drm/i915/gvt: Fix dom0 call trace at shutdown or reboot sometimes
xiongzha Jun 1, 2017
de7ef89
hvm/dm_op.h: Sync dm_op interface to xen 4.9 release
xiongzha Aug 22, 2017
4ee0f13
drm/i915/gvt: Apply g2h adjust for GTT mmio access
yulei-zhang May 27, 2017
59ffff6
drm/i915/gvt: Apply g2h adjustment during fence mmio access
yulei-zhang May 27, 2017
8b70290
drm/i915/gvt: Patch the gma in gpu commands during command parser
yulei-zhang May 27, 2017
65d9506
drm/i915/gvt: Retrieve the guest gm base address from PVINFO
yulei-zhang May 27, 2017
ec8879e
drm/i915/gvt: Align the guest gm aperture start offset for live migra…
yulei-zhang May 27, 2017
5e6e622
drm/i915/gvt: Add support to new VFIO subregion VFIO_REGION_SUBTYPE_D…
yulei-zhang May 27, 2017
67eb5f2
drm/i915/gvt: Implement vGPU status save and restore through new VFIO…
yulei-zhang May 27, 2017
b249e86
vfio: Implement new Ioctl VFIO_IOMMU_GET_DIRTY_BITMAP
yulei-zhang May 27, 2017
c6ba4fe
drm/i915/gvt: Add dev node for vGPU state save/restore in XENGT
yulei-zhang Aug 30, 2017
ad494d9
drm/i915/gvt: Add interface to control the vGPU running state in XENGT
yulei-zhang Aug 30, 2017
5a8cb55
drm/i915/gvt: Modify the vGPU save/restore logic for XENGT
yulei-zhang Aug 30, 2017
a15b919
drm/i915/gvt: Add log dirty support for XENGT migration
yulei-zhang Aug 31, 2017
bdd62dc
drm/i915/gvt/xengt: Add iosrv_enabled to track iosrv status
xiongzha Oct 12, 2017
92bcef2
drm/i915: Add interface to reserve fence registers for vGPU
Sep 4, 2017
ad4d371
drm/i915/kvmgt: Sanitize PCI bar emulation
Aug 15, 2017
d901050
drm/i915/gvt: Add emulation for BAR2 (aperture) with normal file RW a…
Aug 15, 2017
478cf7c
drm/i915/gvt: Separate cmd scan from request allocation
fred1gao Aug 18, 2017
bd574c1
drm/i915/gvt: Add error handling for intel_gvt_scan_and_shadow_workload
fred1gao Aug 18, 2017
c2541c5
drm/i915/gvt: Refine error handling for prepare_execlist_workload
fred1gao Aug 18, 2017
8b377f1
drm/i915/gvt: Refine error handling for intel_vgpu_pin_mm
fred1gao Aug 18, 2017
877a37d
drm/i915/gvt: Refine error handling in dispatch_workload
fred1gao Aug 18, 2017
c506bc5
drm/i915/gvt: Refine error handling for perform_bb_shadow
fred1gao Aug 18, 2017
245124c
drm/i915/gvt: Add support for PCIe extended configuration space
Aug 23, 2017
7cc2daa
drm/i915/lrc: Clarify the format of the context image
mthierry Sep 13, 2017
0e19582
drm/i915/gvt: ensure -ve return value is handled correctly
Sep 19, 2017
f7fcc92
drm/i915/gvt: Fix unsafe locking caused by spin_unlock_bh
Nov 13, 2017
943bcff
drm/i915/gvt: remove skl_misc_ctl_write handler
weinanl Nov 21, 2017
ba8bed1
drm/i915/gvt: Move request alloc to dispatch_workload path only
fred1gao Nov 14, 2017
22e9b4e
drm/i915/gvt: enabled pipe A default on creating vgpu
xzhan34 Nov 16, 2017
246583d
drm/i915/gvt: Emulate PCI expansion ROM base address register
Nov 2, 2017
4d0825f
drm/i915/gvt: Export intel_gvt_render_mmio_to_ring_id()
zhiwang1 Sep 30, 2017
42b9619
drm/i915/gvt: Limit read hw reg to active vgpu
xiongzha Nov 6, 2017
b2c2fc6
drm/i915/gvt: Fix pipe A enable as default for vgpu
xzhan34 Dec 5, 2017
11b310e
drm/i915: Object w/o backing storage is banned by -ENXIO
TinaZhangZW Nov 14, 2017
da20878
drm/i915: Introduce GEM proxy
TinaZhangZW Nov 14, 2017
22e3daf
drm/i915/bios: amend child device config parameters
jnikula Aug 24, 2017
4e6e671
drm/i915/bios: document BDB versions of child device config fields
jnikula Aug 24, 2017
df5ef5c
drm/i915/bios: remove the raw version of child device config
jnikula Aug 24, 2017
8991141
drm/i915/bios: add legacy contents to common child device config
jnikula Aug 24, 2017
663c912
drm/i915/bios: throw away high level child device union
jnikula Aug 24, 2017
ecefa4d
drm/i915/gvt: Add support for opregion virtualization
xzhan34 Sep 8, 2017
80f5459
drm/i915/gvt: Make elsp_dwords in the right order
zhiwang1 Sep 10, 2017
25aeb6d
drm/i915/gvt: Rename intel_vgpu_{init, clean}_gvt_context()
zhiwang1 Sep 10, 2017
67eb075
drm/i915/gvt: Move workload cache init/clean into intel_vgpu_{setup, …
zhiwang1 Sep 10, 2017
5d826b4
drm/i915/gvt: Fix a memory leak in cmd_parser.c
zhiwang1 Sep 10, 2017
9a83596
drm/i915/gvt: Change the return type during command scan
fred1gao Sep 19, 2017
57bd392
drm/i915/gvt: Add VM healthy check for workload_thread
fred1gao Sep 19, 2017
baa1cf5
drm/i915/gvt: Add VM healthy check for submit_context
fred1gao Sep 19, 2017
223cc7b
drm/i915/gvt: Use dyndbg for gvt debug info
Sep 21, 2017
0f1dfc7
drm/i915/gvt: Factor out prepare_workload()
zhiwang1 Sep 12, 2017
4977c88
drm/i915/gvt: Add basic debugfs infrastructure
Sep 26, 2017
53e45c8
drm/i915/gvt: Use BIT() to make klockwork happy
zhiwang1 Sep 26, 2017
11d3422
drm/i915/gvt: Refine find_bb_size()
zhiwang1 Sep 22, 2017
b29d9d1
drm/i915/gvt: Factor intel_vgpu_page_track
zhiwang1 Sep 28, 2017
7ad6805
drm/i915/gvt: Fix a bug of unexpectedly clear scratch page table
zhiwang1 Oct 10, 2017
08187d3
drm/i915/gvt: Introduce page table type of current level in GTT type …
zhiwang1 Oct 10, 2017
de60c43
drm/i915/gvt: Introduce ops->set_present()
zhiwang1 Oct 10, 2017
25a30f0
drm/i915/gvt: opregion virtualization for win guest
xzhan34 Oct 20, 2017
0c97d01
drm/i915/gvt: Add mmio iterator intel_gvt_for_each_tracked_mmio()
Oct 23, 2017
7e5dcaa
drm/i915/gvt: Add new debugfs tool mmio_diff
Oct 23, 2017
4ff6fcb
drm/i915/gvt: Reduce rcs mocs switch latency
Oct 30, 2017
42f4498
drm/i915/gvt: Don't dump partial state in cmd parser
Nov 2, 2017
7124ef7
drm/i915/gvt: Make gvt_vgpu_err use pr_err
Nov 2, 2017
509219f
drm/i915/gvt: Let each vgpu has separate opregion memory
xiongzha Nov 7, 2017
041396f
drm/i915/gvt: Fix out-of-bounds buffer write into opregion->signature[]
ickle Dec 4, 2017
3145173
drm/i915/gvt: Alloc and Init guest opregion at vgpu creation
xiongzha Nov 20, 2017
62f5018
drm/i915/gvt: Add opregion support
TinaZhangZW Nov 20, 2017
4fe4a99
drm/i915/gvt: Add framebuffer decoder support
TinaZhangZW Nov 23, 2017
114a238
vfio: ABI for mdev display dma-buf operation
TinaZhangZW Nov 23, 2017
e3c7665
lib/scatterlist: Avoid potential scatterlist entry overflow
tursulin Aug 3, 2017
0d7eb2b
lib/scatterlist: Introduce and export __sg_alloc_table_from_pages
tursulin Aug 3, 2017
67f9241
drm/i915: Use __sg_alloc_table_from_pages for userptr allocations
tursulin Aug 3, 2017
9541512
drm/i915: push set_pages down to the callers
matt-auld Oct 6, 2017
3e7318e
drm/i915/gvt: Dmabuf support for GVT-g
TinaZhangZW Nov 23, 2017
89d5d56
drm/i915/gvt: Handle orphan dmabuf_objs
TinaZhangZW Nov 23, 2017
a3e80bd
drm/i915/gvt: Introduce KBL to dma-buf on Gvt-g
TinaZhangZW Nov 28, 2017
0596e7c
drm/i915/gvt: Free dmabuf_obj list in intel_vgpu_dmabuf_cleanup
TinaZhangZW Nov 29, 2017
f2aa6ce
drm/i915/gvt: Add missing breaks in switch statement
Dec 4, 2017
a0a5aed
drm/i915/gvt: Refine the ring mmio list definition
Dec 8, 2017
7281ef3
drm/i915/gvt: Select appropriate mmio list at initialization time
Dec 8, 2017
05dbbb0
drm/i915/gvt: Remove MMIO barrier in MMIO switch
Dec 8, 2017
8466f65
drm/i915/gvt: Rename file render.{c, h} to mmio_context.{c, h}
Dec 8, 2017
4170c9a
drm/i915/gvt/kvmgt: fill info for ROM/VGA region
pei6 Dec 8, 2017
8be1d2d
drm/i915/gvt: Refine dmabuf_obj cleanup process
TinaZhangZW Dec 8, 2017
897ec6b
drm/i915/gvt: refine function emulate_mmio_read/write
pei6 Dec 11, 2017
2fd9388
drm/i915/gvt/fb_decoder: Fix out-of-bounds read
GustavoARSilva Dec 9, 2017
5c4989c
drm/i915/gvt: refine trace_render_mmio
weinanl Dec 13, 2017
28a8c23
drm/i915/gvt: always use i915_reg_t for MMIO handler definition
zhenyw Dec 19, 2017
4a20b6e
drm/i915/gvt: move write protect handler out of mmio emulation function
zhenyw Dec 18, 2017
5c0b5d3
drm/i915/gvt: Add xengt ppgtt write handler
xiongzha Dec 28, 2017
f082062
drm/i915:Disable plane fault error interrupts
Mar 22, 2017
abb4ed8
Revert "drm/i915/gvt: remove skl_misc_ctl_write handler"
xiongzha Jan 11, 2018
eada1ad
drm/i915/gvt: Fix gen8/9_render_mmio_list[0] don't take effect
xiongzha Dec 26, 2017
509946b
Revert "drm/i915/gvt: Add emulation for BAR2 (aperture) with normal f…
fred1gao Jan 12, 2018
dfd6f41
drm/i915/gvt/xengt: Fix xengt instance destroy error
xiongzha Jan 16, 2018
62a9697
drm/i915/gvt: Keep obj->dma_buf link NULL during exporting
TinaZhangZW Jan 15, 2018
f7576cb
drm/i915/gvt: Use copy_to_user to return opregion
TinaZhangZW Jan 19, 2018
392f75b
drm/i915/gvt: Apply g2h adjustment to buffer start gma for dmabuf
yulei-zhang Jan 26, 2018
4f61618
drm/i915/gvt: change the return value of opregion access function
yulei-zhang Jan 25, 2018
1b0b177
drm/i915/gvt: Use KVM r/w to access guest opregion
TinaZhangZW Jan 25, 2018
619e8b1
drm/i915/gvt: Expose opregion in vgpu open
TinaZhangZW Jan 31, 2018
3db5f58
drm/i915/gvt: validate gfn before set shadow page entry
hyuan3 Dec 22, 2017
838fa6f
drm/i915: Extend vblank timeout to 100ms at atomic_commit
xiongzha Feb 2, 2018
3409df3
drm/i915/gvt: add PLANE_KEYMAX to default handler list
yanzhao56 Feb 2, 2018
45fb335
drm/i915/gvt: Fix xengt opregion handling in migration
yulei-zhang Feb 13, 2018
c3d6312
drm/i915/gvt: XenGT migration optimize
yulei-zhang Feb 13, 2018
4b14567
drm/i915/gvt: add 0xe4f0 into gen9 render list
weinanl Feb 7, 2018
2d2fdad
drm/i915/gvt: add define GEN9_MOCS_SIZE
weinanl Feb 8, 2018
bdf37c8
drm/i915/gvt: add interface to check if context is inhibit
weinanl Feb 8, 2018
6680d1d
drm/i915/gvt: init mmio by lri command in vgpu inhibit context
weinanl Feb 8, 2018
83cbe8d
drm/i915/gvt: Add runtime_pm_get/put into gvt_switch_mmio
xiongzha Feb 26, 2018
1bf1e0d
drm/i915/gvt: Invalidate PPGTT shadows of vGPU in all-engine reset
weinanl Sep 20, 2017
082935e
drm/i915/gvt: Fix Klockwork issues
yulei-zhang Mar 8, 2018
05730ce
drm/i915: Bump wait-times for the final CS interrupt before parking
ickle Oct 23, 2017
e69eddb
drm/i915: Synchronize irq before parking each engine
ickle Oct 23, 2017
0c3a5a9
drm/i915/gvt: Fix guest vGPU hang caused by very high dma setup overhead
Jan 29, 2018
f49888b
drm/i915/gvt: Correct the previlege shadow batch buffer address
fred1gao Mar 12, 2018
d73189e
drm/i915/gvt/xengt: Impliment mpt->dma_map/unmap_guest_page
xiongzha Mar 6, 2018
f438232
drm/i915/gvt: Fix pending workload submit after VGPU migrate
yulei-zhang Mar 15, 2018
4157ab2
drm/i915/gvt: Remove reduntant printing of untracked mmio
coxuintel Mar 17, 2018
1e3bb3a
drm/i915/gvt: Add vgpu execlist info into migration device status
yulei-zhang Mar 23, 2018
46ed35a
drm/i915/gvt: Missed to cancel dma map for ggtt entries
Mar 20, 2018
9cb9d79
drm/i915/kvmgt: Check the pfn got from vfio_pin_pages
Mar 29, 2018
6ce8612
drm/i915/gvt/xengt: Don't shutdown vm at ioreq failure
xiongzha Apr 9, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions Documentation/ABI/testing/sysfs-devices-system-cpu
Original file line number Diff line number Diff line change
Expand Up @@ -373,3 +373,19 @@ Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description: information about CPUs heterogeneity.

cpu_capacity: capacity of cpu#.

What: /sys/devices/system/cpu/vulnerabilities
/sys/devices/system/cpu/vulnerabilities/meltdown
/sys/devices/system/cpu/vulnerabilities/spectre_v1
/sys/devices/system/cpu/vulnerabilities/spectre_v2
Date: January 2018
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description: Information about CPU vulnerabilities

The files are named after the code names of CPU
vulnerabilities. The output of those files reflects the
state of the CPUs in the system. Possible output values:

"Not affected" CPU is not affected by the vulnerability
"Vulnerable" CPU is affected and no mitigation in effect
"Mitigation: $M" CPU is affected and mitigation $M is in effect
43 changes: 43 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2599,6 +2599,11 @@
nosmt [KNL,S390] Disable symmetric multithreading (SMT).
Equivalent to smt=1.

nospectre_v2 [X86] Disable all mitigations for the Spectre variant 2
(indirect branch prediction) vulnerability. System may
allow data leaks with this option, which is equivalent
to spectre_v2=off.

noxsave [BUGS=X86] Disables x86 extended register state save
and restore using xsave. The kernel will fallback to
enabling legacy floating-point and sse state.
Expand Down Expand Up @@ -3253,6 +3258,21 @@
pt. [PARIDE]
See Documentation/blockdev/paride.txt.

pti= [X86_64] Control Page Table Isolation of user and
kernel address spaces. Disabling this feature
removes hardening, but improves performance of
system calls and interrupts.

on - unconditionally enable
off - unconditionally disable
auto - kernel detects whether your CPU model is
vulnerable to issues that PTI mitigates

Not specifying this option is equivalent to pti=auto.

nopti [X86_64]
Equivalent to pti=off

pty.legacy_count=
[KNL] Number of legacy pty's. Overwrites compiled-in
default number.
Expand Down Expand Up @@ -3893,6 +3913,29 @@
sonypi.*= [HW] Sony Programmable I/O Control Device driver
See Documentation/laptops/sonypi.txt

spectre_v2= [X86] Control mitigation of Spectre variant 2
(indirect branch speculation) vulnerability.

on - unconditionally enable
off - unconditionally disable
auto - kernel detects whether your CPU model is
vulnerable

Selecting 'on' will, and 'auto' may, choose a
mitigation method at run time according to the
CPU, the available microcode, the setting of the
CONFIG_RETPOLINE configuration option, and the
compiler with which the kernel was built.

Specific mitigations can also be selected manually:

retpoline - replace indirect branches
retpoline,generic - google's original retpoline
retpoline,amd - AMD-specific minimal thunk

Not specifying this option is equivalent to
spectre_v2=auto.

spia_io_base= [HW,MTD]
spia_fio_base=
spia_pedr=
Expand Down
4 changes: 4 additions & 0 deletions Documentation/devicetree/bindings/hwmon/jc42.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ Required properties:

- reg: I2C address

Optional properties:
- smbus-timeout-disable: When set, the smbus timeout function will be disabled.
This is not supported on all chips.

Example:

temp-sensor@1a {
Expand Down
24 changes: 12 additions & 12 deletions Documentation/devicetree/bindings/timer/renesas,cmt.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ Required Properties:
(CMT1 on sh73a0 and r8a7740)
This is a fallback for the above renesas,cmt-48-* entries.

- "renesas,cmt0-r8a73a4" for the 32-bit CMT0 device included in r8a73a4.
- "renesas,cmt1-r8a73a4" for the 48-bit CMT1 device included in r8a73a4.
- "renesas,cmt0-r8a7790" for the 32-bit CMT0 device included in r8a7790.
- "renesas,cmt1-r8a7790" for the 48-bit CMT1 device included in r8a7790.
- "renesas,cmt0-r8a7791" for the 32-bit CMT0 device included in r8a7791.
- "renesas,cmt1-r8a7791" for the 48-bit CMT1 device included in r8a7791.
- "renesas,cmt0-r8a7793" for the 32-bit CMT0 device included in r8a7793.
- "renesas,cmt1-r8a7793" for the 48-bit CMT1 device included in r8a7793.
- "renesas,cmt0-r8a7794" for the 32-bit CMT0 device included in r8a7794.
- "renesas,cmt1-r8a7794" for the 48-bit CMT1 device included in r8a7794.
- "renesas,r8a73a4-cmt0" for the 32-bit CMT0 device included in r8a73a4.
- "renesas,r8a73a4-cmt1" for the 48-bit CMT1 device included in r8a73a4.
- "renesas,r8a7790-cmt0" for the 32-bit CMT0 device included in r8a7790.
- "renesas,r8a7790-cmt1" for the 48-bit CMT1 device included in r8a7790.
- "renesas,r8a7791-cmt0" for the 32-bit CMT0 device included in r8a7791.
- "renesas,r8a7791-cmt1" for the 48-bit CMT1 device included in r8a7791.
- "renesas,r8a7793-cmt0" for the 32-bit CMT0 device included in r8a7793.
- "renesas,r8a7793-cmt1" for the 48-bit CMT1 device included in r8a7793.
- "renesas,r8a7794-cmt0" for the 32-bit CMT0 device included in r8a7794.
- "renesas,r8a7794-cmt1" for the 48-bit CMT1 device included in r8a7794.

- "renesas,rcar-gen2-cmt0" for 32-bit CMT0 devices included in R-Car Gen2.
- "renesas,rcar-gen2-cmt1" for 48-bit CMT1 devices included in R-Car Gen2.
Expand All @@ -46,7 +46,7 @@ Required Properties:
Example: R8A7790 (R-Car H2) CMT0 and CMT1 nodes

cmt0: timer@ffca0000 {
compatible = "renesas,cmt0-r8a7790", "renesas,rcar-gen2-cmt0";
compatible = "renesas,r8a7790-cmt0", "renesas,rcar-gen2-cmt0";
reg = <0 0xffca0000 0 0x1004>;
interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
<0 142 IRQ_TYPE_LEVEL_HIGH>;
Expand All @@ -55,7 +55,7 @@ Example: R8A7790 (R-Car H2) CMT0 and CMT1 nodes
};

cmt1: timer@e6130000 {
compatible = "renesas,cmt1-r8a7790", "renesas,rcar-gen2-cmt1";
compatible = "renesas,r8a7790-cmt1", "renesas,rcar-gen2-cmt1";
reg = <0 0xe6130000 0 0x1004>;
interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>,
<0 121 IRQ_TYPE_LEVEL_HIGH>,
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/usb/usb-device.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Required properties:
be used, but a device adhering to this binding may leave out all except
for usbVID,PID.
- reg: the port number which this device is connecting to, the range
is 1-31.
is 1-255.

Example:

Expand Down
2 changes: 1 addition & 1 deletion Documentation/x86/orc-unwinder.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ORC unwinder
Overview
--------

The kernel CONFIG_ORC_UNWINDER option enables the ORC unwinder, which is
The kernel CONFIG_UNWINDER_ORC option enables the ORC unwinder, which is
similar in concept to a DWARF unwinder. The difference is that the
format of the ORC data is much simpler than DWARF, which in turn allows
the ORC unwinder to be much simpler and faster.
Expand Down
186 changes: 186 additions & 0 deletions Documentation/x86/pti.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
Overview
========

Page Table Isolation (pti, previously known as KAISER[1]) is a
countermeasure against attacks on the shared user/kernel address
space such as the "Meltdown" approach[2].

To mitigate this class of attacks, we create an independent set of
page tables for use only when running userspace applications. When
the kernel is entered via syscalls, interrupts or exceptions, the
page tables are switched to the full "kernel" copy. When the system
switches back to user mode, the user copy is used again.

The userspace page tables contain only a minimal amount of kernel
data: only what is needed to enter/exit the kernel such as the
entry/exit functions themselves and the interrupt descriptor table
(IDT). There are a few strictly unnecessary things that get mapped
such as the first C function when entering an interrupt (see
comments in pti.c).

This approach helps to ensure that side-channel attacks leveraging
the paging structures do not function when PTI is enabled. It can be
enabled by setting CONFIG_PAGE_TABLE_ISOLATION=y at compile time.
Once enabled at compile-time, it can be disabled at boot with the
'nopti' or 'pti=' kernel parameters (see kernel-parameters.txt).

Page Table Management
=====================

When PTI is enabled, the kernel manages two sets of page tables.
The first set is very similar to the single set which is present in
kernels without PTI. This includes a complete mapping of userspace
that the kernel can use for things like copy_to_user().

Although _complete_, the user portion of the kernel page tables is
crippled by setting the NX bit in the top level. This ensures
that any missed kernel->user CR3 switch will immediately crash
userspace upon executing its first instruction.

The userspace page tables map only the kernel data needed to enter
and exit the kernel. This data is entirely contained in the 'struct
cpu_entry_area' structure which is placed in the fixmap which gives
each CPU's copy of the area a compile-time-fixed virtual address.

For new userspace mappings, the kernel makes the entries in its
page tables like normal. The only difference is when the kernel
makes entries in the top (PGD) level. In addition to setting the
entry in the main kernel PGD, a copy of the entry is made in the
userspace page tables' PGD.

This sharing at the PGD level also inherently shares all the lower
layers of the page tables. This leaves a single, shared set of
userspace page tables to manage. One PTE to lock, one set of
accessed bits, dirty bits, etc...

Overhead
========

Protection against side-channel attacks is important. But,
this protection comes at a cost:

1. Increased Memory Use
a. Each process now needs an order-1 PGD instead of order-0.
(Consumes an additional 4k per process).
b. The 'cpu_entry_area' structure must be 2MB in size and 2MB
aligned so that it can be mapped by setting a single PMD
entry. This consumes nearly 2MB of RAM once the kernel
is decompressed, but no space in the kernel image itself.

2. Runtime Cost
a. CR3 manipulation to switch between the page table copies
must be done at interrupt, syscall, and exception entry
and exit (it can be skipped when the kernel is interrupted,
though.) Moves to CR3 are on the order of a hundred
cycles, and are required at every entry and exit.
b. A "trampoline" must be used for SYSCALL entry. This
trampoline depends on a smaller set of resources than the
non-PTI SYSCALL entry code, so requires mapping fewer
things into the userspace page tables. The downside is
that stacks must be switched at entry time.
c. Global pages are disabled for all kernel structures not
mapped into both kernel and userspace page tables. This
feature of the MMU allows different processes to share TLB
entries mapping the kernel. Losing the feature means more
TLB misses after a context switch. The actual loss of
performance is very small, however, never exceeding 1%.
d. Process Context IDentifiers (PCID) is a CPU feature that
allows us to skip flushing the entire TLB when switching page
tables by setting a special bit in CR3 when the page tables
are changed. This makes switching the page tables (at context
switch, or kernel entry/exit) cheaper. But, on systems with
PCID support, the context switch code must flush both the user
and kernel entries out of the TLB. The user PCID TLB flush is
deferred until the exit to userspace, minimizing the cost.
See intel.com/sdm for the gory PCID/INVPCID details.
e. The userspace page tables must be populated for each new
process. Even without PTI, the shared kernel mappings
are created by copying top-level (PGD) entries into each
new process. But, with PTI, there are now *two* kernel
mappings: one in the kernel page tables that maps everything
and one for the entry/exit structures. At fork(), we need to
copy both.
f. In addition to the fork()-time copying, there must also
be an update to the userspace PGD any time a set_pgd() is done
on a PGD used to map userspace. This ensures that the kernel
and userspace copies always map the same userspace
memory.
g. On systems without PCID support, each CR3 write flushes
the entire TLB. That means that each syscall, interrupt
or exception flushes the TLB.
h. INVPCID is a TLB-flushing instruction which allows flushing
of TLB entries for non-current PCIDs. Some systems support
PCIDs, but do not support INVPCID. On these systems, addresses
can only be flushed from the TLB for the current PCID. When
flushing a kernel address, we need to flush all PCIDs, so a
single kernel address flush will require a TLB-flushing CR3
write upon the next use of every PCID.

Possible Future Work
====================
1. We can be more careful about not actually writing to CR3
unless its value is actually changed.
2. Allow PTI to be enabled/disabled at runtime in addition to the
boot-time switching.

Testing
========

To test stability of PTI, the following test procedure is recommended,
ideally doing all of these in parallel:

1. Set CONFIG_DEBUG_ENTRY=y
2. Run several copies of all of the tools/testing/selftests/x86/ tests
(excluding MPX and protection_keys) in a loop on multiple CPUs for
several minutes. These tests frequently uncover corner cases in the
kernel entry code. In general, old kernels might cause these tests
themselves to crash, but they should never crash the kernel.
3. Run the 'perf' tool in a mode (top or record) that generates many
frequent performance monitoring non-maskable interrupts (see "NMI"
in /proc/interrupts). This exercises the NMI entry/exit code which
is known to trigger bugs in code paths that did not expect to be
interrupted, including nested NMIs. Using "-c" boosts the rate of
NMIs, and using two -c with separate counters encourages nested NMIs
and less deterministic behavior.

while true; do perf record -c 10000 -e instructions,cycles -a sleep 10; done

4. Launch a KVM virtual machine.
5. Run 32-bit binaries on systems supporting the SYSCALL instruction.
This has been a lightly-tested code path and needs extra scrutiny.

Debugging
=========

Bugs in PTI cause a few different signatures of crashes
that are worth noting here.

* Failures of the selftests/x86 code. Usually a bug in one of the
more obscure corners of entry_64.S
* Crashes in early boot, especially around CPU bringup. Bugs
in the trampoline code or mappings cause these.
* Crashes at the first interrupt. Caused by bugs in entry_64.S,
like screwing up a page table switch. Also caused by
incorrectly mapping the IRQ handler entry code.
* Crashes at the first NMI. The NMI code is separate from main
interrupt handlers and can have bugs that do not affect
normal interrupts. Also caused by incorrectly mapping NMI
code. NMIs that interrupt the entry code must be very
careful and can be the cause of crashes that show up when
running perf.
* Kernel crashes at the first exit to userspace. entry_64.S
bugs, or failing to map some of the exit code.
* Crashes at first interrupt that interrupts userspace. The paths
in entry_64.S that return to userspace are sometimes separate
from the ones that return to the kernel.
* Double faults: overflowing the kernel stack because of page
faults upon page faults. Caused by touching non-pti-mapped
data in the entry code, or forgetting to switch to kernel
CR3 before calling into C functions which are not pti-mapped.
* Userspace segfaults early in boot, sometimes manifesting
as mount(8) failing to mount the rootfs. These have
tended to be TLB invalidation issues. Usually invalidating
the wrong PCID, or otherwise missing an invalidation.

1. https://gruss.cc/files/kaiser.pdf
2. https://meltdownattack.com/meltdown.pdf
Loading