OSDN Git Service

Merge android-4.4.185 (14e1196) into msm-4.4
authorSrinivasarao P <spathi@codeaurora.org>
Thu, 11 Jul 2019 06:26:30 +0000 (11:56 +0530)
committerSrinivasarao P <spathi@codeaurora.org>
Thu, 11 Jul 2019 06:40:40 +0000 (12:10 +0530)
* refs/heads/tmp-14e1196
  ANDROID: Communicates LMK events to userland where they can be logged
  Linux 4.4.185
  dmaengine: imx-sdma: remove BD_INTR for channel0
  KVM: x86: degrade WARN to pr_warn_ratelimited
  arm64, vdso: Define vdso_{start,end} as array
  ARC: handle gcc generated __builtin_trap for older compiler
  tty: rocket: fix incorrect forward declaration of 'rp_init()'
  btrfs: Ensure replaced device doesn't have pending chunk allocation
  lib/mpi: Fix karactx leak in mpi_powm
  ALSA: usb-audio: fix sign unintended sign extension on left shifts
  ALSA: firewire-lib/fireworks: fix miss detection of received MIDI messages
  ALSA: seq: fix incorrect order of dest_client/dest_ports arguments
  crypto: user - prevent operating on larval algorithms
  ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME
  MIPS: Workaround GCC __builtin_unreachable reordering bug
  bug.h: work around GCC PR82365 in BUG()
  swiotlb: Make linux/swiotlb.h standalone includible
  mfd: omap-usb-tll: Fix register offsets
  MIPS: math-emu: do not use bools for arithmetic
  ARC: fix build warning in elf.h
  ARC: Assume multiplier is always present
  scsi: hpsa: correct ioaccel2 chaining
  usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC
  usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i]
  ASoC: max98090: remove 24-bit format support if RJ is 0
  spi: bitbang: Fix NULL pointer dereference in spi_unregister_master
  ASoC : cs4265 : readable register too low
  um: Compile with modern headers
  Bluetooth: Fix faulty expression for minimum encryption key size check
  net: check before dereferencing netdev_ops during busy poll
  bonding: Always enable vlan tx offload
  ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop
  team: Always enable vlan tx offload
  tipc: check msg->req data len in tipc_nl_compat_bearer_disable
  tipc: change to use register_pernet_device
  sctp: change to hold sk after auth shkey is created successfully
  cpu/speculation: Warn on unsupported mitigations= parameter
  x86/speculation: Allow guests to use SSBD even if host does not
  ovl: modify ovl_permission() to do checks on two inodes
  KVM: X86: Fix scan ioapic use-before-initialization
  net/9p: include trans_common.h to fix missing prototype warning.
  9p: p9dirent_read: check network-provided name length
  9p/rdma: remove useless check in cm_event_handler
  9p: acl: fix uninitialized iattr access
  9p/rdma: do not disconnect on down_interruptible EAGAIN
  perf help: Remove needless use of strncpy()
  perf ui helpline: Use strlcpy() as a shorter form of strncpy() + explicit set nul
  mac80211: drop robust management frames from unknown TA
  cfg80211: fix memory leak of wiphy device name
  SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write
  Bluetooth: Fix regression with minimum encryption key size alignment
  Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
  ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
  can: purge socket error queue on sock destruct
  can: flexcan: fix timeout when set small bitrate
  btrfs: start readahead also in seed devices
  Btrfs: fix race between readahead and device replace/removal
  hwmon: (pmbus/core) Treat parameters as paged if on multiple pages
  s390/qeth: fix VLAN attribute in bridge_hostnotify udev event
  scsi: ufs: Check that space was properly alloced in copy_query_response
  scripts/checkstack.pl: Fix arm64 wrong or unknown architecture
  sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD
  net: hns: Fix loopback test failed at copper ports
  MIPS: uprobes: remove set but not used variable 'epc'
  IB/hfi1: Insure freeze_work work_struct is canceled on shutdown
  parisc: Fix compiler warnings in float emulation code
  parport: Fix mem leak in parport_register_dev_model
  apparmor: enforce nullbyte at end of tag string
  Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD
  usb: chipidea: udc: workaround for endpoint conflict issue
  gcc-9: silence 'address-of-packed-member' warning
  tracing: Silence GCC 9 array bounds warning
  scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck()
  mm/page_idle.c: fix oops because end_pfn is larger than max_pfn
  fs/binfmt_flat.c: make load_flat_shared_library() work
  ANDROID: Fixes to locking around handle_lmk_event
  ANDROID: Avoid taking multiple locks in handle_lmk_event

Side effects from the commit "ANDROID: Communicates LMK events to userland
where they can be logged" is addressed here, so picking this commit which
ignored from 4.4.180 merge.

Conflicts:
drivers/staging/android/lowmemorykiller.c

Change-Id: I1156dc21d0f35e74e86d2ad202f99b7bc173b874
Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
1  2 
Makefile
drivers/scsi/ufs/ufshcd.c
drivers/staging/android/lowmemorykiller.c
kernel/cpu.c
kernel/trace/trace.c
net/bluetooth/hci_conn.c
net/bluetooth/l2cap_core.c
net/mac80211/rx.c
net/wireless/core.c

diff --cc Makefile
Simple merge
Simple merge
  #include <linux/rcupdate.h>
  #include <linux/profile.h>
  #include <linux/notifier.h>
 +#include <linux/mutex.h>
 +#include <linux/delay.h>
 +#include <linux/swap.h>
 +#include <linux/fs.h>
 +#include <linux/cpuset.h>
 +#include <linux/vmpressure.h>
 +#include <linux/zcache.h>
+ #include <linux/circ_buf.h>
+ #include <linux/proc_fs.h>
+ #include <linux/slab.h>
  
  #define CREATE_TRACE_POINTS
 +#include <trace/events/almk.h>
 +
 +#ifdef CONFIG_HIGHMEM
 +#define _ZONE ZONE_HIGHMEM
 +#else
 +#define _ZONE ZONE_NORMAL
 +#endif
 +
 +#define CREATE_TRACE_POINTS
  #include "trace/lowmemorykiller.h"
  
  static uint32_t lowmem_debug_level = 1;
@@@ -553,38 -337,20 +703,44 @@@ static unsigned long lowmem_scan(struc
                             current->comm, current->pid,
                             cache_size, cache_limit,
                             min_score_adj,
 -                           free);
 +                           free,
 +                           global_page_state(NR_FREE_CMA_PAGES) *
 +                              (long)(PAGE_SIZE / 1024),
 +                           totalreserve_pages * (long)(PAGE_SIZE / 1024),
 +                           global_page_state(NR_FREE_PAGES) *
 +                              (long)(PAGE_SIZE / 1024),
 +                           global_page_state(NR_FILE_PAGES) *
 +                              (long)(PAGE_SIZE / 1024),
 +                           (long)zcache_pages() * (long)(PAGE_SIZE / 1024),
 +                           sc->gfp_mask);
 +
 +              if (lowmem_debug_level >= 2 && selected_oom_score_adj == 0) {
 +                      show_mem(SHOW_MEM_FILTER_NODES);
 +                      dump_tasks(NULL, NULL);
 +              }
 +
                lowmem_deathpending_timeout = jiffies + HZ;
                rem += selected_tasksize;
 +              rcu_read_unlock();
+               get_task_struct(selected);
 +              /* give the system time to free up the memory */
 +              msleep_interruptible(20);
 +              trace_almk_shrink(selected_tasksize, ret,
 +                                other_free, other_file,
 +                                selected_oom_score_adj);
 +      } else {
 +              trace_almk_shrink(1, ret, other_free, other_file, 0);
 +              rcu_read_unlock();
        }
  
        lowmem_print(4, "lowmem_scan %lu, %x, return %lu\n",
                     sc->nr_to_scan, sc->gfp_mask, rem);
 -      rcu_read_unlock();
 +      mutex_unlock(&scan_mutex);
+       if (selected) {
+               handle_lmk_event(selected, selected_tasksize, min_score_adj);
+               put_task_struct(selected);
+       }
        return rem;
  }
  
@@@ -598,7 -363,7 +754,8 @@@ static struct shrinker lowmem_shrinker 
  static int __init lowmem_init(void)
  {
        register_shrinker(&lowmem_shrinker);
 +      vmpressure_notifier_register(&lmk_vmpr_nb);
+       lmk_event_init();
        return 0;
  }
  device_initcall(lowmem_init);
diff --cc kernel/cpu.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge