Linux 4.4.219
drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read()
clk: qcom: rcg: Return failure for RCG update
RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
ASoC: jz4740-i2s: Fix divider written at incorrect offset in register
xen-netfront: Update features after registering netdev
xen-netfront: Fix mismatched rtnl_unlock
power: supply: axp288_charger: Fix unchecked return value
tools/accounting/getdelays.c: fix netlink attribute length
* random: always use batched entropy for get_random_u{32,64}
drivers/char/random.c
slcan: Don't transmit uninitialized stack data in padding
net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting
mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
padata: always acquire cpu_hotplug_lock before pinst->lock
usb: gadget: printer: Drop unused device qualifier descriptor
usb: gadget: uac2: Drop unused device qualifier descriptor
* l2tp: fix race between l2tp_session_delete() and l2tp_tunnel_closeall()
net/l2tp/l2tp_core.c
net/l2tp/l2tp_core.h
* l2tp: ensure sessions are freed after their PPPOL2TP socket
net/l2tp/l2tp_ppp.c
* l2tp: Refactor the codes with existing macros instead of literal number
net/l2tp/l2tp_ppp.c
* l2tp: fix duplicate session creation
net/l2tp/l2tp_core.c
net/l2tp/l2tp_eth.c
net/l2tp/l2tp_ppp.c
* l2tp: ensure session can't get removed during pppol2tp_session_ioctl()
net/l2tp/l2tp_ppp.c
* l2tp: fix race in l2tp_recv_common()
net/l2tp/l2tp_core.c
net/l2tp/l2tp_core.h
net/l2tp/l2tp_ip.c
net/l2tp/l2tp_ip6.c
* net: l2tp: Make l2tp_ip6 namespace aware
net/l2tp/l2tp_ip6.c
* l2tp: Correctly return -EBADF from pppol2tp_getname.
net/l2tp/l2tp_ppp.c
sctp: fix possibly using a bad saddr with a given dst
* net, ip_tunnel: fix interface lookup with no key
net/ipv4/ip_tunnel.c
* ipv4: fix a RCU-list lock in fib_triestat_seq_show
net/ipv4/fib_trie.c
drm/bochs: downgrade pci_request_region failure from error to warning
Linux 4.4.218
perf map: Fix off by one in strncpy() size argument
net: ks8851-ml: Fix IO operations, again
bpf: Explicitly memset the bpf_attr structure
vt: vt_ioctl: fix use-after-free in vt_in_use()
* locking/atomic, kref: Add kref_read()
include/linux/kref.h
vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
vt: vt_ioctl: remove unnecessary console allocation checks
* vt: switch vt_dont_switch to bool
include/linux/vt_kern.h
vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
* vt: selection, introduce vc_is_sel
include/linux/selection.h
media: xirlink_cit: add missing descriptor sanity checks
media: stv06xx: add missing descriptor sanity checks
media: dib0700: fix rc endpoint lookup
media: ov519: add missing endpoint sanity checks
* libfs: fix infoleak in simple_attr_read()
fs/libfs.c
staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
media: usbtv: fix control-message timeouts
media: flexcop-usb: fix endpoint sanity check
usb: musb: fix crash with highmen PIO and usbmon
USB: serial: io_edgeport: fix slab-out-of-bounds read in edge_interrupt_callback
USB: cdc-acm: restore capability check order
USB: serial: option: add Wistron Neweb D19Q1
USB: serial: option: add BroadMobi BM806U
USB: serial: option: add support for ASKEY WWHC050
tools: Let O= makes handle a relative path with -C option
* vti6: Fix memory leak of skb if input policy check fails
net/ipv6/ip6_vti.c
* xfrm: policy: Fix doulbe free in xfrm_policy_timer
net/xfrm/xfrm_policy.c
* xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
net/xfrm/xfrm_user.c
* xfrm: fix uctx len check in verify_sec_ctx_len
net/xfrm/xfrm_user.c
* vti[6]: fix packet tx through bpf_redirect() in XinY cases
net/ipv4/Kconfig
net/ipv4/ip_vti.c
net/ipv6/ip6_vti.c
* genirq: Fix reference leaks on irq affinity notifiers
kernel/irq/manage.c
mac80211: mark station unauthorized before key removal
* scsi: sd: Fix optimal I/O size for devices that change reported values
drivers/scsi/sd.c
* scripts/dtc: Remove redundant YYLOC global declaration
scripts/dtc/dtc-lexer.lex.c_shipped
perf probe: Do not depend on dwfl_module_addrsym()
i2c: hix5hd2: add missed clk_disable_unprepare in remove
sxgbe: Fix off by one in samsung driver strncpy size arg
mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
scsi: ipr: Fix softlockup when rescanning devices in petitboot
dt-bindings: net: FMan erratum A050385
cpupower: avoid multiple definition with gcc -fno-common
* net: ipv4: don't let PMTU updates increase route MTU
net/ipv4/route.c
* drivers/hwspinlock: use correct radix tree API
drivers/hwspinlock/hwspinlock_core.c
KVM: VMX: Do not allow reexecute_instruction() when skipping MMIO instr
* uapi glibc compat: fix outer guard of net device flags enum
include/uapi/linux/if.h
IB/ipoib: Do not warn if IPoIB debugfs doesn't exist
vhost: Check docket sk_family instead of call getname
hsr: set .netnsok flag
hsr: add restart routine into hsr_get_node_list()
hsr: use rcu_read_lock() in hsr_get_node_{list/status}()
vxlan: check return value of gro_cells_init()
slcan: not call free_netdev before rtnl_unlock in slcan_open
NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
net_sched: keep alloc_hash updated after hash allocation
net_sched: cls_route: remove the right filter from hashtable
net: dsa: Fix duplicate frames flooded by learning
hsr: fix general protection fault in hsr_addr_is_self()
Revert "drm/dp_mst: Skip validating ports during destruction, just ref"
* arm64: smp: fix smp_send_stop() behaviour
arch/arm64/kernel/smp.c
ALSA: hda/realtek: Fix pop noise on ALC225
* futex: Unbreak futex hashing
kernel/futex.c
* futex: Fix inode life-time issue
fs/inode.c
include/linux/fs.h
include/linux/futex.h
kernel/futex.c
* kbuild: Disable -Wpointer-to-enum-cast
scripts/Makefile.extrawarn
USB: cdc-acm: fix rounding error in TIOCSSERIAL
USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
* x86/mm: split vmalloc_sync_all()
include/linux/vmalloc.h
kernel/notifier.c
mm/vmalloc.c
* mm, slub: prevent kmalloc_node crashes and memory leaks
mm/slub.c
* mm: slub: be more careful about the double cmpxchg of freelist
mm/slub.c
memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event
* rtc: max8907: add missing select REGMAP_IRQ
drivers/rtc/Kconfig
intel_th: Fix user-visible error codes
staging/speakup: fix get_word non-space look-ahead
staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
ALSA: pcm: oss: Avoid plugin buffer overflow
ALSA: seq: oss: Fix running status after receiving sysex
ALSA: seq: virmidi: Fix running status after receiving sysex
ALSA: line6: Fix endless MIDI read loop
USB: serial: pl2303: add device-id for HP LD381
* usb: host: xhci-plat: add a shutdown
drivers/usb/host/xhci-plat.c
USB: serial: option: add ME910G1 ECM composition 0x110b
* usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
drivers/usb/core/quirks.c
* USB: Disable LPM on WD19's Realtek Hub
drivers/usb/core/quirks.c
altera-stapl: altera_get_note: prevent write beyond end of 'key'
drm/exynos: dsi: fix workaround for the legacy clock name
drm/exynos: dsi: propagate error value and silence meaningless warning
spi/zynqmp: remove entry that causes a cs glitch
ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
powerpc: Include .BTF section
* spi: qup: call spi_qup_pm_resume_runtime before suspending
drivers/spi/spi-qup.c
Linux 4.4.217
* ipv4: ensure rcu_read_lock() in cipso_v4_error()
net/ipv4/cipso_ipv4.c
* mm: slub: add missing TID bump in kmem_cache_alloc_bulk()
mm/slub.c
ARM: 8958/1: rename missed uaccess .fixup section
ARM: 8957/1: VDSO: Match ARMv8 timer in cntvct_functional()
* jbd2: fix data races at struct journal_head
fs/jbd2/transaction.c
* signal: avoid double atomic counter increments for user accounting
kernel/signal.c
net: ks8851-ml: Fix IRQ handling and locking
perf/amd/uncore: Replace manual sampling check with CAP_NO_INTERRUPT flag
batman-adv: Don't schedule OGM for disabled interface
batman-adv: Avoid free/alloc race when handling OGM buffer
batman-adv: Only read OGM tvlv_len after buffer len check
batman-adv: Reduce tt_global hash refcnt only for removed entry
batman-adv: Reduce tt_local hash refcnt only for removed entry
batman-adv: Reduce claim hash refcnt only for removed entry
batman-adv: Prevent duplicated tvlv handler
batman-adv: Prevent duplicated global TT entry
batman-adv: Prevent duplicated nc_node entry
batman-adv: Prevent duplicated gateway_node entry
batman-adv: Avoid storing non-TT-sync flags on singular entries too
batman-adv: Fix debugfs path for renamed softif
batman-adv: Fix debugfs path for renamed hardif
batman-adv: prevent TT request storms by not sending inconsistent TT TLVLs
batman-adv: Fix TT sync flags for intermediate TT responses
batman-adv: Avoid race in TT TVLV allocator helper
batman-adv: Fix skbuff rcsum on packet reroute
batman-adv: update data pointers after skb_cow()
batman-adv: Fix internal interface indices types
batman-adv: Fix lock for ogm cnt access in batadv_iv_ogm_calc_tq
batman-adv: fix TT sync flag inconsistencies
batman-adv: Fix rx packet/bytes stats on local ARP reply
batman-adv: Fix transmission of final, 16th fragment
batman-adv: Fix double free during fragment merge error
batman-adv: Add missing refcnt for last_candidate
batman-adv: Fix speedy join in gateway client mode
batman-adv: Free last_bonding_candidate on release of orig_node
batman-adv: Fix reference leak in batadv_find_router
batman-adv: Fix non-atomic bla_claim::backbone_gw access
batman-adv: lock crc access in bridge loop avoidance
batman-adv: Fix orig_node_vlan leak on orig_node_release
batman-adv: Avoid nullptr dereference in dat after vlan_insert_tag
batman-adv: Avoid nullptr dereference in bla after vlan_insert_tag
batman-adv: Clean up untagged vlan when destroying via rtnl-link
batman-adv: Fix ICMP RR ethernet access after skb_linearize
batman-adv: Fix use-after-free/double-free of tt_req_node
batman-adv: fix skb deref after free
batman-adv: Avoid duplicate neigh_node additions
batman-adv: Fix reference counting of vlan object for tt_local_entry
batman-adv: Drop reference to netdevice on last reference
batman-adv: Deactivate TO_BE_ACTIVATED hardif on shutdown
batman-adv: init neigh node last seen field
batman-adv: Fix integer overflow in batadv_iv_ogm_calc_tq
batman-adv: Fix unexpected free of bcast_own on add_if error
batman-adv: Avoid endless loop in bat-on-bat netdevice check
batman-adv: Only put orig_node_vlan list reference when removed
batman-adv: Only put gw_node list reference when removed
batman-adv: Fix invalid read while copying bat_iv.bcast_own
efi: Add a sanity check to efivar_store_raw()
* ipv6: restrict IPV6_ADDRFORM operation
net/ipv6/ipv6_sockglue.c
mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
iommu/vt-d: Ignore devices with out-of-spec domain number
iommu/vt-d: Fix the wrong printing in RHSA parsing
netfilter: cthelper: add missing attribute validation for cthelper
* nl80211: add missing attribute validation for channel switch
net/wireless/nl80211.c
* nl80211: add missing attribute validation for critical protocol indication
net/wireless/nl80211.c
iommu/vt-d: Fix a bug in intel_iommu_iova_to_phys() for huge page
iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + add_taint
efi: Fix a race and a buffer overflow while reading efivars via sysfs
ARC: define __ALIGN_STR and __ALIGN symbols for ARC
KVM: x86: clear stale x86_emulate_ctxt->intercept value
gfs2_atomic_open(): fix O_EXCL|O_CREAT handling on cold dcache
drm/amd/display: remove duplicated assignment to grph_obj_type
iommu/vt-d: quirk_ioat_snb_local_iommu: replace WARN_TAINT with pr_warn + add_taint
net: fq: add missing attribute validation for orphan mask
* bonding/alb: make sure arp header is pulled before accessing it
drivers/net/bonding/bond_alb.c
* slip: make slhc_compress() more robust against malicious packets
drivers/net/slip/slhc.c
net: fec: validate the new settings in fec_enet_set_coalesce()
macvlan: add cond_resched() during multicast processing
ipvlan: don't deref eth hdr before checking it's set
ipvlan: do not use cond_resched_rcu() in ipvlan_process_multicast()
ipvlan: egress mcast packets are not exceptional
ipvlan: do not add hardware address of master to its unicast filter list
ipvlan: add cond_resched_rcu() while processing muticast backlog
nfc: add missing attribute validation for vendor subcommand
nfc: add missing attribute validation for SE API
team: add missing attribute validation for array index
team: add missing attribute validation for port ifindex
nl802154: add missing attribute validation for dev_type
nl802154: add missing attribute validation
* fib: add missing attribute validation for tun_id
include/net/fib_rules.h
bnxt_en: reinitialize IRQs when MTU is modified
net: nfc: fix bounds checking bugs on "pipe"
* r8152: check disconnect status after long sleep
drivers/net/usb/r8152.c
NFS: Remove superfluous kmap in nfs_readdir_xdr_to_array
Linux 4.4.216
crypto: algif_skcipher - use ZERO_OR_NULL_PTR in skcipher_recvmsg_async
dm cache: fix a crash due to incorrect work item cancelling
powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems
dmaengine: coh901318: Fix a double lock bug in dma_tc_handle()
hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT()
ARM: imx: build v7_cpu_resume() unconditionally
RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
RDMA/iwcm: Fix iwcm work deallocation
* ASoC: dapm: Correct DAPM handling of active widgets during shutdown
sound/soc/soc-dapm.c
ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path
* ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output
sound/soc/soc-pcm.c
dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
dmaengine: tegra-apb: Fix use-after-free
vt: selection, push sel_lock up
vt: selection, push console lock down
vt: selection, close sel_buffer race
* fat: fix uninit-memory access for partial initialized inode
fs/fat/inode.c
vgacon: Fix a UAF in vgacon_invert_region
* usb: core: port: do error out if usb_autopm_get_interface() fails
drivers/usb/core/port.c
* usb: core: hub: do error out if usb_autopm_get_interface() fails
drivers/usb/core/hub.c
* usb: quirks: add NO_LPM quirk for Logitech Screen Share
drivers/usb/core/quirks.c
* usb: storage: Add quirk for Samsung Fit flash
drivers/usb/storage/unusual_devs.h
cifs: don't leak -EAGAIN for stat() during reconnect
s390/cio: cio_ignore_proc_seq_next should increase position index
watchdog: da9062: do not ping the hw during stop()
net: ks8851-ml: Fix 16-bit IO operation
net: ks8851-ml: Fix 16-bit data access
net: ks8851-ml: Remove 8-bit bus accessors
drm/msm/dsi: save pll state before dsi host is powered off
drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI
usb: gadget: serial: fix Tx stall after buffer overflow
* usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags
drivers/usb/gadget/function/f_fs.c
serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE
* audit: always check the netlink payload length in audit_receive_msg()
kernel/audit.c
* fs: prevent page refcount overflow in pipe_buf_get
fs/fuse/dev.c
fs/pipe.c
fs/splice.c
include/linux/pipe_fs_i.h
kernel/trace/trace.c
* pipe: add pipe_buf_get() helper
fs/fuse/dev.c
fs/splice.c
include/linux/pipe_fs_i.h
* mm: prevent get_user_pages() from overflowing page refcount
include/linux/mm.h
mm/gup.c
* mm, gup: ensure real head page is ref-counted when using hugepages
mm/gup.c
* mm, gup: remove broken VM_BUG_ON_PAGE compound check for hugepages
mm/gup.c
* mm: add 'try_get_page()' helper function
include/linux/mm.h
mm/internal.h
* mm: make page ref count overflow check tighter and more explicit
include/linux/mm.h
mm/internal.h
slip: stop double free sl->dev in slip_open
KVM: Check for a bad hva before dropping into the ghc slow path
* namei: only return -ECHILD from follow_dotdot_rcu()
fs/namei.c
* net: netlink: cap max groups which will be considered in netlink_bind()
net/netlink/af_netlink.c
* include/linux/bitops.h: introduce BITS_PER_TYPE
include/linux/bitops.h
ecryptfs: Fix up bad backport of fe2e082f5da5b4a0a92ae32978f81507ef37ec66
i2c: jz4780: silence log flood on txabrt
MIPS: VPE: Fix a double free and a memory leak in 'release_vpe()'
HID: hiddev: Fix race in in hiddev_disconnect()
* HID: core: increase HID report buffer size to 8KiB
include/linux/hid.h
* HID: core: fix off-by-one memset in hid_report_raw_event()
drivers/hid/hid-core.c
* audit: fix error handling in audit_data_to_entry()
kernel/auditfilter.c
* ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
fs/ext4/super.c
* net: sched: correct flower port blocking
include/net/flow_dissector.h
nfc: pn544: Fix occasional HW initialization failure
sctp: move the format error check out of __sctp_sf_do_9_1_abort
* ipv6: Fix route replacement with dev-only route
net/ipv6/ip6_fib.c
* ipv6: Fix nlmsg_flags when splitting a multipath route
net/ipv6/route.c
net: phy: restore mdio regs in the iproc mdio driver
* net: fib_rules: Correctly set table field when table number exceeds 8 bits
net/core/fib_rules.c
* sysrq: Remove duplicated sysrq message
drivers/tty/sysrq.c
* sysrq: Restore original console_loglevel when sysrq disabled
drivers/tty/sysrq.c
* cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
net/wireless/nl80211.c
cifs: Fix mode output in debugging statements
* cfg80211: check wiphy driver existence for drvinfo report
net/wireless/ethtool.c
mac80211: consider more elements in parsing CRC
ipmi:ssif: Handle a possible NULL pointer reference
* ext4: fix potential race between s_group_info online resizing and access
fs/ext4/ext4.h
fs/ext4/mballoc.c
* ext4: fix potential race between s_flex_groups online resizing and access
fs/ext4/ext4.h
fs/ext4/ialloc.c
fs/ext4/mballoc.c
fs/ext4/resize.c
fs/ext4/super.c
* ext4: fix potential race between online resizing and write operations
fs/ext4/balloc.c
fs/ext4/ext4.h
fs/ext4/resize.c
fs/ext4/super.c
iwlwifi: pcie: fix rb_allocator workqueue allocation
Linux 4.4.215
xen: Enable interrupts when calling _cond_resched()
ALSA: seq: Fix concurrent access to queue current tick/time
ALSA: seq: Avoid concurrent access to queue flags
* ALSA: rawmidi: Avoid bit fields for state flags
include/sound/rawmidi.h
ecryptfs: replace BUG_ON with error handling code
scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session"
scsi: Revert "RDMA/isert: Fix a recently introduced regression related to logout"
Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered extents
KVM: apic: avoid calculating pending eoi from an uninitialized val
KVM: nVMX: Check IO instruction VM-exit conditions
KVM: nVMX: Refactor IO bitmap checks into helper function
* ext4: add cond_resched() to __ext4_find_entry()
fs/ext4/namei.c
* ext4: fix a data race in EXT4_I(inode)->i_disksize
fs/ext4/ext4.h
fs/ext4/inode.c
netfilter: xt_bpf: add overflow checks
KVM: nVMX: Don't emulate instructions in guest mode
vt: vt_ioctl: fix race in VT_RESIZEX
VT_RESIZEX: get rid of field-by-field copyin
* xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms
drivers/usb/host/xhci-pci.c
Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()"
tty: serial: imx: setup the correct sg entry for tx dma
x86/mce/amd: Fix kobject lifetime
staging: rtl8188eu: Fix potential overuse of kernel memory
staging: rtl8188eu: Fix potential security hole
* USB: hub: Don't record a connect-change event during reset-resume
drivers/usb/core/hub.c
* USB: Fix novation SourceControl XL after suspend
drivers/usb/core/quirks.c
usb: uas: fix a plug & unplug racing
staging: vt6656: fix sign of rx_dbm to bb_pre_ed_rssi.
* staging: android: ashmem: Disallow ashmem memory from being remapped
drivers/staging/android/ashmem.c
floppy: check FDC index for errors before assigning it
enic: prevent waking up stopped tx queues over watchdog reset
* selinux: ensure we cleanup the internal AVC counters on error in avc_update()
security/selinux/avc.c
* brd: check and limit max_part par
drivers/block/brd.c
microblaze: Prevent the overflow of the start
* irqchip/gic-v3-its: Reference to its_invall_cmd descriptor when building INVALL
drivers/irqchip/irq-gic-v3-its.c
bcache: explicity type cast in bset_bkey_last()
reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
* lib/scatterlist.c: adjust indentation in __sg_alloc_table
lib/scatterlist.c
ocfs2: fix a NULL pointer dereference when call ocfs2_update_inode_fsync_trans()
radeon: insert 10ms sleep in dce5_crtc_load_lut
* trigger_next should increase position index
kernel/trace/trace_events_trigger.c
drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
iwlegacy: ensure loop counter addr does not wrap and cause an infinite loop
hostap: Adjust indentation in prism2_hostapd_add_sta
ARM: 8951/1: Fix Kexec compilation issue.
* jbd2: switch to use jbd2_journal_abort() when failed to submit the commit record
fs/jbd2/commit.c
ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
s390/ftrace: generate traced function stack frame
remoteproc: Initialize rproc_class before use
ide: serverworks: potential overflow in svwks_set_pio_mode()
cmd64x: potential buffer overflow in cmd64x_program_timings()
scsi: iscsi: Don't destroy session if there are outstanding connections
iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE
drm/vmwgfx: prevent memory leak in vmw_cmdbuf_res_add
drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handler
* driver core: Print device when resources present in really_probe()
drivers/base/dd.c
* PCI: Don't disable bridge BARs when assigning bus resources
drivers/pci/setup-bus.c
* ASoC: atmel: fix build error with CONFIG_SND_ATMEL_SOC_DMA=m
sound/soc/atmel/Kconfig
wan: ixp4xx_hss: fix compile-testing on 64-bit
Input: edt-ft5x06 - work around first register access error
* rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls
include/linux/list_nulls.h
include/linux/rculist_nulls.h
soc/tegra: fuse: Correct straps' address for older Tegra124 device trees
usbip: Fix unsafe unaligned pointer usage
tools lib api fs: Fix gcc9 stringop-truncation compilation error
ALSA: sh: Fix compile warning wrt const
pinctrl: sh-pfc: sh7269: Fix CAN function GPIOs
x86/vdso: Provide missing include file
ARM: dts: r8a7779: Add device node for ARM global timer
scsi: aic7xxx: Adjust indentation in ahc_find_syncrate
* ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1
drivers/acpi/acpica/dsfield.c
drivers/acpi/acpica/dswload.c
orinoco: avoid assertion in case of NULL pointer
rtlwifi: rtl_pci: Fix -Wcast-function-type
iwlegacy: Fix -Wcast-function-type
ipw2x00: Fix -Wcast-function-type
b43legacy: Fix -Wcast-function-type
ALSA: usx2y: Adjust indentation in snd_usX2Y_hwdep_dsp_status
reiserfs: Fix spurious unlock in reiserfs_fill_super() error handling
NFC: port100: Convert cpu_to_le16(le16_to_cpu(E1) + E2) to use le16_add_cpu().
regulator: rk808: Lower log level on optional GPIOs being not available
drm/amdgpu: remove 4 set but not used variable in amdgpu_atombios_get_connector_info_from_object_table
clk: qcom: rcg2: Don't crash if our parent can't be found; return an error
* kconfig: fix broken dependency in randconfig-generated .config
scripts/kconfig/confdata.c
* ext4, jbd2: ensure panic when aborting with zero errno
fs/jbd2/checkpoint.c
fs/jbd2/journal.c
* tracing: Fix very unlikely race of registering two stat tracers
kernel/trace/trace_stat.c
* jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info when load journal
fs/jbd2/journal.c
* nfs: NFS_SWAP should depend on SWAP
fs/nfs/Kconfig
usb: gadget: udc: fix possible sleep-in-atomic-context bugs in gr_probe()
uio: fix a sleep-in-atomic-context bug in uio_dmem_genirq_irqcontrol()
MIPS: Loongson: Fix potential NULL dereference in loongson3_platform_init()
efi/x86: Map the entire EFI vendor string before copying it
media: sti: bdisp: fix a possible sleep-in-atomic-context bug in bdisp_device_run()
media: i2c: mt9v032: fix enum mbus codes and frame sizes
pinctrl: sh-pfc: sh7264: Fix CAN function GPIOs
gianfar: Fix TX timestamping with a stacked DSA driver
brcmfmac: Fix use after free in brcmf_sdio_readframes()
drm/gma500: Fixup fbdev stolen size usage evaluation
Revert "KVM: VMX: Add non-canonical check on writes to RTIT address MSRs"
scsi: qla2xxx: fix a potential NULL pointer dereference
btrfs: print message when tree-log replay starts
* jbd2: do not clear the BH_Mapped flag when forgetting a metadata buffer
fs/jbd2/commit.c
* jbd2: move the clearing of b_modified flag to the journal_unmap_buffer()
fs/jbd2/commit.c
fs/jbd2/transaction.c
hwmon: (pmbus/ltc2978) Fix PMBus polling of MFR_COMMON definitions.
s390/time: Fix clk type in get_tod_clock
padata: Remove broken queue flushing
btrfs: log message when rw remount is attempted with unclean tree-log
Btrfs: fix race between using extent maps and merging them
* ext4: fix checksum errors with indexed dirs
fs/ext4/dir.c
fs/ext4/ext4.h
fs/ext4/inode.c
fs/ext4/namei.c
ubifs: Fix deadlock in concurrent bulk-read and writepage
* ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
sound/usb/quirks.c
ecryptfs: fix a memory leak bug in ecryptfs_init_messaging()
ecryptfs: fix a memory leak bug in parse_tag_1_packet()
ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs
KVM: x86: emulate RDPID
x86/vdso: Use RDPID in preference to LSL when available
Linux 4.4.214
* dm: fix potential for q->make_request_fn NULL pointer
drivers/md/dm.c
libertas: make lbs_ibss_join_existing() return error code on rates overflow
libertas: don't exit from lbs_ibss_join_existing() with RCU read lock held
mwifiex: Fix possible buffer overflows in mwifiex_cmd_append_vsie_tlv()
mwifiex: Fix possible buffer overflows in mwifiex_ret_wmm_get_status()
pinctrl: sh-pfc: r8a7778: Fix duplicate SDSELF_B and SD1_CLK_B
powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW
ARM: dts: at91: sama5d3: define clock rate range for tcb1
ARM: dts: at91: sama5d3: fix maximum peripheral clock rates
ARC: [plat-axs10x]: Add missing multicast filter number to GMAC node
rtc: hym8563: Return -EINVAL if the time is known to be invalid
* scsi: ufs: Fix ufshcd_probe_hba() reture value in case ufshcd_scsi_add_wlus() fails
drivers/scsi/ufs/ufshcd.c
* ASoC: pcm: update FE/BE trigger order based on the command
sound/soc/soc-pcm.c
* perf/core: Fix mlock accounting in perf_mmap()
kernel/events/core.c
* clocksource: Prevent double add_timer_on() for watchdog_timer
kernel/time/clocksource.c
cifs: fail i/o on soft mounts if sessionsetup errors out
KVM: nVMX: vmread should not set rflags to specify success in case of #PF
KVM: VMX: Add non-canonical check on writes to RTIT address MSRs
KVM: x86/mmu: Apply max PA check for MMIO sptes to 32-bit KVM
btrfs: flush write bio if we loop in extent_write_cache_pages
KVM: x86: Protect kvm_lapic_reg_write() from Spectre-v1/L1TF attacks
KVM: x86: Protect pmu_intel.c from Spectre-v1/L1TF attacks
KVM: x86: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks
KVM: x86: drop picdev_in_range()
drm: atmel-hlcdc: enable clock before configuring timing engine
Btrfs: fix race between adding and putting tree mod seq elements and nodes
btrfs: remove trivial locking wrappers of tree mod log
Btrfs: fix assertion failure on fsync with NO_HOLES enabled
NFS: Directory page cache pages need to be locked when read
NFS: Fix bool initialization/comparison
NFS: Fix memory leaks and corruption in readdir
* bonding/alb: properly access headers in bond_alb_xmit()
drivers/net/bonding/bond_alb.c
net: systemport: Avoid RBUF stuck in Wake-on-LAN mode
mfd: rn5t618: Mark ADC control register volatile
mfd: da9062: Fix watchdog compatible string
net: tulip: Adjust indentation in {dmfe, uli526x}_init_module
net: smc911x: Adjust indentation in smc911x_phy_configure
* ppp: Adjust indentation into ppp_async_input
drivers/net/ppp/ppp_async.c
NFC: pn544: Adjust indentation in pn544_hci_check_presence
powerpc/44x: Adjust indentation in ibm4xx_denali_fixup_memsize
ext2: Adjust indentation in ext2_fill_super
scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free
scsi: csiostor: Adjust indentation in csio_device_reset
scsi: qla2xxx: Fix the endianness of the qla82xx_get_fw_size() return type
KVM: x86: Free wbinvd_dirty_mask if vCPU creation fails
KVM: PPC: Book3S PR: Free shared page if mmu initialization fails
KVM: PPC: Book3S HV: Uninit vCPU if vcore creation fails
KVM: x86: Protect MSR-based index computations in fixed_msr_to_seg_unit() from Spectre-v1/L1TF attacks
KVM: x86: Protect x86_decode_insn from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations from Spectre-v1/L1TF attacks in x86.c
KVM: x86: Protect ioapic_read_indirect() from Spectre-v1/L1TF attacks
KVM: x86: Protect MSR-based index computations in pmu.h from Spectre-v1/L1TF attacks
KVM: x86: Protect ioapic_write_indirect() from Spectre-v1/L1TF attacks
KVM: x86: Protect kvm_hv_msr_[get|set]_crash_data() from Spectre-v1/L1TF attacks
KVM: x86: Protect DR-based index computations from Spectre-v1/L1TF attacks
KVM: x86: Refactor prefix decoding to prevent Spectre-v1/L1TF attacks
sunrpc: expiry_time should be seconds not timeval
mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
ARM: tegra: Enable PLLP bypass during Tegra124 LP1
btrfs: set trans->drity in btrfs_commit_transaction
crypto: picoxcell - adjust the position of tasklet_init and fix missed tasklet_kill
* crypto: api - Fix race condition in crypto_spawn_alg
crypto/algapi.c
crypto/api.c
crypto/internal.h
crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
dm space map common: fix to ensure new block isn't already in use
* of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
drivers/of/Kconfig
drivers/of/address.c
* Revert "ovl: modify ovl_permission() to do checks on two inodes"
fs/overlayfs/inode.c
power: supply: ltc2941-battery-gauge: fix use-after-free
scsi: qla2xxx: Fix mtcp dump collection failure
* crypto: api - Check spawn->alg under lock in crypto_drop_spawn
crypto/algapi.c
PCI: keystone: Fix link training retries initiation
mmc: spi: Toggle SPI polarity, do not hardcode it
powerpc/pseries: Advance pfn if section is not present in lmb_is_removable()
lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more()
ALSA: dummy: Fix PCM format loop in proc output
usb: gadget: f_ecm: Use atomic_t to track in-flight request
* usb: gadget: f_ncm: Use atomic_t to track in-flight request
drivers/usb/gadget/function/f_ncm.c
usb: gadget: legacy: set max_speed to super-speed
brcmfmac: Fix memory leak in brcmf_usbdev_qinit
mfd: dln2: More sanity checking for endpoints
media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
* tcp: clear tp->segs_{in|out} in tcp_disconnect()
net/ipv4/tcp.c
* tcp: clear tp->total_retrans in tcp_disconnect()
net/ipv4/tcp.c
net_sched: fix an OOB access in cls_tcindex
net: hsr: fix possible NULL deref in hsr_handle_frame()
cls_rsvp: fix rsvp_policy
ASoC: qcom: Fix of-node refcount unbalance to link->codec_of_node
sparc32: fix struct ipc64_perm type definition
x86/cpu: Update cached HLE state on write to TSX_CTRL_CPUID_CLEAR
media: iguanair: fix endpoint sanity check
Linux 4.4.213
btrfs: do not zero f_bavail if we have available space
btrfs: fix mixed block count of available space
* net: Fix skb->csum update in inet_proto_csum_replace16().
net/core/utils.c
l2t_seq_next should increase position index
seq_tab_next() should increase position index
net/sonic: Quiesce SONIC before re-initializing descriptor memory
net/sonic: Fix receive buffer handling
net/sonic: Use MMIO accessors
net/sonic: Add mutual exclusion for accessing shared state
net/fsl: treat fsl,erratum-a011043
qlcnic: Fix CPU soft lockup while collecting firmware dump
* r8152: get default setting of WOL before initializing
drivers/net/usb/r8152.c
airo: Add missing CAP_NET_ADMIN check in AIROOLDIOCTL/SIOCDEVPRIVATE
airo: Fix possible info leak in AIROOLDIOCTL/SIOCDEVPRIVATE
scsi: fnic: do not queue commands during fwreset
* vti[6]: fix packet tx through bpf_redirect()
net/ipv4/ip_vti.c
net/ipv6/ip6_vti.c
* wireless: wext: avoid gcc -O3 warning
net/wireless/wext-core.c
ixgbe: Fix calculation of queue with VFs and flow director on interface flap
ixgbevf: Remove limit of 10 entries for unicast filter list
clk: mmp2: Fix the order of timer mux parents
media: si470x-i2c: Move free() past last use of 'radio'
* usb: dwc3: turn off VBUS when leaving host mode
drivers/usb/dwc3/core.c
ttyprintk: fix a potential deadlock in interrupt context issue
media: dvb-usb/dvb-usb-urb.c: initialize actlen to 0
media: gspca: zero usb_buf
media: digitv: don't continue if remote control state can't be read
reiserfs: Fix memory leak of journal device string
mm/mempolicy.c: fix out of bounds write in mpol_parse_str()
* arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
arch/arm64/boot/Makefile
crypto: pcrypt - Fix user-after-free on module unload
* vfs: fix do_last() regression
fs/namei.c
crypto: af_alg - Use bh_lock_sock in sk_destruct
* net_sched: ematch: reject invalid TCF_EM_SIMPLE
net/sched/ematch.c
usb-storage: Disable UAS on JMicron SATA enclosure
atm: eni: fix uninitialized variable warning
net: wan: sdla: Fix cast from pointer to integer of different size
drivers/net/b44: Change to non-atomic bit operations on pwol_mask
watchdog: rn5t618_wdt: fix module aliases
zd1211rw: fix storage endpoint lookup
rtl8xxxu: fix interface sanity check
brcmfmac: fix interface sanity check
ath9k: fix storage endpoint lookup
staging: vt6656: Fix false Tx excessive retries reporting.
staging: vt6656: use NULLFUCTION stack on mac80211
staging: vt6656: correct packet types for CTS protect, mode.
staging: wlan-ng: ensure error return is actually returned
staging: most: net: fix buffer overflow
USB: serial: ir-usb: fix IrLAP framing
USB: serial: ir-usb: fix link-speed handling
USB: serial: ir-usb: add missing endpoint sanity check
rsi_91x_usb: fix interface sanity check
orinoco_usb: fix interface sanity check
* ALSA: pcm: Add missing copy ops check before clearing buffer
sound/core/pcm_native.c
Linux 4.4.212
libertas: Fix two buffer overflows at parsing bss descriptor
net/x25: fix nonblocking connect
netfilter: ipset: use bitmap infrastructure completely
* bitmap: Add bitmap_alloc(), bitmap_zalloc() and bitmap_free()
include/linux/bitmap.h
lib/bitmap.c
* md: Avoid namespace collision with bitmap API
drivers/md/bitmap.c
scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
iio: buffer: align the size of scan bytes to size of the largest element
* do_last(): fetch directory ->i_mode and ->i_uid before it's too late
fs/namei.c
tracing: xen: Ordered comparison of function pointers
scsi: RDMA/isert: Fix a recently introduced regression related to logout
hwmon: (nct7802) Fix voltage limits to wrong registers
Input: aiptek - fix endpoint sanity check
Input: gtco - fix endpoint sanity check
Input: sur40 - fix interface sanity checks
mmc: sdhci: fix minimum clock rate for v3 controller
ARM: 8950/1: ftrace/recordmcount: filter relocation types
Input: keyspan-remote - fix control-message timeouts
hwmon: (adt7475) Make volt2reg return same reg as reg2volt input
net: usb: lan78xx: Add .ndo_features_check
* net_sched: fix datalen for ematch
net/sched/ematch.c
* net, ip_tunnel: fix namespaces move
net/ipv4/ip_tunnel.c
net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM
firestream: fix memory leaks
can, slip: Protect tty->disc_data in write_wakeup and close with RCU
m68k: Call timer_interrupt() with interrupts disabled
arm64: dts: juno: Fix UART frequency
drm/radeon: fix bad DMA from INTERRUPT_CNTL2
dmaengine: ti: edma: fix missed failure handling
* packet: fix data-race in fanout_flow_is_huge()
net/packet/af_packet.c
* net: neigh: use long type to store jiffies delta
net/core/neighbour.c
MIPS: Loongson: Fix return value of loongson_hwmon_init
media: ov6650: Fix .get_fmt() V4L2_SUBDEV_FORMAT_TRY support
media: ov6650: Fix some format attributes not under control
media: ov6650: Fix incorrect use of JPEG colorspace
net: qca_spi: Move reset_count to struct qcaspi
dmaengine: imx-sdma: fix size check for sdma script_number
drm/msm/dsi: Implement reset correctly
net: stmmac: fix length of PTP clock's name string
llc: fix sk_buff refcounting in llc_conn_state_process()
llc: fix another potential sk_buff leak in llc_ui_sendmsg()
mac80211: accept deauth frames in IBSS mode
net: ethernet: stmmac: Fix signedness bug in ipq806x_gmac_of_parse()
net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe()
net: hisilicon: Fix signedness bug in hix5hd2_dev_probe()
iommu/amd: Wait for completion of IOTLB flush in attach_device
net/rds: Fix 'ib_evt_handler_call' element in 'rds_ib_stat_names'
net: sonic: replace dev_kfree_skb in sonic_send_packet
hwmon: (shtc1) fix shtc1 and shtw1 id mask
Btrfs: fix hang when loading existing inode cache off disk
net: sonic: return NETDEV_TX_OK if failed to map buffer
ath9k: dynack: fix possible deadlock in ath_dynack_node_{de}init
iio: dac: ad5380: fix incorrect assignment to val
bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
x86, perf: Fix the dependency of the x86 insn decoder selftest
* power: supply: Init device wakeup after device_add()
drivers/power/power_supply_core.c
* Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()"
lib/kfifo.c
ahci: Do not export local variable ahci_em_messages
mips: avoid explicit UB in assignment of mips_io_port_base
mac80211: minstrel_ht: fix per-group max throughput rate initialization
dmaengine: dw: platform: Switch to acpi_dma_controller_register()
* signal: Allow cifs and drbd to receive their terminating signals
include/linux/signal.h
kernel/signal.c
ASoC: wm8737: Fix copy-paste error in wm8737_snd_controls
ASoC: cs4349: Use PM ops 'cs4349_runtime_pm'
ASoC: es8328: Fix copy-paste error in es8328_right_line_controls
* ext4: set error return correctly when ext4_htree_store_dirent fails
fs/ext4/inline.c
crypto: caam - free resources in case caam_rng registration failed
cifs: fix rmmod regression in cifs.ko caused by force_sig changes
ALSA: aoa: onyx: always initialize register read value
x86/kgbd: Use NMI_VECTOR not APIC_DM_NMI
mic: avoid statically declaring a 'struct device'.
* usb: host: xhci-hub: fix extra endianness conversion
drivers/usb/host/xhci-hub.c
libertas_tf: Use correct channel range in lbtf_geo_init
scsi: libfc: fix null pointer dereference on a null lport
net: pasemi: fix an use-after-free in pasemi_mac_phy_init()
* devres: allow const resource arguments
include/linux/device.h
lib/devres.c
mfd: intel-lpss: Release IDA resources
iommu/amd: Make iommu_disable safer
drm/msm/a3xx: remove TPL1 regs from snapshot
rtc: pcf8563: Clear event flags and disable interrupts before requesting irq
ASoC: ti: davinci-mcasp: Fix slot mask settings when using multiple AXRs
net/af_iucv: always register net_device notifier
drm/msm/mdp5: Fix mdp5_cfg_init error return
powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild
media: vivid: fix incorrect assignment operation when setting video mode
* inet: frags: call inet_frags_fini() after unregister_pernet_subsys()
net/ipv6/reassembly.c
signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of force_sig
* iommu: Use right function to get group for device
drivers/iommu/iommu.c
misc: sgi-xp: Properly initialize buf in xpc_get_rsvd_page_pa
spi: spi-fsl-spi: call spi_finalize_current_message() at the end
* thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power
drivers/thermal/cpu_cooling.c
backlight: lm3630a: Return 0 on success in update_status functions
kdb: do a sanity check on the cpu in kdb_per_cpu()
ARM: riscpc: fix lack of keyboard interrupts after irq conversion
* netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule
net/bridge/netfilter/ebtables.c
platform/x86: alienware-wmi: printing the wrong error code
media: davinci/vpbe: array underflow in vpbe_enum_outputs()
media: omap_vout: potential buffer overflow in vidioc_dqbuf()
iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU
IB/mlx5: Add missing XRC options to QP optional params mask
* ASoC: fix valid stream condition
sound/soc/soc-pcm.c
* packet: in recvmsg msg_name return at least sizeof sockaddr_ll
net/packet/af_packet.c
* ALSA: usb-audio: Handle the error from snd_usb_mixer_apply_create_quirk()
sound/usb/mixer.c
dmaengine: axi-dmac: Don't check the number of frames for alignment
6lowpan: Off by one handling ->nexthdr
media: ov2659: fix unbalanced mutex_lock/unlock
powerpc: vdso: Make vdso32 installation conditional in vdso_install
tipc: set sysctl_tipc_rmem and named_timeout right range
hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses
ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data"
scsi: qla2xxx: Unregister chrdev if module initialization fails
ehea: Fix a copy-paste err in ehea_init_port_res
spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios
soc/fsl/qe: Fix an error code in qe_pin_request()
spi: tegra114: fix for unpacked mode transfers
spi: tegra114: clear packed bit for unpacked mode
media: davinci-isif: avoid uninitialized variable use
ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset()
m68k: mac: Fix VIA timer counter accesses
jfs: fix bogus variable self-initialization
media: cx23885: check allocation return
media: wl128x: Fix an error code in fm_download_firmware()
media: cx18: update *pos correctly in cx18_read_pos()
media: ivtv: update *pos correctly in ivtv_read_pos()
net: sh_eth: fix a missing check of of_get_phy_mode
xen, cpu_hotplug: Prevent an out of bounds access
scsi: megaraid_sas: reduce module load time
nios2: ksyms: Add missing symbol exports
regulator: wm831x-dcdc: Fix list of wm831x_dcdc_ilim from mA to uA
ARM: 8847/1: pm: fix HYP/SVC mode mismatch when MCPM is used
clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable
fs/nfs: Fix nfs_parse_devname to not modify it's argument
ASoC: qcom: Fix of-node refcount unbalance in apq8016_sbc_parse_of()
drm/nouveau/pmu: don't print reply values if exec is false
drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON
cdc-wdm: pass return value of recover_from_urb_loss
vfio_pci: Enable memory accesses before calling pci_map_rom
* block: don't use bio->bi_vcnt to figure out segment number
block/blk-merge.c
pinctrl: sh-pfc: sh73a0: Fix fsic_spdif pin groups
pinctrl: sh-pfc: r8a7791: Fix scifb2_data_c pin group
pinctrl: sh-pfc: emev2: Add missing pinmux functions
fbdev: chipsfb: remove set but not used variable 'size'
rtc: pm8xxx: fix unintended sign extension
rtc: 88pm80x: fix unintended sign extension
rtc: 88pm860x: fix unintended sign extension
rtc: ds1672: fix unintended sign extension
tty: ipwireless: Fix potential NULL pointer dereference
rtc: cmos: ignore bogus century byte
ASoC: imx-sgtl5000: put of nodes if finding codec fails
crypto: tgr192 - fix unaligned memory access
media: s5p-jpeg: Correct step and max values for V4L2_CID_JPEG_RESTART_INTERVAL
RDMA/ocrdma: Fix out of bounds index check in query pkey
IB/usnic: Fix out of bounds index check in query pkey
clk: armada-xp: fix refcount leak in axp_clk_init()
clk: kirkwood: fix refcount leak in kirkwood_clk_init()
clk: armada-370: fix refcount leak in a370_clk_init()
clk: vf610: fix refcount leak in vf610_clocks_init()
clk: imx7d: fix refcount leak in imx7d_clocks_init()
clk: imx6sx: fix refcount leak in imx6sx_clocks_init()
clk: imx6q: fix refcount leak in imx6q_clocks_init()
clk: samsung: exynos4: fix refcount leak in exynos4_get_xom()
clk: socfpga: fix refcount leak
clk: qoriq: fix refcount leak in clockgen_init()
clk: highbank: fix refcount leak in hb_clk_init()
Input: nomadik-ske-keypad - fix a loop timeout test
pinctrl: sh-pfc: sh7734: Remove bogus IPSR10 value
pinctrl: sh-pfc: sh7269: Add missing PCIOR0 field
pinctrl: sh-pfc: sh7734: Add missing IPSR11 field
pinctrl: sh-pfc: r8a7794: Remove bogus IPSR9 field
pinctrl: sh-pfc: sh73a0: Add missing TO pin to tpu4_to3 group
pinctrl: sh-pfc: r8a7791: Remove bogus marks from vin1_b_data18 group
pinctrl: sh-pfc: r8a7791: Remove bogus ctrl marks from qspi_data4_b group
pinctrl: sh-pfc: r8a7740: Add missing LCD0 marks to lcd0_data24_1 group
pinctrl: sh-pfc: r8a7740: Add missing REF125CK pin to gether_gmii group
drm/dp_mst: Skip validating ports during destruction, just ref
exportfs: fix 'passing zero to ERR_PTR()' warning
pcrypt: use format specifier in kobject_add
staging: comedi: ni_mio_common: protect register write overflow
* ALSA: usb-audio: update quirk for B&W PX to remove microphone
sound/usb/quirks-table.h
ALSA: hda: fix unused variable warning
drm/virtio: fix bounds check in virtio_gpu_cmd_get_capset()
mt7601u: fix bbp version check in mt7601u_wait_bbp_ready
powerpc/archrandom: fix arch_get_random_seed_int()
xfs: Sanity check flags of Q_XQUOTARM call
Linux 4.4.211
regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
perf probe: Fix wrong address verification
* scsi: core: scsi_trace: Use get_unaligned_be*()
drivers/scsi/scsi_trace.c
scsi: target: core: Fix a pr_debug() argument
scsi: bnx2i: fix potential use after free
scsi: qla4xxx: fix double free bug
scsi: esas2r: unlock on error in esas2r_nvram_read_direct()
* cfg80211: check for set_wiphy_params
net/wireless/rdev-ops.h
cw1200: Fix a signedness bug in cw1200_load_firmware()
xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk
net: usb: lan78xx: limit size of local TSO packets
* tcp: fix marked lost packets not being retransmitted
net/ipv4/tcp_input.c
* r8152: add missing endpoint sanity check
drivers/net/usb/r8152.c
macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()
batman-adv: Fix DAT candidate selection on little endian systems
netfilter: fix a use-after-free in mtype_destroy()
arm64: dts: agilex/stratix10: fix pmu interrupt numbers
scsi: fnic: fix invalid stack access
scsi: fnic: use kernel's '%pM' format option to print MAC
USB: serial: keyspan: handle unbound ports
USB: serial: io_edgeport: handle unbound ports on URB completion
USB: serial: io_edgeport: use irqsave() in USB's complete callback
net: stmmac: Enable 16KB buffer size
net: stmmac: 16KB buffer must be 16 byte aligned
* mm/page-writeback.c: avoid potential division by zero in wb_min_max_ratio()
mm/page-writeback.c
x86/efistub: Disable paging at mixed mode entry
* usb: core: hub: Improved device recognition on remote wakeup
drivers/usb/core/hub.c
scsi: mptfusion: Fix double fetch bug in ioctl
USB: serial: quatech2: handle unbound ports
USB: serial: io_edgeport: add missing active-port sanity check
USB: serial: ch341: handle unbound port at reset_resume
USB: serial: suppress driver bind attributes
USB: serial: opticon: fix control-message timeouts
USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx
* block: fix an integer overflow in logical block size
block/blk-settings.c
include/linux/blkdev.h
* Fix built-in early-load Intel microcode alignment
firmware/Makefile
ALSA: seq: Fix racy access for queue timer in proc read
ocfs2: call journal flush to mark journal as empty after journal recovery when mount
hexagon: work around compiler crash
rseq/selftests: Turn off timeout setting
rtc: msm6242: Fix reading of 10-hour digit
rtlwifi: Remove unnecessary NULL check in rtl_regd_init
spi: atmel: fix handling of cs_change set on non-last xfer
media: exynos4-is: Fix recursive locking in isp_video_release()
tty: serial: pch_uart: correct usage of dma_unmap_sg
tty: serial: imx: use the sg count from dma_map_sg
* compat_ioctl: handle SIOCOUTQNSD
net/socket.c
clk: samsung: exynos5420: Preserve CPU clocks configuration during suspend/resume
mei: fix modalias documentation
iio: imu: adis16480: assign bias value only if operation succeeded
platform/x86: asus-wmi: Fix keyboard brightness cannot be set to 0
* scsi: sd: Clear sdkp->protection_type if disk is reformatted without PI
drivers/scsi/sd.c
scsi: enclosure: Fix stale device oops with hot replug
RDMA/srpt: Report the SCSI residual to the initiator
cifs: Adjust indentation in smb2_open_file
hsr: reset network header when supervision frame is created
* gpio: Fix error message on out-of-range GPIO in lookup table
drivers/gpio/gpiolib.c
* iommu: Remove device link to group on failure
drivers/iommu/iommu.c
rtc: mt6397: fix alarm register overwrite
dccp: Fix memleak in __feat_register_sp
* ext4: add more paranoia checking in ext4_expand_extra_isize handling
fs/ext4/inode.c
fs/ext4/super.c
* ext4: fix use-after-free race with debug_want_extra_isize
fs/ext4/super.c
wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle
wimax: i2400: fix memory leak
xen: let alloc_xenballooned_pages() fail if not enough memory free
* mm/page_alloc.c: calculate 'available' memory in a separate function
fs/proc/meminfo.c
include/linux/mm.h
mm/page_alloc.c
ALSA: line6: Fix memory leak at line6_init_pcm() error path
ALSA: line6: Fix write on zero-sized buffer
p54usb: Fix race between disconnect and firmware loading
media: usb:zr364xx:Fix KASAN:null-ptr-deref Read in zr364xx_vidioc_querycap
mac80211: Do not send Layer 2 Update frame before authorization
* cfg80211/mac80211: make ieee80211_send_layer2_update a public function
include/net/cfg80211.h
net/wireless/util.c
rsi: add fix for crash during assertions
* HID: hidraw, uhid: Always report EPOLLOUT
drivers/hid/hidraw.c
drivers/hid/uhid.c
* HID: hidraw: Fix returning EPOLLOUT from hidraw_poll
drivers/hid/hidraw.c
* hidraw: Return EPOLLOUT from hidraw_poll
drivers/hid/hidraw.c
Change-Id: I4e2a28e048faff24238ce5a56af2303790a9bdf3
Signed-off-by: lucaswei <lucaswei@google.com>
494 lines
16 KiB
C
494 lines
16 KiB
C
/* internal.h: mm/ internal definitions
|
|
*
|
|
* Copyright (C) 2004 Red Hat, Inc. All Rights Reserved.
|
|
* Written by David Howells (dhowells@redhat.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
#ifndef __MM_INTERNAL_H
|
|
#define __MM_INTERNAL_H
|
|
|
|
#include <linux/fs.h>
|
|
#include <linux/mm.h>
|
|
|
|
/*
|
|
* The set of flags that only affect watermark checking and reclaim
|
|
* behaviour. This is used by the MM to obey the caller constraints
|
|
* about IO, FS and watermark checking while ignoring placement
|
|
* hints such as HIGHMEM usage.
|
|
*/
|
|
#define GFP_RECLAIM_MASK (__GFP_RECLAIM|__GFP_HIGH|__GFP_IO|__GFP_FS|\
|
|
__GFP_NOWARN|__GFP_REPEAT|__GFP_NOFAIL|\
|
|
__GFP_NORETRY|__GFP_MEMALLOC|__GFP_NOMEMALLOC|\
|
|
__GFP_ATOMIC)
|
|
|
|
/* The GFP flags allowed during early boot */
|
|
#define GFP_BOOT_MASK (__GFP_BITS_MASK & ~(__GFP_RECLAIM|__GFP_IO|__GFP_FS))
|
|
|
|
/* Control allocation cpuset and node placement constraints */
|
|
#define GFP_CONSTRAINT_MASK (__GFP_HARDWALL|__GFP_THISNODE)
|
|
|
|
/* Do not use these with a slab allocator */
|
|
#define GFP_SLAB_BUG_MASK (__GFP_DMA32|__GFP_HIGHMEM|~__GFP_BITS_MASK)
|
|
|
|
void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma,
|
|
unsigned long floor, unsigned long ceiling);
|
|
|
|
static inline void set_page_count(struct page *page, int v)
|
|
{
|
|
atomic_set(&page->_count, v);
|
|
}
|
|
|
|
extern int __do_page_cache_readahead(struct address_space *mapping,
|
|
struct file *filp, pgoff_t offset, unsigned long nr_to_read,
|
|
unsigned long lookahead_size);
|
|
|
|
/*
|
|
* Submit IO for the read-ahead request in file_ra_state.
|
|
*/
|
|
static inline unsigned long ra_submit(struct file_ra_state *ra,
|
|
struct address_space *mapping, struct file *filp)
|
|
{
|
|
return __do_page_cache_readahead(mapping, filp,
|
|
ra->start, ra->size, ra->async_size);
|
|
}
|
|
|
|
/*
|
|
* Turn a non-refcounted page (->_count == 0) into refcounted with
|
|
* a count of one.
|
|
*/
|
|
static inline void set_page_refcounted(struct page *page)
|
|
{
|
|
VM_BUG_ON_PAGE(PageTail(page), page);
|
|
VM_BUG_ON_PAGE(atomic_read(&page->_count), page);
|
|
set_page_count(page, 1);
|
|
}
|
|
|
|
static inline void __get_page_tail_foll(struct page *page,
|
|
bool get_page_head)
|
|
{
|
|
/*
|
|
* If we're getting a tail page, the elevated page->_count is
|
|
* required only in the head page and we will elevate the head
|
|
* page->_count and tail page->_mapcount.
|
|
*
|
|
* We elevate page_tail->_mapcount for tail pages to force
|
|
* page_tail->_count to be zero at all times to avoid getting
|
|
* false positives from get_page_unless_zero() with
|
|
* speculative page access (like in
|
|
* page_cache_get_speculative()) on tail pages.
|
|
*/
|
|
VM_BUG_ON_PAGE(page_ref_zero_or_close_to_overflow(compound_head(page)),
|
|
page);
|
|
if (get_page_head)
|
|
atomic_inc(&compound_head(page)->_count);
|
|
get_huge_page_tail(page);
|
|
}
|
|
|
|
/*
|
|
* This is meant to be called as the FOLL_GET operation of
|
|
* follow_page() and it must be called while holding the proper PT
|
|
* lock while the pte (or pmd_trans_huge) is still mapping the page.
|
|
*/
|
|
static inline void get_page_foll(struct page *page)
|
|
{
|
|
if (unlikely(PageTail(page)))
|
|
/*
|
|
* This is safe only because
|
|
* __split_huge_page_refcount() can't run under
|
|
* get_page_foll() because we hold the proper PT lock.
|
|
*/
|
|
__get_page_tail_foll(page, true);
|
|
else {
|
|
/*
|
|
* Getting a normal page or the head of a compound page
|
|
* requires to already have an elevated page->_count.
|
|
*/
|
|
VM_BUG_ON_PAGE(page_ref_zero_or_close_to_overflow(page), page);
|
|
atomic_inc(&page->_count);
|
|
}
|
|
}
|
|
|
|
static inline __must_check bool try_get_page_foll(struct page *page)
|
|
{
|
|
if (unlikely(PageTail(page))) {
|
|
if (WARN_ON_ONCE(atomic_read(&compound_head(page)->_count) <= 0))
|
|
return false;
|
|
/*
|
|
* This is safe only because
|
|
* __split_huge_page_refcount() can't run under
|
|
* get_page_foll() because we hold the proper PT lock.
|
|
*/
|
|
__get_page_tail_foll(page, true);
|
|
} else {
|
|
/*
|
|
* Getting a normal page or the head of a compound page
|
|
* requires to already have an elevated page->_count.
|
|
*/
|
|
if (WARN_ON_ONCE(atomic_read(&page->_count) <= 0))
|
|
return false;
|
|
atomic_inc(&page->_count);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
extern unsigned long highest_memmap_pfn;
|
|
|
|
/*
|
|
* in mm/vmscan.c:
|
|
*/
|
|
extern int isolate_lru_page(struct page *page);
|
|
extern void putback_lru_page(struct page *page);
|
|
extern bool zone_reclaimable(struct zone *zone);
|
|
|
|
/*
|
|
* in mm/rmap.c:
|
|
*/
|
|
extern pmd_t *mm_find_pmd(struct mm_struct *mm, unsigned long address);
|
|
|
|
/*
|
|
* in mm/page_alloc.c
|
|
*/
|
|
|
|
/*
|
|
* Structure for holding the mostly immutable allocation parameters passed
|
|
* between functions involved in allocations, including the alloc_pages*
|
|
* family of functions.
|
|
*
|
|
* nodemask, migratetype and high_zoneidx are initialized only once in
|
|
* __alloc_pages_nodemask() and then never change.
|
|
*
|
|
* zonelist, preferred_zone and classzone_idx are set first in
|
|
* __alloc_pages_nodemask() for the fast path, and might be later changed
|
|
* in __alloc_pages_slowpath(). All other functions pass the whole strucure
|
|
* by a const pointer.
|
|
*/
|
|
struct alloc_context {
|
|
struct zonelist *zonelist;
|
|
nodemask_t *nodemask;
|
|
struct zone *preferred_zone;
|
|
int classzone_idx;
|
|
int migratetype;
|
|
enum zone_type high_zoneidx;
|
|
bool spread_dirty_pages;
|
|
};
|
|
|
|
/*
|
|
* Locate the struct page for both the matching buddy in our
|
|
* pair (buddy1) and the combined O(n+1) page they form (page).
|
|
*
|
|
* 1) Any buddy B1 will have an order O twin B2 which satisfies
|
|
* the following equation:
|
|
* B2 = B1 ^ (1 << O)
|
|
* For example, if the starting buddy (buddy2) is #8 its order
|
|
* 1 buddy is #10:
|
|
* B2 = 8 ^ (1 << 1) = 8 ^ 2 = 10
|
|
*
|
|
* 2) Any buddy B will have an order O+1 parent P which
|
|
* satisfies the following equation:
|
|
* P = B & ~(1 << O)
|
|
*
|
|
* Assumption: *_mem_map is contiguous at least up to MAX_ORDER
|
|
*/
|
|
static inline unsigned long
|
|
__find_buddy_index(unsigned long page_idx, unsigned int order)
|
|
{
|
|
return page_idx ^ (1 << order);
|
|
}
|
|
|
|
extern int __isolate_free_page(struct page *page, unsigned int order);
|
|
extern void __free_pages_bootmem(struct page *page, unsigned long pfn,
|
|
unsigned int order);
|
|
extern void prep_compound_page(struct page *page, unsigned int order);
|
|
#ifdef CONFIG_MEMORY_FAILURE
|
|
extern bool is_free_buddy_page(struct page *page);
|
|
#endif
|
|
extern int user_min_free_kbytes;
|
|
|
|
#if defined CONFIG_COMPACTION || defined CONFIG_CMA
|
|
|
|
/*
|
|
* in mm/compaction.c
|
|
*/
|
|
/*
|
|
* compact_control is used to track pages being migrated and the free pages
|
|
* they are being migrated to during memory compaction. The free_pfn starts
|
|
* at the end of a zone and migrate_pfn begins at the start. Movable pages
|
|
* are moved to the end of a zone during a compaction run and the run
|
|
* completes when free_pfn <= migrate_pfn
|
|
*/
|
|
struct compact_control {
|
|
struct list_head freepages; /* List of free pages to migrate to */
|
|
struct list_head migratepages; /* List of pages being migrated */
|
|
unsigned long nr_freepages; /* Number of isolated free pages */
|
|
unsigned long nr_migratepages; /* Number of pages to migrate */
|
|
unsigned long free_pfn; /* isolate_freepages search base */
|
|
unsigned long migrate_pfn; /* isolate_migratepages search base */
|
|
unsigned long last_migrated_pfn;/* Not yet flushed page being freed */
|
|
enum migrate_mode mode; /* Async or sync migration mode */
|
|
bool ignore_skip_hint; /* Scan blocks even if marked skip */
|
|
bool direct_compaction; /* False from kcompactd or /proc/... */
|
|
int order; /* order a direct compactor needs */
|
|
const gfp_t gfp_mask; /* gfp mask of a direct compactor */
|
|
const int alloc_flags; /* alloc flags of a direct compactor */
|
|
const int classzone_idx; /* zone index of a direct compactor */
|
|
struct zone *zone;
|
|
int contended; /* Signal need_sched() or lock
|
|
* contention detected during
|
|
* compaction
|
|
*/
|
|
};
|
|
|
|
unsigned long
|
|
isolate_freepages_range(struct compact_control *cc,
|
|
unsigned long start_pfn, unsigned long end_pfn);
|
|
unsigned long
|
|
isolate_migratepages_range(struct compact_control *cc,
|
|
unsigned long low_pfn, unsigned long end_pfn);
|
|
int find_suitable_fallback(struct free_area *area, unsigned int current_order,
|
|
int migratetype, bool only_stealable,
|
|
int start_order, bool *can_steal);
|
|
#endif
|
|
|
|
/*
|
|
* This function returns the order of a free page in the buddy system. In
|
|
* general, page_zone(page)->lock must be held by the caller to prevent the
|
|
* page from being allocated in parallel and returning garbage as the order.
|
|
* If a caller does not hold page_zone(page)->lock, it must guarantee that the
|
|
* page cannot be allocated or merged in parallel. Alternatively, it must
|
|
* handle invalid values gracefully, and use page_order_unsafe() below.
|
|
*/
|
|
static inline unsigned int page_order(struct page *page)
|
|
{
|
|
/* PageBuddy() must be checked by the caller */
|
|
return page_private(page);
|
|
}
|
|
|
|
/*
|
|
* Like page_order(), but for callers who cannot afford to hold the zone lock.
|
|
* PageBuddy() should be checked first by the caller to minimize race window,
|
|
* and invalid values must be handled gracefully.
|
|
*
|
|
* READ_ONCE is used so that if the caller assigns the result into a local
|
|
* variable and e.g. tests it for valid range before using, the compiler cannot
|
|
* decide to remove the variable and inline the page_private(page) multiple
|
|
* times, potentially observing different values in the tests and the actual
|
|
* use of the result.
|
|
*/
|
|
#define page_order_unsafe(page) READ_ONCE(page_private(page))
|
|
|
|
static inline bool is_cow_mapping(vm_flags_t flags)
|
|
{
|
|
return (flags & (VM_SHARED | VM_MAYWRITE)) == VM_MAYWRITE;
|
|
}
|
|
|
|
/* mm/util.c */
|
|
void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
|
|
struct vm_area_struct *prev, struct rb_node *rb_parent);
|
|
|
|
#ifdef CONFIG_MMU
|
|
extern long populate_vma_page_range(struct vm_area_struct *vma,
|
|
unsigned long start, unsigned long end, int *nonblocking);
|
|
extern void munlock_vma_pages_range(struct vm_area_struct *vma,
|
|
unsigned long start, unsigned long end);
|
|
static inline void munlock_vma_pages_all(struct vm_area_struct *vma)
|
|
{
|
|
munlock_vma_pages_range(vma, vma->vm_start, vma->vm_end);
|
|
}
|
|
|
|
/*
|
|
* must be called with vma's mmap_sem held for read or write, and page locked.
|
|
*/
|
|
extern void mlock_vma_page(struct page *page);
|
|
extern unsigned int munlock_vma_page(struct page *page);
|
|
|
|
/*
|
|
* Clear the page's PageMlocked(). This can be useful in a situation where
|
|
* we want to unconditionally remove a page from the pagecache -- e.g.,
|
|
* on truncation or freeing.
|
|
*
|
|
* It is legal to call this function for any page, mlocked or not.
|
|
* If called for a page that is still mapped by mlocked vmas, all we do
|
|
* is revert to lazy LRU behaviour -- semantics are not broken.
|
|
*/
|
|
extern void clear_page_mlock(struct page *page);
|
|
|
|
/*
|
|
* mlock_migrate_page - called only from migrate_misplaced_transhuge_page()
|
|
* (because that does not go through the full procedure of migration ptes):
|
|
* to migrate the Mlocked page flag; update statistics.
|
|
*/
|
|
static inline void mlock_migrate_page(struct page *newpage, struct page *page)
|
|
{
|
|
if (TestClearPageMlocked(page)) {
|
|
int nr_pages = hpage_nr_pages(page);
|
|
|
|
/* Holding pmd lock, no change in irq context: __mod is safe */
|
|
__mod_zone_page_state(page_zone(page), NR_MLOCK, -nr_pages);
|
|
SetPageMlocked(newpage);
|
|
__mod_zone_page_state(page_zone(newpage), NR_MLOCK, nr_pages);
|
|
}
|
|
}
|
|
|
|
extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma);
|
|
|
|
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
|
extern unsigned long vma_address(struct page *page,
|
|
struct vm_area_struct *vma);
|
|
#endif
|
|
#else /* !CONFIG_MMU */
|
|
static inline void clear_page_mlock(struct page *page) { }
|
|
static inline void mlock_vma_page(struct page *page) { }
|
|
static inline void mlock_migrate_page(struct page *new, struct page *old) { }
|
|
|
|
#endif /* !CONFIG_MMU */
|
|
|
|
/*
|
|
* Return the mem_map entry representing the 'offset' subpage within
|
|
* the maximally aligned gigantic page 'base'. Handle any discontiguity
|
|
* in the mem_map at MAX_ORDER_NR_PAGES boundaries.
|
|
*/
|
|
static inline struct page *mem_map_offset(struct page *base, int offset)
|
|
{
|
|
if (unlikely(offset >= MAX_ORDER_NR_PAGES))
|
|
return nth_page(base, offset);
|
|
return base + offset;
|
|
}
|
|
|
|
/*
|
|
* Iterator over all subpages within the maximally aligned gigantic
|
|
* page 'base'. Handle any discontiguity in the mem_map.
|
|
*/
|
|
static inline struct page *mem_map_next(struct page *iter,
|
|
struct page *base, int offset)
|
|
{
|
|
if (unlikely((offset & (MAX_ORDER_NR_PAGES - 1)) == 0)) {
|
|
unsigned long pfn = page_to_pfn(base) + offset;
|
|
if (!pfn_valid(pfn))
|
|
return NULL;
|
|
return pfn_to_page(pfn);
|
|
}
|
|
return iter + 1;
|
|
}
|
|
|
|
/*
|
|
* FLATMEM and DISCONTIGMEM configurations use alloc_bootmem_node,
|
|
* so all functions starting at paging_init should be marked __init
|
|
* in those cases. SPARSEMEM, however, allows for memory hotplug,
|
|
* and alloc_bootmem_node is not used.
|
|
*/
|
|
#ifdef CONFIG_SPARSEMEM
|
|
#define __paginginit __meminit
|
|
#else
|
|
#define __paginginit __init
|
|
#endif
|
|
|
|
/* Memory initialisation debug and verification */
|
|
enum mminit_level {
|
|
MMINIT_WARNING,
|
|
MMINIT_VERIFY,
|
|
MMINIT_TRACE
|
|
};
|
|
|
|
#ifdef CONFIG_DEBUG_MEMORY_INIT
|
|
|
|
extern int mminit_loglevel;
|
|
|
|
#define mminit_dprintk(level, prefix, fmt, arg...) \
|
|
do { \
|
|
if (level < mminit_loglevel) { \
|
|
if (level <= MMINIT_WARNING) \
|
|
printk(KERN_WARNING "mminit::" prefix " " fmt, ##arg); \
|
|
else \
|
|
printk(KERN_DEBUG "mminit::" prefix " " fmt, ##arg); \
|
|
} \
|
|
} while (0)
|
|
|
|
extern void mminit_verify_pageflags_layout(void);
|
|
extern void mminit_verify_zonelist(void);
|
|
#else
|
|
|
|
static inline void mminit_dprintk(enum mminit_level level,
|
|
const char *prefix, const char *fmt, ...)
|
|
{
|
|
}
|
|
|
|
static inline void mminit_verify_pageflags_layout(void)
|
|
{
|
|
}
|
|
|
|
static inline void mminit_verify_zonelist(void)
|
|
{
|
|
}
|
|
#endif /* CONFIG_DEBUG_MEMORY_INIT */
|
|
|
|
/* mminit_validate_memmodel_limits is independent of CONFIG_DEBUG_MEMORY_INIT */
|
|
#if defined(CONFIG_SPARSEMEM)
|
|
extern void mminit_validate_memmodel_limits(unsigned long *start_pfn,
|
|
unsigned long *end_pfn);
|
|
#else
|
|
static inline void mminit_validate_memmodel_limits(unsigned long *start_pfn,
|
|
unsigned long *end_pfn)
|
|
{
|
|
}
|
|
#endif /* CONFIG_SPARSEMEM */
|
|
|
|
#define ZONE_RECLAIM_NOSCAN -2
|
|
#define ZONE_RECLAIM_FULL -1
|
|
#define ZONE_RECLAIM_SOME 0
|
|
#define ZONE_RECLAIM_SUCCESS 1
|
|
|
|
extern int hwpoison_filter(struct page *p);
|
|
|
|
extern u32 hwpoison_filter_dev_major;
|
|
extern u32 hwpoison_filter_dev_minor;
|
|
extern u64 hwpoison_filter_flags_mask;
|
|
extern u64 hwpoison_filter_flags_value;
|
|
extern u64 hwpoison_filter_memcg;
|
|
extern u32 hwpoison_filter_enable;
|
|
|
|
extern unsigned long vm_mmap_pgoff(struct file *, unsigned long,
|
|
unsigned long, unsigned long,
|
|
unsigned long, unsigned long);
|
|
|
|
extern void set_pageblock_order(void);
|
|
unsigned long reclaim_clean_pages_from_list(struct zone *zone,
|
|
struct list_head *page_list);
|
|
/* The ALLOC_WMARK bits are used as an index to zone->watermark */
|
|
#define ALLOC_WMARK_MIN WMARK_MIN
|
|
#define ALLOC_WMARK_LOW WMARK_LOW
|
|
#define ALLOC_WMARK_HIGH WMARK_HIGH
|
|
#define ALLOC_NO_WATERMARKS 0x04 /* don't check watermarks at all */
|
|
|
|
/* Mask to get the watermark bits */
|
|
#define ALLOC_WMARK_MASK (ALLOC_NO_WATERMARKS-1)
|
|
|
|
#define ALLOC_HARDER 0x10 /* try to alloc harder */
|
|
#define ALLOC_HIGH 0x20 /* __GFP_HIGH set */
|
|
#define ALLOC_CPUSET 0x40 /* check for correct cpuset */
|
|
#define ALLOC_CMA 0x80 /* allow allocations from CMA areas */
|
|
#define ALLOC_FAIR 0x100 /* fair zone allocation */
|
|
|
|
enum ttu_flags;
|
|
struct tlbflush_unmap_batch;
|
|
|
|
#ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
|
|
void try_to_unmap_flush(void);
|
|
void try_to_unmap_flush_dirty(void);
|
|
void flush_tlb_batched_pending(struct mm_struct *mm);
|
|
#else
|
|
static inline void try_to_unmap_flush(void)
|
|
{
|
|
}
|
|
static inline void try_to_unmap_flush_dirty(void)
|
|
{
|
|
}
|
|
static inline void flush_tlb_batched_pending(struct mm_struct *mm)
|
|
{
|
|
}
|
|
#endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */
|
|
#endif /* __MM_INTERNAL_H */
|