mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
12248 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
6b5a99167a |
bdi: wake up concurrent wb_shutdown() callers.
commit 8236b0ae31c837d2b3a2565c5f8d77f637e824cc upstream. syzbot is reporting hung tasks at wait_on_bit(WB_shutting_down) in wb_shutdown() [1]. This seems to be because commit 5318ce7d46866e1d ("bdi: Shutdown writeback on all cgwbs in cgwb_bdi_destroy()") forgot to call wake_up_bit(WB_shutting_down) after clear_bit(WB_shutting_down). Introduce a helper function clear_and_wake_up_bit() and use it, in order to avoid similar errors in future. [1] https://syzkaller.appspot.com/bug?id=b297474817af98d5796bc544e1bb806fc3da0e5e Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Reported-by: syzbot <syzbot+c0cf869505e03bdf1a24@syzkaller.appspotmail.com> Fixes: 5318ce7d46866e1d ("bdi: Shutdown writeback on all cgwbs in cgwb_bdi_destroy()") Cc: Tejun Heo <tj@kernel.org> Reviewed-by: Jan Kara <jack@suse.cz> Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
17ffa29c35 |
memcg: fix per_node_info cleanup
commit 4eaf431f6f71bbed40a4c733ffe93a7e8cedf9d9 upstream. syzbot has triggered a NULL ptr dereference when allocation fault injection enforces a failure and alloc_mem_cgroup_per_node_info initializes memcg->nodeinfo only half way through. But __mem_cgroup_free still tries to free all per-node data and dereferences pn->lruvec_stat_cpu unconditioanlly even if the specific per-node data hasn't been initialized. The bug is quite unlikely to hit because small allocations do not fail and we would need quite some numa nodes to make struct mem_cgroup_per_node large enough to cross the costly order. Link: http://lkml.kernel.org/r/20180406100906.17790-1-mhocko@kernel.org Reported-by: syzbot+8a5de3cce7cdc70e9ebe@syzkaller.appspotmail.com Fixes: 00f3ca2c2d66 ("mm: memcontrol: per-lruvec stats infrastructure") Signed-off-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
18f7e70805 | Merge "ion: Consider ion pool pages as indirectly reclaimable" | ||
|
bf2eb2b41e |
mm/Kconfig: Enable MEMORY_HOTPLUG for arm64
Add arm64 to the list of architectures which supports memory hotplug. Change-Id: Iefeb8294bf06eaebb17a3b3aa8b33bb3b7133099 Signed-off-by: Arun KS <arunks@codeaurora.org> Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org> Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org> |
||
|
7b5c388dfc |
mm: treat indirectly reclaimable memory as free in overcommit logic
Indirectly reclaimable memory can consume a significant part of total memory and it's actually reclaimable (it will be released under actual memory pressure). So, the overcommit logic should treat it as free. Otherwise, it's possible to cause random system-wide memory allocation failures by consuming a significant amount of memory by indirectly reclaimable memory, e.g. dentry external names. If overcommit policy GUESS is used, it might be used for denial of service attack under some conditions. The following program illustrates the approach. It causes the kernel to allocate an unreclaimable kmalloc-256 chunk for each stat() call, so that at some point the overcommit logic may start blocking large allocation system-wide. int main() { char buf[256]; unsigned long i; struct stat statbuf; buf[0] = '/'; for (i = 1; i < sizeof(buf); i++) buf[i] = '_'; for (i = 0; 1; i++) { sprintf(&buf[248], "%8lu", i); stat(buf, &statbuf); } return 0; } This patch in combination with related indirectly reclaimable memory patches closes this issue. Link: http://lkml.kernel.org/r/20180313130041.8078-1-guro@fb.com Signed-off-by: Roman Gushchin <guro@fb.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Michal Hocko <mhocko@suse.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Git-Commit: d79f7aa496fc94d763f67b833a1f36f4c171176f Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git Change-Id: I6daf49a77a687446135c5d21828932e28a79fc19 Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org> |
||
|
d680316d79 |
mm: treat indirectly reclaimable memory as available in MemAvailable
Adjust /proc/meminfo MemAvailable calculation by adding the amount of indirectly reclaimable memory (rounded to the PAGE_SIZE). Link: http://lkml.kernel.org/r/20180305133743.12746-4-guro@fb.com Signed-off-by: Roman Gushchin <guro@fb.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Michal Hocko <mhocko@suse.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Mel Gorman <mgorman@techsingularity.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Git-Commit: 034ebf65c3c21d85b963d39f992258a64a85e3a9 Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git Change-Id: I32547afd6ffa8c7979aa1d5978a7b9aef84aff4a Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org> |
||
|
fd82bbcb2b |
mm: introduce NR_INDIRECTLY_RECLAIMABLE_BYTES
Patch series "indirectly reclaimable memory", v2. This patchset introduces the concept of indirectly reclaimable memory and applies it to fix the issue of when a big number of dentries with external names can significantly affect the MemAvailable value. This patch (of 3): Introduce a concept of indirectly reclaimable memory and adds the corresponding memory counter and /proc/vmstat item. Indirectly reclaimable memory is any sort of memory, used by the kernel (except of reclaimable slabs), which is actually reclaimable, i.e. will be released under memory pressure. The counter is in bytes, as it's not always possible to count such objects in pages. The name contains BYTES by analogy to NR_KERNEL_STACK_KB. Link: http://lkml.kernel.org/r/20180305133743.12746-2-guro@fb.com Signed-off-by: Roman Gushchin <guro@fb.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Michal Hocko <mhocko@suse.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Mel Gorman <mgorman@techsingularity.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Git-Commit: eb59254608bc1d42c4c6afdcdce9c0d3ce02b318 Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git Change-Id: I6ea0d449210973c92f57f3b7f5173e1ec85c81f8 Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org> |
||
|
6bc6f32676 | Merge "mm: ratelimit swap write errors" | ||
|
36917c9f55 | Merge "mm: compaction: fix the page state calculation in too_many_isolated" | ||
|
e45ac714d8 | Merge "mm: allow page poisoning to be enabled by default." | ||
|
86a0648a5b | Merge "mm: vmscan: do not pass reclaimed slab to vmpressure" | ||
|
231b240406 |
mm: cma: sleep between retries in cma_alloc
Port support from 3.10 for retrying cma allocations to 3.18 to help resolve cma allocation failures. It was observed that CMA pages are sometimes getting pinned down by BG processes scheduled out in their exit path. Since BG processes have lower priority they end up getting less time slice by scheduler there by consuming more time to free up CMA pages. Also when a process is being forked copy_one_pte may create copy-on-write mappings, when this is done the page _count and page _mapcount are each incremented sequentially. If the process is context switched out after incrementing the _count but before incrementing the _mapcount then the page will appear temporarily pinned. So instead of failing to allocate and directly returning an error on the CMA allocation path we do 2 retries, with sleeps, to give the system an opportunity to unpin any pinned pages. Change-Id: I022a9341f8ee44f281c7cb34769695843e97d684 Signed-off-by: Susheel Khiani <skhiani@codeaurora.org> Signed-off-by: Liam Mark <lmark@codeaurora.org> Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
6093c334a7 |
mm: compaction: fix the page state calculation in too_many_isolated
Commit "mm: vmscan: fix the page state calculation in too_many_isolated" fixed an issue where a number of tasks were blocked in reclaim path for seconds, because of vmstat_diff not being synced in time. A similar problem can happen in isolate_migratepages_block, where similar calculation is performed. This patch fixes that. Change-Id: Ie74f108ef770da688017b515fe37faea6f384589 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
3a2fd6fb8d |
mm: vmstat: add pageoutclean
vmstat events currently count pgpgout, but that includes only the writebacks, and not the reclaim of clean pages. Add an event to count clean page evictions. This is helpful to evaluate page thrashing cases. Change-Id: Icfb797877a544a58c289074bdc290dfbc1384514 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
c7cead53fc |
mm, oom: make dump_tasks public
Allow other functions to dump the list of tasks. Useful for when debugging memory leaks. Change-Id: I76c33a118a9765b4c2276e8c76de36399c78dbf6 Signed-off-by: Liam Mark <lmark@codeaurora.org> Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
c89418ee18 |
This is the 4.14.40 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlryqJwACgkQONu9yGCS aT4TlxAApPkv3brRm/VkYEQKp+JXU9Yz9MvX+UQ8tmqmwAE2HxmKZTScMNGD+dvu tgoZEdS7i23G52Qjn1RFn1Zw4HKgW3ZJMAvrRJJJVOlNnccRrvx9wUFOiqYeUFFC NCgiKckBPbFZvLe7IMWVz1KyrotogXEWP12scuV4CG792hxzZRa1unBfrIvUi9p4 fp4IcyYucTcmQqzW4EPmOeE+iahJGTTLngyqL5uwZVegzxwQzVB+Kpc05pU0PpIo vgThcBNWaxHD8cyXFVISWoHjdMvUjvkNuDWJPUACT8Tpo4Q/r2ToPEnoEJ2meVos jlzBDQ0IwXb7L2GkTlvRLBlCCFcYizTN59LMiaApVSW1bwXS+eJef+zWlHCvmaRs /g5SU4OQUnv58j4nr/Uumjx79u4rcpVyINbuvzpKi85wInrrswVFQ5Eo+nac1r7j 3ttifyhKfxrTHCbPULX5nNYF98tP38iz4I+M8Q5jjAGB71vJ5Lrvfl5nf6K/VamS jy1R0rLo/DCkb7bym49nI+WUBs9M8+TfAEtRAB9BklPBvdA8ktrkuD/OVcJ4pWej GKmd6yi6gfuPBHDJxQyqb8Ll8IUVDTld0dMg+WZa0GsJpko39K8XuqgEwwBewlUJ yCFYrm6F939Ra2WWvUEpPjChYeoG90vaaDZGuvPB7EOeFWJjcEQ= =IWvJ -----END PGP SIGNATURE----- Merge 4.14.40 into android-4.14 Changes in 4.14.40 geneve: update skb dst pmtu on tx path net: don't call update_pmtu unconditionally percpu: include linux/sched.h for cond_resched() crypto: talitos - fix IPsec cipher in length ACPI / button: make module loadable when booted in non-ACPI mode USB: serial: option: Add support for Quectel EP06 ALSA: hda - Fix incorrect usage of IS_REACHABLE() ALSA: pcm: Check PCM state at xfern compat ioctl ALSA: seq: Fix races at MIDI encoding in snd_virmidi_output_trigger() ALSA: dice: fix kernel NULL pointer dereference due to invalid calculation for array index ALSA: aloop: Mark paused device as inactive ALSA: aloop: Add missing cable lock to ctl API callbacks tracepoint: Do not warn on ENOMEM scsi: target: Fix fortify_panic kernel exception Input: leds - fix out of bound access Input: atmel_mxt_ts - add touchpad button mapping for Samsung Chromebook Pro rtlwifi: btcoex: Add power_on_setting routine rtlwifi: cleanup 8723be ant_sel definition xfs: prevent creating negative-sized file via INSERT_RANGE RDMA/cxgb4: release hw resources on device removal RDMA/ucma: Allow resolving address w/o specifying source address RDMA/mlx5: Fix multiple NULL-ptr deref errors in rereg_mr flow RDMA/mlx5: Protect from shift operand overflow NET: usb: qmi_wwan: add support for ublox R410M PID 0x90b2 IB/mlx5: Use unlimited rate when static rate is not supported IB/hfi1: Fix handling of FECN marked multicast packet IB/hfi1: Fix loss of BECN with AHG IB/hfi1: Fix NULL pointer dereference when invalid num_vls is used iw_cxgb4: Atomically flush per QP HW CQEs drm/vmwgfx: Fix a buffer object leak drm/bridge: vga-dac: Fix edid memory leak test_firmware: fix setting old custom fw path back on exit, second try errseq: Always report a writeback error once USB: serial: visor: handle potential invalid device configuration usb: dwc3: gadget: Fix list_del corruption in dwc3_ep_dequeue USB: Accept bulk endpoints with 1024-byte maxpacket USB: serial: option: reimplement interface masking USB: serial: option: adding support for ublox R410M usb: musb: host: fix potential NULL pointer dereference usb: musb: trace: fix NULL pointer dereference in musb_g_tx() platform/x86: asus-wireless: Fix NULL pointer dereference irqchip/qcom: Fix check for spurious interrupts tracing: Fix bad use of igrab in trace_uprobe.c Linux 4.14.40 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
e9caf1e1d5 |
percpu: include linux/sched.h for cond_resched()
commit 71546d100422bcc2c543dadeb9328728997cd23a upstream. microblaze build broke due to missing declaration of the cond_resched() invocation added recently. Let's include linux/sched.h explicitly. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: kbuild test robot <fengguang.wu@intel.com> Cc: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
392e2f537f |
mm: vmscan: do not pass reclaimed slab to vmpressure
During global reclaim, the nr_reclaimed passed to vmpressure includes the pages reclaimed from slab. But the corresponding scanned slab pages is not passed. There is an impact to the vmpressure values because of this. While moving from kernel version 3.18 to 4.4, a difference is seen in the vmpressure values for the same workload resulting in a different behaviour of the vmpressure consumer. One such case is of a vmpressure based lowmemorykiller. It is observed that the vmpressure events are received late and less in number resulting in tasks not being killed at the right time. The following numbers show the impact on reclaim activity due to the change in behaviour of lowmemorykiller on a 4GB device. The test launches a number of apps in sequence and repeats it multiple times. v4.4 v3.18 pgpgin 163016456 145617236 pgpgout 4366220 4188004 workingset_refault 29857868 26781854 workingset_activate 6293946 5634625 pswpin 1327601 1133912 pswpout 3593842 3229602 pgalloc_dma 99520618 94402970 pgalloc_normal 104046854 98124798 pgfree 203772640 192600737 pgmajfault 2126962 1851836 pgsteal_kswapd_dma 19732899 18039462 pgsteal_kswapd_normal 19945336 17977706 pgsteal_direct_dma 206757 131376 pgsteal_direct_normal 236783 138247 pageoutrun 116622 108370 allocstall 7220 4684 compact_stall 931 856 This is a regression introduced by commit 6b4f7799c6a5 ("mm: vmscan: invoke slab shrinkers from shrink_zone()"). So do not consider reclaimed slab pages for vmpressure calculation. The reclaimed pages from slab can be excluded because the freeing of a page by slab shrinking depends on each slab's object population, making the cost model (i.e. scan:free) different from that of LRU. Also, not every shrinker accounts the pages it reclaims. But ideally the pages reclaimed from slab should be passed to vmpressure, otherwise higher vmpressure levels can be triggered even when there is a reclaim progress. But accounting only the reclaimed slab pages without the scanned, and adding something which does not fit into the cost model just adds noise to the vmpressure values. Fixes: 6b4f7799c6a5 ("mm: vmscan: invoke slab shrinkers from shrink_zone()") Acked-by: Minchan Kim <minchan@kernel.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Michal Hocko <mhocko@suse.com> Cc: Rik van Riel <riel@redhat.com> Cc: Vladimir Davydov <vdavydov.dev@gmail.com> Cc: Anton Vorontsov <anton.vorontsov@linaro.org> Cc: Shiraz Hashim <shashim@codeaurora.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Git-commit: 97a9668a428e9651a4aa3ff5d4e7e60024be2d87 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git Change-Id: If46b1cee6fd9723bebd87d76e0bb8451de05a9c1 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Patrick Daly <pdaly@codeaurora.org> Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
b521331577 |
mm: memory: reduce fault_around_bytes
mapping multiple pages on a fault result in page_check_references hitting more number of referenced inactive pages and this results in increased pressure on reclaim. Reduce it to the lowest possible value. Reduced kswapd wakeups are observed with this change. Change-Id: I03c6cac9f28fa328abab7b40f5f01144084a147c Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Patrick Daly <pdaly@codeaurora.org> Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
2f44069aee |
Merge remote-tracking branch 'remotes/origin/tmp-3f8d191' into msm-4.14
* remotes/origin/tmp-3f8d191: Linux 4.14.38 ACPI / video: Only default only_lcd to true on Win8-ready _desktops_ s390/uprobes: implement arch_uretprobe_is_alive() s390/dasd: fix IO error for newly defined devices s390/cio: update chpid descriptor after resource accessibility event tracing: Fix missing tab for hwlat_detector print format block/swim: Fix IO error at end of medium block/swim: Fix array bounds check block/swim: Select appropriate drive on device open block/swim: Rename macros to avoid inconsistent inverted logic block/swim: Remove extra put_disk() call from error path block/swim: Don't log an error message for an invalid ioctl block/swim: Check drive type m68k/mac: Don't remap SWIM MMIO region fsnotify: Fix fsnotify_mark_connector race cdrom: information leak in cdrom_ioctl_media_changed() scsi: mptsas: Disable WRITE SAME commoncap: Handle memory allocation failure. Revert "mm/hmm: fix header file if/else/endif maze" arm64: dts: rockchip: remove vdd_log from rk3399-puma microblaze: Setup dependencies for ASM optimized lib functions s390: correct module section names for expoline code revert s390: correct nospec auto detection init order s390: add sysfs attributes for spectre s390: report spectre mitigation via syslog s390: add automatic detection of the spectre defense s390: move nobp parameter functions to nospec-branch.c s390/entry.S: fix spurious zeroing of r0 s390: do not bypass BPENTER for interrupt system calls s390: Replace IS_ENABLED(EXPOLINE_*) with IS_ENABLED(CONFIG_EXPOLINE_*) KVM: s390: force bp isolation for VSIE s390: introduce execute-trampolines for branches s390: run user space and KVM guests with modified branch prediction s390: add options to change branch prediction behaviour for the kernel s390/alternative: use a copy of the facility bit mask s390: add optimized array_index_mask_nospec s390: scrub registers on kernel entry and KVM exit KVM: s390: wire up bpb feature s390: enable CPU alternatives unconditionally s390: introduce CPU alternatives virtio_net: fix adding vids on big-endian virtio_net: split out ctrl buffer net: ethernet: ti: cpsw: fix tx vlan priority mapping llc: fix NULL pointer deref for SOCK_ZAPPED llc: hold llc_sap before release_sock() net: sched: ife: check on metadata length net: sched: ife: handle malformed tlv length tcp: clear tp->packets_out when purging write queue net: sched: ife: signal not finding metaid strparser: Fix incorrect strp->need_bytes value. amd-xgbe: Only use the SFP supported transceiver signals strparser: Do not call mod_delayed_work with a timeout of LONG_MAX amd-xgbe: Improve KR auto-negotiation and training sctp: do not check port in sctp_inet6_cmp_addr amd-xgbe: Add pre/post auto-negotiation phy hooks vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi pppoe: check sockaddr length in pppoe_connect() tipc: add policy for TIPC_NLA_NET_ADDR packet: fix bitfield update race team: fix netconsole setup over team net/smc: fix shutdown in state SMC_LISTEN team: avoid adding twice the same option to the event list net: fix deadlock while clearing neighbor proxy table tcp: md5: reject TCP_MD5SIG or TCP_MD5SIG_EXT on established sockets net: af_packet: fix race in PACKET_{R|T}X_RING tcp: don't read out-of-bounds opsize llc: delete timers synchronously in llc_sk_free() net: validate attribute sizes in neigh_dump_table() l2tp: check sockaddr length in pppol2tp_connect() KEYS: DNS: limit the length of option strings ipv6: sr: fix NULL pointer dereference in seg6_do_srh_encap()- v4 pkts ipv6: add RTA_TABLE and RTA_PREFSRC to rtm_ipv6_policy bonding: do not set slave_dev npinfo before slave_enable_netpoll in bond_enslave Revert "ath10k: send (re)assoc peer command when NSS changed" tpm: add retry logic tpm: tpm-interface: fix tpm_transmit/_cmd kdoc tpm: cmd_ready command can be issued only after granting locality i40e: Fix attach VF to VM issue drm: bridge: dw-hdmi: Fix overflow workaround for Amlogic Meson GX SoCs Revert "pinctrl: intel: Initialize GPIO properly when used through irqchip" ANDROID: staging: lustre: fix filler function type ANDROID: fs: gfs2: fix filler function type ANDROID: fs: exofs: fix filler function type ANDROID: fs: afs: fix filler function type ANDROID: fs: nfs: fix filler function type ANDROID: fs: fuse: fix filler function type mismatch ANDROID: mm: fix filler function type mismatch ANDROID: media-device: fix ioctl function types ANDROID: v4l2-ioctl: fix function types for IOCTL_INFO_STD ANDROID: arch/arm64/crypto: fix CFI in SHA CE ANDROID: arm64: kvm: disable CFI ANDROID: arm64: mark kpti_install_ng_mappings as __nocfi ANDROID: arm64: disable CFI for cpu_replace_ttbr1 ANDROID: kallsyms: strip the .cfi postfix from symbols with CONFIG_CFI_CLANG ANDROID: add support for clang Control Flow Integrity (CFI) ANDROID: HACK: init: ensure initcall ordering with LTO ANDROID: drivers/misc: disable LTO for lkdtm_rodata.o ANDROID: arm64: vdso: disable LTO FROMLIST: arm64: select ARCH_SUPPORTS_LTO_CLANG FROMLIST: arm64: disable RANDOMIZE_MODULE_REGION_FULL with LTO_CLANG ANDROID: arm64: disable ARM64_ERRATUM_843419 for clang LTO ANDROID: arm64: pass code model to LLVMgold FROMLIST: arm64: make mrs_s and msr_s macros work with LTO FROMLIST: efi/libstub: disable LTO FROMLIST: scripts/mod: disable LTO for empty.c FROMLIST: kbuild: fix dynamic ftrace with clang LTO FROMLIST: kbuild: add support for clang LTO FROMLIST: arm64: fix -m for GNU gold FROMLIST: arm64: add a workaround for GNU gold with ARM64_MODULE_PLTS FROMLIST: arm64: explicitly pass --no-fix-cortex-a53-843419 to GNU gold FROMLIST: kbuild: add __ld-ifversion and linker-specific macros FROMLIST: kbuild: add ld-name macro FROMLIST: arm64: keep .altinstructions and .altinstr_replacement ANDROID: arm64: fix LD_DEAD_CODE_DATA_ELIMINATION FROMLIST: kbuild: fix LD_DEAD_CODE_DATA_ELIMINATION FROMLIST: kbuild: add __cc-ifversion and compiler-specific variants UPSTREAM: console: Drop added "static" for newport_con UPSTREAM: tracing: always define trace_{irq,preempt}_{enable_disable} Conflicts: Makefile Change-Id: Ied1a215e68f428eff9c1911491a4e364ffd1f679 Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org> |
||
|
c1e98bf267 |
ANDROID: mm: fix filler function type mismatch
Bug: 67506682 Change-Id: I6f615164ccd86b407540ada9bbcb39d910395db9 Signed-off-by: Sami Tolvanen <samitolvanen@google.com> |
||
|
4f5d011e6d |
Merge remote-tracking branch 'remotes/origin/tmp-bb60f28' into msm-4.14
* remotes/origin/tmp-bb60f28: Linux 4.14.37 mac80211_hwsim: fix use-after-free bug in hwsim_exit_net Revert "KVM: X86: Fix SMRAM accessing even if VM is shutdown" RDMA/mlx5: Fix NULL dereference while accessing XRC_TGT QPs perf: Return proper values for user stack errors perf: Fix sample_max_stack maximum check netfilter: x_tables: limit allocation requests for blob rule heads netfilter: compat: reject huge allocation requests netfilter: compat: prepare xt_compat_init_offsets to return errors netfilter: x_tables: add counters allocation wrapper netfilter: x_tables: cap allocations at 512 mbyte alarmtimer: Init nanosleep alarm timer on stack RDMA/core: Reduce poll batch for direct cq polling irqchip/gic-v3: Change pr_debug message to pr_devel cpumask: Make for_each_cpu_wrap() available on UP as well irqchip/gic-v3: Ignore disabled ITS nodes perf test: Fix test trace+probe_libc_inet_pton.sh for s390x powerpc/powernv: IMC fix out of bounds memory access at shutdown locking/qspinlock: Ensure node->count is updated before initialising node x86/platform/UV: Fix GAM Range Table entries less than 1GB powerpc/mm/hash64: Zero PGD pages on allocation vfs/proc/kcore, x86/mm/kcore: Fix SMAP fault when dumping vsyscall user page PM / wakeirq: Fix unbalanced IRQ enable for wakeirq ACPI / EC: Restore polling during noirq suspend/resume phases bpf: fix rlimit in reuseport net selftest net: stmmac: discard disabled flags in interrupt status register SUNRPC: Don't call __UDPX_INC_STATS() from a preemptible context KVM: PPC: Book3S HV: Fix handling of secondary HPTEG in HPT resizing code tools/libbpf: handle issues with bpf ELF objects containing .eh_frames net: Extra '_get' in declaration of arch_get_platform_mac_address svcrdma: Fix Read chunk round-up rxrpc: Don't put crypto buffers on the stack selftests/ftrace: Add some missing glob checks cpufreq: intel_pstate: Enable HWP during system resume on CPU0 bcache: return attach error when no cache set exist bcache: fix for data collapse after re-attaching an attached device bcache: fix for allocator and register thread race bcache: properly set task state in bch_writeback_thread() cifs: silence compiler warnings showing up with gcc-8.0.0 PM / domains: Fix up domain-idle-states OF parsing proc: fix /proc/*/map_files lookup arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics RDS: IB: Fix null pointer issue bpf: sockmap, fix leaking maps with attached but not detached progs xen/grant-table: Use put_page instead of free_page xen-netfront: Fix race between device setup and open perf evsel: Fix period/freq terms setup MIPS: Generic: Support GIC in EIC mode perf record: Fix period option handling MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs ACPI / bus: Do not call _STA on battery devices with unmet dependencies ACPI: processor_perflib: Do not send _PPC change notification if not ready firmware: dmi_scan: Fix handling of empty DMI strings x86/dumpstack: Avoid uninitlized variable x86/power: Fix swsusp_arch_resume prototype netfilter: ipv6: nf_defrag: Kill frag queue on RFC2460 failure s390/eadm: fix CONFIG_BLOCK include dependency drm/nouveau/pmu/fuc: don't use movw directly anymore IB/core: Map iWarp AH type to undefined in rdma_ah_find_type IB/ipoib: Fix for potential no-carrier state IB/hfi1: Fix for potential refcount leak in hfi1_open_file() IB/hfi1: Re-order IRQ cleanup to address driver cleanup race blk-mq: fix discard merge with scheduler attached openvswitch: Remove padding from packet before L3+ conntrack processing mm/fadvise: discard partial page if endbyte is also EOF mm: pin address_space before dereferencing it while isolating an LRU page mm: thp: use down_read_trylock() in khugepaged to avoid long block sparc64: update pmdp_invalidate() to return old pmd value asm-generic: provide generic_pmdp_establish() mm/mempolicy: add nodes_empty check in SYSC_migrate_pages mm/mempolicy: fix the check of nodemask from user ocfs2: return error when we attempt to access a dirty bh in jbd2 ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid fs/dax.c: release PMD lock even when there is no PMD support in DAX x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested kvm: Map PFN-type memory regions as writable (if possible) tcp_nv: fix potential integer overflow in tcpnv_acked netfilter: x_tables: fix pointer leaks to userspace x86/hyperv: Check for required priviliges in hyperv_init() gianfar: prevent integer wrapping in the rx handler ntb_transport: Fix bug with max_mw_size parameter RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure powerpc/numa: Ensure nodes initialized for hotplug powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes samples/bpf: Partially fixes the bpf.o build i40e: fix reported mask for ntuple filters i40e: program fragmented IPv4 filter input set ixgbe: don't set RXDCTL.RLPML for 82599 jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path RDMA/uverbs: Use an unambiguous errno for method not supported crypto: artpec6 - remove select on non-existing CRYPTO_SHA384 device property: Define type of PROPERTY_ENRTY_*() macros tty: serial: exar: Relocate sleep wake-up handling x86/hyperv: Stop suppressing X86_FEATURE_PCID fm10k: fix "failed to kill vid" message for VF igb: Clear TXSTMP when ptp_tx_work() is timeout igb: Allow to remove administratively set MAC on VFs ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink blk-mq-debugfs: don't allow write on attributes with seq_operations set KVM: s390: vsie: use READ_ONCE to access some SCB fields platform/x86: thinkpad_acpi: suppress warning about palm detection i40evf: ignore link up if not running i40evf: Don't schedule reset_task when device is being removed bpf: test_maps: cleanup sockmaps when test ends block: Set BIO_TRACE_COMPLETION on new bio during split nfp: fix error return code in nfp_pci_probe() HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() Input: stmfts - set IRQ_NOAUTOEN to the irq flag scsi: fas216: fix sense buffer initialization scsi: devinfo: fix format of the device list f2fs: avoid hungtask when GC encrypted block if io_bits is set RDMA/cma: Check existence of netdevice during port validation Btrfs: raid56: fix race between merge_bio and rbio_orig_end_io Btrfs: fix unexpected EEXIST from btrfs_get_extent btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP Btrfs: fix scrub to repair raid6 corruption btrfs: Fix out of bounds access in btrfs_search_slot Btrfs: set plug for fsync ipmi/powernv: Fix error return code in ipmi_powernv_probe() mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl() kconfig: Fix expr_free() E_NOT leak kconfig: Fix automatic menu creation mem leak kconfig: Don't leak main menus during parsing watchdog: sp5100_tco: Fix watchdog disable bit PCI: Add dummy pci_irqd_intx_xlate() for CONFIG_PCI=n build MIPS: Fix clean of vmlinuz.{32,ecoff,bin,srec} nfs: Do not convert nfs_idmap_cache_timeout to jiffies IB/cq: Don't force IB_POLL_DIRECT poll context for ib_process_cq_direct spi: a3700: Clear DATA_OUT when performing a read net: stmmac: dwmac-meson8b: propagate rate changes to the parent clock net: stmmac: dwmac-meson8b: fix setting the RGMII TX clock on Meson8b ubifs: Fix uninitialized variable in search_dh_cookie() blk-mq: turn WARN_ON in __blk_mq_run_hw_queue into printk dm mpath: return DM_MAPIO_REQUEUE on blk-mq rq allocation failure dm thin: fix documentation relative to low water mark threshold iommu/vt-d: Use domain instead of cache fetching powerpc: System reset avoid interleaving oops using die synchronisation iommu/exynos: Don't unconditionally steal bus ops perf record: Fix failed memory allocation for get_cpuid_str tools lib traceevent: Fix get_field_str() for dynamic strings perf callchain: Fix attr.sample_max_stack setting tools lib traceevent: Simplify pointer print logic and fix %pF perf unwind: Do not look just at the global callchain_param.record_mode scsi: qla2xxx: Fix warning in qla2x00_async_iocb_timeout() i40iw: Zero-out consumer key on allocate stag for FMR i40iw: Free IEQ resources Input: synaptics - reset the ABS_X/Y fuzz after initializing MT axes libbpf: Makefile set specified permission mode Input: psmouse - fix Synaptics detection when protocol is disabled PCI: Add function 1 DMA alias quirk for Marvell 9128 selftest: ftrace: Fix to pick text symbols for kprobes xprtrdma: Fix backchannel allocation of extra rpcrdma_reps platform/x86: dell-laptop: Filter out spurious keyboard backlight change events KVM: s390: use created_vcpus in more places tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account netfilter: ipv6: nf_defrag: Pass on packets to stack per RFC2460 KVM: PPC: Book3S HV: Enable migration of decrementer register RDMA/core: Clarify rdma_ah_find_type kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read() ALSA: hda - Use IS_REACHABLE() for dependency on input ACPI / LPSS: Do not instiate platform_dev for devs without MMIO resources NFSv4: always set NFS_LOCK_LOST when a lock is lost. x86/tsc: Allow TSC calibration without PIT firewire-ohci: work around oversized DMA reads on JMicron controllers usb: musb: Fix external abort in musb_remove on omap2430 usb: musb: call pm_runtime_{get,put}_sync before reading vbus registers usb: musb: fix enumeration after resume drm/i915/bxt, glk: Increase PCODE timeouts during CDCLK freq changing drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state drm/i915: Do no use kfree() to free a kmem_cache_alloc() return value drm/i915/audio: Fix audio detection issue on GLK drm/i915/gvt: throw error on unhandled vfio ioctls drm/vc4: Fix memory leak during BO teardown x86/tsc: Prevent 32bit truncation in calc_hpet_ref() clocksource/imx-tpm: Correct -ETIME return condition check x86/acpi: Prevent X2APIC id 0xffffffff from being accounted btrfs: fix unaligned access in readdir cifs: do not allow creating sockets except with SMB1 posix exensions UPSTREAM: module: Do not paper over type mismatches in module_param_call() UPSTREAM: treewide: Fix function prototypes for module_param_call() UPSTREAM: module: Prepare to convert all module_param_call() prototypes UPSTREAM: kbuild: add clang-version.sh UPSTREAM: console: Expand dummy functions for CFI UPSTREAM: console: SisUSB2VGA: Drop dummy con_font_get() ANDROID: sdcardfs: Set s_root to NULL after putting ANDROID: sdcardfs: d_make_root calls iput ANDROID: sdcardfs: Check for private data earlier ANDROID: sched: Remove duplicate const specifier Conflicts: kernel/sched/sched.h Change in module_param_call() definition requires alignment in: drivers/hwtracing/coresight/coresight-event.c drivers/power/reset/msm-poweroff.c Change-Id: I0114d2226301af0b1775b37d79db5529653b135d Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org> |
||
|
bb60f28e48 |
This is the 4.14.37 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlrhlZ8ACgkQONu9yGCS aT6VhBAAkG3u95ECjzudalQDGkXvWoV7YDpBsAn+npc8NjNsiORZoEWZGofflbIm mnZdNvEpEJ2hDin53NBRwEicY3SAREU5ym9xvApg4YPjYDUN4ENqQZHBgvswq6cP BlOs7JNTDKSycrxbYyaamPQNr7QBV72/Y8nRcBlnrpVuSgjPNJWMTNs7Gie/mufu MyzX2vQ0Yz+KAZAD4y1bzQ37ByR1/u+4r/1Hq/lHdVXbmBkGHxQq+OgQvScmKmC3 XpFv5J5NGUQHL5jGe7bCfrfhN7U84Codeur4bzJzqQ3O+RL2uu9eZDAkeSw3HbxG YHRqGo5yi1lR33sazA92mBDxbteLUX+pDGMZ8LkfHqmMXhTMFCVWnxmDxMiji5G1 +xMjxXH4b5WOquyR+y7LoLvirkYNYJa2mkPDuSitgiTCVRh4o6aP5UziBLao9SRy Uke1983VluEowQu8QSNjAX4vZUm7j44UKWWQqpqgjKV4PUr8iilPsG9Z3AoRqRV+ u8ZI2FqUGl7hG+XsfDIlc/0Qz72u/OluSkLnNAcSh5rAxHQIuDG2ELcGpwHm5yd9 SBclUH9/cDlfOnlvZKPVAIDFhc23Ez4i+IWmObQ4VsIsrOq0WSzj+oYnWsqeNNw9 NiDQwym4eGWGPs9+GMsKfVAmfpv1HjA0LM6/wNvzYaACU56Lp+o= =5URr -----END PGP SIGNATURE----- Merge 4.14.37 into android-4.14 Changes in 4.14.37 cifs: do not allow creating sockets except with SMB1 posix exensions btrfs: fix unaligned access in readdir x86/acpi: Prevent X2APIC id 0xffffffff from being accounted clocksource/imx-tpm: Correct -ETIME return condition check x86/tsc: Prevent 32bit truncation in calc_hpet_ref() drm/vc4: Fix memory leak during BO teardown drm/i915/gvt: throw error on unhandled vfio ioctls drm/i915/audio: Fix audio detection issue on GLK drm/i915: Do no use kfree() to free a kmem_cache_alloc() return value drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state drm/i915/bxt, glk: Increase PCODE timeouts during CDCLK freq changing usb: musb: fix enumeration after resume usb: musb: call pm_runtime_{get,put}_sync before reading vbus registers usb: musb: Fix external abort in musb_remove on omap2430 firewire-ohci: work around oversized DMA reads on JMicron controllers x86/tsc: Allow TSC calibration without PIT NFSv4: always set NFS_LOCK_LOST when a lock is lost. ACPI / LPSS: Do not instiate platform_dev for devs without MMIO resources ALSA: hda - Use IS_REACHABLE() for dependency on input ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read() kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl RDMA/core: Clarify rdma_ah_find_type KVM: PPC: Book3S HV: Enable migration of decrementer register netfilter: ipv6: nf_defrag: Pass on packets to stack per RFC2460 tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account KVM: s390: use created_vcpus in more places platform/x86: dell-laptop: Filter out spurious keyboard backlight change events xprtrdma: Fix backchannel allocation of extra rpcrdma_reps selftest: ftrace: Fix to pick text symbols for kprobes PCI: Add function 1 DMA alias quirk for Marvell 9128 Input: psmouse - fix Synaptics detection when protocol is disabled libbpf: Makefile set specified permission mode Input: synaptics - reset the ABS_X/Y fuzz after initializing MT axes i40iw: Free IEQ resources i40iw: Zero-out consumer key on allocate stag for FMR scsi: qla2xxx: Fix warning in qla2x00_async_iocb_timeout() perf unwind: Do not look just at the global callchain_param.record_mode tools lib traceevent: Simplify pointer print logic and fix %pF perf callchain: Fix attr.sample_max_stack setting tools lib traceevent: Fix get_field_str() for dynamic strings perf record: Fix failed memory allocation for get_cpuid_str iommu/exynos: Don't unconditionally steal bus ops powerpc: System reset avoid interleaving oops using die synchronisation iommu/vt-d: Use domain instead of cache fetching dm thin: fix documentation relative to low water mark threshold dm mpath: return DM_MAPIO_REQUEUE on blk-mq rq allocation failure blk-mq: turn WARN_ON in __blk_mq_run_hw_queue into printk ubifs: Fix uninitialized variable in search_dh_cookie() net: stmmac: dwmac-meson8b: fix setting the RGMII TX clock on Meson8b net: stmmac: dwmac-meson8b: propagate rate changes to the parent clock spi: a3700: Clear DATA_OUT when performing a read IB/cq: Don't force IB_POLL_DIRECT poll context for ib_process_cq_direct nfs: Do not convert nfs_idmap_cache_timeout to jiffies MIPS: Fix clean of vmlinuz.{32,ecoff,bin,srec} PCI: Add dummy pci_irqd_intx_xlate() for CONFIG_PCI=n build watchdog: sp5100_tco: Fix watchdog disable bit kconfig: Don't leak main menus during parsing kconfig: Fix automatic menu creation mem leak kconfig: Fix expr_free() E_NOT leak mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl() ipmi/powernv: Fix error return code in ipmi_powernv_probe() Btrfs: set plug for fsync btrfs: Fix out of bounds access in btrfs_search_slot Btrfs: fix scrub to repair raid6 corruption btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP Btrfs: fix unexpected EEXIST from btrfs_get_extent Btrfs: raid56: fix race between merge_bio and rbio_orig_end_io RDMA/cma: Check existence of netdevice during port validation f2fs: avoid hungtask when GC encrypted block if io_bits is set scsi: devinfo: fix format of the device list scsi: fas216: fix sense buffer initialization Input: stmfts - set IRQ_NOAUTOEN to the irq flag HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() nfp: fix error return code in nfp_pci_probe() block: Set BIO_TRACE_COMPLETION on new bio during split bpf: test_maps: cleanup sockmaps when test ends i40evf: Don't schedule reset_task when device is being removed i40evf: ignore link up if not running platform/x86: thinkpad_acpi: suppress warning about palm detection KVM: s390: vsie: use READ_ONCE to access some SCB fields blk-mq-debugfs: don't allow write on attributes with seq_operations set ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink igb: Allow to remove administratively set MAC on VFs igb: Clear TXSTMP when ptp_tx_work() is timeout fm10k: fix "failed to kill vid" message for VF x86/hyperv: Stop suppressing X86_FEATURE_PCID tty: serial: exar: Relocate sleep wake-up handling device property: Define type of PROPERTY_ENRTY_*() macros crypto: artpec6 - remove select on non-existing CRYPTO_SHA384 RDMA/uverbs: Use an unambiguous errno for method not supported jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path ixgbe: don't set RXDCTL.RLPML for 82599 i40e: program fragmented IPv4 filter input set i40e: fix reported mask for ntuple filters samples/bpf: Partially fixes the bpf.o build powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes powerpc/numa: Ensure nodes initialized for hotplug RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure ntb_transport: Fix bug with max_mw_size parameter gianfar: prevent integer wrapping in the rx handler x86/hyperv: Check for required priviliges in hyperv_init() netfilter: x_tables: fix pointer leaks to userspace tcp_nv: fix potential integer overflow in tcpnv_acked kvm: Map PFN-type memory regions as writable (if possible) x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested fs/dax.c: release PMD lock even when there is no PMD support in DAX ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute ocfs2: return error when we attempt to access a dirty bh in jbd2 mm/mempolicy: fix the check of nodemask from user mm/mempolicy: add nodes_empty check in SYSC_migrate_pages asm-generic: provide generic_pmdp_establish() sparc64: update pmdp_invalidate() to return old pmd value mm: thp: use down_read_trylock() in khugepaged to avoid long block mm: pin address_space before dereferencing it while isolating an LRU page mm/fadvise: discard partial page if endbyte is also EOF openvswitch: Remove padding from packet before L3+ conntrack processing blk-mq: fix discard merge with scheduler attached IB/hfi1: Re-order IRQ cleanup to address driver cleanup race IB/hfi1: Fix for potential refcount leak in hfi1_open_file() IB/ipoib: Fix for potential no-carrier state IB/core: Map iWarp AH type to undefined in rdma_ah_find_type drm/nouveau/pmu/fuc: don't use movw directly anymore s390/eadm: fix CONFIG_BLOCK include dependency netfilter: ipv6: nf_defrag: Kill frag queue on RFC2460 failure x86/power: Fix swsusp_arch_resume prototype x86/dumpstack: Avoid uninitlized variable firmware: dmi_scan: Fix handling of empty DMI strings ACPI: processor_perflib: Do not send _PPC change notification if not ready ACPI / bus: Do not call _STA on battery devices with unmet dependencies ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS perf record: Fix period option handling MIPS: Generic: Support GIC in EIC mode perf evsel: Fix period/freq terms setup xen-netfront: Fix race between device setup and open xen/grant-table: Use put_page instead of free_page bpf: sockmap, fix leaking maps with attached but not detached progs RDS: IB: Fix null pointer issue arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics proc: fix /proc/*/map_files lookup PM / domains: Fix up domain-idle-states OF parsing cifs: silence compiler warnings showing up with gcc-8.0.0 bcache: properly set task state in bch_writeback_thread() bcache: fix for allocator and register thread race bcache: fix for data collapse after re-attaching an attached device bcache: return attach error when no cache set exist cpufreq: intel_pstate: Enable HWP during system resume on CPU0 selftests/ftrace: Add some missing glob checks rxrpc: Don't put crypto buffers on the stack svcrdma: Fix Read chunk round-up net: Extra '_get' in declaration of arch_get_platform_mac_address tools/libbpf: handle issues with bpf ELF objects containing .eh_frames KVM: PPC: Book3S HV: Fix handling of secondary HPTEG in HPT resizing code SUNRPC: Don't call __UDPX_INC_STATS() from a preemptible context net: stmmac: discard disabled flags in interrupt status register bpf: fix rlimit in reuseport net selftest ACPI / EC: Restore polling during noirq suspend/resume phases PM / wakeirq: Fix unbalanced IRQ enable for wakeirq vfs/proc/kcore, x86/mm/kcore: Fix SMAP fault when dumping vsyscall user page powerpc/mm/hash64: Zero PGD pages on allocation x86/platform/UV: Fix GAM Range Table entries less than 1GB locking/qspinlock: Ensure node->count is updated before initialising node powerpc/powernv: IMC fix out of bounds memory access at shutdown perf test: Fix test trace+probe_libc_inet_pton.sh for s390x irqchip/gic-v3: Ignore disabled ITS nodes cpumask: Make for_each_cpu_wrap() available on UP as well irqchip/gic-v3: Change pr_debug message to pr_devel RDMA/core: Reduce poll batch for direct cq polling alarmtimer: Init nanosleep alarm timer on stack netfilter: x_tables: cap allocations at 512 mbyte netfilter: x_tables: add counters allocation wrapper netfilter: compat: prepare xt_compat_init_offsets to return errors netfilter: compat: reject huge allocation requests netfilter: x_tables: limit allocation requests for blob rule heads perf: Fix sample_max_stack maximum check perf: Return proper values for user stack errors RDMA/mlx5: Fix NULL dereference while accessing XRC_TGT QPs Revert "KVM: X86: Fix SMRAM accessing even if VM is shutdown" mac80211_hwsim: fix use-after-free bug in hwsim_exit_net Linux 4.14.37 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
17c597fda7 |
mm: ratelimit swap write errors
Ratelimit the swap write errors to avoid logbuf getting filled up by these messages. These pages remove the useful page allocation failure messages (when zram is used as swap) from logbuf, thus making the debugging difficult. Change-Id: I9d4229a76b2551d7baca603112d53012d8722415 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
3b1d9626fc |
mm/fadvise: discard partial page if endbyte is also EOF
[ Upstream commit a7ab400d6fe73d0119fdc234e9982a6f80faea9f ] During our recent testing with fadvise(FADV_DONTNEED), we find that if given offset/length is not page-aligned, the last page will not be discarded. The tool we use is vmtouch (https://hoytech.com/vmtouch/), we map a 10KB-sized file into memory and then try to run this tool to evict the whole file mapping, but the last single page always remains staying in the memory: $./vmtouch -e test_10K Files: 1 Directories: 0 Evicted Pages: 3 (12K) Elapsed: 2.1e-05 seconds $./vmtouch test_10K Files: 1 Directories: 0 Resident Pages: 1/3 4K/12K 33.3% Elapsed: 5.5e-05 seconds However when we test with an older kernel, say 3.10, this problem is gone. So we wonder if this is a regression: $./vmtouch -e test_10K Files: 1 Directories: 0 Evicted Pages: 3 (12K) Elapsed: 8.2e-05 seconds $./vmtouch test_10K Files: 1 Directories: 0 Resident Pages: 0/3 0/12K 0% <-- partial page also discarded Elapsed: 5e-05 seconds After digging a little bit into this problem, we find it seems not a regression. Not discarding partial page is likely to be on purpose according to commit 441c228f817f ("mm: fadvise: document the fadvise(FADV_DONTNEED) behaviour for partial pages") written by Mel Gorman. He explained why partial pages should be preserved instead of being discarded when using fadvise(FADV_DONTNEED). However, the interesting part is that the actual code did NOT work as the same as it was described, the partial page was still discarded anyway, due to a calculation mistake of `end_index' passed to invalidate_mapping_pages(). This mistake has not been fixed until recently, that's why we fail to reproduce our problem in old kernels. The fix is done in commit 18aba41cbf ("mm/fadvise.c: do not discard partial pages with POSIX_FADV_DONTNEED") by Oleg Drokin. Back to the original testing, our problem becomes that there is a special case that, if the page-unaligned `endbyte' is also the end of file, it is not necessary at all to preserve the last partial page, as we all know no one else will use the rest of it. It should be safe enough if we just discard the whole page. So we add an EOF check in this patch. We also find a poosbile real world issue in mainline kernel. Assume such scenario: A userspace backup application want to backup a huge amount of small files (<4k) at once, the developer might (I guess) want to use fadvise(FADV_DONTNEED) to save memory. However, FADV_DONTNEED won't really happen since the only page mapped is a partial page, and kernel will preserve it. Our patch also fixes this problem, since we know the endbyte is EOF, so we discard it. Here is a simple reproducer to reproduce and verify each scenario we described above: test_fadvise.c ============================== #include <sys/mman.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { int i, fd, ret, len; struct stat buf; void *addr; unsigned char *vec; char *strbuf; ssize_t pagesize = getpagesize(); ssize_t filesize; fd = open(argv[1], O_RDWR|O_CREAT, S_IRUSR|S_IWUSR); if (fd < 0) return -1; filesize = strtoul(argv[2], NULL, 10); strbuf = malloc(filesize); memset(strbuf, 42, filesize); write(fd, strbuf, filesize); free(strbuf); fsync(fd); len = (filesize + pagesize - 1) / pagesize; printf("length of pages: %d\n", len); addr = mmap(NULL, filesize, PROT_READ, MAP_SHARED, fd, 0); if (addr == MAP_FAILED) return -1; ret = posix_fadvise(fd, 0, filesize, POSIX_FADV_DONTNEED); if (ret < 0) return -1; vec = malloc(len); ret = mincore(addr, filesize, (void *)vec); if (ret < 0) return -1; for (i = 0; i < len; i++) printf("pages[%d]: %x\n", i, vec[i] & 0x1); free(vec); close(fd); return 0; } ============================== Test 1: running on kernel with commit 18aba41cbf reverted: [root@caspar ~]# uname -r 4.15.0-rc6.revert+ [root@caspar ~]# ./test_fadvise file1 1024 length of pages: 1 pages[0]: 0 # <-- partial page discarded [root@caspar ~]# ./test_fadvise file2 8192 length of pages: 2 pages[0]: 0 pages[1]: 0 [root@caspar ~]# ./test_fadvise file3 10240 length of pages: 3 pages[0]: 0 pages[1]: 0 pages[2]: 0 # <-- partial page discarded Test 2: running on mainline kernel: [root@caspar ~]# uname -r 4.15.0-rc6+ [root@caspar ~]# ./test_fadvise test1 1024 length of pages: 1 pages[0]: 1 # <-- partial and the only page not discarded [root@caspar ~]# ./test_fadvise test2 8192 length of pages: 2 pages[0]: 0 pages[1]: 0 [root@caspar ~]# ./test_fadvise test3 10240 length of pages: 3 pages[0]: 0 pages[1]: 0 pages[2]: 1 # <-- partial page not discarded Test 3: running on kernel with this patch: [root@caspar ~]# uname -r 4.15.0-rc6.patched+ [root@caspar ~]# ./test_fadvise test1 1024 length of pages: 1 pages[0]: 0 # <-- partial page and EOF, discarded [root@caspar ~]# ./test_fadvise test2 8192 length of pages: 2 pages[0]: 0 pages[1]: 0 [root@caspar ~]# ./test_fadvise test3 10240 length of pages: 3 pages[0]: 0 pages[1]: 0 pages[2]: 0 # <-- partial page and EOF, discarded [akpm@linux-foundation.org: tweak code comment] Link: http://lkml.kernel.org/r/5222da9ee20e1695eaabb69f631f200d6e6b8876.1515132470.git.jinli.zjl@alibaba-inc.com Signed-off-by: shidao.ytt <shidao.ytt@alibaba-inc.com> Signed-off-by: Caspar Zhang <jinli.zjl@alibaba-inc.com> Reviewed-by: Oliver Yang <zhiche.yy@alibaba-inc.com> Cc: Mel Gorman <mgorman@techsingularity.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
1f9c87e251 |
mm: pin address_space before dereferencing it while isolating an LRU page
[ Upstream commit 69d763fc6d3aee787a3e8c8c35092b4f4960fa5d ] Minchan Kim asked the following question -- what locks protects address_space destroying when race happens between inode trauncation and __isolate_lru_page? Jan Kara clarified by describing the race as follows CPU1 CPU2 truncate(inode) __isolate_lru_page() ... truncate_inode_page(mapping, page); delete_from_page_cache(page) spin_lock_irqsave(&mapping->tree_lock, flags); __delete_from_page_cache(page, NULL) page_cache_tree_delete(..) ... mapping = page_mapping(page); page->mapping = NULL; ... spin_unlock_irqrestore(&mapping->tree_lock, flags); page_cache_free_page(mapping, page) put_page(page) if (put_page_testzero(page)) -> false - inode now has no pages and can be freed including embedded address_space if (mapping && !mapping->a_ops->migratepage) - we've dereferenced mapping which is potentially already free. The race is theoretically possible but unlikely. Before the delete_from_page_cache, truncate_cleanup_page is called so the page is likely to be !PageDirty or PageWriteback which gets skipped by the only caller that checks the mappping in __isolate_lru_page. Even if the race occurs, a substantial amount of work has to happen during a tiny window with no preemption but it could potentially be done using a virtual machine to artifically slow one CPU or halt it during the critical window. This patch should eliminate the race with truncation by try-locking the page before derefencing mapping and aborting if the lock was not acquired. There was a suggestion from Huang Ying to use RCU as a side-effect to prevent mapping being freed. However, I do not like the solution as it's an unconventional means of preserving a mapping and it's not a context where rcu_read_lock is obviously protecting rcu data. Link: http://lkml.kernel.org/r/20180104102512.2qos3h5vqzeisrek@techsingularity.net Fixes: c82449352854 ("mm: compaction: make isolate_lru_page() filter-aware again") Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Acked-by: Minchan Kim <minchan@kernel.org> Cc: "Huang, Ying" <ying.huang@intel.com> Cc: Jan Kara <jack@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
8054b87fcc |
mm: thp: use down_read_trylock() in khugepaged to avoid long block
[ Upstream commit 3b454ad35043dfbd3b5d2bb92b0991d6342afb44 ] In the current design, khugepaged needs to acquire mmap_sem before scanning an mm. But in some corner cases, khugepaged may scan a process which is modifying its memory mapping, so khugepaged blocks in uninterruptible state. But the process might hold the mmap_sem for a long time when modifying a huge memory space and it may trigger the below khugepaged hung issue: INFO: task khugepaged:270 blocked for more than 120 seconds. Tainted: G E 4.9.65-006.ali3000.alios7.x86_64 #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. khugepaged D 0 270 2 0x00000000 ffff883f3deae4c0 0000000000000000 ffff883f610596c0 ffff883f7d359440 ffff883f63818000 ffffc90019adfc78 ffffffff817079a5 d67e5aa8c1860a64 0000000000000246 ffff883f7d359440 ffffc90019adfc88 ffff883f610596c0 Call Trace: schedule+0x36/0x80 rwsem_down_read_failed+0xf0/0x150 call_rwsem_down_read_failed+0x18/0x30 down_read+0x20/0x40 khugepaged+0x476/0x11d0 kthread+0xe6/0x100 ret_from_fork+0x25/0x30 So it sounds pointless to just block khugepaged waiting for the semaphore so replace down_read() with down_read_trylock() to move to scan the next mm quickly instead of just blocking on the semaphore so that other processes can get more chances to install THP. Then khugepaged can come back to scan the skipped mm when it has finished the current round full_scan. And it appears that the change can improve khugepaged efficiency a little bit. Below is the test result when running LTP on a 24 cores 4GB memory 2 nodes NUMA VM: pristine w/ trylock full_scan 197 187 pages_collapsed 21 26 thp_fault_alloc 40818 44466 thp_fault_fallback 18413 16679 thp_collapse_alloc 21 150 thp_collapse_alloc_failed 14 16 thp_file_alloc 369 369 [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: tweak comment] [arnd@arndb.de: avoid uninitialized variable use] Link: http://lkml.kernel.org/r/20171215125129.2948634-1-arnd@arndb.de Link: http://lkml.kernel.org/r/1513281203-54878-1-git-send-email-yang.s@alibaba-inc.com Signed-off-by: Yang Shi <yang.s@alibaba-inc.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Michal Hocko <mhocko@suse.com> Cc: Hugh Dickins <hughd@google.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
305e56756d |
mm/mempolicy: add nodes_empty check in SYSC_migrate_pages
[ Upstream commit 0486a38bcc4749808edbc848f1bcf232042770fc ] As in manpage of migrate_pages, the errno should be set to EINVAL when none of the node IDs specified by new_nodes are on-line and allowed by the process's current cpuset context, or none of the specified nodes contain memory. However, when test by following case: new_nodes = 0; old_nodes = 0xf; ret = migrate_pages(pid, old_nodes, new_nodes, MAX); The ret will be 0 and no errno is set. As the new_nodes is empty, we should expect EINVAL as documented. To fix the case like above, this patch check whether target nodes AND current task_nodes is empty, and then check whether AND node_states[N_MEMORY] is empty. Link: http://lkml.kernel.org/r/1510882624-44342-4-git-send-email-xieyisheng1@huawei.com Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Andi Kleen <ak@linux.intel.com> Cc: Chris Salls <salls@cs.ucsb.edu> Cc: Christopher Lameter <cl@linux.com> Cc: David Rientjes <rientjes@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Cc: Tan Xiaojun <tanxiaojun@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
6cab60ac6a |
mm/mempolicy: fix the check of nodemask from user
[ Upstream commit 56521e7a02b7b84a5e72691a1fb15570e6055545 ] As Xiaojun reported the ltp of migrate_pages01 will fail on arm64 system which has 4 nodes[0...3], all have memory and CONFIG_NODES_SHIFT=2: migrate_pages01 0 TINFO : test_invalid_nodes migrate_pages01 14 TFAIL : migrate_pages_common.c:45: unexpected failure - returned value = 0, expected: -1 migrate_pages01 15 TFAIL : migrate_pages_common.c:55: call succeeded unexpectedly In this case the test_invalid_nodes of migrate_pages01 will call: SYSC_migrate_pages as: migrate_pages(0, , {0x0000000000000001}, 64, , {0x0000000000000010}, 64) = 0 The new nodes specifies one or more node IDs that are greater than the maximum supported node ID, however, the errno is not set to EINVAL as expected. As man pages of set_mempolicy[1], mbind[2], and migrate_pages[3] mentioned, when nodemask specifies one or more node IDs that are greater than the maximum supported node ID, the errno should set to EINVAL. However, get_nodes only check whether the part of bits [BITS_PER_LONG*BITS_TO_LONGS(MAX_NUMNODES), maxnode) is zero or not, and remain [MAX_NUMNODES, BITS_PER_LONG*BITS_TO_LONGS(MAX_NUMNODES) unchecked. This patch is to check the bits of [MAX_NUMNODES, maxnode) in get_nodes to let migrate_pages set the errno to EINVAL when nodemask specifies one or more node IDs that are greater than the maximum supported node ID, which follows the manpage's guide. [1] http://man7.org/linux/man-pages/man2/set_mempolicy.2.html [2] http://man7.org/linux/man-pages/man2/mbind.2.html [3] http://man7.org/linux/man-pages/man2/migrate_pages.2.html Link: http://lkml.kernel.org/r/1510882624-44342-3-git-send-email-xieyisheng1@huawei.com Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com> Reported-by: Tan Xiaojun <tanxiaojun@huawei.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Andi Kleen <ak@linux.intel.com> Cc: Chris Salls <salls@cs.ucsb.edu> Cc: Christopher Lameter <cl@linux.com> Cc: David Rientjes <rientjes@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
5d3323ae04 |
mm: allow page poisoning to be enabled by default.
Add a config option to enable page poisoning by default. The kernel command line option "page_poison" can be used to change the behaviour during boot. Change-Id: Ie70763841191a722b1c6125dfad119a29ed0f605 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
f1f59ece22 |
mm: vmscan: fix the page state calculation in too_many_isolated
It is observed that sometimes multiple tasks get blocked in the congestion_wait loop below, in shrink_inactive_list. (__schedule) from [<c0a03328>] (schedule_timeout) from [<c0a04940>] (io_schedule_timeout) from [<c01d585c>] (congestion_wait) from [<c01cc9d8>] (shrink_inactive_list) from [<c01cd034>] (shrink_zone) from [<c01cdd08>] (try_to_free_pages) from [<c01c442c>] (__alloc_pages_nodemask) from [<c01f1884>] (new_slab) from [<c09fcf60>] (__slab_alloc) from [<c01f1a6c>] In one such instance, zone_page_state(zone, NR_ISOLATED_FILE) had returned 14, zone_page_state(zone, NR_INACTIVE_FILE) returned 92, and the gfp_flag was GFP_KERNEL which resulted in too_many_isolated to return true. But one of the CPU pageset vmstat diff had NR_ISOLATED_FILE as -14. As there weren't any more update to per cpu pageset, the threshold wasn't met, and the tasks were blocked in the congestion wait. This patch uses zone_page_state_snapshot instead, but restricts its usage to avoid performance penalty. Change-Id: Iec767a548e524729c7ed79a92fe4718cdd08ce69 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
2d5f817ae0 |
Merge remote-tracking branch 'remotes/origin/tmp-e9a2c5d' into msm-4.14
* remotes/origin/tmp-e9a2c5d: Linux 4.14.36 writeback: safer lock nesting media: staging: lirc_zilog: incorrect reference counting Revert "media: lirc_zilog: driver only sends LIRCCODE" iwlwifi: add a bunch of new 9000 PCI IDs iwlwifi: add shared clock PHY config flag for some devices net: dsa: Discard frames from unused ports mm/filemap.c: fix NULL pointer in page_cache_tree_insert() autofs: mount point create should honour passed in mode Don't leak MNT_INTERNAL away from internal mounts rpc_pipefs: fix double-dput() orangefs_kill_sb(): deal with allocation failures hypfs_kill_super(): deal with failed allocations jffs2_kill_sb(): deal with failed allocations drm/i915: Correctly handle limited range YCbCr data on VLV/CHV mmc: sdhci-pci: Only do AMD tuning for HS200 fanotify: fix logic of events on child udf: Fix leak of UTF-16 surrogates into encoded strings powerpc/lib: Fix off-by-one in alternate feature patching powerpc/xive: Fix trying to "push" an already active pool VP powerpc/eeh: Fix enabling bridge MMIO windows MIPS: memset.S: Fix clobber of v1 in last_fixup MIPS: memset.S: Fix return of __clear_user from Lpartial_fixup MIPS: memset.S: EVA & fault support for small_memset MIPS: uaccess: Add micromips clobbers to bzero invocation HID: wacom: bluetooth: send exit report for recent Bluetooth devices HID: hidraw: Fix crash on HIDIOCGFEATURE with a destroyed device HID: input: fix battery level reporting on BT mice random: add new ioctl RNDRESEEDCRNG random: crng_reseed() should lock the crng instance that it is modifying random: use a different mixing algorithm for add_device_randomness() random: fix crng_ready() test ALSA: hda/realtek - adjust the location of one mic ALSA: hda/realtek - set PINCFG_HEADSET_MIC to parse_flags ALSA: hda - New VIA controller suppor no-snoop path ALSA: rawmidi: Fix missing input substream checks in compat ioctls ALSA: line6: Use correct endpoint type for midi output drm/radeon: Fix PCIe lane width calculation drm/radeon: add PX quirk for Asus K73TK drm/rockchip: Clear all interrupts before requesting the IRQ drm/amdgpu/si: implement get/set pcie_lanes asic callback drm/amdgpu: Fix PCIe lane width calculation drm/amdgpu/sdma: fix mask in emit_pipeline_sync drm/amdgpu: Fix always_valid bos multiple LRU insertions. drm/amdgpu: Add an ATPX quirk for hybrid laptop ALSA: pcm: Fix endless loop for XRUN recovery in OSS emulation ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams ALSA: pcm: Avoid potential races between OSS ioctls and read/write ALSA: pcm: Use ERESTARTSYS instead of EINTR in OSS emulation vfio/pci: Virtualize Maximum Read Request Size watchdog: f71808e_wdt: Fix WD_EN register read dt-bindings: clock: mediatek: add binding for fixed-factor clock axisel_d4 thermal: imx: Fix race condition in imx_thermal_probe() pwm: rcar: Fix a condition to prevent mismatch value setting to duty clk: bcm2835: De-assert/assert PLL reset signal when appropriate clk: mediatek: fix PWM clock source by adding a fixed-factor clock clk: fix false-positive Wmaybe-uninitialized warning clk: mvebu: armada-38x: add support for missing clocks PCI: Mark Broadcom HT1100 and HT2000 Root Port Extended Tags as broken mmc: tmio: Fix error handling when issuing CMD23 mmc: jz4740: Fix race condition in IRQ mask update iommu/vt-d: Fix a potential memory leak um: Use POSIX ucontext_t instead of struct ucontext um: Compile with modern headers ring-buffer: Check if memory is available before allocation nfit: skip region registration for incomplete control regions nfit, address-range-scrub: fix scrub in-progress reporting libnvdimm, namespace: use a safe lookup for dimm device name libnvdimm, dimm: fix dpa reservation vs uninitialized label area tpm: self test failure should not cause suspend to fail cxl: Fix possible deadlock when processing page faults from cxllib dmaengine: at_xdmac: fix rare residue corruption IB/srp: Fix completion vector assignment algorithm IB/srp: Fix srp_abort() ALSA: pcm: Fix UAF at PCM release via PCM timer access RDMA/rxe: Fix an out-of-bounds read RDMA/mlx5: Protect from NULL pointer derefence RDMA/ucma: Don't allow setting RDMA_OPTION_IB_PATH without an RDMA device dm crypt: limit the number of allocated pages ext4: add extra checks to ext4_xattr_block_get() ext4: add bounds checking to ext4_xattr_find_entry() ext4: move call to ext4_error() into ext4_xattr_check_block() ext4: don't allow r/w mounts if metadata blocks overlap the superblock ext4: always initialize the crc32c checksum driver ext4: fail ext4_iget for root directory if unallocated ext4: limit xattr size to INT_MAX ext4: protect i_disksize update by i_data_sem in direct write path ext4: don't update checksum of new initialized bitmaps ext4: pass -ESHUTDOWN code to jbd2 layer ext4: eliminate sleep from shutdown ioctl ext4: shutdown should not prevent get_write_access jbd2: if the journal is aborted then don't allow update of the log tail block: use 32-bit blk_status_t on Alpha extcon: intel-cht-wc: Set direction and drv flags for V5 boost GPIO random: use a tighter cap in credit_entropy_bits_safe() irqchip/gic: Take lock when updating irq type thunderbolt: Prevent crash when ICM firmware is not running thunderbolt: Resume control channel after hibernation image is created thunderbolt: Serialize PCIe tunnel creation with PCI rescan thunderbolt: Wait a bit longer for ICM to authenticate the active NVM ASoC: topology: Fix kcontrol name string handling ASoC: ssm2602: Replace reg_default_raw with reg_default soc: mediatek: fix the mistaken pointer accessed when subdomains are added HID: core: Fix size as type u32 HID: Fix hid_report_len usage powerpc/powernv: Fix OPAL NVRAM driver OPAL_BUSY loops powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops powerpc/kexec_file: Fix error code when trying to load kdump kernel powerpc/kprobes: Fix call trace due to incorrect preempt count powerpc/64: Fix smp_wmb barrier definition use use lwsync consistently powerpc/64: Call H_REGISTER_PROC_TBL when running as a HPT guest on POWER9 powerpc/64s: Fix dt_cpu_ftrs to have restore_cpu clear unwanted LPCR bits powerpc/powernv: Handle unknown OPAL errors in opal_nvram_write() CIFS: fix sha512 check in cifs_crypto_secmech_release CIFS: add sha512 secmech CIFS: refactor crypto shash/sdesc allocation&free i2c: i801: Restore configuration at shutdown i2c: i801: Save register SMBSLVCMD value only once HID: i2c-hid: fix size check and type usage smb3: Fix root directory when server returns inode number of zero fix smb3-encryption breakage when CONFIG_DEBUG_SG=y cifs: fix memory leak in SMB2_open() usb: dwc3: gadget: never call ->complete() from ->ep_queue() usb: dwc3: pci: Properly cleanup resource usb: dwc3: prevent setting PRTCAP to OTG from debugfs USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw USB: gadget: f_midi: fixing a possible double-free in f_midi ACPI / hotplug / PCI: Check presence of slot itself in get_slot_status() ACPI / video: Add quirk to force acpi-video backlight on Samsung 670Z5E regmap: Fix reversed bounds check in regmap_raw_write() xen-netfront: Fix hang on device removal x86/xen: Delay get_cpu_cap until stack canary is established media: vsp1: Fix BRx conditional path in WPF media: vivid: check if the cec_adapter is valid media: atomisp_fops.c: disable atomisp_compat_ioctl32 spi: Fix unregistration of controller with fixed SPI bus number spi: Fix scatterlist elements size in spi_map_buf spi: atmel: init FIFOs before spi enable ARM: dts: at91: sama5d4: fix pinctrl compatible string ARM: dts: exynos: Fix IOMMU support for GScaler devices on Exynos5250 ARM: dts: at91: at91sam9g25: fix mux-mask pinctrl property arm: dts: mt7623: fix USB initialization fails on bananapi-r2 ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210 ARM: dts: da850-lego-ev3: Fix battery voltage gpio KVM: arm/arm64: vgic-its: Fix potential overrun in vgic_copy_lpi_list ARM64: dts: meson: reduce odroid-c2 eMMC maximum rate usb: gadget: udc: core: update usb_ep_queue() documentation phy: allwinner: sun4i-usb: poll vbus changes on A23/A33 when driving VBUS usb: musb: gadget: misplaced out of bounds check mm, slab: reschedule cache_reap() on the same CPU ipc/shm: fix use-after-free of shm file via remap_file_pages() resource: fix integer overflow at reallocation fs/reiserfs/journal.c: add missing resierfs_warning() arg task_struct: only use anon struct under randstruct plugin mm/hmm: hmm_pfns_bad() was accessing wrong struct mm/hmm: fix header file if/else/endif maze mm/ksm.c: fix inconsistent accounting of zero pages ubi: Reject MLC NAND ubi: Fix error for write access ubi: fastmap: Don't flush fastmap work on detach ubifs: Check ubifs_wbuf_sync() return code cpufreq: CPPC: Use transition_delay_us depending transition_latency tty: make n_tty_read() always abort if hangup is in progress f2fs: check cap_resource only for data blocks Revert "f2fs: introduce f2fs_set_page_dirty_nobuffer" f2fs: clear PageError on writepage BACKPORT: dm verity: add 'check_at_most_once' option to only validate hashes once f2fs: call unlock_new_inode() before d_instantiate() f2fs: refactor read path to allow multiple postprocessing steps fscrypt: allow synchronous bio decryption FROMLIST: arm64: kvm: use -fno-jump-tables with clang Conflicts: drivers/usb/dwc3/core.c drivers/usb/dwc3/gadget.c Change-Id: I1fa31836c6eac9b700c8c7899d741fddc26b24f8 Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org> |
||
|
e9a2c5dd1a |
This is the 4.14.36 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlre3ogACgkQONu9yGCS aT4a8Q//aR1U1nYUiiMwMTgxvWXR5Hic3jtnAxdOkpr6UNa5dDa1tijI5U9poKJW 65EPPQNW29PxIv0UGhLRzdjpL/ac2QhMyW8gmS8ikXMbFPF2JrgvOLSZpWF70cE1 hyFkzbnvavJe0QfWsii7Z+RdrSZMgfZheZMmLh1exv1tEmuYcfAiletdC8f5kTPU /aS5X9rmJM/Fyw4iQF7NEpYPY4vESsgMd7ZfHifcV07ze6f+lkW+gcKZuVi//eJ1 NJEvSBjSvqbQoHugHvHbV/UM2RwzFFfihm6y94WOurSbToksJ141P/MEBxc9vDae rCA8Qwq3YZ8vPu5rb8L1UHlpR+CIuanSJnijBhC2Lh6W4CmVA70+lvveqMbZGi/X Tm9+QlV4F32ogOy+rNvFARoNx7KkWvjZ8kF2a/qgbkqQgPCwSku4anW3abXLQad+ 4hYbqAwunq0V1Zi4XoIAjcQWlAokau4jDxfKbpoO7CBUYoia+1vDoK4U1FHsFy77 E4w7LktCecfoqieoBzsD5mZfTG5qrzwNhoxnnZmRGZY81TW9swVZYPkfqamG/Cbk 7HkgOLvtQiwtY5dxsLHvMwbtXzQqxO10KuLBAao6OY9xLEAqamV1v9gGO1WyOzRd avVUShDL6FQHTRalzcm8K9OLUhOZWDcZLR9XgNwfgxZYjAlfqCA= =Gbe3 -----END PGP SIGNATURE----- Merge 4.14.36 into android-4.14 Changes in 4.14.36 tty: make n_tty_read() always abort if hangup is in progress cpufreq: CPPC: Use transition_delay_us depending transition_latency ubifs: Check ubifs_wbuf_sync() return code ubi: fastmap: Don't flush fastmap work on detach ubi: Fix error for write access ubi: Reject MLC NAND mm/ksm.c: fix inconsistent accounting of zero pages mm/hmm: fix header file if/else/endif maze mm/hmm: hmm_pfns_bad() was accessing wrong struct task_struct: only use anon struct under randstruct plugin fs/reiserfs/journal.c: add missing resierfs_warning() arg resource: fix integer overflow at reallocation ipc/shm: fix use-after-free of shm file via remap_file_pages() mm, slab: reschedule cache_reap() on the same CPU usb: musb: gadget: misplaced out of bounds check phy: allwinner: sun4i-usb: poll vbus changes on A23/A33 when driving VBUS usb: gadget: udc: core: update usb_ep_queue() documentation ARM64: dts: meson: reduce odroid-c2 eMMC maximum rate KVM: arm/arm64: vgic-its: Fix potential overrun in vgic_copy_lpi_list ARM: dts: da850-lego-ev3: Fix battery voltage gpio ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210 arm: dts: mt7623: fix USB initialization fails on bananapi-r2 ARM: dts: at91: at91sam9g25: fix mux-mask pinctrl property ARM: dts: exynos: Fix IOMMU support for GScaler devices on Exynos5250 ARM: dts: at91: sama5d4: fix pinctrl compatible string spi: atmel: init FIFOs before spi enable spi: Fix scatterlist elements size in spi_map_buf spi: Fix unregistration of controller with fixed SPI bus number media: atomisp_fops.c: disable atomisp_compat_ioctl32 media: vivid: check if the cec_adapter is valid media: vsp1: Fix BRx conditional path in WPF x86/xen: Delay get_cpu_cap until stack canary is established xen-netfront: Fix hang on device removal regmap: Fix reversed bounds check in regmap_raw_write() ACPI / video: Add quirk to force acpi-video backlight on Samsung 670Z5E ACPI / hotplug / PCI: Check presence of slot itself in get_slot_status() USB: gadget: f_midi: fixing a possible double-free in f_midi USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw usb: dwc3: prevent setting PRTCAP to OTG from debugfs usb: dwc3: pci: Properly cleanup resource usb: dwc3: gadget: never call ->complete() from ->ep_queue() cifs: fix memory leak in SMB2_open() fix smb3-encryption breakage when CONFIG_DEBUG_SG=y smb3: Fix root directory when server returns inode number of zero HID: i2c-hid: fix size check and type usage i2c: i801: Save register SMBSLVCMD value only once i2c: i801: Restore configuration at shutdown CIFS: refactor crypto shash/sdesc allocation&free CIFS: add sha512 secmech CIFS: fix sha512 check in cifs_crypto_secmech_release powerpc/powernv: Handle unknown OPAL errors in opal_nvram_write() powerpc/64s: Fix dt_cpu_ftrs to have restore_cpu clear unwanted LPCR bits powerpc/64: Call H_REGISTER_PROC_TBL when running as a HPT guest on POWER9 powerpc/64: Fix smp_wmb barrier definition use use lwsync consistently powerpc/kprobes: Fix call trace due to incorrect preempt count powerpc/kexec_file: Fix error code when trying to load kdump kernel powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops powerpc/powernv: Fix OPAL NVRAM driver OPAL_BUSY loops HID: Fix hid_report_len usage HID: core: Fix size as type u32 soc: mediatek: fix the mistaken pointer accessed when subdomains are added ASoC: ssm2602: Replace reg_default_raw with reg_default ASoC: topology: Fix kcontrol name string handling thunderbolt: Wait a bit longer for ICM to authenticate the active NVM thunderbolt: Serialize PCIe tunnel creation with PCI rescan thunderbolt: Resume control channel after hibernation image is created thunderbolt: Prevent crash when ICM firmware is not running irqchip/gic: Take lock when updating irq type random: use a tighter cap in credit_entropy_bits_safe() extcon: intel-cht-wc: Set direction and drv flags for V5 boost GPIO block: use 32-bit blk_status_t on Alpha jbd2: if the journal is aborted then don't allow update of the log tail ext4: shutdown should not prevent get_write_access ext4: eliminate sleep from shutdown ioctl ext4: pass -ESHUTDOWN code to jbd2 layer ext4: don't update checksum of new initialized bitmaps ext4: protect i_disksize update by i_data_sem in direct write path ext4: limit xattr size to INT_MAX ext4: fail ext4_iget for root directory if unallocated ext4: always initialize the crc32c checksum driver ext4: don't allow r/w mounts if metadata blocks overlap the superblock ext4: move call to ext4_error() into ext4_xattr_check_block() ext4: add bounds checking to ext4_xattr_find_entry() ext4: add extra checks to ext4_xattr_block_get() dm crypt: limit the number of allocated pages RDMA/ucma: Don't allow setting RDMA_OPTION_IB_PATH without an RDMA device RDMA/mlx5: Protect from NULL pointer derefence RDMA/rxe: Fix an out-of-bounds read ALSA: pcm: Fix UAF at PCM release via PCM timer access IB/srp: Fix srp_abort() IB/srp: Fix completion vector assignment algorithm dmaengine: at_xdmac: fix rare residue corruption cxl: Fix possible deadlock when processing page faults from cxllib tpm: self test failure should not cause suspend to fail libnvdimm, dimm: fix dpa reservation vs uninitialized label area libnvdimm, namespace: use a safe lookup for dimm device name nfit, address-range-scrub: fix scrub in-progress reporting nfit: skip region registration for incomplete control regions ring-buffer: Check if memory is available before allocation um: Compile with modern headers um: Use POSIX ucontext_t instead of struct ucontext iommu/vt-d: Fix a potential memory leak mmc: jz4740: Fix race condition in IRQ mask update mmc: tmio: Fix error handling when issuing CMD23 PCI: Mark Broadcom HT1100 and HT2000 Root Port Extended Tags as broken clk: mvebu: armada-38x: add support for missing clocks clk: fix false-positive Wmaybe-uninitialized warning clk: mediatek: fix PWM clock source by adding a fixed-factor clock clk: bcm2835: De-assert/assert PLL reset signal when appropriate pwm: rcar: Fix a condition to prevent mismatch value setting to duty thermal: imx: Fix race condition in imx_thermal_probe() dt-bindings: clock: mediatek: add binding for fixed-factor clock axisel_d4 watchdog: f71808e_wdt: Fix WD_EN register read vfio/pci: Virtualize Maximum Read Request Size ALSA: pcm: Use ERESTARTSYS instead of EINTR in OSS emulation ALSA: pcm: Avoid potential races between OSS ioctls and read/write ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls ALSA: pcm: Fix endless loop for XRUN recovery in OSS emulation drm/amdgpu: Add an ATPX quirk for hybrid laptop drm/amdgpu: Fix always_valid bos multiple LRU insertions. drm/amdgpu/sdma: fix mask in emit_pipeline_sync drm/amdgpu: Fix PCIe lane width calculation drm/amdgpu/si: implement get/set pcie_lanes asic callback drm/rockchip: Clear all interrupts before requesting the IRQ drm/radeon: add PX quirk for Asus K73TK drm/radeon: Fix PCIe lane width calculation ALSA: line6: Use correct endpoint type for midi output ALSA: rawmidi: Fix missing input substream checks in compat ioctls ALSA: hda - New VIA controller suppor no-snoop path ALSA: hda/realtek - set PINCFG_HEADSET_MIC to parse_flags ALSA: hda/realtek - adjust the location of one mic random: fix crng_ready() test random: use a different mixing algorithm for add_device_randomness() random: crng_reseed() should lock the crng instance that it is modifying random: add new ioctl RNDRESEEDCRNG HID: input: fix battery level reporting on BT mice HID: hidraw: Fix crash on HIDIOCGFEATURE with a destroyed device HID: wacom: bluetooth: send exit report for recent Bluetooth devices MIPS: uaccess: Add micromips clobbers to bzero invocation MIPS: memset.S: EVA & fault support for small_memset MIPS: memset.S: Fix return of __clear_user from Lpartial_fixup MIPS: memset.S: Fix clobber of v1 in last_fixup powerpc/eeh: Fix enabling bridge MMIO windows powerpc/xive: Fix trying to "push" an already active pool VP powerpc/lib: Fix off-by-one in alternate feature patching udf: Fix leak of UTF-16 surrogates into encoded strings fanotify: fix logic of events on child mmc: sdhci-pci: Only do AMD tuning for HS200 drm/i915: Correctly handle limited range YCbCr data on VLV/CHV jffs2_kill_sb(): deal with failed allocations hypfs_kill_super(): deal with failed allocations orangefs_kill_sb(): deal with allocation failures rpc_pipefs: fix double-dput() Don't leak MNT_INTERNAL away from internal mounts autofs: mount point create should honour passed in mode mm/filemap.c: fix NULL pointer in page_cache_tree_insert() net: dsa: Discard frames from unused ports iwlwifi: add shared clock PHY config flag for some devices iwlwifi: add a bunch of new 9000 PCI IDs Revert "media: lirc_zilog: driver only sends LIRCCODE" media: staging: lirc_zilog: incorrect reference counting writeback: safer lock nesting Linux 4.14.36 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
7c9b87a78a |
writeback: safer lock nesting
commit 2e898e4c0a3897ccd434adac5abb8330194f527b upstream. lock_page_memcg()/unlock_page_memcg() use spin_lock_irqsave/restore() if the page's memcg is undergoing move accounting, which occurs when a process leaves its memcg for a new one that has memory.move_charge_at_immigrate set. unlocked_inode_to_wb_begin,end() use spin_lock_irq/spin_unlock_irq() if the given inode is switching writeback domains. Switches occur when enough writes are issued from a new domain. This existing pattern is thus suspicious: lock_page_memcg(page); unlocked_inode_to_wb_begin(inode, &locked); ... unlocked_inode_to_wb_end(inode, locked); unlock_page_memcg(page); If both inode switch and process memcg migration are both in-flight then unlocked_inode_to_wb_end() will unconditionally enable interrupts while still holding the lock_page_memcg() irq spinlock. This suggests the possibility of deadlock if an interrupt occurs before unlock_page_memcg(). truncate __cancel_dirty_page lock_page_memcg unlocked_inode_to_wb_begin unlocked_inode_to_wb_end <interrupts mistakenly enabled> <interrupt> end_page_writeback test_clear_page_writeback lock_page_memcg <deadlock> unlock_page_memcg Due to configuration limitations this deadlock is not currently possible because we don't mix cgroup writeback (a cgroupv2 feature) and memory.move_charge_at_immigrate (a cgroupv1 feature). If the kernel is hacked to always claim inode switching and memcg moving_account, then this script triggers lockup in less than a minute: cd /mnt/cgroup/memory mkdir a b echo 1 > a/memory.move_charge_at_immigrate echo 1 > b/memory.move_charge_at_immigrate ( echo $BASHPID > a/cgroup.procs while true; do dd if=/dev/zero of=/mnt/big bs=1M count=256 done ) & while true; do sync done & sleep 1h & SLEEP=$! while true; do echo $SLEEP > a/cgroup.procs echo $SLEEP > b/cgroup.procs done The deadlock does not seem possible, so it's debatable if there's any reason to modify the kernel. I suggest we should to prevent future surprises. And Wang Long said "this deadlock occurs three times in our environment", so there's more reason to apply this, even to stable. Stable 4.4 has minor conflicts applying this patch. For a clean 4.4 patch see "[PATCH for-4.4] writeback: safer lock nesting" https://lkml.org/lkml/2018/4/11/146 Wang Long said "this deadlock occurs three times in our environment" [gthelen@google.com: v4] Link: http://lkml.kernel.org/r/20180411084653.254724-1-gthelen@google.com [akpm@linux-foundation.org: comment tweaks, struct initialization simplification] Change-Id: Ibb773e8045852978f6207074491d262f1b3fb613 Link: http://lkml.kernel.org/r/20180410005908.167976-1-gthelen@google.com Fixes: 682aa8e1a6a1 ("writeback: implement unlocked_inode_to_wb transaction and use it for stat updates") Signed-off-by: Greg Thelen <gthelen@google.com> Reported-by: Wang Long <wanglong19@meituan.com> Acked-by: Wang Long <wanglong19@meituan.com> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Tejun Heo <tj@kernel.org> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: <stable@vger.kernel.org> [v4.2+] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> [natechancellor: Adjust context due to lack of b93b016313b3b] Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
90a32d1f0e |
mm/filemap.c: fix NULL pointer in page_cache_tree_insert()
commit abc1be13fd113ddef5e2d807a466286b864caed3 upstream. f2fs specifies the __GFP_ZERO flag for allocating some of its pages. Unfortunately, the page cache also uses the mapping's GFP flags for allocating radix tree nodes. It always masked off the __GFP_HIGHMEM flag, and masks off __GFP_ZERO in some paths, but not all. That causes radix tree nodes to be allocated with a NULL list_head, which causes backtraces like: __list_del_entry+0x30/0xd0 list_lru_del+0xac/0x1ac page_cache_tree_insert+0xd8/0x110 The __GFP_DMA and __GFP_DMA32 flags would also be able to sneak through if they are ever used. Fix them all by using GFP_RECLAIM_MASK at the innermost location, and remove it from earlier in the callchain. Link: http://lkml.kernel.org/r/20180411060320.14458-2-willy@infradead.org Fixes: 449dd6984d0e ("mm: keep page cache radix tree nodes in check") Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> Reported-by: Chris Fries <cfries@google.com> Debugged-by: Minchan Kim <minchan@kernel.org> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Jan Kara <jack@suse.cz> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
20eaa393fc |
mm, slab: reschedule cache_reap() on the same CPU
commit a9f2a846f0503e7d729f552e3ccfe2279010fe94 upstream. cache_reap() is initially scheduled in start_cpu_timer() via schedule_delayed_work_on(). But then the next iterations are scheduled via schedule_delayed_work(), i.e. using WORK_CPU_UNBOUND. Thus since commit ef557180447f ("workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs") there is no guarantee the future iterations will run on the originally intended cpu, although it's still preferred. I was able to demonstrate this with /sys/module/workqueue/parameters/debug_force_rr_cpu. IIUC, it may also happen due to migrating timers in nohz context. As a result, some cpu's would be calling cache_reap() more frequently and others never. This patch uses schedule_delayed_work_on() with the current cpu when scheduling the next iteration. Link: http://lkml.kernel.org/r/20180411070007.32225-1-vbabka@suse.cz Fixes: ef557180447f ("workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs") Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Pekka Enberg <penberg@kernel.org> Acked-by: Christoph Lameter <cl@linux.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: David Rientjes <rientjes@google.com> Cc: Tejun Heo <tj@kernel.org> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: John Stultz <john.stultz@linaro.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Stephen Boyd <sboyd@kernel.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
28cb085f15 |
mm/hmm: hmm_pfns_bad() was accessing wrong struct
commit c719547f032d4610c7a20900baacae26d0b1ff3e upstream. The private field of mm_walk struct point to an hmm_vma_walk struct and not to the hmm_range struct desired. Fix to get proper struct pointer. Link: http://lkml.kernel.org/r/20180323005527.758-6-jglisse@redhat.com Signed-off-by: Jérôme Glisse <jglisse@redhat.com> Cc: Evgeny Baskakov <ebaskakov@nvidia.com> Cc: Ralph Campbell <rcampbell@nvidia.com> Cc: Mark Hairgrove <mhairgrove@nvidia.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
e84e6914cc |
mm/ksm.c: fix inconsistent accounting of zero pages
commit a38c015f3156895b07e71d4e4414289f8a3b2745 upstream. When using KSM with use_zero_pages, we replace anonymous pages containing only zeroes with actual zero pages, which are not anonymous. We need to do proper accounting of the mm counters, otherwise we will get wrong values in /proc and a BUG message in dmesg when tearing down the mm. Link: http://lkml.kernel.org/r/1522931274-15552-1-git-send-email-imbrenda@linux.vnet.ibm.com Fixes: e86c59b1b1 ("mm/ksm: improve deduplication of zero pages with colouring") Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Hugh Dickins <hughd@google.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
bce6a97741 |
Merge android-4.14.35 (07e1389) into msm-4.14
* refs/heads/tmp-07e1389 Linux 4.14.35 nfsd: fix incorrect umasks hugetlbfs: fix bug in pgoff overflow checking xen: xenbus_dev_frontend: Fix XS_TRANSACTION_END handling ovl: fix lookup with middle layer opaque dir and absolute path redirects blk-mq: don't keep offline CPUs mapped to hctx 0 lib: fix stall in __bitmap_parselist() f2fs: fix heap mode to reset it back sunrpc: remove incorrect HMAC request initialization ath9k: Protect queue draining by rcu_read_lock() hwmon: (ina2xx) Fix access to uninitialized mutex x86/mce/AMD: Get address from already initialized block x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type x86/mce/AMD: Pass the bank number to smca_get_bank_type() x86/MCE: Report only DRAM ECC as memory errors on AMD systems rtl8187: Fix NULL pointer dereference in priv->conf_mutex Bluetooth: hci_bcm: Treat Interrupt ACPI resources as always being active-low Bluetooth: Fix connection if directed advertising and privacy is used getname_kernel() needs to make sure that ->name != ->iname in long case get_user_pages_fast(): return -EFAULT on access_ok failure s390/ipl: ensure loadparm valid flag is set s390/qdio: don't merge ERROR output buffers s390/qdio: don't retry EQBS after CCQ 96 nfit: fix region registration vs block-data-window ranges block/loop: fix deadlock after loop_set_status apparmor: fix resource audit messages when auditing peer apparmor: fix display of .ns_name for containers apparmor: fix logging of the existence test for signals scsi: qla2xxx: Fix small memory leak in qla2x00_probe_one on probe failure x86/MCE/AMD: Define a function to get SMCA bank type radeon: hide pointless #warning when compile testing perf/core: Fix use-after-free in uprobe_perf_close() perf intel-pt: Fix timestamp following overflow perf intel-pt: Fix error recovery from missing TIP packet perf intel-pt: Fix sync_switch perf intel-pt: Fix overlap detection to identify consecutive buffers correctly KVM: PPC: Book3S HV: trace_tlbie must not be called in realmode PCI: hv: Serialize the present and eject work items Drivers: hv: vmbus: do not mark HV_PCIE as perf_device parisc: Fix HPMC handler by increasing size to multiple of 16 bytes parisc: Fix out of array access in match_pci_device() media: v4l: vsp1: Fix header display list status check in continuous mode media: v4l2-compat-ioctl32: don't oops on overlay lan78xx: Correctly indicate invalid OTP vhost: Fix vhost_copy_to_user() vhost: fix vhost_vq_access_ok() log check slip: Check if rstate is initialized before uncompressing rds: MP-RDS may use an invalid c_path cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit() ANDROID: Add build server config for cuttlefish. ANDROID: Add defconfig for cuttlefish. FROMLIST: staging: Android: Add 'vsoc' driver for cuttlefish. ANDROID: cpufreq: Add time_in_state to /proc/uid directories ANDROID: proc: Add /proc/uid directory ANDROID: cpufreq: times: track per-uid time in state ANDROID: cpufreq: track per-task time in state f2fs/fscrypt: updates to v4.17-rc1 Change-Id: I0fdc9762e63ff9a9abb25e6adea0c723e517a2a6 Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org> Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org> |
||
|
07e1389288 |
This is the 4.14.35 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlrYPacACgkQONu9yGCS aT7Q4A//Q+1ytBiWunPksqjKyIUN10wvvic7KMUsXWoO0V0IamiuTQBcwfDdn9w7 ilIrPkMfW48r0gpLYyrmhQ/u6VDOaTRdAz5t9veStsr3p58e40uzhoCBqlOGaQYO yCa7YZ1AWKAHkgfeLUevRd1oHq7eQ6BgtIzB6XBzxO8WhKa4EU6GuxvrbGdn1YNR tCkfHkwyp0OoPt8mbxw46A7+40nrGSWqp+ubFFrr2I0xd4gJJ1Xadj5DTxAf2uQS H0wbUqYHOoT94eB6QfwM/uBYQQV6QYFRItQsMb4zZM9/9uTjWug25PXCXvaR/Hsg ek2WPtHxW62suiHDi2vt+GqrlswD4vQ0FJvLBGSmyzpLuVE8281Jm0C23KFI+4lR gcXrtrdYNnKc5OSc0f7qqg66amBQJ14diLPxmfWMhou/3cCsn9bRnU7GIimnrD/Z fzlDi3fQcgpbiC38FnfLXy8spcYNwiul3YNgVSS0B8pjLNmq3RFiYrBF3GR4y7dZ bcNer1QhmNT1grutUXmTPdXI0BGXWjNTT6kxzNqv70YE56mQgXNXIljGZ3LptXMn nCHkKyGEQlTxR5lsiZ4nmcwvdAdcCMfMfNpMftrmp8tBzMGgcGyIqwhhNnkommon Q5sV5ND1qAd+OdWLP42bqMIN84khxynACzYNBN/ukrWHglcWEoo= =2Q90 -----END PGP SIGNATURE----- Merge 4.14.35 into android-4.14 Changes in 4.14.35 netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit() cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN rds: MP-RDS may use an invalid c_path slip: Check if rstate is initialized before uncompressing vhost: fix vhost_vq_access_ok() log check vhost: Fix vhost_copy_to_user() lan78xx: Correctly indicate invalid OTP media: v4l2-compat-ioctl32: don't oops on overlay media: v4l: vsp1: Fix header display list status check in continuous mode parisc: Fix out of array access in match_pci_device() parisc: Fix HPMC handler by increasing size to multiple of 16 bytes Drivers: hv: vmbus: do not mark HV_PCIE as perf_device PCI: hv: Serialize the present and eject work items KVM: PPC: Book3S HV: trace_tlbie must not be called in realmode perf intel-pt: Fix overlap detection to identify consecutive buffers correctly perf intel-pt: Fix sync_switch perf intel-pt: Fix error recovery from missing TIP packet perf intel-pt: Fix timestamp following overflow perf/core: Fix use-after-free in uprobe_perf_close() radeon: hide pointless #warning when compile testing x86/MCE/AMD: Define a function to get SMCA bank type scsi: qla2xxx: Fix small memory leak in qla2x00_probe_one on probe failure apparmor: fix logging of the existence test for signals apparmor: fix display of .ns_name for containers apparmor: fix resource audit messages when auditing peer block/loop: fix deadlock after loop_set_status nfit: fix region registration vs block-data-window ranges s390/qdio: don't retry EQBS after CCQ 96 s390/qdio: don't merge ERROR output buffers s390/ipl: ensure loadparm valid flag is set get_user_pages_fast(): return -EFAULT on access_ok failure getname_kernel() needs to make sure that ->name != ->iname in long case Bluetooth: Fix connection if directed advertising and privacy is used Bluetooth: hci_bcm: Treat Interrupt ACPI resources as always being active-low rtl8187: Fix NULL pointer dereference in priv->conf_mutex x86/MCE: Report only DRAM ECC as memory errors on AMD systems x86/mce/AMD: Pass the bank number to smca_get_bank_type() x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type x86/mce/AMD: Get address from already initialized block hwmon: (ina2xx) Fix access to uninitialized mutex ath9k: Protect queue draining by rcu_read_lock() sunrpc: remove incorrect HMAC request initialization f2fs: fix heap mode to reset it back lib: fix stall in __bitmap_parselist() blk-mq: don't keep offline CPUs mapped to hctx 0 ovl: fix lookup with middle layer opaque dir and absolute path redirects xen: xenbus_dev_frontend: Fix XS_TRANSACTION_END handling hugetlbfs: fix bug in pgoff overflow checking nfsd: fix incorrect umasks Linux 4.14.35 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
adea72f0e5 |
get_user_pages_fast(): return -EFAULT on access_ok failure
commit c61611f70958d86f659bca25c02ae69413747a8d upstream. get_user_pages_fast is supposed to be a faster drop-in equivalent of get_user_pages. As such, callers expect it to return a negative return code when passed an invalid address, and never expect it to return 0 when passed a positive number of pages, since its documentation says: * Returns number of pages pinned. This may be fewer than the number * requested. If nr_pages is 0 or negative, returns 0. If no pages * were pinned, returns -errno. When get_user_pages_fast fall back on get_user_pages this is exactly what happens. Unfortunately the implementation is inconsistent: it returns 0 if passed a kernel address, confusing callers: for example, the following is pretty common but does not appear to do the right thing with a kernel address: ret = get_user_pages_fast(addr, 1, writeable, &page); if (ret < 0) return ret; Change get_user_pages_fast to return -EFAULT when supplied a kernel address to make it match expectations. All callers have been audited for consistency with the documented semantics. Link: http://lkml.kernel.org/r/1522962072-182137-4-git-send-email-mst@redhat.com Fixes: 5b65c4677a57 ("mm, x86/mm: Fix performance regression in get_user_pages_fast()") Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reported-by: syzbot+6304bf97ef436580fede@syzkaller.appspotmail.com Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Huang Ying <ying.huang@intel.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Thorsten Leemhuis <regressions@leemhuis.info> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
da79c56833 |
Merge changes I7d83113e,Iab5cb23d into msm-4.14
* changes: Merge remote-tracking branch 'remotes/origin/tmp-7e76ead' into msm-4.14 Merge remote-tracking branch 'remotes/origin/tmp-27e69ad' into msm-4.14 |
||
|
070659e590 |
mm/memblock.c: cast constant ULLONG_MAX to phys_addr_t
This fixes a warning shown when phys_addr_t is 32-bit int when compiling with clang: mm/memblock.c:927:15: warning: implicit conversion from 'unsigned long long' to 'phys_addr_t' (aka 'unsigned int') changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion] r->base : ULLONG_MAX; ^~~~~~~~~~ ./include/linux/kernel.h:30:21: note: expanded from macro 'ULLONG_MAX' #define ULLONG_MAX (~0ULL) ^~~~~ Change-Id: I23a1b8b2054ca93ed70d462285af8405fe8fe0b4 Link: http://lkml.kernel.org/r/20180319005645.29051-1-stefan@agner.ch Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Pavel Tatashin <pasha.tatashin@oracle.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Git-commit: 644d87dccdc69cf79834a72ed0c889580d6af32a Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git Signed-off-by: Charan Teja Reddy <charante@codeaurora.org> |
||
|
b0166e2f2f |
Merge remote-tracking branch 'remotes/origin/tmp-27e69ad' into msm-4.14
* remotes/origin/tmp-27e69ad: Linux 4.14.33 Revert "ip6_vti: adjust vti mtu according to mtu of lower device" Revert "cpufreq: Fix governor module removal race" Revert "ARM: dts: omap3-n900: Fix the audio CODEC's reset pin" Revert "ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin" Fix slab name "biovec-(1<<(21-12))" net: hns: Fix ethtool private flags ARM: dts: DRA76-EVM: Set powerhold property for tps65917 vt: change SGR 21 to follow the standards Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370 Revert "base: arch_topology: fix section mismatch build warnings" staging: comedi: ni_mio_common: ack ai fifo error interrupts. Btrfs: fix unexpected cow in run_delalloc_nocow crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one crypto: arm,arm64 - Fix random regeneration of S_shipped crypto: ccp - return an actual key size from RSA max_size callback crypto: caam - Fix null dereference at error path crypto: ahash - Fix early termination in hash walk crypto: testmgr - Fix incorrect values in PKCS#1 test vector crypto: inside-secure - fix clock management crypto: lrw - Free rctx->ext with kzfree parport_pc: Add support for WCH CH382L PCI-E single parallel port card. media: usbtv: prevent double free in error case /dev/mem: Avoid overwriting "err" in read_mem() mei: remove dev_err message on an unsupported ioctl serial: 8250: Add Nuvoton NPCM UART USB: serial: cp210x: add ELDAT Easywave RX09 id USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator USB: serial: ftdi_sio: add RT Systems VX-8 cable bitmap: fix memset optimization on big-endian systems usb: dwc2: Improve gadget state disconnection handling Bluetooth: Fix missing encryption refresh on Security Request phy: qcom-ufs: add MODULE_LICENSE tag netfilter: x_tables: add and use xt_check_proc_name netfilter: drop template ct when conntrack is skipped. l2tp: fix races with ipv4-mapped ipv6 addresses netfilter: bridge: ebt_among: add more missing match size checks netfilter: x_tables: make allocation less aggressive percpu: add __GFP_NORETRY semantics to the percpu balancing path xfrm: Refuse to insert 32 bit userspace socket policies on 64 bit systems net: xfrm: use preempt-safe this_cpu_read() in ipcomp_alloc_tfms() RDMA/ucma: Introduce safer rdma_addr_size() variants RDMA/ucma: Check that device exists prior to accessing it RDMA/ucma: Check that device is connected prior to access it RDMA/rdma_cm: Fix use after free race with process_one_req RDMA/ucma: Ensure that CM_ID exists prior to access it RDMA/ucma: Fix use-after-free access in ucma_close RDMA/ucma: Check AF family prior resolving address xfrm_user: uncoditionally validate esn replay attribute struct partitions/msdos: Unable to mount UFS 44bsd partitions powerpc/64s: Fix i-side SLB miss bad address handler saving nonvolatile GPRs powerpc/64s: Fix lost pending interrupt due to race causing lost update to irq_happened i2c: i2c-stm32f7: fix no check on returned setup ipc/shm.c: add split function to shm_vm_ops ceph: only dirty ITER_IOVEC pages for direct read perf/hwbp: Simplify the perf-hwbp code, fix documentation x86/platform/uv/BAU: Add APIC idt entry ALSA: pcm: potential uninitialized return values ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent() ALSA: usb-audio: Add native DSD support for TEAC UD-301 mtd: nand: atmel: Fix get_sectorsize() function mtd: jedec_probe: Fix crash in jedec_read_mfr() ARM: dts: sun6i: a31s: bpi-m2: add missing regulators ARM: dts: sun6i: a31s: bpi-m2: improve pmic properties ARM: 8746/1: vfp: Go back to clearing vfp_current_hw_state[] ARM: OMAP: Fix SRAM W+X mapping ANDROID: fuse: Add null terminator to path in canonical path to avoid issue ANDROID: sdcardfs: Fix sdcardfs to stop creating cases-sensitive duplicate entries. Conflicts: drivers/phy/qualcomm/phy-qcom-ufs.c Change-Id: Iab5cb23d596cebf19e0eb63a71828507dfb47054 Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org> |
||
|
002720e74a |
mm/kmemleak.c: wait for scan completion before disabling free
A crash is observed when kmemleak_scan accesses the object->pointer, likely due to the following race. TASK A TASK B TASK C kmemleak_write (with "scan" and NOT "scan=on") kmemleak_scan() create_object kmem_cache_alloc fails kmemleak_disable kmemleak_do_cleanup kmemleak_free_enabled = 0 kfree kmemleak_free bails out (kmemleak_free_enabled is 0) slub frees object->pointer update_checksum crash - object->pointer freed (DEBUG_PAGEALLOC) kmemleak_do_cleanup waits for the scan thread to complete, but not for direct call to kmemleak_scan via kmemleak_write. So add a wait for kmemleak_scan completion before disabling kmemleak_free, and while at it fix the comment on stop_scan_thread. [vinmenon@codeaurora.org: fix stop_scan_thread comment] Link: http://lkml.kernel.org/r/1522219972-22809-1-git-send-email-vinmenon@codeaurora.org Link: http://lkml.kernel.org/r/1522063429-18992-1-git-send-email-vinmenon@codeaurora.org Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Git-Commit: 5b909d2e92fc6b741b283cb6f34fa6ecd01fba4c Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git Change-Id: Id5ae7f105c70739cc83dd3e4cb3a676410f93632 Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org> |
||
|
27e69ad2ae |
This is the 4.14.33 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlrKCn4ACgkQONu9yGCS aT5N9Q//fD3Bsaf4GuQxBLR0Jd6tNpunTMyc98TxQ1SUqN72YHiVhhZ88F5syRXd OsdOUIbmlnGPGfiV4sFf9HPmji4OCmTwBdWOjeja75TjApJ98H1gMUlULbiFYgdc TMitrwfNmxjUsdbCUGO2E3+9xKXjWcqmDfqeE4zano9iejPLiDwulIiG52QTVIlY FGm0nxYPq2A4AlF4u2B7sHaf1PEeopcmx/wNaAAZQf3pzXo8SukThQaeQihYMUv2 4iU6EDmorTFy2V+r6N58AU4BEVj1fsiWLVObNRjfRkQ6NiljhzHgoSxrqXF+lOFu ZGOOLJ7oiVJMXBBFKkDCA9qKvLcVRmwEz8gwdvylhWuOoUIvRxfPBdbPenz7YXYS 0ySXA0zU6KT31O+70ryE2UQonQ27fF71hohBRm1a5Z88uy24eCbFR1b5+8ldVKeF 2SFruhtoaI9iG6aaIFW8bNLVU3d5wyhp+NrL57y4STeR/fDC5ed3jnaOaXKpM4Dl DnteX/UtTvlVTwhBNgSEaCxB53gHWM9/ueEJaijfSiQVaIyrXL0atz8ZhZPlXwVG n13Dl4nWbXO6/TckK+VqhCTJ/54vEZzKfvR6u9+QiusA5AcS5rFz/4nQx6fVpt1z XgmUPtaC63TPc7E3iY/SvX2FtOWpdjqR/Tv32xbIjwSfDdnOl2M= =kd9N -----END PGP SIGNATURE----- Merge 4.14.33 into android-4.14 Changes in 4.14.33 ARM: OMAP: Fix SRAM W+X mapping ARM: 8746/1: vfp: Go back to clearing vfp_current_hw_state[] ARM: dts: sun6i: a31s: bpi-m2: improve pmic properties ARM: dts: sun6i: a31s: bpi-m2: add missing regulators mtd: jedec_probe: Fix crash in jedec_read_mfr() mtd: nand: atmel: Fix get_sectorsize() function ALSA: usb-audio: Add native DSD support for TEAC UD-301 ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent() ALSA: pcm: potential uninitialized return values x86/platform/uv/BAU: Add APIC idt entry perf/hwbp: Simplify the perf-hwbp code, fix documentation ceph: only dirty ITER_IOVEC pages for direct read ipc/shm.c: add split function to shm_vm_ops i2c: i2c-stm32f7: fix no check on returned setup powerpc/64s: Fix lost pending interrupt due to race causing lost update to irq_happened powerpc/64s: Fix i-side SLB miss bad address handler saving nonvolatile GPRs partitions/msdos: Unable to mount UFS 44bsd partitions xfrm_user: uncoditionally validate esn replay attribute struct RDMA/ucma: Check AF family prior resolving address RDMA/ucma: Fix use-after-free access in ucma_close RDMA/ucma: Ensure that CM_ID exists prior to access it RDMA/rdma_cm: Fix use after free race with process_one_req RDMA/ucma: Check that device is connected prior to access it RDMA/ucma: Check that device exists prior to accessing it RDMA/ucma: Introduce safer rdma_addr_size() variants net: xfrm: use preempt-safe this_cpu_read() in ipcomp_alloc_tfms() xfrm: Refuse to insert 32 bit userspace socket policies on 64 bit systems percpu: add __GFP_NORETRY semantics to the percpu balancing path netfilter: x_tables: make allocation less aggressive netfilter: bridge: ebt_among: add more missing match size checks l2tp: fix races with ipv4-mapped ipv6 addresses netfilter: drop template ct when conntrack is skipped. netfilter: x_tables: add and use xt_check_proc_name phy: qcom-ufs: add MODULE_LICENSE tag Bluetooth: Fix missing encryption refresh on Security Request usb: dwc2: Improve gadget state disconnection handling bitmap: fix memset optimization on big-endian systems USB: serial: ftdi_sio: add RT Systems VX-8 cable USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator USB: serial: cp210x: add ELDAT Easywave RX09 id serial: 8250: Add Nuvoton NPCM UART mei: remove dev_err message on an unsupported ioctl /dev/mem: Avoid overwriting "err" in read_mem() media: usbtv: prevent double free in error case parport_pc: Add support for WCH CH382L PCI-E single parallel port card. crypto: lrw - Free rctx->ext with kzfree crypto: inside-secure - fix clock management crypto: testmgr - Fix incorrect values in PKCS#1 test vector crypto: ahash - Fix early termination in hash walk crypto: caam - Fix null dereference at error path crypto: ccp - return an actual key size from RSA max_size callback crypto: arm,arm64 - Fix random regeneration of S_shipped crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one Btrfs: fix unexpected cow in run_delalloc_nocow staging: comedi: ni_mio_common: ack ai fifo error interrupts. Revert "base: arch_topology: fix section mismatch build warnings" Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370 Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad vt: change SGR 21 to follow the standards ARM: dts: DRA76-EVM: Set powerhold property for tps65917 net: hns: Fix ethtool private flags Fix slab name "biovec-(1<<(21-12))" Revert "ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin" Revert "ARM: dts: omap3-n900: Fix the audio CODEC's reset pin" Revert "cpufreq: Fix governor module removal race" Revert "ip6_vti: adjust vti mtu according to mtu of lower device" Linux 4.14.33 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
72682b162d |
percpu: add __GFP_NORETRY semantics to the percpu balancing path
commit 47504ee04b9241548ae2c28be7d0b01cff3b7aa6 upstream. Percpu memory using the vmalloc area based chunk allocator lazily populates chunks by first requesting the full virtual address space required for the chunk and subsequently adding pages as allocations come through. To ensure atomic allocations can succeed, a workqueue item is used to maintain a minimum number of empty pages. In certain scenarios, such as reported in [1], it is possible that physical memory becomes quite scarce which can result in either a rather long time spent trying to find free pages or worse, a kernel panic. This patch adds support for __GFP_NORETRY and __GFP_NOWARN passing them through to the underlying allocators. This should prevent any unnecessary panics potentially caused by the workqueue item. The passing of gfp around is as additional flags rather than a full set of flags. The next patch will change these to caller passed semantics. V2: Added const modifier to gfp flags in the balance path. Removed an extra whitespace. [1] https://lkml.org/lkml/2018/2/12/551 Signed-off-by: Dennis Zhou <dennisszhou@gmail.com> Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Reported-by: syzbot+adb03f3f0bb57ce3acda@syzkaller.appspotmail.com Acked-by: Christoph Lameter <cl@linux.com> Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
976852dffe |
Merge remote-tracking branch 'remotes/origin/tmp-331d833' into msm-4.14
* remotes/origin/tmp-331d833: Linux 4.14.31 bpf, x64: increase number of passes bpf: skip unnecessary capability check kbuild: disable clang's default use of -fmerge-all-constants x86/pkeys/selftests: Rename 'si_pkey' to 'siginfo_pkey' usb: xhci: Fix potential memory leak in xhci_disable_slot() usb: xhci: Disable slot even when virt-dev is null staging: lustre: ptlrpc: kfree used instead of kvfree staging: android: ion: Zero CMA allocated memory iio: imu: st_lsm6dsx: fix endianness in st_lsm6dsx_read_oneshot() iio: ABI: Fix name of timestamp sysfs file perf/x86/intel/uncore: Fix multi-domain PCI CHA enumeration bug on Skylake servers perf/x86/intel: Don't accidentally clear high bits in bdw_limit_period() perf/core: Fix ctx_event_type in ctx_resched() perf stat: Fix CVS output format for non-supported counters perf/x86/intel/uncore: Fix Skylake UPI event format drm/syncobj: Stop reusing the same struct file for all syncobj -> fd x86/boot/64: Verify alignment of the LOAD segment x86/build/64: Force the linker to use 2MB page size kvm/x86: fix icebp instruction handling posix-timers: Protect posix clock array access against speculation x86/efi: Free efi_pgd with free_pages() x86/vsyscall/64: Use proper accessor to update P4D entry selftests/x86/ptrace_syscall: Fix for yet more glibc interference x86/entry/64: Don't use IST entry for #BP stack tty: vt: fix up tabstops properly can: cc770: Fix use after free in cc770_tx_interrupt() can: cc770: Fix queue stall & dropped RTR reply can: cc770: Fix stalls on rt-linux, remove redundant IRQ ack can: ifi: Check core revision upon probe can: ifi: Repair the error handling can: peak/pcie_fd: remove useless code when interface starts can: peak/pcie_fd: fix echo_skb is occupied! bug staging: ncpfs: memory corruption in ncp_read_kernel() mtd: nand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0 mtd: nand: fsl_ifc: Fix eccstat array overflow for IFC ver >= 2.0.0 mtd: nand: fsl_ifc: Fix nand waitfunc return value mtdchar: fix usage of mtd_ooblayout_ecc() tracing: probeevent: Fix to support minus offset from symbol rtlwifi: rtl8723be: Fix loss of signal brcmfmac: fix P2P_DEVICE ethernet address generation libnvdimm, {btt, blk}: do integrity setup before add_disk() ACPI / watchdog: Fix off-by-one error at resource assignment acpi, numa: fix pxm to online numa node associations mm/vmscan: wake up flushers for legacy cgroups too drm: udl: Properly check framebuffer mmap offsets drm: Reject getfb for multi-plane framebuffers drm/radeon: Don't turn off DP sink when disconnected drm/vmwgfx: Fix a destoy-while-held mutex problem. drm/vmwgfx: Fix black screen and device errors when running without fbdev Revert "mm: page_alloc: skip over regions of invalid pfns where possible" mm/shmem: do not wait for lock_page() in shmem_unused_huge_shrink() mm/thp: do not wait for lock_page() in deferred_split_scan() mm/khugepaged.c: convert VM_BUG_ON() to collapse fail x86/mm: implement free pmd/pte page interfaces mm/vmalloc: add interfaces to free unmapped page table h8300: remove extraneous __BIG_ENDIAN definition hugetlbfs: check for pgoff value overflow nfsd: remove blocked locks on client teardown cgroup: fix rule checking for threaded mode switching libata: Modify quirks for MX100 to limit NCQ_TRIM quirk to MU01 version libata: Make Crucial BX100 500GB LPM quirk apply to all firmware versions libata: Apply NOLPM quirk to Crucial M500 480 and 960GB SSDs libata: Enable queued TRIM for Samsung SSD 860 libata: disable LPM for Crucial BX100 SSD 500GB drive libata: Apply NOLPM quirk to Crucial MX100 512GB SSDs libata: don't try to pass through NCQ commands to non-NCQ devices libata: remove WARN() for DMA or PIO command without data libata: fix length validation of ATAPI-relayed SCSI commands Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174 Bluetooth: btusb: Add Dell OptiPlex 3060 to btusb_needs_reset_resume_table Bluetooth: btusb: Remove Yoga 920 from the btusb_needs_reset_resume_table pinctrl: samsung: Validate alias coming from DT Drivers: hv: vmbus: Fix ring buffer signaling RDMA/mlx5: Fix crash while accessing garbage pointer and freed memory clk: sunxi-ng: a31: Fix CLK_OUT_* clock ops clk: bcm2835: Protect sections updating shared registers clk: bcm2835: Fix ana->maskX definitions lockdep: fix fs_reclaim warning ahci: Add PCI-id for the Highpoint Rocketraid 644L card PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L mmc: dw_mmc: fix falling from idmac to PIO mode when dw_mci_reset occurs mmc: dw_mmc: exynos: fix the suspend/resume issue for exynos5433 mmc: dw_mmc: Fix the DTO/CTO timeout overflow calculation for 32-bit systems mmc: block: fix updating ext_csd caches on ioctl call mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards mmc: core: Fix tracepoint print of blk_addr and blksz ALSA: hda/realtek - Always immediately update mute LED with pin VREF ALSA: hda/realtek - Fix Dell headset Mic can't record ALSA: hda/realtek - Fix speaker no sound after system resume ALSA: hda - Force polling mode on CFL for fixing codec communication ALSA: aloop: Fix access to not-yet-ready substream via cable ALSA: aloop: Sync stale timer before release ALSA: usb-audio: Fix parsing descriptor of UAC2 processing unit iio: adc: meson-saradc: unlock on error in meson_sar_adc_lock() iio: st_pressure: st_accel: pass correct platform data to init iio: chemical: ccs811: Corrected firmware boot/application mode transition MIPS: lantiq: ase: Enable MFD_SYSCON MIPS: lantiq: Enable AHB Bus for USB MIPS: lantiq: Fix Danube USB clock MIPS: ralink: Fix booting on MT7621 MIPS: ralink: Remove ralink_halt() ANDROID: arm64: Image.gz-dtb build target depends on Image.gz Conflicts: drivers/staging/android/ion/ion_cma_heap.c Change-Id: I1ed32b5d3bcf4db15991859bdd89fed0d70fdb86 Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org> |
||
|
331d833ece |
This is the 4.14.31 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlq7wdMACgkQONu9yGCS aT70mg//WB+ClT+ek6RRdhQglQWXMrqk+bv6mO+zGARnq09RfnBeK8vSfijOlgFx ZPrtv1EjyEBfH3mEkYG9S8hQmrkX4c1TWu6litN4z21dbrkx7QoWlvUDxMcWOjD0 kcjFX95SKcAswMpdkRuVIVirdPcaT98F0+RDNVwVdD6rC34ZhACXELJSiGaMR2nX 1lVjq+/ixuP7xr7L38KE0Bb3vdATCHE7BsHzSikXhFEwXdORRQDVO/YlUvBmAi1j vOoTZSAq1EDHe+Wp4uWMYKr1LYhY55lCndfXz+gTopFWdqGmh4iN7aU5giHHa7ff pznFCzDFpNMhWitDns0wh9RHgIgrJcEFNFef7Z3OOghtnh4tTmWe3LxtcbnzXRrd jrGBSlLHe/4VsAcWIDyx8ujq05qbggFD+dJuK6LSMV/GLiQ0hzQYf92x2WI5Qwd/ d0Iiq0bHygZMmTty1J1kXELiJLsMObQvgEcnDTM6bw+KRA7l26F5Tkwa6JRdytoG ZG58TL5vpJRFwqVA3jwWkUNUydmipqWiR0wIsGiqSDSQaUoNHM1UIXuZke4TT2I/ Bl+MtbR/s85Y3nJX48XUPn1rY7a2mjyvWcLgXryf0wb5rA4Te+anC0xN694tvs6O Fgt/vPkOFaWiBSKaRQHl25BegJI2fnbIrWy1Gy2jYG0T1NyMrZc= =8/Im -----END PGP SIGNATURE----- Merge 4.14.31 into android-4.14 Changes in 4.14.31 MIPS: ralink: Remove ralink_halt() MIPS: ralink: Fix booting on MT7621 MIPS: lantiq: Fix Danube USB clock MIPS: lantiq: Enable AHB Bus for USB MIPS: lantiq: ase: Enable MFD_SYSCON iio: chemical: ccs811: Corrected firmware boot/application mode transition iio: st_pressure: st_accel: pass correct platform data to init iio: adc: meson-saradc: unlock on error in meson_sar_adc_lock() ALSA: usb-audio: Fix parsing descriptor of UAC2 processing unit ALSA: aloop: Sync stale timer before release ALSA: aloop: Fix access to not-yet-ready substream via cable ALSA: hda - Force polling mode on CFL for fixing codec communication ALSA: hda/realtek - Fix speaker no sound after system resume ALSA: hda/realtek - Fix Dell headset Mic can't record ALSA: hda/realtek - Always immediately update mute LED with pin VREF mmc: core: Fix tracepoint print of blk_addr and blksz mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards mmc: block: fix updating ext_csd caches on ioctl call mmc: dw_mmc: Fix the DTO/CTO timeout overflow calculation for 32-bit systems mmc: dw_mmc: exynos: fix the suspend/resume issue for exynos5433 mmc: dw_mmc: fix falling from idmac to PIO mode when dw_mci_reset occurs PCI: Add function 1 DMA alias quirk for Highpoint RocketRAID 644L ahci: Add PCI-id for the Highpoint Rocketraid 644L card lockdep: fix fs_reclaim warning clk: bcm2835: Fix ana->maskX definitions clk: bcm2835: Protect sections updating shared registers clk: sunxi-ng: a31: Fix CLK_OUT_* clock ops RDMA/mlx5: Fix crash while accessing garbage pointer and freed memory Drivers: hv: vmbus: Fix ring buffer signaling pinctrl: samsung: Validate alias coming from DT Bluetooth: btusb: Remove Yoga 920 from the btusb_needs_reset_resume_table Bluetooth: btusb: Add Dell OptiPlex 3060 to btusb_needs_reset_resume_table Bluetooth: btusb: Fix quirk for Atheros 1525/QCA6174 libata: fix length validation of ATAPI-relayed SCSI commands libata: remove WARN() for DMA or PIO command without data libata: don't try to pass through NCQ commands to non-NCQ devices libata: Apply NOLPM quirk to Crucial MX100 512GB SSDs libata: disable LPM for Crucial BX100 SSD 500GB drive libata: Enable queued TRIM for Samsung SSD 860 libata: Apply NOLPM quirk to Crucial M500 480 and 960GB SSDs libata: Make Crucial BX100 500GB LPM quirk apply to all firmware versions libata: Modify quirks for MX100 to limit NCQ_TRIM quirk to MU01 version cgroup: fix rule checking for threaded mode switching nfsd: remove blocked locks on client teardown hugetlbfs: check for pgoff value overflow h8300: remove extraneous __BIG_ENDIAN definition mm/vmalloc: add interfaces to free unmapped page table x86/mm: implement free pmd/pte page interfaces mm/khugepaged.c: convert VM_BUG_ON() to collapse fail mm/thp: do not wait for lock_page() in deferred_split_scan() mm/shmem: do not wait for lock_page() in shmem_unused_huge_shrink() Revert "mm: page_alloc: skip over regions of invalid pfns where possible" drm/vmwgfx: Fix black screen and device errors when running without fbdev drm/vmwgfx: Fix a destoy-while-held mutex problem. drm/radeon: Don't turn off DP sink when disconnected drm: Reject getfb for multi-plane framebuffers drm: udl: Properly check framebuffer mmap offsets mm/vmscan: wake up flushers for legacy cgroups too acpi, numa: fix pxm to online numa node associations ACPI / watchdog: Fix off-by-one error at resource assignment libnvdimm, {btt, blk}: do integrity setup before add_disk() brcmfmac: fix P2P_DEVICE ethernet address generation rtlwifi: rtl8723be: Fix loss of signal tracing: probeevent: Fix to support minus offset from symbol mtdchar: fix usage of mtd_ooblayout_ecc() mtd: nand: fsl_ifc: Fix nand waitfunc return value mtd: nand: fsl_ifc: Fix eccstat array overflow for IFC ver >= 2.0.0 mtd: nand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0 staging: ncpfs: memory corruption in ncp_read_kernel() can: peak/pcie_fd: fix echo_skb is occupied! bug can: peak/pcie_fd: remove useless code when interface starts can: ifi: Repair the error handling can: ifi: Check core revision upon probe can: cc770: Fix stalls on rt-linux, remove redundant IRQ ack can: cc770: Fix queue stall & dropped RTR reply can: cc770: Fix use after free in cc770_tx_interrupt() tty: vt: fix up tabstops properly x86/entry/64: Don't use IST entry for #BP stack selftests/x86/ptrace_syscall: Fix for yet more glibc interference x86/vsyscall/64: Use proper accessor to update P4D entry x86/efi: Free efi_pgd with free_pages() posix-timers: Protect posix clock array access against speculation kvm/x86: fix icebp instruction handling x86/build/64: Force the linker to use 2MB page size x86/boot/64: Verify alignment of the LOAD segment drm/syncobj: Stop reusing the same struct file for all syncobj -> fd perf/x86/intel/uncore: Fix Skylake UPI event format perf stat: Fix CVS output format for non-supported counters perf/core: Fix ctx_event_type in ctx_resched() perf/x86/intel: Don't accidentally clear high bits in bdw_limit_period() perf/x86/intel/uncore: Fix multi-domain PCI CHA enumeration bug on Skylake servers iio: ABI: Fix name of timestamp sysfs file iio: imu: st_lsm6dsx: fix endianness in st_lsm6dsx_read_oneshot() staging: android: ion: Zero CMA allocated memory staging: lustre: ptlrpc: kfree used instead of kvfree usb: xhci: Disable slot even when virt-dev is null usb: xhci: Fix potential memory leak in xhci_disable_slot() x86/pkeys/selftests: Rename 'si_pkey' to 'siginfo_pkey' kbuild: disable clang's default use of -fmerge-all-constants bpf: skip unnecessary capability check bpf, x64: increase number of passes Linux 4.14.31 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
b8b8151806 |
mm/vmscan: wake up flushers for legacy cgroups too
commit 1c610d5f93c709df56787f50b3576704ac271826 upstream. Commit 726d061fbd36 ("mm: vmscan: kick flushers when we encounter dirty pages on the LRU") added flusher invocation to shrink_inactive_list() when many dirty pages on the LRU are encountered. However, shrink_inactive_list() doesn't wake up flushers for legacy cgroup reclaim, so the next commit bbef938429f5 ("mm: vmscan: remove old flusher wakeup from direct reclaim path") removed the only source of flusher's wake up in legacy mem cgroup reclaim path. This leads to premature OOM if there is too many dirty pages in cgroup: # mkdir /sys/fs/cgroup/memory/test # echo $$ > /sys/fs/cgroup/memory/test/tasks # echo 50M > /sys/fs/cgroup/memory/test/memory.limit_in_bytes # dd if=/dev/zero of=tmp_file bs=1M count=100 Killed dd invoked oom-killer: gfp_mask=0x14000c0(GFP_KERNEL), nodemask=(null), order=0, oom_score_adj=0 Call Trace: dump_stack+0x46/0x65 dump_header+0x6b/0x2ac oom_kill_process+0x21c/0x4a0 out_of_memory+0x2a5/0x4b0 mem_cgroup_out_of_memory+0x3b/0x60 mem_cgroup_oom_synchronize+0x2ed/0x330 pagefault_out_of_memory+0x24/0x54 __do_page_fault+0x521/0x540 page_fault+0x45/0x50 Task in /test killed as a result of limit of /test memory: usage 51200kB, limit 51200kB, failcnt 73 memory+swap: usage 51200kB, limit 9007199254740988kB, failcnt 0 kmem: usage 296kB, limit 9007199254740988kB, failcnt 0 Memory cgroup stats for /test: cache:49632KB rss:1056KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:49500KB writeback:0KB swap:0KB inactive_anon:0KB active_anon:1168KB inactive_file:24760KB active_file:24960KB unevictable:0KB Memory cgroup out of memory: Kill process 3861 (bash) score 88 or sacrifice child Killed process 3876 (dd) total-vm:8484kB, anon-rss:1052kB, file-rss:1720kB, shmem-rss:0kB oom_reaper: reaped process 3876 (dd), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB Wake up flushers in legacy cgroup reclaim too. Link: http://lkml.kernel.org/r/20180315164553.17856-1-aryabinin@virtuozzo.com Fixes: bbef938429f5 ("mm: vmscan: remove old flusher wakeup from direct reclaim path") Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Tested-by: Shakeel Butt <shakeelb@google.com> Acked-by: Michal Hocko <mhocko@suse.cz> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Tejun Heo <tj@kernel.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |