Commit bce8d83f authored by Lorenzo "Palinuro" Faletra's avatar Lorenzo "Palinuro" Faletra
Browse files

Import Debian changes 4.13.10-1parrot10

linux (4.13.10-1parrot10) testing; urgency=medium

  * Import new Debian version.

linux (4.13.10-1) unstable; urgency=medium

  * New upstream stable update:
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.5
    - cifs: check rsp for NULL before dereferencing in SMB2_open
    - cifs: release cifs root_cred after exit_cifs
    - cifs: release auth_key.response for reconnect.
    - nvme-pci: fix host memory buffer allocation fallback
    - nvme-pci: use appropriate initial chunk size for HMB allocation
    - nvme-pci: propagate (some) errors from host memory buffer setup
    - dax: remove the pmem_dax_ops->flush abstraction
    - dm integrity: do not check integrity for failed read operations
    - mmc: block: Fix incorrectly initialized requests
    - fs/proc: Report eip/esp in /prod/PID/stat for coredumping
    - scsi: scsi_transport_fc: fix NULL pointer dereference in
      fc_bsg_job_timeout
    - cifs: SMB3: Add support for multidialect negotiate (SMB2.1 and later)
    - mac80211: fix VLAN handling with TXQs
    - mac80211_hwsim: Use proper TX power
    - mac80211: flush hw_roc_start work before cancelling the ROC
    - genirq: Make sparse_irq_lock protect what it should protect
    - genirq/msi: Fix populating multiple interrupts
    - genirq: Fix cpumask check in __irq_startup_managed()
    - [powerpc*] KVM: Book3S HV: Hold kvm->lock around call to
      kvmppc_update_lpcr
    - [powerpc*] KVM: Book3S HV: Fix bug causing host SLB to be restored
      incorrectly
    - [powerpc*] KVM: PPC: Book3S HV: Don't access XIVE PIPR register using
      byte accesses
    - tracing: Fix trace_pipe behavior for instance traces
    - tracing: Erase irqsoff trace with empty write
    - tracing: Remove RCU work arounds from stack tracer
    - md/raid5: fix a race condition in stripe batch
    - md/raid5: preserve STRIPE_ON_UNPLUG_LIST in break_stripe_batch_list
    - scsi: aacraid: Fix 2T+ drives on SmartIOC-2000
    - scsi: aacraid: Add a small delay after IOP reset
    - [armhf] drm/exynos: Fix locking in the suspend/resume paths
    - [x86] drm/i915/gvt: Fix incorrect PCI BARs reporting
    - Revert "drm/i915/bxt: Disable device ready before shutdown command"
    - drm/amdgpu: revert tile table update for oland
    - drm/radeon: disable hard reset in hibernate for APUs
    - crypto: drbg - fix freeing of resources
    - security/keys: properly zero out sensitive key material in big_key
    - security/keys: rewrite all of big_key crypto
    - KEYS: fix writing past end of user-supplied buffer in keyring_read()
    - KEYS: prevent creating a different user's keyrings
    - [x86] libnvdimm, namespace: fix btt claim class crash
    - [powerpc*] eeh: Create PHB PEs after EEH is initialized
    - [powerpc*] pseries: Fix parent_dn reference leak in add_dt_node()
    - [powerpc*] tm: Flush TM only if CPU has TM feature
    - [mips*] Fix perf event init
    - [s390x] perf: fix bug when creating per-thread event
    - [s390x] mm: make pmdp_invalidate() do invalidation only
    - [s390x] mm: fix write access check in gup_huge_pmd()
    - PM: core: Fix device_pm_check_callbacks()
    - Revert "IB/ipoib: Update broadcast object if PKey value was changed in
      index 0"
    - cifs: Fix SMB3.1.1 guest authentication to Samba
    - cifs: SMB3: Fix endian warning
    - cifs: SMB3: Warn user if trying to sign connection that authenticated as
      guest
    - cifs: SMB: Validate negotiate (to protect against downgrade) even if
      signing off
    - cifs: SMB3: handle new statx fields
    - cifs: SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags
    - vfs: Return -ENXIO for negative SEEK_HOLE / SEEK_DATA offsets
    - libceph: don't allow bidirectional swap of pg-upmap-items
    - brd: fix overflow in __brd_direct_access
    - gfs2: Fix debugfs glocks dump
    - bsg-lib: don't free job in bsg_prepare_job
    - iw_cxgb4: drop listen destroy replies if no ep found
    - iw_cxgb4: remove the stid on listen create failure
    - iw_cxgb4: put ep reference in pass_accept_req()
    - rcu: Allow for page faults in NMI handlers
    - mmc: sdhci-pci: Fix voltage switch for some Intel host controllers
    - extable: Consolidate *kernel_text_address() functions
    - extable: Enable RCU if it is not watching in kernel_text_address()
    - seccomp: fix the usage of get/put_seccomp_filter() in seccomp_get_filter()
    - [arm64] Make sure SPsel is always set
    - [arm64] mm: Use READ_ONCE when dereferencing pointer to pte table
    - [arm64] fault: Route pte translation faults via do_translation_fault
    - [x86] KVM: VMX: extract __pi_post_block
    - [x86] KVM: VMX: avoid double list add with VT-d posted interrupts
    - [x86] KVM: VMX: simplify and fix vmx_vcpu_pi_load
    - [x86] KVM: nVMX: fix HOST_CR3/HOST_CR4 cache
    - [x86] kvm: Handle async PF in RCU read-side critical sections
    - xfs: validate bdev support for DAX inode flag
    - sched/sysctl: Check user input value of sysctl_sched_time_avg
    - irq/generic-chip: Don't replace domain's name
    - mtd: Fix partition alignment check on multi-erasesize devices
    - [armhf] etnaviv: fix submit error path
    - [armhf] etnaviv: fix gem object list corruption
    - futex: Fix pi_state->owner serialization
    - md: fix a race condition for flush request handling
    - md: separate request handling
    - PCI: Fix race condition with driver_override
    - btrfs: fix NULL pointer dereference from free_reloc_roots()
    - btrfs: clear ordered flag on cleaning up ordered extents
    - btrfs: finish ordered extent cleaning if no progress is found
    - btrfs: propagate error to btrfs_cmp_data_prepare caller
    - btrfs: prevent to set invalid default subvolid
    - [x86] platform: fujitsu-laptop: Don't oops when FUJ02E3 is not presnt
    - PM / OPP: Call notifier without holding opp_table->lock
    - [x86] mm: Fix fault error path using unsafe vma pointer
    - [x86] fpu: Don't let userspace set bogus xcomp_bv (CVE-2017-15537)
    - [x86] KVM: VMX: do not change SN bit in vmx_update_pi_irte()
    - [x86] KVM: VMX: remove WARN_ON_ONCE in kvm_vcpu_trigger_posted_interrupt
    - [x86] KVM: VMX: use cmpxchg64
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.6
    - [armhf,arm64] usb: dwc3: ep0: fix DMA starvation by assigning req->trb on
      ep0
    - mlxsw: spectrum: Fix EEPROM access in case of SFP/SFP+
    - net: bonding: Fix transmit load balancing in balance-alb mode if
      specified by sysfs
    - openvswitch: Fix an error handling path in
      'ovs_nla_init_match_and_action()'
    - net: bonding: fix tlb_dynamic_lb default value
    - net_sched: gen_estimator: fix scaling error in bytes/packets samples
    - net: sched: fix use-after-free in tcf_action_destroy and tcf_del_walker
    - sctp: potential read out of bounds in sctp_ulpevent_type_enabled()
    - tcp: update skb->skb_mstamp more carefully
    - bpf/verifier: reject BPF_ALU64|BPF_END
    - tcp: fix data delivery rate
    - udpv6: Fix the checksum computation when HW checksum does not apply
    - ip6_gre: skb_push ipv6hdr before packing the header in ip6gre_header
    - net: phy: Fix mask value write on gmii2rgmii converter speed register
    - ip6_tunnel: do not allow loading ip6_tunnel if ipv6 is disabled in cmdline
    - net/sched: cls_matchall: fix crash when used with classful qdisc
    - 8139too: revisit napi_complete_done() usage
    - bpf: do not disable/enable BH in bpf_map_free_id()
    - tcp: fastopen: fix on syn-data transmit failure
    - [powerpc*] net: emac: Fix napi poll list corruption
    - net: ipv6: fix regression of no RTM_DELADDR sent after DAD failure
    - packet: hold bind lock when rebinding to fanout hook (CVE-2017-15649)
    - net: change skb->mac_header when Generic XDP calls adjust_head
    - net_sched: always reset qdisc backlog in qdisc_reset()
    - [armhf,arm64] net: stmmac: Cocci spatch "of_table"
    - [arm64] net: qcom/emac: specify the correct size when mapping a DMA buffer
    - vti: fix use after free in vti_tunnel_xmit/vti6_tnl_xmit
    - l2tp: fix race condition in l2tp_tunnel_delete
    - tun: bail out from tun_get_user() if the skb is empty
    - [armhf,arm64] net: dsa: mv88e6xxx: Allow dsa and cpu ports in multiple
      vlans
    - [armhf,arm64] net: dsa: Fix network device registration order
    - packet: in packet_do_bind, test fanout with bind_lock held (CVE-2017-15649)
    - packet: only test po->has_vnet_hdr once in packet_snd
    - [armhf,arm64] net: dsa: mv88e6xxx: lock mutex when freeing IRQs
    - net: Set sk_prot_creator when cloning sockets to the right proto
    - net/mlx5e: IPoIB, Fix access to invalid memory address
    - netlink: do not proceed if dump's start() errs
    - ip6_gre: ip6gre_tap device should keep dst
    - ip6_tunnel: update mtu properly for ARPHRD_ETHER tunnel device in tx path
    - IPv4: early demux can return an error code
    - tipc: use only positive error codes in messages
    - l2tp: fix l2tp_eth module loading
    - socket, bpf: fix possible use after free
    - net: rtnetlink: fix info leak in RTM_GETSTATS call
    - [amd64] bpf: fix bpf_tail_call() x64 JIT
    - usb: gadget: core: fix ->udc_set_speed() logic
    - USB: gadgetfs: Fix crash caused by inadequate synchronization
    - USB: gadgetfs: fix copy_to_user while holding spinlock
    - usb: gadget: udc: atmel: set vbus irqflags explicitly
    - usb-storage: unusual_devs entry to fix write-access regression for
      Seagate external drives
    - usb-storage: fix bogus hardware error messages for ATA pass-thru devices
    - ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor
    - usb: pci-quirks.c: Corrected timeout values used in handshake
    - USB: cdc-wdm: ignore -EPIPE from GetEncapsulatedResponse
    - USB: dummy-hcd: fix connection failures (wrong speed)
    - USB: dummy-hcd: fix infinite-loop resubmission bug
    - USB: dummy-hcd: Fix erroneous synchronization change
    - USB: devio: Prevent integer overflow in proc_do_submiturb()
    - USB: g_mass_storage: Fix deadlock when driver is unbound
    - USB: uas: fix bug in handling of alternate settings
    - USB: core: harden cdc_parse_cdc_header
    - usb: Increase quirk delay for USB devices
    - USB: fix out-of-bounds in usb_set_configuration
    - usb: xhci: Free the right ring in xhci_add_endpoint()
    - xhci: fix finding correct bus_state structure for USB 3.1 hosts
    - xhci: fix wrong endpoint ESIT value shown in tracing
    - usb: host: xhci-plat: allow sysdev to inherit from ACPI
    - xhci: Fix sleeping with spin_lock_irq() held in ASmedia 1042A workaround
    - xhci: set missing SuperSpeedPlus Link Protocol bit in roothub descriptor
    - [x86] Revert "xhci: Limit USB2 port wake support for AMD Promontory hosts"
    - [armhf] iio: adc: twl4030: Fix an error handling path in
      'twl4030_madc_probe()'
    - [armhf] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error
      handling path of 'twl4030_madc_probe()'
    - iio: core: Return error for failed read_reg
    - uwb: properly check kthread_run return value
    - uwb: ensure that endpoint is interrupt
    - ksm: fix unlocked iteration over vmas in cmp_and_merge_page()
    - mm, hugetlb, soft_offline: save compound page order before page migration
    - mm, oom_reaper: skip mm structs with mmu notifiers
    - mm: fix RODATA_TEST failure "rodata_test: test data was not read only"
    - mm: avoid marking swap cached page as lazyfree
    - mm: fix data corruption caused by lazyfree page
    - userfaultfd: non-cooperative: fix fork use after free
    - ALSA: compress: Remove unused variable
    - Revert "ALSA: echoaudio: purge contradictions between dimension matrix
      members and total number of members"
    - ALSA: usx2y: Suppress kernel warning at page allocation failures
    - [powerpc*] powernv: Increase memory block size to 1GB on radix
    - [powerpc*] Fix action argument for cpufeatures-based TLB flush
    - percpu: make this_cpu_generic_read() atomic w.r.t. interrupts
    - [x86] intel_th: pci: Add Lewisburg PCH support
    - driver core: platform: Don't read past the end of "driver_override" buffer
    - cgroup: Reinit cgroup_taskset structure before cgroup_migrate_execute()
      returns
    - [x86] Drivers: hv: fcopy: restore correct transfer length
    - [x86] vmbus: don't acquire the mutex in vmbus_hvsock_device_unregister()
    - ftrace: Fix kmemleak in unregister_ftrace_graph
    - ovl: fix error value printed in ovl_lookup_index()
    - ovl: fix dput() of ERR_PTR in ovl_cleanup_index()
    - ovl: fix dentry leak in ovl_indexdir_cleanup()
    - ovl: fix missing unlock_rename() in ovl_do_copy_up()
    - ovl: fix regression caused by exclusive upper/work dir protection
    - [arm64] dt marvell: Fix AP806 system controller size
    - [arm64] Ensure the instruction emulation is ready for userspace
    - HID: rmi: Make sure the HID device is opened on resume
    - HID: i2c-hid: allocate hid buffers for real worst case
    - HID: wacom: leds: Don't try to control the EKR's read-only LEDs
    - HID: wacom: Properly report negative values from Intuos Pro 2 Bluetooth
    - HID: wacom: Correct coordinate system of touchring and pen twist
    - HID: wacom: generic: Send MSC_SERIAL and ABS_MISC when leaving prox
    - HID: wacom: generic: Clear ABS_MISC when tool leaves proximity
    - HID: wacom: Always increment hdev refcount within wacom_get_hdev_data
    - HID: wacom: bits shifted too much for 9th and 10th buttons
    - btrfs: avoid overflow when sector_t is 32 bit
    - Btrfs: fix overlap of fs_info::flags values
    - dm crypt: reject sector_size feature if device length is not aligned to it
    - dm ioctl: fix alignment of event number in the device list
    - dm crypt: fix memory leak in crypt_ctr_cipher_old()
    - [powerpc*] KVM: Book3S: Fix server always zero from kvmppc_xive_get_xive()
    - [x86] kvm: Avoid async PF preempting the kernel incorrectly
    - iwlwifi: mvm: use IWL_HCMD_NOCOPY for MCAST_FILTER_CMD
    - scsi: sd: Implement blacklist option for WRITE SAME w/ UNMAP
    - scsi: sd: Do not override max_sectors_kb sysfs setting
    - brcmfmac: setup passive scan if requested by user-space
    - [x86] drm/i915: always update ELD connector type after get modes
    - [x86] drm/i915/bios: ignore HDMI on port A
    - bsg-lib: fix use-after-free under memory-pressure
    - nvme-pci: Use PCI bus address for data/queues in CMB
    - mmc: core: add driver strength selection when selecting hs400es
    - nl80211: Define policy for packet pattern attributes
    - [armhf] clk: samsung: exynos4: Enable VPLL and EPLL clocks for
      suspend/resume cycle
    - udp: perform source validation for mcast early demux
    - udp: fix bcast packet reception
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.7
    - watchdog: Revert "iTCO_wdt: all versions count down twice"
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.8
    - USB: dummy-hcd: Fix deadlock caused by disconnect detection
    - [mips*] math-emu: Remove pr_err() calls from fpu_emu()
    - [mips*] bpf: Fix uninitialised target compiler error
    - [x86] mei: always use domain runtime pm callbacks.
    - [armhf] dmaengine: edma: Align the memcpy acnt array size with the
      transfer
    - [armhf] dmaengine: ti-dma-crossbar: Fix possible race condition with
      dma_inuse
    - NFS: Fix uninitialized rpc_wait_queue
    - nfs/filelayout: fix oops when freeing filelayout segment
    - HID: usbhid: fix out-of-bounds bug
    - crypto: skcipher - Fix crash on zero-length input
    - crypto: shash - Fix zero-length shash ahash digest crash
    - [x86] KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit
    - [x86] pinctrl/amd: Fix build dependency on pinmux code
    - [x86] iommu/amd: Finish TLB flush in amd_iommu_unmap()
    - device property: Track owner device of device property
    - Revert "vmalloc: back off when the current task is killed"
    - fs/mpage.c: fix mpage_writepage() for pages with buffers
    - ALSA: usb-audio: Kill stray URB at exiting
    - ALSA: seq: Fix copy_from_user() call inside lock
    - ALSA: caiaq: Fix stray URB at probe error path
    - ALSA: line6: Fix NULL dereference at podhd_disconnect()
    - ALSA: line6: Fix missing initialization before error path
    - ALSA: line6: Fix leftover URB at error-path during probe
    - drm/atomic: Unref duplicated drm_atomic_state in
      drm_atomic_helper_resume()
    - [x86] drm/i915/edp: Get the Panel Power Off timestamp after panel is off
    - [x86] drm/i915: Read timings from the correct transcoder in
      intel_crtc_mode_get()
    - [x86] drm/i915/bios: parse DDI ports also for CHV for HDMI DDC pin and DP
      AUX channel
    - [x86] drm/i915: Use crtc_state_is_legacy_gamma in intel_color_check
    - usb: gadget: configfs: Fix memory leak of interface directory data
    - usb: gadget: composite: Fix use-after-free in
      usb_composite_overwrite_options
    - [arm64] PCI: aardvark: Move to struct pci_host_bridge IRQ mapping
      functions
    - [armhf,armhf] Revert "PCI: tegra: Do not allocate MSI target memory"
    - direct-io: Prevent NULL pointer access in submit_page_section
    - fix unbalanced page refcounting in bio_map_user_iov (CVE-2017-12190)
    - more bio_map_user_iov() leak fixes
    - bio_copy_user_iov(): don't ignore ->iov_offset
    - perf script: Add missing separator for "-F ip,brstack" (and brstackoff)
    - genirq/cpuhotplug: Enforce affinity setting on startup of managed irqs
    - genirq/cpuhotplug: Add sanity check for effective affinity mask
    - USB: serial: cp210x: fix partnum regression
    - USB: serial: console: fix use-after-free on disconnect
    - USB: serial: console: fix use-after-free after failed setup
    - RAS/CEC: Use the right length for "cec_disable"
    - [x86] alternatives: Fix alt_max_short macro to really be a max()
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.9
    - [x86] apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on CPUs
      without the feature
    - [x86] apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on
      hypervisors
    - [armhf,arm64] perf pmu: Unbreak perf record for arm/arm64 with events
      with explicit PMU
    - mm: page_vma_mapped: ensure pmd is loaded with READ_ONCE outside of lock
    - HID: hid-elecom: extend to fix descriptor for HUGE trackball
    - [x86] Drivers: hv: vmbus: Fix rescind handling issues
    - [x86] Drivers: hv: vmbus: Fix bugs in rescind handling
    - [x86] vmbus: simplify hv_ringbuffer_read
    - [x86] vmbus: refactor hv_signal_on_read
    - [x86] vmbus: eliminate duplicate cached index
    - [x86] vmbus: more host signalling avoidance
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.13.10
    - USB: core: fix out-of-bounds access bug in usb_get_bos_descriptor()
    - usb: hub: Allow reset retry for USB2 devices on connect bounce
    - ALSA: usb-audio: Add native DSD support for Pro-Ject Pre Box S2 Digital
    - can: gs_usb: fix busy loop if no more TX context is available
    - scsi: qla2xxx: Fix uninitialized work element
    - nbd: don't set the device size until we're connected
    - [s390x] cputime: fix guest/irq/softirq times after CPU hotplug
    - [hppa/parisc] Fix double-word compare and exchange in LWS code on 32-bit
      kernels
    - [hppa] Fix detection of nonsynchronous cr16 cycle counters
    - iio: dummy: events: Add missing break
    - [armhf] usb: musb: sunxi: Explicitly release USB PHY on exit
    - [armhf] USB: musb: fix session-bit runtime-PM quirk
    - [armhf] USB: musb: fix late external abort on suspend
    - [armhf] usb: musb: musb_cppi41: Fix the address of teardown and autoreq
      registers
    - [armhf] usb: musb: musb_cppi41: Fix cppi41_set_dma_mode() for DA8xx
    - [armhf] usb: musb: musb_cppi41: Configure the number of channels for DA8xx
    - [armhf] usb: musb: Check for host-mode using is_host_active() on reset
      interrupt
    - xhci: Identify USB 3.1 capable hosts by their port protocol capability
    - xhci: Cleanup current_cmd in xhci_cleanup_command_queue()
    - usb: xhci: Reset halted endpoint if trb is noop
    - usb: xhci: Handle error condition in xhci_stop_device()
    - can: esd_usb2: Fix can_dlc value for received RTR, frames
    - can: af_can: can_pernet_init(): add missing error handling for kzalloc
      returning NULL
    - KEYS: encrypted: fix dereference of NULL user_key_payload
    - mmc: sdhci-pci: Fix default d3_retune for Intel host controllers
    - [x86] drm/i915: Use bdw_ddi_translations_fdi for Broadwell
    - drm/nouveau/kms/nv50: fix oops during DP IRQ handling on non-MST boards
    - drm/nouveau/bsp/g92: disable by default
    - drm/nouveau/mmu: flush tlbs before deleting page tables
    - media: cec: Respond to unregistered initiators, when applicable
    - media: dvb: i2c transfers over usb cannot be done from stack
    - ALSA: seq: Enable 'use' locking in all configurations
    - ALSA: hda: Remove superfluous '-' added by printk conversion
    - ALSA: hda: Abort capability probe at invalid register read
    - [x86] i2c: ismt: Separate I2C block read from SMBus block read
    - [x86] i2c: piix4: Fix SMBus port selection for AMD Family 17h chips
    - Revert "tools/power turbostat: stop migrating, unless '-m'"
    - brcmfmac: Add check for short event packets
    - brcmsmac: make some local variables 'static const' to reduce stack size
    - [armhf] dts: sun6i: Fix endpoint IDs in second display pipeline
    - [i386] clockevents/drivers/cs5535: Improve resilience to spurious
      interrupts
    - rtlwifi: rtl8821ae: Fix connection lost problem
    - [x86] microcode/intel: Disable late loading on model 79
    - lib/digsig: fix dereference of NULL user_key_payload
    - fscrypt: fix dereference of NULL user_key_payload
    - ecryptfs: fix dereference of NULL user_key_payload
    - KEYS: Fix race between updating and finding a negative key
      (CVE-2017-15951)
    - FS-Cache: fix dereference of NULL user_key_payload
    - KEYS: don't let add_key() update an uninstantiated key (CVE-2017-15299)
    - pkcs7: Prevent NULL pointer dereference, since sinfo is not always set.
    - [arm64] dts: rockchip: correct vqmmc voltage for rk3399 platforms
    - ALSA: hda - Fix incorrect TLV callback check introduced during set_fs()
      removal
    - iomap_dio_rw: Allocate AIO completion queue before submitting dio
    - xfs: don't unconditionally clear the reflink flag on zero-block files
    - xfs: evict CoW fork extents when performing finsert/fcollapse
    - fs/xfs: Use %pS printk format for direct addresses
    - xfs: report zeroed or not correctly in xfs_zero_range()
    - xfs: update i_size after unwritten conversion in dio completion
    - xfs: perag initialization should only touch m_ag_max_usable for AG 0
    - xfs: Capture state of the right inode in xfs_iflush_done
    - xfs: always swap the cow forks when swapping extents
    - xfs: handle racy AIO in xfs_reflink_end_cow
    - xfs: Don't log uninitialised fields in inode structures
    - xfs: move more RT specific code under CONFIG_XFS_RT
    - xfs: don't change inode mode if ACL update fails
    - xfs: reinit btree pointer on attr tree inactivation walk
    - xfs: handle error if xfs_btree_get_bufs fails
    - xfs: cancel dirty pages on invalidation
    - xfs: trim writepage mapping to within eof
    - xfs: move two more RT specific functions into CONFIG_XFS_RT

  [ Ben Hutchings ]
  * [arm64] brcmfmac: Enable BRCMFMAC_SDIO (Closes: #877911)
  * Update build dependencies on libbabeltrace[,-ctf}-dev
  * linux-kbuild: Include scripts/ld-version.sh, needed for powerpc 64-bit
    modules
  * dax: Avoid most ABI changes in 4.13.5
  * SCSI: Avoid ABI change in 4.13.6
  * [x86] kvm: Ignore ABI change in 4.13.6
  * inet, l2tp, snd-seq, usb/gadget: Ignore ABI changes
  * [armel,armhf] mbus: Ignore ABI change in 4.13.10
  * Revert "bpf: one perf event close won't free bpf program attached ..."
    to avoid an ABI change
  * [armel] security: Enable SECURITY_APPARMOR and disable SECURITY_SELINUX
  * security: Enable DEFAULT_SECURITY_APPARMOR
  * mac80211: Avoid ABI change in 4.13.5
  * [x86] rmi4: Enable RMI4_SMB as module (Closes: #875621)
  * KEYS: Limit ABI change in 4.13.10
parents 88d239e1 238a495f
......@@ -131,7 +131,7 @@ static void flush_tmregs_to_thread(struct task_struct *tsk)
* in the appropriate thread structures from live.
*/
if (tsk != current)
if ((!cpu_has_feature(CPU_FTR_TM)) || (tsk != current))
return;
if (MSR_TM_SUSPENDED(mfmsr())) {
......
......@@ -452,9 +452,20 @@ static long restore_tm_sigcontexts(struct task_struct *tsk,
if (MSR_TM_RESV(msr))
return -EINVAL;
/* pull in MSR TM from user context */
/* pull in MSR TS bits from user context */
regs->msr = (regs->msr & ~MSR_TS_MASK) | (msr & MSR_TS_MASK);
/*
* Ensure that TM is enabled in regs->msr before we leave the signal
* handler. It could be the case that (a) user disabled the TM bit
* through the manipulation of the MSR bits in uc_mcontext or (b) the
* TM bit was disabled because a sufficient number of context switches
* happened whilst in the signal handler and load_tm overflowed,
* disabling the TM bit. In either case we can end up with an illegal
* TM state leading to a TM Bad Thing when we return to userspace.
*/
regs->msr |= MSR_TM;
/* pull in MSR LE from user context */
regs->msr = (regs->msr & ~MSR_LE) | (msr & MSR_LE);
......
......@@ -4187,11 +4187,13 @@ static int kvmhv_configure_mmu(struct kvm *kvm, struct kvm_ppc_mmuv3_cfg *cfg)
if ((cfg->process_table & PRTS_MASK) > 24)
return -EINVAL;
mutex_lock(&kvm->lock);
kvm->arch.process_table = cfg->process_table;
kvmppc_setup_partition_table(kvm);
lpcr = (cfg->flags & KVM_PPC_MMUV3_GTSE) ? LPCR_GTSE : 0;
kvmppc_update_lpcr(kvm, lpcr, LPCR_GTSE);
mutex_unlock(&kvm->lock);
return 0;
}
......
......@@ -38,7 +38,6 @@ static inline void __iomem *get_tima_phys(void)
#define __x_tima get_tima_phys()
#define __x_eoi_page(xd) ((void __iomem *)((xd)->eoi_page))
#define __x_trig_page(xd) ((void __iomem *)((xd)->trig_page))
#define __x_readb __raw_rm_readb
#define __x_writeb __raw_rm_writeb
#define __x_readw __raw_rm_readw
#define __x_readq __raw_rm_readq
......
......@@ -765,6 +765,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S)
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
BEGIN_FTR_SECTION
/*
* NOTE THAT THIS TRASHES ALL NON-VOLATILE REGISTERS INCLUDING CR
*/
bl kvmppc_restore_tm
END_FTR_SECTION_IFSET(CPU_FTR_TM)
#endif
......@@ -1623,6 +1626,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_300)
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
BEGIN_FTR_SECTION
/*
* NOTE THAT THIS TRASHES ALL NON-VOLATILE REGISTERS INCLUDING CR
*/
bl kvmppc_save_tm
END_FTR_SECTION_IFSET(CPU_FTR_TM)
#endif
......@@ -1742,7 +1748,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
/*
* Are we running hash or radix ?
*/
beq cr2,3f
ld r5, VCPU_KVM(r9)
lbz r0, KVM_RADIX(r5)
cmpwi cr2, r0, 0
beq cr2, 3f
/* Radix: Handle the case where the guest used an illegal PID */
LOAD_REG_ADDR(r4, mmu_base_pid)
......@@ -2459,6 +2468,9 @@ _GLOBAL(kvmppc_h_cede) /* r3 = vcpu pointer, r11 = msr, r13 = paca */
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
BEGIN_FTR_SECTION
/*
* NOTE THAT THIS TRASHES ALL NON-VOLATILE REGISTERS INCLUDING CR
*/
ld r9, HSTATE_KVM_VCPU(r13)
bl kvmppc_save_tm
END_FTR_SECTION_IFSET(CPU_FTR_TM)
......@@ -2569,6 +2581,9 @@ kvm_end_cede:
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
BEGIN_FTR_SECTION
/*
* NOTE THAT THIS TRASHES ALL NON-VOLATILE REGISTERS INCLUDING CR
*/
bl kvmppc_restore_tm
END_FTR_SECTION_IFSET(CPU_FTR_TM)
#endif
......
......@@ -48,7 +48,6 @@
#define __x_tima xive_tima
#define __x_eoi_page(xd) ((void __iomem *)((xd)->eoi_mmio))
#define __x_trig_page(xd) ((void __iomem *)((xd)->trig_mmio))
#define __x_readb __raw_readb
#define __x_writeb __raw_writeb
#define __x_readw __raw_readw
#define __x_readq __raw_readq
......@@ -623,7 +622,7 @@ int kvmppc_xive_get_xive(struct kvm *kvm, u32 irq, u32 *server,
return -EINVAL;
state = &sb->irq_state[idx];
arch_spin_lock(&sb->lock);
*server = state->guest_server;
*server = state->act_server;
*priority = state->guest_priority;
arch_spin_unlock(&sb->lock);
......@@ -1332,7 +1331,7 @@ static int xive_get_source(struct kvmppc_xive *xive, long irq, u64 addr)
xive->saved_src_count++;
/* Convert saved state into something compatible with xics */
val = state->guest_server;
val = state->act_server;
prio = state->saved_scan_prio;
if (prio == MASKED) {
......@@ -1508,7 +1507,6 @@ static int xive_set_source(struct kvmppc_xive *xive, long irq, u64 addr)
/* First convert prio and mark interrupt as untargetted */
act_prio = xive_prio_from_guest(guest_prio);
state->act_priority = MASKED;
state->guest_server = server;
/*
* We need to drop the lock due to the mutex below. Hopefully
......
......@@ -35,7 +35,6 @@ struct kvmppc_xive_irq_state {
struct xive_irq_data *pt_data; /* XIVE Pass-through associated data */
/* Targetting as set by guest */
u32 guest_server; /* Current guest selected target */
u8 guest_priority; /* Guest set priority */
u8 saved_priority; /* Saved priority when masking */
......
......@@ -28,7 +28,8 @@ static void GLUE(X_PFX,ack_pending)(struct kvmppc_xive_vcpu *xc)
* bit.
*/
if (cpu_has_feature(CPU_FTR_POWER9_DD1)) {
u8 pipr = __x_readb(__x_tima + TM_QW1_OS + TM_PIPR);
__be64 qw1 = __x_readq(__x_tima + TM_QW1_OS);
u8 pipr = be64_to_cpu(qw1) & 0xff;
if (pipr >= xc->hw_cppr)
return;
}
......@@ -336,7 +337,6 @@ X_STATIC unsigned long GLUE(X_PFX,h_ipoll)(struct kvm_vcpu *vcpu, unsigned long
struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
u8 pending = xc->pending;
u32 hirq;
u8 pipr;
pr_devel("H_IPOLL(server=%ld)\n", server);
......@@ -353,7 +353,8 @@ X_STATIC unsigned long GLUE(X_PFX,h_ipoll)(struct kvm_vcpu *vcpu, unsigned long
pending = 0xff;
} else {
/* Grab pending interrupt if any */
pipr = __x_readb(__x_tima + TM_QW1_OS + TM_PIPR);
__be64 qw1 = __x_readq(__x_tima + TM_QW1_OS);
u8 pipr = be64_to_cpu(qw1) & 0xff;
if (pipr < 8)
pending |= 1 << pipr;
}
......
......@@ -272,7 +272,15 @@ static void pnv_kexec_cpu_down(int crash_shutdown, int secondary)
#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
static unsigned long pnv_memory_block_size(void)
{
return 256UL * 1024 * 1024;
/*
* We map the kernel linear region with 1GB large pages on radix. For
* memory hot unplug to work our memory block size must be at least
* this size.
*/
if (radix_enabled())
return 1UL * 1024 * 1024 * 1024;
else
return 256UL * 1024 * 1024;
}
#endif
......
......@@ -226,8 +226,10 @@ static int add_dt_node(__be32 parent_phandle, __be32 drc_index)
return -ENOENT;
dn = dlpar_configure_connector(drc_index, parent_dn);
if (!dn)
if (!dn) {
of_node_put(parent_dn);
return -ENOENT;
}
rc = dlpar_attach_node(dn);
if (rc)
......
......@@ -1462,7 +1462,9 @@ static inline pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma,
static inline void pmdp_invalidate(struct vm_area_struct *vma,
unsigned long addr, pmd_t *pmdp)
{
pmdp_xchg_direct(vma->vm_mm, addr, pmdp, __pmd(_SEGMENT_ENTRY_EMPTY));
pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID);
pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd);
}
#define __HAVE_ARCH_PMDP_SET_WRPROTECT
......
......@@ -823,9 +823,12 @@ static int cpumsf_pmu_event_init(struct perf_event *event)
}
/* Check online status of the CPU to which the event is pinned */
if ((unsigned int)event->cpu >= nr_cpumask_bits ||
(event->cpu >= 0 && !cpu_online(event->cpu)))
return -ENODEV;
if (event->cpu >= 0) {
if ((unsigned int)event->cpu >= nr_cpumask_bits)
return -ENODEV;
if (!cpu_online(event->cpu))
return -ENODEV;
}
/* Force reset of idle/hv excludes regardless of what the
* user requested.
......
......@@ -293,7 +293,10 @@ static void pcpu_attach_task(struct pcpu *pcpu, struct task_struct *tsk)
lc->lpp = LPP_MAGIC;
lc->current_pid = tsk->pid;
lc->user_timer = tsk->thread.user_timer;
lc->guest_timer = tsk->thread.guest_timer;
lc->system_timer = tsk->thread.system_timer;
lc->hardirq_timer = tsk->thread.hardirq_timer;
lc->softirq_timer = tsk->thread.softirq_timer;
lc->steal_timer = 0;
}
......
......@@ -56,13 +56,12 @@ static inline int gup_pte_range(pmd_t *pmdp, pmd_t pmd, unsigned long addr,
static inline int gup_huge_pmd(pmd_t *pmdp, pmd_t pmd, unsigned long addr,
unsigned long end, int write, struct page **pages, int *nr)
{
unsigned long mask, result;
struct page *head, *page;
unsigned long mask;
int refs;
result = write ? 0 : _SEGMENT_ENTRY_PROTECT;
mask = result | _SEGMENT_ENTRY_INVALID;
if ((pmd_val(pmd) & mask) != result)
mask = (write ? _SEGMENT_ENTRY_PROTECT : 0) | _SEGMENT_ENTRY_INVALID;
if ((pmd_val(pmd) & mask) != 0)
return 0;
VM_BUG_ON(!pfn_valid(pmd_val(pmd) >> PAGE_SHIFT));
......
......@@ -62,8 +62,10 @@
#define new_len2 145f-144f
/*
* max without conditionals. Idea adapted from:
* gas compatible max based on the idea from:
* http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
*
* The additional "-" is needed because gas uses a "true" value of -1.
*/
#define alt_max_short(a, b) ((a) ^ (((a) ^ (b)) & -(-((a) < (b)))))
......
......@@ -103,12 +103,12 @@ static inline int alternatives_text_reserved(void *start, void *end)
alt_end_marker ":\n"
/*
* max without conditionals. Idea adapted from:
* gas compatible max based on the idea from:
* http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
*
* The additional "-" is needed because gas works with s32s.
* The additional "-" is needed because gas uses a "true" value of -1.
*/
#define alt_max_short(a, b) "((" a ") ^ (((" a ") ^ (" b ")) & -(-((" a ") - (" b ")))))"
#define alt_max_short(a, b) "((" a ") ^ (((" a ") ^ (" b ")) & -(-((" a ") < (" b ")))))"
/*
* Pad the second replacement alternative with additional NOPs if it is
......
......@@ -88,7 +88,7 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
bool kvm_para_available(void);
unsigned int kvm_arch_para_features(void);
void __init kvm_guest_init(void);
void kvm_async_pf_task_wait(u32 token);
void kvm_async_pf_task_wait(u32 token, int interrupt_kernel);
void kvm_async_pf_task_wake(u32 token);
u32 kvm_read_and_reset_pf_reason(void);
extern void kvm_disable_steal_time(void);
......@@ -103,7 +103,7 @@ static inline void kvm_spinlock_init(void)
#else /* CONFIG_KVM_GUEST */
#define kvm_guest_init() do {} while (0)
#define kvm_async_pf_task_wait(T) do {} while(0)
#define kvm_async_pf_task_wait(T, I) do {} while(0)
#define kvm_async_pf_task_wake(T) do {} while(0)
static inline bool kvm_para_available(void)
......
......@@ -599,9 +599,14 @@ static const struct x86_cpu_id deadline_match[] = {
static void apic_check_deadline_errata(void)
{
const struct x86_cpu_id *m = x86_match_cpu(deadline_match);
const struct x86_cpu_id *m;
u32 rev;
if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER) ||
boot_cpu_has(X86_FEATURE_HYPERVISOR))
return;
m = x86_match_cpu(deadline_match);
if (!m)
return;
......
......@@ -122,9 +122,6 @@ static bool __init check_loader_disabled_bsp(void)
bool *res = &dis_ucode_ldr;
#endif
if (!have_cpuid_p())
return *res;
/*
* CPUID(1).ECX[31]: reserved for hypervisor use. This is still not
* completely accurate as xen pv guests don't see that CPUID bit set but
......@@ -166,24 +163,36 @@ bool get_builtin_firmware(struct cpio_data *cd, const char *name)
void __init load_ucode_bsp(void)
{
unsigned int cpuid_1_eax;
bool intel = true;
if (check_loader_disabled_bsp())
if (!have_cpuid_p())
return;
cpuid_1_eax = native_cpuid_eax(1);
switch (x86_cpuid_vendor()) {
case X86_VENDOR_INTEL:
if (x86_family(cpuid_1_eax) >= 6)
load_ucode_intel_bsp();
if (x86_family(cpuid_1_eax) < 6)
return;
break;
case X86_VENDOR_AMD:
if (x86_family(cpuid_1_eax) >= 0x10)
load_ucode_amd_bsp(cpuid_1_eax);
if (x86_family(cpuid_1_eax) < 0x10)
return;
intel = false;
break;
default:
break;
return;
}
if (check_loader_disabled_bsp())
return;
if (intel)
load_ucode_intel_bsp();
else
load_ucode_amd_bsp(cpuid_1_eax);
}
static bool check_loader_disabled_ap(void)
......
......@@ -34,6 +34,7 @@
#include <linux/mm.h>
#include <asm/microcode_intel.h>
#include <asm/intel-family.h>
#include <asm/processor.h>
#include <asm/tlbflush.h>
#include <asm/setup.h>
......@@ -917,6 +918,18 @@ static int get_ucode_fw(void *to, const void *from, size_t n)
return 0;
}
static bool is_blacklisted(unsigned int cpu)
{
struct cpuinfo_x86 *c = &cpu_data(cpu);
if (c->x86 == 6 && c->x86_model == INTEL_FAM6_BROADWELL_X) {
pr_err_once("late loading on model 79 is disabled.\n");
return true;
}
return false;
}
static enum ucode_state request_microcode_fw(int cpu, struct device *device,
bool refresh_fw)
{
......@@ -925,6 +938,9 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
const struct firmware *firmware;
enum ucode_state ret;
if (is_blacklisted(cpu))
return UCODE_NFOUND;
sprintf(name, "intel-ucode/%02x-%02x-%02x",
c->x86, c->x86_model, c->x86_mask);
......@@ -949,6 +965,9 @@ static int get_ucode_user(void *to, const void *from, size_t n)
static enum ucode_state
request_microcode_user(int cpu, const void __user *buf, size_t size)
{
if (is_blacklisted(cpu))
return UCODE_NFOUND;
return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment