aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-02-16ARM: multi_v7_defconfig: enable pstore configsBrian Norris1-0/+4
It's useful to get testing on these features on various boards (e.g., on KernelCI), and (when they're working) the ramoops feature is extremely helpful for debugging live systems. Signed-off-by: Brian Norris <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
2017-02-16ARM: multi_v7_defconfig: enable some newly added crypto modulesArd Biesheuvel1-0/+3
Enable the new accelerated CRC32(C), CRC-T10DIF and ChaCha20 drivers as modules for multi_v7_defconfig builds. Signed-off-by: Ard Biesheuvel <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
2017-02-16Merge tag 'davinci-for-v4.11/defconfig-2' of ↵Arnd Bergmann1-0/+2
git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/defconfig Pull "Enable SATA support found on DA850 SoC" from Sekhar Nori: * tag 'davinci-for-v4.11/defconfig-2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: davinci_all_defconfig: enable SATA modules
2017-02-07Merge tag 'sunxi-defconfig-for-4.11' of ↵Arnd Bergmann1-0/+1
https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/defconfig Pull "Allwinner defconfig changes for 4.11" from Maxime Ripard: A single patch to enable the thermal DT support in sunxi_defconfig * tag 'sunxi-defconfig-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: sunxi: Add CONFIG_THERMAL_OF
2017-01-31ARM: davinci_all_defconfig: enable SATA modulesBartosz Golaszewski1-0/+2
Add the da850-ahci driver to davinci defconfig. Signed-off-by: Bartosz Golaszewski <[email protected]> Signed-off-by: Sekhar Nori <[email protected]>
2017-01-29arm64: defconfig: enable CONFIG_MTD_NAND and CONFIG_MTD_NAND_DENALI_DTMasahiro Yamada1-0/+2
Enable the NAND framework and the Denali NAND controller driver. This NAND controller is used on UniPhier SoCs. Signed-off-by: Masahiro Yamada <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-29arm64: defconfig: enable CONFIG_MTD_BLOCKMasahiro Yamada1-0/+1
Enable the block layer support for MTD devices. Signed-off-by: Masahiro Yamada <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'imx-defconfig-4.11' of ↵Olof Johansson2-4/+3
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/defconfig i.MX defconfig updates for 4.11: - Select wireless extensions option for imx_v6_v7_defconfig, so that wireless works out of box with userspace tools such as 'iwconfig'. - Enable EXT4 filesystem support for vf610m4_defconfig. * tag 'imx-defconfig-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: vf610m4: defconfig: enable EXT4 filesystem ARM: imx_v6_v7_defconfig: Select wireless extensions option Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'stm32-defconfig-for-v4.11-1' of ↵Olof Johansson1-0/+7
git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into next/defconfig STM32 defconfig updates for v4.11, round 1. Highlights: ---------- - Enable ADC - Enable RTC * tag 'stm32-defconfig-for-v4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: ARM: configs: stm32: Add RTC support in STM32 defconfig ARM: configs: stm32: enable ADC driver Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'hisi-defconfig-for-4.11' of git://github.com/hisilicon/linux-hisi ↵Olof Johansson1-0/+3
into next/defconfig ARM64: hisilicon: defconfig updates for 4.11 - Enable ARM_SMMU_V3 in the arm64 defconfig - Enable NUMA and NUMA_BALANCING in the arm64 defconfig * tag 'hisi-defconfig-for-4.11' of git://github.com/hisilicon/linux-hisi: arm64: defconfig: Enable NUMA and NUMA_BALANCING arm64: defconfig: enable SMMUv3 config Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'omap-for-v4.11/defconfig-signed' of ↵Olof Johansson1-1/+6
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/defconfig Few omap2plus_defconfig changes for v4.11 merge window: - Switch to use LIS3LV02DL IIO driver instead of the LIS3LC02D misc driver - Set CONFIG_SERIAL_8250_RUNTIME_UARTS=6 to avoid runtime warnings on omap5 and dra7 - Enable ksz9021 phy and m41t80 rtc as they are used at least on phyCORE-AM335x * tag 'omap-for-v4.11/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: omap2plus_defconfig: Enable support for RTC M41T80 ARM: omap2plus_defconfig: Enable support for micrell phys ARM: omap2plus_defconfig: Fix probe errors on UARTs 5 and 6 ARM: defconfig: omap2plus: switch LIS3LV02DL driver Signed-off-by: Olof Johansson <[email protected]>
2017-01-29ARM: Import tango4_defconfigMarc Gonzalez1-0/+94
Import a minimal defconfig for tango4 boards. Signed-off-by: Marc Gonzalez <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'davinci-for-v4.11/defconfig' of ↵Olof Johansson1-0/+21
git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/defconfig Enable config options for DaVinci VPIF, LCDC, PWM, Pull up/down pinconf driver and IIO in davinci_all_defconfig * tag 'davinci-for-v4.11/defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: davinci_all_defconfig: enable iio ARM: davinci_all_defconfig: Enable PWM modules ARM: davinci_all_defconfig: enable DA8xx pinconf ARM: davinci_all_defconfig: enable pwm-beeper ARM: davinci_all_defconfig: enable dumb vga-dac drm bridge ARM: davinci_all_defconfig: enable video capture as modules Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'qcom-defconfig-for-4.11' of ↵Olof Johansson1-0/+34
git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/defconfig Qualcomm ARM Based defconfig Updates for v4.11 * Enable APQ8060 Dragonboard related devices * Enable AHCI, PCIE, USB, thermal sensors, and ATL1C related configs * Enable RPM/RPM-SMD clocks * tag 'qcom-defconfig-for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: defconfig: qcom: add APQ8060 DragonBoard devices ARM: qcom_defconfig: enable thermal sensors ARM: qcom_defconfig: add ahci configs ARM: qcom_defconfig: add pcie and atl1c ethernet configs ARM: qcom_defconfig: add usb related configs ARM: qcom_defconfig: Enable RPM/RPM-SMD clocks Signed-off-by: Olof Johansson <[email protected]>
2017-01-29Merge tag 'keystone_config_for_4.11' of ↵Olof Johansson2-0/+2
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/defconfig ARM: Keystone config support for 4.11 - Enable Reset controller and on chip MSM RAM support. * tag 'keystone_config_for_4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone: ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER ARM: configs: keystone: Enable Generic on-chip SRAM driver Signed-off-by: Olof Johansson <[email protected]>
2017-01-24ARM: omap2plus_defconfig: Enable support for RTC M41T80Teresa Remmet1-0/+1
The phyCORE-AM335x SoM has a RV4162 RTC populated which is supported by the M41T80 driver. Enabled it so make the RTC support on the SoM available. Signed-off-by: Teresa Remmet <[email protected]> Signed-off-by: Tony Lindgren <[email protected]>
2017-01-24ARM: omap2plus_defconfig: Enable support for micrell physTeresa Remmet1-0/+1
The phyCORE-AM335x SoM with PCM-953 carrierboard has a KSZ9021 phy mounted. To add support for this we need to enable the micrell phy driver in the config. Signed-off-by: Teresa Remmet <[email protected]> Signed-off-by: Tony Lindgren <[email protected]>
2017-01-24ARM: vf610m4: defconfig: enable EXT4 filesystemafzal mohammed1-2/+1
Enable EXT4_FS to have rootfs in EXT[2-4]. Other changes are result of savedefconfig keeping minimal config (even without enabling EXT4_FS, these would be present). Signed-off-by: afzal mohammed <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2017-01-23ARM: omap2plus_defconfig: Fix probe errors on UARTs 5 and 6Tony Lindgren1-0/+1
We have more than four uarts on some SoCs and that can cause noise with errors while booting. Signed-off-by: Tony Lindgren <[email protected]>
2017-01-20arm64: defconfig: Enable NUMA and NUMA_BALANCINGKefeng Wang1-0/+2
Since much more arm64 SoCs with numa nodes, it's better to enable NUMA and NUMA_BALANCING to improve the performance on test. Cc: Arnd Bergmann <[email protected]> Signed-off-by: Kefeng Wang <[email protected]> Signed-off-by: Wei Xu <[email protected]>
2017-01-20arm64: defconfig: enable SMMUv3 configZhou Wang1-0/+1
Signed-off-by: Zhou Wang <[email protected]> Signed-off-by: Wei Xu <[email protected]>
2017-01-20ARM: davinci_all_defconfig: enable iioDavid Lechner1-0/+9
This enables the iio subsystem. This will be used by LEGO MINDSTORMS EV3, which has an ADS7957 chip. Signed-off-by: David Lechner <[email protected]> Signed-off-by: Sekhar Nori <[email protected]>
2017-01-19ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLERSuman Anna1-0/+1
The Keystone 2 family of SoCs will use various Reset Controller drivers for managing the resets of remote processor devices like DSPs on the SoC, so select the ARCH_HAS_RESET_CONTROLLER option by default to enable the Reset framework. Signed-off-by: Suman Anna <[email protected]> Signed-off-by: Nishanth Menon <[email protected]> Signed-off-by: Santosh Shilimkar <[email protected]>
2017-01-18Merge tag 'aspeed-4.11-defconfig' of ↵Olof Johansson2-5/+71
git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into next/defconfig Aspeed defconfig updates for 4.11 Just the one commit that updates our defconfigs with network (ftgmac100 and ncsi), bt ipmi, gpio and ncsi. * tag 'aspeed-4.11-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed: ARM: configs: Update Aspeed with new drivers Signed-off-by: Olof Johansson <[email protected]>
2017-01-18Merge tag 'at91-ab-4.11-defconfig' of ↵Olof Johansson1-1/+6
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/defconfig defconfig for 4.11: - Add driver support for the Axentia TSE-850 * tag 'at91-ab-4.11-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: ARM: sama5_defconfig: add support for the Axentia TSE-850 board Signed-off-by: Olof Johansson <[email protected]>
2017-01-16Merge tag 'samsung-defconfig-4.11' of ↵Olof Johansson2-4/+1
git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/defconfig Samsung defconfig update for v4.11: 1. Cleanup from old MACHs in s5pv210. 2. Enable IP_MULTICAST for libnss-mdns. * tag 'samsung-defconfig-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: exynos_defconfig: Enable IP multicast ARM: s5pv210_defconfig: Remove old MACHs Signed-off-by: Olof Johansson <[email protected]>
2017-01-16Merge tag 'socfpga_defconfig_updates_for_v4.11' of ↵Olof Johansson1-2/+26
git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/defconfig SoCFPGA defconfig updates for v4.11 - enables Marvell PHY support - enable MTD(I2C EEPROM), and NAND support - enable SPI, RTC and LED support - enables OF CONFIGFS to support DTS overlays - enables more FS options - enables A10 hwmon support * tag 'socfpga_defconfig_updates_for_v4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga_defconfig: update defconfig for SoCFPGA Signed-off-by: Olof Johansson <[email protected]>
2017-01-16ARM: configs: stm32: Add RTC support in STM32 defconfigAmelie Delaunay1-0/+2
This patch adds STM32 RTC support in stm32_defconfig file. Signed-off-by: Amelie Delaunay <[email protected]> Signed-off-by: Alexandre TORGUE <[email protected]>
2017-01-13ARM: defconfig: qcom: add APQ8060 DragonBoard devicesLinus Walleij1-0/+16
This default-enables the devices found on the APQ8060 DragonBoard in the qcom_defconfig: - EBI2 bus - SMSC911x ethernet - LEDs class and PM8058 LEDs driver, trigger and heartbeat trigger (so we get heartbeat on the board by default) - IIO framework, including the HRTimer trigger, KXSD9 accelerometer, MPU3050 gyroscope, AK8975 magnetometer and BMP085 pressure sensor Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Andy Gross <[email protected]>
2017-01-13ARM: qcom_defconfig: enable thermal sensorsSrinivas Kandagatla1-0/+3
This patch enables thermal sensors and QFPROM support for qcom platforms. Signed-off-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Andy Gross <[email protected]>
2017-01-13ARM: qcom_defconfig: add ahci configsSrinivas Kandagatla1-0/+3
This patch enables configs required to get SATA functionality working on IFC6410 board. Signed-off-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Andy Gross <[email protected]>
2017-01-13ARM: qcom_defconfig: add pcie and atl1c ethernet configsSrinivas Kandagatla1-0/+4
IFC6410 board has PCIE based ATL1C ethernet controller, so enable related configs. Signed-off-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Andy Gross <[email protected]>
2017-01-13ARM: qcom_defconfig: add usb related configsSrinivas Kandagatla1-0/+6
Signed-off-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Andy Gross <[email protected]>
2017-01-13ARM: qcom_defconfig: Enable RPM/RPM-SMD clocksGeorgi Djakov1-0/+2
Enable support for clocks, controlled by the RPM processor on Qualcomm platforms. Signed-off-by: Georgi Djakov <[email protected]> Signed-off-by: Andy Gross <[email protected]>
2017-01-10ARM: sama5_defconfig: add support for the Axentia TSE-850 boardPeter Rosin1-1/+6
The Axentia TSE-850 is a SAMA5D3-based device designed to generate FM subcarrier signals. Signed-off-by: Peter Rosin <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Alexandre Belloni <[email protected]>
2017-01-10ARM: configs: Update Aspeed with new driversJoel Stanley2-5/+71
We have upstream support for ftgmac100 ethernet with NCSI, GPIO, pinmux, and IPMI BT. Enable these for both g4 and g5 platforms. Signed-off-by: Joel Stanley <[email protected]>
2017-01-10ARM: davinci_all_defconfig: Enable PWM modulesDavid Lechner1-0/+3
This enables PWM and the TI ECAP and EHRWPM modules. These are used on LEGO MINDSTORMS EV3. Signed-off-by: David Lechner <[email protected]> Signed-off-by: Sekhar Nori <[email protected]>
2017-01-10ARM: davinci_all_defconfig: enable DA8xx pinconfDavid Lechner1-0/+1
This enables the DA8xx pinconf driver by default. It is needed by LEGO MINDSTORMS EV3. Signed-off-by: David Lechner <[email protected]> Signed-off-by: Sekhar Nori <[email protected]>
2017-01-09Merge tag 'renesas-defconfig-for-v4.11' of ↵Olof Johansson2-0/+8
https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/defconfig Renesas ARM Based SoC Defconfig Updates for v4.11 Enable: * Recently added Enable r8a774[35] SoCs * CMA for DMA to allow use of VIN with large frame sizes * CONFIG_VIDEO_ADV7604 to allow use of HDMI input * tag 'renesas-defconfig-for-v4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: multi_v7_defconfig: Enable r8a774[35] SoCs ARM: shmobile: defconfig: Enable r8a774[35] SoCs ARM: shmobile: defconfig: Enable CMA for DMA ARM: shmobile: defconfig: Enable CONFIG_VIDEO_ADV7604 Signed-off-by: Olof Johansson <[email protected]>
2017-01-09ARM: defconfig: pxa: cut MPU3050 input driverLinus Walleij1-1/+0
The PXA defconfig compiles the legacy MPU3050 driver as a module, but the device does not appear in device trees nor board files, so remove this from the defconfig assuming it was a mistake to add it in the first place. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-09ARM: defconfig: tegra: switch to MPU3050 IIO driverLinus Walleij1-1/+1
The Tegra is currently configured to use the old input driver for the MPU-3050. Switch to the new IIO driver. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-09ARM: defconfig: replace MPU3050 driver on multi_v7Linus Walleij1-1/+3
The multi_v7 config enable the MPU3050 gyro input driver, but there is now a dedicated IIO gyro driver for the same component, which is the right subsystem to handle this. Replace it in the defconfig. As we want the full IIO featureset and as other v7 systems will likely enjoy using IIO for their sensor work (such as the Android-to-IIO userspace HAL), we take this opportunity to turn on the standard sensor HRtimer triggering. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-09ARM: multi_v7_defconfig: enable Qualcomm RPMCCAndy Gross1-0/+1
This patch enables the Qualcomm RPM based Clock Controller present on A-family boards. Signed-off-by: Andy Gross <[email protected]> Acked-by: Bjorn Andersson <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2017-01-09ARM: configs: stm32: enable ADC driverFabrice GASNIER1-0/+5
ADC driver depends on REGULATOR and IIO that are not yet selected. Current hardware boards (like stm32f429i-eval) is using fixed regulators. Signed-off-by: Fabrice Gasnier <[email protected]> Signed-off-by: Alexandre TORGUE <[email protected]>
2017-01-09ARM: davinci_all_defconfig: enable pwm-beeperDavid Lechner1-0/+1
This enables the pwm-beeper module. This is used by the speaker on LEGO MINDSTORMS EV3. Signed-off-by: David Lechner <[email protected]> Signed-off-by: Sekhar Nori <[email protected]>
2017-01-08Linux 4.10-rc3Linus Torvalds1-1/+1
2017-01-08Merge tag 'usb-4.10-rc3' of ↵Linus Torvalds46-316/+550
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are a bunch of USB fixes for 4.10-rc3. Yeah, it's a lot, an artifact of the holiday break I think. Lots of gadget and the usual XHCI fixups for reported issues (one day that driver will calm down...) Also included are a bunch of usb-serial driver fixes, and for good measure, a number of much-reported MUSB driver issues have finally been resolved. All of these have been in linux-next with no reported issues" * tag 'usb-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (72 commits) USB: fix problems with duplicate endpoint addresses usb: ohci-at91: use descriptor-based gpio APIs correctly usb: storage: unusual_uas: Add JMicron JMS56x to unusual device usb: hub: Move hub_port_disable() to fix warning if PM is disabled usb: musb: blackfin: add bfin_fifo_offset in bfin_ops usb: musb: fix compilation warning on unused function usb: musb: Fix trying to free already-free IRQ 4 usb: musb: dsps: implement clear_ep_rxintr() callback usb: musb: core: add clear_ep_rxintr() to musb_platform_ops USB: serial: ti_usb_3410_5052: fix NULL-deref at open USB: serial: spcp8x5: fix NULL-deref at open USB: serial: quatech2: fix sleep-while-atomic in close USB: serial: pl2303: fix NULL-deref at open USB: serial: oti6858: fix NULL-deref at open USB: serial: omninet: fix NULL-derefs at open and disconnect USB: serial: mos7840: fix misleading interrupt-URB comment USB: serial: mos7840: remove unused write URB USB: serial: mos7840: fix NULL-deref at open USB: serial: mos7720: remove obsolete port initialisation USB: serial: mos7720: fix parallel probe ...
2017-01-08Merge tag 'char-misc-4.10-rc3' of ↵Linus Torvalds6-19/+24
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc fixes from Greg KH: "Here are a few small char/misc driver fixes for 4.10-rc3. Two MEI driver fixes, and three NVMEM patches for reported issues, and a new Hyper-V driver MAINTAINER update. Nothing major at all, all have been in linux-next with no reported issues" * tag 'char-misc-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: hyper-v: Add myself as additional MAINTAINER nvmem: fix nvmem_cell_read() return type doc nvmem: imx-ocotp: Fix wrong register size nvmem: qfprom: Allow single byte accesses for read/write mei: move write cb to completion on credentials failures mei: bus: fix mei_cldev_enable KDoc
2017-01-08Merge tag 'staging-4.10-rc3' of ↵Linus Torvalds10-30/+56
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging/IIO fixes from Greg KH: "Here are some staging and IIO driver fixes for 4.10-rc3. Most of these are minor IIO fixes of reported issues, along with one network driver fix to resolve an issue. And a MAINTAINERS update with a new mailing list. All of these, except the MAINTAINERS file update, have been in linux-next with no reported issues (the MAINTAINERS patch happened on Friday...)" * tag 'staging-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: MAINTAINERS: add greybus subsystem mailing list staging: octeon: Call SET_NETDEV_DEV() iio: accel: st_accel: fix LIS3LV02 reading and scaling iio: common: st_sensors: fix channel data parsing iio: max44000: correct value in illuminance_integration_time_available iio: adc: TI_AM335X_ADC should depend on HAS_DMA iio: bmi160: Fix time needed to sleep after command execution iio: 104-quad-8: Fix active level mismatch for the preset enable option iio: 104-quad-8: Fix off-by-one errors when addressing IOR iio: 104-quad-8: Fix index control configuration
2017-01-07mm: workingset: fix use-after-free in shadow node shrinkerJohannes Weiner3-4/+14
Several people report seeing warnings about inconsistent radix tree nodes followed by crashes in the workingset code, which all looked like use-after-free access from the shadow node shrinker. Dave Jones managed to reproduce the issue with a debug patch applied, which confirmed that the radix tree shrinking indeed frees shadow nodes while they are still linked to the shadow LRU: WARNING: CPU: 2 PID: 53 at lib/radix-tree.c:643 delete_node+0x1e4/0x200 CPU: 2 PID: 53 Comm: kswapd0 Not tainted 4.10.0-rc2-think+ #3 Call Trace: delete_node+0x1e4/0x200 __radix_tree_delete_node+0xd/0x10 shadow_lru_isolate+0xe6/0x220 __list_lru_walk_one.isra.4+0x9b/0x190 list_lru_walk_one+0x23/0x30 scan_shadow_nodes+0x2e/0x40 shrink_slab.part.44+0x23d/0x5d0 shrink_node+0x22c/0x330 kswapd+0x392/0x8f0 This is the WARN_ON_ONCE(!list_empty(&node->private_list)) placed in the inlined radix_tree_shrink(). The problem is with 14b468791fa9 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking"), which passes an update callback into the radix tree to link and unlink shadow leaf nodes when tree entries change, but forgot to pass the callback when reclaiming a shadow node. While the reclaimed shadow node itself is unlinked by the shrinker, its deletion from the tree can cause the left-most leaf node in the tree to be shrunk. If that happens to be a shadow node as well, we don't unlink it from the LRU as we should. Consider this tree, where the s are shadow entries: root->rnode | [0 n] | | [s ] [sssss] Now the shadow node shrinker reclaims the rightmost leaf node through the shadow node LRU: root->rnode | [0 ] | [s ] Because the parent of the deleted node is the first level below the root and has only one child in the left-most slot, the intermediate level is shrunk and the node containing the single shadow is put in its place: root->rnode | [s ] The shrinker again sees a single left-most slot in a first level node and thus decides to store the shadow in root->rnode directly and free the node - which is a leaf node on the shadow node LRU. root->rnode | s Without the update callback, the freed node remains on the shadow LRU, where it causes later shrinker runs to crash. Pass the node updater callback into __radix_tree_delete_node() in case the deletion causes the left-most branch in the tree to collapse too. Also add warnings when linked nodes are freed right away, rather than wait for the use-after-free when the list is scanned much later. Fixes: 14b468791fa9 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking") Reported-by: Dave Chinner <[email protected]> Reported-by: Hugh Dickins <[email protected]> Reported-by: Andrea Arcangeli <[email protected]> Reported-and-tested-by: Dave Jones <[email protected]> Signed-off-by: Johannes Weiner <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Chris Leech <[email protected]> Cc: Lee Duncan <[email protected]> Cc: Jan Kara <[email protected]> Cc: Kirill A. Shutemov <[email protected]> Cc: Matthew Wilcox <[email protected]> Cc: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>