Commit graph

567618 commits

Author SHA1 Message Date
Dmitry Tunin
0412734732 Bluetooth: Add another AR3012 04ca:3018 device
am: 00cfdbf5ab

Change-Id: I391df4e63d6be18bf4d5e1b221e67f9409b2ab7c
2017-03-15 02:09:08 +00:00
Chao Peng
b0c04f1fbe KVM: VMX: use correct vmcs_read/write for guest segment selector/base
am: cae929bd8d

Change-Id: Icde3175a519f3b74723ad19d43fdfe2e99b01709
2017-03-15 02:08:58 +00:00
Janosch Frank
27dd3fdbc7 KVM: s390: Disable dirty log retrieval for UCONTROL guests
am: 0a3df0418d

Change-Id: Ie7d3d174fc58848cf16071c36ad1b1202795f9ce
2017-03-15 02:08:47 +00:00
Ian Abbott
37480b0d7e serial: 8250_pci: Add MKS Tenta SCOM-0800 and SCOM-0801 cards
am: 4b34572e98

Change-Id: If7b34c0bc49a3e77660e218aa4881628967968d2
2017-03-15 02:08:37 +00:00
Alexander Popov
e67441c33e tty: n_hdlc: get rid of racy n_hdlc.tbuf
am: 999853d941

Change-Id: Ie1fc1f51817dafc00dac0f380fa33047d7f9cfa8
2017-03-15 02:08:28 +00:00
Jiri Slaby
877dc8bce6 TTY: n_hdlc, fix lockdep false positive
am: 59c4d7838e

Change-Id: Ic6c91f3b505bb4883f85e1698d8729e7a6e040a6
2017-03-15 02:08:15 +00:00
Dmitry Tunin
00cfdbf5ab Bluetooth: Add another AR3012 04ca:3018 device
commit 441ad62d6c3f131f1dbd7dcdd9cbe3f74dbd8501 upstream.

T:  Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=04ca ProdID=3018 Rev=00.01
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-15 09:57:11 +08:00
Chao Peng
cae929bd8d KVM: VMX: use correct vmcs_read/write for guest segment selector/base
commit 96794e4ed4d758272c486e1529e431efb7045265 upstream.

Guest segment selector is 16 bit field and guest segment base is natural
width field. Fix two incorrect invocations accordingly.

Without this patch, build fails when aggressive inlining is used with ICC.

Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-15 09:57:11 +08:00
Janosch Frank
0a3df0418d KVM: s390: Disable dirty log retrieval for UCONTROL guests
commit e1e8a9624f7ba8ead4f056ff558ed070e86fa747 upstream.

User controlled KVM guests do not support the dirty log, as they have
no single gmap that we can check for changes.

As they have no single gmap, kvm->arch.gmap is NULL and all further
referencing to it for dirty checking will result in a NULL
dereference.

Let's return -EINVAL if a caller tries to sync dirty logs for a
UCONTROL guest.

Fixes: 15f36eb ("KVM: s390: Add proper dirty bitmap support to S390 kvm.")
Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com>
Reported-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-15 09:57:11 +08:00
Ian Abbott
4b34572e98 serial: 8250_pci: Add MKS Tenta SCOM-0800 and SCOM-0801 cards
commit 1c9c858e2ff8ae8024a3d75d2ed080063af43754 upstream.

The MKS Instruments SCOM-0800 and SCOM-0801 cards (originally by Tenta
Technologies) are 3U CompactPCI serial cards with 4 and 8 serial ports,
respectively.  The first 4 ports are implemented by an OX16PCI954 chip,
and the second 4 ports are implemented by an OX16C954 chip on a local
bus, bridged by the second PCI function of the OX16PCI954.  The ports
are jumper-selectable as RS-232 and RS-422/485, and the UARTs use a
non-standard oscillator frequency of 20 MHz (base_baud = 1250000).

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-15 09:57:11 +08:00
Alexander Popov
999853d941 tty: n_hdlc: get rid of racy n_hdlc.tbuf
commit 82f2341c94d270421f383641b7cd670e474db56b upstream.

Currently N_HDLC line discipline uses a self-made singly linked list for
data buffers and has n_hdlc.tbuf pointer for buffer retransmitting after
an error.

The commit be10eb7589
("tty: n_hdlc add buffer flushing") introduced racy access to n_hdlc.tbuf.
After tx error concurrent flush_tx_queue() and n_hdlc_send_frames() can put
one data buffer to tx_free_buf_list twice. That causes double free in
n_hdlc_release().

Let's use standard kernel linked list and get rid of n_hdlc.tbuf:
in case of tx error put current data buffer after the head of tx_buf_list.

Signed-off-by: Alexander Popov <alex.popov@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-15 09:57:10 +08:00
Jiri Slaby
59c4d7838e TTY: n_hdlc, fix lockdep false positive
commit e9b736d88af1a143530565929390cadf036dc799 upstream.

The class of 4 n_hdls buf locks is the same because a single function
n_hdlc_buf_list_init is used to init all the locks. But since
flush_tx_queue takes n_hdlc->tx_buf_list.spinlock and then calls
n_hdlc_buf_put which takes n_hdlc->tx_free_buf_list.spinlock, lockdep
emits a warning:
=============================================
[ INFO: possible recursive locking detected ]
4.3.0-25.g91e30a7-default #1 Not tainted
---------------------------------------------
a.out/1248 is trying to acquire lock:
 (&(&list->spinlock)->rlock){......}, at: [<ffffffffa01fd020>] n_hdlc_buf_put+0x20/0x60 [n_hdlc]

but task is already holding lock:
 (&(&list->spinlock)->rlock){......}, at: [<ffffffffa01fdc07>] n_hdlc_tty_ioctl+0x127/0x1d0 [n_hdlc]

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&(&list->spinlock)->rlock);
  lock(&(&list->spinlock)->rlock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

2 locks held by a.out/1248:
 #0:  (&tty->ldisc_sem){++++++}, at: [<ffffffff814c9eb0>] tty_ldisc_ref_wait+0x20/0x50
 #1:  (&(&list->spinlock)->rlock){......}, at: [<ffffffffa01fdc07>] n_hdlc_tty_ioctl+0x127/0x1d0 [n_hdlc]
...
Call Trace:
...
 [<ffffffff81738fd0>] _raw_spin_lock_irqsave+0x50/0x70
 [<ffffffffa01fd020>] n_hdlc_buf_put+0x20/0x60 [n_hdlc]
 [<ffffffffa01fdc24>] n_hdlc_tty_ioctl+0x144/0x1d0 [n_hdlc]
 [<ffffffff814c25c1>] tty_ioctl+0x3f1/0xe40
...

Fix it by initializing the spin_locks separately. This removes also
reduntand memset of a freshly kzallocated space.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-15 09:57:10 +08:00
Wei Wang
75a7736c2a uid_sys_stats: change to use rt_mutex
We see this happens multiple times in heavy workload in systrace
and AMS stuck in uid_lock.

Running process:        Process 953
Running thread: android.ui
State:  Uninterruptible Sleep
Start:
1,025.628 ms
Duration:
27,955.949 ms
On CPU:
Running instead:        system_server
Args:
{kernel callsite when blocked:: "uid_procstat_write+0xb8/0x144"}

Changing to rt_mutex can mitigate the priority inversion

Bug: 34991231
Bug: 34193533
Test: on marlin
Change-Id: I28eb3971331cea60b1075740c792ab87d103262c
Signed-off-by: Wei Wang <wvw@google.com>
2017-03-14 23:53:27 +00:00
Daniel Rosenberg
4b20ed9406 ANDROID: vfs: user permission2 in notify_change2
This allows filesystems to use their mount private data to
influence the permissions they use when attempting to touch.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 36228261
Change-Id: I1052319ba1c3ce5d5e586aa7f8a80c08851a5c7f
2017-03-14 15:54:59 -07:00
Daniel Rosenberg
d0b44039aa ANDROID: sdcardfs: Fix gid issue
We were already calculating most of these values,
and erroring out because the check was confused by this.
Instead of recalculating, adjust it as needed.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 36160015
Change-Id: I9caf3e2fd32ca2e37ff8ed71b1d392f1761bc9a9
2017-03-14 14:53:51 -07:00
Daniel Rosenberg
003515b560 ANDROID: sdcardfs: Use tabs instead of spaces in multiuser.h
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35331000
Change-Id: Ic7801914a7dd377e270647f81070020e1f0bab9b
2017-03-14 14:53:50 -07:00
Daniel Rosenberg
f1e5d00868 ANDROID: sdcardfs: Remove uninformative prints
At best these prints do not provide useful information, and
at worst, some allow userspace to abuse the kernel log.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 36138424
Change-Id: I812c57cc6a22b37262935ab77f48f3af4c36827e
2017-03-14 14:53:49 -07:00
Daniel Rosenberg
1a736af098 ANDROID: sdcardfs: move path_put outside of spinlock
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35643557
Change-Id: Ib279ebd7dd4e5884d184d67696a93e34993bc1ef
2017-03-14 14:53:49 -07:00
Daniel Rosenberg
8dbb44c8aa ANDROID: sdcardfs: Use case insensitive hash function
Case insensitive comparisons don't help us much if
we hash to different buckets...

Signed-off-by: Daniel Rosenberg <drosen@google.com>
bug: 36004503
Change-Id: I91e00dbcd860a709cbd4f7fd7fc6d855779f3285
2017-03-14 14:53:48 -07:00
Daniel Rosenberg
1e2f5dbfa3 ANDROID: sdcardfs: declare MODULE_ALIAS_FS
From commit ee616b78aa87 ("Wrapfs: declare MODULE_ALIAS_FS")

Signed-off-by: Daniel Rosenberg <drosen@google.com>
bug: 35766959
Change-Id: Ia4728ab49d065b1d2eb27825046f14b97c328cba
2017-03-14 14:53:47 -07:00
Daniel Rosenberg
f84495e490 ANDROID: sdcardfs: Get the blocksize from the lower fs
This changes sdcardfs to be more in line with the
getattr in wrapfs, which calls the lower fs's getattr
to get the block size

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 34723223
Change-Id: I1c9e16604ba580a8cdefa17f02dcc489d7351aed
2017-03-14 14:53:46 -07:00
Daniel Rosenberg
a5504f851a ANDROID: sdcardfs: Use d_invalidate instead of drop_recurisve
drop_recursive did not properly remove stale dentries.
Instead, we use the vfs's d_invalidate, which does the proper cleanup.

Additionally, remove the no longer used drop_recursive, and
fixup_top_recursive that that are no longer used.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: Ibff61b0c34b725b024a050169047a415bc90f0d8
2017-03-14 14:53:46 -07:00
Daniel Rosenberg
2c917ce671 ANDROID: sdcardfs: Switch to internal case insensitive compare
There were still a few places where we called into a case
insensitive lookup that was not defined by sdcardfs.
Moving them all to the same place will allow us to switch
the implementation in the future.

Additionally, the check in fixup_perms_recursive did not
take into account the length of both strings, causing
extraneous matches when the name we were looking for was
a prefix of the child name.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: I45ce768cd782cb4ea1ae183772781387c590ecc2
2017-03-14 14:53:45 -07:00
Daniel Rosenberg
371536f070 ANDROID: sdcardfs: Use spin_lock_nested
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 36007653
Change-Id: I805d5afec797669679853fb2bb993ee38e6276e4
2017-03-14 14:53:44 -07:00
Daniel Rosenberg
650cf58edf ANDROID: sdcardfs: Replace get/put with d_lock
dput cannot be called with a spin_lock. Instead,
we protect our accesses by holding the d_lock.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35643557
Change-Id: I22cf30856d75b5616cbb0c223724f5ab866b5114
2017-03-14 14:53:44 -07:00
Daniel Rosenberg
6693b94500 ANDROID: sdcardfs: rate limit warning print
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35848445
Change-Id: Ida72ea0ece191b2ae4a8babae096b2451eb563f6
2017-03-14 14:53:43 -07:00
Daniel Rosenberg
3009d53256 ANDROID: sdcardfs: Fix case insensitive lookup
The previous case insensitive lookup relied on the
entry being present in the dcache. This instead uses
iterate_dir to find the correct case.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
bug: 35633782
Change-Id: I556f7090773468c1943c89a5e2aa07f746ba49c5
2017-03-14 14:53:43 -07:00
Jin Qian
3f7fac35ec ANDROID: uid_sys_stats: account for fsync syscalls
Change-Id: Ie888d8a0f4ec7a27dea86dc4afba8e6fd4203488
Signed-off-by: Jin Qian <jinqian@google.com>
2017-03-14 13:07:19 -07:00
Jin Qian
a4f5f251e9 ANDROID: sched: add a counter to track fsync
Change-Id: I6c138de5b2332eea70f57e098134d1d141247b3f
Signed-off-by: Jin Qian <jinqian@google.com>
2017-03-14 13:07:19 -07:00
Jin Qian
5c866b0f8a ANDROID: uid_sys_stats: fix negative write bytes.
A task can cancel writes made by other tasks. In rare cases,
cancelled_write_bytes is larger than write_bytes if the task
itself didn't make any write. This doesn't affect total size
but may cause confusion when looking at IO usage on individual
tasks.

Bug: 35851986
Change-Id: If6cb549aeef9e248e18d804293401bb2b91918ca
Signed-off-by: Jin Qian <jinqian@google.com>
2017-03-14 13:07:19 -07:00
Jin Qian
5a420edf10 ANDROID: uid_sys_stats: allow writing same state
Signed-off-by: Jin Qian <jinqian@google.com>
Bug: 34360629
Change-Id: Ia748351e07910b1febe54f0484ca1be58c4eb9c7
2017-03-14 13:07:19 -07:00
Jin Qian
6a61b529b4 ANDROID: uid_sys_stats: rename uid_cputime.c to uid_sys_stats.c
This module tracks cputime and io stats.

Signed-off-by: Jin Qian <jinqian@google.com>
Bug: 34198239
Change-Id: I9ee7d9e915431e0bb714b36b5a2282e1fdcc7342
2017-03-14 13:07:19 -07:00
Jin Qian
bce3e4dd9d ANDROID: uid_cputime: add per-uid IO usage accounting
IO usages are accounted in foreground and background buckets.
For each uid, io usage is calculated in two steps.

delta = current total of all uid tasks - previus total
current bucket += delta

Bucket is determined by current uid stat. Userspace writes to
/proc/uid_procstat/set <uid> <stat> when uid stat is updated.

/proc/uid_io/stats shows IO usage in this format.
<uid> <foreground IO> <background IO>

Signed-off-by: Jin Qian <jinqian@google.com>
Bug: 34198239
Change-Id: Ib8bebda53e7a56f45ea3eb0ec9a3153d44188102
2017-03-14 13:07:19 -07:00
Chris Redpath
a2849d4502 DTB: Add EAS compatible Juno Energy model to 'juno.dts'
EAS expects the energy model for the CPUs and cluster states to be
available in the DTB. The energy model data comes from previous versions.

Change-Id: I87535c8d802797361333929d809b43383bc8954b
(cherry picked from commit bf137f205f312a1814ae38f908ec7bdbdddeaa3e (LSK 4.4))
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2017-03-14 16:38:54 +00:00
Jon Medhurst (Tixy)
174a03a0bd arm64: dts: juno: Add idle-states to device tree
This patch adds idle-states bindings data collected through a set of
benchmarking experiments (latency and energy consumption) on Juno
boards. Latencies data represents the worst case scenarios as required
by the DT idle-states bindings.

Change-Id: I7b2d81fa66f8ce8b229457cfefff06e9edd545c7
(cherry picked from commit 286896f43b0248960f69660159b507b23751b38a)
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2017-03-14 14:48:31 +00:00
Mohan Srinivasan
6f4a2453a1 ANDROID: Replace spaces by '_' for some android filesystem tracepoints.
Andoid files frequently have spaces in them, as do cmdline strings.
Replace these spaces with '_', so tools that parse these tracepoints
don't get terribly confused.

Change-Id: I1cbbedf5c803aa6a58d9b8b7836e9125683c49d1
Signed-off-by: Mohan Srinivasan <srmohan@google.com>
(cherry picked from commit 5035d5f0933758dd515327d038e5bef7e40dbaa7)
2017-03-13 21:05:29 +00:00
Anson Jacob
f52e71a12e usb: gadget: f_accessory: Fix for UsbAccessory clean unbind.
Reapplying fix by Darren Whobrey (Change 69674)

Fixes issues: 20545, 59667 and 61390.
With prior version of f_accessory.c, UsbAccessories would not
unbind cleanly when application is closed or i/o stopped
while the usb cable is still connected. The accessory gadget
driver would be left in an invalid state which was not reset
on subsequent binding or opening. A reboot was necessary to clear.

In some phones this issues causes the phone to reboot upon
unplugging the USB cable.

Main problem was that acc_disconnect was being called on I/O error
which reset disconnected and online.

Minor fix required to properly track setting and unsetting of
disconnected and online flags. Also added urb Q wakeup's on unbind
to help unblock waiting threads.

Tested on Nexus 7 grouper. Expected behaviour now observed:
closing accessory causes blocked i/o to interrupt with IOException.
Accessory can be restarted following closing of file handle
and re-opening.

This is a generic fix that applies to all devices.

Change-Id: I4e08b326730dd3a2820c863124cee10f7cb5501e
Signed-off-by: Darren Whobrey <d.whobrey@mildai.org>
Signed-off-by: Anson Jacob <ansonjacob.aj@gmail.com>
2017-03-13 18:02:03 +00:00
Greg Kroah-Hartman
210bb28de0 Linux 4.4.53
am: 49616e7150

Change-Id: I8adb4630ce5ba2914bdf855fa8d3e18f164568a6
2017-03-12 08:25:46 +00:00
James Smart
7a261de18b scsi: lpfc: Correct WQ creation for pagesize
am: 9cee694650

Change-Id: I7b132ed755a070e95d41c0878238c829c91bc72d
2017-03-12 08:25:36 +00:00
Ralf Baechle
982f933a98 MIPS: IP22: Fix build error due to binutils 2.25 uselessnes.
am: 1d316060ca

Change-Id: Ic33bab057aa50274c447fcf81b62f0364432a095
2017-03-12 08:25:25 +00:00
Ralf Baechle
70d964e55e MIPS: IP22: Reformat inline assembler code to modern standards.
am: 4dd29050e4

Change-Id: I816af3e46a084f1980b18a80bae8b722af738d24
2017-03-12 08:25:15 +00:00
Ravi Bangoria
d32b060094 powerpc/xmon: Fix data-breakpoint
am: 15959b728d

Change-Id: I279706aa282690643745bc98005c2a3958701be9
2017-03-12 08:25:05 +00:00
Magnus Lilja
8ac43efa58 dmaengine: ipu: Make sure the interrupt routine checks all interrupts.
am: afee78f03e

Change-Id: I7b67e6fe82f33fe1a7cc32ac0e28f6c99bea87b0
2017-03-12 08:24:54 +00:00
Rafa Miecki
36f519a6bd bcma: use (get|put)_device when probing/removing device driver
am: 79a7ff1443

Change-Id: I3356c2eb32abf2e6d9cfb2152642349caba5941b
2017-03-12 08:24:45 +00:00
colyli@suse.de
3ff14c70fe md linear: fix a race between linear_add() and linear_congested()
am: 5a1f03f1ee

Change-Id: I3fd7c0c0cbf911b61d8aca203a75e13e698d7840
2017-03-12 08:24:35 +00:00
Maxime Ripard
25c567c768 rtc: sun6i: Switch to the external oscillator
am: 037cd23726

Change-Id: If84426848aa7178fc564d0bdaac39babd56e04ba
2017-03-12 08:24:25 +00:00
Maxime Ripard
c3482409de rtc: sun6i: Add some locking
am: ee360e99da

Change-Id: I0aaebc20574db0f6c3ebde4e0db355b4c6f12a1c
2017-03-12 08:24:16 +00:00
Weston Andros Adamson
ec8e7f39b4 NFSv4: fix getacl ERANGE for some ACL buffer sizes
am: a0378b5bfc

Change-Id: I4e78d196a895302acaac4ce91b1c72613ca3563a
2017-03-12 08:24:07 +00:00
J. Bruce Fields
27a9c6c0f3 NFSv4: fix getacl head length estimation
am: 5d23e89065

Change-Id: I6fe895f8a7cbd023c380ec78803e0ed5a4abaa35
2017-03-12 08:23:58 +00:00
Trond Myklebust
58c1c0b371 NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
am: 52fb4bdcea

Change-Id: Ib5b96d8d3c2f97ae498aaecf58a5b2db01552478
2017-03-12 08:23:48 +00:00