Commit graph

932869 commits

Author SHA1 Message Date
Arnd Bergmann
863c0b59f0 Renesas DT binding updates for v5.8 (take two)
- Document support for the RZ/G1H-based iWave RainboW Qseven SOM
     (G21M) and board (G21D).
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCXr5obwAKCRCKwlD9ZEnx
 cAKhAQDBfrouYCHZw3um3sArjdEgMGRcRWr4yfZ26UfzDUXFQQEA/4VYNfEjneZ2
 xehvs7svgO/9aX/lQ+6jxUUpaGynaAw=
 =pHmk
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-bindings-for-v5.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/dt

Renesas DT binding updates for v5.8 (take two)

  - Document support for the RZ/G1H-based iWave RainboW Qseven SOM
    (G21M) and board (G21D).

* tag 'renesas-dt-bindings-for-v5.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  dt-bindings: arm: renesas: Document iW-RainboW-G21D-Qseven-RZG1H board
  dt-bindings: arm: renesas: Document iW-RainboW-G21M-Qseven-RZG1H SoM

Link: https://lore.kernel.org/r/20200515100547.14671-6-geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 16:03:22 +02:00
Arnd Bergmann
de12d92147 Renesas ARM DT updates for v5.8 (take two)
- Initial support for the Renesas RZ/G1H SoC on the iWave RainboW
     Qseven SOM (G21M) and board (G21D),
   - Support for the AISTARVISION MIPI Adapter V2.1 camera board on the
     Silicon Linux EK874 RZ/G2E evaluation kit.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCXr5g8QAKCRCKwlD9ZEnx
 cDusAQD4SCmyY0MZZNWQhkhu2ics2wYpKItw4Y7E4fl9XUlXkQEAyyN11vVNoteX
 7KvNX7/9eXpberlcx4H6szPQsOzWzwM=
 =2KDk
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm-dt-for-v5.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/dt

Renesas ARM DT updates for v5.8 (take two)

  - Initial support for the Renesas RZ/G1H SoC on the iWave RainboW
    Qseven SOM (G21M) and board (G21D),
  - Support for the AISTARVISION MIPI Adapter V2.1 camera board on the
    Silicon Linux EK874 RZ/G2E evaluation kit.

* tag 'renesas-arm-dt-for-v5.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  arm64: dts: renesas: r8a774c0-cat874: Add support for AISTARVISION MIPI Adapter V2.1
  ARM: dts: r8a7742: Add GPIO nodes
  ARM: dts: r8a7742: Add [H]SCIF{A|B} support
  ARM: dts: r8a7742: Add IRQC support
  ARM: dts: r8a7742-iwg21d-q7: Add iWave G21D-Q7 board based on RZ/G1H
  ARM: dts: r8a7742-iwg21m: Add iWave RZ/G1H Qseven SOM
  ARM: dts: r8a7742: Initial SoC device tree
  clk: renesas: Add r8a7742 CPG Core Clock Definitions
  dt-bindings: power: rcar-sysc: Add r8a7742 power domain index macros

Link: https://lore.kernel.org/r/20200515100547.14671-3-geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 16:02:12 +02:00
Arnd Bergmann
aff195d0ec STM32 DT updates for v5.8, round 1
Highlights:
 ----------
 
 MCU part:
  -fix a typo for DAC io-channel-cells on f429 and h743
 
 MPU part:
  -Generic:
   -Bump tp PSCI 1.0
   -Fix a typo for DAC io-channel-cells
   -Add M4 pdds for deep sleep mode
   -Add I2C fatmode plus support
 
  -Add new Octavio lxa-mc1 board based on OSDMP15x SiP
 
  -Add new Stinger96 board support. It is a 96Boards IoT Extended board
   based on stm32mp157a SoC. Some figures: 256MB DDR, 125MB and flash,
   Onboard BG96 modem...
 
  -Add IoT Box board support based on stinger96 board + Wifi/BT, CCS811
   VOC sensor, 2 digitals microphones ...
 
  -DH:
   -Adapt dhcom-som and dhcom-pdk2 dts(i) files to STM32MP15 SoC diversity
   -Add GPIO led and GPIO keys support on PDK2 board
 
  -AV96:
   -Major rework to support official avenger96 board based on DHCOR SOM.
   -Prototype board is no more supported
 -----BEGIN PGP SIGNATURE-----
 
 iQJMBAABCgA2FiEEctl9+nxzUSUqdELdf5rJavIecIUFAl69aa4YHGFsZXhhbmRy
 ZS50b3JndWVAc3QuY29tAAoJEH+ayWryHnCFhH0QAK+7gK6fKXJU+meHe7kSuzm1
 IvMYGA126KXubzNCSq2dxkHhGf+hlHE9jaQd27N9sTWY5Zi/B/xMDC+XotZhNEuL
 +vLwPl5tfENOK/MC+eu5HFdx8D/1dMZ1eh0PyudjifxB1yiTqHpoce6hwJ+gHedT
 GwvAz8udReP5jQTHK6Z66z56A81qMxLCKiAL4M2ExqzYECX/nl7bkqtpzG8OG56l
 wsfjOowpw0g6KLMjnL+0l97/xhXUdEeIQ7IvrvNhC4zgNytZREk8wymh0odPHLZP
 PmZ0f0cjgtP3HAt26GuyG2IZI2byoat3KWAqOxmXeqNR7EWPjkwAtU4kYprk1reu
 rZ70SqCvk6ABH3E8s5v4Noa+ni7Et4NB/BqUwulfBXTgl3D9dzloKNc+rSi/BFXd
 E1aaEL4qXu89b3GOsC1tq2SLbsr28GkNg54+Tb1SBpTJV8wTgScKTuopExQoBVPU
 iMRDPJ8jv6fRD99g/ZOa+8u13cYh1u8pSOSS4jpgyHeEagebnxnkLv71uETp2Nva
 WgLXEYuDgfwEJ6C4lyLbX1g5ak1LLix5gDMFTdSPiW0SCIs5NEk112ItQMWg8b3r
 P3pThyzwpUOUyi742OCo02r5d+LrBbcBNktGYMcv/l/lc9u/ObDwmoaBjclTHVwq
 yQuJS+y6TAoLORRr4rOg
 =JFtr
 -----END PGP SIGNATURE-----

Merge tag 'stm32-dt-for-v5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt

STM32 DT updates for v5.8, round 1

Highlights:
----------

MCU part:
 -fix a typo for DAC io-channel-cells on f429 and h743

MPU part:
 -Generic:
  -Bump tp PSCI 1.0
  -Fix a typo for DAC io-channel-cells
  -Add M4 pdds for deep sleep mode
  -Add I2C fatmode plus support

 -Add new Octavio lxa-mc1 board based on OSDMP15x SiP

 -Add new Stinger96 board support. It is a 96Boards IoT Extended board
  based on stm32mp157a SoC. Some figures: 256MB DDR, 125MB and flash,
  Onboard BG96 modem...

 -Add IoT Box board support based on stinger96 board + Wifi/BT, CCS811
  VOC sensor, 2 digitals microphones ...

 -DH:
  -Adapt dhcom-som and dhcom-pdk2 dts(i) files to STM32MP15 SoC diversity
  -Add GPIO led and GPIO keys support on PDK2 board

 -AV96:
  -Major rework to support official avenger96 board based on DHCOR SOM.
  -Prototype board is no more supported

* tag 'stm32-dt-for-v5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (58 commits)
  ARM: dts: stm32: Split Avenger96 into DHCOR SoM and Avenger96 board
  ARM: dts: stm32: Split SoC-independent parts of DHCOM SOM and PDK2
  ARM: dts: stm32: Add GPIO LEDs for STM32MP1 DHCOM PDK2
  ARM: dts: stm32: Add GPIO keys for STM32MP1 DHCOM PDK2
  ARM: dts: stm32: Add IoT Box board support
  dt-bindings: arm: stm32: Document IoT Box compatible
  ARM: dts: stm32: Add Stinger96 board support
  dt-bindings: arm: stm32: Document Stinger96 compatible
  ARM: dts: stm32: Add missing pinctrl entries for STM32MP15
  dt-bindings: Add vendor prefix for Shiratech Solutions
  ARM: dts: stm32: Add bindings for SPI2 on AV96
  ARM: dts: stm32: Add alternate pinmux for SPI2 pins
  ARM: dts: stm32: Add bindings for ADC on AV96
  ARM: dts: stm32: Add alternate pinmux for ADC pins
  ARM: dts: stm32: Add bindings for FDCAN2 on AV96
  ARM: dts: stm32: Add alternate pinmux for FDCAN2 pins
  ARM: dts: stm32: Add bindings for FDCAN1 on AV96
  ARM: dts: stm32: Add alternate pinmux for FDCAN1 pins
  ARM: dts: stm32: Repair I2C2 operation on AV96
  ARM: dts: stm32: Add alternate pinmux for I2C2 pins
  ...

Link: https://lore.kernel.org/r/19160355-364d-170c-7ae2-5ba7f714103f@st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 16:00:47 +02:00
Jean-Philippe Brucker
0299a1a81c iommu/arm-smmu-v3: Manage ASIDs with xarray
In preparation for sharing some ASIDs with the CPU, use a global xarray to
store ASIDs and their context. ASID#0 is now reserved, and the ASID
space is global.

Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Link: https://lore.kernel.org/r/20200519175502.2504091-9-jean-philippe@linaro.org
Signed-off-by: Will Deacon <will@kernel.org>
2020-05-21 14:54:06 +01:00
Arnd Bergmann
ca6bc7a192 Samsung DTS ARM changes for v5.8
1. Add DTS for Exynos4210-based Samsung Galaxy S2 (GT-I9100)
    mobile phone,
 2. Enable WiFi and Bluetooth in multiple boards,
 3. Add new features to S5Pv210-based Aries family of mobile phones
    (e.g. Samsung Galaxy S): necessary configuration for suspend, audio
    support, USB mux, touch keys, panel, i2c-gpio adapters, FM radio, ADC,
 4. Many minor fixes (e.g. GPIO polarity, interrupts).
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAl66lFUQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1yYGEACBvawfckK8OOJig55ndsENHN+/qvhy2+e8
 GK/vt5Rg0Hx296s+laDhvz7kH4djSca1hAvM6rceA0ov2EqxuncQwAN1elH96HLf
 PHcfWX2+lREz5F5t4vb+/+5YCn0xIH0VQIwPQJUkTCDspo9XU7KrKUo2/h7qycCT
 Pk+TmLJqO/8JKmYTDenm5yALHzdPJgvy/Q+dEU+cXSG//my9azI8vb7AUUgXJTWb
 PYZX8LhyPAK8sOXkVVmfuvz/L+kVGNPP5UNurqUOM+i63OSLyHd1w+6U38OXUGsq
 rJaFsQI7eZNCLH37MHEg0D8vlBG7VaB1jVHRMyQKemu9dojkbv65ISvO8N4gqP3F
 pEgjwDYSddXjrGepHOUHxO+5PVBweDqrPHwk2G46+YdiudcaVflUkQ8XUKqABzPx
 X31LLM7B0ITh3VUZtr1pwluThdlMKClchDzlYMntztSraMtuXxzMXE/MOSrUxmbL
 wYXA2vLn361muuW1YV2kP/1k03vbdyunRybtlcCq4p9oBFC/5LZLVT6ZxIOUXZDm
 620p67/a0o3vaw8xfwvheRv0q2BkbjmHIIedky2VMy5EH6a0czRm37Xxb3pRupxd
 uvuIAHLp2Vu9N+CbKivDeUA37WZZhDi3xz/6jJpTiz9r4ktS5oYEQoyxhNKShOfp
 rOdjhoP6Rg==
 =kTHc
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt

Samsung DTS ARM changes for v5.8

1. Add DTS for Exynos4210-based Samsung Galaxy S2 (GT-I9100)
   mobile phone,
2. Enable WiFi and Bluetooth in multiple boards,
3. Add new features to S5Pv210-based Aries family of mobile phones
   (e.g. Samsung Galaxy S): necessary configuration for suspend, audio
   support, USB mux, touch keys, panel, i2c-gpio adapters, FM radio, ADC,
4. Many minor fixes (e.g. GPIO polarity, interrupts).

* tag 'samsung-dt-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: (29 commits)
  ARM: dts: s5pv210: Set MAX8998 GPIO pulls on Aries boards
  ARM: dts: s5pv210: Correct FIMC definitions
  ARM: dts: s5pv210: Assign clocks to MMC devices on Aries boards
  ARM: dts: s5pv210: Enable ADC on Aries boards
  ARM: dts: s5pv210: Add an ADC node
  ARM: dts: s5pv210: Disable pull for vibrator enable GPIO on Aries boards
  ARM: dts: s5pv210: Add si470x FM radio to Galaxy S
  ARM: dts: s5pv210: Add remaining i2c-gpio adapters to Aries boards
  ARM: dts: s5pv210: Add panel support to Aries boards
  ARM: dts: s5pv210: Add touchkey support to Aries boards
  ARM: dts: s5pv210: Add FSA9480 support to Aries boards
  ARM: dts: s5pv210: Add WM8994 support to Aries boards
  ARM: dts: s5pv210: Disable pulls on GPIO I2C adapters for Aries
  ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
  ARM: dts: s5pv210: Correct gpi pinctrl node name
  ARM: dts: s5pv210: Add sleep GPIO configuration for Galaxy S
  ARM: dts: s5pv210: Add sleep GPIO configuration for Fascinate4G
  ARM: dts: s5pv210: Add helper define for sleep gpio config
  ARM: dts: exynos: Enable WLAN support for the UniversalC210 board
  ARM: dts: exynos: Enable WLAN support for the Rinato board
  ...

Link: https://lore.kernel.org/r/20200512122922.5700-2-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 15:51:40 +02:00
Jean-Philippe Brucker
4fc92254bf arm64: mm: Add asid_gen_match() helper
Add a macro to check if an ASID is from the current generation, since a
subsequent patch will introduce a third user for this test.

Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Link: https://lore.kernel.org/r/20200519175502.2504091-6-jean-philippe@linaro.org
Signed-off-by: Will Deacon <will@kernel.org>
2020-05-21 14:46:14 +01:00
Arnd Bergmann
c380981efb This pull request contains Broadcom ARM-based SoCs Device Tree changes
for v5.8, please pull the following:
 
 - Nicolas updates the Raspberry Pi 4 board DTS to include the GPIO
   controlling power to the SD card, adds support for the vmmc regulator
   for the emmc2 controller and finally updates the power management
   provider for V3D to use the firmware to solve instabilities.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAl64WbsACgkQh9CWnEQH
 BwSDyw//TdqnPMJO/U5RbH+prt4N4/FcymESDtZ4op4y2UyI6Cr5g+5IJyEGjaQ1
 YSmdHcTcThYH0nneUIWiATNv7RtyTlg36HiWogxFpTEvvI77ttwiRcSphmxWnJMz
 XLfwzr9b4p+y7IdanwGZ5YLnHfXNX/uZwxfkweRhvNlS9jLvGha1lchV/JS6MKGE
 Nw+d9SN6TyoMxIKL6CJq6TuXDsSsIS94zYZybIN8yFWxbKkK4GXVvMp+s+Ix4dyc
 9TVvT+YtJkKDElcPz0lulLI5P2a9Rdm4jNxTXUKzcfavSPFCq9nkDmxJIhRomAGr
 OGJtIg8gjz44wiFN9WT6BQy1lHqfy44OhRLwZmX8krD6HxEjln8AB5H+8v/AZ5P3
 02lLcfUPYb4y3Fog073zDLa9EZy4fJKxYNnRBVcPwpPkT8mNapC3OKdkC0l5V4s5
 RwCRvvWVQCUDMYxkT1sXlQCFTbTL/VKoa+xS6fsP0TOY8OVCKhxm3M3D5PMDoYic
 r0J/xNngzS8xvm9LwiEvA0tAKfPUTatlFfiFLuJhddUvMFHEsFTmYW+houO54e6N
 jrAxcwMvJlHr/jkaRlpZYf+C18+Z841RDMTmAMpZ1/ad6CgJkyjuf9SLce4hbsp5
 8Cvr6khD+843eWjZYoF5+ePa8UEnCzfpoVf2z4ivXuAf6X3ucLM=
 =cX7l
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-5.8/devicetree' of https://github.com/Broadcom/stblinux into arm/dt

This pull request contains Broadcom ARM-based SoCs Device Tree changes
for v5.8, please pull the following:

- Nicolas updates the Raspberry Pi 4 board DTS to include the GPIO
  controlling power to the SD card, adds support for the vmmc regulator
  for the emmc2 controller and finally updates the power management
  provider for V3D to use the firmware to solve instabilities.

* tag 'arm-soc/for-5.8/devicetree' of https://github.com/Broadcom/stblinux:
  ARM: dts: bcm283x: Use firmware PM driver for V3D
  ARM: dts: bcm2711: Add vmmc regulator in emmc2
  ARM: dts: bcm2711: Update expgpio's GPIO labels

Link: https://lore.kernel.org/r/20200511210522.28243-2-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 15:45:59 +02:00
Arnd Bergmann
9c7ae8edb9 ARM64: DT: Hisilicon SoCs DT updates for 5.8
- Add pinconf for spi2 and spi3 nodes and increase the drive
   strength to achieve the max speed for the Hikey960 board
 - Add CTI nodes for the Hikey620 board
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJevjyIAAoJEAvIV27ZiWZcGoYQAJdLtw+VmW+NarmObzZ1vFh9
 tpAWA1UDgH6oY61lscdbi8feAYmj2i8kdCCEFldxUSQCcVFX3MoZAJMTb18EaASg
 tJpLvHcNd47BYv+t9VdlIcEsbKHmZO1eJU4KnzOR4uHr6sS1n4spwpPV7lhIFoHY
 yp5xZSp5COraHrmBkytgcLgxMhLmQl40Kej1MF2Ce6bP/+C10UuejPOn8KaO9bmm
 +7ipF0B254HxmzJJlNWszVJiBweX8UYmeSAe/xLz5mbKAHYnZ1R9Iz2+lJO8SQSz
 ztPrZ5JRW+FNGbHq+Q+e5l2OdxcVoIptlHLbrrmVCt7NoTm/CeXnOg7SzxfHN8J9
 Y8GyFugjXRV4Oe/3SzlApy4Yq5Hf3iAi0jNrbwQHasKptOXEIP/XLP+slppbQmPY
 aklo8iIxM9rUuqHoolFmvl+KE8B7v12YkhBa0sQXWwbGNW2jF6cBknHRC/Lrq6/a
 W0VDdAQJ+Tu8fLvG2mO71ZGAvSC0FMkkQ1XE6wMKNkbwf4g1DCgkK+EqQV1eeZcz
 WJfgwyMQcql6uv5ICbvgiL48MrAxDCaxMLvvjZc1ti9e2DDMROXILCR5Z/tKd8UB
 +2ve/5xcVdujClfpPUoAPwKGrRG9cKZ4PuNOfw5YGntFvLBwhXjtLCjf3/hF4dbD
 Qt9KY+9bBMDcf3qY4JrX
 =+heh
 -----END PGP SIGNATURE-----

Merge tag 'hisi-arm64-dt-for-5.8' of git://github.com/hisilicon/linux-hisi into arm/dt

ARM64: DT: Hisilicon SoCs DT updates for 5.8

- Add pinconf for spi2 and spi3 nodes and increase the drive
  strength to achieve the max speed for the Hikey960 board
- Add CTI nodes for the Hikey620 board

* tag 'hisi-arm64-dt-for-5.8' of git://github.com/hisilicon/linux-hisi:
  arm64: dts: hi6220: Add CTI options
  arm64: dts: hikey960: pinctrl: Fix spi2/spi3 pinconf

Link: https://lore.kernel.org/r/5EBE430E.6090508@hisilicon.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 15:43:46 +02:00
Sudeep Holla
269fd61e15 firmware: smccc: Fix missing prototype warning for arm_smccc_version_init
Commit f2ae97062a ("firmware: smccc: Refactor SMCCC specific bits into
separate file") introduced the following build warning:

drivers/firmware/smccc/smccc.c:14:13: warning: no previous prototype for
	function 'arm_smccc_version_init' [-Wmissing-prototypes]
 void __init arm_smccc_version_init(u32 version, enum arm_smccc_conduit conduit)
             ^~~~~~~~~~~~~~~~~~~~~~

Fix the same by adding the missing prototype in arm-smccc.h

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20200521110836.57252-1-sudeep.holla@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2020-05-21 14:07:37 +01:00
Gal Pressman
e1ca01a902 RDMA/efa: Report host information to the device
The host info feature allows the driver to infrom the EFA device
firmware with system configuration for debugging and troubleshooting
purposes.

The host info buffer is passed as an admin command DMA mapped control
buffer, and is unmapped and freed once the command CQE is consumed.

Currently, the setting of host info is done for each device on its
probe. Failing to set the host info for the device shall not disturb the
probe flow, any errors will be discarded.

Link: https://lore.kernel.org/r/20200512152204.93091-3-galpress@amazon.com
Reviewed-by: Firas JahJah <firasj@amazon.com>
Reviewed-by: Guy Tzalik <gtzalik@amazon.com>
Signed-off-by: Gal Pressman <galpress@amazon.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2020-05-21 10:05:00 -03:00
Gal Pressman
cc8a635e24 RDMA/efa: Fix setting of wrong bit in get/set_feature commands
When using a control buffer the ctrl_data bit should be set in order to
indicate the control buffer address is valid, not ctrl_data_indirect
which is used when the control buffer itself is indirect.

Fixes: e9c6c53730 ("RDMA/efa: Add common command handlers")
Link: https://lore.kernel.org/r/20200512152204.93091-2-galpress@amazon.com
Reviewed-by: Firas JahJah <firasj@amazon.com>
Reviewed-by: Yossi Leybovich <sleybo@amazon.com>
Signed-off-by: Gal Pressman <galpress@amazon.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2020-05-21 10:05:00 -03:00
Will Deacon
a4eb355a3f arm64: vdso: Fix CFI directives in sigreturn trampoline
Daniel reports that the .cfi_startproc is misplaced for the sigreturn
trampoline, which causes LLVM's unwinder to misbehave:

  | I run into this with LLVM’s unwinder.
  | This combination was always broken.

This prompted Dave to question our use of CFI directives more generally,
and I ended up going down a rabbit hole trying to figure out how this
very poorly documented stuff gets used.

Move the CFI directives so that the "mysterious NOP" is included in
the .cfi_{start,end}proc block and add a bunch of comments so that I
can save myself another headache in future.

Cc: Tamas Zsoldos <tamas.zsoldos@arm.com>
Reported-by: Dave Martin <dave.martin@arm.com>
Reported-by: Daniel Kiss <daniel.kiss@arm.com>
Tested-by: Daniel Kiss <daniel.kiss@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
2020-05-21 12:59:26 +01:00
Will Deacon
9a96428557 arm64: vdso: Don't prefix sigreturn trampoline with a BTI C instruction
For better or worse, GDB relies on the exact instruction sequence in the
VDSO sigreturn trampoline in order to unwind from signals correctly.
Commit c91db232da ("arm64: vdso: Convert to modern assembler annotations")
unfortunately added a BTI C instruction to the start of __kernel_rt_sigreturn,
which breaks this check. Thankfully, it's also not required, since the
trampoline is called from a RET instruction when returning from the signal
handler

Remove the unnecessary BTI C instruction from __kernel_rt_sigreturn,
and do the same for the 32-bit VDSO as well for good measure.

Cc: Daniel Kiss <daniel.kiss@arm.com>
Cc: Tamas Zsoldos <tamas.zsoldos@arm.com>
Reviewed-by: Dave Martin <dave.martin@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Fixes: c91db232da ("arm64: vdso: Convert to modern assembler annotations")
Signed-off-by: Will Deacon <will@kernel.org>
2020-05-21 12:57:18 +01:00
Bruno Meneguele
8ece3b3eb5 kernel/printk: add kmsg SEEK_CUR handling
Userspace libraries, e.g. glibc's dprintf(), perform a SEEK_CUR operation
over any file descriptor requested to make sure the current position isn't
pointing to junk due to previous manipulation of that same fd. And whenever
that fd doesn't have support for such operation, the userspace code expects
-ESPIPE to be returned.

However, when the fd in question references the /dev/kmsg interface, the
current kernel code state returns -EINVAL instead, causing an unexpected
behavior in userspace: in the case of glibc, when -ESPIPE is returned it
gets ignored and the call completes successfully, while returning -EINVAL
forces dprintf to fail without performing any action over that fd:

  if (_IO_SEEKOFF (fp, (off64_t)0, _IO_seek_cur, _IOS_INPUT|_IOS_OUTPUT) ==
  _IO_pos_BAD && errno != ESPIPE)
    return NULL;

With this patch we make sure to return the correct value when SEEK_CUR is
requested over kmsg and also add some kernel doc information to formalize
this behavior.

Link: https://lore.kernel.org/r/20200317103344.574277-1-bmeneg@redhat.com
Cc: linux-kernel@vger.kernel.org
Cc: rostedt@goodmis.org,
Cc: David.Laight@ACULAB.COM
Signed-off-by: Bruno Meneguele <bmeneg@redhat.com>
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
2020-05-21 13:32:25 +02:00
Ethon Paul
325606af57 printk: Fix a typo in comment "interator"->"iterator"
There is a typo in comment, fix it.

Signed-off-by: Ethon Paul <ethp@qq.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
2020-05-21 13:31:33 +02:00
Arnd Bergmann
8c915019e3 Realtek Arm based SoC DT for v5.8
Add RTD1195, RTD1395 and RTD1619 SoCs as well as Xnano X5 TV box.
 Clean up memory nodes and /soc ranges. Factor out r-bus and partition it
 into CRT, Iso, Misc, SB2 and SCPU Wrapper blocks.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEF08DRxvMIhphdW+W+i7RLT5+AT8FAl64dfoRHGFmYWVyYmVy
 QHN1c2UuZGUACgkQ+i7RLT5+AT+iXA//eNc5DNAN7/B3GcoSaKd4jUfh4aCo2FkO
 octvWWuPdMom1zzzpR5GTi4AxFAj3V4gAwFc0SLxXRC1Mwb1QFoGVXsDsFXclhsA
 LdF73S2umVkl65kDvS8rLqq/1e4TidYI6Nlo5MQWcGrTrrkSZdLxiQlhokwsSoLf
 6lS5SqTXuU0Y7b8TOAgsHXZ8HdeNuM0MBvLrNkWSQokFO8tRPYzP6FmrGCK0Z0DE
 dEarIAgrqw5OOoDgSNH80AWzUZGWJSR9gLsl9JwxgmQoG4b66HJrTYZHZ4ylFaeQ
 GsSwiuy7SM1NrU25i6qIGtj7WueGLYczLEBWwKg5AgNcFqq/hGwmoxsLRhJAyb1J
 jcUiH+sfR5fmcuFjA6k3MRD5rTporkS6e44Xni8/AaElSRgu+YYpsXAUeOenMR9m
 cDuR8DrOKkPWyipRK32WyQsF7P3JPaL9gD6q5hSdIAolEncR6LcHNkMUx0zgb/BL
 +gakFU4lmsV9SEFFVyKUr5w0fZLPPWdeXRFtKNZTsPI/AT4jPztIiszB9NWeumMZ
 54uqsm9ct5flLFbqJ/575NDLQHoIY4uz6gZq/oRKdQ/g0AyCI80ZkqnMzm4om4GZ
 Fpdi63l+e2VAJE77R9tqxmj8LQJE9PfTZNo41zFA8gzCqmBN9Rrzs/E47KCLKQYq
 k54Vwaf891g=
 =wdYa
 -----END PGP SIGNATURE-----

Merge tag 'realtek-dt-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/afaerber/linux-realtek into arm/dt

Realtek Arm based SoC DT for v5.8

Add RTD1195, RTD1395 and RTD1619 SoCs as well as Xnano X5 TV box.
Clean up memory nodes and /soc ranges. Factor out r-bus and partition it
into CRT, Iso, Misc, SB2 and SCPU Wrapper blocks.

* tag 'realtek-dt-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/afaerber/linux-realtek: (35 commits)
  dt-bindings: reset: rtd1295: Add SB2 reset
  arm64: dts: realtek: rtd16xx: Add SB2 and SCPU Wrapper syscon nodes
  arm64: dts: realtek: rtd139x: Add SB2 and SCPU Wrapper syscon nodes
  arm64: dts: realtek: rtd129x: Add SB2 and SCPU Wrapper syscon nodes
  ARM: dts: rtd1195: Add SB2 and SCPU Wrapper syscon nodes
  arm64: dts: realtek: rtd16xx: Add CRT syscon node
  ARM: dts: rtd1195: Add UART resets
  ARM: dts: rtd1195: Add reset nodes
  dt-bindings: reset: Add Realtek RTD1195
  ARM: dts: rtd1195: Add CRT syscon node
  arm64: dts: realtek: rtd16xx: Introduce iso and misc syscon
  arm64: dts: realtek: rtd139x: Introduce CRT, iso and misc syscon
  arm64: dts: realtek: rtd129x: Introduce CRT, iso and misc syscon
  ARM: dts: rtd1195: Introduce iso and misc syscon
  arm64: dts: realtek: rtd1295: Add Xnano X5
  dt-bindings: arm: realtek: Add Xnano X5
  dt-bindings: vendor-prefixes: Add Xnano
  arm64: dts: realtek: rtd16xx: Add memory reservations
  arm64: dts: realtek: rtd16xx: Carve out boot ROM from memory
  arm64: dts: realtek: Add RTD1619 SoC and Realtek Mjolnir EVB
  ...

Link: https://lore.kernel.org/r/20200510232158.18477-2-afaerber@suse.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 12:34:23 +02:00
Arnd Bergmann
18e48cc0ba ASPEED device tree updates for 5.8
New machines:
 
  - YADRO's ast2500 OpenPower P9 Nicole BMC
  - Facebook's ast2500 x86 Yosemite V2 BMC
 
 The AST2600 machines Rainier and Tacoma were fleshed out.
 
 Machines have started describing the GPIO names as userspace attempts
 to use the GPIO chardev API.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+nHMAt9PCBDH63wBa3ZZB4FHcJ4FAl61DiEACgkQa3ZZB4FH
 cJ711A/8CMI7QvRESjBcnTGO0VaZrWtWGwT2A4joPpbbE94Iv47pDubYs/iUNzcX
 9prCEGTox4mQ7hpFG1SDdTV/hvJQngEiShqIdMKV+hfHe7lBltjwXDsP/9dkHp3e
 bCToBi+RI1ULfytXU5qubz6oDgD0vfRoBQsNhlvvno+H1u3/VxoX06XThCoi2Slc
 CUKg5KjgWfmtFp7KHODoNrFsgh5FQlRd7YmCX2BRLBtglugJt6Ale6UybPl/irRD
 tPxX+H8A0NwduLrR12D3tQ9OnOuNCb9fh2Y0WW54ZaJj7ep5DWEgUsRXZkNyEke0
 Pmg4xHedVEXhWw+8F/uNb6BEoVI8YSObZt3P3Tc5LGDum7s6HdtRqwhEb06NEDrb
 9X9SiHH/TRhy/00blLA0AsTKtQwvQdArt6D5IgYKMwXfhf7ISklgibhXXT1hGIlq
 qa2Vu6d4QznMFg0A69WR5jmxBkCVt4WAO88VKXiMq8Es6cW3AoPgVSTAVn82fwnF
 VvHbmDccfgqZh1adUQxoz/FQm2gYUeR3szLBFO3vd11b/C5zWZRgdd/+fTbv0J+g
 GRgo/vIMaun6T2oKhRN6r/oo7zZiqXu2sKRnomef1uoxiCPRsWQjWfxcgvwlP0nt
 FTyY4/qmNaTbSaKudswG064aHDZoqAE+1ddMKjEKFht20PsjcYc=
 =0Egh
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-5.8-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into arm/dt

ASPEED device tree updates for 5.8

New machines:

 - YADRO's ast2500 OpenPower P9 Nicole BMC
 - Facebook's ast2500 x86 Yosemite V2 BMC

The AST2600 machines Rainier and Tacoma were fleshed out.

Machines have started describing the GPIO names as userspace attempts
to use the GPIO chardev API.

* tag 'aspeed-5.8-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed: (32 commits)
  ARM: dts: aspeed: Change KCS nodes to v2 binding
  ARM: dts: Aspeed: AST2600: Add XDMA PCI-E root control reset
  ARM: dts: aspeed: ast2600: Add XDMA Engine
  ARM: dts: aspeed: ast2500: Add XDMA Engine
  ARM: dts: aspeed: Adding Facebook Yosemite V2 BMC
  ARM: dts: aspeed: Add YADRO Nicole BMC
  ARM: dts: aspeed: mihawk: add aliases for i2c
  ARM: dts: aspeed: tacoma: Add TPM
  ARM: dts: aspeed: tacoma: Enable the second VUART
  ARM: dts: aspeed: tacoma: Add iio-hwmon nodes for IIO devices
  ARM: dts: aspeed: rainier: Add VGA reserved memory region
  ARM: dts: aspeed: rainier: Add gpio line names
  ARM: dts: aspeed: tacoma: Add gpio line names
  ARM: dts: aspeed: zaius: Add gpio line names
  ARM: dts: aspeed: romulus: Add gpio line names
  ARM: dts: aspeed: witherspoon: Add gpio line names
  ARM: dts: aspeed: ast2600: Set arch timer always-on
  ARM: dts: aspeed: tacoma: Add GPIOs for FSI
  ARM: dts: aspeed: mihawk: Change the name of leds
  ARM: dts: aspeed: rainier: Remove regulators
  ...

Link: https://lore.kernel.org/r/CACPK8Xd-=XFREvvS-mK_ECyn14y0GPAMyy5BpEEUYfaw4jAgsw@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 12:19:05 +02:00
Arnd Bergmann
4875d9e230 DTS changes for omaps for v5.8 merge window
We add support for beaglebone-ai board that's am5729 based devices.
 
 Then we have a series changes to configure more hardware acceletators found
 on omap variants. With the recent ti-sysc related changes, we can now better
 configure the accelerators with help of the clock framework and reset driver.
 So with a series of changes from Suman Anna and Tero Kristo, let's configure
 IPUs and DSPs for dra7 devices like beagle-x15. And let's also configure the
 missing crypto accelerators for omap5 as those have been missing.
 
 Note that there are still some pending driver related patches to use IPU and
 DSP related features with mainline kernel, but those are independent of the
 devicetree changes.
 
 Then there is a display related change for am57xx-idk for tc358778 bridge,
 and a change to configure the missing clock source for some PWM timers.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl60ST4RHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXPLbQ/9HtaOPHBGSiySIjiKMipiT4h7Ebc8b6ng
 71rRGFgjlyGSDolBlvEfzRfuMRqIQpCRETMylpn4rHkx/BsTROt90/LayyJiJJ62
 buQtSsx2Ydcxw+QMl8gkBW/Y1toZ31ZQKedeNJDvlAzOt8kgQjiCoBo9VVhiZANX
 xV0tlfUjgU0BH3P5UhyAXQkBHzauqd+c9z4YOuNL1BbEu6b75b5a7f2+DtV/NLmZ
 EaEMtoA/L0k5Ir8GWSc6R48kmpaSs3go6r7v2hUV8rHkQOwUhm6MgdD2xrbXRbH3
 4TVF5KLhV9bSyoIRZryYQWS/8Y5CSfDOHcMFqSHoasvMt81Vnz/bit3akghyQ/Ir
 +3J8sLT6LGVotbDrN++yIfc9KZr7xQBZSbz2lHw/Fg10iD33TvvEASmANNF6FTLy
 mjJpwjqDCMcQ40LLP1aC7SzuM3hf8cWDsagIY3Reo/pW7aF4FEnX14FdObwtmQIJ
 RePY5JLQU1UPXstUwLwjFcmkBYgBGC2DVYPeGTUAU6RQtIX3b9ddpjZxFpMgbBAM
 OgLwDGvdYClh+cwPw4Ax2LPmqs534v75vhYsQO0jjaXcDDhGLGUkfD2v3f1B9Gcl
 Lj2yj6vIBjE3A+LRxJeFv2FWOzi1qsh2NrHILmIh+pNkuTyjcsc4x02+BfQvS4x3
 afVrdB0kOsU=
 =WgDN
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v5.8/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/dt

DTS changes for omaps for v5.8 merge window

We add support for beaglebone-ai board that's am5729 based devices.

Then we have a series changes to configure more hardware acceletators found
on omap variants. With the recent ti-sysc related changes, we can now better
configure the accelerators with help of the clock framework and reset driver.
So with a series of changes from Suman Anna and Tero Kristo, let's configure
IPUs and DSPs for dra7 devices like beagle-x15. And let's also configure the
missing crypto accelerators for omap5 as those have been missing.

Note that there are still some pending driver related patches to use IPU and
DSP related features with mainline kernel, but those are independent of the
devicetree changes.

Then there is a display related change for am57xx-idk for tc358778 bridge,
and a change to configure the missing clock source for some PWM timers.

* tag 'omap-for-v5.8/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (26 commits)
  ARM: OMAP5: Make L4SEC clock domain SWSUP only
  ARM: OMAP4: Make L4SEC clock domain SWSUP only
  ARM: dts: omap5: add DES crypto accelerator node
  ARM: dts: omap5: add SHA crypto accelerator node
  ARM: dts: omap5: add aes2 entry
  ARM: dts: omap5: add aes1 entry
  ARM: dts: dra7-ipu-dsp-common: Add watchdog timers to IPU and DSP nodes
  ARM: dts: am571x-idk: Add CMA pools and enable IPUs & DSP1 rprocs
  ARM: dts: am572x-idk-common: Add CMA pools and enable IPU & DSP rprocs
  ARM: dts: beagle-x15-common: Add CMA pools and enable IPU & DSP rprocs
  ARM: dts: dra76-evm: Add CMA pools and enable IPU & DSP rprocs
  ARM: dts: dra71-evm: Add CMA pools and enable IPUs & DSP1 rprocs
  ARM: dts: dra72-evm-revc: Add CMA pools and enable IPUs & DSP1 rprocs
  ARM: dts: dra72-evm: Add CMA pools and enable IPUs & DSP1 rprocs
  ARM: dts: dra7-evm: Add CMA pools and enable IPU & DSP rprocs
  ARM: dts: dra7-ipu-dsp-common: Add timers to IPU and DSP nodes
  ARM: dts: dra7-ipu-dsp-common: Add mailboxes to IPU and DSP nodes
  ARM: dts: dra7-ipu-dsp-common: Move mailboxes into common files
  ARM: dts: DRA72x: Add aliases for rproc nodes
  ARM: dts: DRA74x: Add aliases for rproc nodes
  ...

Link: https://lore.kernel.org/r/pull-1588873628-477615@atomide.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 12:03:24 +02:00
Arnd Bergmann
5971e53cf0 Renesas DT binding updates for v5.8
- Document System Controller (SYSC) and Reset (RST) support for
     RZ/G1H.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCXqqE7QAKCRCKwlD9ZEnx
 cGKeAQD4EWiuxrDgJK1CnnM+tQI24d1V0nPE/Egl8OrGWcIe7wEAyEFYlUksCujD
 6ZFeV3L56M9z9Gvpz1Hu82vOnzEC9gY=
 =dTTq
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-bindings-for-v5.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/dt

Renesas DT binding updates for v5.8

  - Document System Controller (SYSC) and Reset (RST) support for
    RZ/G1H.

* tag 'renesas-dt-bindings-for-v5.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  dt-bindings: reset: rcar-rst: Document r8a7742 reset module
  dt-bindings: power: rcar-sysc: Document r8a7742 SYSC binding

Link: https://lore.kernel.org/r/20200430084849.1457-6-geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 11:55:29 +02:00
Arnd Bergmann
71dbe9524d Renesas ARM DT updates for v5.8
- USB, UART, PWM, and PCIe support for R-Car M3-W+,
   - PWM (16-bit Timer Pulse Unit and PWM Timers) support for R-Car M2-W,
   - Minor fixes and cleanups.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCXqqHDQAKCRCKwlD9ZEnx
 cOAWAP0Vmb2PNTBL8lT1eD+iji5lIEH2Dp4PaB2xOVP3BQsU+gEAlc169Jq/fXKo
 F+T6hE2D0ExJMkp0DiDfttpKyQsb5wA=
 =Y+Go
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm-dt-for-v5.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/dt

Renesas ARM DT updates for v5.8

  - USB, UART, PWM, and PCIe support for R-Car M3-W+,
  - PWM (16-bit Timer Pulse Unit and PWM Timers) support for R-Car M2-W,
  - Minor fixes and cleanups.

* tag 'renesas-arm-dt-for-v5.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  arm64: dts: renesas: Fix IOMMU device node names
  ARM: dts: renesas: Fix IOMMU device node names
  ARM: dts: shmobile: Update CMT1 compatible values
  ARM: dts: r8a7791: Add PWM device nodes
  ARM: dts: r8a7791: Add TPU device node
  arm64: dts: renesas: r8a77961: Add PCIe device nodes
  arm64: dts: renesas: r8a77961: Add PWM device nodes
  arm64: dts: renesas: r8a77961: Add SCIF and HSCIF nodes
  arm64: dts: renesas: r8a77961: Add USB3.0 device nodes
  arm64: dts: renesas: r8a77961: Add USB2.0 device nodes

Link: https://lore.kernel.org/r/20200430084849.1457-3-geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 11:54:42 +02:00
Arnd Bergmann
3f0be4df50 Versatile DTS updates for the v5.8 kernel:
Create a new device tree for the Integrator/AP with the
 IM-PD1 expansion module fitted in the first slot.
 
 If we want to augment the slot where it is sitting, we can
 alter the device tree or make the bootloader do so.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAl6oi4YACgkQQRCzN7AZ
 XXOpVBAAxco/qwxQndEPMWDVCtqOdhXglUvq220V5PQ4DNvpm52QeG65rwwR2TK9
 Nun/vW70JZnXysGS4ZAU9NKToenyIdacwfFCea1eDK7cWpbZzZGo3dkMsr90KBah
 iGDx1ua/lAPxP+IhGlv8GBFQ4rMYzBewaAvk30pi3FtoV/gUjszqLUX1UI7TTaEA
 LWlI4t9aFrRryTsffVzCMXKWUbovMfPtf7dvi+H+Paid8x5PVRwpo91eLknydwb6
 BQAxFhaNy34U27DIsH4L2ulcy7xFBwlmOVHA8h9cTq5qFF/ASxAhAmdQvg+DzjqK
 8YZkWAgOMfwuY+zDFHsvGMJXWZeNOfo76tV0QhiHPlC9JcvOxc95SH7SDwTVjQ/v
 JyLfqMxz6VaL4tL5j2APHgjQzpNtOs6aPNiUkmxrz3iLGuzi51f+Ua/I5MbYd2ME
 oyW21YIebHtiHhZ30NenS0hnD2prFzsdDZLgI04LKwCTW56xM2XS7diz1if+yxJ8
 49LWboInAq8B4ipuRmzNrUoWZlcYZcdUh/7gi1xCwkdpg0rNj/3hKzeRf3W78yw2
 Tve2E2TK+I+l4bJclCjdYzbkWUkheZWApx5nK+4kAAwS+rr1AM4oXZYtd7530LUK
 YL9CavQeDL8SfW8zzCVooureO9MDdzYb5o+joKhaBejgvCGThOg=
 =XZ07
 -----END PGP SIGNATURE-----

Merge tag 'versatile-dts-v5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into arm/dt

Versatile DTS updates for the v5.8 kernel:

Create a new device tree for the Integrator/AP with the
IM-PD1 expansion module fitted in the first slot.

If we want to augment the slot where it is sitting, we can
alter the device tree or make the bootloader do so.

* tag 'versatile-dts-v5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: Add devicetree for Integrator/AP with IM-PD1

Link: https://lore.kernel.org/r/CACRpkdZ-28o+pPdP7i_fc+7g4ndPWf+SWTsjnhFEegTggiXVSg@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 11:53:20 +02:00
Andy Shevchenko
9ed78b05f9 irqdomain: Allow software nodes for IRQ domain creation
In some cases we need to have an IRQ domain created out of software node.

One of such cases is DesignWare GPIO driver when it's instantiated from
half-baked ACPI table (alas, we can't fix it for devices which are few years
on market) and thus using software nodes to quirk this. But the driver
is using IRQ domains based on per GPIO port firmware nodes, which are in
the above case software ones. This brings a warning message to be printed

  [   73.957183] irq: Invalid fwnode type for irqdomain

and creates an anonymous IRQ domain without a debugfs entry.

Allowing software nodes to be valid for IRQ domains rids us of the warning
and debugs gets correctly populated.

  % ls -1 /sys/kernel/debug/irq/domains/
  ...
  intel-quark-dw-apb-gpio:portA

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
[maz: refactored commit message]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200520164927.39090-3-andriy.shevchenko@linux.intel.com
2020-05-21 10:53:17 +01:00
Andy Shevchenko
87526603c8 irqdomain: Get rid of special treatment for ACPI in __irq_domain_add()
Now that __irq_domain_add() is able to better deals with generic
fwnodes, there is no need to special-case ACPI anymore.

Get rid of the special treatment for ACPI.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200520164927.39090-2-andriy.shevchenko@linux.intel.com
2020-05-21 10:51:50 +01:00
Arnd Bergmann
dca296dd15 STi DT fixes:
- Remove duplicated rng node in stih407-family.dtsi
 - Fix complain about IRQ_TYPE_NONE usage in stih418.dtsi
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEXyrViUccKBz9c35Jysd4L3sz/6YFAl6Zh/UXHHBhdHJpY2Uu
 Y2hvdGFyZEBzdC5jb20ACgkQysd4L3sz/6bduA/+Nf+eY0ftqGk8bQQJ99wcbzrp
 ewO3ocq/9coS8Pu3Wr6smcVcZGozQx2nmlOdaSCqjqyiV85osreQJnlpSPjvQBxl
 4ST8an4dVi4I2Ci9QizES1Yg+zs/BNlfmfgR8d1lkS4HiDF9W+NVjA7cEN0s0bRv
 Y2yuU3dpbFcclpWvBTInqC49ek3iKmAv28wfzXlAPhtz8hKx6PR1oaUZilw3HiYe
 2xho9+paUpTzYMMMCRzFeJ/bBD2OfBZbLeo9Yp/40cxdrLLGjzTfjULXF5ZJGywv
 ytvi0WFq+34TuN5+SmV4pOINB7nqxfrFpQr31RbPF1SaH7VC46hKrECqd5g1/uPV
 bpp1udnaaVLillC8cQOQn99+PzRlHSFseq6l8EMxm0Hc4Z7dhDHtybZoduPYAONY
 oEO3hIgA9x80IHMRszupwS3duvLMIW4JsJWkTW/mZZAKVEJ36LsaPNQ0BugG0+HJ
 qbyeycqvKCYI20sw7Wyu2+Sqg3IMpwghCCtP/tyGRtbBIWpNev2YjVbWDOVwjvjQ
 7ROGYqs/RNLuu8XtgJ3j7bS4wxJFjBHkIJvmccgkKYplit0f5r2+FUlAm75lO3IW
 sPV5pLFG/5D061AP9KwiRKVMyCmelen1/sJuNi0ql0zDHJWmovdVfyq0IfxphlQw
 XkIhmx8WETNxGX5ETC4=
 =1MYc
 -----END PGP SIGNATURE-----

Merge tag 'sti-dt-for-v5.8-round1' of git://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti into arm/dt

STi DT fixes:
- Remove duplicated rng node in stih407-family.dtsi
- Fix complain about IRQ_TYPE_NONE usage in stih418.dtsi

* tag 'sti-dt-for-v5.8-round1' of git://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti:
  dts: arm: stih407-family: remove duplicated rng nodes
  dts: arm: stih418: Fix complain about IRQ_TYPE_NONE usage

Link: https://lore.kernel.org/r/4b0c02e7-a247-50c0-d729-88d16b9dd7fd@st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 11:51:29 +02:00
Chunyan Zhang
161af8fd02 arm64: dts: Add SC9863A emmc and sd card nodes
Add emmc and sd card devicetree nodes for SC9863A.

Link: https://lore.kernel.org/r/20200414101636.24503-3-zhang.lyra@gmail.com
Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 11:50:44 +02:00
Chunyan Zhang
78efc0199f arm64: dts: Add SC9863A clock nodes
add clock devicetree nodes for SC9863A.

Link: https://lore.kernel.org/r/20200414101636.24503-2-zhang.lyra@gmail.com
Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2020-05-21 11:50:32 +02:00
Andy Shevchenko
181e9d4efa irqdomain: Make __irq_domain_add() less OF-dependent
__irq_domain_add() relies in some places on the fact that the fwnode
can be only of type OF. This prevents refactoring of the code to support
other types of fwnode. Make it less OF-dependent by switching it
to use the fwnode directly where it makes sense.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200520164927.39090-1-andriy.shevchenko@linux.intel.com
2020-05-21 10:50:30 +01:00
Hsin-Hsiung Wang
9f88722216 arm64: dts: mt6358: add PMIC MT6358 related nodes
add PMIC MT6358 related nodes which is for MT8183 platform

Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Link: https://lore.kernel.org/r/1587438012-24832-7-git-send-email-hsin-hsiung.wang@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2020-05-21 11:31:39 +02:00
Saravana Kannan
2cd38fd15e driver core: Remove unnecessary is_fwnode_dev variable in device_add()
That variable is no longer necessary. Remove it and also fix a minor
typo in comments.

Signed-off-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20200520034824.79049-2-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 11:08:18 +02:00
Andy Shevchenko
114dbb4fa7 drivers property: When no children in primary, try secondary
Software firmware nodes can provide a child node to its parent.
Since software node can be secondary, we need a mechanism to access
the children. The idea is to list children of the primary node first
and when they are finished, continue with secondary node if available.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200520102959.34812-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 11:03:47 +02:00
Tang Bin
c82c83c330 driver core: platform: Fix spelling errors in platform.c
There is a word spelling mistake of 'Unegisters', thus
it should be fixed.

Signed-off-by: Tang Bin <tangbin@cmss.chinamobile.com>
Link: https://lore.kernel.org/r/20200520141202.19568-1-tangbin@cmss.chinamobile.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 11:03:46 +02:00
John Oldman
bf04362fc3 staging: rtl8192e: Using comparison to true is error prone
clear below issues reported by checkpatch.pl:

CHECK: Using comparison to true is error prone
CHECK: Using comparison to false is error prone

Signed-off-by: John Oldman <john.oldman@polehill.co.uk>
Link: https://lore.kernel.org/r/20200521084732.12576-1-john.oldman@polehill.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 11:02:28 +02:00
Heikki Krogerus
4ef12f7198 kobject: Make sure the parent does not get released before its children
In the function kobject_cleanup(), kobject_del(kobj) is
called before the kobj->release(). That makes it possible to
release the parent of the kobject before the kobject itself.

To fix that, adding function __kboject_del() that does
everything that kobject_del() does except release the parent
reference. kobject_cleanup() then calls __kobject_del()
instead of kobject_del(), and separately decrements the
reference count of the parent kobject after kobj->release()
has been called.

Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Reported-by: kernel test robot <rong.a.chen@intel.com>
Fixes: 7589238a8c ("Revert "software node: Simplify software_node_release() function"")
Suggested-by: "Rafael J. Wysocki" <rafael@kernel.org>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Tested-by: Brendan Higgins <brendanhiggins@google.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/r/20200513151840.36400-1-heikki.krogerus@linux.intel.com
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 11:01:27 +02:00
Colin Ian King
f37d13d52c w1_therm: remove redundant assignments to variable ret
The variable ret is being initialized with a value that is never read
and it is being updated later with a new value. The initialization
is redundant and can be removed.

Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20200519154553.873413-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 10:58:51 +02:00
Dan Carpenter
e420637b81 w1_therm: Free the correct variable
The problem is that we change "p_args" to point to the middle of the
string so when we free it at the end of the function it's not freeing
the same pointer that we originally allocated.

Fixes: e2c94d6f57 ("w1_therm: adding alarm sysfs entry")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20200520120019.GA172354@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 10:58:46 +02:00
Saravana Kannan
44e960490d driver core: Fix handling of SYNC_STATE_ONLY + STATELESS device links
Commit 21c27f0658 ("driver core: Fix SYNC_STATE_ONLY device link
implementation") didn't completely fix STATELESS + SYNC_STATE_ONLY
handling.

What looks like an optimization in that commit is actually a bug that
causes an if condition to always take the else path. This prevents
reordering of devices in the dpm_list when a DL_FLAG_STATELESS device
link is create on top of an existing DL_FLAG_SYNC_STATE_ONLY device
link.

Fixes: 21c27f0658 ("driver core: Fix SYNC_STATE_ONLY device link implementation")
Signed-off-by: Saravana Kannan <saravanak@google.com>
Cc: stable <stable@vger.kernel.org>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20200520043626.181820-1-saravanak@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 10:54:32 +02:00
Mitchell Tasman
728774f780 staging: vchiq_arm: cast with __force as needed
In several cases where a pointer marked as __user is
(intentionally) assigned or passed to a non-marked target,
cast to the target pointer type with a __force directive
to quiet warnings from sparse.

Signed-off-by: Mitchell Tasman <tasman@leaflabs.com>
Link: https://lore.kernel.org/r/20200519004531.33158-1-tasman@leaflabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 10:46:37 +02:00
John Oldman
49f09554fd staging: rtl8192e: Using comparison to true is error prone
fix below issue reported by checkpatch.pl:

CHECK: Using comparison to true is error prone
CHECK: Using comparison to false is error prone

Signed-off-by: John Oldman <john.oldman@polehill.co.uk>
Link: https://lore.kernel.org/r/20200520163719.14463-1-john.oldman@polehill.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 10:46:37 +02:00
Ran Bi
29ee40091e rtc: mt6397: Add support for the MediaTek MT6358 RTC
This add support for the MediaTek MT6358 RTC. Driver using
compatible data to store different RTC_WRTGR address offset.
This replace RTC_WRTGR to RTC_WRTGR_MT6323 in mt6323-poweroff
driver which only needed by armv7 CPU without ATF.

Signed-off-by: Ran Bi <ran.bi@mediatek.com>
Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Sebastian Reichel <sre@kernel.org>
Reviewed-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2020-05-21 08:55:48 +01:00
Hsin-Hsiung Wang
2b91c28f2a mfd: Add support for the MediaTek MT6358 PMIC
This adds support for the MediaTek MT6358 PMIC. This is a
multifunction device with the following sub modules:

- Regulator
- RTC
- Codec
- Interrupt

It is interfaced to the host controller using SPI interface
by a proprietary hardware called PMIC wrapper or pwrap.
MT6358 MFD is a child device of the pwrap.

Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2020-05-21 08:55:29 +01:00
Hsin-Hsiung Wang
6c3d5c97d2 dt-bindings: mfd: Add compatible for the MediaTek MT6358 PMIC
This adds compatible for the MediaTek MT6358 PMIC.

Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2020-05-21 08:55:11 +01:00
Hsin-Hsiung Wang
d0c7347dc7 mfd: mt6397: Trim probe function to support different chips more cleanly
Add new struct members for mfd-cells and irq initial function, so we can
call devm_mfd_add_devices() only once.

Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2020-05-21 08:54:57 +01:00
Hsin-Hsiung Wang
4e2e7cfec1 mfd: mt6397: Modify suspend/resume behavior
Some pmics don't need backup interrupt settings, so we change to use
pm notifier for the pmics which are necessary to store settings.

Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2020-05-21 08:54:40 +01:00
Bryan O'Donoghue
e9ccc35b86 usb: typec: Ensure USB_ROLE_SWITCH is set as a dependency for tps6598x
When I switched on USB role switching for the tps6598x I completely forgot
to add the Kconfig dependency.

Ensure USB_ROLE_SWITCH is selected to prevent the typs6598x driver being
compiled in but the role-switch driver being compiled as a module, leading
to link error.

Suggested-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200520153617.610909-1-bryan.odonoghue@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-21 09:36:42 +02:00
Serge Semin
bbb5946eb5 mips: MAAR: Use more precise address mask
Indeed according to the MIPS32 Privileged Resource Architecgture the MAAR
pair register address field either takes [12:31] bits for non-XPA systems
and [12:55] otherwise. In any case the current address mask is just
wrong for 64-bit and 32-bits XPA chips. So lets extend it to 59-bits
of physical address value. This shall cover the 64-bits architecture and
systems with XPA enabled, and won't cause any problem for non-XPA 32-bit
systems, since address values exceeding the architecture specific MAAR
mask will be just truncated with setting zeros in the unsupported upper
bits.

Co-developed-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Signed-off-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: devicetree@vger.kernel.org
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
2020-05-21 09:06:05 +02:00
Tiezhu Yang
37e2bc4433 MIPS: SGI-IP27: Remove not used definition TICK_SIZE in ip27-timer.c
After commit f5ff0a2802 ("[MIPS] Use generic NTP code for all MIPS
platforms"), TICK_SIZE is not used in ip27-timer.c for many years,
remove it.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
2020-05-21 09:05:17 +02:00
Andre Guedes
d66358cae2 igc: Remove mac_table from igc_adapter
In igc_adapter we keep a sort of shadow copy of RAL and RAH registers.
There is not much benefit in keeping it, at the cost of maintainability,
since adding/removing MAC address filters is not hot path, and we
already keep filters information in adapter->nfc_filter_list for cleanup
and restoration purposes.

So in order to simplify the MAC address filtering code and prepare it
for source address support, this patch removes the mac_table from
igc_adapter.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2020-05-20 22:28:49 -07:00
Andre Guedes
1c3739cb6e igc: Remove IGC_MAC_STATE_SRC_ADDR flag
MAC address filters based on source address are not currently supported
by the IGC driver. Despite of that, the driver have some dangling code
to handle it, inherited from IGB driver. This patch removes that code to
prepare for a follow up patch that adds proper source MAC address filter
support.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2020-05-20 22:23:30 -07:00
Stephen Worley
d69100b8ee net: nlmsg_cancel() if put fails for nhmsg
Fixes data remnant seen when we fail to reserve space for a
nexthop group during a larger dump.

If we fail the reservation, we goto nla_put_failure and
cancel the message.

Reproduce with the following iproute2 commands:
=====================
ip link add dummy1 type dummy
ip link add dummy2 type dummy
ip link add dummy3 type dummy
ip link add dummy4 type dummy
ip link add dummy5 type dummy
ip link add dummy6 type dummy
ip link add dummy7 type dummy
ip link add dummy8 type dummy
ip link add dummy9 type dummy
ip link add dummy10 type dummy
ip link add dummy11 type dummy
ip link add dummy12 type dummy
ip link add dummy13 type dummy
ip link add dummy14 type dummy
ip link add dummy15 type dummy
ip link add dummy16 type dummy
ip link add dummy17 type dummy
ip link add dummy18 type dummy
ip link add dummy19 type dummy
ip link add dummy20 type dummy
ip link add dummy21 type dummy
ip link add dummy22 type dummy
ip link add dummy23 type dummy
ip link add dummy24 type dummy
ip link add dummy25 type dummy
ip link add dummy26 type dummy
ip link add dummy27 type dummy
ip link add dummy28 type dummy
ip link add dummy29 type dummy
ip link add dummy30 type dummy
ip link add dummy31 type dummy
ip link add dummy32 type dummy

ip link set dummy1 up
ip link set dummy2 up
ip link set dummy3 up
ip link set dummy4 up
ip link set dummy5 up
ip link set dummy6 up
ip link set dummy7 up
ip link set dummy8 up
ip link set dummy9 up
ip link set dummy10 up
ip link set dummy11 up
ip link set dummy12 up
ip link set dummy13 up
ip link set dummy14 up
ip link set dummy15 up
ip link set dummy16 up
ip link set dummy17 up
ip link set dummy18 up
ip link set dummy19 up
ip link set dummy20 up
ip link set dummy21 up
ip link set dummy22 up
ip link set dummy23 up
ip link set dummy24 up
ip link set dummy25 up
ip link set dummy26 up
ip link set dummy27 up
ip link set dummy28 up
ip link set dummy29 up
ip link set dummy30 up
ip link set dummy31 up
ip link set dummy32 up

ip link set dummy33 up
ip link set dummy34 up

ip link set vrf-red up
ip link set vrf-blue up

ip link set dummyVRFred up
ip link set dummyVRFblue up

ip ro add 1.1.1.1/32 dev dummy1
ip ro add 1.1.1.2/32 dev dummy2
ip ro add 1.1.1.3/32 dev dummy3
ip ro add 1.1.1.4/32 dev dummy4
ip ro add 1.1.1.5/32 dev dummy5
ip ro add 1.1.1.6/32 dev dummy6
ip ro add 1.1.1.7/32 dev dummy7
ip ro add 1.1.1.8/32 dev dummy8
ip ro add 1.1.1.9/32 dev dummy9
ip ro add 1.1.1.10/32 dev dummy10
ip ro add 1.1.1.11/32 dev dummy11
ip ro add 1.1.1.12/32 dev dummy12
ip ro add 1.1.1.13/32 dev dummy13
ip ro add 1.1.1.14/32 dev dummy14
ip ro add 1.1.1.15/32 dev dummy15
ip ro add 1.1.1.16/32 dev dummy16
ip ro add 1.1.1.17/32 dev dummy17
ip ro add 1.1.1.18/32 dev dummy18
ip ro add 1.1.1.19/32 dev dummy19
ip ro add 1.1.1.20/32 dev dummy20
ip ro add 1.1.1.21/32 dev dummy21
ip ro add 1.1.1.22/32 dev dummy22
ip ro add 1.1.1.23/32 dev dummy23
ip ro add 1.1.1.24/32 dev dummy24
ip ro add 1.1.1.25/32 dev dummy25
ip ro add 1.1.1.26/32 dev dummy26
ip ro add 1.1.1.27/32 dev dummy27
ip ro add 1.1.1.28/32 dev dummy28
ip ro add 1.1.1.29/32 dev dummy29
ip ro add 1.1.1.30/32 dev dummy30
ip ro add 1.1.1.31/32 dev dummy31
ip ro add 1.1.1.32/32 dev dummy32

ip next add id 1 via 1.1.1.1 dev dummy1
ip next add id 2 via 1.1.1.2 dev dummy2
ip next add id 3 via 1.1.1.3 dev dummy3
ip next add id 4 via 1.1.1.4 dev dummy4
ip next add id 5 via 1.1.1.5 dev dummy5
ip next add id 6 via 1.1.1.6 dev dummy6
ip next add id 7 via 1.1.1.7 dev dummy7
ip next add id 8 via 1.1.1.8 dev dummy8
ip next add id 9 via 1.1.1.9 dev dummy9
ip next add id 10 via 1.1.1.10 dev dummy10
ip next add id 11 via 1.1.1.11 dev dummy11
ip next add id 12 via 1.1.1.12 dev dummy12
ip next add id 13 via 1.1.1.13 dev dummy13
ip next add id 14 via 1.1.1.14 dev dummy14
ip next add id 15 via 1.1.1.15 dev dummy15
ip next add id 16 via 1.1.1.16 dev dummy16
ip next add id 17 via 1.1.1.17 dev dummy17
ip next add id 18 via 1.1.1.18 dev dummy18
ip next add id 19 via 1.1.1.19 dev dummy19
ip next add id 20 via 1.1.1.20 dev dummy20
ip next add id 21 via 1.1.1.21 dev dummy21
ip next add id 22 via 1.1.1.22 dev dummy22
ip next add id 23 via 1.1.1.23 dev dummy23
ip next add id 24 via 1.1.1.24 dev dummy24
ip next add id 25 via 1.1.1.25 dev dummy25
ip next add id 26 via 1.1.1.26 dev dummy26
ip next add id 27 via 1.1.1.27 dev dummy27
ip next add id 28 via 1.1.1.28 dev dummy28
ip next add id 29 via 1.1.1.29 dev dummy29
ip next add id 30 via 1.1.1.30 dev dummy30
ip next add id 31 via 1.1.1.31 dev dummy31
ip next add id 32 via 1.1.1.32 dev dummy32

i=100

while [ $i -le 200 ]
do
ip next add id $i group 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19

	echo $i

	((i++))

done

ip next add id 999 group 1/2/3/4/5/6

ip next ls

========================

Fixes: ab84be7e54 ("net: Initial nexthop code")
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-05-20 21:00:40 -07:00
Eric Dumazet
687775cec0 ax25: fix setsockopt(SO_BINDTODEVICE)
syzbot was able to trigger this trace [1], probably by using
a zero optlen.

While we are at it, cap optlen to IFNAMSIZ - 1 instead of IFNAMSIZ.

[1]
BUG: KMSAN: uninit-value in strnlen+0xf9/0x170 lib/string.c:569
CPU: 0 PID: 8807 Comm: syz-executor483 Not tainted 5.7.0-rc4-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x1c9/0x220 lib/dump_stack.c:118
 kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:121
 __msan_warning+0x58/0xa0 mm/kmsan/kmsan_instr.c:215
 strnlen+0xf9/0x170 lib/string.c:569
 dev_name_hash net/core/dev.c:207 [inline]
 netdev_name_node_lookup net/core/dev.c:277 [inline]
 __dev_get_by_name+0x75/0x2b0 net/core/dev.c:778
 ax25_setsockopt+0xfa3/0x1170 net/ax25/af_ax25.c:654
 __compat_sys_setsockopt+0x4ed/0x910 net/compat.c:403
 __do_compat_sys_setsockopt net/compat.c:413 [inline]
 __se_compat_sys_setsockopt+0xdd/0x100 net/compat.c:410
 __ia32_compat_sys_setsockopt+0x62/0x80 net/compat.c:410
 do_syscall_32_irqs_on arch/x86/entry/common.c:339 [inline]
 do_fast_syscall_32+0x3bf/0x6d0 arch/x86/entry/common.c:398
 entry_SYSENTER_compat+0x68/0x77 arch/x86/entry/entry_64_compat.S:139
RIP: 0023:0xf7f57dd9
Code: 90 e8 0b 00 00 00 f3 90 0f ae e8 eb f9 8d 74 26 00 89 3c 24 c3 90 90 90 90 90 90 90 90 90 90 90 90 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90
RSP: 002b:00000000ffae8c1c EFLAGS: 00000217 ORIG_RAX: 000000000000016e
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000000101
RDX: 0000000000000019 RSI: 0000000020000000 RDI: 0000000000000004
RBP: 0000000000000012 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000

Local variable ----devname@ax25_setsockopt created at:
 ax25_setsockopt+0xe6/0x1170 net/ax25/af_ax25.c:536
 ax25_setsockopt+0xe6/0x1170 net/ax25/af_ax25.c:536

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-05-20 20:59:07 -07:00