summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-12-20 08:32:36 -0700
committerLinux Build Service Account <lnxbuild@localhost>2016-12-20 08:32:38 -0700
commit0d332cdee89ed1f014278ea88d3180f9a256e83d (patch)
treeae0c0fa07a16b29ec70aab29afe62ecd0c70ff66 /include/linux
parent5d7a0721a41353f4acda4f83d4081d32da647ada (diff)
parentc0a8f9e80a88354a7e2271a5cb61c61ac76a8818 (diff)
Promotion of kernel.lnx.4.4-161220.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- powerpc/uaccess: Enable hardened usercopy s390/crypto: provide correct file mode at device registe Use the new batched user accesses in generic user string irqchip/gicv3-its: numa: Enable workaround for Cavium th sparc/uaccess: Enable hardened usercopy vmlinux.lds: account for destructor sections xhci: don't dereference a xhci member after removing xhc ACPI / drivers: fix typo in ACPI_DECLARE_PROBE_ENTRY mac sched/cputime: Fix NO_HZ_FULL getrusage() monotonicity r time: Verify time values in adjtimex ADJ_SETOFFSET to av drm/amd/amdgpu: sdma resume fail during S4 on CI ipv4: reject RTNH_F_DEAD and RTNH_F_LINKDOWN from user s cxl: Enable PCI device ID for future IBM CXL adapter tty: serial: msm: Don't read off end of tx fifo sched: Documentation for scheduler energy cost model IB/mlx5: Return PORT_ERR in Active to Initializing trani I08ff7dd0d22502a0106fc636b1af2e6fe9e758b5 sched/walt: Accounting for number of irqs pending on eac Input: xpad - move pending clear to the correct location x86/mm/32: Enable full randomization on i386 and X86_32 Add 'unsafe' user access functions for batched accesses ACPI: CPPC: Return error if _CPC is invalid on a CPU arm64: vmlinux.lds: make __rela_offset and __dynsym_offs I4177c0fb943f14a5faf5c70f5e54bf782c316f43 UPSTREAM: usercopy: remove page-spanning test for now Ib905a84a04d46984320f6fd1056da4d72f3d6b53 UPSTREAM: unsafe_[get|put]_user: change interface to use clk: xgene: Fix divider with non-zero shift value I0d0d8d5c107a2e0bd219819e036091106bb40e11 FIXUP: sched/fair: Fix hang during suspend in sched_grou MIPS: KVM: Fix gfn range check in kseg0 tlb faults cxl: Fix possible idr warning when contexts are released drm/i915: Fix hpd live status bits for g4x qla2xxx: Use ATIO type to send correct tmr response EDAC: Increment correct counter in edac_inc_ue_error() Idb84453e70cc11abd5ef3a0adfbb16f8b5feaf07 ANDROID: dm: use name_to_dev_t usb: renesas_usbhs: protect the CFIFOSEL setting in usbh fm10k: reinitialize queuing scheme after calling init_hw 1095917 I1e738e66cdfb72305dd4256dc0a6e05b03de585e ARM: dts: msm: set boost current threshold on PMI8998 drm/amdgpu/gmc7: add missing mullins case ext4: short-cut orphan cleanup on error iommu/arm-smmu: Fix CMDQ error handling uprobes/x86: Fix RIP-relative handling of EVEX-encoded i pinctrl: imx: Do not treat a PIN without MUX register as sched/tune: fix PB and PC cuts indexes definition jbd2: make journal y2038 safe ipath: Restrict use of the write() interface I03e87a86fbbbc85831ff7f0496adf038d1de2956 usb: gadget: f_accessory: remove duplicate endpoint allo cdc_ncm: do not call usbnet_link_change from cdc_ncm_bin I0ac7ae3ab5d8f2f5a5838c29bb6da2c3e8ef44e8 sched: use util instead of capacity to select busy cpu usercopy: remove page-spanning test for now sched/{core,fair}: trigger OPP change request on fork() DEBUG: sched: add tracepoint for RD overutilized drm/amdgpu: add a delay after ATPX dGPU power off intel_th: Fix a deadlock in modprobing tcp: make challenge acks less predictable DEBUG: schedtune: add tracepoint for schedtune_tasks_upd target: Fix ordered task target_setup_cmd_from_cdb excep IB/mlx4: Fix memory leak if QP creation failed libnvdimm, nd_blk: mask off reserved status bits ACPI / CPPC: Prevent cpc_desc_ptr points to the invalid lightnvm: fix missing grown bad block type xenbus: don't bail early from xenbus_dev_request_and_rep x86/platform/intel_mid_pci: Rework IRQ0 workaround Ia75481402e3948165a1b7c1551c539530cb25509 FROMLIST: proc: Relax /proc/<tid>/timerslack_ns capabili x86/quirks: Reintroduce scanning of secondary buses megaraid_sas: Add an i/o barrier sched/cpufreq_sched: Consolidated update can: fix oops caused by wrong rtnl dellink usage mm, meminit: always return a valid node from early_pfn_t audit: fix a double fetch in audit_log_single_execve_arg Input: wacom_w8001 - w8001_MAX_LENGTH should be 13 fuse: fix wrong assignment of ->flags in fuse_send_init( crypto: caam - fix IV loading for authenc (giv)decryptio cxlflash: Fix to escalate LINK_RESET also on port 1 sched: Extend sched_group_energy to test load-balancing igb: use the correct i210 register for EEMNGCTL x86/mtrr: Fix PAT init handling when MTRR is disabled I92bd53432a11241228d2e5ac89a3b20d19b05a31 CHROMIUM: dm: boot time specification of dm= drm/i915: Only ignore eDP ports that are connected Ibed6feadfb9706d478f93feec3b240aecfc64af3 UPSTREAM: tty: Prevent ldisc drivers from re-using stale arm64: relocatable: suppress R_AARCH64_ABS64 relocations Iff18ed4d2db5a55b9f9480d5ecbeef7b818b3837 ANDROID: base-cfg: drop SECCOMP_FILTER config ubifs: Fix assertion in layout_in_gaps() serial: samsung: Fix ERR pointer dereference on deferred Id946654f32fa8be0eaf9d8fa7c9a8039b5ef9fab CHROMIUM: sched: update the average of nr_running ovl: listxattr: use strnlen() fixup! sched: scheduler-driven cpu frequency selection ALSA: usb-audio: Add sample rate inquiry quirk for B850V USB: hub: fix up early-exit pathway in hub_activate Input: tsc200x - report proper input_dev name cxlflash: Move to exponential back-off when cmd_room is crypto: nx - off by one bug in nx_of_update_msc() sched: Consider misfit tasks when load-balancing sched: Introduce energy data structures Fix RC5 decoding with Fintek CIR chipset dmaengine: at_xdmac: align descriptors on 64 bits i40e: properly delete VF MAC filters 1098071 I5b89ed9f0015bc6db3adce22e3ac6d0d0283e2bf iio: rradc: Update reading BATT_ID channel drm: Restore double clflush on the last partial cachelin I58bb02d6e4e399612e8580b9e02d11e661df82f5 UPSTREAM: tcp: fix use after free in tcp_xmit_retransmit drm/amdgpu: support backlight control for UNIPHY3 IB/mlx5: Fix post send fence logic ubi: Make volume resize power cut aware Ic1b61b2bbb7ce74c9e9422b5e22ee9078251de21 cpuset: Add allow_attach hook for cpusets on android. drm/i915: Pretend cursor is always on for ILK-style WM c s5p-mfc: Add release callback for memory region devs lpfc: Fix the FLOGI discovery logic to comply with T11 s iommu/amd: Update Alias-DTE in update_device_table() 1102914 I7e9ef4ddd82e2c2dd04ce09ec8d58a8829cfb64d mm: vmpressure: make vmpressure window variable ALSA: timer: fix division by zero after SNDRV_TIMER_IOCT drm/amdgpu: Disable RPM helpers while reprobing connecto mpt3sas: A correction in unmap_resources mm: Implement stack frame object validation mmc: sdhci: Do not BUG on invalid vdd If4e516715c3415fe8c82090f287174857561550d ANDROID: rcu_sync: Export rcu_sync_lockdep_assert DEBUG: sched: add tracepoint for task load/util signals IB/mlx5: Fix returned values of query QP Ic41ca4b8908fb2777263799cf3a3e25934d70f18 ANDROID: dm: Mounting root as linear device when verity KVM: PPC: Book3S HV: Save/restore TM state in H_CEDE nvme: Call pci_disable_device on the error path. Input: elantech - add more IC body types to the list USB: serial: fix memleak in driver-registration error pa 1098142 I45ec6a02fc6f74ee871455c5662f62f1cfa7bc74 ARM: dts: msm: Enable volume up key for 8998 QRD interpo Ie1c1cbd52a6edb77b4c15a830030aa748dff6f29 sched/tune: Add support for negative boost values 1060631 Ibf2050d0814cc2aaf22a6f510847054d78fd7477 msm: camera: isp: Add secure mode to isp cred: Reject inodes with invalid ids in set_create_file_ KEYS: Fix ASN.1 indefinite length object parsing usb: f_fs: off by one bug in _ffs_func_bind() ALSA: line6: Remove double line6_pcm_release() after fai drm/radeon: fix firmware info version checks iio: fix sched WARNING "do not call blocking ops when !T Input: i8042 - set up shared ps2_cmd_mutex for AUX ports tools: hv: report ENOSPC errors in hv_fcopy_daemon fm10k: Cleanup exception handling for mailbox interrupt sched/fair: add triggers for OPP change requests SUNRPC: Handle EADDRNOTAVAIL on connection failures ext4: avoid modifying checksum fields directly during ch drm/i915/bxt: update list of PCIIDs Ic64950c3b55f0a6eaa570bcedc2ace83bbf3005e ANDROID: dm-verity: adopt changes made to dm callbacks x86/quirks: Add early quirk to reset Apple AirPort card igb: don't unmap NULL hw_addr usb: ehci: change order of register cleanup during shutd sched/tune: add initial support for CGroups based boosti fs/nilfs2: fix potential underflow in call to crc32_le cxl: fix build for GCC 4.6.x IB/mlx4: Fix the SQ size of an RC QP dmaengine: at_xdmac: fix residue corruption x86/mm/pat: Add pat_disable() interface usb: renesas_usbhs: fix NULL pointer dereference in xfer DEBUG: schedtune: add tracepoint for SchedTune configura fs/dcache.c: avoid soft-lockup in dput() sched/fair: Favor higher cpus only for boosted tasks 9p: use file_dentry() media: dvb_ringbuffer: Add memory barriers tcp: consider recv buf for the initial window scale apparmor: fix ref count leak when profile sha1 hash is r arc: unwind: warn only once if DW2_UNWIND is disabled mfd: qcom_rpm: Parametrize also ack selector size I284c85c2a782145f46655a91d4f83874c90eba61 UPSTREAM: x86/uaccess: force copy_*_user() to be inlined mpt3sas: Fix for Asynchronous completion of timedout IO sched/tune: use a single initialisation function lpfc: Fix external loopback failure. random: strengthen input validation for RNDADDTOENTCNT sched: Enable idle balance to pull single task towards c 1102200 Ife68a9a9a9e596246aab5029f60e41c5bad781e4 sched: Track average sleep time e1000e: fix division by zero on jumbo MTUs HID: uhid: fix timeout when probe races with IO USB: hub: change the locking in hub_activate ecryptfs: don't allow mmap when the lower fs doesn't sup lpfc: Fix mbox reuse in PLOGI completion media: fix airspy usb probe error path I10e979e94605e3cf8d461e3e521f8f9837228aa5 UPSTREAM: audit: fix a double fetch in audit_log_single_ unsafe_[get|put]_user: change interface to use a error t Drivers: hv: utils: run polling callback always in inter FIXUP: sched/tune: fix payoff calculation for boost regi s390/dasd: fix hanging device after clear subchannel fs/seq_file: fix out-of-bounds read drm/radeon/mst: fix regression in lane/link handling. media: usbtv: prevent access to free'd resources arm64: Enable max freq invariant scheduler load-tracking usb: renesas_usbhs: clear the BRDYSTS in usbhsg_ep_enabl i40evf: check rings before freeing resources ALSA: hda - Manage power well properly for resume 1102347 I1af8d539a1ce07e16f6c46f855c65cc4985de737 mm: memcontrol: fix a compile time error KEYS: 64-bit MIPS needs to use compat_sys_keyctl for 32- drm/nouveau/fbcon: fix font width not divisible by 8 Documentation/module-signing.txt: Note need for version arm64: Cpu invariant scheduler load-tracking and capacit mm, compaction: abort free scanner if split fails arm: Enable frequency invariant scheduler load-tracking net: cavium: liquidio: fix check for in progress flag parisc: Fix order of EREFUSED define in errno.h 1095227 I4a9fcee6c1cd70d9c04426c394e480c11a6f4648 msm: mdss: Optimize Gamut Mapping programming sequence SUNRPC: allow for upcalls for same uid but different gss arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO PNP: Add Broadwell to Intel MCH size workaround regulator: anatop: allow regulator to be in bypass mode block: fix bdi vs gendisk lifetime mismatch arm64: debug: unmask PSTATE.D earlier USB: serial: option: add support for Telit LE920A4 ACPI / drivers: replace acpi_probe_lock spinlock with mu megaraid_sas: Fix SMAP issue KVM: VMX: handle PML full VMEXIT that occurs during even crypto: caam - fix echainiv(authenc) encrypt shared desc lpfc: Fix crash in fcp command completion path. intel_idle: Support for Intel Xeon Phi Processor x200 Pr sched: Add per-cpu max capacity to sched_group_capacity x86: remove pointless uaccess_32.h complexity usb: chipidea: udc: don't touch DP when controller is in rds: fix an infoleak in rds_inc_info_copy Input: xpad - correctly handle concurrent LED and FF req dm: set DMF_SUSPENDED* _before_ clearing DMF_NOFLUSH_SUS UPSTREAM: sched: Fix a race between __kthread_bind() and drm: Reject page_flip for !DRIVER_MODESET 1089171 I8ed92a835fec1d5297448f440c19cc22ba52728b msm: camera: isp: Initialize registers after reset Linux 4.4.19 lightnvm: fix bio submission issue HID: sony: do not bail out when the sixaxis refuses the USB: serial: option: add WeTelecom WM-D200 usb: dwc3: gadget: increment request->actual once net/mlx5e: Don't modify CQ before it was created Ie09c2e3960cafbb976f8d472747faefab3b4d6ac sched: EAS: take cstate into account when selecting idle fm10k: Fix handling of NAPI budget when multiple queues i40e/i40evf: Fix RS bit update in Tx path and disable fo of: fix memory leak related to safe_name() 1025738 Ib7565bfd5d2e93aa4ff8fdd20414cac0a0f38bf7 lowmemorykiller: Introduce sysfs node for ALMK and PPR a 1100761 Ia417f6fa47d7570a6560b1409fe61c0d22ad6aac sensors: ssc: update device tree documentation for ssc b x86: fix SMAP in 32-bit environments xhci: always handle "Command Ring Stopped" events target: Fix max_unmap_lba_count calc overflow iscsi-target: Fix panic when adding second TCP connectio ARC: Elide redundant setup of DMA callbacks Id8fafbd85f6d81248f322e073ee790a7ceec0bf7 DEBUG: sched/tune: add tracepoint for energy_diff() valu 1095917 Iebb62303febfb78738ada4553fdb9b9eb4810ed5 qcom-charger: set optimal boost switching frequency ARC: use correct offset in pt_regs for saving/restoring w1:omap_hdq: fix regression sched/fair: cpufreq_sched triggers for load balancing drm: Balance error path for GEM handle allocation IB/mlx4: Fix error flow when sending mads under SRIOV mm: memcontrol: fix cgroup creation failure after many s hwmon: (iio_hwmon) fix memory leak in name attribute mfd: qcom_rpm: Fix offset error for msm8660 drm/i915: Don't complain about lack of ACPI video bios net: mvneta: set real interrupt per packet for tx_done sur40: fix occasional oopses on device close ext4: properly align shifted xattrs when expanding inode clocksource: Allow unregistering the watchdog lpfc: Fix driver crash when module parameter lpfc_fcp_io cxlflash: Resolve oops in wait_port_offline vfio/pci: Fix NULL pointer oops in error interrupt setup IB/SA: Use correct free function I2d9354e240d36ea06fc68c2d18d8e87b823a4c2f ANDROID: dm: fix signature verification flag I73b13be651cf35c03482f2014bf2c3dd291518ab UPSTREAM: usercopy: avoid potentially undefined behavior iommu/dma: Don't put uninitialised IOVA domains 1102343 I71bd87330f64322f54693a4c412f0af69cd3c704 ARM: dts: msm: Add lpass pmu irq to mpm wakeup list for Input: elan_i2c - properly wake up touchpad on ASUS lapt Revert "panic: Add board ID to panic output" fm10k: Correct MTU for jumbo frames Idb84453e70cc11abd5ef3a0adfbb16f8b5feaf06 ANDROID: dm verity fec: pack the fec_header structure sched/fair: keep track of energy/capacity variations mm: SLUB hardened usercopy support pwm: lpc32xx: fix and simplify duty cycle and period cal PCI: Add Netronome NFP4000 PF device ID kernel/sysrq, watchdog, sched/core: Reset watchdog on al 1081884 Iecb3b06cde79c59c24a0e56ef05c41a5f9b6204e drivers: cpuidle: lpm-levels: Fix round off error in cal block: make sure a big bio is split into at most 256 bve ALSA: line6: Give up on the lock while URBs are released intel_th: pci: Add Kaby Lake PCH-H support crypto: caam - defer aead_set_sh_desc in case of zero au x86/xen, pat: Remove PAT table init code from Xen usb: xhci: Fix panic if disconnect remoteproc: Fix potential race condition in rproc_add intel_pstate: Fix MSR_CONFIG_TDP_x addressing in core_ge platform/chrome: cros_ec_dev - double fetch bug in ioctl tty/serial: atmel: fix RS485 half duplex with DMA power_supply: power_supply_read_temp only if use_cnt > 0 ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS pinctrl: cherryview: prevent concurrent access to GPIO c arm64: mm: avoid fdt_check_header() before the FDT is fu powerpc/eeh: eeh_pci_enable(): fix checking of post-requ um: Don't discard .text.exit section Ida514d1359dbe6f782f562ce29b4ba09ae72bfc0 BACKPORT: ARM: 8583/1: mm: fix location of _etext blk-mq: End unstarted requests on dying queue can: c_can: Update D_CAN TX and RX functions to 32 bit - s390/cio: allow to reset channel measurement block dm flakey: error READ bios during the down_interval x86: reorganize SMAP handling in user space accesses Ia2f8b5c0dd5dac06580256eeb4b259929688af68 FIXUP: sched: scheduler-driven cpu frequency selection hrtimer: Catch illegal clockids cxl: Fix DSI misses when the context owning task exits random: print a warning for the first ten uninitialized drm/amdgpu: Poll for both connect/disconnect on analog c fixup! sched/fair: jump to max OPP when crossing UP thre USB: serial: option: add support for Telit LE910 PID 0x1 cxlflash: Fix to resolve cmd leak after host reset I24d0bb6f349ab3829f63cfe935ed97b6913a3508 UPSTREAM: ppp: defer netns reference release for ppp cha I4d1c27a1b4bcbba03d4b175d170cfe1701a90ffd FIXUP: sched: Fix double-release of spinlock in move_que lpfc: Fix FCF Infinite loop in lpfc_sli4_fcf_rr_next_ind 1092907 Ibb506824c4223551bceb449594ac99f9dfd8064b Revert "sched/cputime: Fix steal time accounting vs. CPU USB: serial: mos7720: fix non-atomic allocation in write timekeeping: Cap array access in timekeeping_debug 1101302 I1736dc8a2a34ece02aaec70c867c7a0993fa82c7 ARM: dts: msm: Enable APSS-RPM communication for msmfalc i40e: clean whole mac filter list IB/mlx5: Fix entries check in mlx5_ib_resize_cq drm/radeon: support backlight control for UNIPHY3 I945c841dcfb45de2056267e4aa50bbe176b527cf UPSTREAM: [media] xc2028: avoid use after free sched/fair: filter energy_diff() based on energy_payoff sched: Add group_misfit_task load-balance type IB/IPoIB: Don't update neigh validity for unresolved ent ext4: validate s_reserved_gdt_blocks on mount lightnvm: unlock rq and free ppa_list on submission fail cxlflash: Fix to avoid unnecessary scan with internal LU mm/hugetlb: avoid soft lockup in set_max_huge_pages() Id157d10e2fe0b85f1be45035a6117358a42af028 FROMLIST: proc: Add LSM hook checks to /proc/<tid>/timer netfilter: x_tables: check for size overflow sched/nohz: Fix affine unpinned timers mess 1102132 I0c31e2fbe984420a6754e923cfc3abe77bc54991 smb-lib: report FULL regardless of charger presence qeth: delete napi struct when removing a qeth device spi: sun4i: fix FIFO limit 1102433 Ib01e32f2c5cd3d6feff6321a897ed8d276bc3be3 arm64: kaslr: fix breakage with CONFIG_MODVERSIONS=y I97ea5671aa1e6bcb165408b41e17bc82e41c2c9e sched/tune: Introducing a new schedtune attribute prefer sched/fair: add boosted task utilization ext4: don't call ext4_should_journal_data() on the journ sched/walt: include missing header for arm_timer_read_co i2c: cros-ec-tunnel: Fix usage of cros_ec_cmd_xfer() DEBUG: cpufreq: fix cpu_capacity tracing build for non-s I09c60752374b8145da78000935062be08c5c8a52 BACKPORT: brcmfmac: defer DPC processing during probe CIFS: Fix a possible invalid memory access in smb2_query tcp: enable per-socket rate limiting of all 'challenge a ALSA: firewire-tascam: accessing to user space outside s netfilter: x_tables: check for size overflow sched/fair: add tunable to set initial task load xhci: Make sure xhci handles USB_SPEED_SUPER_PLUS device can: fix handling of unmodifiable configuration options spi: sunxi: fix transfer timeout I34aa9c394d3052779b56976693e96d861bd255f2 RFC: FROMLIST: cgroup: avoid synchronize_sched() in __cg ext4: fix xattr shifting when expanding inodes gpio: intel-mid: Remove potentially harmful code 1101906 Iba01736475b852d8d64f944c371e585c94b85114 defconfig: msmfalcon: enable compilation of MDSS PLL dri I9a615a16616d80f87e75676ac4d078a5c429dcf9 Android: MMC/UFS IO Latency Histograms. i2c: i801: Allow ACPI SystemIO OpRegion to conflict with I348809399c10ffa051251866063be674d064b9ff BACKPORT: usercopy: fold builtin_const check into inline sched/fair: Fix effective_load() to consistently use smo 1099656 Idecd865b7a11e4cd30737f5d800673c87807592c ARM: dts: msm: update speaker left and right GPIOs for A cpufreq: Fix GOV_LIMITS handling for the userspace gover ovl: handle ATTR_KILL* Iaf25e882a6696884439d7091b5fbb0b350d893d3 UPSTREAM: HID: core: prevent out-of-bound readings Ibfdf4790d03fe426e68d9a864c55a0d1bbfb7d61 UPSTREAM: usercopy: force check_object_size() inline drivers:hv: Lock access to hyperv_mmio resource tree I7b6ba9fde5c6e29467e6de23d398af2fe56e2547 UPSTREAM: [media] xc2028: unlock on error in xc2028_set_ I5a97e31d33284895c0fa6f6942102713ee576d77 sched/fair: Picking cpus with low OPPs for tasks that pr drm/nouveau: check for supported chipset before booting arm64: Fix incorrect per-cpu usage for boot CPU 1090076 If5dbc043f4708ffe6c474ce688ea86572c1b9ffd ARM: dts: msm: Configure WLED for mdss on pm2falcon inte lightnvm: fix locking and mempool in rrpc_lun_gc x86/mm/pat: Replace cpu_has_pat with boot_cpu_has() block: fix use-after-free in seq file 1083323 I559ae08b9a46d5d3c35f8be509976a25faa967f9 msm: camera: Synchronize jpeg ISR and userspace call FIXUP: sched/tune: fix accounting for runnable tasks arm: Fix #if/#ifdef typo in topology.c ARC: unwind: ensure that .debug_frame is generated (vs. net: Use ns_capable_noaudit() when determining net sysct sched/numa: Fix use-after-free bug in the task_numa_comp cxlflash: Fix to avoid virtual LUN failover failure cxlflash: a couple off by one bugs crypto: qat - fix aes-xts key sizes qeth: initialize net_device with carrier off UPSTREAM: ARM: 8494/1: mm: Enable PXN when running non-L i40e: don't add zero MAC filter 1102200 I2a05493fde93f58636725f18d0ce8dbce4418a30 sched: Avoid waking idle cpu for short-burst tasks I0358be0615c431dce3cc78575aaac4ccfe3aacd7 ANDROID: dm: android-verity: Allow android-verity to be perf intel-pt: Fix occasional decoding errors when traci 1102132 I70489775b2a99afff8b26366758834a98b1ffb30 smb-lib : Fix incorrect VALID_INPUT_POWER_SOURCE_BIT che sched: Relocated cpu_util() and change return type cxlflash: Enable device id for future IBM CXL adapter module: Invalidate signatures on force-loaded modules sched: Add over-utilization/tipping point indicator Drivers: hv: vmbus: avoid scheduling in interrupt contex Id3e15c40cb464bf2791af907c235d8a316b2449c UPSTREAM: netfilter: nfnetlink: correctly validate lengt net/mlx5e: Don't try to modify CQ moderation if it is no btrfs: properly track when rescan worker is running 1033918 I768463aaad17f7be5d3fe11d7ca23d422833cfe5 clk: msm: hdmi: HDMI 10nm HPG Rev2.0 update sched: Support for extracting EAS energy costs from DT sched: Disable energy-unfriendly nohz kicks mtd: nand: fix bug writing 1 byte less than page size btrfs: Continue write in case of can_not_nocow drm/i915/skl: Add missing SKL ids ia64/uaccess: Enable hardened usercopy block: Fix race triggered by blk_set_queue_dying() drm/radeon: fix radeon_move_blit on 32bit systems drm/edid: Add 6 bpc quirk for display AEO model 0. USB: usbfs: fix potential infoleak in devio usb: define USB_SPEED_SUPER_PLUS speed for SuperSpeedPlu arm: oabi compat: add missing access checks drivers/hv: cleanup synic msrs if vmbus connect failed sched: Consider spare cpu capacity at task wake-up sched: Consider a not over-utilized energy-aware system ext4: fix deadlock during page writeback usb: misc: usbtest: add fix for driver hang Linux 4.4.20 cpufreq: Max freq invariant scheduler load-tracking and Input: xpad - fix oops when attaching an unknown Xbox On i40e: Fix Rx hash reported to the stack by our driver sched: Make energy awareness a sched feature mmc: sdhci-acpi: Reduce Baytrail eMMC/SD/SDIO hangs scsi: fix upper bounds check of sense key in scsi_sense_ 1094158 I8b28ece4bbfe76e3d9b003e14c6600b856c30043 ARM: dts: msm: Delete RGB led trigger properties in QRD sched/fair: add tunable to force selection at cpu granul iommu/exynos: Suppress unbinding to prevent system failu sched: scheduler-driven cpu frequency selection ALSA: hda - Enable subwoofer on Dell Inspiron 7559 sched/fair: Avoid redundant idle_cpu() call in update_sg drm/amdgpu: fix dp link rate selection (v2) kernel: Add noaudit variant of ns_capable() I5807a897d11997d76421c1fcaa2918aad988c6c9 sched/rt: Add Kconfig option to enable panicking for RT MIPS: hpet: Increase HPET_MIN_PROG_DELTA and decrease HP mm: Add is_migrate_cma_page mpt3sas: Fix resume on WarpDrive flash cards sur40: lower poll interval to fix occasional FPS drops t I506c89b053d835ab579e703eef2bc1f8487250de ANDROID: dm: use default verity public key of: fix reference counting in of_graph_get_endpoint_by_r lpfc: Fix RegLogin failed error seen on Lancer FC during sched/fair: add boosted CPU usage perf/x86/cqm: Fix CQM memory leak and notifier leak ovl: disallow overlayfs as upperdir powerpc/tm: Avoid SLB faults in treclaim/trecheckpoint w ovl: don't copy up opaqueness DEBUG: sched,cpufreq: add cpu_capacity change tracepoint arcmsr: fixed getting wrong configuration data Ie8ece84fb613cf6a7b08cea1468473a8df2b9661 RFC: FROMLIST: cgroup: reduce read locked section of cgr I6fe65b14413da44b1520ba116f72320083eb92f8 sched: EAS: Avoid causing spikes to max-freq unnecessari USB: OHCI: Don't mark EDs as ED_OPER if scheduling fails drm/radeon: add a delay after ATPX dGPU power off iommu/vt-d: Return error code in domain_context_mapping_ PCI: Support PCIe devices with short cfg_size BACKPORT: arm64: mm: fix location of _etext sched: rt scheduler sets capacity requirement sched/tune: add sysctl interface to define a boost value Revert "ecryptfs: forbid opening files without mmap hand DEBUG: schedtune: add tracepoint for CPU boost signal Ibd9c9a10874a1d91f62477034548f7664e57cd6a FIXUP: sched: fix set_cfs_cpu_capacity when WALT is in u I4cdee1cd31467aa3e6c605bce2fbd4de5b0f8caa FROMLIST: pstore: drop pmsg bounce buffer usb: dwc3: pci: add Intel Kabylake PCI ID wrappers for ->i_mutex access DEBUG: sched: add tracepoint for CPU load/util signals block: fix use-after-free in sys_ioprio_get() x86/mm/pat: Add support of non-default PAT MSR setting x86/hyperv: Avoid reporting bogus NMI status for Gen2 in fs/cifs: make share unaccessible at root level mountable I3ff36670f7d4e5bf5f01dce584ae9d53deabb3ed ANDROID: net: core: fix UID-based routing usb: hub: Fix unbalanced reference count/memory leak/dea PCI: Limit config space size for Netronome NFP6000 famil arm: Fix build error "conflicting types for 'scale_cpu_c ovl: remove posix_acl_default from workdir uprobes: Fix the memcg accounting drm/amdgpu: record error code when ring test failed drm/amdgpu: Change GART offset to 64-bit Ib893a17ecabd692e6c402e864196bf89cd6781a5 UPSTREAM: mm/slub: support left redzone arm64: KVM: Configure TCR_EL2.PS at runtime net/irda: fix NULL pointer dereference on memory allocat mmc: block: fix packed command header endianness Icfdc3e7b3ead5de335a059cade1aca70414db415 ANDROID: dm-android-verity: Rebase on top of 4.1 staging: comedi: comedi_test: fix timer race conditions sched: Add cpu capacity awareness to wakeup balancing sched: Store system-wide maximum cpu capacity in root do ARC: build: Better way to detect ISA compatible toolchai x86/mtrr: Fix Xorg crashes in Qemu sessions vb2: core: Skip planes array verification if pb is NULL tipc: fix an infoleak in tipc_nl_compat_link_dump ALSA: hda/realtek - Can't adjust speaker's volume on a D arm: Enable max freq invariant scheduler load-tracking a net: bgmac: Fix infinite loop in bgmac_dma_tx_add() sched/fair: call OPP update when going idle after migrat crypto: vmx - comply with ABIs that specify vrsave as re usb: gadget: avoid exposing kernel stack proc: revert /proc/<pid>/maps [stack:TID] annotation x86/syscalls/64: Add compat_sys_keyctl for 32-bit usersp ALSA: hda - Fix headset mic detection problem for two de x86/uaccess: Enable hardened usercopy lightnvm: add check after mempool allocation Input: tegra-kbc - fix inverted reset logic sched/tune: add detailed documentation cxlflash: Fix to resolve dead-lock during EEH recovery staging: comedi: ni_mio_common: fix AO inttrig backwards IB/mlx5: Fix MODIFY_QP command input structure sched/cpufreq_sched: add trace events ASoC: atmel_ssc_dai: Don't unconditionally reset SSC on FIXUP: sched/tune: add fixes missing from a previous pat videobuf2-v4l2: Verify planes array in buffer dequeueing x86/mm/pat: Fix BUG_ON() in mmap_mem() on QEMU/i386 I622c8e84dcb9fb63542372c5dbf0178ee86bb589 namespace: update event counter when umounting a deleted net: thunderx: Fix for Qset error due to CQ full i40e: fix: do not sleep in netdev_ops 1098568 I8dc24f3c4926f008d114778c890ad2c2902f84b9 msm: camera: isp: Ignore bus error from RDI write master 1097176 Ie92df31a5cdfa176e872d721a84475a37172a2dd clk: qcom: mmcc: Update the DSI PLL parent names aacraid: Check size values after double-fetch from user sched: deadline: use deadline bandwidth in scale_rt_capa ALSA: usb-audio: Add a sample rate quirk for Creative Li drm/i915/dp: Revert "drm/i915/dp: fall back to 18 bpp wh drm/amdgpu/cz: enable/disable vce dpm even if vce pg is Bluetooth: Add support for Intel Bluetooth device 8265 [ I180534c8a647254ed38e89d0c981a8f8bccd741c sched/rt: print RT tasks when RT throttling is activated ALSA: timer: fix NULL pointer dereference in read()/ioct ALSA: timer: fix NULL pointer dereference on memory allo Drivers: hv: vmbus: serialize process_chn_event() and vm sched/fair: add function to convert boost value into "ma I3c13e818f238c1ffa66b34e419e8b87314b57427 sched/cpufreq_sched: fix thermal capping events I7ce9f38d8c7a62361392c5a8ccebb288f8a3a2ea ANDROID: dm: allow adb disable-verity only in userdebug nfsd: don't return an unhashed lock stateid after taking ALSA: hda: add AMD Bonaire AZ PCI ID with proper driver s390/cio: update measurement characteristics hwrng: exynos - Disable runtime PM on probe failure I22cdf33e7d312117bcefba1aeb0125e1ada289a9 cpuset: Make cpusets restore on hotplug crypto: gcm - Filter out async ghash if necessary sched: remove call of sched_avg_update from sched_rt_avg sched: Do eas idle balance regardless of the rq avg idle sched/fair: Fix new task's load avg removed from source USB: serial: ftdi_sio: add PIDs for Ivium Technologies d cifs: Check for existing directory when opening file wit iommu/arm-smmu: Don't BUG() if we find aborting STEs wit PCI: Limit config space size for Netronome NFP4000 KVM: MTRR: fix kvm_mtrr_check_gfn_range_consistency page cpufreq: Kconfig: Fixup incorrect selection by CPU_FREQ_ s390/cio: fix measurement characteristics memleak USB: serial: ftdi_sio: add device ID for WICED USB UART HID: core: prevent out-of-bound readings can: at91_can: RX queue could get stuck at high bus load sched, cpuidle: Track cpuidle state index in the schedul ARC: mm: don't loose PTE_SPECIAL in pte_modify() staging: comedi: daqboard2000: bug fix board type matchi sched/fair: jump to max OPP when crossing UP threshold usb: dwc3: fix for the isoc transfer EP_BUSY flag lpfc: Fix DMA faults observed upon plugging loopback con MIPS: Don't register r4k sched clock when CPUFREQ enable iommu/amd: Init unity mappings only for dma_ops domains megaraid_sas: Fix probing cards without io port mm: SLAB hardened usercopy support Drivers: hv: vmbus: don't manipulate with clocksources o scsi: ignore errors from scsi_dh_add_device() i2c: mux: reg: wrong condition checked for of_address_to IB/IPoIB: Do not set skb truesize since using one linear block: add missing group association in bio-cloning func Revert "s390/kdump: Clear subchannel ID to signal non-CC I8c014bbd04f6a1d57892be9bfa16affe07948dcf arm: topology: Define TC2 energy and provide it to the s ARM: dts: sunxi: Add a startup delay for fixed regulator usb: gadget: fsl_qe_udc: off by one in setup_received_ha net: thunderx: Fix for multiqset not configured upon int sched/fair: optimize idle cpu selection for boosted task mm: memcontrol: fix memcg id ref counter on swap charge net: thunderx: Fix link status reporting arm64, topology: Updates to use DT bindings for EAS cost virtio: fix memory leak in virtqueue_add() hugetlb: fix nr_pmds accounting with shared page tables 1095917 I4e041dafa83d935a5c16c96bea7a3ea488e80d87 qcom-charger: smblib: drop the BOOST PFM Threshold chang lightnvm: fix incorrect nr_free_blocks stat sched: Prevent unnecessary active balance of single task USB: avoid left shift by -1 cifs: fix crash due to race in hmac(md5) handling PNP: Add Haswell-ULT to Intel MCH size workaround drm/atomic: Do not unset crtc when an encoder is stolen posix_cpu_timer: Exit early when process has been reaped ACPI / SRAT: fix SRAT parsing order with both LAPIC and KVM: nVMX: Fix memory corruption when using VMCS shadowi ext4: fix reference counting bug on block allocation err PCI: Add Netronome vendor and device IDs 798195 I2927efe04fd019d551aae5e6548da3fb5c18b655 qcom: scm: Support register r6 to pass the session id Linux 4.4.17 tools/testing/nvdimm: fix SIGTERM vs hotplug crash s390/cio: ensure consistent measurement state pps: do not crash when failed to register USB: validate wMaxPacketValue entries in endpoint descri metag: Fix __cmpxchg_u32 asm constraint for CMP FIXUP: sched/tune: do initialization as a postcore_initi ALSA: timer: Fix leak in events via snd_timer_user_tinte staging: comedi: ni_mio_common: fix wrong insn_write han Bluetooth: Fix l2cap_sock_setsockopt() with optname BT_R udp: properly support MSG_PEEK with truncated buffers cpufreq: introduce cpufreq_driver_is_slow Linux 4.4.21 MIPS: KVM: Fix mapped fault broken commpage handling usercopy: fix overlap check for kernel text 1056777 Ifad3259ca0fab45a264596475150d01708db3588 ARM: dts: msm: add tpdm, tpda and cti nodes on msmfalcon xen/pciback: Fix conf_space read/write overlap check. ACPI / sysfs: fix error code in get_status() I4a377e417b00afd9ecccdb3e605fea31a7df112e ANDROID: dm: rename dm-linear methods for dm-android-ver Ia3e8aff07c2d41f55b6617502d33c39b7d781aac FROMLIST: proc: Fix timerslack_ns CAP_SYS_NICE check whe RDS: fix rds_tcp_init() error path sched: Energy-aware wake-up task placement EDAC: Correct channel count limit ALSA: hda: add AMD Polaris-10/11 AZ PCI IDs with proper Documentation: DT bindings for energy model cost data re fuse: fuse_flush must check mapping->flags for errors ALSA: usb-audio: Add quirk for ELP HD USB Camera ext4: validate that metadata blocks do not overlap super vfs: fix deadlock in file_remove_privs() on overlayfs Input: xpad - validate USB endpoint count during probe arm: Cpu invariant scheduler load-tracking and capacity drm/amdgpu: skip TV/CV in display parsing hp-wmi: Fix wifi cannot be hard-unblocked netlabel: add address family checks to netlbl_{sock,req} usb: renesas_usbhs: gadget: fix return value check in us ALSA: timer: Fix leak in events via snd_timer_user_ccall arm64: kernel: Save and restore UAO and addr_limit on ex I31dfed67c0486713b88efb75df767329f2802e06 DEBUG: sched/tune: add tracepoint on P-E space filtering lpfc: fix oops in lpfc_sli4_scmd_to_wqidx_distr() from l pwm: lpc32xx: correct number of PWM channels from 2 to 1 I8ea04b4dca2ec36f1c2469eccafde1423490572f RFC: FROMLIST: locking/percpu-rwsem: Optimize readers an x86: remove more uaccess_32.h complexity target: Fix ordered task CHECK_CONDITION early exception arm64: Enable frequency invariant scheduler load-trackin sched: Introduce Window Assisted Load Tracking (WALT) x86/quirks: Apply nvidia_bugs quirk only on root bus sched: Calculate energy consumption of sched_group drm/radeon: Poll for both connect/disconnect on analog c qed: Fix setting/clearing bit in completion bitmap dmaengine: usb-dmac: check CHCR.DE bit in usb_dmac_isr_c 1072607 I14abed3827de8cefc31f3deb3c1e589136c32b8d clk: qcom: Add support for hardware control branch ubi: Fix race condition between ubi device creation and s390/sclp_ctl: fix potential information leak with /dev/ pwm: fsl-ftm: Fix clock enable/disable when using PM i40e: Workaround fix for mss < 256 issue ARM: uaccess: Enable hardened usercopy Iea0ca79f16c2a1366d82b3b0a3097093d18da8b7 ipv6: fix endianness error in icmpv6_err ext4: verify extent header depth mmc: sdhci: 64-bit DMA actually has 4-byte alignment s390/uaccess: Enable hardened usercopy xfs: fix superblock inprogress check Drivers: hv: util: catch allocation errors i2c: efm32: fix a failure path in efm32_i2c_probe() tipc: fix nullptr crash during subscription cancel mm: Hardened usercopy I462c24b16fdef42ae2332571a0b95de3ef9d2e25 ANDROID: net: fib: remove duplicate assignment ANDROID: sdcardfs: fix itnull.cocci warnings I952d86fd1475f0825f9be1386e3497b36127abd0 ANDROID: dm: Rebase on top of 4.1 1102200 Ie71d3163630fb8aa0db8ee8383768f8748270cf9 sched: Track burst length for tasks mm/slub: support left redzone NVMe: Don't unmap controller registers on reset dmaengine: at_xdmac: double FIFO flush needed to compute tipc: fix nl compat regression for link statistics crypto: nx-842 - Mask XERS0 bit in return value pinctrl/amd: Remove the default de-bounce time nfs: don't create zero-length requests ACPI / EC: Work around method reentrancy limit in ACPICA If760bc3b8ab0e59fefc24fa687514324348fb8e8 UPSTREAM: KEYS: Fix ASN.1 indefinite length object parsi USB: serial: mos7840: fix non-atomic allocation in write btrfs: waiting on qgroup rescan should not always be int I7326fd50e868e97fb5e12351917e9d2969bfdae7 FIXUP: sched: fix SchedFreq integration for both PELT an target: Fix race between iscsi-target connection shutdow random: initialize the non-blocking pool via add_hwgener drm/amdgpu: fix amdgpu_move_blit on 32bit systems USB: serial: option: add WeTelecom 0x6802 and 0x6803 pro FIXUP: sched: fix build for non-SMP target ecryptfs: fix handling of directory opening fs: Check for invalid i_uid in may_follow_link() lustre: remove unused declaration BACKPORT: Don't show empty tag stats for unprivileged ui libata: LITE-ON CX1-JB256-HP needs lower max_sectors ALSA: line6: Fix POD sysfs attributes segfault I9cdae655b40ed155468f3cef25cdb74bb56c4d3e Android: Fix build breakages. I8f5c2289b842b820ca04f5773525e5449bb3f355 ANDROID: dm: mount as linear target if eng build pinctrl: single: Fix missing flush of posted write for a IB/IWPM: Fix a potential skb leak SCSI: fix new bug in scsi_dev_info_list string matching I588c2d544250e9e4b5082b43c237b8f85b7313ca android-recommended.cfg: enable fstack-protector-strong sched/walt: use do_div instead of division operator usb: renesas_usbhs: Use dmac only if the pipe type is bu ovl: fix workdir creation e1000: fix data race between tx_ring->next_to_clean fm10k: do not assume VF always has 1 queue sysv, ipc: fix security-layer leaking xenbus: don't BUG() on user mode induced condition sched: Determine the current sched_group idle-state perf/x86/cqm: Fix CQM handling of grouping events into a pvclock: Add CPU barriers to get correct version value 1094487 I21110b930cf5a74a656e40f2f3210cc57ae91b95 ARM: dts: msm: Add dual camera support for qrd8998 skuk x86/pat: Document the PAT initialization sequence vhost/scsi: fix reuse of &vq->iov[out] in response drm/nouveau/gr/nv3x: fix instobj write offsets in gr set arm64/uaccess: Enable hardened usercopy 1099656 Ia1c6d8dfd75eb21cde8de7b9bfcab4e4277e339f ASoC: msm8998: add asm loopback FE DAI cdc-acm: fix wrong pipe type on rx interrupt xfers ARC: Call trace_hardirqs_on() before enabling irqs sched: Introduce SD_SHARE_CAP_STATES sched_domain flag iommu/amd: Handle IOMMU_DOMAIN_DMA in ops->domain_free c spi: pxa2xx: Clear all RFT bits in reset_sccr1() on Inte i40evf: handle many MAC filters correctly arm64: dts: rockchip: fixes the gic400 2nd region size f ntp: Fix ADJ_SETOFFSET being used w/ ADJ_NANO I37d51f866f873341bf7d5297249899b852e1c6ce UPSTREAM: Make the hardened user-copy code depend on hav ext4: avoid deadlock when expanding inode size sched: Highest energy aware balancing sched_domain level sched/{fair,tune}: track RUNNABLE tasks impact on per CP gpio: Fix OF build problem on UM i40e/i40evf: Fix RSS rx-flow-hash configuration through libceph: apply new_state before new_up_client on increme Drivers: hv: util: Increase the timeout for util service Drivers: hv: vmbus: fix rescind-offer handling for devic mm, compaction: prevent VM_BUG_ON when terminating freei DEBUG: sched: add energy procfs interface ext4: check for extents that wrap around mm: memcontrol: fix swap counter leak on swapout from of Input: vmmouse - remove port reservation sysfs: correctly handle read offset on PREALLOC attrs USB: serial: option: add D-Link DWM-156/A3 USB: fix typo in wMaxPacketSize validation ubi: Fix early logging Drivers: hv: vss: run only on supported host versions target: Fix missing complete during ABORT_TASK + CMD_T_F I7e99644a0960ac8279f02c0158ed20999510ea97 ANDROID: dm: Add android verity target usb: quirks: Add no-lpm quirk for Elan crypto: vmx - IV size failing on skcipher API perf/x86: fix PEBS issues on Intel Atom/Core2 backporting: a brief introduce of backported feautures o locks: use file_inode() Bluetooth: hci_intel: Fix null gpio desc pointer derefer DEBUG: sched: add tracepoint for cpu/freq scale invarian drm/amdgpu: avoid a possible array overflow s5p-mfc: Set device name for reserved memory region devs arch_timer: add error handling when the MPM global timer lib/mpi: mpi_write_sgl(): fix skipping of leading zero l ALSA: fireworks: accessing to user space outside spinloc KVM: PPC: Book3S HV: Pull out TM state save/restore into sched: Initialize energy data structures ext4: fix xattr shifting when expanding inodes part 2 Linux 4.4.18 FIX: sched/tune: update usage of boosted task utilisatio fm10k: always check init_hw for errors usb/gadget: fix gadgetfs aio support. genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP bcache: RESERVE_PRIO is too small by one when prio_bucke ftrace/recordmcount: Work around for addition of metag m crypto: vmx - Fix ABI detection metag: Fix atomic_*_return inline asm constraints arm64: dts: rockchip: add reset saradc node for rk3368 S megaraid_sas: Do not allow PCI access during OCR arm: Update arch_scale_cpu_capacity() to reflect change Ibe1b9434c00ed96f1e30acb110734c6570b087b8 net: ipv6: Fix ping to link-local addresses. net: thunderx: Fix receive packet stats I157170eebe3c0f89a68ae05870a1060f188d0da0 ANDROID: dm: Minor cleanup FIXUP: sched/tune: update accouting before CPU capacity fm10k: reset max_queues on init_hw_vf failure I839dbf4ddbb4d9874026a42abed557eb9b3f8bef UPSTREAM: usercopy: fix overlap check for kernel text cpufreq: Frequency invariant scheduler load-tracking sup bonding: set carrier off for devices created through net 1098907 I3412d36959d0b6b49d369cb1695836af82d7b5b4 usb: gadget: composite: enable BESL support ALSA: hda - add codec support for Kabylake display audio genirq/msi: Make sure PCI MSIs are activated early 1102641 I3dde602e434971cca8ec0947198d1c7b441168cf ARM: dts: msm: Enable Gm control for pm2falcon ixgbe: Fix handling of NAPI budget when multiple queues random: add interrupt callback to VMBus IRQ handler IB/mlx5: Fix entries checks in mlx5_ib_create_cq I4813ce803f270fdd364758ce1dc108b76eab226e UPSTREAM: ecryptfs: fix handling of directory opening mac80211: fix purging multicast PS buffer queue devpts: clean up interface to pty drivers 1100579 Id0cdd7f27b42c261966bb5e92d8229fa234445c4 ARM: dts: msm: Add remote fs device node on msmfalcon sched: Update max cpu capacity in case of max frequency drm/i915: fix aliasing_ppgtt leak drm/i915: Never fully mask the the EI up rps interrupt o igb: fix NULL derefs due to skipped SR-IOV enabling ALSA: hda: Fix krealloc() with __GFP_ZERO usage tda10071: Fix dependency to REGMAP_I2C mm, meminit: ensure node is online before checking wheth drm/i915: Check VBT for port presence in addition to the ANDROID: dm: fix dm_substitute_devices() PCI: Mark Atheros AR9485 and QCA9882 to avoid bus reset crypto: caam - fix non-hmac hashes I4fee165571cb975fb9eacbc9aada5e6d7dd748f0 Implement memory_state_time, used by qcom,cpubw cgroup: set css->id to -1 during init lpfc: Fix RDP Speed reporting. i40e: Fix memory leaks, sideband filter programming Ib34d25c0854202f3e70df0a6d0ef1d96f0250c8e ANDROID: dm: android-verity: Verify header before fetchi clk: rockchip: initialize flags of clk_init_data in mmc- drm/amdgpu: fix firmware info version checks sched: Compute cpu capacity available at current frequen balloon: check the number of available pages in leak bal block: fix blk_rq_get_max_sectors for driver private req gpio: pca953x: Fix NBANK calculation for PCA9536 MIPS: KVM: Add missing gfn range check ipr: Clear interrupt on croc/crocodile when running with ALSA: hda - Add headset mic quirk for Dell Inspiron 5468 1102438 Ibbe1845c673f3a422b013d17492790c79c78d076 defconfig: msm: disable AIO support for msm8998 s390/pci_dma: fix DMA table corruption with > 4 TB main sched: Estimate energy impact of scheduling decisions mm, sl[au]b: add __GFP_ATOMIC to the GFP reclaim mask sched/tune: add support to compute normalized energy I2477b6a2cfdded5c0ebf6ffbb6150b0e5fe2ba12 ANDROID: base-cfg: enable SECCOMP config x86/mm: Disable preemption during CR3 read+write drm/msm: fix use of copy_from_user() while holding spinl SUNRPC: Don't allocate a full sockaddr_storage for traci timekeeping: Avoid taking lock in NMI path with CONFIG_D irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visi fm10k: Cleanup MSI-X interrupts in case of failure 1088562 I2523a46487a03ade40afeddd394a4572283d91a2 msm: vidc: fix issue when video session opening failed MIPS: KVM: Propagate kseg0/mapped tlb fault errors arm64: Add workaround for Cavium erratum 27456 drm/radeon: fix dp link rate selection (v2) Drivers: hv: vmbus: avoid infinite loop in init_vp_index MIPS: mm: Fix definition of R6 cache instruction x86/apic: Do not init irq remapping if ioapic is disable arcmsr: fixes not release allocated resource UVC: Add support for R200 depth camera fuse: fsync() did not return IO errors cgroup: reduce read locked section of cgroup_threadgroup sched/{fair,tune}: simplify fair.c code Input: i8042 - break load dependency between atkbd/psmou UPSTREAM: usb: gadget: configfs: add mutex lock before u sched/tune: compute and keep track of per CPU boost valu Idf256cfacb40b4dc8dbb6795cf06b34e8fec7a06 vmstat: make vmstat_updater deferrable again and shut do FIX: sched/tune: move schedtune_nornalize_energy into fa nfsd: Fix race between FREE_STATEID and LOCK crypto: scatterwalk - Fix test in scatterwalk_done mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper I545d3bf5569fc41c0fa70f51dff9a19c11d532ee DEBUG: sched/tune: add tracepoint for task boost signal ALSA: rawmidi: Fix possible deadlock with virmidi regist rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_se 1098562 I4789bf9e837b1c0af7288e26ff02c4068638337a msm: camera: isp: Stop stats stream properly Change-Id: Id15826d8f4dd032e88d63192435b4dd4ef55e457 CRs-Fixed: 798195, 1088562, 1100761, 1060631, 1098142, 1102438, 1102641, 1102433, 1081884, 1098907, 1094158, 1100579, 1056777, 1072607, 1083323, 1094487, 1101906, 1090076, 1102132, 1095917, 1092907, 1089171, 1025738, 1098071, 1101302, 1097176, 1102343, 1098562, 1102347, 1099656, 1098568, 1102914, 1033918, 1102200, 1095227
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/acpi.h2
-rw-r--r--include/linux/backing-dev-defs.h1
-rw-r--r--include/linux/backing-dev.h1
-rw-r--r--include/linux/bcma/bcma.h1
-rw-r--r--include/linux/bio.h3
-rw-r--r--include/linux/blkdev.h78
-rw-r--r--include/linux/capability.h5
-rw-r--r--include/linux/cpufreq.h16
-rw-r--r--include/linux/cpuidle.h2
-rw-r--r--include/linux/devpts_fs.h34
-rw-r--r--include/linux/fs.h29
-rw-r--r--include/linux/i8042.h6
-rw-r--r--include/linux/kernel.h4
-rw-r--r--include/linux/lightnvm.h5
-rw-r--r--include/linux/memcontrol.h8
-rw-r--r--include/linux/memory-state-time.h42
-rw-r--r--include/linux/mfd/cros_ec.h15
-rw-r--r--include/linux/mlx5/qp.h5
-rw-r--r--include/linux/mm.h3
-rw-r--r--include/linux/mmc/core.h2
-rw-r--r--include/linux/mmc/host.h7
-rw-r--r--include/linux/mmzone.h2
-rw-r--r--include/linux/msi.h8
-rw-r--r--include/linux/pci_ids.h7
-rw-r--r--include/linux/perf_event.h1
-rw-r--r--include/linux/pstore.h11
-rw-r--r--include/linux/pstore_ram.h7
-rw-r--r--include/linux/sched.h34
-rw-r--r--include/linux/sched/sysctl.h5
-rw-r--r--include/linux/sched_energy.h46
-rw-r--r--include/linux/serio.h24
-rw-r--r--include/linux/slab.h12
-rw-r--r--include/linux/slub_def.h1
-rw-r--r--include/linux/thread_info.h25
-rw-r--r--include/linux/time.h26
-rw-r--r--include/linux/uaccess.h7
36 files changed, 425 insertions, 60 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 1991aea2ec4c..3672893b275e 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -920,7 +920,7 @@ static inline struct fwnode_handle *acpi_get_next_subnode(struct device *dev,
return NULL;
}
-#define ACPI_DECLARE_PROBE_ENTRY(table, name, table_id, subtable, validate, data, fn) \
+#define ACPI_DECLARE_PROBE_ENTRY(table, name, table_id, subtable, valid, data, fn) \
static const void * __acpi_table_##name[] \
__attribute__((unused)) \
= { (void *) table_id, \
diff --git a/include/linux/backing-dev-defs.h b/include/linux/backing-dev-defs.h
index 1b4d69f68c33..140c29635069 100644
--- a/include/linux/backing-dev-defs.h
+++ b/include/linux/backing-dev-defs.h
@@ -163,6 +163,7 @@ struct backing_dev_info {
wait_queue_head_t wb_waitq;
struct device *dev;
+ struct device *owner;
struct timer_list laptop_mode_wb_timer;
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index c82794f20110..89d3de3e096b 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -24,6 +24,7 @@ __printf(3, 4)
int bdi_register(struct backing_dev_info *bdi, struct device *parent,
const char *fmt, ...);
int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
+int bdi_register_owner(struct backing_dev_info *bdi, struct device *owner);
void bdi_unregister(struct backing_dev_info *bdi);
int __must_check bdi_setup_and_register(struct backing_dev_info *, char *);
diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h
index 3feb1b2d75d8..14cd6f77e284 100644
--- a/include/linux/bcma/bcma.h
+++ b/include/linux/bcma/bcma.h
@@ -156,6 +156,7 @@ struct bcma_host_ops {
#define BCMA_CORE_DEFAULT 0xFFF
#define BCMA_MAX_NR_CORES 16
+#define BCMA_CORE_SIZE 0x1000
/* Chip IDs of PCIe devices */
#define BCMA_CHIP_ID_BCM4313 0x4313
diff --git a/include/linux/bio.h b/include/linux/bio.h
index fbe47bc700bd..42e4e3cbb001 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -527,11 +527,14 @@ extern unsigned int bvec_nr_vecs(unsigned short idx);
int bio_associate_blkcg(struct bio *bio, struct cgroup_subsys_state *blkcg_css);
int bio_associate_current(struct bio *bio);
void bio_disassociate_task(struct bio *bio);
+void bio_clone_blkcg_association(struct bio *dst, struct bio *src);
#else /* CONFIG_BLK_CGROUP */
static inline int bio_associate_blkcg(struct bio *bio,
struct cgroup_subsys_state *blkcg_css) { return 0; }
static inline int bio_associate_current(struct bio *bio) { return -ENOENT; }
static inline void bio_disassociate_task(struct bio *bio) { }
+static inline void bio_clone_blkcg_association(struct bio *dst,
+ struct bio *src) { }
#endif /* CONFIG_BLK_CGROUP */
#ifdef CONFIG_HIGHMEM
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 84af69b95026..ae64a897622c 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -197,6 +197,9 @@ struct request {
/* for bidi */
struct request *next_rq;
+
+ ktime_t lat_hist_io_start;
+ int lat_hist_enabled;
};
static inline unsigned short req_get_ioprio(struct request *req)
@@ -893,7 +896,7 @@ static inline unsigned int blk_rq_get_max_sectors(struct request *rq)
{
struct request_queue *q = rq->q;
- if (unlikely(rq->cmd_type == REQ_TYPE_BLOCK_PC))
+ if (unlikely(rq->cmd_type != REQ_TYPE_FS))
return q->limits.max_hw_sectors;
if (!q->limits.chunk_sectors || (rq->cmd_flags & REQ_DISCARD))
@@ -1662,6 +1665,79 @@ extern int bdev_write_page(struct block_device *, sector_t, struct page *,
struct writeback_control *);
extern long bdev_direct_access(struct block_device *, sector_t,
void __pmem **addr, unsigned long *pfn, long size);
+
+/*
+ * X-axis for IO latency histogram support.
+ */
+static const u_int64_t latency_x_axis_us[] = {
+ 100,
+ 200,
+ 300,
+ 400,
+ 500,
+ 600,
+ 700,
+ 800,
+ 900,
+ 1000,
+ 1200,
+ 1400,
+ 1600,
+ 1800,
+ 2000,
+ 2500,
+ 3000,
+ 4000,
+ 5000,
+ 6000,
+ 7000,
+ 9000,
+ 10000
+};
+
+#define BLK_IO_LAT_HIST_DISABLE 0
+#define BLK_IO_LAT_HIST_ENABLE 1
+#define BLK_IO_LAT_HIST_ZERO 2
+
+struct io_latency_state {
+ u_int64_t latency_y_axis_read[ARRAY_SIZE(latency_x_axis_us) + 1];
+ u_int64_t latency_reads_elems;
+ u_int64_t latency_y_axis_write[ARRAY_SIZE(latency_x_axis_us) + 1];
+ u_int64_t latency_writes_elems;
+};
+
+static inline void
+blk_update_latency_hist(struct io_latency_state *s,
+ int read,
+ u_int64_t delta_us)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(latency_x_axis_us); i++) {
+ if (delta_us < (u_int64_t)latency_x_axis_us[i]) {
+ if (read)
+ s->latency_y_axis_read[i]++;
+ else
+ s->latency_y_axis_write[i]++;
+ break;
+ }
+ }
+ if (i == ARRAY_SIZE(latency_x_axis_us)) {
+ /* Overflowed the histogram */
+ if (read)
+ s->latency_y_axis_read[i]++;
+ else
+ s->latency_y_axis_write[i]++;
+ }
+ if (read)
+ s->latency_reads_elems++;
+ else
+ s->latency_writes_elems++;
+}
+
+void blk_zero_latency_hist(struct io_latency_state *s);
+ssize_t blk_latency_hist_show(struct io_latency_state *s, char *buf);
+
#else /* CONFIG_BLOCK */
struct block_device;
diff --git a/include/linux/capability.h b/include/linux/capability.h
index af9f0b9e80e6..5f8249d378a2 100644
--- a/include/linux/capability.h
+++ b/include/linux/capability.h
@@ -214,6 +214,7 @@ extern bool has_ns_capability_noaudit(struct task_struct *t,
struct user_namespace *ns, int cap);
extern bool capable(int cap);
extern bool ns_capable(struct user_namespace *ns, int cap);
+extern bool ns_capable_noaudit(struct user_namespace *ns, int cap);
#else
static inline bool has_capability(struct task_struct *t, int cap)
{
@@ -241,6 +242,10 @@ static inline bool ns_capable(struct user_namespace *ns, int cap)
{
return true;
}
+static inline bool ns_capable_noaudit(struct user_namespace *ns, int cap)
+{
+ return true;
+}
#endif /* CONFIG_MULTIUSER */
extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index af746a212e88..fe865e627528 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -160,6 +160,7 @@ u64 get_cpu_idle_time(unsigned int cpu, u64 *wall, int io_busy);
int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu);
int cpufreq_update_policy(unsigned int cpu);
bool have_governor_per_policy(void);
+bool cpufreq_driver_is_slow(void);
struct kobject *get_governor_parent_kobj(struct cpufreq_policy *policy);
#else
static inline unsigned int cpufreq_get(unsigned int cpu)
@@ -317,6 +318,14 @@ struct cpufreq_driver {
*/
#define CPUFREQ_NEED_INITIAL_FREQ_CHECK (1 << 5)
+/*
+ * Indicates that it is safe to call cpufreq_driver_target from
+ * non-interruptable context in scheduler hot paths. Drivers must
+ * opt-in to this flag, as the safe default is that they might sleep
+ * or be too slow for hot path use.
+ */
+#define CPUFREQ_DRIVER_FAST (1 << 6)
+
int cpufreq_register_driver(struct cpufreq_driver *driver_data);
int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
@@ -504,6 +513,9 @@ extern struct cpufreq_governor cpufreq_gov_conservative;
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE)
extern struct cpufreq_governor cpufreq_gov_interactive;
#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_interactive)
+#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_SCHED)
+extern struct cpufreq_governor cpufreq_gov_sched;
+#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_sched)
#endif
/*********************************************************************
@@ -633,4 +645,8 @@ unsigned int cpufreq_generic_get(unsigned int cpu);
int cpufreq_generic_init(struct cpufreq_policy *policy,
struct cpufreq_frequency_table *table,
unsigned int transition_latency);
+
+struct sched_domain;
+unsigned long cpufreq_scale_freq_capacity(struct sched_domain *sd, int cpu);
+unsigned long cpufreq_scale_max_freq_capacity(int cpu);
#endif /* _LINUX_CPUFREQ_H */
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 786ad32631a6..6eae1576499e 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -204,7 +204,7 @@ static inline int cpuidle_enter_freeze(struct cpuidle_driver *drv,
#endif
/* kernel/sched/idle.c */
-extern void sched_idle_set_state(struct cpuidle_state *idle_state);
+extern void sched_idle_set_state(struct cpuidle_state *idle_state, int index);
extern void default_idle_call(void);
#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
diff --git a/include/linux/devpts_fs.h b/include/linux/devpts_fs.h
index e0ee0b3000b2..358a4db72a27 100644
--- a/include/linux/devpts_fs.h
+++ b/include/linux/devpts_fs.h
@@ -15,38 +15,24 @@
#include <linux/errno.h>
+struct pts_fs_info;
+
#ifdef CONFIG_UNIX98_PTYS
-int devpts_new_index(struct inode *ptmx_inode);
-void devpts_kill_index(struct inode *ptmx_inode, int idx);
-void devpts_add_ref(struct inode *ptmx_inode);
-void devpts_del_ref(struct inode *ptmx_inode);
+/* Look up a pts fs info and get a ref to it */
+struct pts_fs_info *devpts_get_ref(struct inode *, struct file *);
+void devpts_put_ref(struct pts_fs_info *);
+
+int devpts_new_index(struct pts_fs_info *);
+void devpts_kill_index(struct pts_fs_info *, int);
+
/* mknod in devpts */
-struct inode *devpts_pty_new(struct inode *ptmx_inode, dev_t device, int index,
- void *priv);
+struct inode *devpts_pty_new(struct pts_fs_info *, dev_t, int, void *);
/* get private structure */
void *devpts_get_priv(struct inode *pts_inode);
/* unlink */
void devpts_pty_kill(struct inode *inode);
-#else
-
-/* Dummy stubs in the no-pty case */
-static inline int devpts_new_index(struct inode *ptmx_inode) { return -EINVAL; }
-static inline void devpts_kill_index(struct inode *ptmx_inode, int idx) { }
-static inline void devpts_add_ref(struct inode *ptmx_inode) { }
-static inline void devpts_del_ref(struct inode *ptmx_inode) { }
-static inline struct inode *devpts_pty_new(struct inode *ptmx_inode,
- dev_t device, int index, void *priv)
-{
- return ERR_PTR(-EINVAL);
-}
-static inline void *devpts_get_priv(struct inode *pts_inode)
-{
- return NULL;
-}
-static inline void devpts_pty_kill(struct inode *inode) { }
-
#endif
diff --git a/include/linux/fs.h b/include/linux/fs.h
index cc2796b2486f..94edbb64f1c6 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -717,6 +717,31 @@ enum inode_i_mutex_lock_class
I_MUTEX_PARENT2,
};
+static inline void inode_lock(struct inode *inode)
+{
+ mutex_lock(&inode->i_mutex);
+}
+
+static inline void inode_unlock(struct inode *inode)
+{
+ mutex_unlock(&inode->i_mutex);
+}
+
+static inline int inode_trylock(struct inode *inode)
+{
+ return mutex_trylock(&inode->i_mutex);
+}
+
+static inline int inode_is_locked(struct inode *inode)
+{
+ return mutex_is_locked(&inode->i_mutex);
+}
+
+static inline void inode_lock_nested(struct inode *inode, unsigned subclass)
+{
+ mutex_lock_nested(&inode->i_mutex, subclass);
+}
+
void lock_two_nondirectories(struct inode *, struct inode*);
void unlock_two_nondirectories(struct inode *, struct inode*);
@@ -3038,8 +3063,8 @@ static inline bool dir_emit_dots(struct file *file, struct dir_context *ctx)
}
static inline bool dir_relax(struct inode *inode)
{
- mutex_unlock(&inode->i_mutex);
- mutex_lock(&inode->i_mutex);
+ inode_unlock(inode);
+ inode_lock(inode);
return !IS_DEADDIR(inode);
}
diff --git a/include/linux/i8042.h b/include/linux/i8042.h
index 0f9bafa17a02..d98780ca9604 100644
--- a/include/linux/i8042.h
+++ b/include/linux/i8042.h
@@ -62,7 +62,6 @@ struct serio;
void i8042_lock_chip(void);
void i8042_unlock_chip(void);
int i8042_command(unsigned char *param, int command);
-bool i8042_check_port_owner(const struct serio *);
int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
struct serio *serio));
int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
@@ -83,11 +82,6 @@ static inline int i8042_command(unsigned char *param, int command)
return -ENODEV;
}
-static inline bool i8042_check_port_owner(const struct serio *serio)
-{
- return false;
-}
-
static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
struct serio *serio))
{
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 2955e672391d..924853d33a13 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -830,8 +830,4 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
/* OTHER_WRITABLE? Generally considered a bad idea. */ \
BUILD_BUG_ON_ZERO((perms) & 2) + \
(perms))
-
-/* To identify board information in panic logs, set this */
-extern char *mach_panic_string;
-
#endif
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 034117b3be5f..f09648d14694 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -58,8 +58,9 @@ enum {
/* Block Types */
NVM_BLK_T_FREE = 0x0,
NVM_BLK_T_BAD = 0x1,
- NVM_BLK_T_DEV = 0x2,
- NVM_BLK_T_HOST = 0x4,
+ NVM_BLK_T_GRWN_BAD = 0x2,
+ NVM_BLK_T_DEV = 0x4,
+ NVM_BLK_T_HOST = 0x8,
};
struct nvm_id_group {
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index cd0e2413c358..435fd8426b8a 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -174,6 +174,11 @@ struct mem_cgroup_thresholds {
struct mem_cgroup_threshold_ary *spare;
};
+struct mem_cgroup_id {
+ int id;
+ atomic_t ref;
+};
+
/*
* The memory controller data structure. The memory controller controls both
* page cache and RSS per cgroup. We would eventually like to provide
@@ -183,6 +188,9 @@ struct mem_cgroup_thresholds {
struct mem_cgroup {
struct cgroup_subsys_state css;
+ /* Private memcg ID. Used to ID objects that outlive the cgroup */
+ struct mem_cgroup_id id;
+
/* Accounted resources */
struct page_counter memory;
struct page_counter memsw;
diff --git a/include/linux/memory-state-time.h b/include/linux/memory-state-time.h
new file mode 100644
index 000000000000..d2212b027866
--- /dev/null
+++ b/include/linux/memory-state-time.h
@@ -0,0 +1,42 @@
+/* include/linux/memory-state-time.h
+ *
+ * Copyright (C) 2016 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/workqueue.h>
+
+#define UPDATE_MEMORY_STATE(BLOCK, VALUE) BLOCK->update_call(BLOCK, VALUE)
+
+struct memory_state_update_block;
+
+typedef void (*memory_state_update_fn_t)(struct memory_state_update_block *ub,
+ int value);
+
+/* This struct is populated when you pass it to a memory_state_register*
+ * function. The update_call function is used for an update and defined in the
+ * typedef memory_state_update_fn_t
+ */
+struct memory_state_update_block {
+ memory_state_update_fn_t update_call;
+ int id;
+};
+
+/* Register a frequency struct memory_state_update_block to provide updates to
+ * memory_state_time about frequency changes using its update_call function.
+ */
+struct memory_state_update_block *memory_state_register_frequency_source(void);
+
+/* Register a bandwidth struct memory_state_update_block to provide updates to
+ * memory_state_time about bandwidth changes using its update_call function.
+ */
+struct memory_state_update_block *memory_state_register_bandwidth_source(void);
diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h
index 494682ce4bf3..3ab3cede28ea 100644
--- a/include/linux/mfd/cros_ec.h
+++ b/include/linux/mfd/cros_ec.h
@@ -224,6 +224,21 @@ int cros_ec_cmd_xfer(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg);
/**
+ * cros_ec_cmd_xfer_status - Send a command to the ChromeOS EC
+ *
+ * This function is identical to cros_ec_cmd_xfer, except it returns success
+ * status only if both the command was transmitted successfully and the EC
+ * replied with success status. It's not necessary to check msg->result when
+ * using this function.
+ *
+ * @ec_dev: EC device
+ * @msg: Message to write
+ * @return: Num. of bytes transferred on success, <0 on failure
+ */
+int cros_ec_cmd_xfer_status(struct cros_ec_device *ec_dev,
+ struct cros_ec_command *msg);
+
+/**
* cros_ec_remove - Remove a ChromeOS EC
*
* Call this to deregister a ChromeOS EC, then clean up any private data.
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h
index f079fb1a31f7..a8786d27ab81 100644
--- a/include/linux/mlx5/qp.h
+++ b/include/linux/mlx5/qp.h
@@ -160,6 +160,7 @@ enum {
enum {
MLX5_FENCE_MODE_NONE = 0 << 5,
MLX5_FENCE_MODE_INITIATOR_SMALL = 1 << 5,
+ MLX5_FENCE_MODE_FENCE = 2 << 5,
MLX5_FENCE_MODE_STRONG_ORDERING = 3 << 5,
MLX5_FENCE_MODE_SMALL_AND_FENCE = 4 << 5,
};
@@ -534,9 +535,9 @@ struct mlx5_destroy_qp_mbox_out {
struct mlx5_modify_qp_mbox_in {
struct mlx5_inbox_hdr hdr;
__be32 qpn;
- u8 rsvd1[4];
- __be32 optparam;
u8 rsvd0[4];
+ __be32 optparam;
+ u8 rsvd1[4];
struct mlx5_qp_context ctx;
};
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0c4178e5b656..97b11c9fd48a 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1324,8 +1324,7 @@ static inline int stack_guard_page_end(struct vm_area_struct *vma,
!vma_growsup(vma->vm_next, addr);
}
-extern struct task_struct *task_of_stack(struct task_struct *task,
- struct vm_area_struct *vma, bool in_group);
+int vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t);
extern unsigned long move_page_tables(struct vm_area_struct *vma,
unsigned long old_addr, struct vm_area_struct *new_vma,
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h
index 89efaa67cc59..a5a3bb286361 100644
--- a/include/linux/mmc/core.h
+++ b/include/linux/mmc/core.h
@@ -110,6 +110,8 @@ struct mmc_request {
struct mmc_host *host;
struct mmc_cmdq_req *cmdq_req;
struct request *req;
+ ktime_t io_start;
+ int lat_hist_enabled;
};
struct mmc_bus_ops {
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 5cfed430b8d4..276dbf19805b 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -17,6 +17,7 @@
#include <linux/device.h>
#include <linux/devfreq.h>
#include <linux/fault-inject.h>
+#include <linux/blkdev.h>
#include <linux/mmc/core.h>
#include <linux/mmc/card.h>
@@ -553,7 +554,6 @@ struct mmc_host {
int num_funcs;
} embedded_sdio_data;
#endif
-
/*
* Set to 1 to just stop the SDCLK to the card without
* actually disabling the clock from it's source.
@@ -585,6 +585,11 @@ struct mmc_host {
*/
void *cmdq_private;
struct mmc_request *err_mrq;
+#ifdef CONFIG_BLOCK
+ int latency_hist_enabled;
+ struct io_latency_state io_lat_s;
+#endif
+
unsigned long private[0] ____cacheline_aligned;
};
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index ad4c3f186f61..ddb3b927de39 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -75,10 +75,12 @@ extern int *get_migratetype_fallbacks(int mtype);
bool is_cma_pageblock(struct page *page);
# define is_migrate_cma(migratetype) unlikely((migratetype) == MIGRATE_CMA)
# define get_cma_migrate_type() MIGRATE_CMA
+# define is_migrate_cma_page(_page) (get_pageblock_migratetype(_page) == MIGRATE_CMA)
#else
# define is_cma_pageblock(page) false
# define is_migrate_cma(migratetype) false
# define get_cma_migrate_type() MIGRATE_MOVABLE
+# define is_migrate_cma_page(_page) false
#endif
#define for_each_migratetype_order(order, type) \
diff --git a/include/linux/msi.h b/include/linux/msi.h
index f71a25e5fd25..f0f43ec45ee7 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -254,12 +254,12 @@ enum {
* callbacks.
*/
MSI_FLAG_USE_DEF_CHIP_OPS = (1 << 1),
- /* Build identity map between hwirq and irq */
- MSI_FLAG_IDENTITY_MAP = (1 << 2),
/* Support multiple PCI MSI interrupts */
- MSI_FLAG_MULTI_PCI_MSI = (1 << 3),
+ MSI_FLAG_MULTI_PCI_MSI = (1 << 2),
/* Support PCI MSIX interrupts */
- MSI_FLAG_PCI_MSIX = (1 << 4),
+ MSI_FLAG_PCI_MSIX = (1 << 3),
+ /* Needs early activate, required for PCI */
+ MSI_FLAG_ACTIVATE_EARLY = (1 << 4),
};
int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index d9ba49cedc5d..37f05cb1dfd6 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2495,6 +2495,13 @@
#define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x1700
#define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff
+#define PCI_VENDOR_ID_NETRONOME 0x19ee
+#define PCI_DEVICE_ID_NETRONOME_NFP3200 0x3200
+#define PCI_DEVICE_ID_NETRONOME_NFP3240 0x3240
+#define PCI_DEVICE_ID_NETRONOME_NFP4000 0x4000
+#define PCI_DEVICE_ID_NETRONOME_NFP6000 0x6000
+#define PCI_DEVICE_ID_NETRONOME_NFP6000_VF 0x6003
+
#define PCI_VENDOR_ID_QMI 0x1a32
#define PCI_VENDOR_ID_AZWAVE 0x1a3b
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 12d3415a3ef5..490ff31d1d88 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -121,6 +121,7 @@ struct hw_perf_event {
struct { /* intel_cqm */
int cqm_state;
u32 cqm_rmid;
+ int is_group_event;
struct list_head cqm_events_entry;
struct list_head cqm_groups_entry;
struct list_head cqm_group_entry;
diff --git a/include/linux/pstore.h b/include/linux/pstore.h
index 831479f8df8f..5cae2c6c90ad 100644
--- a/include/linux/pstore.h
+++ b/include/linux/pstore.h
@@ -22,12 +22,13 @@
#ifndef _LINUX_PSTORE_H
#define _LINUX_PSTORE_H
-#include <linux/time.h>
+#include <linux/compiler.h>
+#include <linux/errno.h>
#include <linux/kmsg_dump.h>
#include <linux/mutex.h>
-#include <linux/types.h>
#include <linux/spinlock.h>
-#include <linux/errno.h>
+#include <linux/time.h>
+#include <linux/types.h>
/* types */
enum pstore_type_id {
@@ -67,6 +68,10 @@ struct pstore_info {
enum kmsg_dump_reason reason, u64 *id,
unsigned int part, const char *buf, bool compressed,
size_t size, struct pstore_info *psi);
+ int (*write_buf_user)(enum pstore_type_id type,
+ enum kmsg_dump_reason reason, u64 *id,
+ unsigned int part, const char __user *buf,
+ bool compressed, size_t size, struct pstore_info *psi);
int (*erase)(enum pstore_type_id type, u64 id,
int count, struct timespec time,
struct pstore_info *psi);
diff --git a/include/linux/pstore_ram.h b/include/linux/pstore_ram.h
index 712757f320a4..45ac5a0d29ee 100644
--- a/include/linux/pstore_ram.h
+++ b/include/linux/pstore_ram.h
@@ -17,11 +17,12 @@
#ifndef __LINUX_PSTORE_RAM_H__
#define __LINUX_PSTORE_RAM_H__
+#include <linux/compiler.h>
#include <linux/device.h>
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/types.h>
-#include <linux/init.h>
struct persistent_ram_buffer;
struct rs_control;
@@ -59,7 +60,9 @@ void persistent_ram_free(struct persistent_ram_zone *prz);
void persistent_ram_zap(struct persistent_ram_zone *prz);
int persistent_ram_write(struct persistent_ram_zone *prz, const void *s,
- unsigned int count);
+ unsigned int count);
+int persistent_ram_write_user(struct persistent_ram_zone *prz,
+ const void __user *s, unsigned int count);
void persistent_ram_save_old(struct persistent_ram_zone *prz);
size_t persistent_ram_old_size(struct persistent_ram_zone *prz);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 9c3be2d56ac5..36007d90a678 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -173,6 +173,9 @@ extern bool single_task_running(void);
extern unsigned long nr_iowait(void);
extern unsigned long nr_iowait_cpu(int cpu);
extern void get_iowait_load(unsigned long *nr_waiters, unsigned long *load);
+#ifdef CONFIG_CPU_QUIET
+extern u64 nr_running_integral(unsigned int cpu);
+#endif
extern void sched_update_nr_prod(int cpu, long delta, bool inc);
extern void sched_get_nr_running_avg(int *avg, int *iowait_avg, int *big_avg);
@@ -1007,6 +1010,14 @@ enum cpu_idle_type {
#define SCHED_CAPACITY_SHIFT 10
#define SCHED_CAPACITY_SCALE (1L << SCHED_CAPACITY_SHIFT)
+struct sched_capacity_reqs {
+ unsigned long cfs;
+ unsigned long rt;
+ unsigned long dl;
+
+ unsigned long total;
+};
+
/*
* Wake-queues are lists of tasks with a pending wakeup, whose
* callers have already marked the task as woken internally,
@@ -1069,6 +1080,7 @@ extern void wake_up_q(struct wake_q_head *head);
#define SD_PREFER_SIBLING 0x1000 /* Prefer to place tasks in a sibling domain */
#define SD_OVERLAP 0x2000 /* sched_domains of this level overlap */
#define SD_NUMA 0x4000 /* cross-node balancing */
+#define SD_SHARE_CAP_STATES 0x8000 /* Domain members share capacity state */
#ifdef CONFIG_SCHED_SMT
static inline int cpu_smt_flags(void)
@@ -1101,6 +1113,24 @@ struct sched_domain_attr {
extern int sched_domain_level_max;
+struct capacity_state {
+ unsigned long cap; /* compute capacity */
+ unsigned long power; /* power consumption at this compute capacity */
+};
+
+struct idle_state {
+ unsigned long power; /* power consumption in this idle state */
+};
+
+struct sched_group_energy {
+ unsigned int nr_idle_states; /* number of idle states */
+ struct idle_state *idle_states; /* ptr to idle state array */
+ unsigned int nr_cap_states; /* number of capacity states */
+ struct capacity_state *cap_states; /* ptr to capacity state array */
+};
+
+unsigned long capacity_curr_of(int cpu);
+
struct sched_group;
struct sched_domain {
@@ -1199,6 +1229,8 @@ bool cpus_share_cache(int this_cpu, int that_cpu);
typedef const struct cpumask *(*sched_domain_mask_f)(int cpu);
typedef int (*sched_domain_flags_f)(void);
+typedef
+const struct sched_group_energy * const(*sched_domain_energy_f)(int cpu);
#define SDTL_OVERLAP 0x01
@@ -1211,6 +1243,7 @@ struct sd_data {
struct sched_domain_topology_level {
sched_domain_mask_f mask;
sched_domain_flags_f sd_flags;
+ sched_domain_energy_f energy;
int flags;
int numa_level;
struct sd_data data;
@@ -1362,6 +1395,7 @@ struct ravg {
u32 sum_history[RAVG_HIST_SIZE_MAX];
u32 *curr_window_cpu, *prev_window_cpu;
u32 curr_window, prev_window;
+ u64 curr_burst, avg_burst, avg_sleep_time;
u16 active_windows;
u32 pred_demand;
u8 busy_buckets[NUM_BUSY_BUCKETS];
diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 5d0899df64ff..a1bf22116cce 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -40,6 +40,10 @@ extern unsigned int sysctl_sched_min_granularity;
extern unsigned int sysctl_sched_wakeup_granularity;
extern unsigned int sysctl_sched_child_runs_first;
extern unsigned int sysctl_sched_wake_to_idle;
+extern unsigned int sysctl_sched_is_big_little;
+extern unsigned int sysctl_sched_sync_hint_enable;
+extern unsigned int sysctl_sched_initial_task_util;
+extern unsigned int sysctl_sched_cstate_aware;
#ifdef CONFIG_SCHED_HMP
extern int sysctl_sched_freq_inc_notify;
@@ -68,6 +72,7 @@ extern unsigned int sysctl_sched_freq_aggregate;
extern unsigned int sysctl_sched_enable_thread_grouping;
extern unsigned int sysctl_sched_freq_aggregate_threshold_pct;
extern unsigned int sysctl_sched_prefer_sync_wakee_to_waker;
+extern unsigned int sysctl_sched_short_burst;
#else /* CONFIG_SCHED_HMP */
diff --git a/include/linux/sched_energy.h b/include/linux/sched_energy.h
new file mode 100644
index 000000000000..a1057e481eff
--- /dev/null
+++ b/include/linux/sched_energy.h
@@ -0,0 +1,46 @@
+#ifndef _LINUX_SCHED_ENERGY_H
+#define _LINUX_SCHED_ENERGY_H
+
+#include <linux/sched.h>
+#include <linux/slab.h>
+
+/*
+ * There doesn't seem to be an NR_CPUS style max number of sched domain
+ * levels so here's an arbitrary constant one for the moment.
+ *
+ * The levels alluded to here correspond to entries in struct
+ * sched_domain_topology_level that are meant to be populated by arch
+ * specific code (topology.c).
+ */
+#define NR_SD_LEVELS 8
+
+#define SD_LEVEL0 0
+#define SD_LEVEL1 1
+#define SD_LEVEL2 2
+#define SD_LEVEL3 3
+#define SD_LEVEL4 4
+#define SD_LEVEL5 5
+#define SD_LEVEL6 6
+#define SD_LEVEL7 7
+
+/*
+ * Convenience macro for iterating through said sd levels.
+ */
+#define for_each_possible_sd_level(level) \
+ for (level = 0; level < NR_SD_LEVELS; level++)
+
+extern bool sched_energy_aware;
+
+#ifdef CONFIG_SMP
+
+extern struct sched_group_energy *sge_array[NR_CPUS][NR_SD_LEVELS];
+
+void init_sched_energy_costs(void);
+
+#else
+
+#define init_sched_energy_costs() do { } while (0)
+
+#endif /* CONFIG_SMP */
+
+#endif
diff --git a/include/linux/serio.h b/include/linux/serio.h
index df4ab5de1586..c733cff44e18 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -31,7 +31,8 @@ struct serio {
struct serio_device_id id;
- spinlock_t lock; /* protects critical sections from port's interrupt handler */
+ /* Protects critical sections from port's interrupt handler */
+ spinlock_t lock;
int (*write)(struct serio *, unsigned char);
int (*open)(struct serio *);
@@ -40,16 +41,29 @@ struct serio {
void (*stop)(struct serio *);
struct serio *parent;
- struct list_head child_node; /* Entry in parent->children list */
+ /* Entry in parent->children list */
+ struct list_head child_node;
struct list_head children;
- unsigned int depth; /* level of nesting in serio hierarchy */
+ /* Level of nesting in serio hierarchy */
+ unsigned int depth;
- struct serio_driver *drv; /* accessed from interrupt, must be protected by serio->lock and serio->sem */
- struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
+ /*
+ * serio->drv is accessed from interrupt handlers; when modifying
+ * caller should acquire serio->drv_mutex and serio->lock.
+ */
+ struct serio_driver *drv;
+ /* Protects serio->drv so attributes can pin current driver */
+ struct mutex drv_mutex;
struct device dev;
struct list_head node;
+
+ /*
+ * For use by PS/2 layer when several ports share hardware and
+ * may get indigestion when exposed to concurrent access (i8042).
+ */
+ struct mutex *ps2_cmd_mutex;
};
#define to_serio_port(d) container_of(d, struct serio, dev)
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 2037a861e367..4ef384b172e0 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -144,6 +144,18 @@ void kfree(const void *);
void kzfree(const void *);
size_t ksize(const void *);
+#ifdef CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR
+const char *__check_heap_object(const void *ptr, unsigned long n,
+ struct page *page);
+#else
+static inline const char *__check_heap_object(const void *ptr,
+ unsigned long n,
+ struct page *page)
+{
+ return NULL;
+}
+#endif
+
/*
* Some archs want to perform DMA into kmalloc caches and need a guaranteed
* alignment larger than the alignment of a 64-bit integer.
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
index 33885118523c..f4e857e920cd 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -81,6 +81,7 @@ struct kmem_cache {
int reserved; /* Reserved bytes at the end of slabs */
const char *name; /* Name (only for display!) */
struct list_head list; /* List of slab caches */
+ int red_left_pad; /* Left redzone padding size */
#ifdef CONFIG_SYSFS
struct kobject kobj; /* For sysfs */
#endif
diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
index ff307b548ed3..4cf89517783a 100644
--- a/include/linux/thread_info.h
+++ b/include/linux/thread_info.h
@@ -145,6 +145,31 @@ static inline bool test_and_clear_restore_sigmask(void)
#error "no set_restore_sigmask() provided and default one won't work"
#endif
+#ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES
+static inline int arch_within_stack_frames(const void * const stack,
+ const void * const stackend,
+ const void *obj, unsigned long len)
+{
+ return 0;
+}
+#endif
+
+#ifdef CONFIG_HARDENED_USERCOPY
+extern void __check_object_size(const void *ptr, unsigned long n,
+ bool to_user);
+
+static __always_inline void check_object_size(const void *ptr, unsigned long n,
+ bool to_user)
+{
+ if (!__builtin_constant_p(n))
+ __check_object_size(ptr, n, to_user);
+}
+#else
+static inline void check_object_size(const void *ptr, unsigned long n,
+ bool to_user)
+{ }
+#endif /* CONFIG_HARDENED_USERCOPY */
+
#endif /* __KERNEL__ */
#endif /* _LINUX_THREAD_INFO_H */
diff --git a/include/linux/time.h b/include/linux/time.h
index beebe3a02d43..297f09f23896 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -125,6 +125,32 @@ static inline bool timeval_valid(const struct timeval *tv)
extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
+/*
+ * Validates if a timespec/timeval used to inject a time offset is valid.
+ * Offsets can be postive or negative. The value of the timeval/timespec
+ * is the sum of its fields, but *NOTE*: the field tv_usec/tv_nsec must
+ * always be non-negative.
+ */
+static inline bool timeval_inject_offset_valid(const struct timeval *tv)
+{
+ /* We don't check the tv_sec as it can be positive or negative */
+
+ /* Can't have more microseconds then a second */
+ if (tv->tv_usec < 0 || tv->tv_usec >= USEC_PER_SEC)
+ return false;
+ return true;
+}
+
+static inline bool timespec_inject_offset_valid(const struct timespec *ts)
+{
+ /* We don't check the tv_sec as it can be positive or negative */
+
+ /* Can't have more nanoseconds then a second */
+ if (ts->tv_nsec < 0 || ts->tv_nsec >= NSEC_PER_SEC)
+ return false;
+ return true;
+}
+
#define CURRENT_TIME (current_kernel_time())
#define CURRENT_TIME_SEC ((struct timespec) { get_seconds(), 0 })
diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
index 558129af828a..f30c187ed785 100644
--- a/include/linux/uaccess.h
+++ b/include/linux/uaccess.h
@@ -111,4 +111,11 @@ extern long strncpy_from_unsafe(char *dst, const void *unsafe_addr, long count);
#define probe_kernel_address(addr, retval) \
probe_kernel_read(&retval, addr, sizeof(retval))
+#ifndef user_access_begin
+#define user_access_begin() do { } while (0)
+#define user_access_end() do { } while (0)
+#define unsafe_get_user(x, ptr, err) do { if (unlikely(__get_user(x, ptr))) goto err; } while (0)
+#define unsafe_put_user(x, ptr, err) do { if (unlikely(__put_user(x, ptr))) goto err; } while (0)
+#endif
+
#endif /* __LINUX_UACCESS_H__ */