Commit graph

824682 commits

Author SHA1 Message Date
Stephen Boyd
a9ca321716 - Add G12A Always-On Clock Controller
- Fix Meson8 APB clock ID name
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcY9seAAoJEHfc29rIyEnRgh8P/1tanqiyRXZIaHDweCMk3WVq
 +f6e50Kry/54TMZ1jNojsr7r22xHhjFGBy5dkAAXvsrAet0gXmWXtV7M8nE2h0wN
 mz4h10JVlsyCxa5QDJEKMHP8lGz5Z40C1GVFEZcV/YoHjgeIFgAkeoAhkfh3SLlY
 T22cSfO1oJ3NRXW5xh+902P+w317zCp0sjJ5RhbxT+30jHy9caA72xpByB6u6gsY
 1CmxEA0POtY8JI0VI76ZQRtI+A9S1BGXSIqT2ErCFgPP13DLNzZyk3Hk2bqkpKxj
 CaP2w7WT8nkhTB00qHfr5Qg7tvamVfdc0ENtLP75VjG7f1UW2qu1ER37KwWYnfDP
 lv9vB4k+ZeQ7vxbRfi7spkairV7MN5bvECE4yPUaaVe5Uxw6Pf5X5WGvsbeenI/7
 xbIy2HaxlmxFljgPwPPWpzAF3whFqGBU30u39drJVyvGxKLfGB619u95F+pPLWD4
 +MFSKHzJ6hkgl4/182LYTQ5DrpbRWX6NWOlTUjnIWR+kIaZMj1XZEF/AKBLYBGfS
 KhrZRgaE8dxPag4RdTu4mQQ/bf3RMKCJQQPoYsOsCr/Z02h2uArwo5dpV0DJX/nS
 MNV1u5TTlURSlh6CSrBc7u5AjYfgX76rGlGnGSxgHC0P09zTEP5HqZv9GEfc/cIh
 8nL7U9wHOM+hHVmE8xNE
 =/nji
 -----END PGP SIGNATURE-----

Merge tag 'meson-clk-5.1-2' of https://github.com/BayLibre/clk-meson into clk-meson

Pull another set of Amlogic clk drivers updates from Neil Armstrong:
 - Add G12A Always-On Clock Controller
 - Fix Meson8 APB clock ID name

* tag 'meson-clk-5.1-2' of https://github.com/BayLibre/clk-meson:
  clk: meson: meson8b: fix the naming of the APB clocks
  dt-bindings: clock: meson8b: add APB clock definition
  clk: meson: Add G12A AO Clock + Reset Controller
  dt-bindings: clk: add G12A AO Clock and Reset Bindings
2019-02-15 16:14:31 -08:00
Paul Burton
1910faebf6 MIPS: eBPF: Remove REG_32BIT_ZERO_EX
REG_32BIT_ZERO_EX and REG_64BIT are always handled in exactly the same
way, and reg_val_propagate_range() never actually sets any register to
type REG_32BIT_ZERO_EX.

Remove the redundant & unused REG_32BIT_ZERO_EX.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-02-16 01:10:06 +01:00
Paul Burton
13443154f6 MIPS: eBPF: Always return sign extended 32b values
The function prototype used to call JITed eBPF code (ie. the type of the
struct bpf_prog bpf_func field) returns an unsigned int. The MIPS n64
ABI that MIPS64 kernels target defines that 32 bit integers should
always be sign extended when passed in registers as either arguments or
return values.

This means that when returning any value which may not already be sign
extended (ie. of type REG_64BIT or REG_32BIT_ZERO_EX) we need to perform
that sign extension in order to comply with the n64 ABI. Without this we
see strange looking test failures from test_bpf.ko, such as:

  test_bpf: #65 ALU64_MOV_X:
    dst = 4294967295 jited:1 ret -1 != -1 FAIL (1 times)

Although the return value printed matches the expected value, this is
only because printf is only examining the least significant 32 bits of
the 64 bit register value we returned. The register holding the expected
value is sign extended whilst the v0 register was set to a zero extended
value by our JITed code, so when compared by a conditional branch
instruction the values are not equal.

We already handle this when the return value register is of type
REG_32BIT_ZERO_EX, so simply extend this to also cover REG_64BIT.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Fixes: b6bd53f9c4 ("MIPS: Add missing file for eBPF JIT.")
Cc: stable@vger.kernel.org # v4.13+
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-02-16 01:10:06 +01:00
Peter Oskolkov
b251f9f63a bpf: make LWTUNNEL_BPF dependent on INET
Lightweight tunnels are L3 constructs that are used with IP/IP6.

For example, lwtunnel_xmit is called from ip_output.c and
ip6_output.c only.

Make the dependency explicit at least for LWT-BPF, as now they
call into IP routing.

V2: added "Reported-by" below.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Peter Oskolkov <posk@google.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-02-16 01:06:30 +01:00
Stephen Boyd
d8c22b32a6 - add 32k clock generation for AXG
- add support for the Mali GPU clocks for Meson8
 - claim input clocks through DT for AXG and GXBB
 - rework drivers dependencies among meson clock drivers
 - add G12A EE clock controller driver
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcXDAEAAoJEHfc29rIyEnRrIAQAMcNKF9VWYezaoPng5kr1SH0
 PUIihO7m4suuzd77aomP+rQlhOosPa/QemY8h9aNyEjlgVsu+zVSOT1daMxd9Jzx
 ylsy57D0NtzfnHBy9CRPLzoBflu0wFyETtRMKQ2Yl/Kj1C+fTYjljxD9eZQl+DUM
 UCu4bEpBFWI1hD3ty+4Etu/kO9kZ1uoQLOf7Q33cC2ItQvtHqCwr/zlncwysFkrx
 q+Tt5UzSmL65niHGDKe9C4VkxxKtQuIIkdqOV7zS89tJIE3+B1yYwbms53bMztyK
 p+oQYV3PLbiv/m89fVWzzf6qOeBTgL6dwJMXgR3a6z7TDHhPelGTENiZy/TtS+7d
 8OlEH+NO79tax1uuUdvf0T2R0faBLe5ghL4XxSrZJMA6cinFCNbOcsx0a6K0O6vi
 ovQxGK3bbvCHRcD/P5N8cTu5F89L6ohm3e4MQB1w2U+Wjcm1ECADASp0gCbhXTCO
 qwfXNv2C28kFKDuyuHqBOMd4rZsTilbvCsEmNXzQZN52IP1Lv6KcdQYCTVqPJ2dj
 46kIiAWdaUamugco4yM2t0A/ir1bqGaivIIrqnagnnvBaZTOdvh4eTAmka/b0Khc
 2CbW6EBmF+PC+L7waCKw4fgLMwN1/pU9q7A4eYNaGNb89CZY2Sj0SBvH+f/qfx6w
 kkH06tFFgnCPocKoliHP
 =Z/eV
 -----END PGP SIGNATURE-----

Merge tag 'tags/meson-clk-5.1' of https://github.com/BayLibre/clk-meson into clk-meson

Pull Amlogic clk driver updates from Neil Armstrong:
 - add 32k clock generation for AXG
 - add support for the Mali GPU clocks for Meson8
 - claim input clocks through DT for AXG and GXBB
 - rework drivers dependencies among meson clock drivers
 - add G12A EE clock controller driver

* tag 'tags/meson-clk-5.1' of https://github.com/BayLibre/clk-meson:
  clk: meson: factorise meson64 peripheral clock controller drivers
  clk: meson: g12a: add peripheral clock controller
  dt-bindings: clk: meson: add g12a periph clock controller bindings
  clk: meson: pll: update driver for the g12a
  clk: meson: rework and clean drivers dependencies
  clk: meson: axg-audio does not require syscon
  clk: meson: use CONFIG_ARCH_MESON to enter meson clk directory
  clk: export some clk_hw function symbols for module drivers
  clk: meson: ao-clkc: claim clock controller input clocks from DT
  clk: meson: axg: claim clock controller input clock from DT
  clk: meson: gxbb: claim clock controller input clock from DT
  clk: meson: meson8b: add the GPU clock tree
  clk: meson: meson8b: use a separate clock table for Meson8
  clk: meson: axg-ao: add 32k generation subtree
  clk: meson: gxbb-ao: replace cec-32k with the dual divider
  clk: meson: add dual divider clock driver
  clk: meson: clean-up clock registration
  dt-bindings: clk: meson: add ao slow clock path ids
2019-02-15 15:59:54 -08:00
Stephen Boyd
da392a5ab4 Allwinner clock changes for 5.1
Just a single non-urgent fix for the PLL-MIPI on the A23
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXF1cogAKCRDj7w1vZxhR
 xR6OAP4iHkbMnZK+EYoCIsFJ10bdFDSlorMDRshP+W4XIOFcrQEAj1eqSJe9aTPU
 UIx0jZC+qjap29nVc2Wuxh1PARhtOQ0=
 =5mEk
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-clk-for-5.1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner

Pull Allwinner clock changes from Maxime Ripard:

 - non-urgent fix for the PLL-MIPI on the A23

* tag 'sunxi-clk-for-5.1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  clk: sunxi-ng: sun8i-a23: Enable PLL-MIPI LDOs when ungating it
2019-02-15 15:58:37 -08:00
Johan Jonker
51b99b3905 ARM: dts: rockchip: remove cap-mmc-highspeed from rk3188-bqedison2qc mmc1 node
The mmc1 pins are used for SDIO with a wifi chip.
The function mmc_sdio_switch_hs() only checks for MMC_CAP_SD_HIGHSPEED and
not for MMC_CAP_MMC_HIGHSPEED, so cap-mmc-highspeed can be removed.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-02-16 00:09:08 +01:00
Kaike Wan
e50838c27f IB/hfi1: Fix a build warning for TID RDMA READ
The following build warning was produced for the TID RDMA READ
patch ("IB/hfi1: Enable TID RDMA READ protocol"):

drivers/infiniband/hw/hfi1/qp.c: In function 'hfi1_setup_wqe':
drivers/infiniband/hw/hfi1/qp.c:328:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
   hfi1_setup_tid_rdma_wqe(qp, wqe);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/infiniband/hw/hfi1/qp.c:329:2: note: here
  case IB_QPT_UC:
  ^~~~

This patch will fix the issue by adding the "fall through" comment.

Fixes: f1ab4efa6d ("IB/hfi1: Enable TID RDMA READ protocol")
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-02-15 15:55:50 -07:00
Jason Gunthorpe
9a7786784d RDMA/uverbs: Fix an error flow in ib_uverbs_poll_cq
The new output_written block was wrongly placed before the ret=0, causing
the error code to be lost. uverbs_output_written is not expected to fail,
and even if it does fail it has no significant impact on the userspace
flow.

Reported-by: Bart Van Assche <bvanassche@acm.org>
Fixes: d6f4a21f30 ("RDMA/uverbs: Mark ioctl responses with UVERBS_ATTR_F_VALID_OUTPUT")
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
2019-02-15 15:54:46 -07:00
Shamir Rabinovitch
8994445054 IB/{hw,sw}: Remove 'uobject->context' dependency in object creation APIs
Now when we have the udata passed to all the ib_xxx object creation APIs
and the additional macro 'rdma_udata_to_drv_context' to get the
ib_ucontext from ib_udata stored in uverbs_attr_bundle, we can finally
start to remove the dependency of the drivers in the
ib_xxx->uobject->context.

Signed-off-by: Shamir Rabinovitch <shamir.rabinovitch@oracle.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-02-15 15:38:38 -07:00
Andy Gross
32616b2121 soc: qcom: llcc-slice: Fix typos
This patch fixes typos in the llcc-slice driver.

Fixes: 72d1cd0331 ("qcom: soc: llcc-slice: Clear the global drv_data pointer on error")

Signed-off-by: Andy Gross <andy.gross@linaro.org>
2019-02-15 16:30:34 -06:00
Paul Burton
462fb81b26
MIPS: CM: Fix indentation
mips_cm_error_report() contains a function call that's incorrectly
indented a level further than it ought to be. Remove a tab from the
start of both affected lines.

Signed-off-by: Paul Burton <paul.burton@mips.com>
2019-02-15 14:22:44 -08:00
David Howells
7c1857bdbd keys: Timestamp new keys
Set the timestamp on new keys rather than leaving it unset.

Fixes: 31d5a79d7f ("KEYS: Do LRU discard in full keyrings")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <james.morris@microsoft.com>
2019-02-15 14:12:09 -08:00
David Howells
822ad64d7e keys: Fix dependency loop between construction record and auth key
In the request_key() upcall mechanism there's a dependency loop by which if
a key type driver overrides the ->request_key hook and the userspace side
manages to lose the authorisation key, the auth key and the internal
construction record (struct key_construction) can keep each other pinned.

Fix this by the following changes:

 (1) Killing off the construction record and using the auth key instead.

 (2) Including the operation name in the auth key payload and making the
     payload available outside of security/keys/.

 (3) The ->request_key hook is given the authkey instead of the cons
     record and operation name.

Changes (2) and (3) allow the auth key to naturally be cleaned up if the
keyring it is in is destroyed or cleared or the auth key is unlinked.

Fixes: 7ee02a316600 ("keys: Fix dependency loop between construction record and auth key")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <james.morris@microsoft.com>
2019-02-15 14:12:09 -08:00
David Howells
bb2ba2d75a assoc_array: Fix shortcut creation
Fix the creation of shortcuts for which the length of the index key value
is an exact multiple of the machine word size.  The problem is that the
code that blanks off the unused bits of the shortcut value malfunctions if
the number of bits in the last word equals machine word size.  This is due
to the "<<" operator being given a shift of zero in this case, and so the
mask that should be all zeros is all ones instead.  This causes the
subsequent masking operation to clear everything rather than clearing
nothing.

Ordinarily, the presence of the hash at the beginning of the tree index key
makes the issue very hard to test for, but in this case, it was encountered
due to a development mistake that caused the hash output to be either 0
(keyring) or 1 (non-keyring) only.  This made it susceptible to the
keyctl/unlink/valid test in the keyutils package.

The fix is simply to skip the blanking if the shift would be 0.  For
example, an index key that is 64 bits long would produce a 0 shift and thus
a 'blank' of all 1s.  This would then be inverted and AND'd onto the
index_key, incorrectly clearing the entire last word.

Fixes: 3cb989501c ("Add a generic associative array implementation.")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <james.morris@microsoft.com>
2019-02-15 14:12:08 -08:00
Eric Biggers
a08bf91ce2 KEYS: allow reaching the keys quotas exactly
If the sysctl 'kernel.keys.maxkeys' is set to some number n, then
actually users can only add up to 'n - 1' keys.  Likewise for
'kernel.keys.maxbytes' and the root_* versions of these sysctls.  But
these sysctls are apparently supposed to be *maximums*, as per their
names and all documentation I could find -- the keyrings(7) man page,
Documentation/security/keys/core.rst, and all the mentions of EDQUOT
meaning that the key quota was *exceeded* (as opposed to reached).

Thus, fix the code to allow reaching the quotas exactly.

Fixes: 0b77f5bfb4 ("keys: make the keyring quotas controllable through /proc/sys")
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <james.morris@microsoft.com>
2019-02-15 14:12:08 -08:00
Hong Liu
09cc8b3618 HID: intel-ish-hid: remove data[128] usage on stack when sending HBM request
Instead of using an 128-byte on-stack array to store the request, we can
instantiate the request on stack directly. This can save the stack usage of
these functions, since most of the requests are much smaller than 128 bytes.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Tested-by: Hongyan Song <hongyan.song@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2019-02-15 22:47:21 +01:00
Hong Liu
7e06e0d549 HID: intel-ish-hid: move doorbell writing before flush
Reading of IPC_REG_ISH_HOST_FWSTS will flush both message register
and doorbell. So move the doorbell write before reading of
IPC_REG_ISH_HOST_FWSTS.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Tested-by: Hongyan Song <hongyan.song@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2019-02-15 22:47:21 +01:00
Hong Liu
b22f805bbe HID: intel-ish-hid: Optimize writing ipc message from queue
Currently we are using one additional static variable and a spinlock to
prevent contention of writing IPC messages to ISH hardware, which is
not necessary. Once ISH is ready to accept new data, we can push new
data to hardware. This pushing of new data is already protected by
wr_processing_spinlock for contention, which is enough. So use this
spinlock to check both readiness for accepting new data and once ready
allow writing of ipc message from queue to ISH hardware.

While here, cleaned up some space after return.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Tested-by: Hongyan Song <hongyan.song@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2019-02-15 22:47:21 +01:00
Hong Liu
0d28f49412 HID: intel-ish-hid: avoid binding wrong ishtp_cl_device
When performing a warm reset in ishtp bus driver, the ishtp_cl_device
will not be removed, its fw_client still points to the already freed
ishtp_device.fw_clients array.

Later after driver finishing ishtp client enumeration, this dangling
pointer may cause driver to bind the wrong ishtp_cl_device to the new
client, causing wrong callback to be called for messages intended for
the new client.

This helps in development of firmware where frequent switching of
firmwares is required without Linux reboot.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Tested-by: Hongyan Song <hongyan.song@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2019-02-15 22:47:21 +01:00
Colin Ian King
bb0e9b1d2a i2c: tegra: change phrasing, "fallbacking" to "falling back"
The phrasing in two dev_err messages is using fallbacking which
os less understandable than "falling back", so fix this up.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2019-02-15 22:42:34 +01:00
Linus Torvalds
5ded587103 SCSI fixes on 20190215
Two fairly small fixes: the qla one is a panic inducing use after free
 and the entropy fix may seem minor but it has had huge userspace
 impact thanks to an unrelated change in openssl that causes sshd to
 refuse logins until it has enough entropy for the session keys, which
 causes tens of minutes delay before the affected systems allow logins
 after reboot.
 
 Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com>
 -----BEGIN PGP SIGNATURE-----
 
 iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCXGb2iiYcamFtZXMuYm90
 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishfPmAQD/eR6G
 RkGbnLfXMcP5EfAnEJAYoD8SJsR7UAAV7tdaWwEAihagqOiFmzbDKlceahaZFl27
 mizmOjw4EnpIDG2W3Qw=
 =BGnV
 -----END PGP SIGNATURE-----

Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
 "Two fairly small fixes: the qla one is a panic inducing use after free
  and the entropy fix may seem minor but it has had huge userspace
  impact thanks to an unrelated change in openssl that causes sshd to
  refuse logins until it has enough entropy for the session keys, which
  causes tens of minutes delay before the affected systems allow logins
  after reboot"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: qla2xxx: Fix panic from use after free in qla2x00_async_tm_cmd
  scsi: sd: fix entropy gathering for most rotational disks
2019-02-15 13:36:43 -08:00
David S. Miller
3313da8188 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
The netfilter conflicts were rather simple overlapping
changes.

However, the cls_tcindex.c stuff was a bit more complex.

On the 'net' side, Cong is fixing several races and memory
leaks.  Whilst on the 'net-next' side we have Vlad adding
the rtnl-ness support.

What I've decided to do, in order to resolve this, is revert the
conversion over to using a workqueue that Cong did, bringing us back
to pure RCU.  I did it this way because I believe that either Cong's
races don't apply with have Vlad did things, or Cong will have to
implement the race fix slightly differently.

Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-15 12:38:38 -08:00
Mika Westerberg
bbe54ea533 PCI: pciehp: Disable Data Link Layer State Changed event on suspend
Commit 0e157e5286 ("PCI/PME: Implement runtime PM callbacks") tried to
solve an issue where the hierarchy immediately wakes up when it is
transitioned into D3cold.  However, it turns out to prevent PME
propagation on some systems that do not support D3cold.

I looked more closely at what might cause the immediate wakeup.  It happens
when the ACPI power resource of the root port is turned off.  The AML code
associated with the _OFF() method of the ACPI power resource starts a PCIe
L2/L3 Ready transition and waits for it to complete.  Right after the L2/L3
Ready transition is started the root port receives a PME from the
downstream port.

The simplest hierarchy where this happens looks like this:

  00:1d.0 PCIe Root Port
    ^
    |
    v
    05:00.0 PCIe switch #1 upstream port
      06:01.0 PCIe switch #1 downstream hotplug port
        ^
        |
        v
        08:00.0 PCIe switch #2 upstream port

It seems that the PCIe link between the two switches, before
PME_Turn_Off/PME_TO_Ack is complete for the whole hierarchy, goes
inactive and triggers PME towards the root port bringing it back to D0.
The L2/L3 Ready sequence is described in PCIe r4.0 spec sections 5.2 and
5.3.3 but unfortunately they do not state what happens if DLLSCE is
enabled during the sequence.

Disabling Data Link Layer State Changed event (DLLSCE) seems to prevent
the issue and still allows the downstream hotplug port to notice when a
device is plugged/unplugged.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=202593
Fixes: 0e157e5286 ("PCI/PME: Implement runtime PM callbacks")
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
CC: stable@vger.kernel.org	# v4.20+
2019-02-15 14:18:00 -06:00
Arnd Bergmann
bf5db21cb9 Qualcomm Device Tree Changes for v5.1 - Part 2
* Fix MSI IRQ type on IPQ4019
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcZxM7AAoJEFKiBbHx2RXVrIoP/jWiWBO/wjenfTZFT7Xusi24
 fB3VsRfy+0cqeMGjn2OI16kzOdwzU9te8/MgMfgoGEdKxnoEPdbkRjeu/3xyQCGG
 HaeC6Sfg0gDs3X2cZ7ltW2CCZdINiD45IyMFNqkP18S91DwjUIV0AcZY1l/lxK4l
 jCsWbb+xQ9oK+dDCFg2d2/u5c7w+fUVK44NQOOD9Rx7474rWJuJ0XP4RbMAZo5bP
 wbX0Sybfy6Gojg8ST9XOVPtEO/gV7a8QWyWv6nSrJV0yit9kFOYeCJbm1nd34kla
 YDlRDPJ3yUC37/BIICyM88HXi0Hnatxs+r/WO1eKmn62Dfuu8xz85oxDKxF8K/kU
 8VVAu2DkZPDNSstbE4ckOWkDfwYtalYxhBXsf5bRAlO9K7johVpomqMuN99gqbxi
 qHCkO+utymsiFrK//25O66P2w9oNK9mjeBdbiirxvYKEXqcNiaXjrNpwzjdsPjRf
 Q8edA6TB5bbF87AY2+mxwxbYUakLVMHqAXVhbX8F9rqs018zsMzhW/vgUPH0p+ST
 MrwcLRbE47fJcDX9n5sZfVAnNc5PDj75UYQ+lFeMUdi0Uxnj2J9RDoMZhMS1vsGt
 tv59BZ92e4s+tfzWOlmwG7gPxKTj0x2LSuqULoQEVI3X0Mb6dPYuR9res3piglfI
 t95boSlehuWRkmFHyb6j
 =x132
 -----END PGP SIGNATURE-----

Merge tag 'qcom-dts-for-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/dt

Qualcomm Device Tree Changes for v5.1 - Part 2

* Fix MSI IRQ type on IPQ4019

* tag 'qcom-dts-for-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  ARM: dts: qcom: ipq4019: Fix MSI IRQ type

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 21:01:44 +01:00
Honghui Zhang
f0cfecea8d PCI/portdrv: Support PCIe services on subtractive decode bridges
The Class Code for subtractive decode PCI-to-PCI bridge is 060401h; add an
entry to make portdrv support this type of bridge.  This allows use of PCIe
services on subtractive decode ports.

Signed-off-by: Honghui Zhang <honghui.zhang@mediatek.com>
[bhelgaas: add braces surrounding entry]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2019-02-15 13:58:20 -06:00
Scott Mayhew
e7afe6c1d4 sunrpc: fix 4 more call sites that were using stack memory with a scatterlist
While trying to reproduce a reported kernel panic on arm64, I discovered
that AUTH_GSS basically doesn't work at all with older enctypes on arm64
systems with CONFIG_VMAP_STACK enabled.  It turns out there still a few
places using stack memory with scatterlists, causing krb5_encrypt() and
krb5_decrypt() to produce incorrect results (or a BUG if CONFIG_DEBUG_SG
is enabled).

Tested with cthon on v4.0/v4.1/v4.2 with krb5/krb5i/krb5p using
des3-cbc-sha1 and arcfour-hmac-md5.

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2019-02-15 14:56:51 -05:00
Arnd Bergmann
5aa8f495d6 Qualcomm ARM Based Driver Updates for v5.1 - Part 2
* Fixups/Cleanup for Qualcomm LLCC
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcZxHLAAoJEFKiBbHx2RXV6cwP/jCRdTI6gXaUcbrSoDdN5LZt
 SffUYjYdde/ppYAK+XucjFCzL9+D9G+NYXP9lsRZMDPBcEWf1xlRqxQA29PMIJt1
 c70etrr9zeq0EGFxtfAZIYo5cHRKORDDv7ZfwWhHMwCjEdqKzRYN+CMxTsLBgP1a
 zIPDTZ3WbKUboB/XPcedRAfHStgn7DiF6Xbi3MOxsGW/zprBejPAQyKaOPvMdHuV
 4jU8zdI0RvjXDrjHFcJ01L18cUMiWX6jFhjyR/hcBir41cR8WCD70X+zviH5KtoX
 b9pnDjFRlfSiXbB9lxCWPycPrpy2DJ9rNVypn7Me37ZpLkdUCV5BZAY7WntniZlw
 MoMn+DZSwwYjIg532w84bY2oDHDwhqm+cW3iu6O+hLTlZ+djCDV2P4d2dQJ/6jzC
 dZyugSwwkjLLE7V4VfZdTCIDdjOthqocBc7cOAPke3F4dsQmeODBHcbAm22pFtVu
 TeLLhllrC+Ou4Xho/53jP7VNMkaDiRyxFdQuXOoLX8MRAWg9OvFgubR/XdVHK1Pa
 u52joTwGXLqTVfEKZnA2Kb4QZ6rg9CdfFh1YpLPJr00Uwd91DpVrRPMRMFRtWhQk
 4um3qYIkSnWNHQoPC2XndwvWbUYmDhnGBTXnHA6SR/u6OmFdgpIF0OnKmCX6Ts6L
 LsA1hID91DzsYXsqu3eb
 =URKt
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-for-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/drivers

Qualcomm ARM Based Driver Updates for v5.1 - Part 2

* Fixups/Cleanup for Qualcomm LLCC

* tag 'qcom-drivers-for-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  qcom: soc: llcc-slice: Consolidate some code
  qcom: soc: llcc-slice: Clear the global drv_data pointer on error

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:50:20 +01:00
Bjorn Helgaas
c89f7f98c9 PCI/portdrv: Use conventional Device ID table formatting
The pci_device_id table was technically correct, but unusually formatted,
which made adding entries error-prone.  Change the format so it's obvious
how to add entries.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2019-02-15 13:49:18 -06:00
Arnd Bergmann
29cf2ee3b5 Qualcomm ARM64 Updates for v5.1
* Add MSM8998 RPMCC, I2C, and USB related nodes
 * Add MSM8996 rpmpd node
 * Fix typo in MSM8996 pin definitions
 * Disable MSM8996 VFE smmu to fix security violation
 * Add I2C, SPI, rpmcc, uart, and WCN3990 wlan nodes on QCS404
 * Enable SDCC1 HS400 support on QCS404
 * Add a multitude of nodes on SDM845:
   SD, UFS, USB, LPASS, SCM, QSPI, PDC, DPU, videocc, GPU, RPMh
   bus interconnect, WCN3990 WLAN
 * Add gpio ranges to SDM845 TLMM
 * Fix regulator load on sdcard on MSM8998-mtp board
 * Add thermal trip points to cpufreq
 * Add SDM845 IOMMU info for SDHC, USB, and WLAN
 * Fix MSM8916 clock cell argument
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcZxDLAAoJEFKiBbHx2RXVWGgP/080wwgcj0gJP31orLypfSJa
 9UYndhjdEVpomP3YOKNCUMyGO5MtQAIPXF3yPO30UER4mUsjDYmtZhlhIGPHDy3w
 1ZAjIKPBb/9ujz3+/A4VHTVnySdgAdGDhUfXsae8cu+/55GGcbspbvev0Mt81QXm
 n5Wk0rI2LDJsVKoV5PVV/YuWZgf7cycvW7b3kGKDD9mckbJ4IJZqXOQ+3sd8Gal+
 RSS3l82ndKTJ8fugHxCroxAbS0CqPESqd8X/nopNdM3z2c4jlDd57v3NpygyfPQ6
 /zKergRb02j4YqsB7Gv9m868beqmGjrmbAov1+v1MMEztoobSPwQZK/dkerHz5yf
 e1K1dYHHnpvDA5sYZwNlTge/IojMZy5Rsm1Fs8ZQxun+6RrjfHW7QJbgQkcE2l/i
 ISjRPUQTOGN2d+6XfoIRu76m13A7H9LiutW2IG10p6vFrwePuE3hwCO5XH2puAak
 +1k4g+nBgzRlx+u01qKHqZq7nQwYfCq+fW3yqYOsepYTmaLUcT8+78C4PGu7Dz0P
 sYCooq+byJ5eOPaq4DpA5szU2FuBABlBqBRVA+Wmy9slNuHiiK1fIOPO4V97Glqz
 2F4Iivr9mbw79OrXx6bcqJm6EbAgpvyonlRnw0BVYd+1DEVEHntSx2QVN5wiEjqe
 d6oyVpZT1VJb0CpnGU9p
 =FgSp
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/dt

Qualcomm ARM64 Updates for v5.1

* Add thermal trip points to cpufreq
* Add SDM845 IOMMU info for SDHC, USB, and WLAN
* Fix MSM8916 clock cell argument

* tag 'qcom-arm64-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  arm64: dts: sdm845: Fixup dependency on RPMPD includes
  arm64: dts: sdm845: Add clocks and iommus to WCN3990 WLAN node
  arm64: dts: qcom: sdm845: Define iommus for USB controllers
  arm64: dts: qcom: sdm845: Define IOMMU for sdhc 2
  arm64: dts: sdm845: wireup the thermal trip points to cpufreq
  arm64: dts: msm8916: remove bogus argument to the cpu clock

[arnd: I've pulled the earlier branch again after an update, this
 adds the stuff listed above, and fixes a build error from the missing
 dependency, as I requested]

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:47:14 +01:00
Arnd Bergmann
410d736054 Fix omap4 and later lost cpu1 interrupts for periodic timer
A fix from Russell that took a while to get applied into fixes as
 I thought Russell is merging this one.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlxdqikRHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXNnUhAAiroTD0SiwEj5CJU4YmECuBrk9vLonbM8
 8AF4RLtXb2hRIWV/uUEyRMctaHcPlMD2JFp96pie/cJng/6Ba8KlW1u780QZokOt
 iMTQ7CgWooqkFRF5xcOYsoY/MTivTUnZTR7jpWIIOtMKBul6xureqvwx7spBsERu
 PICl7oTep109jPB2gF4omcw4oS2iuSTo2M+q068Ut62OhBHdUowu3pE8z7bBPmbq
 9vGYs+vTPvwC7r61hIYr+ROdjjvegA01caC1r+pG6bm0t0L56/hpjO2x1uZaYcVF
 n63K56Jd1/eeZJ+9qupwekMPWd5JnQhVspNu8Jb3XcgAhGZE62eC4gTCj8yRMCC+
 ThDZ2GIjHqL8lzz2EWLeXq0Xy0HLbNOPkNTZoK2Gej2lRy67gvAH1lQy+T3kKzQU
 39dzC6kyMOhNM3i/rnBBqEHL4KyWvwZV2vsZtMbF2Kz5pJ1Sbttr0LrqrO/+ANJo
 VUQAo9rscjU0OExX9DUtu/M6WHH5UrpglEZVn29MBmQU5R7qJ+dZH9ADmchWn3Rb
 G42JUZMCja0BWsmlHJ5KCiUU6AHDecxNPVe13IT36WnGoU/Z1tSuSbhkZz3Inltu
 9d+fqeZ2Um4difa3QEq1j/2n+mMrQZfvAO1govNHxsDkEKvYOs52WNCR1kpRT+3w
 2RZtP9QxzT0=
 =0LSw
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v5.0/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes

Fix omap4 and later lost cpu1 interrupts for periodic timer

A fix from Russell that took a while to get applied into fixes as
I thought Russell is merging this one.

* tag 'omap-for-v5.0/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
2019-02-15 20:39:46 +01:00
Arnd Bergmann
c47cd74759 Merge tag 'lpc32xx-soc-for-5.1' of https://github.com/vzapolskiy/linux-lpc32xx into arm/fixes
ARM: lpc32xx: platform updates for v5.1

Here are the changes for ARM NXP LPC32xx platform files:

* removed a superfluous record to kernel log buffer under OOM condition,
* use kmemdup() helper instead of kmalloc()/memcpy() pair,
* removed platform data of ARM PL180 SD/MMC and ARM PL111 LCD controllers,
  since now both are handled in devicetree files.

* tag 'lpc32xx-soc-for-5.1' of https://github.com/vzapolskiy/linux-lpc32xx:
  ARM: lpc32xx: remove platform data of ARM PL111 LCD controller
  ARM: lpc32xx: remove platform data of ARM PL180 SD/MMC controller
  ARM: lpc32xx: Use kmemdup to replace duplicating its implementation
  ARM: lpc32xx: Delete an error message for a failed memory allocation in lpc32xx_pm_enter()

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:19 +01:00
Arnd Bergmann
919c1d49a0 Merge tag 'renesas-arm-soc-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/fixes
Renesas ARM Based SoC Updates for v5.1

* Correct shared IRQ handling of R-Car Gen2 Regulator quirk
* Add missing dts files to MAINTAINERS

* tag 'renesas-arm-soc-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: Fix R-Car Gen2 regulator quirk
  ARM: shmobile: Add missing dts files to MAINTAINERS

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:18 +01:00
Arnd Bergmann
e61c92005e Merge tag 'tegra-for-5.1-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/fixes
ARM: tegra: Core changes for v5.1-rc1

This contains three fixes for resume from LP1 on Tegra30.

* tag 'tegra-for-5.1-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Restore memory arbitration on resume from LP1 on Tegra30+
  ARM: tegra: Fix DRAM refresh-interval clobbering on resume from LP1 on Tegra30
  ARM: tegra: Fix missed EMC registers latching on resume from LP1 on Tegra30+

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:18 +01:00
Arnd Bergmann
d0e1f79ad3 Merge tag 'v5.0-next-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/fixes
mt8173: minor typo in scpsys header file
mt7629: add smp bringup code
mt7623a: delete unused smp bringup code

* tag 'v5.0-next-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  arm: mediatek: add MT7629 smp bring up code
  Revert "ARM: mediatek: add MT7623a smp bringup code"
  dt-bindings: soc: fix typo of MT8173 power dt-bindings

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:17 +01:00
Arnd Bergmann
5f6efe3163 Merge tag 'mvebu-arm64-5.1-1' of git://git.infradead.org/linux-mvebu into arm/fixes
mvebu arm64 for 5.1 (part 1)

 - Add maintainer entry for for the new uDPU board (Armada 3720 based)

* tag 'mvebu-arm64-5.1-1' of git://git.infradead.org/linux-mvebu:
  MAINTAINERS: Add entry for uDPU board

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:16 +01:00
Arnd Bergmann
4f7df3cb5c Merge tag 'samsung-soc-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/fixes
Samsung mach/soc changes for v5.1

Two fixes: one for handling timeout while booting secondary CPU of
Exynos and second for S3C24xx DVS notifier.

* tag 'samsung-soc-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: exynos: Fix timeout when booting secondary CPUs
  ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:16 +01:00
Arnd Bergmann
cfe9930e94 Merge tag 'amlogic-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/fixes
Amlogic SoC Kconfig updates for v5.1:
- arm64: meson: enable g12a clock controller
- drop unneeded COMMON_CLK_AMLOGIC

* tag 'amlogic-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  arm64: meson: enable g12a clock controller
  ARM: meson: remove COMMON_CLK_AMLOGIC selection
  arm64: meson: remove COMMON_CLK_AMLOGIC selection

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:15 +01:00
Arnd Bergmann
b8961b1eb7 Merge tag 'davinci-for-v5.1/soc-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/fixes
DaVinci SoC updates for v5.1 (part 2)

This pull request contains changes needed to help get rid of
hard-coded GPIO base value passed from DaVinci platform data.

The OHCI related changes also help by moving over-current support
from board-files to OHCI driver making future DT-coversion easy.

The OHCI parts are acked by its maintainer.

* tag 'davinci-for-v5.1/soc-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
  usb: ohci-da8xx: remove unused callbacks from platform data
  ARM: davinci: da830-evm: remove legacy usb helpers
  ARM: davinci: omapl138-hawk: remove legacy usb helpers
  usb: ohci-da8xx: add vbus and overcurrent gpios
  ARM: davinci: da830-evm: use gpio lookup entries for usb gpios
  ARM: davinci: omapl138-hawk: use gpio lookup entries for usb gpios
  usb: ohci-da8xx: add a helper pointer to &pdev->dev
  usb: ohci-da8xx: add a new line after local variables
  ARM: davinci: da850-evm: use GPIO hogs instead of the legacy API
  ARM: davinci: mityomapl138: use device properties for at24 eeprom
  ARM: davinci: mityomapl138: use nvmem notifiers
  ARM: davinci: remove dead code related to MAC address reading
  ARM: davinci: sffsdr: use device properties for at24 eeprom
  ARM: davinci: sffsdr: fix the at24 eeprom device name
  ARM: davinci: dm646x-evm: use device properties for at24 eeprom
  ARM: davinci: dm644x-evm: use device properties for at24 eeprom
  ARM: davinci: da830-evm: use device properties for at24 eeprom
  ARM: davinci: dm365-evm: use device properties for at24 eeprom
  ARM: davinci: mityomapl138: don't read the MAC address from machine code
  ARM: davinci: da850-evm: remove dead MTD code

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:14 +01:00
Arnd Bergmann
ad75174f39 Merge tag 'imx-soc-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
i.MX SoC changes for 5.1:
 - Support cpuidle for i.MX7ULP, states WFI, WAIT and STOP get added.
 - Support SoC revision detecting for i.MX7ULP by reading JTAG_ID
   register from SIM module.
 - Select PM and GPCv2 irqchip driver options for i.MX8 support, as they
   are essential for building an i.MX8 based system.
 - Skip build of ssi-fiq code if SND_SOC_IMX_PCM_FIQ is not enabled.

* tag 'imx-soc-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: imx8mq: select PM support
  arm64: imx8mq: select GPCv2 irqchip driver
  ARM: imx: add i.MX7ULP SoC revision support
  ARM: imx: add i.MX7ULP cpuidle support
  ARM: imx: don't build ssi-fiq if not required

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:14 +01:00
Arnd Bergmann
e62538ff9a Merge tag 'imx-maintainers-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
i.MX MAINTAINERS update for 5.1:
 - Add all files matching "imx" and "mxs" to the IMX entry, so that we
   can get copied on all IMX related changes without explicitly listing
   so many files and folders.
 - Update Fabio's email address.

* tag 'imx-maintainers-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  MAINTAINERS: imx: Change Fabio's email address
  MAINTAINERS: add all files matching "imx" and "mxs" to the IMX entry
2019-02-15 20:38:13 +01:00
Arnd Bergmann
d2a4f1ba04 Merge tag 'pxa-for-5.1' of https://github.com/rjarzmik/linux into arm/fixes
This is the pxa changes for 5.1 cycle:
 - the last step of raumfeld board conversion to devicetree is here,
   ie. the platform_data file removal
   The previous cycle dealt with devicetree inclusion already.
 - an empty file removal

* tag 'pxa-for-5.1' of https://github.com/rjarzmik/linux:
  ARM: pxa: remove unused empty mach/pxa25x-udc.h file
  ARM: pxa: remove raumfeld board files and defconfig

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:38:12 +01:00
Arnd Bergmann
0fe8f1e5bb AM654x SoC updates for v5.1 (part 2)
Contains a few DT updates on top of part 1 of the pull:
 
 - MSMC RAM support (on-chip SRAM)
 - Main system control module support
 - USB support
 - ADC support
 
 There is an extra dt-binding update included, which has been acked
 by Rob.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEtQ6szHmfiBT7fujkyvq9MXlQGhEFAlxme1MQHHQta3Jpc3Rv
 QHRpLmNvbQAKCRDK+r0xeVAaESgdD/9aZCR4YX27oQV5YmIsT0DkleOve48MIK9A
 ex2Qk5dtZM8GRPTKQPfI1i8kHMya9Hlwb3NRAjCrZnnNRjge5LvTcDWbvSeUzlc1
 BjyygctF2Sb9zKKyCoqV9UklpXisqw3QTxwmtUkdHNAzeyiQe71MM8XCEeBHcjUu
 7EZJUzBPX4fABo560/1phubG4PrLA7eNG8gPl0p0LFf91ug5c+QO0jv+3p7K9pvn
 o4TxyKgEXwADfx4px6y6u4uEuO3OXtYWNGbRhAaGXUAgEFiOYz5gJlgti7M16kXb
 D1YeE4oKl3aXbCjb2V5FzoNw08zgQZgRT3QltyQnAZ/kYs1CFX4ooXUMx9GuCaJ3
 T2UZ33t2lm4zVoYhlpKlZlZlk7bO4U9ZaOeSv+daKitpxvZPyJM7NLRTawCc3yyZ
 08RJmYAf9Rl6MmNbrhyX3XQ5VC9/O26L1Gx+92bRFvdNL3Uwoi6T8bWFxbWrdr76
 cL2aF9rYzVq3dQetNiqozg0GB/sCgEO1luGgkfIMLS9CpNxLPNa6orysRfMfkdJh
 b1R51dUq80cl5v2lagTquFKb1T+/GRgEv/hi9aIR/Yfl2ASufFFQGkCKUPyFnPoX
 BhH7Izg47x8HwAPU2s20nMJmaZ7hJ0PW1MUqidXgIdto9X82QWLcUCoeGXG1PAJR
 uWFlyqaNag==
 =L6dq
 -----END PGP SIGNATURE-----

Merge tag 'am654-for-v5.1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux into HEAD

AM654x SoC updates for v5.1 (part 2)

Contains a few DT updates on top of part 1 of the pull:

- MSMC RAM support (on-chip SRAM)
- Main system control module support
- USB support
- ADC support

There is an extra dt-binding update included, which has been acked
by Rob.

* tag 'am654-for-v5.1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux:
  arm64: dts: ti: k3-am65-mcu: Add ADC nodes
  dt-bindings: input: ti-tsc-adc: Add new compatible for AM654 SoCs
  arm64: dts: ti: k3-am654-base-board: enable USB1
  arm64: dts: ti: k3-am6: add USB support
  arm64: dts: ti: am654: Add Main System Control Module node
  arm64: dts: ti: k3-am65: Add MSMC RAM node

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-15 20:32:01 +01:00
Andy Gross
08585d21de arm64: dts: sdm845: Fixup dependency on RPMPD includes
This patch fixes a dependency issue with the RPMPD dt bindings.  This
temporarily removes the include file and adds hardcoded values for the
OPPs until the other changes full land.  This will be addressed in 5.2.

Fixes: 5b6f186f0a ("arm64: dts: sdm845: Add rpmh powercontroller node")

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2019-02-15 13:13:51 -06:00
Tejun Heo
b4ff1b44bc cgroup, rstat: Don't flush subtree root unless necessary
cgroup_rstat_cpu_pop_updated() is used to traverse the updated cgroups
on flush.  While it was only visiting updated ones in the subtree, it
was visiting @root unconditionally.  We can easily check whether @root
is updated or not by looking at its ->updated_next just as with the
cgroups in the subtree.

* Remove the unnecessary cgroup_parent() test.  The system root cgroup
  is never updated and thus its ->updated_next is always NULL.  No
  need to test whether cgroup_parent() exists in addition to
  ->updated_next.

* Terminate traverse if ->updated_next is NULL.  This can only happen
  for subtree @root and there's no reason to visit it if it's not
  marked updated.

This reduces cpu consumption when reading a lot of rstat backed files.
In a micro benchmark reading stat from ~1600 cgroups, the sys time was
lowered by >40%.

Signed-off-by: Tejun Heo <tj@kernel.org>
2019-02-15 11:01:31 -08:00
Miguel Ojeda
a6e60d8498 include/linux/module.h: copy __init/__exit attrs to init/cleanup_module
The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target.

In particular, it triggers for all the init/cleanup_module
aliases in the kernel (defined by the module_init/exit macros),
ending up being very noisy.

These aliases point to the __init/__exit functions of a module,
which are defined as __cold (among other attributes). However,
the aliases themselves do not have the __cold attribute.

Since the compiler behaves differently when compiling a __cold
function as well as when compiling paths leading to calls
to __cold functions, the warning is trying to point out
the possibly-forgotten attribute in the alias.

In order to keep the warning enabled, we decided to silence
this case. Ideally, we would mark the aliases directly
as __init/__exit. However, there are currently around 132 modules
in the kernel which are missing __init/__exit in their init/cleanup
functions (either because they are missing, or for other reasons,
e.g. the functions being called from somewhere else); and
a section mismatch is a hard error.

A conservative alternative was to mark the aliases as __cold only.
However, since we would like to eventually enforce __init/__exit
to be always marked,  we chose to use the new __copy function
attribute (introduced by GCC 9 as well to deal with this).
With it, we copy the attributes used by the target functions
into the aliases. This way, functions that were not marked
as __init/__exit won't have their aliases marked either,
and therefore there won't be a section mismatch.

Note that the warning would go away marking either the extern
declaration, the definition, or both. However, we only mark
the definition of the alias, since we do not want callers
(which only see the declaration) to be compiled as if the function
was __cold (and therefore the paths leading to those calls
would be assumed to be unlikely).

Link: https://lore.kernel.org/lkml/20190123173707.GA16603@gmail.com/
Link: https://lore.kernel.org/lkml/20190206175627.GA20399@gmail.com/
Suggested-by: Martin Sebor <msebor@gcc.gnu.org>
Acked-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
2019-02-15 19:52:56 +01:00
Miguel Ojeda
c0d9782f5b Compiler Attributes: add support for __copy (gcc >= 9)
From the GCC manual:

  copy
  copy(function)

    The copy attribute applies the set of attributes with which function
    has been declared to the declaration of the function to which
    the attribute is applied. The attribute is designed for libraries
    that define aliases or function resolvers that are expected
    to specify the same set of attributes as their targets. The copy
    attribute can be used with functions, variables, or types. However,
    the kind of symbol to which the attribute is applied (either
    function or variable) must match the kind of symbol to which
    the argument refers. The copy attribute copies only syntactic and
    semantic attributes but not attributes that affect a symbol’s
    linkage or visibility such as alias, visibility, or weak.
    The deprecated attribute is also not copied.

  https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html

The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target, e.g.:

    void __cold f(void) {}
    void __alias("f") g(void);

diagnoses:

    warning: 'g' specifies less restrictive attribute than
    its target 'f': 'cold' [-Wmissing-attributes]

Using __copy(f) we can copy the __cold attribute from f to g:

    void __cold f(void) {}
    void __copy(f) __alias("f") g(void);

This attribute is most useful to deal with situations where an alias
is declared but we don't know the exact attributes the target has.

For instance, in the kernel, the widely used module_init/exit macros
define the init/cleanup_module aliases, but those cannot be marked
always as __init/__exit since some modules do not have their
functions marked as such.

Suggested-by: Martin Sebor <msebor@gcc.gnu.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
2019-02-15 19:52:17 +01:00
Miguel Ojeda
ff98e20ef2 lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure
The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target.

In particular, it triggers here because crc32_le_base/__crc32c_le_base
aren't __pure while their target crc32_le/__crc32c_le are.

These aliases are used by architectures as a fallback in accelerated
versions of CRC32. See commit 9784d82db3 ("lib/crc32: make core crc32()
routines weak so they can be overridden").

Therefore, being fallbacks, it is likely that even if the aliases
were called from C, there wouldn't be any optimizations possible.
Currently, the only user is arm64, which calls this from asm.

Still, marking the aliases as __pure makes sense and is a good idea
for documentation purposes and possible future optimizations,
which also silences the warning.

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
2019-02-15 19:50:07 +01:00
Miguel Ojeda
69ef9bc547 auxdisplay: ht16k33: fix potential user-after-free on module unload
On module unload/remove, we need to ensure that work does not run
after we have freed resources. Concretely, cancel_delayed_work()
may return while the callback function is still running.

From kernel/workqueue.c:

    The work callback function may still be running on return,
    unless it returns true and the work doesn't re-arm itself.
    Explicitly flush or use cancel_delayed_work_sync() to wait on it.

Link: https://lore.kernel.org/lkml/20190204220952.30761-1-TheSven73@googlemail.com/
Reported-by: Sven Van Asbroeck <thesven73@gmail.com>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Sven Van Asbroeck <TheSven73@gmail.com>
Acked-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
2019-02-15 19:48:39 +01:00
Catalin Marinas
0543371a57 Merge branch 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux
* 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux:
  perf: xgene: Remove set but not used variable 'config'
  arm64: perf: remove misleading comment
  dt-bindings: arm: Convert PMU binding to json-schema
2019-02-15 18:34:41 +00:00