Merge 5.10.21 into android12-5.10
Changes in 5.10.21 net: usb: qmi_wwan: support ZTE P685M modem Input: elantech - fix protocol errors for some trackpoints in SMBus mode Input: elan_i2c - add new trackpoint report type 0x5F drm/virtio: use kvmalloc for large allocations x86/build: Treat R_386_PLT32 relocation as R_386_PC32 JFS: more checks for invalid superblock sched/core: Allow try_invoke_on_locked_down_task() with irqs disabled udlfb: Fix memory leak in dlfb_usb_probe media: mceusb: sanity check for prescaler value erofs: fix shift-out-of-bounds of blkszbits media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate xfs: Fix assert failure in xfs_setattr_size() net/af_iucv: remove WARN_ONCE on malformed RX packets smackfs: restrict bytes count in smackfs write functions tomoyo: ignore data race while checking quota net: fix up truesize of cloned skb in skb_prepare_for_shift() riscv: Get rid of MAX_EARLY_MAPPING_SIZE nbd: handle device refs for DESTROY_ON_DISCONNECT properly mm/hugetlb.c: fix unnecessary address expansion of pmd sharing RDMA/rtrs: Do not signal for heatbeat RDMA/rtrs-clt: Use bitmask to check sess->flags RDMA/rtrs-srv: Do not signal REG_MR tcp: fix tcp_rmem documentation mptcp: do not wakeup listener for MPJ subflows net: bridge: use switchdev for port flags set through sysfs too net/sched: cls_flower: Reject invalid ct_state flags rules net: dsa: tag_rtl4_a: Support also egress tags net: ag71xx: remove unnecessary MTU reservation net: hsr: add support for EntryForgetTime net: psample: Fix netlink skb length with tunnel info net: fix dev_ifsioc_locked() race condition dt-bindings: ethernet-controller: fix fixed-link specification dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/ ASoC: qcom: Remove useless debug print rsi: Fix TX EAPOL packet handling against iwlwifi AP rsi: Move card interrupt handling to RX thread EDAC/amd64: Do not load on family 0x15, model 0x13 staging: fwserial: Fix error handling in fwserial_create x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk vt/consolemap: do font sum unsigned wlcore: Fix command execute failure 19 for wl12xx Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl Bluetooth: btusb: fix memory leak on suspend and resume mt76: mt7615: reset token when mac_reset happens pktgen: fix misuse of BUG_ON() in pktgen_thread_worker() ath10k: fix wmi mgmt tx queue full due to race condition net: sfp: add mode quirk for GPON module Ubiquiti U-Fiber Instant Bluetooth: Add new HCI_QUIRK_NO_SUSPEND_NOTIFIER quirk Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data staging: most: sound: add sanity check for function argument staging: bcm2835-audio: Replace unsafe strcpy() with strscpy() brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet drm/hisilicon: Fix use-after-free crypto: tcrypt - avoid signed overflow in byte count fs: make unlazy_walk() error handling consistent drm/amdgpu: Add check to prevent IH overflow PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse ASoC: Intel: bytcr_rt5640: Add new BYT_RT5640_NO_SPEAKERS quirk-flag drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails drm/amd/amdgpu: add error handling to amdgpu_virt_read_pf2vf_data media: uvcvideo: Allow entities with no pads f2fs: handle unallocated section and zone on pinned/atgc f2fs: fix to set/clear I_LINKABLE under i_lock nvme-core: add cancel tagset helpers nvme-rdma: add clean action for failed reconnection nvme-tcp: add clean action for failed reconnection ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr() btrfs: fix error handling in commit_fs_roots perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[] ASoC: Intel: sof-sdw: indent and add quirks consistently ASoC: Intel: sof_sdw: detect DMIC number based on mach params parisc: Bump 64-bit IRQ stack size to 64 KB sched/features: Fix hrtick reprogramming ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R tablet ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet scsi: iscsi: Restrict sessions and handles to admin capabilities scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE scsi: iscsi: Verify lengths on passthrough PDUs Xen/gnttab: handle p2m update errors on a per-slot basis xen-netback: respect gnttab_map_refs()'s return value xen: fix p2m size in dom0 for disabled memory hotplug case zsmalloc: account the number of compacted pages correctly remoteproc/mediatek: Fix kernel test robot warning swap: fix swapfile read/write offset powerpc/sstep: Check instruction validity against ISA version before emulation powerpc/sstep: Fix incorrect return from analyze_instr() tty: fix up iterate_tty_read() EOVERFLOW handling tty: fix up hung_up_tty_read() conversion tty: clean up legacy leftovers from n_tty line discipline tty: teach n_tty line discipline about the new "cookie continuations" tty: teach the n_tty ICANON case about the new "cookie continuations" too media: v4l: ioctl: Fix memory leak in video_usercopy ALSA: hda/realtek: Add quirk for Clevo NH55RZQ ALSA: hda/realtek: Add quirk for Intel NUC 10 ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board net: sfp: VSOL V2801F / CarlitoxxPro CPGOS03-0490 v2.0 workaround net: sfp: add workaround for Realtek RTL8672 and RTL9601C chips Linux 5.10.21 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I52b1105b73d893779b3886b577accfabe9f83a16
This commit is contained in:
@@ -2216,11 +2216,13 @@ static unsigned long zs_can_compact(struct size_class *class)
|
||||
return obj_wasted * class->pages_per_zspage;
|
||||
}
|
||||
|
||||
static void __zs_compact(struct zs_pool *pool, struct size_class *class)
|
||||
static unsigned long __zs_compact(struct zs_pool *pool,
|
||||
struct size_class *class)
|
||||
{
|
||||
struct zs_compact_control cc;
|
||||
struct zspage *src_zspage;
|
||||
struct zspage *dst_zspage = NULL;
|
||||
unsigned long pages_freed = 0;
|
||||
|
||||
spin_lock(&class->lock);
|
||||
while ((src_zspage = isolate_zspage(class, true))) {
|
||||
@@ -2250,7 +2252,7 @@ static void __zs_compact(struct zs_pool *pool, struct size_class *class)
|
||||
putback_zspage(class, dst_zspage);
|
||||
if (putback_zspage(class, src_zspage) == ZS_EMPTY) {
|
||||
free_zspage(pool, class, src_zspage);
|
||||
pool->stats.pages_compacted += class->pages_per_zspage;
|
||||
pages_freed += class->pages_per_zspage;
|
||||
}
|
||||
spin_unlock(&class->lock);
|
||||
cond_resched();
|
||||
@@ -2261,12 +2263,15 @@ static void __zs_compact(struct zs_pool *pool, struct size_class *class)
|
||||
putback_zspage(class, src_zspage);
|
||||
|
||||
spin_unlock(&class->lock);
|
||||
|
||||
return pages_freed;
|
||||
}
|
||||
|
||||
unsigned long zs_compact(struct zs_pool *pool)
|
||||
{
|
||||
int i;
|
||||
struct size_class *class;
|
||||
unsigned long pages_freed = 0;
|
||||
|
||||
for (i = ZS_SIZE_CLASSES - 1; i >= 0; i--) {
|
||||
class = pool->size_class[i];
|
||||
@@ -2274,10 +2279,11 @@ unsigned long zs_compact(struct zs_pool *pool)
|
||||
continue;
|
||||
if (class->index != i)
|
||||
continue;
|
||||
__zs_compact(pool, class);
|
||||
pages_freed += __zs_compact(pool, class);
|
||||
}
|
||||
atomic_long_add(pages_freed, &pool->stats.pages_compacted);
|
||||
|
||||
return pool->stats.pages_compacted;
|
||||
return pages_freed;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(zs_compact);
|
||||
|
||||
@@ -2294,13 +2300,12 @@ static unsigned long zs_shrinker_scan(struct shrinker *shrinker,
|
||||
struct zs_pool *pool = container_of(shrinker, struct zs_pool,
|
||||
shrinker);
|
||||
|
||||
pages_freed = pool->stats.pages_compacted;
|
||||
/*
|
||||
* Compact classes and calculate compaction delta.
|
||||
* Can run concurrently with a manually triggered
|
||||
* (by user) compaction.
|
||||
*/
|
||||
pages_freed = zs_compact(pool) - pages_freed;
|
||||
pages_freed = zs_compact(pool);
|
||||
|
||||
return pages_freed ? pages_freed : SHRINK_STOP;
|
||||
}
|
||||
|
Reference in New Issue
Block a user