Commit graph

932,869 commits

Author SHA1 Message Date
Olof Johansson
5f08da63d7 mvebu arm64 for 5.2 (part 1)
- Update the defconfig to enable the mv-xor driver found on the
    Armada 3700
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXL7CVgAKCRALBhiOFHI7
 1VzpAJ4g2dWLtkB9F1YlPOMGzfZnAPamKACgjUMB8UM2+avwae6rdk6oa3qudSQ=
 =gg0T
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-arm64-5.2-1' of git://git.infradead.org/linux-mvebu into arm/defconfig

mvebu arm64 for 5.2 (part 1)

 - Update the defconfig to enable the mv-xor driver found on the
   Armada 3700

* tag 'mvebu-arm64-5.2-1' of git://git.infradead.org/linux-mvebu:
  arm64: defconfig: enable mv-xor driver

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:46:45 -07:00
Olof Johansson
782935d12e Qualcomm ARM Based Driver Updates for v5.2
* Update MAINTAINERS for Andy Gross's new email address
 * Add support for mmap in RMTFS
 * Fixup for QMI to change txn wait to non-interruptible
 * Fixup for error code in probe of cmd-db
 * Fixup for slot number check in RMPH-RSC
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcuU7sAAoJEFKiBbHx2RXVOvoQANFlaLjbZ0CKN5nqWhLYIxns
 QNJqZulsUceR8hMgCcIE9o8Fe6HPtfHQ0FHdQ1761UKmX7gHY+euhtVFr0D/Y6Kh
 6bxvDj1huytr79kH3+dL+pTR/ZWi1BDdttAbsF+41nvxGhFGTvNSOGbRjXSIih9S
 x0fnQzRyBSbEQzZYF0eYXfs5eqYUbpTpVnsvBruX+wKo7bfMtDzigJ29aszU4HPJ
 eUEd9hKpwCTisL3WSeo89qPlPXFpUL6fWitF99Xar/WP7RXaorUg15r6VK4uQQVz
 onqOMiC93prR5rjDym77weJWKS9vpi+Aa/6Rp68Sb3Cl43HmNSfMl+rL3L2v4i/o
 LY2ntcC9GCjG0T9EsA9UId4dLaePmaX7nI5xjlyCRbIXTqKWkhhQDp6OmR0Ess9X
 ZclVSDTsXX9GNMJ/8gYFA0Uv9IrCL0A+b9LwEFYx+xrcTg2PShhN1sVmnOO38j88
 87mwEvC/btmJCddXkQY5pOrI6ixb3TUDrfyu/uuwfMrN7A1EpF1I5CKXGvlYC8og
 H+7SR5EK3X0OruGjFqgjLr6dNgHAaCkdCT4AXOGxcakn2Po86W2r979SwFzjBEEB
 2fd8gPEeMTAiMdEhqkbBw+EiaGvNiOeBQTXgXocK9dEHXNLaqbQDuNRR3iZJx57W
 eMOQA379l7K41k8p4Hdk
 =nsKB
 -----END PGP SIGNATURE-----

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

Qualcomm ARM Based Driver Updates for v5.2

* Update MAINTAINERS for Andy Gross's new email address
* Add support for mmap in RMTFS
* Fixup for QMI to change txn wait to non-interruptible
* Fixup for error code in probe of cmd-db
* Fixup for slot number check in RMPH-RSC

* tag 'qcom-drivers-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  MAINTAINERS: Update email for Qualcomm SoC maintainer
  drivers: soc: qcom: rpmh-rsc: Correct check for slot number
  soc: qcom: cmd-db: Fix an error code in cmd_db_dev_probe()
  soc: qcom: qmi: Change txn wait to non-interruptible
  soc: qcom: rmtfs: Add support for mmap functionality

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:40:30 -07:00
Olof Johansson
50676063dd Qualcomm ARM Based defconfig Updates for v5.2
* Enable options for LG Nexus 5 phone
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcuU/+AAoJEFKiBbHx2RXVGYUQAK8YwHFk9uBagFzp+BF1xXba
 Snv8EGb4g+UXp0n1znfNki7j26pBuKROchVJvuCGht7KPpWQNuesP0GDnXgZru7B
 73kbZ1vWeYpPGE5HsBbQo+xJXnX6s6aPg5k/ENxeaeEVMNa7kffWncaceqQpzNwv
 aCc8WwrSxBlKJpGkSivBlbul6OV3cp/Q7p6CteH+VtgnEI9pjaZL5J7elQfPfzpN
 Ty/+GUjPA5Mq33oPTfO8OTfnOWuRS4ySumAvAzJg8Pqu4F/ULOF01c0J6FncK+wo
 ltXIASi35sf1gwYbE7k2fWmaWNFMLJ18QQ9dabPHfqupBfC+A4QHnPrtQxoB1mrx
 6V8gMkJw4eUSvZJmTRlLO/wZcXkvwZ86LwBW2GSCmEU0+cq/u0QC4gBqwDadGwyg
 64vjApeha7BiKBQZv0T+53zRPfsAK/cVgdXLDGhT1FW4SJDq0hrtDgItyKrOclMO
 FW+UVHZjbydkwM/SC+hYyC8EpTQWWpvlwLCZogAeG0VBsd1r/jF553bR8UtZdtsl
 xjtembpy4T0obbLNeswrL2u1IJc4R9Bfmfio8MA82au7RXOBD3BQ9cJz7xdURhjr
 dUIQW+xLfWUYSwDffSV6kF6BaN2rO4+GJ7O/IkI15a/LDG+qyqW0Tw3lFCdYCSIt
 lUmN9QC5Akz5XNzar+g6
 =hdsl
 -----END PGP SIGNATURE-----

Merge tag 'qcom-defconfig-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/defconfig

Qualcomm ARM Based defconfig Updates for v5.2

* Enable options for LG Nexus 5 phone

* tag 'qcom-defconfig-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  ARM: qcom_defconfig: add options for LG Nexus 5 phone

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:39:53 -07:00
Patrick Venture
524feb7994 soc: add aspeed folder and misc drivers
Create a SoC folder for the ASPEED parts and place the misc drivers
currently present into this folder.  These drivers are not generic part
drivers, but rather only apply to the ASPEED SoCs.

Signed-off-by: Patrick Venture <venture@google.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:36:34 -07:00
Kalle Valo
7a0f8ad5ff Merge ath-current from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
ath.git fixes for 5.1. Major changes:

ath10k

* fix locking problem with crashdump

* fix warnings during suspend and resume
2019-04-29 19:33:33 +03:00
Olof Johansson
89f4f128ea i.MX arm64 device tree update for 5.2:
- Add initial i.MX8MM SoC and EVK board support.
  - Enable OPP table for cpufreq support on i.MX8MQ, i.MX8QXP and
    i.MX8MM.
  - A series from Andrey Smirnov to enable PCIe support for i.MX8MQ.
  - Add TMU (Thermal Management Unit) device on i.MX8MQ for managing
    thermal of CPU, GPU, and VPU.
  - Add SDMA and SAI2 devices for i.MX8MQ SoC and enable wm8524 audio
    support on EVK board.
  - Add LPUART, OCOTP and GPU devices for i.MX8MQ SoC.
  - Add initial i.MX8MQ based Zii Ultra board support
  - Add SCU general IRQ and watchdog support for i.MX8QXP.
  - Add audio related devices and PMU for LS1028A.
  - Enable SATA and cpuidle support for LX2160A.
  - Other small random updates.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJcvXYXAAoJEFBXWFqHsHzOWlEH/iJbC6k4poz0+q2/skY1yfRk
 7oJv+R62y6PiejRW44Rb/yY7H9D2WZS/r6lvo8XeG9zMJsKbi/NoeN9EUHu3uZDI
 xrhEz/joDCS9LyEfsibRWNSFjm5wXUMw5qa+wpvSMvS4ipOv2lySZKeBzmjQq55v
 2+OTO0S6r3totaJ203rp6jlmuhQK6NfC72umpcw8Wxmyfudi337xzbMH/dtm4Pb5
 Q9G322cywDjZ3TukgMqWqg/s8kya7iKkyVb6abvEEAmCR2JZYzO0+XOpVLHbLDEi
 lYC8ONALwOSyHW7mvxqB87qaCPinTH7PTKi3bNv+qgG1Fyemshs0nvPskaJO394=
 =MK87
 -----END PGP SIGNATURE-----

Merge tag 'imx-dt64-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt

i.MX arm64 device tree update for 5.2:
 - Add initial i.MX8MM SoC and EVK board support.
 - Enable OPP table for cpufreq support on i.MX8MQ, i.MX8QXP and
   i.MX8MM.
 - A series from Andrey Smirnov to enable PCIe support for i.MX8MQ.
 - Add TMU (Thermal Management Unit) device on i.MX8MQ for managing
   thermal of CPU, GPU, and VPU.
 - Add SDMA and SAI2 devices for i.MX8MQ SoC and enable wm8524 audio
   support on EVK board.
 - Add LPUART, OCOTP and GPU devices for i.MX8MQ SoC.
 - Add initial i.MX8MQ based Zii Ultra board support
 - Add SCU general IRQ and watchdog support for i.MX8QXP.
 - Add audio related devices and PMU for LS1028A.
 - Enable SATA and cpuidle support for LX2160A.
 - Other small random updates.

* tag 'imx-dt64-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (41 commits)
  arm64: dts: lx2160a: add cpu idle support
  arm64: dts: imx8mq: fix GPU clock frequency
  arm64: dts: fsl: imx8mq-evk: link regulator to GPU domain
  arm64: dts: imx8mm: Add cpufreq properties
  arm64: dts: imx8qxp-mek: Add i2c1 with pca9646
  arm64: dts: imx8qxp: enable scu general irq channel
  arm64: dts: imx8mq: add GPU node
  arm64: dts: imx: add Zii Ultra board support
  arm64: dts: imx8mq: fix higher CPU operating point
  arm64: dts: imx8mq-evk: Enable PCIE0 interface
  arm64: dts: imx8mq: Add nodes for PCIe IP blocks
  arm64: dts: imx8mq: Combine PCIE power domains
  arm64: dts: imx8mq: Add a node for SRC IP block
  arm64: dts: imx8mq: Mark iomuxc_gpr as i.MX6Q compatible
  arm64: dts: imx8qxp: Add lpuart1/lpuart2/lpuart3 nodes
  arm64: dts: lx2160a: add sata node support
  arm64: dts: ls1028a: Corrected the SATA ecc address
  arm64: dts: imx8mq: Change ahb clock for imx8mq
  arm64: dts: imx8mq: Fix the fsl,imx8mq-sdma compatible string
  arm64: dts: imx8qxp: add system controller watchdog support
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:26:55 -07:00
Olof Johansson
ffb832b4bb i.MX SoC update for 5.2:
- Optimize i.MX6 cpuidle driver a little bit by omitting the
    unnecessary unmask of GINT for WAIT_CLOCKED mode.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJcvWN8AAoJEFBXWFqHsHzO0NUH/0W/3zDqGkZ+Z5gAGY/p7HGr
 BziHVjec/jlyfRg3rQl/3Hsn7RCem8jNKhYjXV73M5FIykZ6ivWRogRUFgC6txJA
 yS7ZbY39IN/JBXF5gviPGaKeiPRGs4fk/WyHYLdVgVcBwBIWtR9mmSEAfDW/16ui
 5+1SriLvWnSr0jQrTxd5mUfNemtJyj27BqD2PYHURidoaKTwNxrpVVErms+D3k0d
 wco7pK1V4KmRyCm/NtnItXvH0PWEF3fojVsVOoGIpGorE3S31XYbLEYELu2K1rzS
 q+0ijd2mlAkgbTovLozL8Yy30BShZRNiZ+H0iDm7YutvvONPCYyfAewWOJnREg8=
 =SGEN
 -----END PGP SIGNATURE-----

Merge tag 'imx-soc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/soc

i.MX SoC update for 5.2:
 - Optimize i.MX6 cpuidle driver a little bit by omitting the
   unnecessary unmask of GINT for WAIT_CLOCKED mode.

* tag 'imx-soc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: imx6: cpuidle: omit the unnecessary unmask of GINT

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:26:04 -07:00
Olof Johansson
f99552d9eb i.MX drivers change for 5.2:
- A series from Aisheng to generalize the SCU powerdomain driver
    for easier adding new SCU based platforms like imx8qm.
  - Add a generic i.MX8 SoC driver for reporting SoC and platform
    information.
  - Replace explicit polling loop with a call to regmap_read_poll_timeout()
    for gpcv2 driver to avoid code repetition.
  - Use devm_platform_ioremap_resource() to simplify gpc/gpcv2 driver
    code a bit.
  - Add general IRQ support for imx-scu driver, so that interrupt of
    device like RTC, thermal and watchdog can be handled.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJcvWKIAAoJEFBXWFqHsHzOeCQH/j/lgujJU9RnyY2CFTelMyad
 uTKEUgk2vvbswBdFMaS7xAvbni24GOxUdKUYJul0oz5jBnK4wKmf6VY7TYMQ8Qht
 hsdp0dsHHgI1qysOiOSxidhIN/2aXFl/hSoF8FT/9m0qXqnmvoHGFQT0YoMGwznS
 +7tHuUt5cjUG/r5DMM6GOzI/w6K1of6RGGsLWvYeuy7OeoDhI2Gl5gtK+qxik98J
 qC9UM64jO93rmXebJuG+9ZNJ0FFATrBMboMB3a7rA3t9RvkAFKEuVRp3USPuj1ek
 TxNusTtkQwCeujy9QZu/eB/oUrScEbzJuw+sp0l69C9T2D44ucZLFbHixnwbigM=
 =1wlN
 -----END PGP SIGNATURE-----

Merge tag 'imx-drivers-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/drivers

i.MX drivers change for 5.2:
 - A series from Aisheng to generalize the SCU powerdomain driver
   for easier adding new SCU based platforms like imx8qm.
 - Add a generic i.MX8 SoC driver for reporting SoC and platform
   information.
 - Replace explicit polling loop with a call to regmap_read_poll_timeout()
   for gpcv2 driver to avoid code repetition.
 - Use devm_platform_ioremap_resource() to simplify gpc/gpcv2 driver
   code a bit.
 - Add general IRQ support for imx-scu driver, so that interrupt of
   device like RTC, thermal and watchdog can be handled.

* tag 'imx-drivers-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  soc: imx: Add generic i.MX8 SoC driver
  firmware: imx: enable imx scu general irq function
  soc: imx: gpcv2: use devm_platform_ioremap_resource() to simplify code
  soc: imx: gpc: use devm_platform_ioremap_resource() to simplify code
  firmware: imx: scu-pd: decouple the SS information from domain names
  firmware: imx: scu-pd: add specifying the base of domain name index support
  firmware: imx: scu-pd: use bool to set postfix
  soc: imx: gpcv2: Make use of regmap_read_poll_timeout()

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:25:21 -07:00
Olof Johansson
f45f5182d7 ARM: lpc32xx: devicetree updates for v5.2
Here are the changes for ARM NXP LPC32xx devicetree files:
 
 * disabled I2S and MAC controllers by default,
 * set default #address-cells = <1> / #size-cells = <0> for SPI slaves,
 * fix notation of hexadecimal values,
 * switched lpc32xx.dtsi to SPDX license identifier.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEETKMJMWSwX7CFTVIOqj3i2jwlOWUFAly7f1YACgkQqj3i2jwl
 OWUbOg//Smcs+TqEzP7baR2RehJu7ayuvNMDUZFAH24X7VcIk0gyCm4sHlufM2yM
 iDWH7bA9+VUTwDibr687huDXKKillL/3DlEHkTrBGWK5fIioyR5vWN/6MDWdNYV6
 CRG3ymqylssakj84KT9vZgjj5hsJ+WSHIV2J4brnO67Gws6LYvKYOCEwN+ZyFIRf
 c+UpJJEcTK9QBEdHt1AWRI7qt1fWCBa+5H38defuJl+nvrQcD5YQX0FMVROtB3zq
 coUoS72hRWFHPG1t9L3O8YV7Qxivm90UYYt2WAoxbhv3e1OEI9xDycwx0JJdb5LB
 ecPChg1BiQ0Y1VoqKgtudF7qcuFrxvRXPxebfQpYWwNhqkAVMniVTPmmHUXCKCQx
 /TE4zhecy+XHi8gogkRvvi+49LZ3J6v3ITHh4mBYeo9+zibZT9TfgehsuGp4Sctf
 1Jo0PEVcGGrNrOiOqM/66vZj8tpFT1g1ybophrEz4eSoZrzfo7PECnDDVPXreY0u
 QtBDDF3mtE77Qg+pLkhwOV556B6KwNhXsfQVdP+1uEQfYV5rGEkTJSmcyjM7zlAo
 QhQY2RPsGpvKI4etERf0FJjJRMei8dHvH17IW2OgWvAppd/dnSPJg9Q06wTYiIgL
 beIqm+U1HIM6WdEAsBWcLYIRcXHdnJ3Uq4pqOFKTMEiHmnFNII0=
 =03bL
 -----END PGP SIGNATURE-----

Merge tag 'lpc32xx-dt-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx into arm/dt

ARM: lpc32xx: devicetree updates for v5.2

Here are the changes for ARM NXP LPC32xx devicetree files:

* disabled I2S and MAC controllers by default,
* set default #address-cells = <1> / #size-cells = <0> for SPI slaves,
* fix notation of hexadecimal values,
* switched lpc32xx.dtsi to SPDX license identifier.

* tag 'lpc32xx-dt-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx:
  ARM: dts: lpc32xx: use SPDX license identifier
  ARM: dts: lpc32xx: add address and size cell values to SPI controller nodes
  ARM: dts: lpc32xx: disable MAC controller by default
  ARM: dts: lpc32xx: disable I2S controllers by default
  ARM: dts: lpc32xx: change hexadecimal values to lower case

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:24:53 -07:00
Olof Johansson
e165908fac ARM: lpc32xx: platform updates for v5.2
Here are the changes for ARM NXP LPC32xx platform files:
 
 * removed TEST_CLK_SEL setup out of common clock framework control,
 * unnecessary header files are removed from inclusion,
 * registration of SSP0 and SSP1 is removed as done through device tree,
 * switched the main platform file to SPDX license identifier.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEETKMJMWSwX7CFTVIOqj3i2jwlOWUFAly7gCkACgkQqj3i2jwl
 OWWLNw//dJn8iBfuTpQZXYc3VmvcnNkAh4qgN135kk6aCPsEBujN4KVVhf3xSHLI
 6t/KX5buhd5bx+W/T8zHnKd6bwqAHP4Em9FNpFOfp9ahhOl84mLh9LrhQWFJjwGF
 dsw/XMwHvZmiu0hwyhzTi2Wdx3Iul89Sm0TmNeGfse6lrApzpyXb+297KirgVTAB
 3jQsvH/qcS4Y2D7Nw63sSIymhLeF1C4a9BQ4vrNpHrh+i1xL6VjgbDUCK/BlkdqW
 EmCPb7Vme0NUK38QVaNL65NdedOBl0KnpquURFwC3b3Kz6LVazUXjuhRoqluiW6q
 O2TTmehEGiJACRPrvS/50qWP5EPySJq010GeDtHXTC5g/kp4ykV/vfxrxRDRbkcI
 tz64n0teGNTZSKDwhUqYou/A5qiOqH4kWBOWNPO+zR2/x6xAPya2AkGxcq3Yt/nX
 r8XxY8uNEKj5+cF193UCcQ0Cx7vE5MdF5bHACl3yRuBenqPX4oVTO5SEIHYbd9h+
 RlfKaybKNDaqWgaL+GXZ3XrBoKpiSyWTfzkg+14+LOC/RS08vkYuF6TJQTMJXIZx
 qPzmYRpyDc1YfKJYDQOx9O7qd4eukdTjXtrWkvDtV5XX51RLs0mtBzj1+cVW73H6
 XDVrIa9RRxuAewJS11Cm8RMaQXM2i14XguPuHFHciP6U2uEPMNA=
 =N7UH
 -----END PGP SIGNATURE-----

Merge tag 'lpc32xx-soc-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx into arm/soc

ARM: lpc32xx: platform updates for v5.2

Here are the changes for ARM NXP LPC32xx platform files:

* removed TEST_CLK_SEL setup out of common clock framework control,
* unnecessary header files are removed from inclusion,
* registration of SSP0 and SSP1 is removed as done through device tree,
* switched the main platform file to SPDX license identifier.

* tag 'lpc32xx-soc-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx:
  ARM: lpc32xx: use SPDX license identifier
  ARM: lpc32xx: remove platform data of SSP0 and SSP1 controllers
  ARM: lpc32xx: remove redundant included headers
  ARM: lpc32xx: stop overwriting TEST_CLK_SEL

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:24:11 -07:00
Olof Johansson
ab7b7c715e spi: zynqmp: Fix build break
Missing include:
drivers/spi/spi-zynqmp-gqspi.c:1025:13: error: implicit declaration of
  function 'zynqmp_pm_get_eemi_ops'; did you mean
  'zynqmp_process_dma_irq'? [-Werror=implicit-function-declaration]

Fixes: 3d03137864 ('drivers: Defer probe if firmware is not ready')
Cc: Rajan Vaja <rajan.vaja@xilinx.com>
Cc: Jolly Shah <jollys@xilinx.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-29 09:15:16 -07:00
Xiongfeng Wang
2f1d4e24d9 firmware: arm_sdei: Prohibit probing in '_sdei_handler'
Functions called in '_sdei_handler' are needed to be marked as
'nokprobe'. Because these functions are called in NMI context and
neither the arch-code's debug infrastructure nor kprobes core supports
this.

Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Reviewed-by: James Morse <james.morse@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2019-04-29 16:50:48 +01:00
Shahar S Matityahu
a0eaead41d iwlwifi: dbg_ini: check for valid region type during regions parsing
Add region type checking during regions parsing to avoid attempts to
parse unsupported or illegal region types.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:48 +03:00
Shahar S Matityahu
0aade8f484 iwlwifi: avoid allocating memory for region with disabled domain
In iwl_fw_ini_get_trigger_len the driver allocates space for memory
regions regardless of their domain and in iwl_fw_ini_dump_trigger the
driver aborts trigger collection of disabled domain. This diff causes
unneeded memory allocation and traling zeros in the dump file.

Solve this behavior by enforcing domain checking in
iwl_fw_ini_get_trigger_len

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:47 +03:00
Shahar S Matityahu
391481ad26 iwlwifi: dbg: replace dump info device family with HW type
In the dump info, the driver sets device_family to
IWL_FW_ERROR_DUMP_FAMILY_7 in case IWL_FW_ERROR_DUMP_FAMILY_7 is used or
IWL_FW_ERROR_DUMP_FAMILY_8 otherwise. This information is misleading and
incorrect since the driver sets the device family to 8 to any device that
is from family 8 and later, e.g. device family 9 is represented as 8 in
the dump.
Also, the device family enum is known only to the driver and
does not give any information to the FW developer

Change the device family to HW type to give propper data about the nic
in use.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:47 +03:00
Shahar S Matityahu
bfd8e3dade iwlwifi: dbg_ini: add periodic trigger support
Allows to configure a periodic data collection

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:47 +03:00
Shahar S Matityahu
954454d610 iwlwifi: dbg_ini: add lmac and umac error tables dumping support
Add LMAC_ERROR_TABLE and UMAC_ERROR_TABLE region types and handle them
in the same way as we handle DEVICE_MEMORY.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:47 +03:00
Johannes Berg
b081e23c45 iwlwifi: parse command version TLV
In newer firmware images there's a command version TLV that
states, for each listed command or notification, which version
of the command and/or notification structure is used. Read and
keep this data to be able to use it in the future.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:47 +03:00
Luca Coelho
1da3823d11 iwlwifi: pcie: remove stray character in iwl_pcie_rx_alloc_page()
We have a solitary and inconspicous ` in the middle of a comment in
this function, which should not be there.  Remove it.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:47 +03:00
Andrei Otcheretianski
11af74ad1d iwlwifi: mvm: Don't sleep in RX path
Don't use cancel_delayed_work_sync() inside the channel switch
notifications as they are handled synchronously as part of the RX path.
Fix that by replacing it with cancel_delayed_work(). This should be safe
as we don't really care whether the work is already started and in such
case we would disconnect anyway.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:46 +03:00
Luca Coelho
fd986b0b7a iwlwifi: bump FW API to 48 for 22000 series
Start supporting API version 48 for 22000 series.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:46 +03:00
Liad Kaufman
529281bdf0 iwlwifi: mvm: limit TLC according to our HE capabilities
Instead of setting the TLC config command according to the
rates the peer supports, make sure that we aren't also
limited by our own rates, so take the minimum between the
peer's supported RX rates and our supported TX rates.

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:45 +03:00
Shahar S Matityahu
aee1b6385e iwlwifi: support fseq tlv and print fseq version
Support fseq tlv and print fseq version to dmesg.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:45 +03:00
Avraham Stern
cec2d4f6b4 iwlwifi: mvm: report FTM start time TSF when applicable
When the interface that is requesting an FTM measurement is connected
to a BSS, it is possible that the FTM request was originated by an
RRM request from the AP. In this case the station needs to report
the measurement start time in terms of the TSF of the AP.

Since there is no indication in the FTM request itself if the TSF
is needed, always report the TSF if the station is associated.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:45 +03:00
Luca Coelho
0c546fb6f9 iwlwifi: mvm: support v2 of the WoWLAN patterns command
Add new definitions for the WoWLAN patterns API version 2 and support
for version 2 of the WoWLAN patterns command without implementing the
new features.  With this commit we only supporting the existing
bitmask pattern match.  Use the new version only if the TLV is set.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:45 +03:00
Johannes Berg
30f24eabab iwlwifi: pcie: don't crash on invalid RX interrupt
If for some reason the device gives us an RX interrupt before we're
ready for it, perhaps during device power-on with misconfigured IRQ
causes mapping or so, we can crash trying to access the queues.

Prevent that by checking that we actually have RXQs and that they
were properly allocated.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:45 +03:00
Johannes Berg
c5bf4fa142 iwlwifi: pcie: initialize debug_rfkill to -1
This will let us introduce a mechanism to start with rfkill
faked, and put 0 here to override it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:44 +03:00
YueHaibing
14cf9bc608 iwlwifi: Use correct channel_profile iniwl_get_nvm
commit 2785ce008e ("iwlwifi: support new NVM response API")
seems forgot use correct channel_profile in iwl_get_nvm when call
iwl_init_sbands().

Fixes: 2785ce008e ("iwlwifi: support new NVM response API")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-04-29 18:42:44 +03:00
Paulo Alcantara
dfbd199a7c selinux: use kernel linux/socket.h for genheaders and mdp
When compiling genheaders and mdp from a newer host kernel, the
following error happens:

    In file included from scripts/selinux/genheaders/genheaders.c:18:
    ./security/selinux/include/classmap.h:238:2: error: #error New
    address family defined, please update secclass_map.  #error New
    address family defined, please update secclass_map.  ^~~~~
    make[3]: *** [scripts/Makefile.host:107:
    scripts/selinux/genheaders/genheaders] Error 1 make[2]: ***
    [scripts/Makefile.build:599: scripts/selinux/genheaders] Error 2
    make[1]: *** [scripts/Makefile.build:599: scripts/selinux] Error 2
    make[1]: *** Waiting for unfinished jobs....

Instead of relying on the host definition, include linux/socket.h in
classmap.h to have PF_MAX.

Cc: stable@vger.kernel.org
Signed-off-by: Paulo Alcantara <paulo@paulo.ac>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
[PM: manually merge in mdp.c, subject line tweaks]
Signed-off-by: Paul Moore <paul@paul-moore.com>
2019-04-29 11:34:58 -04:00
Geert Uytterhoeven
89626d4bad irqchip/renesas-intc-irqpin: Remove devm_kzalloc() error printing
There is no need to print a message if devm_kzalloc() fails, as the
memory allocation core already takes care of that.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-29 16:29:59 +01:00
Geert Uytterhoeven
66373bf671 irqchip: Remove unneeded select IRQ_DOMAIN
IRQ_DOMAIN_HIERARCHY selects IRQ_DOMAIN, hence there is no need for
drivers to select both.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-29 16:29:48 +01:00
David S. Miller
2ae7a39770 * fix use-after-free in mac80211 TXQs
* fix RX STBC byte order
  * fix debugfs rename crashing due to ERR_PTR()
  * fix missing regulatory notification
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEH1e1rEeCd0AIMq6MB8qZga/fl8QFAlzCyg8ACgkQB8qZga/f
 l8TTzQ//UdRQL5Mt6GfTBrZ/V8gp0+urykENefErjQi7GzUpZC5+bHpm2IGKr6y3
 rf1q3Tr+vAr4WdHxQxjVP0AJIMd5+UAEGgevgMj0yY7Nu9+ktYryhnXrKPBbZRQ+
 mrnZ1u/t6RjA4rCHtEpaW8Xb8FT01VpdtZXbDOaNmGKLLwCbGJb9I9rCfEWczUQ+
 b/a6IFhSE7kxeoceiHXjA7X3eNex/DlV5oE8RCK5gcUtWj8gMzVWNjdiC3gt0VLo
 zLdteEv/C7e+XycWIeHHIWEdScJJFeFNY4e7mvwNIRnil+HrShyrkJUbuHCc/UC/
 USVc/PJX05UTjuAFn1wOdJerUzzQAOYPurZSxuFVl/v2YXjybMYLcCfk1Hplp1v6
 a6nkc/CYGCytHqKteyG9XzkgM3c1rmr8bUDnvJjTxhPh5htlln876VPYnjpEXgGD
 lJgyEgY7M65c3C33dAvilKS3MteZKABXYSCMA+K7mNY5PVcWrC69FYBh9oG4NQQk
 53h+4VxmOBBW4UkZpptbxp4HIHIJCoKR09K9fWuvqGNj1uyexgMY1k6C1g3q2SkA
 PXr+ZGgx5P/DFJsz7U4aqG3mi8vagAUwKEZ6Tt7/BuozrOlwTR/bKoaIZq+Q1Lcu
 SUlyEj18qBZVCKyD2KEveLIGXLjCbHOw0HHB6A4ICEqNcCW6jGE=
 =KjkZ
 -----END PGP SIGNATURE-----

Merge tag 'mac80211-for-davem-2019-04-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211

Johannes Berg says:

====================
 * fix use-after-free in mac80211 TXQs
 * fix RX STBC byte order
 * fix debugfs rename crashing due to ERR_PTR()
 * fix missing regulatory notification
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-29 11:00:58 -04:00
Arnd Bergmann
62acdcfa8b wireless: carl9170: fix clang build warning
clang fails to eliminate some dead code with always-taken branches
when CONFIG_PROFILE_ANNOTATED_BRANCHES is set, leading to a false-positive
warning:

drivers/net/wireless/ath/carl9170/mac.c:522:3: error: variable 'power' is used uninitialized whenever 'if' condition is
      false [-Werror,-Wsometimes-uninitialized]
                BUG_ON(1);
                ^~~~~~~~~

Change both instances of BUG_ON(1) in carl9170 to the simpler BUG()
to avoid the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 18:00:42 +03:00
Gustavo A. R. Silva
bfabdd6997 wil6210: fix potential out-of-bounds read
Notice that *rc* can evaluate to up to 5, include/linux/netdevice.h:

enum gro_result {
        GRO_MERGED,
        GRO_MERGED_FREE,
        GRO_HELD,
        GRO_NORMAL,
        GRO_DROP,
        GRO_CONSUMED,
};
typedef enum gro_result gro_result_t;

In case *rc* evaluates to 5, we end up having an out-of-bounds read
at drivers/net/wireless/ath/wil6210/txrx.c:821:

	wil_dbg_txrx(wil, "Rx complete %d bytes => %s\n",
		     len, gro_res_str[rc]);

Fix this by adding element "GRO_CONSUMED" to array gro_res_str.

Addresses-Coverity-ID: 1444666 ("Out-of-bounds read")
Fixes: 194b482b50 ("wil6210: Debug print GRO Rx result")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:59:40 +03:00
Anilkumar Kolli
d8792393a7 ath: DFS JP domain W56 fixed pulse type 3 RADAR detection
Increase pulse width range from 1-2usec to 0-4usec.
During data traffic HW occasionally fails detecting radar pulses,
so that SW cannot get enough radar reports to achieve the success rate.

Tested ath10k hw and fw:
	* QCA9888(10.4-3.5.1-00052)
	* QCA4019(10.4-3.2.1.1-00017)
	* QCA9984(10.4-3.6-00104)
	* QCA988X(10.2.4-1.0-00041)

Tested ath9k hw: AR9300

Tested-by: Tamizh chelvam <tamizhr@codeaurora.org>
Signed-off-by: Tamizh chelvam <tamizhr@codeaurora.org>
Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:58:51 +03:00
Tomislav Požega
d3c2be9022 ath9k: drop redundant code in ar9003_hw_set_channel
AR9330, AR9485, AR9531, AR9550, AR9561 and AR9565 all use same
channel set register configuration which allows for small code
size reduction.

Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:56:03 +03:00
Tomislav Požega
b50fd29c52 ath: drop duplicated define
Remove duplicate NO_CTL that is just 2 lines below.

Signed-off-by: Tomislav Požega <pozega.tomislav@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:55:53 +03:00
YueHaibing
05039f01e6 ath9k: Remove some set but not used variables
Fixes gcc '-Wunused-but-set-variable' warning:

drivers/net/wireless/ath/ath9k/xmit.c: In function 'ath_tx_count_frames':
drivers/net/wireless/ath/ath9k/xmit.c:413:25: warning: variable 'fi' set but not used [-Wunused-but-set-variable]
drivers/net/wireless/ath/ath9k/xmit.c: In function 'ath_tx_complete_aggr':
drivers/net/wireless/ath/ath9k/xmit.c:449:24: warning: variable 'hdr' set but not used [-Wunused-but-set-variable]
drivers/net/wireless/ath/ath9k/xmit.c: In function 'ath_tx_start':
drivers/net/wireless/ath/ath9k/xmit.c:2274:18: warning: variable 'avp' set but not used [-Wunused-but-set-variable]
drivers/net/wireless/ath/ath9k/xmit.c:2269:24: warning: variable 'hdr' set but not used [-Wunused-but-set-variable]

These variables are not used any more
and can be removed.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:54:52 +03:00
Sven Eckelmann
b037b10756 ath9k: Differentiate between max combined and per chain power
The ath9k driver uses as maximum allowed txpower the constant
MAX_RATE_POWER. It is used to set a maximum txpower limit for the PHY
(which is combined txpower) and also the maximum txpower for per chain
rates. Its value 63 is derived from the maximum number the registers can
store for the per chain txpower.

The max txpower a user can set because of this is 31 dBm (floor(63 / 2)).
This also means that a device with multiple tx chains is even limited
further:

* 1 chain:  31 dBm per chain
* 2 chains: 28 dBm per chain
* 3 chains: 26 dBm per chain

This combined txpower limit of 31 dBm becomes even more problematic when
some extra antenna gain is set in the EEPROM. A high power device is then
no longer able to reach its potential limits.

Instead the code dealing with the combined txpower must use a higher limit
than 63 and only the code dealing with the per chain txpower have to use
the limit of 63. Since the antenna gain can be quite large and 8 bit
variables are often used in ath9k for txpower, a large, divisible by two
number like 254 is a good choice for this new limit.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:53:43 +03:00
Tim Schumacher
2f90c7e5d0 ath9k: Check for errors when reading SREV register
Right now, if an error is encountered during the SREV register
read (i.e. an EIO in ath9k_regread()), that error code gets
passed all the way to __ath9k_hw_init(), where it is visible
during the "Chip rev not supported" message.

    ath9k_htc 1-1.4:1.0: ath9k_htc: HTC initialized with 33 credits
    ath: phy2: Mac Chip Rev 0x0f.3 is not supported by this driver
    ath: phy2: Unable to initialize hardware; initialization status: -95
    ath: phy2: Unable to initialize hardware; initialization status: -95
    ath9k_htc: Failed to initialize the device

Check for -EIO explicitly in ath9k_hw_read_revisions() and return
a boolean based on the success of the operation. Check for that in
__ath9k_hw_init() and abort with a more debugging-friendly message
if reading the revisions wasn't successful.

    ath9k_htc 1-1.4:1.0: ath9k_htc: HTC initialized with 33 credits
    ath: phy2: Failed to read SREV register
    ath: phy2: Could not read hardware revision
    ath: phy2: Unable to initialize hardware; initialization status: -95
    ath: phy2: Unable to initialize hardware; initialization status: -95
    ath9k_htc: Failed to initialize the device

This helps when debugging by directly showing the first point of
failure and it could prevent possible errors if a 0x0f.3 revision
is ever supported.

Signed-off-by: Tim Schumacher <timschumi@gmx.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:52:55 +03:00
Toke Høiland-Jørgensen
389b72e582 ath9k: Don't trust TX status TID number when reporting airtime
As already noted a comment in ath_tx_complete_aggr(), the hardware will
occasionally send a TX status with the wrong tid number. If we trust the
value, airtime usage will be reported to the wrong AC, which can cause the
deficit on that AC to become very low, blocking subsequent attempts to
transmit.

To fix this, account airtime usage to the TID number from the original skb,
instead of the one in the hardware TX status report.

Reported-by: Miguel Catalan Cid <miguel.catalan@i2cat.net>
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:51:49 +03:00
Colin Ian King
e643da21e1 ath6kl: remove redundant check of status != 0
The check on status not being zero is redundant as previous code
paths that set status to an error value break out of the while
loop and hence status is never non-zero at the check. Remove
this redundant code.

Addresses-Coverity: ("Logically dead code")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:50:10 +03:00
Dan Carpenter
5d6751eaff ath6kl: add some bounds checking
The "ev->traffic_class" and "reply->ac" variables come from the network
and they're used as an offset into the wmi->stream_exist_for_ac[] array.
Those variables are u8 so they can be 0-255 but the stream_exist_for_ac[]
array only has WMM_NUM_AC (4) elements.  We need to add a couple bounds
checks to prevent array overflows.

I also modified one existing check from "if (traffic_class > 3) {" to
"if (traffic_class >= WMM_NUM_AC) {" just to make them all consistent.

Fixes: bdcd817079 (" Add ath6kl cleaned up driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:49:16 +03:00
Joel Fernandes (Google)
bc0c60457c init/config: Do not select BUILD_BIN2C for IKCONFIG
Since commit 13610aa908 ("kernel/configs: use .incbin directive to
embed config_data.gz"), IKCONFIG no longer uses BUILD_BIN2C so prevent
it from being selected in Kconfig.

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-29 16:48:04 +02:00
Joel Fernandes (Google)
43d8ce9d65 Provide in-kernel headers to make extending kernel easier
Introduce in-kernel headers which are made available as an archive
through proc (/proc/kheaders.tar.xz file). This archive makes it
possible to run eBPF and other tracing programs that need to extend the
kernel for tracing purposes without any dependency on the file system
having headers.

A github PR is sent for the corresponding BCC patch at:
https://github.com/iovisor/bcc/pull/2312

On Android and embedded systems, it is common to switch kernels but not
have kernel headers available on the file system. Further once a
different kernel is booted, any headers stored on the file system will
no longer be useful. This is an issue even well known to distros.
By storing the headers as a compressed archive within the kernel, we can
avoid these issues that have been a hindrance for a long time.

The best way to use this feature is by building it in. Several users
have a need for this, when they switch debug kernels, they do not want to
update the filesystem or worry about it where to store the headers on
it. However, the feature is also buildable as a module in case the user
desires it not being part of the kernel image. This makes it possible to
load and unload the headers from memory on demand. A tracing program can
load the module, do its operations, and then unload the module to save
kernel memory. The total memory needed is 3.3MB.

By having the archive available at a fixed location independent of
filesystem dependencies and conventions, all debugging tools can
directly refer to the fixed location for the archive, without concerning
with where the headers on a typical filesystem which significantly
simplifies tooling that needs kernel headers.

The code to read the headers is based on /proc/config.gz code and uses
the same technique to embed the headers.

Other approaches were discussed such as having an in-memory mountable
filesystem, but that has drawbacks such as requiring an in-kernel xz
decompressor which we don't have today, and requiring usage of 42 MB of
kernel memory to host the decompressed headers at anytime. Also this
approach is simpler than such approaches.

Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-29 16:48:03 +02:00
Gustavo A. R. Silva
83d9562b64 ath6kl: wmi: use struct_size() helper
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes, in particular in the
context in which this code is being used.

So, replace code of the following form:

sizeof(*ev) + ev->num_neighbors * sizeof(struct wmi_neighbor_info)

with:

struct_size(ev, neighbor, ev->num_neighbors)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-04-29 17:47:03 +03:00
Rasmus Villemoes
12eade123e irqchip/gic-v3-its: Make free_lpi_range a little cheaper
Using list_add + list_sort to insert an element and keeping the list
sorted is a somewhat blunt instrument; one can find the right place to
insert in fewer lines of code than the cmp callback uses. Moreover,
walking the entire list afterwards to merge adjacent ranges is
overkill, since we know that only the just-inserted element may be
merged with its neighbours.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-29 15:45:01 +01:00
Rasmus Villemoes
1c73fac50d irqchip/gic-v3-its: Drop redundant initialization in mk_lpi_range
There's no reason to ask kmalloc() to zero the allocation, since all
the fields get initialized immediately afterwards. Except that there's
also not any reason to initialize the ->entry member, since the
element gets added to the lpi_range_list immediately.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-29 15:45:01 +01:00
Rasmus Villemoes
b31a383852 irqchip/gic-v3-its: Move allocation outside mutex
There's no reason to do the allocation of the new lpi_range inside the
lpi_range_lock. One could change the code to avoid the allocation
altogether in case the freed range can be merged with one or two
existing ranges (in which case the allocation would naturally be done
under the lock), but it's probably not worth complicating the code for
that.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-29 15:45:01 +01:00
Fabien Dessenne
cfbf9e4970 irqchip/stm32: Use a platform driver for stm32mp1-exti device
This irqchip driver uses the hwspinlock framework (coprocessor HW regs
access concurrency) for the stm32mp1-exti device.
Hence, this driver needs to handle the hwspinlock driver dependency
using the deferred probe mechanism which requires to move this driver
into a platform one with a probe() ops.
This applies only for the device which is "st,stm32mp1-exti" compatible,
the management of the other devices (st,stm32h7-exti / st,stm32-exti) is
kept unchanged (use IRQCHIP_DECLARE)

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-29 15:45:01 +01:00