313 Commits

Author SHA1 Message Date
Michael Bestas
73e700e188 Merge remote-tracking branch 'common/android-4.4-p' into android-msm-wahoo-4.4
# By Thomas Gleixner (11) and others
# Via Greg Kroah-Hartman (4) and Sasha Levin (1)
* google/common/android-4.4-p:
  Linux 4.4.282
  mmc: dw_mmc: Fix occasional hang after tuning on eMMC
  ASoC: intel: atom: Fix breakage for PCM buffer address setup
  ipack: tpci200: fix many double free issues in tpci200_pci_probe
  ALSA: hda - fix the 'Capture Switch' value change notifications
  mmc: dw_mmc: Fix hang on data CRC error
  mmc: dw_mmc: call the dw_mci_prep_stop_abort() by default
  mmc: dw_mmc: Wait for data transfer after response errors.
  net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32
  net: 6pack: fix slab-out-of-bounds in decode_data
  dccp: add do-while-0 stubs for dccp_pr_debug macros
  Bluetooth: hidp: use correct wait queue when removing ctrl_wait
  scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
  scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry()
  dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available
  ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
  dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
  KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl (CVE-2021-3653)
  vmlinux.lds.h: Handle clang's module.{c,d}tor sections
  PCI/MSI: Enforce MSI[X] entry updates to be visible
  PCI/MSI: Enforce that MSI-X table entry is masked for update
  PCI/MSI: Mask all unused MSI-X entries
  PCI/MSI: Protect msi_desc::masked for multi-MSI
  PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
  PCI/MSI: Correct misleading comments
  PCI/MSI: Do not set invalid bits in MSI mask
  PCI/MSI: Enable and mask MSI-X early
  x86/tools: Fix objdump version check again
  xen/events: Fix race in set_evtchn_to_irq
  net: Fix memory leak in ieee802154_raw_deliver
  i2c: dev: zero out array used for i2c reads from userspace
  ASoC: intel: atom: Fix reference to PCM buffer address
  ANDROID: xt_quota2: set usersize in xt_match registration object
  ANDROID: xt_quota2: clear quota2_log message before sending
  ANDROID: xt_quota2: remove trailing junk which might have a digit in it
  UPSTREAM: netfilter: x_tables: fix pointer leaks to userspace
  Linux 4.4.281
  ovl: prevent private clone if bind mount is not allowed
  net: xilinx_emaclite: Do not print real IOMEM pointer
  USB:ehci:fix Kunpeng920 ehci hardware problem
  pipe: increase minimum default pipe size to 2 pages
  net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and ql_adapter_reset
  alpha: Send stop IPI to send to online CPUs
  reiserfs: check directory items on read from disk
  reiserfs: add check for root_inode in reiserfs_fill_super
  pcmcia: i82092: fix a null pointer dereference bug
  MIPS: Malta: Do not byte-swap accesses to the CBUS UART
  serial: 8250: Mask out floating 16/32-bit bus bits
  media: rtl28xxu: fix zero-length control request
  scripts/tracing: fix the bug that can't parse raw_trace_func
  USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
  USB: serial: ch341: fix character loss at high transfer rates
  USB: serial: option: add Telit FD980 composition 0x1056
  Bluetooth: defer cleanup of resources in hci_unregister_dev()
  net: vxge: fix use-after-free in vxge_device_unregister
  net: pegasus: fix uninit-value in get_interrupt_interval
  bnx2x: fix an error code in bnx2x_nic_load()
  mips: Fix non-POSIX regexp
  net: natsemi: Fix missing pci_disable_device() in probe and remove
  media: videobuf2-core: dequeue if start_streaming fails
  scsi: sr: Return correct event when media event code is 3
  ALSA: seq: Fix racy deletion of subscriber
  Linux 4.4.280
  rcu: Update documentation of rcu_read_unlock()
  futex,rt_mutex: Fix rt_mutex_cleanup_proxy_lock()
  futex: Avoid freeing an active timer
  futex: Handle transient "ownerless" rtmutex state correctly
  rtmutex: Make wait_lock irq safe
  futex: Futex_unlock_pi() determinism
  futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()
  futex: Pull rt_mutex_futex_unlock() out from under hb->lock
  futex,rt_mutex: Introduce rt_mutex_init_waiter()
  futex: Cleanup refcounting
  futex: Rename free_pi_state() to put_pi_state()
  Linux 4.4.279
  can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF
  Revert "Bluetooth: Shutdown controller after workqueues are flushed or cancelled"
  net: Fix zero-copy head len calculation.
  r8152: Fix potential PM refcount imbalance
  regulator: rt5033: Fix n_voltages settings for BUCK and LDO
  btrfs: mark compressed range uptodate only if all bio succeed

 Conflicts:
	net/bluetooth/hci_core.c
	net/netfilter/xt_quota2.c

Change-Id: Ie0b282f0d39df01e607217af7c0a91252e4fdccd
2021-09-02 00:24:42 +03:00
Greg Kroah-Hartman
c5c38d81d4 Merge 4.4.280 into android-4.4-p
Changes in 4.4.280
	futex: Rename free_pi_state() to put_pi_state()
	futex: Cleanup refcounting
	futex,rt_mutex: Introduce rt_mutex_init_waiter()
	futex: Pull rt_mutex_futex_unlock() out from under hb->lock
	futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()
	futex: Futex_unlock_pi() determinism
	rtmutex: Make wait_lock irq safe
	futex: Handle transient "ownerless" rtmutex state correctly
	futex: Avoid freeing an active timer
	futex,rt_mutex: Fix rt_mutex_cleanup_proxy_lock()
	rcu: Update documentation of rcu_read_unlock()
	Linux 4.4.280

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ib8bf7ba366087b2442c4de8a078f0a252b076c51
2021-08-10 19:32:45 +02:00
Peter Zijlstra
66edc0dded futex,rt_mutex: Fix rt_mutex_cleanup_proxy_lock()
[ Upstream commit 04dc1b2fff4e96cb4142227fbdc63c8871ad4ed9 ]

Markus reported that the glibc/nptl/tst-robustpi8 test was failing after
commit:

  cfafcd117da0 ("futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()")

The following trace shows the problem:

 ld-linux-x86-64-2161  [019] ....   410.760971: SyS_futex: 00007ffbeb76b028: 80000875  op=FUTEX_LOCK_PI
 ld-linux-x86-64-2161  [019] ...1   410.760972: lock_pi_update_atomic: 00007ffbeb76b028: curval=80000875 uval=80000875 newval=80000875 ret=0
 ld-linux-x86-64-2165  [011] ....   410.760978: SyS_futex: 00007ffbeb76b028: 80000875  op=FUTEX_UNLOCK_PI
 ld-linux-x86-64-2165  [011] d..1   410.760979: do_futex: 00007ffbeb76b028: curval=80000875 uval=80000875 newval=80000871 ret=0
 ld-linux-x86-64-2165  [011] ....   410.760980: SyS_futex: 00007ffbeb76b028: 80000871 ret=0000
 ld-linux-x86-64-2161  [019] ....   410.760980: SyS_futex: 00007ffbeb76b028: 80000871 ret=ETIMEDOUT

Task 2165 does an UNLOCK_PI, assigning the lock to the waiter task 2161
which then returns with -ETIMEDOUT. That wrecks the lock state, because now
the owner isn't aware it acquired the lock and removes the pending robust
list entry.

If 2161 is killed, the robust list will not clear out this futex and the
subsequent acquire on this futex will then (correctly) result in -ESRCH
which is unexpected by glibc, triggers an internal assertion and dies.

Task 2161			Task 2165

rt_mutex_wait_proxy_lock()
   timeout();
   /* T2161 is still queued in  the waiter list */
   return -ETIMEDOUT;

				futex_unlock_pi()
				spin_lock(hb->lock);
				rtmutex_unlock()
				  remove_rtmutex_waiter(T2161);
				   mark_lock_available();
				/* Make the next waiter owner of the user space side */
				futex_uval = 2161;
				spin_unlock(hb->lock);
spin_lock(hb->lock);
rt_mutex_cleanup_proxy_lock()
  if (rtmutex_owner() !== current)
     ...
     return FAIL;
....
return -ETIMEOUT;

This means that rt_mutex_cleanup_proxy_lock() needs to call
try_to_take_rt_mutex() so it can take over the rtmutex correctly which was
assigned by the waker. If the rtmutex is owned by some other task then this
call is harmless and just confirmes that the waiter is not able to acquire
it.

While there, fix what looks like a merge error which resulted in
rt_mutex_cleanup_proxy_lock() having two calls to
fixup_rt_mutex_waiters() and rt_mutex_wait_proxy_lock() not having any.
Both should have one, since both potentially touch the waiter list.

Fixes: 38d589f2fd08 ("futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock()")
Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Bug-Spotted-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Darren Hart <dvhart@infradead.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
Link: http://lkml.kernel.org/r/20170519154850.mlomgdsd26drq5j6@hirez.programming.kicks-ass.net
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Acked-by: Joe Korty <joe.korty@concurrent-rt.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-10 17:39:42 +02:00
Thomas Gleixner
6ef8ca1e4f rtmutex: Make wait_lock irq safe
[ Upstream commit b4abf91047cf054f203dcfac97e1038388826937 ]

Sasha reported a lockdep splat about a potential deadlock between RCU boosting
rtmutex and the posix timer it_lock.

CPU0					CPU1

rtmutex_lock(&rcu->rt_mutex)
  spin_lock(&rcu->rt_mutex.wait_lock)
					local_irq_disable()
					spin_lock(&timer->it_lock)
					spin_lock(&rcu->mutex.wait_lock)
--> Interrupt
    spin_lock(&timer->it_lock)

This is caused by the following code sequence on CPU1

     rcu_read_lock()
     x = lookup();
     if (x)
     	spin_lock_irqsave(&x->it_lock);
     rcu_read_unlock();
     return x;

We could fix that in the posix timer code by keeping rcu read locked across
the spinlocked and irq disabled section, but the above sequence is common and
there is no reason not to support it.

Taking rt_mutex.wait_lock irq safe prevents the deadlock.

Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Acked-by: Joe Korty <joe.korty@concurrent-rt.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-10 17:39:42 +02:00
Peter Zijlstra
b5dac38eb0 futex: Rework futex_lock_pi() to use rt_mutex_*_proxy_lock()
[ Upstream commit cfafcd117da0216520568c195cb2f6cd1980c4bb ]

By changing futex_lock_pi() to use rt_mutex_*_proxy_lock() all wait_list
modifications are done under both hb->lock and wait_lock.

This closes the obvious interleave pattern between futex_lock_pi() and
futex_unlock_pi(), but not entirely so. See below:

Before:

futex_lock_pi()			futex_unlock_pi()
  unlock hb->lock

				  lock hb->lock
				  unlock hb->lock

				  lock rt_mutex->wait_lock
				  unlock rt_mutex_wait_lock
				    -EAGAIN

  lock rt_mutex->wait_lock
  list_add
  unlock rt_mutex->wait_lock

  schedule()

  lock rt_mutex->wait_lock
  list_del
  unlock rt_mutex->wait_lock

				  <idem>
				    -EAGAIN

  lock hb->lock

After:

futex_lock_pi()			futex_unlock_pi()

  lock hb->lock
  lock rt_mutex->wait_lock
  list_add
  unlock rt_mutex->wait_lock
  unlock hb->lock

  schedule()
				  lock hb->lock
				  unlock hb->lock
  lock hb->lock
  lock rt_mutex->wait_lock
  list_del
  unlock rt_mutex->wait_lock

				  lock rt_mutex->wait_lock
				  unlock rt_mutex_wait_lock
				    -EAGAIN

  unlock hb->lock

It does however solve the earlier starvation/live-lock scenario which got
introduced with the -EAGAIN since unlike the before scenario; where the
-EAGAIN happens while futex_unlock_pi() doesn't hold any locks; in the
after scenario it happens while futex_unlock_pi() actually holds a lock,
and then it is serialized on that lock.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: juri.lelli@arm.com
Cc: bigeasy@linutronix.de
Cc: xlpang@redhat.com
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: jdesfossez@efficios.com
Cc: dvhart@infradead.org
Cc: bristot@redhat.com
Link: http://lkml.kernel.org/r/20170322104152.062785528@infradead.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Acked-by: Joe Korty <joe.korty@concurrent-rt.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-10 17:39:42 +02:00
Peter Zijlstra
50801cdc86 futex,rt_mutex: Introduce rt_mutex_init_waiter()
[ Upstream commit 50809358dd7199aa7ce232f6877dd09ec30ef374 ]

Since there's already two copies of this code, introduce a helper now
before adding a third one.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: juri.lelli@arm.com
Cc: bigeasy@linutronix.de
Cc: xlpang@redhat.com
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: jdesfossez@efficios.com
Cc: dvhart@infradead.org
Cc: bristot@redhat.com
Link: http://lkml.kernel.org/r/20170322104151.950039479@infradead.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Acked-by: Joe Korty <joe.korty@concurrent-rt.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-10 17:39:42 +02:00
Michael Bestas
a2a12f400c Merge tag 'v4.4.257' into android-msm-wahoo-4.4
This is the 4.4.257 stable release

# gpg: Signature made Wed Feb 10 10:08:35 2021 EET
# gpg:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
# gpg: Good signature from "Greg Kroah-Hartman <gregkh@kernel.org>" [full]
# gpg: gregkh@kernel.org: Verified 8 signatures in the past 2 hours.  Encrypted
#      0 messages.

# By Lee Jones (10) and others
# Via Greg Kroah-Hartman
* tag 'v4.4.257':
  Linux 4.4.257
  ALSA: hda/realtek - Fix typo of pincfg for Dell quirk
  ACPI: thermal: Do not call acpi_thermal_check() directly
  Input: xpad - sync supported devices with fork on GitHub
  x86/apic: Add extra serialization for non-serializing MSRs
  x86/build: Disable CET instrumentation in the kernel
  mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
  mm: hugetlb: fix a race between isolating and freeing page
  mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
  ARM: footbridge: fix dc21285 PCI configuration accessors
  mmc: core: Limit retries when analyse of SDIO tuples fails
  cifs: report error instead of invalid when revalidating a dentry fails
  kretprobe: Avoid re-registration of the same kretprobe earlier
  mac80211: fix station rate table updates on assoc
  usb: dwc2: Fix endpoint direction check in ep_from_windex
  USB: usblp: don't call usb_set_interface if there's a single alt
  USB: gadget: legacy: fix an error code in eth_bind()
  elfcore: fix building with clang
  ELF/MIPS build fix
  net: lapb: Copy the skb before sending a packet
  Input: i8042 - unbreak Pegatron C15B
  USB: serial: option: Adding support for Cinterion MV31
  USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
  USB: serial: cp210x: add pid/vid for WSDA-200-USB
  stable: clamp SUBLEVEL in 4.4 and 4.9
  scsi: ibmvfc: Set default timeout to avoid crash during migration
  scsi: libfc: Avoid invoking response handler twice if ep is already completed
  usb: udc: core: Use lock when write to soft_connect
  futex: Handle faults correctly for PI futexes
  futex: Simplify fixup_pi_state_owner()
  futex: Use pi_state_update_owner() in put_pi_state()
  rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
  futex: Provide and use pi_state_update_owner()
  futex: Replace pointless printk in fixup_owner()
  futex: Avoid violating the 10th rule of futex
  futex: Rework inconsistent rt_mutex/futex_q state
  futex: Remove rt_mutex_deadlock_account_*()
  futex,rt_mutex: Provide futex specific rt_mutex API
  net_sched: reject silly cell_log in qdisc_get_rtab()

Change-Id: Ice82bc6f4f647d3b8fc263cbb0662b9b8c3dcb2b
2021-07-24 19:18:51 +03:00
Greg Kroah-Hartman
831b1199b5 Merge 4.4.257 into android-4.4-p
Changes in 4.4.257
	net_sched: reject silly cell_log in qdisc_get_rtab()
	futex,rt_mutex: Provide futex specific rt_mutex API
	futex: Remove rt_mutex_deadlock_account_*()
	futex: Rework inconsistent rt_mutex/futex_q state
	futex: Avoid violating the 10th rule of futex
	futex: Replace pointless printk in fixup_owner()
	futex: Provide and use pi_state_update_owner()
	rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
	futex: Use pi_state_update_owner() in put_pi_state()
	futex: Simplify fixup_pi_state_owner()
	futex: Handle faults correctly for PI futexes
	usb: udc: core: Use lock when write to soft_connect
	scsi: libfc: Avoid invoking response handler twice if ep is already completed
	scsi: ibmvfc: Set default timeout to avoid crash during migration
	stable: clamp SUBLEVEL in 4.4 and 4.9
	USB: serial: cp210x: add pid/vid for WSDA-200-USB
	USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
	USB: serial: option: Adding support for Cinterion MV31
	Input: i8042 - unbreak Pegatron C15B
	net: lapb: Copy the skb before sending a packet
	ELF/MIPS build fix
	elfcore: fix building with clang
	USB: gadget: legacy: fix an error code in eth_bind()
	USB: usblp: don't call usb_set_interface if there's a single alt
	usb: dwc2: Fix endpoint direction check in ep_from_windex
	mac80211: fix station rate table updates on assoc
	kretprobe: Avoid re-registration of the same kretprobe earlier
	cifs: report error instead of invalid when revalidating a dentry fails
	mmc: core: Limit retries when analyse of SDIO tuples fails
	ARM: footbridge: fix dc21285 PCI configuration accessors
	mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
	mm: hugetlb: fix a race between isolating and freeing page
	mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
	x86/build: Disable CET instrumentation in the kernel
	x86/apic: Add extra serialization for non-serializing MSRs
	Input: xpad - sync supported devices with fork on GitHub
	ACPI: thermal: Do not call acpi_thermal_check() directly
	ALSA: hda/realtek - Fix typo of pincfg for Dell quirk
	Linux 4.4.257

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I3bd45d2e19a068d1d25e2d57f9d171a0b57061ad
2021-02-10 10:32:46 +01:00
Lee Jones
42255927e8 rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
From: Thomas Gleixner <tglx@linutronix.de>

[ Upstream commit 2156ac1934166d6deb6cd0f6ffc4c1076ec63697 ]
Nothing uses the argument. Remove it as preparation to use
pi_state_update_owner().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: stable@vger.kernel.org
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-10 09:07:25 +01:00
Lee Jones
ad4740cecc futex: Avoid violating the 10th rule of futex
From: Peter Zijlstra <peterz@infradead.org>

commit c1e2f0eaf015fb7076d51a339011f2383e6dd389 upstream.

Julia reported futex state corruption in the following scenario:

   waiter                                  waker                                            stealer (prio > waiter)

   futex(WAIT_REQUEUE_PI, uaddr, uaddr2,
         timeout=[N ms])
      futex_wait_requeue_pi()
         futex_wait_queue_me()
            freezable_schedule()
            <scheduled out>
                                           futex(LOCK_PI, uaddr2)
                                           futex(CMP_REQUEUE_PI, uaddr,
                                                 uaddr2, 1, 0)
                                              /* requeues waiter to uaddr2 */
                                           futex(UNLOCK_PI, uaddr2)
                                                 wake_futex_pi()
                                                    cmp_futex_value_locked(uaddr2, waiter)
                                                    wake_up_q()
           <woken by waker>
           <hrtimer_wakeup() fires,
            clears sleeper->task>
                                                                                           futex(LOCK_PI, uaddr2)
                                                                                              __rt_mutex_start_proxy_lock()
                                                                                                 try_to_take_rt_mutex() /* steals lock */
                                                                                                    rt_mutex_set_owner(lock, stealer)
                                                                                              <preempted>
         <scheduled in>
         rt_mutex_wait_proxy_lock()
            __rt_mutex_slowlock()
               try_to_take_rt_mutex() /* fails, lock held by stealer */
               if (timeout && !timeout->task)
                  return -ETIMEDOUT;
            fixup_owner()
               /* lock wasn't acquired, so,
                  fixup_pi_state_owner skipped */

   return -ETIMEDOUT;

   /* At this point, we've returned -ETIMEDOUT to userspace, but the
    * futex word shows waiter to be the owner, and the pi_mutex has
    * stealer as the owner */

   futex_lock(LOCK_PI, uaddr2)
     -> bails with EDEADLK, futex word says we're owner.

And suggested that what commit:

  73d786bd043e ("futex: Rework inconsistent rt_mutex/futex_q state")

removes from fixup_owner() looks to be just what is needed. And indeed
it is -- I completely missed that requeue_pi could also result in this
case. So we need to restore that, except that subsequent patches, like
commit:

  16ffa12d7425 ("futex: Pull rt_mutex_futex_unlock() out from under hb->lock")

changed all the locking rules. Even without that, the sequence:

-               if (rt_mutex_futex_trylock(&q->pi_state->pi_mutex)) {
-                       locked = 1;
-                       goto out;
-               }

-               raw_spin_lock_irq(&q->pi_state->pi_mutex.wait_lock);
-               owner = rt_mutex_owner(&q->pi_state->pi_mutex);
-               if (!owner)
-                       owner = rt_mutex_next_owner(&q->pi_state->pi_mutex);
-               raw_spin_unlock_irq(&q->pi_state->pi_mutex.wait_lock);
-               ret = fixup_pi_state_owner(uaddr, q, owner);

already suggests there were races; otherwise we'd never have to look
at next_owner.

So instead of doing 3 consecutive wait_lock sections with who knows
what races, we do it all in a single section. Additionally, the usage
of pi_state->owner in fixup_owner() was only safe because only the
rt_mutex owner would modify it, which this additional case wrecks.

Luckily the values can only change away and not to the value we're
testing, this means we can do a speculative test and double check once
we have the wait_lock.

Fixes: 73d786bd043e ("futex: Rework inconsistent rt_mutex/futex_q state")
Reported-by: Julia Cartwright <julia@ni.com>
Reported-by: Gratian Crisan <gratian.crisan@ni.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Julia Cartwright <julia@ni.com>
Tested-by: Gratian Crisan <gratian.crisan@ni.com>
Cc: Darren Hart <dvhart@infradead.org>
Link: https://lkml.kernel.org/r/20171208124939.7livp7no2ov65rrc@hirez.programming.kicks-ass.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[Lee: Back-ported to solve a dependency]
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-10 09:07:25 +01:00
Lee Jones
fd7924d6f2 futex: Remove rt_mutex_deadlock_account_*()
From: Peter Zijlstra <peterz@infradead.org>

These are unused and clutter up the code.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: juri.lelli@arm.com
Cc: bigeasy@linutronix.de
Cc: xlpang@redhat.com
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: jdesfossez@efficios.com
Cc: dvhart@infradead.org
Cc: bristot@redhat.com
Link: http://lkml.kernel.org/r/20170322104151.652692478@infradead.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[Lee: Back-ported to solve a dependency]
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-10 09:07:25 +01:00
Lee Jones
6510e4a2d0 futex,rt_mutex: Provide futex specific rt_mutex API
From: Peter Zijlstra <peterz@infradead.org>

[ Upstream commit 5293c2efda37775346885c7e924d4ef7018ea60b ]

Part of what makes futex_unlock_pi() intricate is that
rt_mutex_futex_unlock() -> rt_mutex_slowunlock() can drop
rt_mutex::wait_lock.

This means it cannot rely on the atomicy of wait_lock, which would be
preferred in order to not rely on hb->lock so much.

The reason rt_mutex_slowunlock() needs to drop wait_lock is because it can
race with the rt_mutex fastpath, however futexes have their own fast path.

Since futexes already have a bunch of separate rt_mutex accessors, complete
that set and implement a rt_mutex variant without fastpath for them.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: juri.lelli@arm.com
Cc: bigeasy@linutronix.de
Cc: xlpang@redhat.com
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: jdesfossez@efficios.com
Cc: dvhart@infradead.org
Cc: bristot@redhat.com
Link: http://lkml.kernel.org/r/20170322104151.702962446@infradead.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[Lee: Back-ported to solve a dependency]
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-10 09:07:25 +01:00
Nathan Chancellor
af0551c335 Merge 4.4.235 into android-msm-wahoo-4.4
Changes in 4.4.235: (62 commits)
        net: Fix potential wrong skb->protocol in skb_vlan_untag()
        tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
        ipvlan: fix device features
        bonding: show saner speed for broadcast mode
        bonding: fix a potential double-unregister
        powerpc/pseries: Do not initiate shutdown when system is running on UPS
        ALSA: pci: delete repeated words in comments
        ASoC: tegra: Fix reference count leaks.
        media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()
        scsi: target: tcmu: Fix crash on ARM during cmd completion
        drm/amdkfd: Fix reference count leaks.
        drm/radeon: fix multiple reference count leak
        drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
        drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
        drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
        drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
        scsi: lpfc: Fix shost refcount mismatch when deleting vport
        selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
        PCI: Fix pci_create_slot() reference count leak
        rtlwifi: rtl8192cu: Prevent leaking urb
        mips/vdso: Fix resource leaks in genvdso.c
        drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
        drm/nouveau: Fix reference count leak in nouveau_connector_detect
        locking/lockdep: Fix overflow in presentation of average lock-time
        scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
        ceph: fix potential mdsc use-after-free crash
        scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
        EDAC/ie31200: Fallback if host bridge device is already initialized
        media: davinci: vpif_capture: fix potential double free
        powerpc/spufs: add CONFIG_COREDUMP dependency
        USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
        Revert "ath10k: fix DMA related firmware crashes on multiple devices"
        i2c: rcar: in slave mode, clear NACK earlier
        jbd2: make sure jh have b_transaction set in refile/unfile_buffer
        jbd2: abort journal if free a async write error metadata buffer
        s390/cio: add cond_resched() in the slow_eval_known_fn() loop
        scsi: ufs: Fix possible infinite loop in ufshcd_hold
        net: gianfar: Add of_node_put() before goto statement
        fbcon: prevent user font height or width change from causing potential out-of-bounds access
        USB: lvtest: return proper error code in probe
        vt: defer kfree() of vc_screenbuf in vc_do_resize()
        vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
        serial: samsung: Removes the IRQ not found warning
        serial: pl011: Don't leak amba_ports entry on driver register error
        serial: 8250: change lock order in serial8250_do_startup()
        writeback: Protect inode->i_io_list with inode->i_lock
        writeback: Avoid skipping inode writeback
        writeback: Fix sync livelock due to b_dirty_time processing
        XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN data pointer which contains XEN specific information.
        xhci: Do warm-reset when both CAS and XDEV_RESUME are set
        PM: sleep: core: Fix the handling of pending runtime resume requests
        device property: Fix the secondary firmware node handling in set_primary_fwnode()
        USB: yurex: Fix bad gfp argument
        usb: uas: Add quirk for PNY Pro Elite
        USB: quirks: Add no-lpm quirk for another Raydium touchscreen
        USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
        usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
        usb: storage: Add unusual_uas entry for Sony PSZ drives
        btrfs: check the right error variable in btrfs_del_dir_entries_in_log
        HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
        ALSA: usb-audio: Update documentation comment for MS2109 quirk
        Linux 4.4.235

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	drivers/scsi/ufs/ufshcd.c
2020-09-03 10:13:57 -07:00
Greg Kroah-Hartman
709199f38b Merge 4.4.235 into android-4.4-p
Changes in 4.4.235
	net: Fix potential wrong skb->protocol in skb_vlan_untag()
	tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
	ipvlan: fix device features
	bonding: show saner speed for broadcast mode
	bonding: fix a potential double-unregister
	powerpc/pseries: Do not initiate shutdown when system is running on UPS
	ALSA: pci: delete repeated words in comments
	ASoC: tegra: Fix reference count leaks.
	media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()
	scsi: target: tcmu: Fix crash on ARM during cmd completion
	drm/amdkfd: Fix reference count leaks.
	drm/radeon: fix multiple reference count leak
	drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
	drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
	drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
	drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
	scsi: lpfc: Fix shost refcount mismatch when deleting vport
	selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
	PCI: Fix pci_create_slot() reference count leak
	rtlwifi: rtl8192cu: Prevent leaking urb
	mips/vdso: Fix resource leaks in genvdso.c
	drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
	drm/nouveau: Fix reference count leak in nouveau_connector_detect
	locking/lockdep: Fix overflow in presentation of average lock-time
	scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
	ceph: fix potential mdsc use-after-free crash
	scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
	EDAC/ie31200: Fallback if host bridge device is already initialized
	media: davinci: vpif_capture: fix potential double free
	powerpc/spufs: add CONFIG_COREDUMP dependency
	USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
	Revert "ath10k: fix DMA related firmware crashes on multiple devices"
	i2c: rcar: in slave mode, clear NACK earlier
	jbd2: make sure jh have b_transaction set in refile/unfile_buffer
	jbd2: abort journal if free a async write error metadata buffer
	s390/cio: add cond_resched() in the slow_eval_known_fn() loop
	scsi: ufs: Fix possible infinite loop in ufshcd_hold
	net: gianfar: Add of_node_put() before goto statement
	fbcon: prevent user font height or width change from causing potential out-of-bounds access
	USB: lvtest: return proper error code in probe
	vt: defer kfree() of vc_screenbuf in vc_do_resize()
	vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
	serial: samsung: Removes the IRQ not found warning
	serial: pl011: Don't leak amba_ports entry on driver register error
	serial: 8250: change lock order in serial8250_do_startup()
	writeback: Protect inode->i_io_list with inode->i_lock
	writeback: Avoid skipping inode writeback
	writeback: Fix sync livelock due to b_dirty_time processing
	XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN data pointer which contains XEN specific information.
	xhci: Do warm-reset when both CAS and XDEV_RESUME are set
	PM: sleep: core: Fix the handling of pending runtime resume requests
	device property: Fix the secondary firmware node handling in set_primary_fwnode()
	USB: yurex: Fix bad gfp argument
	usb: uas: Add quirk for PNY Pro Elite
	USB: quirks: Add no-lpm quirk for another Raydium touchscreen
	USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
	usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
	usb: storage: Add unusual_uas entry for Sony PSZ drives
	btrfs: check the right error variable in btrfs_del_dir_entries_in_log
	HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
	ALSA: usb-audio: Update documentation comment for MS2109 quirk
	Linux 4.4.235

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic94d552561168bb9f44bc1350806425cbc35f743
2020-09-03 11:34:09 +02:00
Chris Wilson
c75c758193 locking/lockdep: Fix overflow in presentation of average lock-time
[ Upstream commit a7ef9b28aa8d72a1656fa6f0a01bbd1493886317 ]

Though the number of lock-acquisitions is tracked as unsigned long, this
is passed as the divisor to div_s64() which interprets it as a s32,
giving nonsense values with more than 2 billion acquisitons. E.g.

  acquisitions   holdtime-min   holdtime-max holdtime-total   holdtime-avg
  -------------------------------------------------------------------------
    2350439395           0.07         353.38   649647067.36          0.-32

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20200725185110.11588-1-chris@chris-wilson.co.uk
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-09-03 11:19:24 +02:00
Greg Kroah-Hartman
d590d674fc Merge 4.4.220 into android-4.4-p
Changes in 4.4.220
	bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
	net: vxge: fix wrong __VA_ARGS__ usage
	qlcnic: Fix bad kzalloc null test
	i2c: st: fix missing struct parameter description
	irqchip/versatile-fpga: Handle chained IRQs properly
	selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
	libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
	gfs2: Don't demote a glock until its revokes are written
	x86/boot: Use unsigned comparison for addresses
	locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
	btrfs: remove a BUG_ON() from merge_reloc_roots()
	btrfs: track reloc roots based on their commit root bytenr
	misc: rtsx: set correct pcr_ops for rts522A
	ASoC: fix regwmask
	ASoC: dapm: connect virtual mux with default value
	ASoC: dpcm: allow start or stop during pause for backend
	ASoC: topology: use name_prefix for new kcontrol
	usb: gadget: f_fs: Fix use after free issue as part of queue failure
	usb: gadget: composite: Inform controller driver of self-powered
	ALSA: usb-audio: Add mixer workaround for TRX40 and co
	ALSA: hda: Add driver blacklist
	ALSA: hda: Fix potential access overflow in beep helper
	ALSA: ice1724: Fix invalid access for enumerated ctl items
	ALSA: pcm: oss: Fix regression by buffer overflow fix
	acpi/x86: ignore unspecified bit positions in the ACPI global lock field
	thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
	KEYS: reaching the keys quotas correctly
	irqchip/versatile-fpga: Apply clear-mask earlier
	MIPS: OCTEON: irq: Fix potential NULL pointer dereference
	ath9k: Handle txpower changes even when TPC is disabled
	signal: Extend exec_id to 64bits
	x86/entry/32: Add missing ASM_CLAC to general_protection entry
	KVM: x86: Allocate new rmap and large page tracking when moving memslot
	crypto: mxs-dcp - fix scatterlist linearization for hash
	futex: futex_wake_op, do not fail on invalid op
	xen-netfront: Rework the fix for Rx stall during OOM and network stress
	ALSA: hda: Initialize power_state field properly
	Btrfs: incremental send, fix invalid memory access
	IB/ipoib: Fix lockdep issue found on ipoib_ib_dev_heavy_flush
	scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
	arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
	ext4: fix a data race at inode->i_blocks
	ocfs2: no need try to truncate file beyond i_size
	s390/diag: fix display of diagnose call statistics
	Input: i8042 - add Acer Aspire 5738z to nomux list
	kmod: make request_module() return an error when autoloading is disabled
	hfsplus: fix crash and filesystem corruption when deleting files
	libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
	powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
	Btrfs: fix crash during unmount due to race with delayed inode workers
	drm/dp_mst: Fix clearing payload state on topology disable
	ipmi: fix hung processes in __get_guid()
	powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
	misc: echo: Remove unnecessary parentheses and simplify check for zero
	mfd: dln2: Fix sanity checking for endpoints
	net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
	net: ipv6: do not consider routes via gateways for anycast address check
	scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
	jbd2: improve comments about freeing data buffers whose page mapping is NULL
	ext4: fix incorrect group count in ext4_fill_super error message
	ext4: fix incorrect inodes per group in error message
	ASoC: Intel: mrfld: fix incorrect check on p->sink
	ASoC: Intel: mrfld: return error codes when an error occurs
	ALSA: usb-audio: Don't override ignore_ctl_error value from the map
	mac80211_hwsim: Use kstrndup() in place of kasprintf()
	ext4: do not zeroout extents beyond i_disksize
	dm flakey: check for null arg_name in parse_features()
	kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
	x86/mitigations: Clear CPU buffers on the SYSCALL fast path
	tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
	scsi: sg: add sg_remove_request in sg_common_write
	ALSA: hda: Don't release card at firmware loading error
	video: fbdev: sis: Remove unnecessary parentheses and commented code
	drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
	wil6210: increase firmware ready timeout
	wil6210: fix temperature debugfs
	scsi: ufs: ufs-qcom: remove broken hci version quirk
	wil6210: rate limit wil_rx_refill error
	rtc: pm8xxx: Fix issue in RTC write path
	soc: qcom: smem: Use le32_to_cpu for comparison
	of: fix missing kobject init for !SYSFS && OF_DYNAMIC config
	of: unittest: kmemleak in of_unittest_platform_populate()
	clk: at91: usb: continue if clk_hw_round_rate() return zero
	clk: tegra: Fix Tegra PMC clock out parents
	NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
	ext4: do not commit super on read-only bdev
	percpu_counter: fix a data race at vm_committed_as
	compiler.h: fix error in BUILD_BUG_ON() reporting
	NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
	ext2: fix empty body warnings when -Wextra is used
	iommu/amd: Fix the configuration of GCR3 table root pointer
	fbdev: potential information leak in do_fb_ioctl()
	tty: evh_bytechan: Fix out of bounds accesses
	locktorture: Print ratio of acquisitions, not failures
	mtd: lpddr: Fix a double free in probe()
	mtd: phram: fix a double free issue in error path
	x86/CPU: Add native CPUID variants returning a single datum
	x86/microcode/intel: replace sync_core() with native_cpuid_reg(eax)
	x86/vdso: Fix lsl operand order
	Linux 4.4.220

Change-Id: Ic931642c95ad95eb2755c3c20f6802e04283e68b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-04-24 08:33:15 +02:00
Nathan Chancellor
e88d034996 Merge 4.4.220 into android-msm-wahoo-4.4
Changes in 4.4.220: (100 commits)
        bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
        net: vxge: fix wrong __VA_ARGS__ usage
        qlcnic: Fix bad kzalloc null test
        i2c: st: fix missing struct parameter description
        irqchip/versatile-fpga: Handle chained IRQs properly
        selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
        libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
        gfs2: Don't demote a glock until its revokes are written
        x86/boot: Use unsigned comparison for addresses
        locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
        btrfs: remove a BUG_ON() from merge_reloc_roots()
        btrfs: track reloc roots based on their commit root bytenr
        misc: rtsx: set correct pcr_ops for rts522A
        ASoC: fix regwmask
        ASoC: dapm: connect virtual mux with default value
        ASoC: dpcm: allow start or stop during pause for backend
        ASoC: topology: use name_prefix for new kcontrol
        usb: gadget: f_fs: Fix use after free issue as part of queue failure
        usb: gadget: composite: Inform controller driver of self-powered
        ALSA: usb-audio: Add mixer workaround for TRX40 and co
        ALSA: hda: Add driver blacklist
        ALSA: hda: Fix potential access overflow in beep helper
        ALSA: ice1724: Fix invalid access for enumerated ctl items
        ALSA: pcm: oss: Fix regression by buffer overflow fix
        acpi/x86: ignore unspecified bit positions in the ACPI global lock field
        thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
        KEYS: reaching the keys quotas correctly
        irqchip/versatile-fpga: Apply clear-mask earlier
        MIPS: OCTEON: irq: Fix potential NULL pointer dereference
        ath9k: Handle txpower changes even when TPC is disabled
        signal: Extend exec_id to 64bits
        x86/entry/32: Add missing ASM_CLAC to general_protection entry
        KVM: x86: Allocate new rmap and large page tracking when moving memslot
        crypto: mxs-dcp - fix scatterlist linearization for hash
        futex: futex_wake_op, do not fail on invalid op
        xen-netfront: Rework the fix for Rx stall during OOM and network stress
        ALSA: hda: Initialize power_state field properly
        Btrfs: incremental send, fix invalid memory access
        IB/ipoib: Fix lockdep issue found on ipoib_ib_dev_heavy_flush
        scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
        arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
        ext4: fix a data race at inode->i_blocks
        ocfs2: no need try to truncate file beyond i_size
        s390/diag: fix display of diagnose call statistics
        Input: i8042 - add Acer Aspire 5738z to nomux list
        kmod: make request_module() return an error when autoloading is disabled
        hfsplus: fix crash and filesystem corruption when deleting files
        libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
        powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
        Btrfs: fix crash during unmount due to race with delayed inode workers
        drm/dp_mst: Fix clearing payload state on topology disable
        ipmi: fix hung processes in __get_guid()
        powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
        misc: echo: Remove unnecessary parentheses and simplify check for zero
        mfd: dln2: Fix sanity checking for endpoints
        net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
        net: ipv6: do not consider routes via gateways for anycast address check
        scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
        jbd2: improve comments about freeing data buffers whose page mapping is NULL
        ext4: fix incorrect group count in ext4_fill_super error message
        ext4: fix incorrect inodes per group in error message
        ASoC: Intel: mrfld: fix incorrect check on p->sink
        ASoC: Intel: mrfld: return error codes when an error occurs
        ALSA: usb-audio: Don't override ignore_ctl_error value from the map
        mac80211_hwsim: Use kstrndup() in place of kasprintf()
        ext4: do not zeroout extents beyond i_disksize
        dm flakey: check for null arg_name in parse_features()
        kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
        x86/mitigations: Clear CPU buffers on the SYSCALL fast path
        tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
        scsi: sg: add sg_remove_request in sg_common_write
        ALSA: hda: Don't release card at firmware loading error
        video: fbdev: sis: Remove unnecessary parentheses and commented code
        drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
        wil6210: increase firmware ready timeout
        wil6210: fix temperature debugfs
        scsi: ufs: ufs-qcom: remove broken hci version quirk
        wil6210: rate limit wil_rx_refill error
        rtc: pm8xxx: Fix issue in RTC write path
        soc: qcom: smem: Use le32_to_cpu for comparison
        of: fix missing kobject init for !SYSFS && OF_DYNAMIC config
        of: unittest: kmemleak in of_unittest_platform_populate()
        clk: at91: usb: continue if clk_hw_round_rate() return zero
        clk: tegra: Fix Tegra PMC clock out parents
        NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
        ext4: do not commit super on read-only bdev
        percpu_counter: fix a data race at vm_committed_as
        compiler.h: fix error in BUILD_BUG_ON() reporting
        NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
        ext2: fix empty body warnings when -Wextra is used
        iommu/amd: Fix the configuration of GCR3 table root pointer
        fbdev: potential information leak in do_fb_ioctl()
        tty: evh_bytechan: Fix out of bounds accesses
        locktorture: Print ratio of acquisitions, not failures
        mtd: lpddr: Fix a double free in probe()
        mtd: phram: fix a double free issue in error path
        x86/CPU: Add native CPUID variants returning a single datum
        x86/microcode/intel: replace sync_core() with native_cpuid_reg(eax)
        x86/vdso: Fix lsl operand order
        Linux 4.4.220

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	drivers/scsi/ufs/ufshcd.c
	drivers/usb/gadget/composite.c
2020-04-23 23:29:29 -07:00
Paul E. McKenney
c3d5d9c42c locktorture: Print ratio of acquisitions, not failures
commit 80c503e0e68fbe271680ab48f0fe29bc034b01b7 upstream.

The __torture_print_stats() function in locktorture.c carefully
initializes local variable "min" to statp[0].n_lock_acquired, but
then compares it to statp[i].n_lock_fail.  Given that the .n_lock_fail
field should normally be zero, and given the initialization, it seems
reasonable to display the maximum and minimum number acquisitions
instead of miscomputing the maximum and minimum number of failures.
This commit therefore switches from failures to acquisitions.

And this turns out to be not only a day-zero bug, but entirely my
own fault.  I hate it when that happens!

Fixes: 0af3fe1efa ("locktorture: Add a lock-torture kernel module")
Reported-by: Will Deacon <will@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-24 07:57:26 +02:00
Boqun Feng
1d9bd981e0 locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
[ Upstream commit 25016bd7f4caf5fc983bbab7403d08e64cba3004 ]

Qian Cai reported a bug when PROVE_RCU_LIST=y, and read on /proc/lockdep
triggered a warning:

  [ ] DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled)
  ...
  [ ] Call Trace:
  [ ]  lock_is_held_type+0x5d/0x150
  [ ]  ? rcu_lockdep_current_cpu_online+0x64/0x80
  [ ]  rcu_read_lock_any_held+0xac/0x100
  [ ]  ? rcu_read_lock_held+0xc0/0xc0
  [ ]  ? __slab_free+0x421/0x540
  [ ]  ? kasan_kmalloc+0x9/0x10
  [ ]  ? __kmalloc_node+0x1d7/0x320
  [ ]  ? kvmalloc_node+0x6f/0x80
  [ ]  __bfs+0x28a/0x3c0
  [ ]  ? class_equal+0x30/0x30
  [ ]  lockdep_count_forward_deps+0x11a/0x1a0

The warning got triggered because lockdep_count_forward_deps() call
__bfs() without current->lockdep_recursion being set, as a result
a lockdep internal function (__bfs()) is checked by lockdep, which is
unexpected, and the inconsistency between the irq-off state and the
state traced by lockdep caused the warning.

Apart from this warning, lockdep internal functions like __bfs() should
always be protected by current->lockdep_recursion to avoid potential
deadlocks and data inconsistency, therefore add the
current->lockdep_recursion on-and-off section to protect __bfs() in both
lockdep_count_forward_deps() and lockdep_count_backward_deps()

Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200312151258.128036-1-boqun.feng@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-24 07:57:07 +02:00
Nathan Chancellor
4747b04527 Merge 4.9.209 into android-msm-bluecross-4.9
Changes in 4.9.209: (90 commits)
        PM / devfreq: Don't fail devfreq_dev_release if not in list
        RDMA/cma: add missed unregister_pernet_subsys in init failure
        scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
        scsi: qla2xxx: Don't call qlt_async_event twice
        scsi: iscsi: qla4xxx: fix double free in probe
        scsi: libsas: stop discovering if oob mode is disconnected
        usb: gadget: fix wrong endpoint desc
        md: raid1: check rdev before reference in raid1_sync_request func
        s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
        s390/cpum_sf: Avoid SBD overflow condition in irq handler
        IB/mlx4: Follow mirror sequence of device add during device removal
        xen-blkback: prevent premature module unload
        xen/balloon: fix ballooned page accounting without hotplug enabled
        PM / hibernate: memory_bm_find_bit(): Tighten node optimisation
        xfs: fix mount failure crash on invalid iclog memory access
        taskstats: fix data-race
        drm: limit to INT_MAX in create_blob ioctl
        Revert "perf report: Add warning when libunwind not compiled in"
        ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
        MIPS: Avoid VDSO ABI breakage due to global register variable
        mm/zsmalloc.c: fix the migrated zspage statistics.
        memcg: account security cred as well to kmemcg
        locks: print unsigned ino in /proc/locks
        dmaengine: Fix access to uninitialized dma_slave_caps
        compat_ioctl: block: handle Persistent Reservations
        ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
        ata: ahci_brcm: Allow optional reset controller to be used
        ata: ahci_brcm: Fix AHCI resources management
        gpiolib: fix up emulated open drain outputs
        tracing: Have the histogram compare functions convert to u64 first
        ALSA: cs4236: fix error return comparison of an unsigned integer
        ftrace: Avoid potential division by zero in function profiler
        arm64: Revert support for execute-only user mappings
        PM / devfreq: Check NULL governor in available_governors_show
        nfsd4: fix up replay_matches_cache()
        xfs: don't check for AG deadlock for realtime files in bunmapi
        Bluetooth: btusb: fix PM leak in error case of setup
        Bluetooth: delete a stray unlock
        Bluetooth: Fix memory leak in hci_connect_le_scan
        media: flexcop-usb: ensure -EIO is returned on error condition
        regulator: ab8500: Remove AB8505 USB regulator
        media: usb: fix memory leak in af9005_identify_state
        tty: serial: msm_serial: Fix lockup for sysrq and oops
        fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
        drm/mst: Fix MST sideband up-reply failure handling
        powerpc/pseries/hvconsole: Fix stack overread via udbg
        rxrpc: Fix possible NULL pointer access in ICMP handling
        ath9k_htc: Modify byte order for an error message
        ath9k_htc: Discard undersized packets
        net: add annotations on hh->hh_len lockless accesses
        s390/smp: fix physical to logical CPU map for SMT
        xen/blkback: Avoid unmapping unmapped grant pages
        locking/x86: Remove the unused atomic_inc_short() methd
        pstore/ram: Write new dumps to start of recycled zones
        locking/spinlock/debug: Fix various data races
        netfilter: ctnetlink: netns exit must wait for callbacks
        efi/gop: Return EFI_NOT_FOUND if there are no usable GOPs
        efi/gop: Return EFI_SUCCESS if a usable GOP was found
        efi/gop: Fix memory leak in __gop_query32/64()
        ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
        netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
        spi: spi-cavium-thunderx: Add missing pci_release_regions()
        ARM: dts: am437x-gp/epos-evm: fix panel compatible
        samples: bpf: Replace symbol compare of trace_event
        powerpc: Ensure that swiotlb buffer is allocated from low memory
        bnx2x: Do not handle requests from VFs after parity
        bnx2x: Fix logic to get total no. of PFs per engine
        net: usb: lan78xx: Fix error message format specifier
        rfkill: Fix incorrect check to avoid NULL pointer dereference
        ASoC: wm8962: fix lambda value
        regulator: rn5t618: fix module aliases
        kconfig: don't crash on NULL expressions in expr_eq()
        perf/x86/intel: Fix PT PMI handling
        net: stmmac: RX buffer size must be 16 byte aligned
        block: fix memleak when __blk_rq_map_user_iov() is failed
        parisc: Fix compiler warnings in debug_core.c
        llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
        macvlan: do not assume mac_header is set in macvlan_broadcast()
        net: stmmac: dwmac-sunxi: Allow all RGMII modes
        net: usb: lan78xx: fix possible skb leak
        pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
        sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
        tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
        vxlan: fix tos value before xmit
        vlan: vlan_changelink() should propagate errors
        net: sch_prio: When ungrafting, replace with FIFO
        vlan: fix memory leak in vlan_dev_set_egress_priority
        USB: core: fix check for duplicate endpoints
        USB: serial: option: add Telit ME910G1 0x110a composition
        Linux 4.9.209

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	arch/arm64/mm/fault.c
	drivers/gpu/drm/drm_property.c
	kernel/locking/spinlock_debug.c
2020-01-12 11:10:25 -07:00
Greg Kroah-Hartman
bddad4a0ef Merge 4.4.209 into android-4.4-p
Changes in 4.4.209
	PM / devfreq: Don't fail devfreq_dev_release if not in list
	RDMA/cma: add missed unregister_pernet_subsys in init failure
	scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
	scsi: qla2xxx: Don't call qlt_async_event twice
	scsi: iscsi: qla4xxx: fix double free in probe
	scsi: libsas: stop discovering if oob mode is disconnected
	usb: gadget: fix wrong endpoint desc
	md: raid1: check rdev before reference in raid1_sync_request func
	s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
	s390/cpum_sf: Avoid SBD overflow condition in irq handler
	xen/balloon: fix ballooned page accounting without hotplug enabled
	xfs: fix mount failure crash on invalid iclog memory access
	taskstats: fix data-race
	Revert "perf report: Add warning when libunwind not compiled in"
	ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
	MIPS: Avoid VDSO ABI breakage due to global register variable
	locks: print unsigned ino in /proc/locks
	dmaengine: Fix access to uninitialized dma_slave_caps
	compat_ioctl: block: handle Persistent Reservations
	gpiolib: fix up emulated open drain outputs
	ALSA: cs4236: fix error return comparison of an unsigned integer
	ftrace: Avoid potential division by zero in function profiler
	Bluetooth: btusb: fix PM leak in error case of setup
	Bluetooth: delete a stray unlock
	tty: serial: msm_serial: Fix lockup for sysrq and oops
	drm/mst: Fix MST sideband up-reply failure handling
	powerpc/pseries/hvconsole: Fix stack overread via udbg
	ath9k_htc: Modify byte order for an error message
	ath9k_htc: Discard undersized packets
	net: add annotations on hh->hh_len lockless accesses
	s390/smp: fix physical to logical CPU map for SMT
	locking/x86: Remove the unused atomic_inc_short() methd
	pstore/ram: Write new dumps to start of recycled zones
	locking/spinlock/debug: Fix various data races
	netfilter: ctnetlink: netns exit must wait for callbacks
	ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
	netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
	ARM: dts: am437x-gp/epos-evm: fix panel compatible
	powerpc: Ensure that swiotlb buffer is allocated from low memory
	bnx2x: Do not handle requests from VFs after parity
	bnx2x: Fix logic to get total no. of PFs per engine
	net: usb: lan78xx: Fix error message format specifier
	rfkill: Fix incorrect check to avoid NULL pointer dereference
	ASoC: wm8962: fix lambda value
	regulator: rn5t618: fix module aliases
	kconfig: don't crash on NULL expressions in expr_eq()
	parisc: Fix compiler warnings in debug_core.c
	llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
	net: stmmac: dwmac-sunxi: Allow all RGMII modes
	net: usb: lan78xx: fix possible skb leak
	pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
	sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
	tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
	vlan: vlan_changelink() should propagate errors
	vlan: fix memory leak in vlan_dev_set_egress_priority
	vxlan: fix tos value before xmit
	macvlan: do not assume mac_header is set in macvlan_broadcast()
	USB: core: fix check for duplicate endpoints
	USB: serial: option: add Telit ME910G1 0x110a composition
	Linux 4.4.209

Change-Id: Id229502365a315c24e126e98eab040cb6f40c1d5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-01-12 12:11:56 +01:00
Marco Elver
3106fb78d3 locking/spinlock/debug: Fix various data races
[ Upstream commit 1a365e822372ba24c9da0822bc583894f6f3d821 ]

This fixes various data races in spinlock_debug. By testing with KCSAN,
it is observable that the console gets spammed with data races reports,
suggesting these are extremely frequent.

Example data race report:

  read to 0xffff8ab24f403c48 of 4 bytes by task 221 on cpu 2:
   debug_spin_lock_before kernel/locking/spinlock_debug.c:85 [inline]
   do_raw_spin_lock+0x9b/0x210 kernel/locking/spinlock_debug.c:112
   __raw_spin_lock include/linux/spinlock_api_smp.h:143 [inline]
   _raw_spin_lock+0x39/0x40 kernel/locking/spinlock.c:151
   spin_lock include/linux/spinlock.h:338 [inline]
   get_partial_node.isra.0.part.0+0x32/0x2f0 mm/slub.c:1873
   get_partial_node mm/slub.c:1870 [inline]
  <snip>

  write to 0xffff8ab24f403c48 of 4 bytes by task 167 on cpu 3:
   debug_spin_unlock kernel/locking/spinlock_debug.c:103 [inline]
   do_raw_spin_unlock+0xc9/0x1a0 kernel/locking/spinlock_debug.c:138
   __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:159 [inline]
   _raw_spin_unlock_irqrestore+0x2d/0x50 kernel/locking/spinlock.c:191
   spin_unlock_irqrestore include/linux/spinlock.h:393 [inline]
   free_debug_processing+0x1b3/0x210 mm/slub.c:1214
   __slab_free+0x292/0x400 mm/slub.c:2864
  <snip>

As a side-effect, with KCSAN, this eventually locks up the console, most
likely due to deadlock, e.g. .. -> printk lock -> spinlock_debug ->
KCSAN detects data race -> kcsan_print_report() -> printk lock ->
deadlock.

This fix will 1) avoid the data races, and 2) allow using lock debugging
together with KCSAN.

Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Marco Elver <elver@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/20191120155715.28089-1-elver@google.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-12 11:22:46 +01:00
Greg Kroah-Hartman
4af3204c43 Merge 4.4.195 into android-4.4-p
Changes in 4.4.195
	Revert "Bluetooth: validate BLE connection interval updates"
	HID: prodikeys: Fix general protection fault during probe
	HID: lg: make transfer buffers DMA capable
	HID: logitech: Fix general protection fault caused by Logitech driver
	HID: hidraw: Fix invalid read in hidraw_ioctl
	mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
	crypto: talitos - fix missing break in switch statement
	net: rds: Fix NULL ptr use in rds_tcp_kill_sock
	ASoC: fsl: Fix of-node refcount unbalance in fsl_ssi_probe_from_dt()
	ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
	mac80211: Print text for disassociation reason
	mac80211: handle deauthentication/disassociation from TDLS peer
	locking/lockdep: Add debug_locks check in __lock_downgrade()
	irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
	f2fs: check all the data segments against all node ones
	Revert "f2fs: avoid out-of-range memory access"
	f2fs: fix to do sanity check on segment bitmap of LFS curseg
	drm: Flush output polling on shutdown
	Bluetooth: btrtl: Additional Realtek 8822CE Bluetooth devices
	arcnet: provide a buffer big enough to actually receive packets
	cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize
	net/phy: fix DP83865 10 Mbps HDX loopback disable function
	openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC
	sch_netem: fix a divide by zero in tabledist()
	skge: fix checksum byte order
	usbnet: ignore endpoints with invalid wMaxPacketSize
	usbnet: sanity checking of packet sizes and device mtu
	mISDN: enforce CAP_NET_RAW for raw sockets
	appletalk: enforce CAP_NET_RAW for raw sockets
	ax25: enforce CAP_NET_RAW for raw sockets
	ieee802154: enforce CAP_NET_RAW for raw sockets
	nfc: enforce CAP_NET_RAW for raw sockets
	ALSA: hda: Flush interrupts on disabling
	ASoC: sgtl5000: Fix charge pump source assignment
	dmaengine: bcm2835: Print error in case setting DMA mask fails
	leds: leds-lp5562 allow firmware files up to the maximum length
	media: dib0700: fix link error for dibx000_i2c_set_speed
	media: hdpvr: Add device num check and handling
	sched/fair: Fix imbalance due to CPU affinity
	sched/core: Fix CPU controller for !RT_GROUP_SCHED
	x86/reboot: Always use NMI fallback when shutdown via reboot vector IPI fails
	x86/apic: Soft disable APIC before initializing it
	ALSA: hda - Show the fatal CORB/RIRB error more clearly
	ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in build_adc_controls()
	media: iguanair: add sanity checks
	base: soc: Export soc_device_register/unregister APIs
	ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid
	ia64:unwind: fix double free for mod->arch.init_unw_table
	md: don't call spare_active in md_reap_sync_thread if all member devices can't work
	md: don't set In_sync if array is frozen
	efi: cper: print AER info of PCIe fatal error
	media: gspca: zero usb_buf on error
	dmaengine: iop-adma: use correct printk format strings
	media: omap3isp: Don't set streaming state on random subdevs
	net: lpc-enet: fix printk format strings
	media: radio/si470x: kill urb on error
	media: hdpvr: add terminating 0 at end of string
	media: saa7146: add cleanup in hexium_attach()
	media: cpia2_usb: fix memory leaks
	media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate()
	media: ov9650: add a sanity check
	ACPI / CPPC: do not require the _PSD method
	libtraceevent: Change users plugin directory
	ACPI: custom_method: fix memory leaks
	hwmon: (acpi_power_meter) Change log level for 'unsafe software power cap'
	md/raid1: fail run raid1 array when active disk less than one
	dmaengine: ti: edma: Do not reset reserved paRAM slots
	kprobes: Prohibit probing on BUG() and WARN() address
	ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set
	mmc: sdhci: Fix incorrect switch to HS mode
	libertas: Add missing sentinel at end of if_usb.c fw_table
	media: ttusb-dec: Fix info-leak in ttusb_dec_send_command()
	ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93
	btrfs: extent-tree: Make sure we only allocate extents from block groups with the same type
	media: omap3isp: Set device on omap3isp subdevs
	ALSA: firewire-tascam: handle error code when getting current source of clock
	ALSA: firewire-tascam: check intermediate state of clock status and retry
	printk: Do not lose last line in kmsg buffer dump
	fuse: fix missing unlock_page in fuse_writepage()
	parisc: Disable HP HSC-PCI Cards to prevent kernel crash
	KVM: x86: always stop emulation on page fault
	KVM: x86: set ctxt->have_exception in x86_decode_insn()
	KVM: x86: Manually calculate reserved bits when loading PDPTRS
	media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table
	ASoC: Intel: Fix use of potentially uninitialized variable
	ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
	alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
	md/raid6: Set R5_ReadError when there is read failure on parity disk
	cfg80211: Purge frame registrations on iftype change
	/dev/mem: Bail out upon SIGKILL.
	ext4: fix punch hole for inline_data file systems
	quota: fix wrong condition in is_quota_modification()
	hwrng: core - don't wait on add_early_randomness()
	i2c: riic: Clear NACK in tend isr
	CIFS: Fix oplock handling for SMB 2.1+ protocols
	ovl: filter of trusted xattr results in audit
	Btrfs: fix use-after-free when using the tree modification log
	btrfs: Relinquish CPUs in btrfs_compare_trees
	Btrfs: fix race setting up and completing qgroup rescan workers
	Linux 4.4.195

Change-Id: I0a333f55c8fd4273b37044e4e4e89ac1fb0fad1a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-10-06 11:55:24 +02:00
Nathan Chancellor
4da1300261 Merge 4.4.195 into android-msm-wahoo-4.4
Changes in 4.4.195: (100 commits)
        Revert "Bluetooth: validate BLE connection interval updates"
        HID: prodikeys: Fix general protection fault during probe
        HID: lg: make transfer buffers DMA capable
        HID: logitech: Fix general protection fault caused by Logitech driver
        HID: hidraw: Fix invalid read in hidraw_ioctl
        mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
        crypto: talitos - fix missing break in switch statement
        net: rds: Fix NULL ptr use in rds_tcp_kill_sock
        ASoC: fsl: Fix of-node refcount unbalance in fsl_ssi_probe_from_dt()
        ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
        mac80211: Print text for disassociation reason
        mac80211: handle deauthentication/disassociation from TDLS peer
        locking/lockdep: Add debug_locks check in __lock_downgrade()
        irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
        f2fs: check all the data segments against all node ones
        Revert "f2fs: avoid out-of-range memory access"
        f2fs: fix to do sanity check on segment bitmap of LFS curseg
        drm: Flush output polling on shutdown
        Bluetooth: btrtl: Additional Realtek 8822CE Bluetooth devices
        arcnet: provide a buffer big enough to actually receive packets
        cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize
        net/phy: fix DP83865 10 Mbps HDX loopback disable function
        openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC
        sch_netem: fix a divide by zero in tabledist()
        skge: fix checksum byte order
        usbnet: ignore endpoints with invalid wMaxPacketSize
        usbnet: sanity checking of packet sizes and device mtu
        mISDN: enforce CAP_NET_RAW for raw sockets
        appletalk: enforce CAP_NET_RAW for raw sockets
        ax25: enforce CAP_NET_RAW for raw sockets
        ieee802154: enforce CAP_NET_RAW for raw sockets
        nfc: enforce CAP_NET_RAW for raw sockets
        ALSA: hda: Flush interrupts on disabling
        ASoC: sgtl5000: Fix charge pump source assignment
        dmaengine: bcm2835: Print error in case setting DMA mask fails
        leds: leds-lp5562 allow firmware files up to the maximum length
        media: dib0700: fix link error for dibx000_i2c_set_speed
        media: hdpvr: Add device num check and handling
        sched/fair: Fix imbalance due to CPU affinity
        sched/core: Fix CPU controller for !RT_GROUP_SCHED
        x86/reboot: Always use NMI fallback when shutdown via reboot vector IPI fails
        x86/apic: Soft disable APIC before initializing it
        ALSA: hda - Show the fatal CORB/RIRB error more clearly
        ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in build_adc_controls()
        media: iguanair: add sanity checks
        base: soc: Export soc_device_register/unregister APIs
        ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid
        ia64:unwind: fix double free for mod->arch.init_unw_table
        md: don't call spare_active in md_reap_sync_thread if all member devices can't work
        md: don't set In_sync if array is frozen
        efi: cper: print AER info of PCIe fatal error
        media: gspca: zero usb_buf on error
        dmaengine: iop-adma: use correct printk format strings
        media: omap3isp: Don't set streaming state on random subdevs
        net: lpc-enet: fix printk format strings
        media: radio/si470x: kill urb on error
        media: hdpvr: add terminating 0 at end of string
        media: saa7146: add cleanup in hexium_attach()
        media: cpia2_usb: fix memory leaks
        media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate()
        media: ov9650: add a sanity check
        ACPI / CPPC: do not require the _PSD method
        libtraceevent: Change users plugin directory
        ACPI: custom_method: fix memory leaks
        hwmon: (acpi_power_meter) Change log level for 'unsafe software power cap'
        md/raid1: fail run raid1 array when active disk less than one
        dmaengine: ti: edma: Do not reset reserved paRAM slots
        kprobes: Prohibit probing on BUG() and WARN() address
        ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set
        mmc: sdhci: Fix incorrect switch to HS mode
        libertas: Add missing sentinel at end of if_usb.c fw_table
        media: ttusb-dec: Fix info-leak in ttusb_dec_send_command()
        ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93
        btrfs: extent-tree: Make sure we only allocate extents from block groups with the same type
        media: omap3isp: Set device on omap3isp subdevs
        ALSA: firewire-tascam: handle error code when getting current source of clock
        ALSA: firewire-tascam: check intermediate state of clock status and retry
        printk: Do not lose last line in kmsg buffer dump
        fuse: fix missing unlock_page in fuse_writepage()
        parisc: Disable HP HSC-PCI Cards to prevent kernel crash
        KVM: x86: always stop emulation on page fault
        KVM: x86: set ctxt->have_exception in x86_decode_insn()
        KVM: x86: Manually calculate reserved bits when loading PDPTRS
        media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table
        ASoC: Intel: Fix use of potentially uninitialized variable
        ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
        alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
        md/raid6: Set R5_ReadError when there is read failure on parity disk
        cfg80211: Purge frame registrations on iftype change
        /dev/mem: Bail out upon SIGKILL.
        ext4: fix punch hole for inline_data file systems
        quota: fix wrong condition in is_quota_modification()
        hwrng: core - don't wait on add_early_randomness()
        i2c: riic: Clear NACK in tend isr
        CIFS: Fix oplock handling for SMB 2.1+ protocols
        ovl: filter of trusted xattr results in audit
        Btrfs: fix use-after-free when using the tree modification log
        btrfs: Relinquish CPUs in btrfs_compare_trees
        Btrfs: fix race setting up and completing qgroup rescan workers
        Linux 4.4.195

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2019-10-05 09:15:41 -07:00
Waiman Long
2a8d47d551 locking/lockdep: Add debug_locks check in __lock_downgrade()
[ Upstream commit 513e1073d52e55b8024b4f238a48de7587c64ccf ]

Tetsuo Handa had reported he saw an incorrect "downgrading a read lock"
warning right after a previous lockdep warning. It is likely that the
previous warning turned off lock debugging causing the lockdep to have
inconsistency states leading to the lock downgrade warning.

Fix that by add a check for debug_locks at the beginning of
__lock_downgrade().

Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Reported-by: syzbot+53383ae265fb161ef488@syzkaller.appspotmail.com
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/1547093005-26085-1-git-send-email-longman@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-10-05 12:27:39 +02:00
Nathan Chancellor
3c9303b5f9 Merge 4.4.187 into android-msm-wahoo-4.4
Changes in 4.4.187: (157 commits)
        MIPS: ath79: fix ar933x uart parity mode
        MIPS: fix build on non-linux hosts
        dmaengine: imx-sdma: fix use-after-free on probe error path
        ath10k: Do not send probe response template for mesh
        ath9k: Check for errors when reading SREV register
        ath6kl: add some bounds checking
        ath: DFS JP domain W56 fixed pulse type 3 RADAR detection
        batman-adv: fix for leaked TVLV handler.
        media: dvb: usb: fix use after free in dvb_usb_device_exit
        crypto: talitos - fix skcipher failure due to wrong output IV
        media: marvell-ccic: fix DMA s/g desc number calculation
        media: vpss: fix a potential NULL pointer dereference
        net: stmmac: dwmac1000: Clear unused address entries
        signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig
        af_key: fix leaks in key_pol_get_resp and dump_sp.
        xfrm: Fix xfrm sel prefix length validation
        media: staging: media: davinci_vpfe: - Fix for memory leak if decoder initialization fails.
        net: phy: Check against net_device being NULL
        tua6100: Avoid build warnings.
        locking/lockdep: Fix merging of hlocks with non-zero references
        media: wl128x: Fix some error handling in fm_v4l2_init_video_device()
        cpupower : frequency-set -r option misses the last cpu in related cpu list
        net: fec: Do not use netdev messages too early
        net: axienet: Fix race condition causing TX hang
        s390/qdio: handle PENDING state for QEBSM devices
        perf test 6: Fix missing kvm module load for s390
        gpio: omap: fix lack of irqstatus_raw0 for OMAP4
        gpio: omap: ensure irq is enabled before wakeup
        regmap: fix bulk writes on paged registers
        bpf: silence warning messages in core
        rcu: Force inlining of rcu_read_lock()
        xfrm: fix sa selector validation
        perf evsel: Make perf_evsel__name() accept a NULL argument
        vhost_net: disable zerocopy by default
        EDAC/sysfs: Fix memory leak when creating a csrow object
        media: i2c: fix warning same module names
        ntp: Limit TAI-UTC offset
        timer_list: Guard procfs specific code
        acpi/arm64: ignore 5.1 FADTs that are reported as 5.0
        media: coda: fix mpeg2 sequence number handling
        media: coda: increment sequence offset for the last returned frame
        mt7601u: do not schedule rx_tasklet when the device has been disconnected
        x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c
        mt7601u: fix possible memory leak when the device is disconnected
        ath10k: fix PCIE device wake up failed
        rslib: Fix decoding of shortened codes
        rslib: Fix handling of of caller provided syndrome
        ixgbe: Check DDM existence in transceiver before access
        EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
        bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush()
        Bluetooth: hci_bcsp: Fix memory leak in rx_skb
        Bluetooth: 6lowpan: search for destination address in all peers
        Bluetooth: Check state in l2cap_disconnect_rsp
        Bluetooth: validate BLE connection interval updates
        crypto: ghash - fix unaligned memory access in ghash_setkey()
        crypto: arm64/sha1-ce - correct digest for empty data in finup
        crypto: arm64/sha2-ce - correct digest for empty data in finup
        Input: gtco - bounds check collection indent level
        regulator: s2mps11: Fix buck7 and buck8 wrong voltages
        tracing/snapshot: Resize spare buffer if size changed
        NFSv4: Handle the special Linux file open access mode
        lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
        ALSA: seq: Break too long mutex context in the write loop
        media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
        media: coda: Remove unbalanced and unneeded mutex unlock
        KVM: x86/vPMU: refine kvm_pmu err msg when event creation failed
        drm/nouveau/i2c: Enable i2c pads & busses during preinit
        padata: use smp_mb in padata_reorder to avoid orphaned padata jobs
        9p/virtio: Add cleanup path in p9_virtio_init
        PCI: Do not poll for PME if the device is in D3cold
        take floppy compat ioctls to sodding floppy.c
        floppy: fix div-by-zero in setup_format_params
        floppy: fix out-of-bounds read in next_valid_format
        floppy: fix invalid pointer dereference in drive_name
        floppy: fix out-of-bounds read in copy_buffer
        coda: pass the host file in vma->vm_file on mmap
        gpu: ipu-v3: ipu-ic: Fix saturation bit offset in TPMEM
        parisc: Fix kernel panic due invalid values in IAOQ0 or IAOQ1
        powerpc/32s: fix suspend/resume when IBATs 4-7 are used
        powerpc/watchpoint: Restore NV GPRs while returning from exception
        eCryptfs: fix a couple type promotion bugs
        intel_th: msu: Fix single mode with disabled IOMMU
        Bluetooth: Add SMP workaround Microsoft Surface Precision Mouse bug
        usb: Handle USB3 remote wakeup for LPM enabled devices correctly
        dm bufio: fix deadlock with loop device
        bnx2x: Prevent load reordering in tx completion processing
        caif-hsi: fix possible deadlock in cfhsi_exit_module()
        ipv4: don't set IPv6 only flags to IPv4 addresses
        net: bcmgenet: use promisc for unsupported filters
        net: neigh: fix multiple neigh timer scheduling
        nfc: fix potential illegal memory access
        sky2: Disable MSI on ASUS P6T
        netrom: fix a memory leak in nr_rx_frame()
        netrom: hold sock when setting skb->destructor
        tcp: Reset bytes_acked and bytes_received when disconnecting
        bonding: validate ip header before check IPPROTO_IGMP
        net: bridge: mcast: fix stale nsrcs pointer in igmp3/mld2 report handling
        net: bridge: mcast: fix stale ipv6 hdr pointer when handling v6 query
        net: bridge: stp: don't cache eth dest pointer before skb pull
        elevator: fix truncation of icq_cache_name
        NFSv4: Fix open create exclusive when the server reboots
        nfsd: increase DRC cache limit
        nfsd: give out fewer session slots as limit approaches
        nfsd: fix performance-limiting session calculation
        nfsd: Fix overflow causing non-working mounts on 1 TB machines
        drm/panel: simple: Fix panel_simple_dsi_probe
        usb: core: hub: Disable hub-initiated U1/U2
        tty: max310x: Fix invalid baudrate divisors calculator
        pinctrl: rockchip: fix leaked of_node references
        tty: serial: cpm_uart - fix init when SMC is relocated
        memstick: Fix error cleanup path of memstick_init
        tty/serial: digicolor: Fix digicolor-usart already registered warning
        tty: serial: msm_serial: avoid system lockup condition
        drm/virtio: Add memory barriers for capset cache.
        phy: renesas: rcar-gen2: Fix memory leak at error paths
        usb: gadget: Zero ffs_io_data
        powerpc/pci/of: Fix OF flags parsing for 64bit BARs
        PCI: sysfs: Ignore lockdep for remove attribute
        iio: iio-utils: Fix possible incorrect mask calculation
        recordmcount: Fix spurious mcount entries on powerpc
        mfd: core: Set fwnode for created devices
        mfd: arizona: Fix undefined behavior
        um: Silence lockdep complaint about mmap_sem
        powerpc/4xx/uic: clear pending interrupt after irq type/pol change
        serial: sh-sci: Fix TX DMA buffer flushing and workqueue races
        kallsyms: exclude kasan local symbols on s390
        perf test mmap-thread-lookup: Initialize variable to suppress memory sanitizer warning
        f2fs: avoid out-of-range memory access
        mailbox: handle failed named mailbox channel request
        powerpc/eeh: Handle hugepages in ioremap space
        sh: prevent warnings when using iounmap
        mm/kmemleak.c: fix check for softirq context
        9p: pass the correct prototype to read_cache_page
        mm/mmu_notifier: use hlist_add_head_rcu()
        locking/lockdep: Fix lock used or unused stats error
        locking/lockdep: Hide unused 'class' variable
        usb: wusbcore: fix unbalanced get/put cluster_id
        usb: pci-quirks: Correct AMD PLL quirk detection
        x86/sysfb_efi: Add quirks for some devices with swapped width and height
        x86/speculation/mds: Apply more accurate check on hypervisor platform
        hpet: Fix division by zero in hpet_time_div()
        ALSA: line6: Fix wrong altsetting for LINE6_PODHD500_1
        ALSA: hda - Add a conexant codec entry to let mute led work
        powerpc/tm: Fix oops on sigreturn on systems without TM
        access: avoid the RCU grace period for the temporary subjective credentials
        vmstat: Remove BUG_ON from vmstat_update
        mm, vmstat: make quiet_vmstat lighter
        ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt
        tcp: reset sk_send_head in tcp_write_queue_purge
        ISDN: hfcsusb: checking idx of ep configuration
        media: cpia2_usb: first wake up, then free in disconnect
        media: radio-raremono: change devm_k*alloc to k*alloc
        Bluetooth: hci_uart: check for missing tty operations
        sched/fair: Don't free p->numa_faults with concurrent readers
        drivers/pps/pps.c: clear offset flags in PPS_SETPARAMS ioctl
        ceph: hold i_ceph_lock when removing caps for freeing inode
        Linux 4.4.187

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	fs/ecryptfs/crypto.c
	mm/vmstat.c
2019-08-04 10:53:04 -07:00
Greg Kroah-Hartman
ebf4d7ea8d Merge 4.4.187 into android-4.4-p
Changes in 4.4.187
	MIPS: ath79: fix ar933x uart parity mode
	MIPS: fix build on non-linux hosts
	dmaengine: imx-sdma: fix use-after-free on probe error path
	ath10k: Do not send probe response template for mesh
	ath9k: Check for errors when reading SREV register
	ath6kl: add some bounds checking
	ath: DFS JP domain W56 fixed pulse type 3 RADAR detection
	batman-adv: fix for leaked TVLV handler.
	media: dvb: usb: fix use after free in dvb_usb_device_exit
	crypto: talitos - fix skcipher failure due to wrong output IV
	media: marvell-ccic: fix DMA s/g desc number calculation
	media: vpss: fix a potential NULL pointer dereference
	net: stmmac: dwmac1000: Clear unused address entries
	signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig
	af_key: fix leaks in key_pol_get_resp and dump_sp.
	xfrm: Fix xfrm sel prefix length validation
	media: staging: media: davinci_vpfe: - Fix for memory leak if decoder initialization fails.
	net: phy: Check against net_device being NULL
	tua6100: Avoid build warnings.
	locking/lockdep: Fix merging of hlocks with non-zero references
	media: wl128x: Fix some error handling in fm_v4l2_init_video_device()
	cpupower : frequency-set -r option misses the last cpu in related cpu list
	net: fec: Do not use netdev messages too early
	net: axienet: Fix race condition causing TX hang
	s390/qdio: handle PENDING state for QEBSM devices
	perf test 6: Fix missing kvm module load for s390
	gpio: omap: fix lack of irqstatus_raw0 for OMAP4
	gpio: omap: ensure irq is enabled before wakeup
	regmap: fix bulk writes on paged registers
	bpf: silence warning messages in core
	rcu: Force inlining of rcu_read_lock()
	xfrm: fix sa selector validation
	perf evsel: Make perf_evsel__name() accept a NULL argument
	vhost_net: disable zerocopy by default
	EDAC/sysfs: Fix memory leak when creating a csrow object
	media: i2c: fix warning same module names
	ntp: Limit TAI-UTC offset
	timer_list: Guard procfs specific code
	acpi/arm64: ignore 5.1 FADTs that are reported as 5.0
	media: coda: fix mpeg2 sequence number handling
	media: coda: increment sequence offset for the last returned frame
	mt7601u: do not schedule rx_tasklet when the device has been disconnected
	x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c
	mt7601u: fix possible memory leak when the device is disconnected
	ath10k: fix PCIE device wake up failed
	rslib: Fix decoding of shortened codes
	rslib: Fix handling of of caller provided syndrome
	ixgbe: Check DDM existence in transceiver before access
	EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
	bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush()
	Bluetooth: hci_bcsp: Fix memory leak in rx_skb
	Bluetooth: 6lowpan: search for destination address in all peers
	Bluetooth: Check state in l2cap_disconnect_rsp
	Bluetooth: validate BLE connection interval updates
	crypto: ghash - fix unaligned memory access in ghash_setkey()
	crypto: arm64/sha1-ce - correct digest for empty data in finup
	crypto: arm64/sha2-ce - correct digest for empty data in finup
	Input: gtco - bounds check collection indent level
	regulator: s2mps11: Fix buck7 and buck8 wrong voltages
	tracing/snapshot: Resize spare buffer if size changed
	NFSv4: Handle the special Linux file open access mode
	lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
	ALSA: seq: Break too long mutex context in the write loop
	media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
	media: coda: Remove unbalanced and unneeded mutex unlock
	KVM: x86/vPMU: refine kvm_pmu err msg when event creation failed
	drm/nouveau/i2c: Enable i2c pads & busses during preinit
	padata: use smp_mb in padata_reorder to avoid orphaned padata jobs
	9p/virtio: Add cleanup path in p9_virtio_init
	PCI: Do not poll for PME if the device is in D3cold
	take floppy compat ioctls to sodding floppy.c
	floppy: fix div-by-zero in setup_format_params
	floppy: fix out-of-bounds read in next_valid_format
	floppy: fix invalid pointer dereference in drive_name
	floppy: fix out-of-bounds read in copy_buffer
	coda: pass the host file in vma->vm_file on mmap
	gpu: ipu-v3: ipu-ic: Fix saturation bit offset in TPMEM
	parisc: Fix kernel panic due invalid values in IAOQ0 or IAOQ1
	powerpc/32s: fix suspend/resume when IBATs 4-7 are used
	powerpc/watchpoint: Restore NV GPRs while returning from exception
	eCryptfs: fix a couple type promotion bugs
	intel_th: msu: Fix single mode with disabled IOMMU
	Bluetooth: Add SMP workaround Microsoft Surface Precision Mouse bug
	usb: Handle USB3 remote wakeup for LPM enabled devices correctly
	dm bufio: fix deadlock with loop device
	bnx2x: Prevent load reordering in tx completion processing
	caif-hsi: fix possible deadlock in cfhsi_exit_module()
	ipv4: don't set IPv6 only flags to IPv4 addresses
	net: bcmgenet: use promisc for unsupported filters
	net: neigh: fix multiple neigh timer scheduling
	nfc: fix potential illegal memory access
	sky2: Disable MSI on ASUS P6T
	netrom: fix a memory leak in nr_rx_frame()
	netrom: hold sock when setting skb->destructor
	tcp: Reset bytes_acked and bytes_received when disconnecting
	bonding: validate ip header before check IPPROTO_IGMP
	net: bridge: mcast: fix stale nsrcs pointer in igmp3/mld2 report handling
	net: bridge: mcast: fix stale ipv6 hdr pointer when handling v6 query
	net: bridge: stp: don't cache eth dest pointer before skb pull
	elevator: fix truncation of icq_cache_name
	NFSv4: Fix open create exclusive when the server reboots
	nfsd: increase DRC cache limit
	nfsd: give out fewer session slots as limit approaches
	nfsd: fix performance-limiting session calculation
	nfsd: Fix overflow causing non-working mounts on 1 TB machines
	drm/panel: simple: Fix panel_simple_dsi_probe
	usb: core: hub: Disable hub-initiated U1/U2
	tty: max310x: Fix invalid baudrate divisors calculator
	pinctrl: rockchip: fix leaked of_node references
	tty: serial: cpm_uart - fix init when SMC is relocated
	memstick: Fix error cleanup path of memstick_init
	tty/serial: digicolor: Fix digicolor-usart already registered warning
	tty: serial: msm_serial: avoid system lockup condition
	drm/virtio: Add memory barriers for capset cache.
	phy: renesas: rcar-gen2: Fix memory leak at error paths
	usb: gadget: Zero ffs_io_data
	powerpc/pci/of: Fix OF flags parsing for 64bit BARs
	PCI: sysfs: Ignore lockdep for remove attribute
	iio: iio-utils: Fix possible incorrect mask calculation
	recordmcount: Fix spurious mcount entries on powerpc
	mfd: core: Set fwnode for created devices
	mfd: arizona: Fix undefined behavior
	um: Silence lockdep complaint about mmap_sem
	powerpc/4xx/uic: clear pending interrupt after irq type/pol change
	serial: sh-sci: Fix TX DMA buffer flushing and workqueue races
	kallsyms: exclude kasan local symbols on s390
	perf test mmap-thread-lookup: Initialize variable to suppress memory sanitizer warning
	f2fs: avoid out-of-range memory access
	mailbox: handle failed named mailbox channel request
	powerpc/eeh: Handle hugepages in ioremap space
	sh: prevent warnings when using iounmap
	mm/kmemleak.c: fix check for softirq context
	9p: pass the correct prototype to read_cache_page
	mm/mmu_notifier: use hlist_add_head_rcu()
	locking/lockdep: Fix lock used or unused stats error
	locking/lockdep: Hide unused 'class' variable
	usb: wusbcore: fix unbalanced get/put cluster_id
	usb: pci-quirks: Correct AMD PLL quirk detection
	x86/sysfb_efi: Add quirks for some devices with swapped width and height
	x86/speculation/mds: Apply more accurate check on hypervisor platform
	hpet: Fix division by zero in hpet_time_div()
	ALSA: line6: Fix wrong altsetting for LINE6_PODHD500_1
	ALSA: hda - Add a conexant codec entry to let mute led work
	powerpc/tm: Fix oops on sigreturn on systems without TM
	access: avoid the RCU grace period for the temporary subjective credentials
	vmstat: Remove BUG_ON from vmstat_update
	mm, vmstat: make quiet_vmstat lighter
	ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt
	tcp: reset sk_send_head in tcp_write_queue_purge
	ISDN: hfcsusb: checking idx of ep configuration
	media: cpia2_usb: first wake up, then free in disconnect
	media: radio-raremono: change devm_k*alloc to k*alloc
	Bluetooth: hci_uart: check for missing tty operations
	sched/fair: Don't free p->numa_faults with concurrent readers
	drivers/pps/pps.c: clear offset flags in PPS_SETPARAMS ioctl
	ceph: hold i_ceph_lock when removing caps for freeing inode
	Linux 4.4.187

Change-Id: I6086b23376cdf9f6a905f727fb07175a7ebdd356
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-08-04 09:53:45 +02:00
Arnd Bergmann
32a8925288 locking/lockdep: Hide unused 'class' variable
[ Upstream commit 68037aa78208f34bda4e5cd76c357f718b838cbb ]

The usage is now hidden in an #ifdef, so we need to move
the variable itself in there as well to avoid this warning:

  kernel/locking/lockdep_proc.c:203:21: error: unused variable 'class' [-Werror,-Wunused-variable]

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Qian Cai <cai@lca.pw>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Waiman Long <longman@redhat.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Yuyang Du <duyuyang@gmail.com>
Cc: frederic@kernel.org
Fixes: 68d41d8c94a3 ("locking/lockdep: Fix lock used or unused stats error")
Link: https://lkml.kernel.org/r/20190715092809.736834-1-arnd@arndb.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:34:59 +02:00
Yuyang Du
53372938b1 locking/lockdep: Fix lock used or unused stats error
[ Upstream commit 68d41d8c94a31dfb8233ab90b9baf41a2ed2da68 ]

The stats variable nr_unused_locks is incremented every time a new lock
class is register and decremented when the lock is first used in
__lock_acquire(). And after all, it is shown and checked in lockdep_stats.

However, under configurations that either CONFIG_TRACE_IRQFLAGS or
CONFIG_PROVE_LOCKING is not defined:

The commit:

  091806515124b20 ("locking/lockdep: Consolidate lock usage bit initialization")

missed marking the LOCK_USED flag at IRQ usage initialization because
as mark_usage() is not called. And the commit:

  886532aee3cd42d ("locking/lockdep: Move mark_lock() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING")

further made mark_lock() not defined such that the LOCK_USED cannot be
marked at all when the lock is first acquired.

As a result, we fix this by not showing and checking the stats under such
configurations for lockdep_stats.

Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Yuyang Du <duyuyang@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: arnd@arndb.de
Cc: frederic@kernel.org
Link: https://lkml.kernel.org/r/20190709101522.9117-1-duyuyang@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:34:59 +02:00
Imre Deak
aa147b3bcd locking/lockdep: Fix merging of hlocks with non-zero references
[ Upstream commit d9349850e188b8b59e5322fda17ff389a1c0cd7d ]

The sequence

	static DEFINE_WW_CLASS(test_ww_class);

	struct ww_acquire_ctx ww_ctx;
	struct ww_mutex ww_lock_a;
	struct ww_mutex ww_lock_b;
	struct ww_mutex ww_lock_c;
	struct mutex lock_c;

	ww_acquire_init(&ww_ctx, &test_ww_class);

	ww_mutex_init(&ww_lock_a, &test_ww_class);
	ww_mutex_init(&ww_lock_b, &test_ww_class);
	ww_mutex_init(&ww_lock_c, &test_ww_class);

	mutex_init(&lock_c);

	ww_mutex_lock(&ww_lock_a, &ww_ctx);

	mutex_lock(&lock_c);

	ww_mutex_lock(&ww_lock_b, &ww_ctx);
	ww_mutex_lock(&ww_lock_c, &ww_ctx);

	mutex_unlock(&lock_c);	(*)

	ww_mutex_unlock(&ww_lock_c);
	ww_mutex_unlock(&ww_lock_b);
	ww_mutex_unlock(&ww_lock_a);

	ww_acquire_fini(&ww_ctx); (**)

will trigger the following error in __lock_release() when calling
mutex_release() at **:

	DEBUG_LOCKS_WARN_ON(depth <= 0)

The problem is that the hlock merging happening at * updates the
references for test_ww_class incorrectly to 3 whereas it should've
updated it to 4 (representing all the instances for ww_ctx and
ww_lock_[abc]).

Fix this by updating the references during merging correctly taking into
account that we can have non-zero references (both for the hlock that we
merge into another hlock or for the hlock we are merging into).

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/20190524201509.9199-2-imre.deak@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-04 09:34:44 +02:00
Greg Kroah-Hartman
505ad68286 Merge 4.4.179 into android-4.4-p
Changes in 4.4.179
	arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals
	arm64: debug: Ensure debug handlers check triggering exception level
	ext4: cleanup bh release code in ext4_ind_remove_space()
	lib/int_sqrt: optimize initial value compute
	tty/serial: atmel: Add is_half_duplex helper
	mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT is specified
	i2c: core-smbus: prevent stack corruption on read I2C_BLOCK_DATA
	Bluetooth: Fix decrementing reference count twice in releasing socket
	tty/serial: atmel: RS485 HD w/DMA: enable RX after TX is stopped
	CIFS: fix POSIX lock leak and invalid ptr deref
	h8300: use cc-cross-prefix instead of hardcoding h8300-unknown-linux-
	tracing: kdb: Fix ftdump to not sleep
	gpio: gpio-omap: fix level interrupt idling
	sysctl: handle overflow for file-max
	enic: fix build warning without CONFIG_CPUMASK_OFFSTACK
	mm/cma.c: cma_declare_contiguous: correct err handling
	mm/page_ext.c: fix an imbalance with kmemleak
	mm/vmalloc.c: fix kernel BUG at mm/vmalloc.c:512!
	mm/slab.c: kmemleak no scan alien caches
	ocfs2: fix a panic problem caused by o2cb_ctl
	f2fs: do not use mutex lock in atomic context
	fs/file.c: initialize init_files.resize_wait
	cifs: use correct format characters
	dm thin: add sanity checks to thin-pool and external snapshot creation
	cifs: Fix NULL pointer dereference of devname
	fs: fix guard_bio_eod to check for real EOD errors
	tools lib traceevent: Fix buffer overflow in arg_eval
	usb: chipidea: Grab the (legacy) USB PHY by phandle first
	scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c
	coresight: etm4x: Add support to enable ETMv4.2
	ARM: 8840/1: use a raw_spinlock_t in unwind
	mmc: omap: fix the maximum timeout setting
	e1000e: Fix -Wformat-truncation warnings
	IB/mlx4: Increase the timeout for CM cache
	scsi: megaraid_sas: return error when create DMA pool failed
	perf test: Fix failure of 'evsel-tp-sched' test on s390
	SoC: imx-sgtl5000: add missing put_device()
	media: sh_veu: Correct return type for mem2mem buffer helpers
	media: s5p-jpeg: Correct return type for mem2mem buffer helpers
	media: s5p-g2d: Correct return type for mem2mem buffer helpers
	media: mx2_emmaprp: Correct return type for mem2mem buffer helpers
	leds: lp55xx: fix null deref on firmware load failure
	kprobes: Prohibit probing on bsearch()
	ARM: 8833/1: Ensure that NEON code always compiles with Clang
	ALSA: PCM: check if ops are defined before suspending PCM
	bcache: fix input overflow to cache set sysfs file io_error_halflife
	bcache: fix input overflow to sequential_cutoff
	bcache: improve sysfs_strtoul_clamp()
	fbdev: fbmem: fix memory access if logo is bigger than the screen
	cdrom: Fix race condition in cdrom_sysctl_register
	ASoC: fsl-asoc-card: fix object reference leaks in fsl_asoc_card_probe
	soc: qcom: gsbi: Fix error handling in gsbi_probe()
	mt7601u: bump supported EEPROM version
	ARM: avoid Cortex-A9 livelock on tight dmb loops
	tty: increase the default flip buffer limit to 2*640K
	media: mt9m111: set initial frame size other than 0x0
	hwrng: virtio - Avoid repeated init of completion
	soc/tegra: fuse: Fix illegal free of IO base address
	hpet: Fix missing '=' character in the __setup() code of hpet_mmap_enable
	dmaengine: imx-dma: fix warning comparison of distinct pointer types
	netfilter: physdev: relax br_netfilter dependency
	media: s5p-jpeg: Check for fmt_ver_flag when doing fmt enumeration
	regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting
	wlcore: Fix memory leak in case wl12xx_fetch_firmware failure
	x86/build: Mark per-CPU symbols as absolute explicitly for LLD
	dmaengine: tegra: avoid overflow of byte tracking
	drm/dp/mst: Configure no_stop_bit correctly for remote i2c xfers
	binfmt_elf: switch to new creds when switching to new mm
	kbuild: clang: choose GCC_TOOLCHAIN_DIR not on LD
	x86/build: Specify elf_i386 linker emulation explicitly for i386 objects
	x86: vdso: Use $LD instead of $CC to link
	x86/vdso: Drop implicit common-page-size linker flag
	lib/string.c: implement a basic bcmp
	tty: mark Siemens R3964 line discipline as BROKEN
	tty: ldisc: add sysctl to prevent autoloading of ldiscs
	ipv6: Fix dangling pointer when ipv6 fragment
	ipv6: sit: reset ip header pointer in ipip6_rcv
	net: rds: force to destroy connection if t_sock is NULL in rds_tcp_kill_sock().
	openvswitch: fix flow actions reallocation
	qmi_wwan: add Olicard 600
	sctp: initialize _pad of sockaddr_in before copying to user memory
	tcp: Ensure DCTCP reacts to losses
	netns: provide pure entropy for net_hash_mix()
	net: ethtool: not call vzalloc for zero sized memory request
	ip6_tunnel: Match to ARPHRD_TUNNEL6 for dev type
	ALSA: seq: Fix OOB-reads from strlcpy
	include/linux/bitrev.h: fix constant bitrev
	ASoC: fsl_esai: fix channel swap issue when stream starts
	block: do not leak memory in bio_copy_user_iov()
	genirq: Respect IRQCHIP_SKIP_SET_WAKE in irq_chip_set_wake_parent()
	ARM: dts: at91: Fix typo in ISC_D0 on PC9
	arm64: futex: Fix FUTEX_WAKE_OP atomic ops with non-zero result value
	xen: Prevent buffer overflow in privcmd ioctl
	sched/fair: Do not re-read ->h_load_next during hierarchical load calculation
	xtensa: fix return_address
	PCI: Add function 1 DMA alias quirk for Marvell 9170 SATA controller
	perf/core: Restore mmap record type correctly
	ext4: add missing brelse() in add_new_gdb_meta_bg()
	ext4: report real fs size after failed resize
	ALSA: echoaudio: add a check for ioremap_nocache
	ALSA: sb8: add a check for request_region
	IB/mlx4: Fix race condition between catas error reset and aliasguid flows
	mmc: davinci: remove extraneous __init annotation
	ALSA: opl3: fix mismatch between snd_opl3_drum_switch definition and declaration
	thermal/int340x_thermal: Add additional UUIDs
	thermal/int340x_thermal: fix mode setting
	tools/power turbostat: return the exit status of a command
	perf top: Fix error handling in cmd_top()
	perf evsel: Free evsel->counts in perf_evsel__exit()
	perf tests: Fix a memory leak of cpu_map object in the openat_syscall_event_on_all_cpus test
	perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test()
	x86/hpet: Prevent potential NULL pointer dereference
	x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors
	iommu/vt-d: Check capability before disabling protected memory
	x86/hw_breakpoints: Make default case in hw_breakpoint_arch_parse() return an error
	fix incorrect error code mapping for OBJECTID_NOT_FOUND
	ext4: prohibit fstrim in norecovery mode
	rsi: improve kernel thread handling to fix kernel panic
	9p: do not trust pdu content for stat item size
	9p locks: add mount option for lock retry interval
	f2fs: fix to do sanity check with current segment number
	serial: uartps: console_setup() can't be placed to init section
	ARM: samsung: Limit SAMSUNG_PM_CHECK config option to non-Exynos platforms
	ACPI / SBS: Fix GPE storm on recent MacBookPro's
	cifs: fallback to older infolevels on findfirst queryinfo retry
	crypto: sha256/arm - fix crash bug in Thumb2 build
	crypto: sha512/arm - fix crash bug in Thumb2 build
	iommu/dmar: Fix buffer overflow during PCI bus notification
	ARM: 8839/1: kprobe: make patch_lock a raw_spinlock_t
	appletalk: Fix use-after-free in atalk_proc_exit
	lib/div64.c: off by one in shift
	include/linux/swap.h: use offsetof() instead of custom __swapoffset macro
	tpm/tpm_crb: Avoid unaligned reads in crb_recv()
	ovl: fix uid/gid when creating over whiteout
	appletalk: Fix compile regression
	bonding: fix event handling for stacked bonds
	net: atm: Fix potential Spectre v1 vulnerabilities
	net: bridge: multicast: use rcu to access port list from br_multicast_start_querier
	net: fou: do not use guehdr after iptunnel_pull_offloads in gue_udp_recv
	tcp: tcp_grow_window() needs to respect tcp_space()
	ipv4: recompile ip options in ipv4_link_failure
	ipv4: ensure rcu_read_lock() in ipv4_link_failure()
	crypto: crypto4xx - properly set IV after de- and encrypt
	modpost: file2alias: go back to simple devtable lookup
	modpost: file2alias: check prototype of handler
	tpm/tpm_i2c_atmel: Return -E2BIG when the transfer is incomplete
	KVM: x86: Don't clear EFER during SMM transitions for 32-bit vCPU
	iio/gyro/bmg160: Use millidegrees for temperature scale
	iio: ad_sigma_delta: select channel when reading register
	iio: adc: at91: disable adc channel interrupt in timeout case
	io: accel: kxcjk1013: restore the range after resume.
	staging: comedi: vmk80xx: Fix use of uninitialized semaphore
	staging: comedi: vmk80xx: Fix possible double-free of ->usb_rx_buf
	staging: comedi: ni_usb6501: Fix use of uninitialized mutex
	staging: comedi: ni_usb6501: Fix possible double-free of ->usb_rx_buf
	ALSA: core: Fix card races between register and disconnect
	crypto: x86/poly1305 - fix overflow during partial reduction
	arm64: futex: Restore oldval initialization to work around buggy compilers
	x86/kprobes: Verify stack frame on kretprobe
	kprobes: Mark ftrace mcount handler functions nokprobe
	kprobes: Fix error check when reusing optimized probes
	mac80211: do not call driver wake_tx_queue op during reconfig
	Revert "kbuild: use -Oz instead of -Os when using clang"
	sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup
	device_cgroup: fix RCU imbalance in error case
	mm/vmstat.c: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n
	ALSA: info: Fix racy addition/deletion of nodes
	Revert "locking/lockdep: Add debug_locks check in __lock_downgrade()"
	kernel/sysctl.c: fix out-of-bounds access when setting file-max
	Linux 4.4.179

Change-Id: Ia88dbd6c37250a682098a4a8540672869c6adf42
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-04-30 13:25:38 +02:00
Nathan Chancellor
79a097e001 Merge 4.4.179 into android-msm-wahoo-4.4
Changes in 4.4.179: (170 commits)
        arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals
        arm64: debug: Ensure debug handlers check triggering exception level
        ext4: cleanup bh release code in ext4_ind_remove_space()
        lib/int_sqrt: optimize initial value compute
        tty/serial: atmel: Add is_half_duplex helper
        mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT is specified
        i2c: core-smbus: prevent stack corruption on read I2C_BLOCK_DATA
        Bluetooth: Fix decrementing reference count twice in releasing socket
        tty/serial: atmel: RS485 HD w/DMA: enable RX after TX is stopped
        CIFS: fix POSIX lock leak and invalid ptr deref
        h8300: use cc-cross-prefix instead of hardcoding h8300-unknown-linux-
        tracing: kdb: Fix ftdump to not sleep
        gpio: gpio-omap: fix level interrupt idling
        sysctl: handle overflow for file-max
        enic: fix build warning without CONFIG_CPUMASK_OFFSTACK
        mm/cma.c: cma_declare_contiguous: correct err handling
        mm/page_ext.c: fix an imbalance with kmemleak
        mm/vmalloc.c: fix kernel BUG at mm/vmalloc.c:512!
        mm/slab.c: kmemleak no scan alien caches
        ocfs2: fix a panic problem caused by o2cb_ctl
        f2fs: do not use mutex lock in atomic context
        fs/file.c: initialize init_files.resize_wait
        cifs: use correct format characters
        dm thin: add sanity checks to thin-pool and external snapshot creation
        cifs: Fix NULL pointer dereference of devname
        fs: fix guard_bio_eod to check for real EOD errors
        tools lib traceevent: Fix buffer overflow in arg_eval
        usb: chipidea: Grab the (legacy) USB PHY by phandle first
        scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c
        coresight: etm4x: Add support to enable ETMv4.2
        ARM: 8840/1: use a raw_spinlock_t in unwind
        mmc: omap: fix the maximum timeout setting
        e1000e: Fix -Wformat-truncation warnings
        IB/mlx4: Increase the timeout for CM cache
        scsi: megaraid_sas: return error when create DMA pool failed
        perf test: Fix failure of 'evsel-tp-sched' test on s390
        SoC: imx-sgtl5000: add missing put_device()
        media: sh_veu: Correct return type for mem2mem buffer helpers
        media: s5p-jpeg: Correct return type for mem2mem buffer helpers
        media: s5p-g2d: Correct return type for mem2mem buffer helpers
        media: mx2_emmaprp: Correct return type for mem2mem buffer helpers
        leds: lp55xx: fix null deref on firmware load failure
        kprobes: Prohibit probing on bsearch()
        ARM: 8833/1: Ensure that NEON code always compiles with Clang
        ALSA: PCM: check if ops are defined before suspending PCM
        bcache: fix input overflow to cache set sysfs file io_error_halflife
        bcache: fix input overflow to sequential_cutoff
        bcache: improve sysfs_strtoul_clamp()
        fbdev: fbmem: fix memory access if logo is bigger than the screen
        cdrom: Fix race condition in cdrom_sysctl_register
        ASoC: fsl-asoc-card: fix object reference leaks in fsl_asoc_card_probe
        soc: qcom: gsbi: Fix error handling in gsbi_probe()
        mt7601u: bump supported EEPROM version
        ARM: avoid Cortex-A9 livelock on tight dmb loops
        tty: increase the default flip buffer limit to 2*640K
        media: mt9m111: set initial frame size other than 0x0
        hwrng: virtio - Avoid repeated init of completion
        soc/tegra: fuse: Fix illegal free of IO base address
        hpet: Fix missing '=' character in the __setup() code of hpet_mmap_enable
        dmaengine: imx-dma: fix warning comparison of distinct pointer types
        netfilter: physdev: relax br_netfilter dependency
        media: s5p-jpeg: Check for fmt_ver_flag when doing fmt enumeration
        regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting
        wlcore: Fix memory leak in case wl12xx_fetch_firmware failure
        x86/build: Mark per-CPU symbols as absolute explicitly for LLD
        dmaengine: tegra: avoid overflow of byte tracking
        drm/dp/mst: Configure no_stop_bit correctly for remote i2c xfers
        binfmt_elf: switch to new creds when switching to new mm
        kbuild: clang: choose GCC_TOOLCHAIN_DIR not on LD
        x86/build: Specify elf_i386 linker emulation explicitly for i386 objects
        x86: vdso: Use $LD instead of $CC to link
        x86/vdso: Drop implicit common-page-size linker flag
        lib/string.c: implement a basic bcmp
        tty: mark Siemens R3964 line discipline as BROKEN
        tty: ldisc: add sysctl to prevent autoloading of ldiscs
        ipv6: Fix dangling pointer when ipv6 fragment
        ipv6: sit: reset ip header pointer in ipip6_rcv
        net: rds: force to destroy connection if t_sock is NULL in rds_tcp_kill_sock().
        openvswitch: fix flow actions reallocation
        qmi_wwan: add Olicard 600
        sctp: initialize _pad of sockaddr_in before copying to user memory
        tcp: Ensure DCTCP reacts to losses
        netns: provide pure entropy for net_hash_mix()
        net: ethtool: not call vzalloc for zero sized memory request
        ip6_tunnel: Match to ARPHRD_TUNNEL6 for dev type
        ALSA: seq: Fix OOB-reads from strlcpy
        include/linux/bitrev.h: fix constant bitrev
        ASoC: fsl_esai: fix channel swap issue when stream starts
        block: do not leak memory in bio_copy_user_iov()
        genirq: Respect IRQCHIP_SKIP_SET_WAKE in irq_chip_set_wake_parent()
        ARM: dts: at91: Fix typo in ISC_D0 on PC9
        arm64: futex: Fix FUTEX_WAKE_OP atomic ops with non-zero result value
        xen: Prevent buffer overflow in privcmd ioctl
        sched/fair: Do not re-read ->h_load_next during hierarchical load calculation
        xtensa: fix return_address
        PCI: Add function 1 DMA alias quirk for Marvell 9170 SATA controller
        perf/core: Restore mmap record type correctly
        ext4: add missing brelse() in add_new_gdb_meta_bg()
        ext4: report real fs size after failed resize
        ALSA: echoaudio: add a check for ioremap_nocache
        ALSA: sb8: add a check for request_region
        IB/mlx4: Fix race condition between catas error reset and aliasguid flows
        mmc: davinci: remove extraneous __init annotation
        ALSA: opl3: fix mismatch between snd_opl3_drum_switch definition and declaration
        thermal/int340x_thermal: Add additional UUIDs
        thermal/int340x_thermal: fix mode setting
        tools/power turbostat: return the exit status of a command
        perf top: Fix error handling in cmd_top()
        perf evsel: Free evsel->counts in perf_evsel__exit()
        perf tests: Fix a memory leak of cpu_map object in the openat_syscall_event_on_all_cpus test
        perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test()
        x86/hpet: Prevent potential NULL pointer dereference
        x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors
        iommu/vt-d: Check capability before disabling protected memory
        x86/hw_breakpoints: Make default case in hw_breakpoint_arch_parse() return an error
        fix incorrect error code mapping for OBJECTID_NOT_FOUND
        ext4: prohibit fstrim in norecovery mode
        rsi: improve kernel thread handling to fix kernel panic
        9p: do not trust pdu content for stat item size
        9p locks: add mount option for lock retry interval
        f2fs: fix to do sanity check with current segment number
        serial: uartps: console_setup() can't be placed to init section
        ARM: samsung: Limit SAMSUNG_PM_CHECK config option to non-Exynos platforms
        ACPI / SBS: Fix GPE storm on recent MacBookPro's
        cifs: fallback to older infolevels on findfirst queryinfo retry
        crypto: sha256/arm - fix crash bug in Thumb2 build
        crypto: sha512/arm - fix crash bug in Thumb2 build
        iommu/dmar: Fix buffer overflow during PCI bus notification
        ARM: 8839/1: kprobe: make patch_lock a raw_spinlock_t
        appletalk: Fix use-after-free in atalk_proc_exit
        lib/div64.c: off by one in shift
        include/linux/swap.h: use offsetof() instead of custom __swapoffset macro
        tpm/tpm_crb: Avoid unaligned reads in crb_recv()
        ovl: fix uid/gid when creating over whiteout
        appletalk: Fix compile regression
        bonding: fix event handling for stacked bonds
        net: atm: Fix potential Spectre v1 vulnerabilities
        net: bridge: multicast: use rcu to access port list from br_multicast_start_querier
        net: fou: do not use guehdr after iptunnel_pull_offloads in gue_udp_recv
        tcp: tcp_grow_window() needs to respect tcp_space()
        ipv4: recompile ip options in ipv4_link_failure
        ipv4: ensure rcu_read_lock() in ipv4_link_failure()
        crypto: crypto4xx - properly set IV after de- and encrypt
        modpost: file2alias: go back to simple devtable lookup
        modpost: file2alias: check prototype of handler
        tpm/tpm_i2c_atmel: Return -E2BIG when the transfer is incomplete
        KVM: x86: Don't clear EFER during SMM transitions for 32-bit vCPU
        iio/gyro/bmg160: Use millidegrees for temperature scale
        iio: ad_sigma_delta: select channel when reading register
        iio: adc: at91: disable adc channel interrupt in timeout case
        io: accel: kxcjk1013: restore the range after resume.
        staging: comedi: vmk80xx: Fix use of uninitialized semaphore
        staging: comedi: vmk80xx: Fix possible double-free of ->usb_rx_buf
        staging: comedi: ni_usb6501: Fix use of uninitialized mutex
        staging: comedi: ni_usb6501: Fix possible double-free of ->usb_rx_buf
        ALSA: core: Fix card races between register and disconnect
        crypto: x86/poly1305 - fix overflow during partial reduction
        arm64: futex: Restore oldval initialization to work around buggy compilers
        x86/kprobes: Verify stack frame on kretprobe
        kprobes: Mark ftrace mcount handler functions nokprobe
        kprobes: Fix error check when reusing optimized probes
        mac80211: do not call driver wake_tx_queue op during reconfig
        Revert "kbuild: use -Oz instead of -Os when using clang"
        sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup
        device_cgroup: fix RCU imbalance in error case
        mm/vmstat.c: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n
        ALSA: info: Fix racy addition/deletion of nodes
        Revert "locking/lockdep: Add debug_locks check in __lock_downgrade()"
        kernel/sysctl.c: fix out-of-bounds access when setting file-max
        Linux 4.4.179

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	Makefile
	fs/ext4/ioctl.c
2019-04-27 09:07:11 -07:00
Greg Kroah-Hartman
70a0882cd6 Revert "locking/lockdep: Add debug_locks check in __lock_downgrade()"
This reverts commit 4aada79c67 which was
commit 71492580571467fb7177aade19c18ce7486267f5 upstream.

Tetsuo rightly points out that the backport here is incorrect, as it
touches the __lock_set_class function instead of the intended
__lock_downgrade function.

Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Waiman Long <longman@redhat.com>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-27 09:34:02 +02:00
Greg Kroah-Hartman
254f2a04a8 Merge 4.4.178 into android-4.4-p
Changes in 4.4.178
	mmc: pxamci: fix enum type confusion
	drm/vmwgfx: Don't double-free the mode stored in par->set_mode
	udf: Fix crash on IO error during truncate
	mips: loongson64: lemote-2f: Add IRQF_NO_SUSPEND to "cascade" irqaction.
	MIPS: Fix kernel crash for R6 in jump label branch function
	futex: Ensure that futex address is aligned in handle_futex_death()
	ext4: fix NULL pointer dereference while journal is aborted
	ext4: fix data corruption caused by unaligned direct AIO
	ext4: brelse all indirect buffer in ext4_ind_remove_space()
	mmc: tmio_mmc_core: don't claim spurious interrupts
	media: v4l2-ctrls.c/uvc: zero v4l2_event
	locking/lockdep: Add debug_locks check in __lock_downgrade()
	ALSA: hda - Record the current power state before suspend/resume calls
	ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
	mmc: pwrseq_simple: Make reset-gpios optional to match doc
	mmc: debugfs: Add a restriction to mmc debugfs clock setting
	mmc: make MAN_BKOPS_EN message a debug
	mmc: sanitize 'bus width' in debug output
	mmc: core: shut up "voltage-ranges unspecified" pr_info()
	usb: dwc3: gadget: Fix suspend/resume during device mode
	arm64: mm: Add trace_irqflags annotations to do_debug_exception()
	mmc: core: fix using wrong io voltage if mmc_select_hs200 fails
	mm/rmap: replace BUG_ON(anon_vma->degree) with VM_WARN_ON
	extcon: usb-gpio: Don't miss event during suspend/resume
	kbuild: setlocalversion: print error to STDERR
	usb: gadget: composite: fix dereference after null check coverify warning
	usb: gadget: Add the gserial port checking in gs_start_tx()
	tcp/dccp: drop SYN packets if accept queue is full
	serial: sprd: adjust TIMEOUT to a big value
	Hang/soft lockup in d_invalidate with simultaneous calls
	arm64: traps: disable irq in die()
	usb: renesas_usbhs: gadget: fix unused-but-set-variable warning
	serial: sprd: clear timeout interrupt only rather than all interrupts
	lib/int_sqrt: optimize small argument
	USB: core: only clean up what we allocated
	rtc: Fix overflow when converting time64_t to rtc_time
	ath10k: avoid possible string overflow
	Bluetooth: Check L2CAP option sizes returned from l2cap_get_conf_opt
	Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer
	sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task()
	mmc: block: Allow more than 8 partitions per card
	arm64: fix COMPAT_SHMLBA definition for large pages
	efi: stub: define DISABLE_BRANCH_PROFILING for all architectures
	ARM: 8458/1: bL_switcher: add GIC dependency
	ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor
	android: unconditionally remove callbacks in sync_fence_free()
	vmstat: make vmstat_updater deferrable again and shut down on idle
	hid-sensor-hub.c: fix wrong do_div() usage
	arm64: hide __efistub_ aliases from kallsyms
	perf: Synchronously free aux pages in case of allocation failure
	net: diag: support v4mapped sockets in inet_diag_find_one_icsk()
	Revert "mmc: block: don't use parameter prefix if built as module"
	writeback: initialize inode members that track writeback history
	coresight: fixing lockdep error
	coresight: coresight_unregister() function cleanup
	coresight: release reference taken by 'bus_find_device()'
	coresight: remove csdev's link from topology
	stm class: Fix locking in unbinding policy path
	stm class: Fix link list locking
	stm class: Prevent user-controllable allocations
	stm class: Support devices with multiple instances
	stm class: Fix unlocking braino in the error path
	stm class: Guard output assignment against concurrency
	stm class: Fix unbalanced module/device refcounting
	stm class: Fix a race in unlinking
	coresight: "DEVICE_ATTR_RO" should defined as static.
	coresight: etm4x: Check every parameter used by dma_xx_coherent.
	asm-generic: Fix local variable shadow in __set_fixmap_offset
	staging: ashmem: Avoid deadlock with mmap/shrink
	staging: ashmem: Add missing include
	staging: ion: Set minimum carveout heap allocation order to PAGE_SHIFT
	staging: goldfish: audio: fix compiliation on arm
	ARM: 8510/1: rework ARM_CPU_SUSPEND dependencies
	arm64/kernel: fix incorrect EL0 check in inv_entry macro
	mac80211: fix "warning: ‘target_metric’ may be used uninitialized"
	perf/ring_buffer: Refuse to begin AUX transaction after rb->aux_mmap_count drops
	arm64: kernel: Include _AC definition in page.h
	PM / Hibernate: Call flush_icache_range() on pages restored in-place
	stm class: Do not leak the chrdev in error path
	stm class: Fix stm device initialization order
	ipv6: fix endianness error in icmpv6_err
	usb: gadget: configfs: add mutex lock before unregister gadget
	usb: gadget: rndis: free response queue during REMOTE_NDIS_RESET_MSG
	cpu/hotplug: Handle unbalanced hotplug enable/disable
	video: fbdev: Set pixclock = 0 in goldfishfb
	arm64: kconfig: drop CONFIG_RTC_LIB dependency
	mmc: mmc: fix switch timeout issue caused by jiffies precision
	cfg80211: size various nl80211 messages correctly
	stmmac: copy unicast mac address to MAC registers
	dccp: do not use ipv6 header for ipv4 flow
	mISDN: hfcpci: Test both vendor & device ID for Digium HFC4S
	net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec
	net: rose: fix a possible stack overflow
	Add hlist_add_tail_rcu() (Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
	packets: Always register packet sk in the same order
	tcp: do not use ipv6 header for ipv4 flow
	vxlan: Don't call gro_cells_destroy() before device is unregistered
	sctp: get sctphdr by offset in sctp_compute_cksum
	mac8390: Fix mmio access size probe
	btrfs: remove WARN_ON in log_dir_items
	btrfs: raid56: properly unmap parity page in finish_parity_scrub()
	ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time
	ALSA: compress: add support for 32bit calls in a 64bit kernel
	ALSA: rawmidi: Fix potential Spectre v1 vulnerability
	ALSA: seq: oss: Fix Spectre v1 vulnerability
	ALSA: pcm: Fix possible OOB access in PCM oss plugins
	ALSA: pcm: Don't suspend stream in unrecoverable PCM state
	scsi: sd: Fix a race between closing an sd device and sd I/O
	scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host
	scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP devices
	tty: atmel_serial: fix a potential NULL pointer dereference
	staging: vt6655: Remove vif check from vnt_interrupt
	staging: vt6655: Fix interrupt race condition on device start up.
	serial: max310x: Fix to avoid potential NULL pointer dereference
	serial: sh-sci: Fix setting SCSCR_TIE while transferring data
	USB: serial: cp210x: add new device id
	USB: serial: ftdi_sio: add additional NovaTech products
	USB: serial: mos7720: fix mos_parport refcount imbalance on error path
	USB: serial: option: set driver_info for SIM5218 and compatibles
	USB: serial: option: add Olicard 600
	Disable kgdboc failed by echo space to /sys/module/kgdboc/parameters/kgdboc
	fs/proc/proc_sysctl.c: fix NULL pointer dereference in put_links
	gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input
	perf intel-pt: Fix TSC slip
	x86/smp: Enforce CONFIG_HOTPLUG_CPU when SMP=y
	KVM: Reject device ioctls from processes other than the VM's creator
	xhci: Fix port resume done detection for SS ports with LPM enabled
	Revert "USB: core: only clean up what we allocated"
	arm64: support keyctl() system call in 32-bit mode
	coresight: removing bind/unbind options from sysfs
	stm class: Hide STM-specific options if STM is disabled
	Linux 4.4.178

Change-Id: Iac01be124213731798a36b20d80ea3a8e911d025
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-04-03 10:21:44 +02:00
Nathan Chancellor
a53398dbf4 Merge 4.4.178 into android-msm-wahoo-4.4
Changes in 4.4.178: (132 commits)
        mmc: pxamci: fix enum type confusion
        drm/vmwgfx: Don't double-free the mode stored in par->set_mode
        udf: Fix crash on IO error during truncate
        mips: loongson64: lemote-2f: Add IRQF_NO_SUSPEND to "cascade" irqaction.
        MIPS: Fix kernel crash for R6 in jump label branch function
        futex: Ensure that futex address is aligned in handle_futex_death()
        ext4: fix NULL pointer dereference while journal is aborted
        ext4: fix data corruption caused by unaligned direct AIO
        ext4: brelse all indirect buffer in ext4_ind_remove_space()
        mmc: tmio_mmc_core: don't claim spurious interrupts
        media: v4l2-ctrls.c/uvc: zero v4l2_event
        locking/lockdep: Add debug_locks check in __lock_downgrade()
        ALSA: hda - Record the current power state before suspend/resume calls
        ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
        mmc: pwrseq_simple: Make reset-gpios optional to match doc
        mmc: debugfs: Add a restriction to mmc debugfs clock setting
        mmc: make MAN_BKOPS_EN message a debug
        mmc: sanitize 'bus width' in debug output
        mmc: core: shut up "voltage-ranges unspecified" pr_info()
        usb: dwc3: gadget: Fix suspend/resume during device mode
        arm64: mm: Add trace_irqflags annotations to do_debug_exception()
        mmc: core: fix using wrong io voltage if mmc_select_hs200 fails
        mm/rmap: replace BUG_ON(anon_vma->degree) with VM_WARN_ON
        extcon: usb-gpio: Don't miss event during suspend/resume
        kbuild: setlocalversion: print error to STDERR
        usb: gadget: composite: fix dereference after null check coverify warning
        usb: gadget: Add the gserial port checking in gs_start_tx()
        tcp/dccp: drop SYN packets if accept queue is full
        serial: sprd: adjust TIMEOUT to a big value
        Hang/soft lockup in d_invalidate with simultaneous calls
        arm64: traps: disable irq in die()
        usb: renesas_usbhs: gadget: fix unused-but-set-variable warning
        serial: sprd: clear timeout interrupt only rather than all interrupts
        lib/int_sqrt: optimize small argument
        USB: core: only clean up what we allocated
        rtc: Fix overflow when converting time64_t to rtc_time
        ath10k: avoid possible string overflow
        Bluetooth: Check L2CAP option sizes returned from l2cap_get_conf_opt
        Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer
        sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task()
        mmc: block: Allow more than 8 partitions per card
        arm64: fix COMPAT_SHMLBA definition for large pages
        efi: stub: define DISABLE_BRANCH_PROFILING for all architectures
        ARM: 8458/1: bL_switcher: add GIC dependency
        ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor
        android: unconditionally remove callbacks in sync_fence_free()
        vmstat: make vmstat_updater deferrable again and shut down on idle
        hid-sensor-hub.c: fix wrong do_div() usage
        arm64: hide __efistub_ aliases from kallsyms
        perf: Synchronously free aux pages in case of allocation failure
        net: diag: support v4mapped sockets in inet_diag_find_one_icsk()
        Revert "mmc: block: don't use parameter prefix if built as module"
        writeback: initialize inode members that track writeback history
        coresight: fixing lockdep error
        coresight: coresight_unregister() function cleanup
        coresight: release reference taken by 'bus_find_device()'
        coresight: remove csdev's link from topology
        stm class: Fix locking in unbinding policy path
        stm class: Fix link list locking
        stm class: Prevent user-controllable allocations
        stm class: Support devices with multiple instances
        stm class: Fix unlocking braino in the error path
        stm class: Guard output assignment against concurrency
        stm class: Fix unbalanced module/device refcounting
        stm class: Fix a race in unlinking
        coresight: "DEVICE_ATTR_RO" should defined as static.
        coresight: etm4x: Check every parameter used by dma_xx_coherent.
        asm-generic: Fix local variable shadow in __set_fixmap_offset
        staging: ashmem: Avoid deadlock with mmap/shrink
        staging: ashmem: Add missing include
        staging: ion: Set minimum carveout heap allocation order to PAGE_SHIFT
        staging: goldfish: audio: fix compiliation on arm
        ARM: 8510/1: rework ARM_CPU_SUSPEND dependencies
        arm64/kernel: fix incorrect EL0 check in inv_entry macro
        mac80211: fix "warning: ‘target_metric’ may be used uninitialized"
        perf/ring_buffer: Refuse to begin AUX transaction after rb->aux_mmap_count drops
        arm64: kernel: Include _AC definition in page.h
        PM / Hibernate: Call flush_icache_range() on pages restored in-place
        stm class: Do not leak the chrdev in error path
        stm class: Fix stm device initialization order
        ipv6: fix endianness error in icmpv6_err
        usb: gadget: configfs: add mutex lock before unregister gadget
        usb: gadget: rndis: free response queue during REMOTE_NDIS_RESET_MSG
        cpu/hotplug: Handle unbalanced hotplug enable/disable
        video: fbdev: Set pixclock = 0 in goldfishfb
        arm64: kconfig: drop CONFIG_RTC_LIB dependency
        mmc: mmc: fix switch timeout issue caused by jiffies precision
        cfg80211: size various nl80211 messages correctly
        stmmac: copy unicast mac address to MAC registers
        dccp: do not use ipv6 header for ipv4 flow
        mISDN: hfcpci: Test both vendor & device ID for Digium HFC4S
        net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec
        net: rose: fix a possible stack overflow
        Add hlist_add_tail_rcu() (Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
        packets: Always register packet sk in the same order
        tcp: do not use ipv6 header for ipv4 flow
        vxlan: Don't call gro_cells_destroy() before device is unregistered
        sctp: get sctphdr by offset in sctp_compute_cksum
        mac8390: Fix mmio access size probe
        btrfs: remove WARN_ON in log_dir_items
        btrfs: raid56: properly unmap parity page in finish_parity_scrub()
        ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time
        ALSA: compress: add support for 32bit calls in a 64bit kernel
        ALSA: rawmidi: Fix potential Spectre v1 vulnerability
        ALSA: seq: oss: Fix Spectre v1 vulnerability
        ALSA: pcm: Fix possible OOB access in PCM oss plugins
        ALSA: pcm: Don't suspend stream in unrecoverable PCM state
        scsi: sd: Fix a race between closing an sd device and sd I/O
        scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host
        scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP devices
        tty: atmel_serial: fix a potential NULL pointer dereference
        staging: vt6655: Remove vif check from vnt_interrupt
        staging: vt6655: Fix interrupt race condition on device start up.
        serial: max310x: Fix to avoid potential NULL pointer dereference
        serial: sh-sci: Fix setting SCSCR_TIE while transferring data
        USB: serial: cp210x: add new device id
        USB: serial: ftdi_sio: add additional NovaTech products
        USB: serial: mos7720: fix mos_parport refcount imbalance on error path
        USB: serial: option: set driver_info for SIM5218 and compatibles
        USB: serial: option: add Olicard 600
        Disable kgdboc failed by echo space to /sys/module/kgdboc/parameters/kgdboc
        fs/proc/proc_sysctl.c: fix NULL pointer dereference in put_links
        gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input
        perf intel-pt: Fix TSC slip
        x86/smp: Enforce CONFIG_HOTPLUG_CPU when SMP=y
        KVM: Reject device ioctls from processes other than the VM's creator
        xhci: Fix port resume done detection for SS ports with LPM enabled
        Revert "USB: core: only clean up what we allocated"
        arm64: support keyctl() system call in 32-bit mode
        coresight: removing bind/unbind options from sysfs
        stm class: Hide STM-specific options if STM is disabled
        Linux 4.4.178

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	arch/arm/Kconfig
	arch/arm64/Kconfig
	arch/arm64/kernel/traps.c
	drivers/hwtracing/coresight/coresight-etm4x.c
	drivers/hwtracing/coresight/coresight-tmc.c
	drivers/hwtracing/stm/Kconfig
	drivers/hwtracing/stm/core.c
	drivers/mmc/core/mmc.c
	drivers/usb/gadget/configfs.c
	drivers/usb/gadget/function/rndis.c
	drivers/usb/gadget/function/u_serial.c
	kernel/events/ring_buffer.c
	kernel/sched/fair.c
	sound/core/compress_offload.c
2019-04-02 22:00:46 -07:00
Waiman Long
4aada79c67 locking/lockdep: Add debug_locks check in __lock_downgrade()
commit 71492580571467fb7177aade19c18ce7486267f5 upstream.

Tetsuo Handa had reported he saw an incorrect "downgrading a read lock"
warning right after a previous lockdep warning. It is likely that the
previous warning turned off lock debugging causing the lockdep to have
inconsistency states leading to the lock downgrade warning.

Fix that by add a check for debug_locks at the beginning of
__lock_downgrade().

Debugged-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Reported-by: syzbot+53383ae265fb161ef488@syzkaller.appspotmail.com
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/1547093005-26085-1-git-send-email-longman@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-03 06:23:16 +02:00
Nathan Chancellor
12a1173759 Merge 4.4.177 into android-msm-wahoo-4.4
Changes in 4.4.177: (231 commits)
        ceph: avoid repeatedly adding inode to mdsc->snap_flush_list
        numa: change get_mempolicy() to use nr_node_ids instead of MAX_NUMNODES
        KEYS: allow reaching the keys quotas exactly
        mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd cells
        mfd: twl-core: Fix section annotations on {,un}protect_pm_master
        mfd: db8500-prcmu: Fix some section annotations
        mfd: ab8500-core: Return zero in get_register_interruptible()
        mfd: qcom_rpm: write fw_version to CTRL_REG
        mfd: wm5110: Add missing ASRC rate register
        mfd: mc13xxx: Fix a missing check of a register-read failure
        net: hns: Fix use after free identified by SLUB debug
        MIPS: ath79: Enable OF serial ports in the default config
        scsi: qla4xxx: check return code of qla4xxx_copy_from_fwddb_param
        scsi: isci: initialize shost fully before calling scsi_add_host()
        MIPS: jazz: fix 64bit build
        isdn: i4l: isdn_tty: Fix some concurrency double-free bugs
        atm: he: fix sign-extension overflow on large shift
        leds: lp5523: fix a missing check of return value of lp55xx_read
        isdn: avm: Fix string plus integer warning from Clang
        RDMA/srp: Rework SCSI device reset handling
        KEYS: user: Align the payload buffer
        KEYS: always initialize keyring_index_key::desc_len
        batman-adv: fix uninit-value in batadv_interface_tx()
        net/packet: fix 4gb buffer limit due to overflow check
        team: avoid complex list operations in team_nl_cmd_options_set()
        sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach()
        net/mlx4_en: Force CHECKSUM_NONE for short ethernet frames
        ARCv2: Enable unaligned access in early ASM code
        Revert "bridge: do not add port to router list when receives query with source 0.0.0.0"
        libceph: handle an empty authorize reply
        scsi: libsas: Fix rphy phy_identifier for PHYs with end devices attached
        drm/msm: Unblock writer if reader closes file
        ASoC: Intel: Haswell/Broadwell: fix setting for .dynamic field
        ALSA: compress: prevent potential divide by zero bugs
        thermal: int340x_thermal: Fix a NULL vs IS_ERR() check
        usb: dwc3: gadget: Fix the uninitialized link_state when udc starts
        usb: gadget: Potential NULL dereference on allocation error
        ASoC: dapm: change snprintf to scnprintf for possible overflow
        ASoC: imx-audmux: change snprintf to scnprintf for possible overflow
        ARC: fix __ffs return value to avoid build warnings
        mac80211: fix miscounting of ttl-dropped frames
        serial: fsl_lpuart: fix maximum acceptable baud rate with over-sampling
        scsi: csiostor: fix NULL pointer dereference in csio_vport_set_state()
        net: altera_tse: fix connect_local_phy error path
        ibmveth: Do not process frames after calling napi_reschedule
        mac80211: don't initiate TDLS connection if station is not associated to AP
        cfg80211: extend range deviation for DMG
        KVM: nSVM: clear events pending from svm_complete_interrupts() when exiting to L1
        arm/arm64: KVM: Feed initialized memory to MMIO accesses
        KVM: arm/arm64: Fix MMIO emulation data handling
        powerpc: Always initialize input array when calling epapr_hypercall()
        mmc: spi: Fix card detection during probe
        mm: enforce min addr even if capable() in expand_downwards()
        x86/uaccess: Don't leak the AC flag into __put_user() value evaluation
        USB: serial: option: add Telit ME910 ECM composition
        USB: serial: cp210x: add ID for Ingenico 3070
        USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
        cpufreq: Use struct kobj_attribute instead of struct global_attr
        sockfs: getxattr: Fail with -EOPNOTSUPP for invalid attribute names
        ncpfs: fix build warning of strncpy
        isdn: isdn_tty: fix build warning of strncpy
        staging: lustre: fix buffer overflow of string buffer
        net-sysfs: Fix mem leak in netdev_register_kobject
        sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
        team: Free BPF filter when unregistering netdev
        bnxt_en: Drop oversize TX packets to prevent errors.
        net: nfc: Fix NULL dereference on nfc_llcp_build_tlv fails
        xen-netback: fix occasional leak of grant ref mappings under memory pressure
        net: Add __icmp_send helper.
        net: avoid use IPCB in cipso_v4_error
        net: phy: Micrel KSZ8061: link failure after cable connect
        x86/CPU/AMD: Set the CPB bit unconditionally on F17h
        applicom: Fix potential Spectre v1 vulnerabilities
        MIPS: irq: Allocate accurate order pages for irq stack
        hugetlbfs: fix races and page leaks during migration
        netlabel: fix out-of-bounds memory accesses
        net: dsa: mv88e6xxx: Fix u64 statistics
        ip6mr: Do not call __IP6_INC_STATS() from preemptible context
        media: uvcvideo: Fix 'type' check leading to overflow
        vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel
        perf tools: Handle TOPOLOGY headers with no CPU
        IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM
        ipvs: Fix signed integer overflow when setsockopt timeout
        iommu/amd: Fix IOMMU page flush when detach device from a domain
        xtensa: SMP: fix ccount_timer_shutdown
        xtensa: SMP: fix secondary CPU initialization
        xtensa: smp_lx200_defconfig: fix vectors clash
        xtensa: SMP: mark each possible CPU as present
        xtensa: SMP: limit number of possible CPUs by NR_CPUS
        net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case
        net: hns: Fix wrong read accesses via Clause 45 MDIO protocol
        net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup()
        gpio: vf610: Mask all GPIO interrupts
        nfs: Fix NULL pointer dereference of dev_name
        scsi: libfc: free skb when receiving invalid flogi resp
        platform/x86: Fix unmet dependency warning for SAMSUNG_Q10
        cifs: fix computation for MAX_SMB2_HDR_SIZE
        x86/kexec: Don't setup EFI info if EFI runtime is not enabled
        x86_64: increase stack size for KASAN_EXTRA
        mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone
        mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone
        fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
        autofs: drop dentry reference only when it is never used
        autofs: fix error return in autofs_fill_super()
        ARM: pxa: ssp: unneeded to free devm_ allocated data
        irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable
        dmaengine: at_xdmac: Fix wrongfull report of a channel as in use
        dmaengine: dmatest: Abort test in case of mapping error
        s390/qeth: fix use-after-free in error path
        perf symbols: Filter out hidden symbols from labels
        MIPS: Remove function size check in get_frame_info()
        Input: wacom_serial4 - add support for Wacom ArtPad II tablet
        Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
        iscsi_ibft: Fix missing break in switch statement
        futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock()
        ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
        Revert "x86/platform/UV: Use efi_runtime_lock to serialise BIOS calls"
        ARM: dts: exynos: Do not ignore real-world fuse values for thermal zone 0 on Exynos5420
        udplite: call proper backlog handlers
        netfilter: x_tables: enforce nul-terminated table name from getsockopt GET_ENTRIES
        netfilter: nfnetlink_log: just returns error for unknown command
        netfilter: nfnetlink_acct: validate NFACCT_FILTER parameters
        netfilter: nf_conntrack_tcp: Fix stack out of bounds when parsing TCP options
        KEYS: restrict /proc/keys by credentials at open time
        l2tp: fix infoleak in l2tp_ip6_recvmsg()
        net: hsr: fix memory leak in hsr_dev_finalize()
        net: sit: fix UBSAN Undefined behaviour in check_6rd
        net/x25: fix use-after-free in x25_device_event()
        net/x25: reset state in x25_connect()
        pptp: dst_release sk_dst_cache in pptp_sock_destruct
        ravb: Decrease TxFIFO depth of Q3 and Q2 to one
        route: set the deleted fnhe fnhe_daddr to 0 in ip_del_fnhe to fix a race
        tcp: handle inet_csk_reqsk_queue_add() failures
        net/mlx4_core: Fix reset flow when in command polling mode
        net/mlx4_core: Fix qp mtt size calculation
        net/x25: fix a race in x25_bind()
        mdio_bus: Fix use-after-free on device_register fails
        net: Set rtm_table to RT_TABLE_COMPAT for ipv6 for tables > 255
        missing barriers in some of unix_sock ->addr and ->path accesses
        ipvlan: disallow userns cap_net_admin to change global mode/flags
        vxlan: test dev->flags & IFF_UP before calling gro_cells_receive()
        vxlan: Fix GRO cells race condition between receive and link delete
        net/hsr: fix possible crash in add_timer()
        gro_cells: make sure device is up in gro_cells_receive()
        tcp/dccp: remove reqsk_put() from inet_child_forget()
        ALSA: bebob: use more identical mod_alias for Saffire Pro 10 I/O against Liquid Saffire 56
        fs/9p: use fscache mutex rather than spinlock
        It's wrong to add len to sector_nr in raid10 reshape twice
        media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
        9p: use inode->i_lock to protect i_size_write() under 32-bit
        9p/net: fix memory leak in p9_client_create
        ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
        stm class: Fix an endless loop in channel allocation
        crypto: caam - fixed handling of sg list
        crypto: ahash - fix another early termination in hash walk
        gpu: ipu-v3: Fix i.MX51 CSI control registers offset
        gpu: ipu-v3: Fix CSI offsets for imx53
        s390/dasd: fix using offset into zero size array error
        ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
        Input: matrix_keypad - use flush_delayed_work()
        i2c: cadence: Fix the hold bit setting
        Input: st-keyscan - fix potential zalloc NULL dereference
        ARM: 8824/1: fix a migrating irq bug when hotplug cpu
        assoc_array: Fix shortcut creation
        scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
        net: systemport: Fix reception of BPDUs
        pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
        net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
        ASoC: topology: free created components in tplg load error
        arm64: Relax GIC version check during early boot
        tmpfs: fix link accounting when a tmpfile is linked in
        ARC: uacces: remove lp_start, lp_end from clobber list
        phonet: fix building with clang
        mac80211_hwsim: propagate genlmsg_reply return code
        net: set static variable an initial value in atl2_probe()
        tmpfs: fix uninitialized return value in shmem_link
        stm class: Prevent division by zero
        crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
        CIFS: Fix read after write for files with read caching
        tracing: Do not free iter->trace in fail path of tracing_open_pipe()
        ACPI / device_sysfs: Avoid OF modalias creation for removed device
        regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
        regulator: s2mpa01: Fix step values for some LDOs
        clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
        clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
        s390/virtio: handle find on invalid queue gracefully
        scsi: virtio_scsi: don't send sc payload with tmfs
        scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
        m68k: Add -ffreestanding to CFLAGS
        btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
        Btrfs: fix corruption reading shared and compressed extents after hole punching
        crypto: pcbc - remove bogus memcpy()s with src == dest
        cpufreq: tegra124: add missing of_node_put()
        cpufreq: pxa2xx: remove incorrect __init annotation
        ext4: fix crash during online resizing
        ext2: Fix underflow in ext2_max_size()
        clk: ingenic: Fix round_rate misbehaving with non-integer dividers
        dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
        mm/vmalloc: fix size check for remap_vmalloc_range_partial()
        kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
        intel_th: Don't reference unassigned outputs
        parport_pc: fix find_superio io compare code, should use equal test.
        i2c: tegra: fix maximum transfer size
        perf bench: Copy kernel files needed to build mem{cpy,set} x86_64 benchmarks
        serial: 8250_pci: Fix number of ports for ACCES serial cards
        serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup()
        jbd2: clear dirty flag when revoking a buffer from an older transaction
        jbd2: fix compile warning when using JBUFFER_TRACE
        powerpc/32: Clear on-stack exception marker upon exception return
        powerpc/wii: properly disable use of BATs when requested.
        powerpc/powernv: Make opal log only readable by root
        powerpc/83xx: Also save/restore SPRG4-7 during suspend
        ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
        dm: fix to_sector() for 32bit
        NFS41: pop some layoutget errors to application
        perf intel-pt: Fix CYC timestamp calculation after OVF
        perf auxtrace: Define auxtrace record alignment
        perf intel-pt: Fix overlap calculation for padding
        md: Fix failed allocation of md_register_thread
        NFS: Fix an I/O request leakage in nfs_do_recoalesce
        NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
        nfsd: fix memory corruption caused by readdir
        nfsd: fix wrong check in write_v4_end_grace()
        PM / wakeup: Rework wakeup source timer cancellation
        rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
        media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
        drm/radeon/evergreen_cs: fix missing break in switch statement
        KVM: nVMX: Sign extend displacements of VMX instr's mem operands
        KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
        KVM: X86: Fix residual mmio emulation request to userspace
        Linux 4.4.177

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	arch/arm/kernel/irq.c
	sound/core/compress_offload.c
2019-03-23 08:25:40 -07:00
Greg Kroah-Hartman
349ac1a59c Merge 4.4.177 into android-4.4-p
Changes in 4.4.177
	ceph: avoid repeatedly adding inode to mdsc->snap_flush_list
	numa: change get_mempolicy() to use nr_node_ids instead of MAX_NUMNODES
	KEYS: allow reaching the keys quotas exactly
	mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd cells
	mfd: twl-core: Fix section annotations on {,un}protect_pm_master
	mfd: db8500-prcmu: Fix some section annotations
	mfd: ab8500-core: Return zero in get_register_interruptible()
	mfd: qcom_rpm: write fw_version to CTRL_REG
	mfd: wm5110: Add missing ASRC rate register
	mfd: mc13xxx: Fix a missing check of a register-read failure
	net: hns: Fix use after free identified by SLUB debug
	MIPS: ath79: Enable OF serial ports in the default config
	scsi: qla4xxx: check return code of qla4xxx_copy_from_fwddb_param
	scsi: isci: initialize shost fully before calling scsi_add_host()
	MIPS: jazz: fix 64bit build
	isdn: i4l: isdn_tty: Fix some concurrency double-free bugs
	atm: he: fix sign-extension overflow on large shift
	leds: lp5523: fix a missing check of return value of lp55xx_read
	isdn: avm: Fix string plus integer warning from Clang
	RDMA/srp: Rework SCSI device reset handling
	KEYS: user: Align the payload buffer
	KEYS: always initialize keyring_index_key::desc_len
	batman-adv: fix uninit-value in batadv_interface_tx()
	net/packet: fix 4gb buffer limit due to overflow check
	team: avoid complex list operations in team_nl_cmd_options_set()
	sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach()
	net/mlx4_en: Force CHECKSUM_NONE for short ethernet frames
	ARCv2: Enable unaligned access in early ASM code
	Revert "bridge: do not add port to router list when receives query with source 0.0.0.0"
	libceph: handle an empty authorize reply
	scsi: libsas: Fix rphy phy_identifier for PHYs with end devices attached
	drm/msm: Unblock writer if reader closes file
	ASoC: Intel: Haswell/Broadwell: fix setting for .dynamic field
	ALSA: compress: prevent potential divide by zero bugs
	thermal: int340x_thermal: Fix a NULL vs IS_ERR() check
	usb: dwc3: gadget: Fix the uninitialized link_state when udc starts
	usb: gadget: Potential NULL dereference on allocation error
	ASoC: dapm: change snprintf to scnprintf for possible overflow
	ASoC: imx-audmux: change snprintf to scnprintf for possible overflow
	ARC: fix __ffs return value to avoid build warnings
	mac80211: fix miscounting of ttl-dropped frames
	serial: fsl_lpuart: fix maximum acceptable baud rate with over-sampling
	scsi: csiostor: fix NULL pointer dereference in csio_vport_set_state()
	net: altera_tse: fix connect_local_phy error path
	ibmveth: Do not process frames after calling napi_reschedule
	mac80211: don't initiate TDLS connection if station is not associated to AP
	cfg80211: extend range deviation for DMG
	KVM: nSVM: clear events pending from svm_complete_interrupts() when exiting to L1
	arm/arm64: KVM: Feed initialized memory to MMIO accesses
	KVM: arm/arm64: Fix MMIO emulation data handling
	powerpc: Always initialize input array when calling epapr_hypercall()
	mmc: spi: Fix card detection during probe
	mm: enforce min addr even if capable() in expand_downwards()
	x86/uaccess: Don't leak the AC flag into __put_user() value evaluation
	USB: serial: option: add Telit ME910 ECM composition
	USB: serial: cp210x: add ID for Ingenico 3070
	USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
	cpufreq: Use struct kobj_attribute instead of struct global_attr
	sockfs: getxattr: Fail with -EOPNOTSUPP for invalid attribute names
	ncpfs: fix build warning of strncpy
	isdn: isdn_tty: fix build warning of strncpy
	staging: lustre: fix buffer overflow of string buffer
	net-sysfs: Fix mem leak in netdev_register_kobject
	sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
	team: Free BPF filter when unregistering netdev
	bnxt_en: Drop oversize TX packets to prevent errors.
	net: nfc: Fix NULL dereference on nfc_llcp_build_tlv fails
	xen-netback: fix occasional leak of grant ref mappings under memory pressure
	net: Add __icmp_send helper.
	net: avoid use IPCB in cipso_v4_error
	net: phy: Micrel KSZ8061: link failure after cable connect
	x86/CPU/AMD: Set the CPB bit unconditionally on F17h
	applicom: Fix potential Spectre v1 vulnerabilities
	MIPS: irq: Allocate accurate order pages for irq stack
	hugetlbfs: fix races and page leaks during migration
	netlabel: fix out-of-bounds memory accesses
	net: dsa: mv88e6xxx: Fix u64 statistics
	ip6mr: Do not call __IP6_INC_STATS() from preemptible context
	media: uvcvideo: Fix 'type' check leading to overflow
	vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel
	perf tools: Handle TOPOLOGY headers with no CPU
	IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM
	ipvs: Fix signed integer overflow when setsockopt timeout
	iommu/amd: Fix IOMMU page flush when detach device from a domain
	xtensa: SMP: fix ccount_timer_shutdown
	xtensa: SMP: fix secondary CPU initialization
	xtensa: smp_lx200_defconfig: fix vectors clash
	xtensa: SMP: mark each possible CPU as present
	xtensa: SMP: limit number of possible CPUs by NR_CPUS
	net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case
	net: hns: Fix wrong read accesses via Clause 45 MDIO protocol
	net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup()
	gpio: vf610: Mask all GPIO interrupts
	nfs: Fix NULL pointer dereference of dev_name
	scsi: libfc: free skb when receiving invalid flogi resp
	platform/x86: Fix unmet dependency warning for SAMSUNG_Q10
	cifs: fix computation for MAX_SMB2_HDR_SIZE
	x86/kexec: Don't setup EFI info if EFI runtime is not enabled
	x86_64: increase stack size for KASAN_EXTRA
	mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone
	mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone
	fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
	autofs: drop dentry reference only when it is never used
	autofs: fix error return in autofs_fill_super()
	ARM: pxa: ssp: unneeded to free devm_ allocated data
	irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable
	dmaengine: at_xdmac: Fix wrongfull report of a channel as in use
	dmaengine: dmatest: Abort test in case of mapping error
	s390/qeth: fix use-after-free in error path
	perf symbols: Filter out hidden symbols from labels
	MIPS: Remove function size check in get_frame_info()
	Input: wacom_serial4 - add support for Wacom ArtPad II tablet
	Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
	iscsi_ibft: Fix missing break in switch statement
	futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock()
	ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
	Revert "x86/platform/UV: Use efi_runtime_lock to serialise BIOS calls"
	ARM: dts: exynos: Do not ignore real-world fuse values for thermal zone 0 on Exynos5420
	udplite: call proper backlog handlers
	netfilter: x_tables: enforce nul-terminated table name from getsockopt GET_ENTRIES
	netfilter: nfnetlink_log: just returns error for unknown command
	netfilter: nfnetlink_acct: validate NFACCT_FILTER parameters
	netfilter: nf_conntrack_tcp: Fix stack out of bounds when parsing TCP options
	KEYS: restrict /proc/keys by credentials at open time
	l2tp: fix infoleak in l2tp_ip6_recvmsg()
	net: hsr: fix memory leak in hsr_dev_finalize()
	net: sit: fix UBSAN Undefined behaviour in check_6rd
	net/x25: fix use-after-free in x25_device_event()
	net/x25: reset state in x25_connect()
	pptp: dst_release sk_dst_cache in pptp_sock_destruct
	ravb: Decrease TxFIFO depth of Q3 and Q2 to one
	route: set the deleted fnhe fnhe_daddr to 0 in ip_del_fnhe to fix a race
	tcp: handle inet_csk_reqsk_queue_add() failures
	net/mlx4_core: Fix reset flow when in command polling mode
	net/mlx4_core: Fix qp mtt size calculation
	net/x25: fix a race in x25_bind()
	mdio_bus: Fix use-after-free on device_register fails
	net: Set rtm_table to RT_TABLE_COMPAT for ipv6 for tables > 255
	missing barriers in some of unix_sock ->addr and ->path accesses
	ipvlan: disallow userns cap_net_admin to change global mode/flags
	vxlan: test dev->flags & IFF_UP before calling gro_cells_receive()
	vxlan: Fix GRO cells race condition between receive and link delete
	net/hsr: fix possible crash in add_timer()
	gro_cells: make sure device is up in gro_cells_receive()
	tcp/dccp: remove reqsk_put() from inet_child_forget()
	ALSA: bebob: use more identical mod_alias for Saffire Pro 10 I/O against Liquid Saffire 56
	fs/9p: use fscache mutex rather than spinlock
	It's wrong to add len to sector_nr in raid10 reshape twice
	media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
	9p: use inode->i_lock to protect i_size_write() under 32-bit
	9p/net: fix memory leak in p9_client_create
	ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
	stm class: Fix an endless loop in channel allocation
	crypto: caam - fixed handling of sg list
	crypto: ahash - fix another early termination in hash walk
	gpu: ipu-v3: Fix i.MX51 CSI control registers offset
	gpu: ipu-v3: Fix CSI offsets for imx53
	s390/dasd: fix using offset into zero size array error
	ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
	Input: matrix_keypad - use flush_delayed_work()
	i2c: cadence: Fix the hold bit setting
	Input: st-keyscan - fix potential zalloc NULL dereference
	ARM: 8824/1: fix a migrating irq bug when hotplug cpu
	assoc_array: Fix shortcut creation
	scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
	net: systemport: Fix reception of BPDUs
	pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
	net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
	ASoC: topology: free created components in tplg load error
	arm64: Relax GIC version check during early boot
	tmpfs: fix link accounting when a tmpfile is linked in
	ARC: uacces: remove lp_start, lp_end from clobber list
	phonet: fix building with clang
	mac80211_hwsim: propagate genlmsg_reply return code
	net: set static variable an initial value in atl2_probe()
	tmpfs: fix uninitialized return value in shmem_link
	stm class: Prevent division by zero
	crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
	CIFS: Fix read after write for files with read caching
	tracing: Do not free iter->trace in fail path of tracing_open_pipe()
	ACPI / device_sysfs: Avoid OF modalias creation for removed device
	regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
	regulator: s2mpa01: Fix step values for some LDOs
	clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
	clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
	s390/virtio: handle find on invalid queue gracefully
	scsi: virtio_scsi: don't send sc payload with tmfs
	scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
	m68k: Add -ffreestanding to CFLAGS
	btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
	Btrfs: fix corruption reading shared and compressed extents after hole punching
	crypto: pcbc - remove bogus memcpy()s with src == dest
	cpufreq: tegra124: add missing of_node_put()
	cpufreq: pxa2xx: remove incorrect __init annotation
	ext4: fix crash during online resizing
	ext2: Fix underflow in ext2_max_size()
	clk: ingenic: Fix round_rate misbehaving with non-integer dividers
	dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
	mm/vmalloc: fix size check for remap_vmalloc_range_partial()
	kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
	intel_th: Don't reference unassigned outputs
	parport_pc: fix find_superio io compare code, should use equal test.
	i2c: tegra: fix maximum transfer size
	perf bench: Copy kernel files needed to build mem{cpy,set} x86_64 benchmarks
	serial: 8250_pci: Fix number of ports for ACCES serial cards
	serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup()
	jbd2: clear dirty flag when revoking a buffer from an older transaction
	jbd2: fix compile warning when using JBUFFER_TRACE
	powerpc/32: Clear on-stack exception marker upon exception return
	powerpc/wii: properly disable use of BATs when requested.
	powerpc/powernv: Make opal log only readable by root
	powerpc/83xx: Also save/restore SPRG4-7 during suspend
	ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
	dm: fix to_sector() for 32bit
	NFS41: pop some layoutget errors to application
	perf intel-pt: Fix CYC timestamp calculation after OVF
	perf auxtrace: Define auxtrace record alignment
	perf intel-pt: Fix overlap calculation for padding
	md: Fix failed allocation of md_register_thread
	NFS: Fix an I/O request leakage in nfs_do_recoalesce
	NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
	nfsd: fix memory corruption caused by readdir
	nfsd: fix wrong check in write_v4_end_grace()
	PM / wakeup: Rework wakeup source timer cancellation
	rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
	media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
	drm/radeon/evergreen_cs: fix missing break in switch statement
	KVM: nVMX: Sign extend displacements of VMX instr's mem operands
	KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
	KVM: X86: Fix residual mmio emulation request to userspace
	Linux 4.4.177

Change-Id: Ia33b88c9634e04612874d79ce4cc166e8aa8096a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-03-23 09:28:32 +01:00
Peter Zijlstra
7570acb210 futex,rt_mutex: Restructure rt_mutex_finish_proxy_lock()
commit 38d589f2fd08f1296aea3ce62bebd185125c6d81 upstream.

With the ultimate goal of keeping rt_mutex wait_list and futex_q waiters
consistent it's necessary to split 'rt_mutex_futex_lock()' into finer
parts, such that only the actual blocking can be done without hb->lock
held.

Split split_mutex_finish_proxy_lock() into two parts, one that does the
blocking and one that does remove_waiter() when the lock acquire failed.

When the rtmutex was acquired successfully the waiter can be removed in the
acquisiton path safely, since there is no concurrency on the lock owner.

This means that, except for futex_lock_pi(), all wait_list modifications
are done with both hb->lock and wait_lock held.

[bigeasy@linutronix.de: fix for futex_requeue_pi_signal_restart]

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: juri.lelli@arm.com
Cc: bigeasy@linutronix.de
Cc: xlpang@redhat.com
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: jdesfossez@efficios.com
Cc: dvhart@infradead.org
Cc: bristot@redhat.com
Link: http://lkml.kernel.org/r/20170322104152.001659630@infradead.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Zubin Mithra <zsm@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-23 08:44:28 +01:00
Nathan Chancellor
728a7fad8a Merge 4.4.164 into android-msm-wahoo-4.4
Changes in 4.4.164: (161 commits)
        bcache: fix miss key refill->end in writeback
        hwmon: (pmbus) Fix page count auto-detection.
        jffs2: free jffs2_sb_info through jffs2_kill_sb()
        pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges
        ipmi: Fix timer race with module unload
        parisc: Fix address in HPMC IVA
        parisc: Fix map_pages() to not overwrite existing pte entries
        ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905)
        ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
        x86/corruption-check: Fix panic in memory_corruption_check() when boot option without value is provided
        x86/kconfig: Fall back to ticket spinlocks
        sparc: Fix single-pcr perf event counter management.
        x86/fpu: Remove second definition of fpu in __fpu__restore_sig()
        net: qla3xxx: Remove overflowing shift statement
        selftests: ftrace: Add synthetic event syntax testcase
        locking/lockdep: Fix debug_locks off performance problem
        ataflop: fix error handling during setup
        swim: fix cleanup on setup error
        tun: Consistently configure generic netdev params via rtnetlink
        perf tools: Free temporary 'sys' string in read_event_files()
        perf tools: Cleanup trace-event-info 'tdata' leak
        mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01
        Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth
        x86: boot: Fix EFI stub alignment
        pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux
        kprobes: Return error if we fail to reuse kprobe instead of BUG_ON()
        ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers
        pinctrl: qcom: spmi-mpp: Fix drive strength setting
        pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
        pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant
        ath10k: schedule hardware restart if WMI command times out
        scsi: esp_scsi: Track residual for PIO transfers
        scsi: megaraid_sas: fix a missing-check bug
        tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated
        ext4: fix argument checking in EXT4_IOC_MOVE_EXT
        MD: fix invalid stored role for a disk
        usb: chipidea: Prevent unbalanced IRQ disable
        driver/dma/ioat: Call del_timer_sync() without holding prep_lock
        uio: ensure class is registered before devices
        scsi: lpfc: Correct soft lockup when running mds diagnostics
        signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid namespace init
        dmaengine: dma-jz4780: Return error if not probed from DT
        ALSA: hda: Check the non-cached stream buffers more explicitly
        xen-swiotlb: use actually allocated size on check physical continuous
        tpm: Restore functionality to xen vtpm driver.
        xen: fix race in xen_qlock_wait()
        xen: make xen_qlock_wait() nestable
        net/ipv4: defensive cipso option parsing
        libnvdimm: Hold reference on parent while scheduling async init
        jbd2: fix use after free in jbd2_log_do_checkpoint()
        gfs2_meta: ->mount() can get NULL dev_name
        ext4: initialize retries variable in ext4_da_write_inline_data_begin()
        HID: hiddev: fix potential Spectre v1
        PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk
        signal/GenWQE: Fix sending of SIGKILL
        crypto: lrw - Fix out-of bounds access on counter overflow
        ima: fix showing large 'violations' or 'runtime_measurements_count'
        hugetlbfs: dirty pages as they are added to pagecache
        kbuild: fix kernel/bounds.c 'W=1' warning
        iio: adc: at91: fix acking DRDY irq on simple conversions
        iio: adc: at91: fix wrong channel number in triggered buffer mode
        w1: omap-hdq: fix missing bus unregister at removal
        smb3: allow stats which track session and share reconnects to be reset
        smb3: do not attempt cifs operation in smb3 query info error path
        smb3: on kerberos mount if server doesn't specify auth type use krb5
        printk: Fix panic caused by passing log_buf_len to command line
        genirq: Fix race on spurious interrupt detection
        NFSv4.1: Fix the r/wsize checking
        nfsd: Fix an Oops in free_session()
        lockd: fix access beyond unterminated strings in prints
        dm ioctl: harden copy_params()'s copy_from_user() from malicious users
        powerpc/msi: Fix compile error on mpc83xx
        MIPS: OCTEON: fix out of bounds array access on CN68XX
        TC: Set DMA masks for devices
        kgdboc: Passing ekgdboc to command line causes panic
        xen: fix xen_qlock_wait()
        media: em28xx: use a default format if TRY_FMT fails
        media: em28xx: fix input name for Terratec AV 350
        media: em28xx: make v4l2-compliance happier by starting sequence on zero
        ext4: avoid running out of journal credits when appending to an inline file
        Cramfs: fix abad comparison when wrap-arounds occur
        arm64: dts: stratix10: Correct System Manager register size
        soc/tegra: pmc: Fix child-node lookup
        btrfs: Handle owner mismatch gracefully when walking up tree
        btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid deadlock
        btrfs: iterate all devices during trim, instead of fs_devices::alloc_list
        btrfs: don't attempt to trim devices that don't support it
        btrfs: wait on caching when putting the bg cache
        btrfs: reset max_extent_size on clear in a bitmap
        btrfs: make sure we create all new block groups
        Btrfs: fix wrong dentries after fsync of file that got its parent replaced
        btrfs: qgroup: Dirty all qgroups before rescan
        Btrfs: fix null pointer dereference on compressed write path error
        btrfs: set max_extent_size properly
        MD: fix invalid stored role for a disk - try2
        tty: check name length in tty_find_polling_driver()
        powerpc/nohash: fix undefined behaviour when testing page size support
        drm/omap: fix memory barrier bug in DMM driver
        media: pci: cx23885: handle adding to list failure
        MIPS: kexec: Mark CPU offline before disabling local IRQ
        powerpc/boot: Ensure _zimage_start is a weak symbol
        sc16is7xx: Fix for multi-channel stall
        media: tvp5150: fix width alignment during set_selection()
        9p locks: fix glock.client_id leak in do_lock
        9p: clear dangling pointers in p9stat_free
        cdrom: fix improper type cast, which can leat to information leak.
        scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
        fuse: Fix use-after-free in fuse_dev_do_read()
        fuse: Fix use-after-free in fuse_dev_do_write()
        fuse: fix blocked_waitq wakeup
        fuse: set FR_SENT while locked
        mm, elf: handle vm_brk error
        binfmt_elf: fix calculations for bss padding
        mm: refuse wrapped vm_brk requests
        fs, elf: make sure to page align bss in load_elf_library
        mm: do not bug_on on incorrect length in __mm_populate()
        e1000: avoid null pointer dereference on invalid stat type
        e1000: fix race condition between e1000_down() and e1000_watchdog
        bna: ethtool: Avoid reading past end of buffer
        MIPS: Loongson-3: Fix CPU UART irq delivery problem
        MIPS: Loongson-3: Fix BRIDGE irq delivery problem
        xtensa: add NOTES section to the linker script
        xtensa: make sure bFLT stack is 16 byte aligned
        xtensa: fix boot parameters address translation
        clk: s2mps11: Fix matching when built as module and DT node contains compatible
        libceph: bump CEPH_MSG_MAX_DATA_LEN
        mach64: fix display corruption on big endian machines
        mach64: fix image corruption due to reading accelerator registers
        vhost/scsi: truncate T10 PI iov_iter to prot_bytes
        ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
        mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
        mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
        termios, tty/tty_baudrate.c: fix buffer overrun
        arch/alpha, termios: implement BOTHER, IBSHIFT and termios2
        Btrfs: fix data corruption due to cloning of eof block
        clockevents/drivers/i8253: Add support for PIT shutdown quirk
        ext4: add missing brelse() update_backups()'s error path
        ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
        ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
        ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
        ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
        ext4: avoid buffer leak in ext4_orphan_add() after prior errors
        ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing
        ext4: avoid possible double brelse() in add_new_gdb() on error path
        ext4: fix possible leak of sbi->s_group_desc_leak in error path
        ext4: release bs.bh before re-using in ext4_xattr_block_find()
        ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
        ext4: fix buffer leak in __ext4_read_dirblock() on error path
        mount: Retest MNT_LOCKED in do_umount
        mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
        mount: Prevent MNT_DETACH from disconnecting locked mounts
        sunrpc: correct the computation for page_ptr when truncating
        rtc: hctosys: Add missing range error reporting
        fuse: fix leaked notify reply
        configfs: replace strncpy with memcpy
        hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
        mm: migration: fix migration of huge PMD shared pages
        drm/rockchip: Allow driver to be shutdown on reboot/kexec
        drm/dp_mst: Check if primary mstb is null
        drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
        Linux 4.4.164

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-11-21 09:31:32 -07:00
Greg Kroah-Hartman
308ad8992e Merge 4.4.164 into android-4.4-p
Changes in 4.4.164
	bcache: fix miss key refill->end in writeback
	hwmon: (pmbus) Fix page count auto-detection.
	jffs2: free jffs2_sb_info through jffs2_kill_sb()
	pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges
	ipmi: Fix timer race with module unload
	parisc: Fix address in HPMC IVA
	parisc: Fix map_pages() to not overwrite existing pte entries
	ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905)
	ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
	x86/corruption-check: Fix panic in memory_corruption_check() when boot option without value is provided
	x86/kconfig: Fall back to ticket spinlocks
	sparc: Fix single-pcr perf event counter management.
	x86/fpu: Remove second definition of fpu in __fpu__restore_sig()
	net: qla3xxx: Remove overflowing shift statement
	selftests: ftrace: Add synthetic event syntax testcase
	locking/lockdep: Fix debug_locks off performance problem
	ataflop: fix error handling during setup
	swim: fix cleanup on setup error
	tun: Consistently configure generic netdev params via rtnetlink
	perf tools: Free temporary 'sys' string in read_event_files()
	perf tools: Cleanup trace-event-info 'tdata' leak
	mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01
	Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth
	x86: boot: Fix EFI stub alignment
	pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux
	kprobes: Return error if we fail to reuse kprobe instead of BUG_ON()
	ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers
	pinctrl: qcom: spmi-mpp: Fix drive strength setting
	pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
	pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant
	ath10k: schedule hardware restart if WMI command times out
	scsi: esp_scsi: Track residual for PIO transfers
	scsi: megaraid_sas: fix a missing-check bug
	tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated
	ext4: fix argument checking in EXT4_IOC_MOVE_EXT
	MD: fix invalid stored role for a disk
	usb: chipidea: Prevent unbalanced IRQ disable
	driver/dma/ioat: Call del_timer_sync() without holding prep_lock
	uio: ensure class is registered before devices
	scsi: lpfc: Correct soft lockup when running mds diagnostics
	signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid namespace init
	dmaengine: dma-jz4780: Return error if not probed from DT
	ALSA: hda: Check the non-cached stream buffers more explicitly
	xen-swiotlb: use actually allocated size on check physical continuous
	tpm: Restore functionality to xen vtpm driver.
	xen: fix race in xen_qlock_wait()
	xen: make xen_qlock_wait() nestable
	net/ipv4: defensive cipso option parsing
	libnvdimm: Hold reference on parent while scheduling async init
	jbd2: fix use after free in jbd2_log_do_checkpoint()
	gfs2_meta: ->mount() can get NULL dev_name
	ext4: initialize retries variable in ext4_da_write_inline_data_begin()
	HID: hiddev: fix potential Spectre v1
	PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk
	signal/GenWQE: Fix sending of SIGKILL
	crypto: lrw - Fix out-of bounds access on counter overflow
	ima: fix showing large 'violations' or 'runtime_measurements_count'
	hugetlbfs: dirty pages as they are added to pagecache
	kbuild: fix kernel/bounds.c 'W=1' warning
	iio: adc: at91: fix acking DRDY irq on simple conversions
	iio: adc: at91: fix wrong channel number in triggered buffer mode
	w1: omap-hdq: fix missing bus unregister at removal
	smb3: allow stats which track session and share reconnects to be reset
	smb3: do not attempt cifs operation in smb3 query info error path
	smb3: on kerberos mount if server doesn't specify auth type use krb5
	printk: Fix panic caused by passing log_buf_len to command line
	genirq: Fix race on spurious interrupt detection
	NFSv4.1: Fix the r/wsize checking
	nfsd: Fix an Oops in free_session()
	lockd: fix access beyond unterminated strings in prints
	dm ioctl: harden copy_params()'s copy_from_user() from malicious users
	powerpc/msi: Fix compile error on mpc83xx
	MIPS: OCTEON: fix out of bounds array access on CN68XX
	TC: Set DMA masks for devices
	kgdboc: Passing ekgdboc to command line causes panic
	xen: fix xen_qlock_wait()
	media: em28xx: use a default format if TRY_FMT fails
	media: em28xx: fix input name for Terratec AV 350
	media: em28xx: make v4l2-compliance happier by starting sequence on zero
	ext4: avoid running out of journal credits when appending to an inline file
	Cramfs: fix abad comparison when wrap-arounds occur
	arm64: dts: stratix10: Correct System Manager register size
	soc/tegra: pmc: Fix child-node lookup
	btrfs: Handle owner mismatch gracefully when walking up tree
	btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid deadlock
	btrfs: iterate all devices during trim, instead of fs_devices::alloc_list
	btrfs: don't attempt to trim devices that don't support it
	btrfs: wait on caching when putting the bg cache
	btrfs: reset max_extent_size on clear in a bitmap
	btrfs: make sure we create all new block groups
	Btrfs: fix wrong dentries after fsync of file that got its parent replaced
	btrfs: qgroup: Dirty all qgroups before rescan
	Btrfs: fix null pointer dereference on compressed write path error
	btrfs: set max_extent_size properly
	MD: fix invalid stored role for a disk - try2
	tty: check name length in tty_find_polling_driver()
	powerpc/nohash: fix undefined behaviour when testing page size support
	drm/omap: fix memory barrier bug in DMM driver
	media: pci: cx23885: handle adding to list failure
	MIPS: kexec: Mark CPU offline before disabling local IRQ
	powerpc/boot: Ensure _zimage_start is a weak symbol
	sc16is7xx: Fix for multi-channel stall
	media: tvp5150: fix width alignment during set_selection()
	9p locks: fix glock.client_id leak in do_lock
	9p: clear dangling pointers in p9stat_free
	cdrom: fix improper type cast, which can leat to information leak.
	scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
	fuse: Fix use-after-free in fuse_dev_do_read()
	fuse: Fix use-after-free in fuse_dev_do_write()
	fuse: fix blocked_waitq wakeup
	fuse: set FR_SENT while locked
	mm, elf: handle vm_brk error
	binfmt_elf: fix calculations for bss padding
	mm: refuse wrapped vm_brk requests
	fs, elf: make sure to page align bss in load_elf_library
	mm: do not bug_on on incorrect length in __mm_populate()
	e1000: avoid null pointer dereference on invalid stat type
	e1000: fix race condition between e1000_down() and e1000_watchdog
	bna: ethtool: Avoid reading past end of buffer
	MIPS: Loongson-3: Fix CPU UART irq delivery problem
	MIPS: Loongson-3: Fix BRIDGE irq delivery problem
	xtensa: add NOTES section to the linker script
	xtensa: make sure bFLT stack is 16 byte aligned
	xtensa: fix boot parameters address translation
	clk: s2mps11: Fix matching when built as module and DT node contains compatible
	libceph: bump CEPH_MSG_MAX_DATA_LEN
	mach64: fix display corruption on big endian machines
	mach64: fix image corruption due to reading accelerator registers
	vhost/scsi: truncate T10 PI iov_iter to prot_bytes
	ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
	mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
	mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
	termios, tty/tty_baudrate.c: fix buffer overrun
	arch/alpha, termios: implement BOTHER, IBSHIFT and termios2
	Btrfs: fix data corruption due to cloning of eof block
	clockevents/drivers/i8253: Add support for PIT shutdown quirk
	ext4: add missing brelse() update_backups()'s error path
	ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
	ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
	ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
	ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
	ext4: avoid buffer leak in ext4_orphan_add() after prior errors
	ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing
	ext4: avoid possible double brelse() in add_new_gdb() on error path
	ext4: fix possible leak of sbi->s_group_desc_leak in error path
	ext4: release bs.bh before re-using in ext4_xattr_block_find()
	ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
	ext4: fix buffer leak in __ext4_read_dirblock() on error path
	mount: Retest MNT_LOCKED in do_umount
	mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
	mount: Prevent MNT_DETACH from disconnecting locked mounts
	sunrpc: correct the computation for page_ptr when truncating
	rtc: hctosys: Add missing range error reporting
	fuse: fix leaked notify reply
	configfs: replace strncpy with memcpy
	hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
	mm: migration: fix migration of huge PMD shared pages
	drm/rockchip: Allow driver to be shutdown on reboot/kexec
	drm/dp_mst: Check if primary mstb is null
	drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
	Linux 4.4.164

Change-Id: Idf97ca97ab9d11bdee42649d7133b6b9005b13fc
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2018-11-21 11:40:16 +01:00
Waiman Long
ef42ef8451 locking/lockdep: Fix debug_locks off performance problem
[ Upstream commit 9506a7425b094d2f1d9c877ed5a78f416669269b ]

It was found that when debug_locks was turned off because of a problem
found by the lockdep code, the system performance could drop quite
significantly when the lock_stat code was also configured into the
kernel. For instance, parallel kernel build time on a 4-socket x86-64
server nearly doubled.

Further analysis into the cause of the slowdown traced back to the
frequent call to debug_locks_off() from the __lock_acquired() function
probably due to some inconsistent lockdep states with debug_locks
off. The debug_locks_off() function did an unconditional atomic xchg
to write a 0 value into debug_locks which had already been set to 0.
This led to severe cacheline contention in the cacheline that held
debug_locks.  As debug_locks is being referenced in quite a few different
places in the kernel, this greatly slow down the system performance.

To prevent that trashing of debug_locks cacheline, lock_acquired()
and lock_contended() now checks the state of debug_locks before
proceeding. The debug_locks_off() function is also modified to check
debug_locks before calling __debug_locks_off().

Signed-off-by: Waiman Long <longman@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: http://lkml.kernel.org/r/1539913518-15598-1-git-send-email-longman@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-11-21 09:27:31 +01:00
Greg Kroah-Hartman
a29988a1dc Merge 4.4.157 into android-4.4-p
Changes in 4.4.157
	i2c: xiic: Make the start and the byte count write atomic
	i2c: i801: fix DNV's SMBCTRL register offset
	ALSA: hda - Fix cancel_work_sync() stall from jackpoll work
	cfq: Give a chance for arming slice idle timer in case of group_idle
	kthread: Fix use-after-free if kthread fork fails
	kthread: fix boot hang (regression) on MIPS/OpenRISC
	staging: rt5208: Fix a sleep-in-atomic bug in xd_copy_page
	staging/rts5208: Fix read overflow in memcpy
	block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg
	locking/rwsem-xadd: Fix missed wakeup due to reordering of load
	selinux: use GFP_NOWAIT in the AVC kmem_caches
	locking/osq_lock: Fix osq_lock queue corruption
	ARC: [plat-axs*]: Enable SWAP
	misc: mic: SCIF Fix scif_get_new_port() error handling
	ethtool: Remove trailing semicolon for static inline
	Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV
	gpio: tegra: Move driver registration to subsys_init level
	scsi: target: fix __transport_register_session locking
	md/raid5: fix data corruption of replacements after originals dropped
	misc: ti-st: Fix memory leak in the error path of probe()
	uio: potential double frees if __uio_register_device() fails
	tty: rocket: Fix possible buffer overwrite on register_PCI
	f2fs: do not set free of current section
	perf tools: Allow overriding MAX_NR_CPUS at compile time
	NFSv4.0 fix client reference leak in callback
	macintosh/via-pmu: Add missing mmio accessors
	ath10k: prevent active scans on potential unusable channels
	MIPS: Fix ISA virt/bus conversion for non-zero PHYS_OFFSET
	ata: libahci: Correct setting of DEVSLP register
	scsi: 3ware: fix return 0 on the error path of probe
	ath10k: disable bundle mgmt tx completion event support
	Bluetooth: hidp: Fix handling of strncpy for hid->name information
	x86/mm: Remove in_nmi() warning from vmalloc_fault()
	gpio: ml-ioh: Fix buffer underwrite on probe error path
	net: mvneta: fix mtu change on port without link
	MIPS: Octeon: add missing of_node_put()
	net: dcb: For wild-card lookups, use priority -1, not 0
	Input: atmel_mxt_ts - only use first T9 instance
	partitions/aix: append null character to print data from disk
	partitions/aix: fix usage of uninitialized lv_info and lvname structures
	iommu/ipmmu-vmsa: Fix allocation in atomic context
	mfd: ti_am335x_tscadc: Fix struct clk memory leak
	f2fs: fix to do sanity check with {sit,nat}_ver_bitmap_bytesize
	MIPS: WARN_ON invalid DMA cache maintenance, not BUG_ON
	RDMA/cma: Do not ignore net namespace for unbound cm_id
	xhci: Fix use-after-free in xhci_free_virt_device
	vmw_balloon: include asm/io.h
	netfilter: x_tables: avoid stack-out-of-bounds read in xt_copy_counters_from_user
	drivers: net: cpsw: fix parsing of phy-handle DT property in dual_emac config
	net: ethernet: ti: cpsw: fix mdio device reference leak
	ethernet: ti: davinci_emac: add missing of_node_put after calling of_parse_phandle
	crypto: vmx - Fix sleep-in-atomic bugs
	mtd: ubi: wl: Fix error return code in ubi_wl_init()
	autofs: fix autofs_sbi() does not check super block type
	x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+
	mm: get rid of vmacache_flush_all() entirely
	Linux 4.4.157

Change-Id: I08e4c24c1a22ef0e97f9185bc9da72f4a651ca73
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2018-09-20 11:32:31 +02:00
Nathan Chancellor
e875b3455a Merge 4.4.157 into android-msm-wahoo-4.4
Changes in 4.4.157: (57 commits)
        i2c: xiic: Make the start and the byte count write atomic
        i2c: i801: fix DNV's SMBCTRL register offset
        ALSA: hda - Fix cancel_work_sync() stall from jackpoll work
        cfq: Give a chance for arming slice idle timer in case of group_idle
        kthread: Fix use-after-free if kthread fork fails
        kthread: fix boot hang (regression) on MIPS/OpenRISC
        staging: rt5208: Fix a sleep-in-atomic bug in xd_copy_page
        staging/rts5208: Fix read overflow in memcpy
        block,blkcg: use __GFP_NOWARN for best-effort allocations in blkcg
        locking/rwsem-xadd: Fix missed wakeup due to reordering of load
        selinux: use GFP_NOWAIT in the AVC kmem_caches
        locking/osq_lock: Fix osq_lock queue corruption
        ARC: [plat-axs*]: Enable SWAP
        misc: mic: SCIF Fix scif_get_new_port() error handling
        ethtool: Remove trailing semicolon for static inline
        Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV
        gpio: tegra: Move driver registration to subsys_init level
        scsi: target: fix __transport_register_session locking
        md/raid5: fix data corruption of replacements after originals dropped
        misc: ti-st: Fix memory leak in the error path of probe()
        uio: potential double frees if __uio_register_device() fails
        tty: rocket: Fix possible buffer overwrite on register_PCI
        f2fs: do not set free of current section
        perf tools: Allow overriding MAX_NR_CPUS at compile time
        NFSv4.0 fix client reference leak in callback
        macintosh/via-pmu: Add missing mmio accessors
        ath10k: prevent active scans on potential unusable channels
        MIPS: Fix ISA virt/bus conversion for non-zero PHYS_OFFSET
        ata: libahci: Correct setting of DEVSLP register
        scsi: 3ware: fix return 0 on the error path of probe
        ath10k: disable bundle mgmt tx completion event support
        Bluetooth: hidp: Fix handling of strncpy for hid->name information
        x86/mm: Remove in_nmi() warning from vmalloc_fault()
        gpio: ml-ioh: Fix buffer underwrite on probe error path
        net: mvneta: fix mtu change on port without link
        MIPS: Octeon: add missing of_node_put()
        net: dcb: For wild-card lookups, use priority -1, not 0
        Input: atmel_mxt_ts - only use first T9 instance
        partitions/aix: append null character to print data from disk
        partitions/aix: fix usage of uninitialized lv_info and lvname structures
        iommu/ipmmu-vmsa: Fix allocation in atomic context
        mfd: ti_am335x_tscadc: Fix struct clk memory leak
        f2fs: fix to do sanity check with {sit,nat}_ver_bitmap_bytesize
        MIPS: WARN_ON invalid DMA cache maintenance, not BUG_ON
        RDMA/cma: Do not ignore net namespace for unbound cm_id
        xhci: Fix use-after-free in xhci_free_virt_device
        vmw_balloon: include asm/io.h
        netfilter: x_tables: avoid stack-out-of-bounds read in xt_copy_counters_from_user
        drivers: net: cpsw: fix parsing of phy-handle DT property in dual_emac config
        net: ethernet: ti: cpsw: fix mdio device reference leak
        ethernet: ti: davinci_emac: add missing of_node_put after calling of_parse_phandle
        crypto: vmx - Fix sleep-in-atomic bugs
        mtd: ubi: wl: Fix error return code in ubi_wl_init()
        autofs: fix autofs_sbi() does not check super block type
        x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+
        mm: get rid of vmacache_flush_all() entirely
        Linux 4.4.157

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-09-19 14:04:34 -07:00
Prateek Sood
d914882c93 locking/osq_lock: Fix osq_lock queue corruption
commit 50972fe78f24f1cd0b9d7bbf1f87d2be9e4f412e upstream.

Fix ordering of link creation between node->prev and prev->next in
osq_lock(). A case in which the status of optimistic spin queue is
CPU6->CPU2 in which CPU6 has acquired the lock.

        tail
          v
  ,-. <- ,-.
  |6|    |2|
  `-' -> `-'

At this point if CPU0 comes in to acquire osq_lock, it will update the
tail count.

  CPU2			CPU0
  ----------------------------------

				       tail
				         v
			  ,-. <- ,-.    ,-.
			  |6|    |2|    |0|
			  `-' -> `-'    `-'

After tail count update if CPU2 starts to unqueue itself from
optimistic spin queue, it will find an updated tail count with CPU0 and
update CPU2 node->next to NULL in osq_wait_next().

  unqueue-A

	       tail
	         v
  ,-. <- ,-.    ,-.
  |6|    |2|    |0|
  `-'    `-'    `-'

  unqueue-B

  ->tail != curr && !node->next

If reordering of following stores happen then prev->next where prev
being CPU2 would be updated to point to CPU0 node:

				       tail
				         v
			  ,-. <- ,-.    ,-.
			  |6|    |2|    |0|
			  `-'    `-' -> `-'

  osq_wait_next()
    node->next <- 0
    xchg(node->next, NULL)

	       tail
	         v
  ,-. <- ,-.    ,-.
  |6|    |2|    |0|
  `-'    `-'    `-'

  unqueue-C

At this point if next instruction
	WRITE_ONCE(next->prev, prev);
in CPU2 path is committed before the update of CPU0 node->prev = prev then
CPU0 node->prev will point to CPU6 node.

	       tail
    v----------. v
  ,-. <- ,-.    ,-.
  |6|    |2|    |0|
  `-'    `-'    `-'
     `----------^

At this point if CPU0 path's node->prev = prev is committed resulting
in change of CPU0 prev back to CPU2 node. CPU2 node->next is NULL
currently,

				       tail
			                 v
			  ,-. <- ,-. <- ,-.
			  |6|    |2|    |0|
			  `-'    `-'    `-'
			     `----------^

so if CPU0 gets into unqueue path of osq_lock it will keep spinning
in infinite loop as condition prev->next == node will never be true.

Signed-off-by: Prateek Sood <prsood@codeaurora.org>
[ Added pictures, rewrote comments. ]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: sramana@codeaurora.org
Link: http://lkml.kernel.org/r/1500040076-27626-1-git-send-email-prsood@codeaurora.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-19 22:48:56 +02:00
Prateek Sood
70cc08c44f locking/rwsem-xadd: Fix missed wakeup due to reordering of load
commit 9c29c31830a4eca724e137a9339137204bbb31be upstream.

If a spinner is present, there is a chance that the load of
rwsem_has_spinner() in rwsem_wake() can be reordered with
respect to decrement of rwsem count in __up_write() leading
to wakeup being missed:

 spinning writer                  up_write caller
 ---------------                  -----------------------
 [S] osq_unlock()                 [L] osq
  spin_lock(wait_lock)
  sem->count=0xFFFFFFFF00000001
            +0xFFFFFFFF00000000
  count=sem->count
  MB
                                   sem->count=0xFFFFFFFE00000001
                                             -0xFFFFFFFF00000001
                                   spin_trylock(wait_lock)
                                   return
 rwsem_try_write_lock(count)
 spin_unlock(wait_lock)
 schedule()

Reordering of atomic_long_sub_return_release() in __up_write()
and rwsem_has_spinner() in rwsem_wake() can cause missing of
wakeup in up_write() context. In spinning writer, sem->count
and local variable count is 0XFFFFFFFE00000001. It would result
in rwsem_try_write_lock() failing to acquire rwsem and spinning
writer going to sleep in rwsem_down_write_failed().

The smp_rmb() will make sure that the spinner state is
consulted after sem->count is updated in up_write context.

Signed-off-by: Prateek Sood <prsood@codeaurora.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: dave@stgolabs.net
Cc: longman@redhat.com
Cc: parri.andrea@gmail.com
Cc: sramana@codeaurora.org
Link: http://lkml.kernel.org/r/1504794658-15397-1-git-send-email-prsood@codeaurora.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-19 22:48:56 +02:00
Nathan Chancellor
14f46630e7 Merge 4.4.152 into android-msm-wahoo-4.4
Changes in 4.4.152: (79 commits)
        ARC: Explicitly add -mmedium-calls to CFLAGS
        netfilter: ipv6: nf_defrag: reduce struct net memory waste
        selftests: pstore: return Kselftest Skip code for skipped tests
        selftests: static_keys: return Kselftest Skip code for skipped tests
        selftests: user: return Kselftest Skip code for skipped tests
        selftests: zram: return Kselftest Skip code for skipped tests
        selftests: sync: add config fragment for testing sync framework
        ARM: dts: Cygnus: Fix I2C controller interrupt type
        usb: dwc2: fix isoc split in transfer with no data
        usb: gadget: composite: fix delayed_status race condition when set_interface
        usb: gadget: dwc2: fix memory leak in gadget_init()
        scsi: xen-scsifront: add error handling for xenbus_printf
        arm64: make secondary_start_kernel() notrace
        qed: Add sanity check for SIMD fastpath handler.
        enic: initialize enic->rfs_h.lock in enic_probe
        net: hamradio: use eth_broadcast_addr
        net: propagate dev_get_valid_name return code
        ARC: Enable machine_desc->init_per_cpu for !CONFIG_SMP
        net: davinci_emac: match the mdio device against its compatible if possible
        locking/lockdep: Do not record IRQ state within lockdep code
        ipv6: mcast: fix unsolicited report interval after receiving querys
        Smack: Mark inode instant in smack_task_to_inode
        cxgb4: when disabling dcb set txq dcb priority to 0
        brcmfmac: stop watchdog before detach and free everything
        ARM: dts: am437x: make edt-ft5x06 a wakeup source
        usb: xhci: increase CRS timeout value
        perf test session topology: Fix test on s390
        perf report powerpc: Fix crash if callchain is empty
        selftests/x86/sigreturn/64: Fix spurious failures on AMD CPUs
        ARM: dts: da850: Fix interrups property for gpio
        dmaengine: k3dma: Off by one in k3_of_dma_simple_xlate()
        md/raid10: fix that replacement cannot complete recovery after reassemble
        drm/exynos: gsc: Fix support for NV16/61, YUV420/YVU420 and YUV422 modes
        drm/exynos: decon5433: Fix per-plane global alpha for XRGB modes
        drm/exynos: decon5433: Fix WINCONx reset value
        bnx2x: Fix receiving tx-timeout in error or recovery state.
        m68k: fix "bad page state" oops on ColdFire boot
        HID: wacom: Correct touch maximum XY of 2nd-gen Intuos
        ARM: imx_v6_v7_defconfig: Select ULPI support
        ARM: imx_v4_v5_defconfig: Select ULPI support
        tracing: Use __printf markup to silence compiler
        kasan: fix shadow_size calculation error in kasan_module_alloc
        smsc75xx: Add workaround for gigabit link up hardware errata.
        netfilter: x_tables: set module owner for icmp(6) matches
        ARM: pxa: irq: fix handling of ICMR registers in suspend/resume
        ieee802154: at86rf230: switch from BUG_ON() to WARN_ON() on problem
        ieee802154: at86rf230: use __func__ macro for debug messages
        ieee802154: fakelb: switch from BUG_ON() to WARN_ON() on problem
        drm/armada: fix colorkey mode property
        bnxt_en: Fix for system hang if request_irq fails
        perf llvm-utils: Remove bashism from kernel include fetch script
        ARM: 8780/1: ftrace: Only set kernel memory back to read-only after boot
        ARM: dts: am3517.dtsi: Disable reference to OMAP3 OTG controller
        ixgbe: Be more careful when modifying MAC filters
        packet: reset network header if packet shorter than ll reserved space
        qlogic: check kstrtoul() for errors
        tcp: remove DELAYED ACK events in DCTCP
        drm/nouveau/gem: off by one bugs in nouveau_gem_pushbuf_reloc_apply()
        net/ethernet/freescale/fman: fix cross-build error
        net: usb: rtl8150: demote allmulti message to dev_dbg()
        net: qca_spi: Avoid packet drop during initial sync
        net: qca_spi: Make sure the QCA7000 reset is triggered
        net: qca_spi: Fix log level if probe fails
        tcp: identify cryptic messages as TCP seq # bugs
        staging: android: ion: check for kref overflow
        KVM: irqfd: fix race between EPOLLHUP and irq_bypass_register_consumer
        ext4: fix spectre gadget in ext4_mb_regular_allocator()
        parisc: Remove ordered stores from syscall.S
        xfrm_user: prevent leaking 2 bytes of kernel memory
        netfilter: conntrack: dccp: treat SYNC/SYNCACK as invalid if no prior state
        packet: refine ring v3 block size test to hold one frame
        bridge: Propagate vlan add failure to user
        parisc: Remove unnecessary barriers from spinlock.h
        PCI: hotplug: Don't leak pci_slot on registration failure
        PCI: Skip MPS logic for Virtual Functions (VFs)
        PCI: pciehp: Fix use-after-free on unplug
        i2c: imx: Fix race condition in dma read
        reiserfs: fix broken xattr handling (heap corruption, bad retval)
        Linux 4.4.152

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Conflicts:
	drivers/staging/android/ion/ion.c
2018-08-24 07:53:30 -07:00
Greg Kroah-Hartman
47952b2b5f Merge 4.4.152 into android-4.4-p
Changes in 4.4.152
	ARC: Explicitly add -mmedium-calls to CFLAGS
	netfilter: ipv6: nf_defrag: reduce struct net memory waste
	selftests: pstore: return Kselftest Skip code for skipped tests
	selftests: static_keys: return Kselftest Skip code for skipped tests
	selftests: user: return Kselftest Skip code for skipped tests
	selftests: zram: return Kselftest Skip code for skipped tests
	selftests: sync: add config fragment for testing sync framework
	ARM: dts: Cygnus: Fix I2C controller interrupt type
	usb: dwc2: fix isoc split in transfer with no data
	usb: gadget: composite: fix delayed_status race condition when set_interface
	usb: gadget: dwc2: fix memory leak in gadget_init()
	scsi: xen-scsifront: add error handling for xenbus_printf
	arm64: make secondary_start_kernel() notrace
	qed: Add sanity check for SIMD fastpath handler.
	enic: initialize enic->rfs_h.lock in enic_probe
	net: hamradio: use eth_broadcast_addr
	net: propagate dev_get_valid_name return code
	ARC: Enable machine_desc->init_per_cpu for !CONFIG_SMP
	net: davinci_emac: match the mdio device against its compatible if possible
	locking/lockdep: Do not record IRQ state within lockdep code
	ipv6: mcast: fix unsolicited report interval after receiving querys
	Smack: Mark inode instant in smack_task_to_inode
	cxgb4: when disabling dcb set txq dcb priority to 0
	brcmfmac: stop watchdog before detach and free everything
	ARM: dts: am437x: make edt-ft5x06 a wakeup source
	usb: xhci: increase CRS timeout value
	perf test session topology: Fix test on s390
	perf report powerpc: Fix crash if callchain is empty
	selftests/x86/sigreturn/64: Fix spurious failures on AMD CPUs
	ARM: dts: da850: Fix interrups property for gpio
	dmaengine: k3dma: Off by one in k3_of_dma_simple_xlate()
	md/raid10: fix that replacement cannot complete recovery after reassemble
	drm/exynos: gsc: Fix support for NV16/61, YUV420/YVU420 and YUV422 modes
	drm/exynos: decon5433: Fix per-plane global alpha for XRGB modes
	drm/exynos: decon5433: Fix WINCONx reset value
	bnx2x: Fix receiving tx-timeout in error or recovery state.
	m68k: fix "bad page state" oops on ColdFire boot
	HID: wacom: Correct touch maximum XY of 2nd-gen Intuos
	ARM: imx_v6_v7_defconfig: Select ULPI support
	ARM: imx_v4_v5_defconfig: Select ULPI support
	tracing: Use __printf markup to silence compiler
	kasan: fix shadow_size calculation error in kasan_module_alloc
	smsc75xx: Add workaround for gigabit link up hardware errata.
	netfilter: x_tables: set module owner for icmp(6) matches
	ARM: pxa: irq: fix handling of ICMR registers in suspend/resume
	ieee802154: at86rf230: switch from BUG_ON() to WARN_ON() on problem
	ieee802154: at86rf230: use __func__ macro for debug messages
	ieee802154: fakelb: switch from BUG_ON() to WARN_ON() on problem
	drm/armada: fix colorkey mode property
	bnxt_en: Fix for system hang if request_irq fails
	perf llvm-utils: Remove bashism from kernel include fetch script
	ARM: 8780/1: ftrace: Only set kernel memory back to read-only after boot
	ARM: dts: am3517.dtsi: Disable reference to OMAP3 OTG controller
	ixgbe: Be more careful when modifying MAC filters
	packet: reset network header if packet shorter than ll reserved space
	qlogic: check kstrtoul() for errors
	tcp: remove DELAYED ACK events in DCTCP
	drm/nouveau/gem: off by one bugs in nouveau_gem_pushbuf_reloc_apply()
	net/ethernet/freescale/fman: fix cross-build error
	net: usb: rtl8150: demote allmulti message to dev_dbg()
	net: qca_spi: Avoid packet drop during initial sync
	net: qca_spi: Make sure the QCA7000 reset is triggered
	net: qca_spi: Fix log level if probe fails
	tcp: identify cryptic messages as TCP seq # bugs
	staging: android: ion: check for kref overflow
	KVM: irqfd: fix race between EPOLLHUP and irq_bypass_register_consumer
	ext4: fix spectre gadget in ext4_mb_regular_allocator()
	parisc: Remove ordered stores from syscall.S
	xfrm_user: prevent leaking 2 bytes of kernel memory
	netfilter: conntrack: dccp: treat SYNC/SYNCACK as invalid if no prior state
	packet: refine ring v3 block size test to hold one frame
	bridge: Propagate vlan add failure to user
	parisc: Remove unnecessary barriers from spinlock.h
	PCI: hotplug: Don't leak pci_slot on registration failure
	PCI: Skip MPS logic for Virtual Functions (VFs)
	PCI: pciehp: Fix use-after-free on unplug
	i2c: imx: Fix race condition in dma read
	reiserfs: fix broken xattr handling (heap corruption, bad retval)
	Linux 4.4.152

Change-Id: I73c1d3bcfb25d83fa0985b095a6426c207cd2726
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2018-08-24 13:39:05 +02:00
Steven Rostedt (VMware)
c40dc96f7f locking/lockdep: Do not record IRQ state within lockdep code
[ Upstream commit fcc784be837714a9173b372ff9fb9b514590dad9 ]

While debugging where things were going wrong with mapping
enabling/disabling interrupts with the lockdep state and actual real
enabling and disabling interrupts, I had to silent the IRQ
disabling/enabling in debug_check_no_locks_freed() because it was
always showing up as it was called before the splat was.

Use raw_local_irq_save/restore() for not only debug_check_no_locks_freed()
but for all internal lockdep functions, as they hide useful information
about where interrupts were used incorrectly last.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/lkml/20180404140630.3f4f4c7a@gandalf.local.home
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-08-24 13:26:55 +02:00
Greg Kroah-Hartman
6e37ae0e7a Merge 4.4.134 into android-4.4
Changes in 4.4.134
	MIPS: ptrace: Expose FIR register through FP regset
	MIPS: Fix ptrace(2) PTRACE_PEEKUSR and PTRACE_POKEUSR accesses to o32 FGRs
	KVM: Fix spelling mistake: "cop_unsuable" -> "cop_unusable"
	affs_lookup(): close a race with affs_remove_link()
	aio: fix io_destroy(2) vs. lookup_ioctx() race
	ALSA: timer: Fix pause event notification
	mmc: sdhci-iproc: fix 32bit writes for TRANSFER_MODE register
	libata: Blacklist some Sandisk SSDs for NCQ
	libata: blacklist Micron 500IT SSD with MU01 firmware
	xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent
	Revert "ipc/shm: Fix shmat mmap nil-page protection"
	ipc/shm: fix shmat() nil address after round-down when remapping
	kasan: fix memory hotplug during boot
	kernel/sys.c: fix potential Spectre v1 issue
	kernel/signal.c: avoid undefined behaviour in kill_something_info
	xfs: remove racy hasattr check from attr ops
	do d_instantiate/unlock_new_inode combinations safely
	firewire-ohci: work around oversized DMA reads on JMicron controllers
	NFSv4: always set NFS_LOCK_LOST when a lock is lost.
	ALSA: hda - Use IS_REACHABLE() for dependency on input
	ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read()
	kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl
	tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account
	PCI: Add function 1 DMA alias quirk for Marvell 9128
	tools lib traceevent: Simplify pointer print logic and fix %pF
	perf callchain: Fix attr.sample_max_stack setting
	tools lib traceevent: Fix get_field_str() for dynamic strings
	dm thin: fix documentation relative to low water mark threshold
	nfs: Do not convert nfs_idmap_cache_timeout to jiffies
	watchdog: sp5100_tco: Fix watchdog disable bit
	kconfig: Don't leak main menus during parsing
	kconfig: Fix automatic menu creation mem leak
	kconfig: Fix expr_free() E_NOT leak
	mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl()
	ipmi/powernv: Fix error return code in ipmi_powernv_probe()
	Btrfs: set plug for fsync
	btrfs: Fix out of bounds access in btrfs_search_slot
	Btrfs: fix scrub to repair raid6 corruption
	scsi: fas216: fix sense buffer initialization
	HID: roccat: prevent an out of bounds read in kovaplus_profile_activated()
	jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
	powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
	powerpc/numa: Ensure nodes initialized for hotplug
	RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure
	ntb_transport: Fix bug with max_mw_size parameter
	ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid
	ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute
	ocfs2: return error when we attempt to access a dirty bh in jbd2
	mm/mempolicy: fix the check of nodemask from user
	mm/mempolicy: add nodes_empty check in SYSC_migrate_pages
	asm-generic: provide generic_pmdp_establish()
	mm: pin address_space before dereferencing it while isolating an LRU page
	IB/ipoib: Fix for potential no-carrier state
	x86/power: Fix swsusp_arch_resume prototype
	firmware: dmi_scan: Fix handling of empty DMI strings
	ACPI: processor_perflib: Do not send _PPC change notification if not ready
	bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y
	MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS
	xen-netfront: Fix race between device setup and open
	xen/grant-table: Use put_page instead of free_page
	RDS: IB: Fix null pointer issue
	arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics
	proc: fix /proc/*/map_files lookup
	cifs: silence compiler warnings showing up with gcc-8.0.0
	bcache: properly set task state in bch_writeback_thread()
	bcache: fix for allocator and register thread race
	bcache: fix for data collapse after re-attaching an attached device
	bcache: return attach error when no cache set exist
	tools/libbpf: handle issues with bpf ELF objects containing .eh_frames
	locking/qspinlock: Ensure node->count is updated before initialising node
	irqchip/gic-v3: Change pr_debug message to pr_devel
	scsi: ufs: Enable quirk to ignore sending WRITE_SAME command
	scsi: bnx2fc: Fix check in SCSI completion handler for timed out request
	scsi: sym53c8xx_2: iterator underflow in sym_getsync()
	scsi: mptfusion: Add bounds check in mptctl_hp_targetinfo()
	scsi: qla2xxx: Avoid triggering undefined behavior in qla2x00_mbx_completion()
	ARC: Fix malformed ARC_EMUL_UNALIGNED default
	usb: gadget: f_uac2: fix bFirstInterface in composite gadget
	usb: gadget: fsl_udc_core: fix ep valid checks
	usb: dwc2: Fix dwc2_hsotg_core_init_disconnected()
	selftests: memfd: add config fragment for fuse
	scsi: storvsc: Increase cmd_per_lun for higher speed devices
	scsi: aacraid: fix shutdown crash when init fails
	scsi: qla4xxx: skip error recovery in case of register disconnect.
	ARM: OMAP2+: timer: fix a kmemleak caused in omap_get_timer_dt
	ARM: OMAP3: Fix prm wake interrupt for resume
	ARM: OMAP1: clock: Fix debugfs_create_*() usage
	NFC: llcp: Limit size of SDP URI
	mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
	md raid10: fix NULL deference in handle_write_completed()
	drm/exynos: fix comparison to bitshift when dealing with a mask
	usb: musb: fix enumeration after resume
	locking/xchg/alpha: Add unconditional memory barrier to cmpxchg()
	md: raid5: avoid string overflow warning
	kernel/relay.c: limit kmalloc size to KMALLOC_MAX_SIZE
	powerpc/bpf/jit: Fix 32-bit JIT for seccomp_data access
	s390/cio: fix return code after missing interrupt
	s390/cio: clear timer when terminating driver I/O
	ARM: OMAP: Fix dmtimer init for omap1
	smsc75xx: fix smsc75xx_set_features()
	regulatory: add NUL to request alpha2
	locking/xchg/alpha: Fix xchg() and cmpxchg() memory ordering bugs
	x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations
	media: dmxdev: fix error code for invalid ioctls
	md/raid1: fix NULL pointer dereference
	batman-adv: fix packet checksum in receive path
	batman-adv: invalidate checksum on fragment reassembly
	netfilter: ebtables: convert BUG_ONs to WARN_ONs
	nvme-pci: Fix nvme queue cleanup if IRQ setup fails
	clocksource/drivers/fsl_ftm_timer: Fix error return checking
	r8152: fix tx packets accounting
	virtio-gpu: fix ioctl and expose the fixed status to userspace.
	dmaengine: rcar-dmac: fix max_chunk_size for R-Car Gen3
	bcache: fix kcrashes with fio in RAID5 backend dev
	sit: fix IFLA_MTU ignored on NEWLINK
	gianfar: Fix Rx byte accounting for ndev stats
	net/tcp/illinois: replace broken algorithm reference link
	xen/pirq: fix error path cleanup when binding MSIs
	Btrfs: send, fix issuing write op when processing hole in no data mode
	selftests/powerpc: Skip the subpage_prot tests if the syscall is unavailable
	KVM: PPC: Book3S HV: Fix VRMA initialization with 2MB or 1GB memory backing
	watchdog: f71808e_wdt: Fix magic close handling
	e1000e: Fix check_for_link return value with autoneg off
	e1000e: allocate ring descriptors with dma_zalloc_coherent
	usb: musb: call pm_runtime_{get,put}_sync before reading vbus registers
	scsi: mpt3sas: Do not mark fw_event workqueue as WQ_MEM_RECLAIM
	scsi: sd: Keep disk read-only when re-reading partition
	fbdev: Fixing arbitrary kernel leak in case FBIOGETCMAP_SPARC in sbusfb_ioctl_helper().
	xen: xenbus: use put_device() instead of kfree()
	USB: OHCI: Fix NULL dereference in HCDs using HCD_LOCAL_MEM
	netfilter: ebtables: fix erroneous reject of last rule
	bnxt_en: Check valid VNIC ID in bnxt_hwrm_vnic_set_tpa().
	workqueue: use put_device() instead of kfree()
	ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu
	sunvnet: does not support GSO for sctp
	net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off
	batman-adv: fix header size check in batadv_dbg_arp()
	vti4: Don't count header length twice on tunnel setup
	vti4: Don't override MTU passed on link creation via IFLA_MTU
	perf/cgroup: Fix child event counting bug
	RDMA/ucma: Correct option size check using optlen
	mm/mempolicy.c: avoid use uninitialized preferred_node
	selftests: ftrace: Add probe event argument syntax testcase
	selftests: ftrace: Add a testcase for string type with kprobe_event
	selftests: ftrace: Add a testcase for probepoint
	batman-adv: fix multicast-via-unicast transmission with AP isolation
	batman-adv: fix packet loss for broadcasted DHCP packets to a server
	ARM: 8748/1: mm: Define vdso_start, vdso_end as array
	net: qmi_wwan: add BroadMobi BM806U 2020:2033
	net/usb/qmi_wwan.c: Add USB id for lt4120 modem
	net-usb: add qmi_wwan if on lte modem wistron neweb d18q1
	llc: properly handle dev_queue_xmit() return value
	mm/kmemleak.c: wait for scan completion before disabling free
	net: Fix untag for vlan packets without ethernet header
	net: mvneta: fix enable of all initialized RXQs
	sh: fix debug trap failure to process signals before return to user
	x86/pgtable: Don't set huge PUD/PMD on non-leaf entries
	fs/proc/proc_sysctl.c: fix potential page fault while unregistering sysctl table
	swap: divide-by-zero when zero length swap file on ssd
	sr: get/drop reference to device in revalidate and check_events
	Force log to disk before reading the AGF during a fstrim
	cpufreq: CPPC: Initialize shared perf capabilities of CPUs
	scsi: aacraid: Insure command thread is not recursively stopped
	dp83640: Ensure against premature access to PHY registers after reset
	mm/ksm: fix interaction with THP
	mm: fix races between address_space dereference and free in page_evicatable
	Btrfs: bail out on error during replay_dir_deletes
	Btrfs: fix NULL pointer dereference in log_dir_items
	btrfs: Fix possible softlock on single core machines
	ocfs2/dlm: don't handle migrate lockres if already in shutdown
	sched/rt: Fix rq->clock_update_flags < RQCF_ACT_SKIP warning
	KVM: VMX: raise internal error for exception during invalid protected mode state
	fscache: Fix hanging wait on page discarded by writeback
	sparc64: Make atomic_xchg() an inline function rather than a macro.
	rtc: snvs: Fix usage of snvs_rtc_enable
	net: bgmac: Fix endian access in bgmac_dma_tx_ring_free()
	Bluetooth: btusb: Add USB ID 7392:a611 for Edimax EW-7611ULB
	btrfs: tests/qgroup: Fix wrong tree backref level
	Btrfs: fix copy_items() return value when logging an inode
	btrfs: fix lockdep splat in btrfs_alloc_subvolume_writers
	xen/acpi: off by one in read_acpi_id()
	ACPI: acpi_pad: Fix memory leak in power saving threads
	powerpc/mpic: Check if cpu_possible() in mpic_physmask()
	m68k: set dma and coherent masks for platform FEC ethernets
	parisc/pci: Switch LBA PCI bus from Hard Fail to Soft Fail mode
	hwmon: (nct6775) Fix writing pwmX_mode
	rtc: hctosys: Ensure system time doesn't overflow time_t
	powerpc/perf: Prevent kernel address leak to userspace via BHRB buffer
	powerpc/perf: Fix kernel address leak via sampling registers
	tools/thermal: tmon: fix for segfault
	selftests: Print the test we're running to /dev/kmsg
	net/mlx5: Protect from command bit overflow
	ath10k: Fix kernel panic while using worker (ath10k_sta_rc_update_wk)
	ima: Fix Kconfig to select TPM 2.0 CRB interface
	ima: Fallback to the builtin hash algorithm
	virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
	arm: dts: socfpga: fix GIC PPI warning
	usb: dwc3: Update DWC_usb31 GTXFIFOSIZ reg fields
	cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path
	clk: Don't show the incorrect clock phase
	zorro: Set up z->dev.dma_mask for the DMA API
	bcache: quit dc->writeback_thread when BCACHE_DEV_DETACHING is set
	ACPICA: Events: add a return on failure from acpi_hw_register_read
	ACPICA: acpi: acpica: fix acpi operand cache leak in nseval.c
	i2c: mv64xxx: Apply errata delay only in standard mode
	KVM: lapic: stop advertising DIRECTED_EOI when in-kernel IOAPIC is in use
	xhci: zero usb device slot_id member when disabling and freeing a xhci slot
	MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
	PCI: Restore config space on runtime resume despite being unbound
	ipmi_ssif: Fix kernel panic at msg_done_handler
	usb: dwc2: Fix interval type issue
	usb: gadget: ffs: Let setup() return USB_GADGET_DELAYED_STATUS
	usb: gadget: ffs: Execute copy_to_user() with USER_DS set
	powerpc: Add missing prototype for arch_irq_work_raise()
	ASoC: topology: create TLV data for dapm widgets
	perf/core: Fix perf_output_read_group()
	hwmon: (pmbus/max8688) Accept negative page register values
	hwmon: (pmbus/adm1275) Accept negative page register values
	cdrom: do not call check_disk_change() inside cdrom_open()
	gfs2: Fix fallocate chunk size
	usb: gadget: udc: change comparison to bitshift when dealing with a mask
	usb: gadget: composite: fix incorrect handling of OS desc requests
	x86/devicetree: Initialize device tree before using it
	x86/devicetree: Fix device IRQ settings in DT
	ALSA: vmaster: Propagate slave error
	media: cx23885: Override 888 ImpactVCBe crystal frequency
	media: cx23885: Set subdev host data to clk_freq pointer
	media: s3c-camif: fix out-of-bounds array access
	dmaengine: pl330: fix a race condition in case of threaded irqs
	media: em28xx: USB bulk packet size fix
	clk: rockchip: Prevent calculating mmc phase if clock rate is zero
	enic: enable rq before updating rq descriptors
	hwrng: stm32 - add reset during probe
	staging: rtl8192u: return -ENOMEM on failed allocation of priv->oldaddr
	rtc: tx4939: avoid unintended sign extension on a 24 bit shift
	serial: xuartps: Fix out-of-bounds access through DT alias
	serial: samsung: Fix out-of-bounds access through serial port index
	serial: mxs-auart: Fix out-of-bounds access through serial port index
	serial: imx: Fix out-of-bounds access through serial port index
	serial: fsl_lpuart: Fix out-of-bounds access through DT alias
	serial: arc_uart: Fix out-of-bounds access through DT alias
	PCI: Add function 1 DMA alias quirk for Marvell 88SE9220
	udf: Provide saner default for invalid uid / gid
	media: cx25821: prevent out-of-bounds read on array card
	clk: samsung: s3c2410: Fix PLL rates
	clk: samsung: exynos5260: Fix PLL rates
	clk: samsung: exynos5433: Fix PLL rates
	clk: samsung: exynos5250: Fix PLL rates
	clk: samsung: exynos3250: Fix PLL rates
	crypto: sunxi-ss - Add MODULE_ALIAS to sun4i-ss
	audit: return on memory error to avoid null pointer dereference
	MIPS: Octeon: Fix logging messages with spurious periods after newlines
	drm/rockchip: Respect page offset for PRIME mmap calls
	x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified
	perf tests: Use arch__compare_symbol_names to compare symbols
	perf report: Fix memory corruption in --branch-history mode --branch-history
	selftests/net: fixes psock_fanout eBPF test case
	netlabel: If PF_INET6, check sk_buff ip header version
	scsi: lpfc: Fix issue_lip if link is disabled
	scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing
	scsi: lpfc: Fix frequency of Release WQE CQEs
	regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'
	ASoC: samsung: i2s: Ensure the RCLK rate is properly determined
	Bluetooth: btusb: Add device ID for RTL8822BE
	kdb: make "mdr" command repeat
	s390/ftrace: use expoline for indirect branches
	Linux 4.4.134

Change-Id: Iababaf9b89bc8d0437b95e1368d8b0a9126a178c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2018-05-30 13:25:24 +02:00