Linux 4.14.171
Greg KH
maintainerI'm announcing the release of the 4.14.171 kernel.
All users of the 4.14 kernel series must upgrade.
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arc/boot/dts/axs10x_mb.dtsi | 1 arch/arm/boot/dts/sama5d3.dtsi | 28 arch/arm/boot/dts/sama5d3_can.dtsi | 4 arch/arm/boot/dts/sama5d3_tcb1.dtsi | 1 arch/arm/boot/dts/sama5d3_uart.dtsi | 4 arch/arm/include/asm/kvm_emulate.h | 5 arch/arm/include/asm/kvm_mmio.h | 2 arch/arm/mach-tegra/sleep-tegra30.S | 11 arch/arm/mm/init.c | 2 arch/arm64/include/asm/kvm_emulate.h | 5 arch/arm64/include/asm/kvm_mmio.h | 6 arch/arm64/kernel/cpufeature.c | 2 arch/mips/Makefile.postlink | 2 arch/powerpc/Kconfig | 1 arch/powerpc/boot/4xx.c | 2 arch/powerpc/kvm/book3s_hv.c | 4 arch/powerpc/kvm/book3s_pr.c | 4 arch/powerpc/platforms/pseries/hotplug-memory.c | 4 arch/powerpc/platforms/pseries/iommu.c | 43 arch/powerpc/platforms/pseries/vio.c | 2 arch/powerpc/xmon/xmon.c | 9 arch/s390/include/asm/page.h | 2 arch/s390/kvm/kvm-s390.c | 6 arch/s390/mm/hugetlbpage.c | 100 arch/sparc/include/uapi/asm/ipcbuf.h | 22 arch/x86/kernel/cpu/tsx.c | 13 arch/x86/kvm/emulate.c | 27 arch/x86/kvm/hyperv.c | 10 arch/x86/kvm/i8259.c | 6 arch/x86/kvm/ioapic.c | 15 arch/x86/kvm/lapic.c | 13 arch/x86/kvm/mmu.c | 6 arch/x86/kvm/mtrr.c | 8 arch/x86/kvm/pmu.h | 18 arch/x86/kvm/pmu_intel.c | 24 arch/x86/kvm/vmx.c | 4 arch/x86/kvm/vmx/vmx.c | 8033 +++++++++++++++++ arch/x86/kvm/x86.c | 27 crypto/algapi.c | 22 crypto/api.c | 3 crypto/internal.h | 1 crypto/pcrypt.c | 1 drivers/acpi/video_detect.c | 13 drivers/base/power/main.c | 42 drivers/clk/tegra/clk-tegra-periph.c | 6 drivers/crypto/atmel-aes.c | 37 drivers/crypto/atmel-sha.c | 7 drivers/crypto/axis/artpec6_crypto.c | 2 drivers/crypto/ccp/ccp-dev-v3.c | 1 drivers/crypto/picoxcell_crypto.c | 15 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 8 drivers/hv/hv_balloon.c | 13 drivers/infiniband/core/addr.c | 2 drivers/infiniband/core/sa_query.c | 4 drivers/infiniband/core/umem_odp.c | 2 drivers/infiniband/hw/mlx5/gsi.c | 3 drivers/md/dm-crypt.c | 10 drivers/md/dm-zoned-metadata.c | 23 drivers/md/dm.c | 9 drivers/md/persistent-data/dm-space-map-common.c | 27 drivers/md/persistent-data/dm-space-map-common.h | 2 drivers/md/persistent-data/dm-space-map-disk.c | 6 drivers/md/persistent-data/dm-space-map-metadata.c | 5 drivers/media/i2c/adv748x/adv748x.h | 8 drivers/media/rc/iguanair.c | 2 drivers/media/usb/uvc/uvc_driver.c | 12 drivers/media/v4l2-core/videobuf-dma-sg.c | 5 drivers/mfd/da9062-core.c | 2 drivers/mfd/dln2.c | 13 drivers/mfd/rn5t618.c | 1 drivers/mmc/host/mmc_spi.c | 11 drivers/mmc/host/sdhci-of-at91.c | 9 drivers/mtd/ubi/fastmap.c | 23 drivers/net/bonding/bond_alb.c | 44 drivers/net/dsa/bcm_sf2.c | 4 drivers/net/ethernet/broadcom/bcmsysport.c | 3 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 drivers/net/ethernet/cadence/macb_main.c | 14 drivers/net/ethernet/dec/tulip/dmfe.c | 7 drivers/net/ethernet/dec/tulip/uli526x.c | 4 drivers/net/ethernet/smsc/smc911x.c | 2 drivers/net/gtp.c | 6 drivers/net/ppp/ppp_async.c | 18 drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 1 drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 10 drivers/net/wireless/marvell/libertas/cfg.c | 2 drivers/net/wireless/marvell/mwifiex/scan.c | 7 drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 1 drivers/net/wireless/marvell/mwifiex/wmm.c | 4 drivers/nfc/pn544/pn544.c | 2 drivers/of/Kconfig | 4 drivers/of/address.c | 6 drivers/pci/dwc/pci-keystone-dw.c | 2 drivers/pci/setup-bus.c | 20 drivers/pci/switch/switchtec.c | 2 drivers/phy/qualcomm/phy-qcom-apq8064-sata.c | 2 drivers/pinctrl/sh-pfc/pfc-r8a7778.c | 4 drivers/platform/x86/intel_mid_powerbtn.c | 5 drivers/platform/x86/intel_scu_ipc.c | 21 drivers/power/supply/ltc2941-battery-gauge.c | 2 drivers/rtc/rtc-cmos.c | 2 drivers/rtc/rtc-hym8563.c | 2 drivers/scsi/csiostor/csio_scsi.c | 2 drivers/scsi/megaraid/megaraid_sas_base.c | 3 drivers/scsi/megaraid/megaraid_sas_fusion.c | 3 drivers/scsi/megaraid/megaraid_sas_fusion.h | 1 drivers/scsi/qla2xxx/qla_dbg.c | 6 drivers/scsi/qla2xxx/qla_dbg.h | 6 drivers/scsi/qla2xxx/qla_isr.c | 12 drivers/scsi/qla2xxx/qla_mbx.c | 3 drivers/scsi/qla2xxx/qla_nx.c | 7 drivers/scsi/qla4xxx/ql4_os.c | 2 drivers/scsi/ufs/ufshcd.c | 6 drivers/tty/serial/xilinx_uartps.c | 17 drivers/usb/gadget/function/f_ecm.c | 16 drivers/usb/gadget/function/f_ncm.c | 17 drivers/usb/gadget/legacy/cdc2.c | 2 drivers/usb/gadget/legacy/g_ffs.c | 2 drivers/usb/gadget/legacy/multi.c | 2 drivers/usb/gadget/legacy/ncm.c | 2 drivers/xen/xen-balloon.c | 2 fs/btrfs/ctree.c | 64 fs/btrfs/ctree.h | 32 fs/btrfs/delayed-ref.c | 8 fs/btrfs/disk-io.c | 22 fs/btrfs/extent_io.c | 8 fs/btrfs/file-item.c | 2 fs/btrfs/file.c | 3 fs/btrfs/inode.c | 12 fs/btrfs/print-tree.c | 4 fs/btrfs/send.c | 17 fs/btrfs/tests/btrfs-tests.c | 1 fs/btrfs/transaction.c | 8 fs/btrfs/tree-log.c | 397 fs/cifs/smb2pdu.c | 10 fs/ext2/super.c | 6 fs/ext4/page-io.c | 19 fs/f2fs/super.c | 14 fs/nfs/Kconfig | 2 fs/nfs/dir.c | 47 fs/nfs/direct.c | 4 fs/nfs/nfs3xdr.c | 5 fs/nfs/nfs4proc.c | 5 fs/nfs/nfs4xdr.c | 5 fs/nfs/pnfs_nfs.c | 7 fs/nfs/write.c | 4 fs/nfsd/nfs4layouts.c | 2 fs/nfsd/nfs4state.c | 2 fs/nfsd/state.h | 2 fs/ubifs/dir.c | 2 fs/ubifs/file.c | 4 fs/ubifs/ioctl.c | 11 include/linux/kvm_host.h | 2 include/media/v4l2-rect.h | 8 include/trace/events/btrfs.h | 2 kernel/events/core.c | 10 kernel/irq/irqdomain.c | 1 kernel/module.c | 2 kernel/time/alarmtimer.c | 8 kernel/time/clocksource.c | 11 kernel/trace/ftrace.c | 15 kernel/trace/trace.h | 29 kernel/trace/trace_sched_switch.c | 4 lib/test_kasan.c | 1 net/hsr/hsr_slave.c | 2 net/ipv4/tcp.c | 6 net/l2tp/l2tp_core.c | 7 net/rxrpc/ar-internal.h | 1 net/rxrpc/call_object.c | 4 net/rxrpc/conn_client.c | 3 net/rxrpc/conn_object.c | 3 net/rxrpc/input.c | 3 net/rxrpc/output.c | 26 net/sched/cls_rsvp.h | 6 net/sched/cls_tcindex.c | 43 net/sunrpc/auth_gss/svcauth_gss.c | 4 net/vmw_vsock/hyperv_transport.c | 68 samples/bpf/Makefile | 2 sound/drivers/dummy.c | 2 sound/soc/soc-pcm.c | 95 tools/kvm/kvm_stat/kvm_stat | 8 tools/power/acpi/Makefile.config | 2 virt/kvm/arm/mmio.c | 6 virt/kvm/arm/mmu.c | 3 virt/kvm/arm/vgic/vgic-its.c | 3 virt/kvm/kvm_main.c | 4 188 files changed, 9310 insertions(+), 957 deletions(-)
Alexander Lobakin (1):
MIPS: fix indentation of the 'RELOCS' message
Alexandre Belloni (2):
ARM: dts: at91: sama5d3: fix maximum peripheral clock rates
ARM: dts: at91: sama5d3: define clock rate range for tcb1
Alexey Kardashevskiy (1):
powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW
Amol Grover (2):
tracing: Annotate ftrace_graph_hash pointer with __rcu
tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
Anand Jain (1):
btrfs: use bool argument in free_root_pointers()
Anand Lodnoor (1):
scsi: megaraid_sas: Do not initiate OCR if controller is not in ready state
Andreas Kemnade (1):
mfd: rn5t618: Mark ADC control register volatile
Andy Shevchenko (1):
rtc: cmos: Stop using shared IRQ
Ard Biesheuvel (1):
crypto: ccp - set max RSA modulus size for v3 platform devices as well
Arnd Bergmann (3):
sparc32: fix struct ipc64_perm type definition
nfsd: fix delay timer on 32-bit architectures
nfsd: fix jiffies/time_t mixup in LRU list
Arun Easi (1):
scsi: qla2xxx: Fix unbound NVME response length
Asutosh Das (1):
scsi: ufs: Recheck bkops level if bkops is disabled
Bart Van Assche (1):
scsi: qla2xxx: Fix the endianness of the qla82xx_get_fw_size() return type
Bean Huo (1):
scsi: ufs: Fix ufshcd_probe_hba() reture value in case ufshcd_scsi_add_wlus() fails
Brian Norris (1):
mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
Bryan O'Donoghue (2):
usb: gadget: f_ncm: Use atomic_t to track in-flight request
usb: gadget: f_ecm: Use atomic_t to track in-flight request
Chengguang Xu (3):
f2fs: choose hardlimit when softlimit is larger than hardlimit in f2fs_statfs_project()
f2fs: fix miscounted block limit in f2fs_statfs_project()
f2fs: code cleanup for f2fs_statfs_project()
Christian Borntraeger (1):
KVM: s390: do not clobber registers during guest reset/store status
Christoffer Dall (1):
KVM: arm64: Only sign-extend MMIO up to register width
Chuhong Yuan (1):
crypto: picoxcell - adjust the position of tasklet_init and fix missed tasklet_kill
Claudiu Beznea (1):
drm: atmel-hlcdc: enable clock before configuring timing engine
Cong Wang (2):
net_sched: fix an OOB access in cls_tcindex
net_sched: fix a resource leak in tcindex_set_parms()
Dan Carpenter (1):
ubi: Fix an error pointer dereference in error handling code
David Howells (3):
rxrpc: Fix insufficient receive notification generation
rxrpc: Fix NULL pointer deref due to call->conn being cleared on disconnect
rxrpc: Fix service call disconnection
David Sterba (1):
btrfs: remove trivial locking wrappers of tree mod log
Dmitry Fomichev (1):
dm zoned: support zone sizes smaller than 128MiB
Eric Auger (1):
KVM: arm/arm64: vgic-its: Fix restoration of unmapped collections
Eric Biggers (5):
ubifs: Fix FS_IOC_SETFLAGS unexpectedly clearing encrypt flag
ubifs: don't trigger assertion on invalid no-key filename
ext4: fix deadlock allocating crypto bounce page from mempool
crypto: artpec6 - return correct error code for failed setkey()
crypto: atmel-sha - fix error handling when setting hmac key
Eric Dumazet (7):
cls_rsvp: fix rsvp_policy
net: hsr: fix possible NULL deref in hsr_handle_frame()
tcp: clear tp->total_retrans in tcp_disconnect()
tcp: clear tp->delivered in tcp_disconnect()
tcp: clear tp->data_segs{in|out} in tcp_disconnect()
tcp: clear tp->segs_{in|out} in tcp_disconnect()
bonding/alb: properly access headers in bond_alb_xmit()Filipe Manana (3):
Btrfs: fix assertion failure on fsync with NO_HOLES enabled
Btrfs: fix missing hole after hole punching and fsync when using NO_HOLES
Btrfs: fix race between adding and putting tree mod seq elements and nodes
Florian Fainelli (2):
net: dsa: bcm_sf2: Only 7278 supports 2Gb/sec IMP port
net: systemport: Avoid RBUF stuck in Wake-on-LAN mode
Gavin Shan (2):
tools/kvm_stat: Fix kvm_exit filter name
KVM: arm/arm64: Fix young bit from mmu notifier
Geert Uytterhoeven (2):
nfs: NFS_SWAP should depend on SWAP
pinctrl: sh-pfc: r8a7778: Fix duplicate SDSELF_B and SD1_CLK_B
Gerald Schaefer (1):
s390/mm: fix dynamic pagetable upgrade for hugetlbfs
Greg Kroah-Hartman (1):
Linux 4.14.171
Gustavo A. R. Silva (2):
lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more()
media: i2c: adv748x: Fix unsafe macros
Hans de Goede (1):
ACPI: video: Do not export a non working backlight interface on MSI MS-7721 boards
Harini Katakam (2):
net: macb: Remove unnecessary alignment check for TSO
net: macb: Limit maximum GEM TX length in TSO
Helen Koike (1):
media: v4l2-rect.h: fix v4l2_rect_map_inside() top/left adjustments
Herbert Xu (3):
crypto: api - Check spawn->alg under lock in crypto_drop_spawn
crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
crypto: api - Fix race condition in crypto_spawn_alg
Hou Tao (1):
ubifs: Reject unsupported ioctl flags explicitly
Håkon Bugge (1):
RDMA/netlink: Do not always generate an ACK for some netlink operations
Joe Thornber (1):
dm space map common: fix to ensure new block isn't already in use
Johan Hovold (1):
media: iguanair: fix endpoint sanity check
John Hubbard (1):
media/v4l2-core: set pages dirty upon releasing DMA buffers
Jose Abreu (1):
ARC: [plat-axs10x]: Add missing multicast filter number to GMAC node
Josef Bacik (3):
btrfs: set trans->drity in btrfs_commit_transaction
btrfs: free block groups after free'ing fs trees
btrfs: flush write bio if we loop in extent_write_cache_pages
Juergen Gross (1):
xen/balloon: Support xend-based toolstack take two
Kevin Hao (1):
irqdomain: Fix a memory leak in irq_domain_push_irq()
Konstantin Khlebnikov (1):
clocksource: Prevent double add_timer_on() for watchdog_timer
Linus Walleij (1):
mmc: spi: Toggle SPI polarity, do not hardcode it
Logan Gunthorpe (2):
PCI/switchtec: Fix vep_vector_number ioread width
PCI: Don't disable bridge BARs when assigning bus resources
Luca Coelho (2):
iwlwifi: mvm: fix NVM check for 3168 devices
iwlwifi: don't throw error when trying to remove IGTK
Marco Felsch (1):
mfd: da9062: Fix watchdog compatible string
Marios Pomonis (12):
KVM: x86: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks
KVM: x86: Refactor prefix decoding to prevent Spectre-v1/L1TF attacks
KVM: x86: Protect DR-based index computations from Spectre-v1/L1TF attacks
KVM: x86: Protect kvm_lapic_reg_write() from Spectre-v1/L1TF attacks
KVM: x86: Protect kvm_hv_msr_[get|set]_crash_data() from Spectre-v1/L1TF attacks
KVM: x86: Protect ioapic_write_indirect() from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations in pmu.h from Spectre-v1/L1TF attacks
KVM: x86: Protect ioapic_read_indirect() from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations from Spectre-v1/L1TF attacks in x86.c
KVM: x86: Protect x86_decode_insn from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations in fixed_msr_to_seg_unit() from Spectre-v1/L1TF attacks
KVM: x86: Protect pmu_intel.c from Spectre-v1/L1TF attacks
Mathieu Desnoyers (1):
tracing: Fix sched switch start/stop refcount racy updates
Miaohe Lin (1):
KVM: nVMX: vmread should not set rflags to specify success in case of #PF
Michael Chan (1):
bnxt_en: Fix TC queue mapping.
Michael Ellerman (1):
of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
Michał Mirosław (1):
mmc: sdhci-of-at91: fix memleak on clk_get failure
Mika Westerberg (2):
platform/x86: intel_scu_ipc: Fix interrupt support platform/x86: intel_mid_powerbtn: Take a copy of ddata
Mike Snitzer (1):
dm: fix potential for q->make_request_fn NULL pointer
Milan Broz (1):
dm crypt: fix benbi IV constructor crash if used in authenticated mode
Nathan Chancellor (9):
scsi: csiostor: Adjust indentation in csio_device_reset
scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free
phy: qualcomm: Adjust indentation in read_poll_timeout
ext2: Adjust indentation in ext2_fill_super powerpc/44x: Adjust indentation in ibm4xx_denali_fixup_memsize
NFC: pn544: Adjust indentation in pn544_hci_check_presence
ppp: Adjust indentation into ppp_async_input
net: smc911x: Adjust indentation in smc911x_phy_configure
net: tulip: Adjust indentation in {dmfe, uli526x}_init_module
Navid Emamdoost (1):
brcmfmac: Fix memory leak in brcmf_usbdev_qinit
Nicolai Stange (2):
libertas: don't exit from lbs_ibss_join_existing() with RCU read lock held
libertas: make lbs_ibss_join_existing() return error code on rates overflow
Oliver Neukum (1):
mfd: dln2: More sanity checking for endpoints
Olof Johansson (1):
ARM: 8949/1: mm: mark free_memmap as __init
Paul Kocialkowski (1):
rtc: hym8563: Return -EINVAL if the time is known to be invalid
Pawan Gupta (1):
x86/cpu: Update cached HLE state on write to TSX_CTRL_CPUID_CLEAR
Pingfan Liu (1):
powerpc/pseries: Advance pfn if section is not present in lmb_is_removable()
Prabhath Sajeepa (1):
IB/mlx5: Fix outstanding_pi index for GSI qps
Qing Xu (2):
mwifiex: Fix possible buffer overflows in mwifiex_ret_wmm_get_status()
mwifiex: Fix possible buffer overflows in mwifiex_cmd_append_vsie_tlv()
Qu Wenruo (1):
btrfs: Get rid of the confusing btrfs_file_extent_inline_len
Quinn Tran (1):
scsi: qla2xxx: Fix mtcp dump collection failure
Rafael J. Wysocki (1):
PM: core: Fix handling of devices deleted during system-wide resume
Ranjani Sridharan (1):
ASoC: pcm: update FE/BE trigger order based on the command
Ridge Kennedy (1):
l2tp: Allow duplicate session creation with UDP
Robert Milkowski (1):
NFSv4: try lease recovery on NFS4ERR_EXPIRED
Roberto Bergantinos Corpas (1):
sunrpc: expiry_time should be seconds not timeval
Roger Quadros (1):
usb: gadget: legacy: set max_speed to super-speed
Ronnie Sahlberg (1):
cifs: fail i/o on soft mounts if sessionsetup errors out
Sascha Hauer (1):
ubi: fastmap: Fix inverted logic in seen selfcheck
Sean Christopherson (8):
KVM: PPC: Book3S HV: Uninit vCPU if vcore creation fails
KVM: PPC: Book3S PR: Free shared page if mmu initialization fails
KVM: x86: Free wbinvd_dirty_mask if vCPU creation fails
KVM: x86: Fix potential put_fpu() w/o load_fpu() on MPX platform
KVM: x86/mmu: Apply max PA check for MMIO sptes to 32-bit KVM
KVM: VMX: Add non-canonical check on writes to RTIT address MSRs
KVM: Use vcpu-specific gva->hva translation when querying host page size
KVM: Play nice with read-only memslots when querying host page size
Shubhrajyoti Datta (2):
serial: uartps: Add a timeout to the tx empty wait
serial: uartps: Move the spinlock after the read of the tx empty
Song Liu (1):
perf/core: Fix mlock accounting in perf_mmap()
Stephen Boyd (1):
alarmtimer: Unregister wakeup source when module get fails
Stephen Warren (2):
ARM: tegra: Enable PLLP bypass during Tegra124 LP1
clk: tegra: Mark fuse clock as critical
Steven Rostedt (VMware) (2):
ftrace: Add comment to why rcu_dereference_sched() is open coded
ftrace: Protect ftrace_graph_hash with ftrace_sync
Sukadev Bhattiprolu (1):
powerpc/xmon: don't access ASDR in VMs
Sunil Muthuswamy (1):
hv_sock: Remove the accept port restriction
Suzuki K Poulose (1):
arm64: cpufeature: Fix the type of no FP/SIMD capability
Sven Van Asbroeck (1):
power: supply: ltc2941-battery-gauge: fix use-after-free
Taehee Yoo (1):
gtp: use __GFP_NOWARN to avoid memalloc warning
Takashi Iwai (1):
ALSA: dummy: Fix PCM format loop in proc output
Tianyu Lan (1):
hv_balloon: Balloon up according to request page number
Toke Høiland-Jørgensen (1):
samples/bpf: Don't try to remove user's homedir on clean
Trond Myklebust (3):
NFS: Fix memory leaks and corruption in readdir
NFS: Directory page cache pages need to be locked when read NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes()
Tudor Ambarus (1):
crypto: atmel-aes - Fix counter overflow in CTR mode
Tyrel Datwyler (1):
powerpc/pseries/vio: Fix iommu_table use-after-free refcount warning
Will Deacon (1):
media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
Yishai Hadas (1):
IB/core: Fix ODP get user pages flow
YueHaibing (1):
kernel/module: Fix memleak in module_add_modinfo_attrs()
Yurii Monakov (1):
PCI: keystone: Fix link training retries initiation
Zhengyuan Liu (1):
tools/power/acpi: fix compilation error
Zhihao Cheng (1):
ubifs: Fix deadlock in concurrent bulk-read and writepage
Greg KH
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 -SUBLEVEL = 170 +SUBLEVEL = 171 EXTRAVERSION = NAME = Petit Gorille
arch/arc/boot/dts/axs10x_mb.dtsi +1 -0
@@ -70,6 +70,7 @@ interrupt-names = "macirq"; phy-mode = "rgmii"; snps,pbl = < 32 >; + snps,multicast-filter-bins = <256>; clocks = <&apbclk>; clock-names = "stmmaceth"; max-speed = <100>;
arch/arm/boot/dts/sama5d3.dtsi +14 -14
@@ -1185,49 +1185,49 @@ usart0_clk: usart0_clk { #clock-cells = <0>; reg = <12>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; usart1_clk: usart1_clk { #clock-cells = <0>; reg = <13>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; usart2_clk: usart2_clk { #clock-cells = <0>; reg = <14>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; usart3_clk: usart3_clk { #clock-cells = <0>; reg = <15>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; uart0_clk: uart0_clk { #clock-cells = <0>; reg = <16>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; twi0_clk: twi0_clk { reg = <18>; #clock-cells = <0>; - atmel,clk-output-range = <0 16625000>; + atmel,clk-output-range = <0 41500000>; }; twi1_clk: twi1_clk { #clock-cells = <0>; reg = <19>; - atmel,clk-output-range = <0 16625000>; + atmel,clk-output-range = <0 41500000>; }; twi2_clk: twi2_clk { #clock-cells = <0>; reg = <20>; - atmel,clk-output-range = <0 16625000>; + atmel,clk-output-range = <0 41500000>; }; mci0_clk: mci0_clk {
@@ -1243,19 +1243,19 @@ spi0_clk: spi0_clk { #clock-cells = <0>; reg = <24>; - atmel,clk-output-range = <0 133000000>; + atmel,clk-output-range = <0 166000000>; }; spi1_clk: spi1_clk { #clock-cells = <0>; reg = <25>; - atmel,clk-output-range = <0 133000000>; + atmel,clk-output-range = <0 166000000>; }; tcb0_clk: tcb0_clk { #clock-cells = <0>; reg = <26>; - atmel,clk-output-range = <0 133000000>; + atmel,clk-output-range = <0 166000000>; }; pwm_clk: pwm_clk {
@@ -1266,7 +1266,7 @@ adc_clk: adc_clk { #clock-cells = <0>; reg = <29>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; dma0_clk: dma0_clk {
@@ -1297,13 +1297,13 @@ ssc0_clk: ssc0_clk { #clock-cells = <0>; reg = <38>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; ssc1_clk: ssc1_clk { #clock-cells = <0>; reg = <39>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; sha_clk: sha_clk {
arch/arm/boot/dts/sama5d3_can.dtsi +2 -2
@@ -37,13 +37,13 @@ can0_clk: can0_clk { #clock-cells = <0>; reg = <40>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; can1_clk: can1_clk { #clock-cells = <0>; reg = <41>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; }; };
arch/arm/boot/dts/sama5d3_tcb1.dtsi +1 -0
@@ -23,6 +23,7 @@ tcb1_clk: tcb1_clk { #clock-cells = <0>; reg = <27>; + atmel,clk-output-range = <0 166000000>; }; }; };
arch/arm/boot/dts/sama5d3_uart.dtsi +2 -2
@@ -42,13 +42,13 @@ uart0_clk: uart0_clk { #clock-cells = <0>; reg = <16>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; uart1_clk: uart1_clk { #clock-cells = <0>; reg = <17>; - atmel,clk-output-range = <0 66000000>; + atmel,clk-output-range = <0 83000000>; }; }; };
arch/arm/include/asm/kvm_emulate.h +5 -0
@@ -144,6 +144,11 @@ static inline bool kvm_vcpu_dabt_issext(struct kvm_vcpu *vcpu)return kvm_vcpu_get_hsr (vcpu) &HSR_SSE ; } +static inline bool kvm_vcpu_dabt_issf (const struct kvm_vcpu *vcpu) +{ +return false; +} +static inline int kvm_vcpu_dabt_get_rd (struct kvm_vcpu *vcpu) {return (kvm_vcpu_get_hsr (vcpu) &HSR_SRT_MASK ) >>HSR_SRT_SHIFT ;
arch/arm/include/asm/kvm_mmio.h +2 -0
@@ -26,6 +26,8 @@struct kvm_decode {unsigned long rt;bool sign_extend; +/* Not used on 32-bit arm */ +bool sixty_four; };void kvm_mmio_write_buf (void *buf,unsigned int len,unsigned long data);
arch/arm/mach-tegra/sleep-tegra30.S +11 -0
@@ -382,6 +382,14 @@ _pll_m_c_x_done: pll_locked r1, r0, CLK_RESET_PLLC_BASE pll_locked r1, r0, CLK_RESET_PLLX_BASE + tegra_get_soc_id TEGRA_APB_MISC_BASE, r1 + cmp r1, #TEGRA30 + beq 1f + ldr r1, [r0, #CLK_RESET_PLLP_BASE] + bic r1, r1, #(1<<31) @ disable PllP bypass + str r1, [r0, #CLK_RESET_PLLP_BASE] +1: + mov32 r7, TEGRA_TMRUS_BASE ldr r1, [r7] add r1, r1, #LOCK_DELAY
@@ -641,7 +649,10 @@ tegra30_switch_cpu_to_clk32k: str r0, [r4, #PMC_PLLP_WB0_OVERRIDE] /* disable PLLP, PLLA, PLLC and PLLX */ + tegra_get_soc_id TEGRA_APB_MISC_BASE, r1 + cmp r1, #TEGRA30 ldr r0, [r5, #CLK_RESET_PLLP_BASE] + orrne r0, r0, #(1 << 31) @ enable PllP bypass on fast cluster bic r0, r0, #(1 << 30) str r0, [r5, #CLK_RESET_PLLP_BASE] ldr r0, [r5, #CLK_RESET_PLLA_BASE]
arch/arm/mm/init.c +1 -1
@@ -356,7 +356,7 @@ static inline void poison_init_mem(void *s, size_t count) *p++ =0xe7fddef0 ; } -static inline void +static inline void __init free_memmap (unsigned long start_pfn,unsigned long end_pfn) {struct page *start_pg, *end_pg;
arch/arm64/include/asm/kvm_emulate.h +5 -0
@@ -188,6 +188,11 @@ static inline bool kvm_vcpu_dabt_issext(const struct kvm_vcpu *vcpu)return !!(kvm_vcpu_get_hsr (vcpu) & ESR_ELx_SSE); } +static inline bool kvm_vcpu_dabt_issf (const struct kvm_vcpu *vcpu) +{ +return !!(kvm_vcpu_get_hsr (vcpu) & ESR_ELx_SF); +} +static inline int kvm_vcpu_dabt_get_rd (const struct kvm_vcpu *vcpu) {return (kvm_vcpu_get_hsr (vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
arch/arm64/include/asm/kvm_mmio.h +2 -4
@@ -21,13 +21,11 @@#include <linux/kvm_host.h> #include <asm/kvm_arm.h> -/* -* This is annoying. The mmio code requires this, even if we don't -* need any decoding. To be fixed. -*/ struct kvm_decode {unsigned long rt;bool sign_extend; +/* Witdth of the register accessed by the faulting instruction is 64-bits */ +bool sixty_four; };void kvm_mmio_write_buf (void *buf,unsigned int len,unsigned long data);
arch/arm64/kernel/cpufeature.c +1 -1
@@ -1103,7 +1103,7 @@ static const struct arm64_cpu_capabilities arm64_features[] = { {/* FP/SIMD is not implemented */ .capability = ARM64_HAS_NO_FPSIMD, - .type = ARM64_CPUCAP_SYSTEM_FEATURE, + .type = ARM64_CPUCAP_BOOT_RESTRICTED_CPU_LOCAL_FEATURE, .min_field_value = 0, .matches = has_no_fpsimd, },
arch/mips/Makefile.postlink +1 -1
@@ -12,7 +12,7 @@ __archpost: include scripts/Kbuild.include CMD_RELOCS = arch/mips/boot/tools/relocs -quiet_cmd_relocs = RELOCS $@ +quiet_cmd_relocs = RELOCS $@ cmd_relocs = $(CMD_RELOCS) $@ # `@true` prevents complaint when there is nothing to be done
arch/powerpc/Kconfig +1 -0
@@ -225,6 +225,7 @@ config PPC select MODULES_USE_ELF_RELA select NO_BOOTMEM select OF + select OF_DMA_DEFAULT_COHERENT if !NOT_COHERENT_CACHE select OF_EARLY_FLATTREE select OF_RESERVED_MEM select OLD_SIGACTION if PPC32
arch/powerpc/boot/4xx.c +1 -1
@@ -232,7 +232,7 @@ void ibm4xx_denali_fixup_memsize(void) dpath =8 ;/* 64 bits */ /* get address pins (rows) */ - val =SDRAM0_READ (DDR0_42 ); + val =SDRAM0_READ (DDR0_42 ); row =DDR_GET_VAL (val,DDR_APIN ,DDR_APIN_SHIFT );if (row > max_row)
arch/powerpc/kvm/book3s_hv.c +3 -1
@@ -1997,7 +1997,7 @@ static struct kvm_vcpu *kvmppc_core_vcpu_create_hv(struct kvm *kvm,mutex_unlock (&kvm->lock);if (!vcore) - goto free_vcpu; + goto uninit_vcpu;spin_lock (&vcore->lock); ++vcore->num_threads;
@@ -2014,6 +2014,8 @@ static struct kvm_vcpu *kvmppc_core_vcpu_create_hv(struct kvm *kvm,return vcpu; +uninit_vcpu: +kvm_vcpu_uninit (vcpu); free_vcpu:kmem_cache_free (kvm_vcpu_cache, vcpu); out:
arch/powerpc/kvm/book3s_pr.c +3 -1
@@ -1482,10 +1482,12 @@ static struct kvm_vcpu *kvmppc_core_vcpu_create_pr(struct kvm *kvm, err =kvmppc_mmu_init (vcpu);if (err <0 ) - goto uninit_vcpu; + goto free_shared_page;return vcpu; +free_shared_page: +free_page ((unsigned long )vcpu->arch.shared); uninit_vcpu:kvm_vcpu_uninit (vcpu); free_shadow_vcpu:
arch/powerpc/platforms/pseries/hotplug-memory.c +3 -1
@@ -452,8 +452,10 @@ static bool lmb_is_removable(struct of_drconf_cell *lmb)for (i =0 ; i < scns_per_block; i++) { pfn =PFN_DOWN (phys_addr); -if (!pfn_present (pfn)) +if (!pfn_present (pfn)) { + phys_addr +=MIN_MEMORY_BLOCK_SIZE ;continue ; + } rc &=is_mem_section_removable (pfn,PAGES_PER_SECTION ); phys_addr +=MIN_MEMORY_BLOCK_SIZE ;
arch/powerpc/platforms/pseries/iommu.c +29 -14
108 lines not on this page · raw message
arch/powerpc/platforms/pseries/vio.c +2 -0
@@ -1195,6 +1195,8 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev)if (tbl ==NULL )return NULL ; +kref_init (&tbl->it_kref); +of_parse_dma_window (dev->dev.of_node, dma_window, &tbl->it_index, &offset, &size);
arch/powerpc/xmon/xmon.c +4 -5
@@ -1830,15 +1830,14 @@ static void dump_300_sprs(void)printf ("pidr = %.16lx tidr = %.16lx\n" ,mfspr (SPRN_PID ),mfspr (SPRN_TIDR )); -printf ("asdr = %.16lx psscr = %.16lx\n" , -mfspr (SPRN_ASDR ), hv ?mfspr (SPRN_PSSCR ) - :mfspr (SPRN_PSSCR_PR )); +printf ("psscr = %.16lx\n" , + hv ?mfspr (SPRN_PSSCR ) :mfspr (SPRN_PSSCR_PR ));if (!hv)return ; -printf ("ptcr = %.16lx\n" , -mfspr (SPRN_PTCR )); +printf ("ptcr = %.16lx asdr = %.16lx\n" , +mfspr (SPRN_PTCR ),mfspr (SPRN_ASDR ));#endif }
arch/s390/include/asm/page.h +2 -0
@@ -33,6 +33,8 @@#define ARCH_HAS_PREPARE_HUGEPAGE #define ARCH_HAS_HUGEPAGE_CLEAR_FLUSH +#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA +#include <asm/setup.h> #ifndef __ASSEMBLY__
arch/s390/kvm/kvm-s390.c +2 -4
@@ -2384,9 +2384,7 @@ static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu)memset (vcpu->arch.sie_block->gcr,0 ,16 *sizeof (__u64)); vcpu->arch.sie_block->gcr[0 ] =0xE0UL ; vcpu->arch.sie_block->gcr[14 ] =0xC2000000UL ; -/* make sure the new fpc will be lazily loaded */ -save_fpu_regs (); - current->thread.fpu.fpc =0 ; + vcpu->run->s.regs.fpc =0 ; vcpu->arch.sie_block->gbea =1 ; vcpu->arch.sie_block->pp =0 ; vcpu->arch.sie_block->fpf &= ~FPF_BPBC ;
@@ -3753,7 +3751,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp, }case KVM_S390_STORE_STATUS : idx =srcu_read_lock (&vcpu->kvm->srcu); - r =kvm_s390_vcpu_store_status (vcpu, arg); + r =kvm_s390_store_status_unloaded (vcpu, arg);srcu_read_unlock (&vcpu->kvm->srcu, idx);break ;case KVM_S390_SET_INITIAL_PSW : {
arch/s390/mm/hugetlbpage.c +99 -1
115 lines not on this page · raw message
arch/sparc/include/uapi/asm/ipcbuf.h +11 -11
@@ -15,19 +15,19 @@struct ipc64_perm { -__kernel_key_t key; -__kernel_uid_t uid; -__kernel_gid_t gid; -__kernel_uid_t cuid; -__kernel_gid_t cgid; +__kernel_key_t key; +__kernel_uid32_t uid; +__kernel_gid32_t gid; +__kernel_uid32_t cuid; +__kernel_gid32_t cgid;#ifndef __arch64__ -unsigned short __pad0; +unsigned short __pad0;#endif -__kernel_mode_t mode; -unsigned short __pad1; -unsigned short seq; -unsigned long long __unused1; -unsigned long long __unused2; +__kernel_mode_t mode; +unsigned short __pad1; +unsigned short seq; +unsigned long long __unused1; +unsigned long long __unused2; };#endif /* __SPARC_IPCBUF_H */
arch/x86/kernel/cpu/tsx.c +7 -6
@@ -115,11 +115,12 @@ void __init tsx_init(void)tsx_disable ();/* -* tsx_disable() will change the state of the -* RTM CPUID bit. Clear it here since it is now -* expected to be not set. +* tsx_disable() will change the state of the RTM and HLE CPUID +* bits. Clear them here since they are now expected to be not +* set. */ setup_clear_cpu_cap (X86_FEATURE_RTM ); +setup_clear_cpu_cap (X86_FEATURE_HLE ); }else if (tsx_ctrl_state ==TSX_CTRL_ENABLE ) {/*
@@ -131,10 +132,10 @@ void __init tsx_init(void)tsx_enable ();/* -* tsx_enable() will change the state of the -* RTM CPUID bit. Force it here since it is now -* expected to be set. +* tsx_enable() will change the state of the RTM and HLE CPUID +* bits. Force them here since they are now expected to be set. */ setup_force_cpu_cap (X86_FEATURE_RTM ); +setup_force_cpu_cap (X86_FEATURE_HLE ); } }
arch/x86/kvm/emulate.c +22 -5
@@ -5094,16 +5094,28 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len) ctxt->ad_bytes = def_ad_bytes ^6 ;break ;case 0x26 :/* ES override */ + has_seg_override = true; + ctxt->seg_override =VCPU_SREG_ES ; +break ;case 0x2e :/* CS override */ + has_seg_override = true; + ctxt->seg_override =VCPU_SREG_CS ; +break ;case 0x36 :/* SS override */ + has_seg_override = true; + ctxt->seg_override =VCPU_SREG_SS ; +break ;case 0x3e :/* DS override */ has_seg_override = true; - ctxt->seg_override = (ctxt->b >>3 ) &3 ; + ctxt->seg_override =VCPU_SREG_DS ;break ;case 0x64 :/* FS override */ + has_seg_override = true; + ctxt->seg_override =VCPU_SREG_FS ; +break ;case 0x65 :/* GS override */ has_seg_override = true; - ctxt->seg_override = ctxt->b &7 ; + ctxt->seg_override =VCPU_SREG_GS ;break ; case 0x40 ... 0x4f: /* REX */if (mode !=X86EMUL_MODE_PROT64 )
@@ -5187,10 +5199,15 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len) }break ;case Escape: -if (ctxt->modrm >0xbf ) - opcode = opcode.u.esc->high[ctxt->modrm -0xc0 ]; -else +if (ctxt->modrm >0xbf ) { +size_t size =ARRAY_SIZE (opcode.u.esc->high); +u32 index =array_index_nospec ( + ctxt->modrm -0xc0 , size); + + opcode = opcode.u.esc->high[index]; + }else { opcode = opcode.u.esc->op[(ctxt->modrm >>3 ) &7 ]; + }break ;case InstrDual:if ((ctxt->modrm >>6 ) ==3 )
arch/x86/kvm/hyperv.c +6 -4
@@ -747,11 +747,12 @@ static int kvm_hv_msr_get_crash_data(struct kvm_vcpu *vcpu, u32 index, u64 *pdata) { struct kvm_hv *hv = &vcpu->kvm->arch.hyperv; +size_t size =ARRAY_SIZE (hv->hv_crash_param); -if (WARN_ON_ONCE (index >=ARRAY_SIZE (hv->hv_crash_param))) +if (WARN_ON_ONCE (index >= size))return -EINVAL ; - *pdata = hv->hv_crash_param[index]; + *pdata = hv->hv_crash_param[array_index_nospec (index, size)];return 0 ; }
@@ -790,11 +791,12 @@ static int kvm_hv_msr_set_crash_data(struct kvm_vcpu *vcpu, u32 index, u64 data) {struct kvm_hv *hv = &vcpu->kvm->arch.hyperv; +size_t size =ARRAY_SIZE (hv->hv_crash_param); -if (WARN_ON_ONCE (index >=ARRAY_SIZE (hv->hv_crash_param))) +if (WARN_ON_ONCE (index >= size))return -EINVAL ; - hv->hv_crash_param[index] = data; + hv->hv_crash_param[array_index_nospec (index, size)] = data;return 0 ; }
arch/x86/kvm/i8259.c +5 -1
@@ -460,10 +460,14 @@ static int picdev_write(struct kvm_pic *s,switch (addr) {case 0x20 :case 0x21 : +pic_lock (s); +pic_ioport_write (&s->pics[0 ], addr, data); +pic_unlock (s); +break ;case 0xa0 :case 0xa1 :pic_lock (s); -pic_ioport_write (&s->pics[addr >>7 ], addr, data); +pic_ioport_write (&s->pics[1 ], addr, data);pic_unlock (s);break ;case 0x4d0 :
arch/x86/kvm/ioapic.c +9 -6
@@ -36,6 +36,7 @@#include <linux/io.h> #include <linux/slab.h> #include <linux/export.h> +#include <linux/nospec.h> #include <asm/processor.h> #include <asm/page.h> #include <asm/current.h>
@@ -73,13 +74,14 @@ static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic,default : {u32 redir_index = (ioapic->ioregsel -0x10 ) >>1 ; -u64 redir_content; +u64 redir_content = ~0ULL ; -if (redir_index <IOAPIC_NUM_PINS ) - redir_content = - ioapic->redirtbl[redir_index].bits; -else - redir_content = ~0ULL ; +if (redir_index <IOAPIC_NUM_PINS ) { +u32 index =array_index_nospec ( + redir_index,IOAPIC_NUM_PINS ); + + redir_content = ioapic->redirtbl[index].bits; + } result = (ioapic->ioregsel &0x1 ) ? (redir_content >> 32) & 0xffffffff :
@@ -297,6 +299,7 @@ static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val)ioapic_debug ("change redir index %x val %x\n" , index, val);if (index >=IOAPIC_NUM_PINS )return ; + index =array_index_nospec (index,IOAPIC_NUM_PINS ); e = &ioapic->redirtbl[index]; mask_before = e->fields.mask;/* Preserve read-only fields */
arch/x86/kvm/lapic.c +9 -4
@@ -1754,15 +1754,20 @@ int kvm_lapic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)case APIC_LVTTHMR :case APIC_LVTPC :case APIC_LVT1 : -case APIC_LVTERR : +case APIC_LVTERR : {/* TODO: Check vector */ +size_t size; +u32 index; +if (!kvm_apic_sw_enabled (apic)) val |=APIC_LVT_MASKED ; - - val &= apic_lvt_mask[(reg -APIC_LVTT ) >>4 ]; + size =ARRAY_SIZE (apic_lvt_mask); + index =array_index_nospec ( + (reg -APIC_LVTT ) >>4 , size); + val &= apic_lvt_mask[index];kvm_lapic_set_reg (apic, reg, val); -break ; + }case APIC_LVTT :if (!kvm_apic_sw_enabled (apic))
arch/x86/kvm/mmu.c +3 -3
@@ -1165,12 +1165,12 @@ static bool mmu_gfn_lpage_is_disallowed(struct kvm_vcpu *vcpu, gfn_t gfn,return __mmu_gfn_lpage_is_disallowed (gfn, level, slot); } -static int host_mapping_level (struct kvm *kvm,gfn_t gfn) +static int host_mapping_level (struct kvm_vcpu *vcpu,gfn_t gfn) {unsigned long page_size;int i, ret =0 ; - page_size =kvm_host_page_size (kvm, gfn); + page_size =kvm_host_page_size (vcpu, gfn);for (i =PT_PAGE_TABLE_LEVEL ; i <=PT_MAX_HUGEPAGE_LEVEL ; ++i) {if (page_size >=KVM_HPAGE_SIZE (i))
@@ -1220,7 +1220,7 @@ static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn,if (unlikely (*force_pt_level))return PT_PAGE_TABLE_LEVEL ; - host_level =host_mapping_level (vcpu->kvm, large_gfn); + host_level =host_mapping_level (vcpu, large_gfn);if (host_level ==PT_PAGE_TABLE_LEVEL )return host_level;
arch/x86/kvm/mtrr.c +6 -2
@@ -202,11 +202,15 @@ static bool fixed_msr_to_seg_unit(u32 msr, int *seg, int *unit)break ; case MSR_MTRRfix16K_80000 ... MSR_MTRRfix16K_A0000: *seg =1 ; - *unit = msr - MSR_MTRRfix16K_80000; + *unit =array_index_nospec ( + msr - MSR_MTRRfix16K_80000, + MSR_MTRRfix16K_A0000 - MSR_MTRRfix16K_80000 +1 );break ; case MSR_MTRRfix4K_C0000 ... MSR_MTRRfix4K_F8000: *seg =2 ; - *unit = msr - MSR_MTRRfix4K_C0000; + *unit =array_index_nospec ( + msr - MSR_MTRRfix4K_C0000, + MSR_MTRRfix4K_F8000 - MSR_MTRRfix4K_C0000 +1 );break ;default :return false;
arch/x86/kvm/pmu.h +14 -4
@@ -2,6 +2,8 @@#ifndef __KVM_X86_PMU_H#define __KVM_X86_PMU_H +#include <linux/nospec.h> +#define vcpu_to_pmu (vcpu) (&(vcpu)->arch.pmu)#define pmu_to_vcpu (pmu) (container_of((pmu), struct kvm_vcpu, arch.pmu))#define pmc_to_pmu (pmc) (&(pmc)->vcpu->arch.pmu)
@@ -81,8 +83,12 @@ static inline bool pmc_is_enabled(struct kvm_pmc *pmc)static inline struct kvm_pmc *get_gp_pmc (struct kvm_pmu *pmu,u32 msr,u32 base) { -if (msr >= base && msr < base + pmu->nr_arch_gp_counters) -return &pmu->gp_counters[msr - base]; +if (msr >= base && msr < base + pmu->nr_arch_gp_counters) { +u32 index =array_index_nospec (msr - base, + pmu->nr_arch_gp_counters); + +return &pmu->gp_counters[index]; + }return NULL ; }
@@ -92,8 +98,12 @@ static inline struct kvm_pmc *get_fixed_pmc(struct kvm_pmu *pmu, u32 msr) {int base =MSR_CORE_PERF_FIXED_CTR0 ; -if (msr >= base && msr < base + pmu->nr_arch_fixed_counters) -return &pmu->fixed_counters[msr - base]; +if (msr >= base && msr < base + pmu->nr_arch_fixed_counters) { +u32 index =array_index_nospec (msr - base, + pmu->nr_arch_fixed_counters); + +return &pmu->fixed_counters[index]; + }return NULL ; }
arch/x86/kvm/pmu_intel.c +16 -8
@@ -87,10 +87,14 @@ static unsigned intel_find_arch_event(struct kvm_pmu *pmu,static unsigned intel_find_fixed_event (int idx) { -if (idx >=ARRAY_SIZE (fixed_pmc_events)) +u32 event; +size_t size =ARRAY_SIZE (fixed_pmc_events); + +if (idx >= size)return PERF_COUNT_HW_MAX ; -return intel_arch_events[fixed_pmc_events[idx]].event_type; + event = fixed_pmc_events[array_index_nospec (idx, size)]; +return intel_arch_events[event].event_type; }/* check if a PMC is enabled by comparing it with globl_ctrl bits. */
@@ -131,15 +135,19 @@ static struct kvm_pmc *intel_msr_idx_to_pmc(struct kvm_vcpu *vcpu,struct kvm_pmu *pmu =vcpu_to_pmu (vcpu);bool fixed = idx & (1u <<30 );struct kvm_pmc *counters; +unsigned int num_counters; idx &= ~(3u <<30 ); -if (!fixed && idx >= pmu->nr_arch_gp_counters) -return NULL ; -if (fixed && idx >= pmu->nr_arch_fixed_counters) +if (fixed) { + counters = pmu->fixed_counters; + num_counters = pmu->nr_arch_fixed_counters; + }else { + counters = pmu->gp_counters; + num_counters = pmu->nr_arch_gp_counters; + } +if (idx >= num_counters)return NULL ; - counters = fixed ? pmu->fixed_counters : pmu->gp_counters; - -return &counters[idx]; +return &counters[array_index_nospec (idx, num_counters)]; }static bool intel_is_valid_msr (struct kvm_vcpu *vcpu,u32 msr)
arch/x86/kvm/vmx.c +3 -1
@@ -8014,8 +8014,10 @@ static int handle_vmread(struct kvm_vcpu *vcpu)/* _system ok, nested_vmx_check_permission has verified cpl=0 */ if (kvm_write_guest_virt_system (vcpu, gva, &field_value, (is_long_mode (vcpu) ?8 :4 ), - &e)) + &e)) {kvm_inject_page_fault (vcpu, &e); +return 1 ; + } }nested_vmx_succeed (vcpu);
arch/x86/kvm/vmx/vmx.c new file +8033 -0
2,088 lines not on this page · raw message
drivers/base/power/main.c +37 -5
42 lines not on this page · raw message
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/md/persistent-data/dm-space-map-common.c +27 -0
Lines of this file are not shown. View the raw message.
drivers/md/persistent-data/dm-space-map-common.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/md/persistent-data/dm-space-map-disk.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/md/persistent-data/dm-space-map-metadata.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/videobuf-dma-sg.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/bonding/bond_alb.c +32 -12
44 lines not on this page · raw message
drivers/net/ethernet/broadcom/bcmsysport.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cadence/macb_main.c +8 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/dec/tulip/uli526x.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +7 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/cfg.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/scan.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/wmm.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/phy/qualcomm/phy-qcom-apq8064-sata.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel_mid_powerbtn.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/power/supply/ltc2941-battery-gauge.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_base.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_fusion.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_fusion.h +1 -0
Lines of this file are not shown. View the raw message.
fs/btrfs/ctree.c +20 -44
64 lines not on this page · raw message
fs/btrfs/tree-log.c +99 -298
397 lines not on this page · raw message
fs/nfs/dir.c +34 -13
47 lines not on this page · raw message
net/sched/cls_tcindex.c +21 -22
43 lines not on this page · raw message
net/vmw_vsock/hyperv_transport.c +9 -59
68 lines not on this page · raw message
sound/soc/soc-pcm.c +68 -27
95 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.