Merge 4.4.80 into android-4.4
authorGreg Kroah-Hartman <gregkh@google.com>
Mon, 7 Aug 2017 21:29:16 +0000 (14:29 -0700)
committerGreg Kroah-Hartman <gregkh@google.com>
Mon, 7 Aug 2017 21:29:16 +0000 (14:29 -0700)
Changes in 4.4.80
af_key: Add lock to key dump
pstore: Make spinlock per zone instead of global
net: reduce skb_warn_bad_offload() noise
powerpc/pseries: Fix of_node_put() underflow during reconfig remove
crypto: authencesn - Fix digest_null crash
md/raid5: add thread_group worker async_tx_issue_pending_all
drm/vmwgfx: Fix gcc-7.1.1 warning
drm/nouveau/bar/gf100: fix access to upper half of BAR2
KVM: PPC: Book3S HV: Context-switch EBB registers properly
KVM: PPC: Book3S HV: Restore critical SPRs to host values on guest exit
KVM: PPC: Book3S HV: Reload HTM registers explicitly
KVM: PPC: Book3S HV: Save/restore host values of debug registers
Revert "powerpc/numa: Fix percpu allocations to be NUMA aware"
Staging: comedi: comedi_fops: Avoid orphaned proc entry
drm/rcar: Nuke preclose hook
drm: rcar-du: Perform initialization/cleanup at probe/remove time
drm: rcar-du: Simplify and fix probe error handling
perf intel-pt: Fix ip compression
perf intel-pt: Fix last_ip usage
perf intel-pt: Use FUP always when scanning for an IP
perf intel-pt: Ensure never to set 'last_ip' when packet 'count' is zero
xfs: don't BUG() on mixed direct and mapped I/O
nfc: fdp: fix NULL pointer dereference
net: phy: Do not perform software reset for Generic PHY
isdn: Fix a sleep-in-atomic bug
isdn/i4l: fix buffer overflow
ath10k: fix null deref on wmi-tlv when trying spectral scan
wil6210: fix deadlock when using fw_no_recovery option
mailbox: always wait in mbox_send_message for blocking Tx mode
mailbox: skip complete wait event if timer expired
mailbox: handle empty message in tx_tick
mpt3sas: Don't overreach ioc->reply_post[] during initialization
kaweth: fix firmware download
kaweth: fix oops upon failed memory allocation
sched/cgroup: Move sched_online_group() back into css_online() to fix crash
PM / Domains: defer dev_pm_domain_set() until genpd->attach_dev succeeds if present
RDMA/uverbs: Fix the check for port number
libnvdimm, btt: fix btt_rw_page not returning errors
ipmi/watchdog: fix watchdog timeout set on reboot
dentry name snapshots
v4l: s5c73m3: fix negation operator
Make file credentials available to the seqfile interfaces
/proc/iomem: only expose physical resource addresses to privileged users
vlan: Propagate MAC address to VLANs
pstore: Allow prz to control need for locking
pstore: Correctly initialize spinlock and flags
pstore: Use dynamic spinlock initializer
net: skb_needs_check() accepts CHECKSUM_NONE for tx
sched/cputime: Fix prev steal time accouting during CPU hotplug
xen/blkback: don't free be structure too early
xen/blkback: don't use xen_blkif_get() in xen-blkback kthread
tpm: fix a kernel memory leak in tpm-sysfs.c
tpm: Replace device number bitmap with IDR
x86/mce/AMD: Make the init code more robust
r8169: add support for RTL8168 series add-on card.
ARM: dts: n900: Mark eMMC slot with no-sdio and no-sd flags
ipv6: Should use consistent conditional judgement for ip6 fragment between __ip6_append_data and ip6_finish_output
net/mlx4: Remove BUG_ON from ICM allocation routine
drm/msm: Ensure that the hardware write pointer is valid
drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set
vfio-pci: use 32-bit comparisons for register address for gcc-4.5
irqchip/keystone: Fix "scheduling while atomic" on rt
ASoC: tlv320aic3x: Mark the RESET register as volatile
spi: dw: Make debugfs name unique between instances
ASoC: nau8825: fix invalid configuration in Pre-Scalar of FLL
irqchip/mxs: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
openrisc: Add _text symbol to fix ksym build error
dmaengine: ioatdma: Add Skylake PCI Dev ID
dmaengine: ioatdma: workaround SKX ioatdma version
dmaengine: ti-dma-crossbar: Add some 'of_node_put()' in error path.
ARM64: zynqmp: Fix W=1 dtc 1.4 warnings
ARM64: zynqmp: Fix i2c node's compatible string
ARM: s3c2410_defconfig: Fix invalid values for NF_CT_PROTO_*
ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
usb: gadget: Fix copy/pasted error message
Btrfs: adjust outstanding_extents counter properly when dio write is split
tools lib traceevent: Fix prev/next_prio for deadline tasks
xfrm: Don't use sk_family for socket policy lookups
perf tools: Install tools/lib/traceevent plugins with install-bin
perf symbols: Robustify reading of build-id from sysfs
video: fbdev: cobalt_lcdfb: Handle return NULL error from devm_ioremap
vfio-pci: Handle error from pci_iomap
arm64: mm: fix show_pte KERN_CONT fallout
nvmem: imx-ocotp: Fix wrong register size
sh_eth: enable RX descriptor word 0 shift on SH7734
ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion
HID: ignore Petzl USB headlamp
scsi: fnic: Avoid sending reset to firmware when another reset is in progress
scsi: snic: Return error code on memory allocation failure
ASoC: dpcm: Avoid putting stream state to STOP when FE stream is paused
Linux 4.4.80

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
1  2 
Makefile
arch/arm64/mm/fault.c
fs/dcache.c
fs/namei.c
fs/pstore/ram.c
fs/pstore/ram_core.c
include/linux/dcache.h
include/linux/pstore_ram.h
kernel/sched/core.c
kernel/sched/sched.h

diff --cc Makefile
Simple merge
Simple merge
diff --cc fs/dcache.c
Simple merge
diff --cc fs/namei.c
Simple merge
diff --cc fs/pstore/ram.c
Simple merge
Simple merge
Simple merge
index 45ac5a0d29eefa85b4928c4c9dbe654dcfd047ca,6f4520a82197fcf25d11f7d58b52b846cd695445..7097a45dbc25c8c053745fc1bc164c4c2bfbe7f3
  #include <linux/kernel.h>
  #include <linux/list.h>
  #include <linux/types.h>
 -#include <linux/init.h>
  
+ /*
+  * Choose whether access to the RAM zone requires locking or not.  If a zone
+  * can be written to from different CPUs like with ftrace for example, then
+  * PRZ_FLAG_NO_LOCK is used. For all other cases, locking is required.
+  */
+ #define PRZ_FLAG_NO_LOCK      BIT(0)
  struct persistent_ram_buffer;
  struct rs_control;
  
index a4e23e7e6eded0f6231190d1d5c9380a83143347,dece705b7f8c197c48d6bb4761dd3e57f9a2045b..9307827cc7b14ef00e4e96c58fcbdfa85949fe92
@@@ -5784,11 -5552,7 +5784,10 @@@ migration_call(struct notifier_block *n
        switch (action & ~CPU_TASKS_FROZEN) {
  
        case CPU_UP_PREPARE:
 +              raw_spin_lock_irqsave(&rq->lock, flags);
 +              walt_set_window_start(rq);
 +              raw_spin_unlock_irqrestore(&rq->lock, flags);
                rq->calc_load_update = calc_load_update;
-               account_reset_rq(rq);
                break;
  
        case CPU_ONLINE:
index ce364ddbb72c739bab12f572da3703f2fc33f579,55d92a1ca070270be3f2697db84dc6bcd599d59f..430fff0d005d4305d2f953bb0ad366afd660e2fd
@@@ -2035,68 -1770,3 +2035,55 @@@ static inline u64 irq_time_read(int cpu
  }
  #endif /* CONFIG_64BIT */
  #endif /* CONFIG_IRQ_TIME_ACCOUNTING */
- static inline void account_reset_rq(struct rq *rq)
- {
- #ifdef CONFIG_IRQ_TIME_ACCOUNTING
-       rq->prev_irq_time = 0;
- #endif
- #ifdef CONFIG_PARAVIRT
-       rq->prev_steal_time = 0;
- #endif
- #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
-       rq->prev_steal_time_rq = 0;
- #endif
- }
 +
 +#ifdef CONFIG_CPU_FREQ
 +DECLARE_PER_CPU(struct update_util_data *, cpufreq_update_util_data);
 +
 +/**
 + * cpufreq_update_util - Take a note about CPU utilization changes.
 + * @rq: Runqueue to carry out the update for.
 + * @flags: Update reason flags.
 + *
 + * This function is called by the scheduler on the CPU whose utilization is
 + * being updated.
 + *
 + * It can only be called from RCU-sched read-side critical sections.
 + *
 + * The way cpufreq is currently arranged requires it to evaluate the CPU
 + * performance state (frequency/voltage) on a regular basis to prevent it from
 + * being stuck in a completely inadequate performance level for too long.
 + * That is not guaranteed to happen if the updates are only triggered from CFS,
 + * though, because they may not be coming in if RT or deadline tasks are active
 + * all the time (or there are RT and DL tasks only).
 + *
 + * As a workaround for that issue, this function is called by the RT and DL
 + * sched classes to trigger extra cpufreq updates to prevent it from stalling,
 + * but that really is a band-aid.  Going forward it should be replaced with
 + * solutions targeted more specifically at RT and DL tasks.
 + */
 +static inline void cpufreq_update_util(struct rq *rq, unsigned int flags)
 +{
 +        struct update_util_data *data;
 +
 +        data = rcu_dereference_sched(*this_cpu_ptr(&cpufreq_update_util_data));
 +        if (data)
 +                data->func(data, rq_clock(rq), flags);
 +}
 +
 +static inline void cpufreq_update_this_cpu(struct rq *rq, unsigned int flags)
 +{
 +        if (cpu_of(rq) == smp_processor_id())
 +                cpufreq_update_util(rq, flags);
 +}
 +#else
 +static inline void cpufreq_update_util(struct rq *rq, unsigned int flags) {}
 +static inline void cpufreq_update_this_cpu(struct rq *rq, unsigned int flags) {}
 +#endif /* CONFIG_CPU_FREQ */
 +
 +#ifdef arch_scale_freq_capacity
 +#ifndef arch_scale_freq_invariant
 +#define arch_scale_freq_invariant()     (true)
 +#endif
 +#else /* arch_scale_freq_capacity */
 +#define arch_scale_freq_invariant()     (false)
 +#endif