aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/rockchip
Commit message (Collapse)AuthorAgeFilesLines
* rockchip: fix setup network config for nanopi r2cTianling Shen2023-06-171-0/+1
| | | | | | | | | Without it the WAN port won't be initialized properly. Fixes: 8f578c15b314 ("rockchip: add NanoPi R2C support") Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> (cherry picked from commit d312f12b1a6ee41e7bf1e07ec0349e141c07b92e)
* rockchip: add Orange Pi R1 Plus LTS supportTianling Shen2023-06-095-4/+88
| | | | | | | | | | | | The OrangePi R1 Plus LTS is a minor variant of OrangePi R1 Plus with the on-board NIC chip changed from rtl8211e to yt8531c, and otherwise identical to OrangePi R1 Plus. Tested-by: Volkan Yetik <no3iverson@gmail.com> Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> (cherry picked from commit 32d5921b8b5508a99680ecf1626667517c2cbdb8) [Removed patches for kernel 6.1] Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* rockchip: add Orange Pi R1 Plus supportTianling Shen2023-06-097-3/+505
| | | | | | | | | | | | | | | | | Orange Pi R1 Plus is a Rockchip RK3328 based SBC by Xunlong. This device is similar to the NanoPi R2S, and has a 16MB SPI NOR (mx25l12805d). The reset button is changed to directly reset the power supply, another detail is that both network ports have independent MAC addresses. Note: booting from SPI is currently unsupported, you have to install the image on a SD card. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> (cherry picked from commit ab641efe698f4412319fcbcfe6ffde64c929cd97) [Removed patches for kernel 6.1] Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* kernel: Set CONFIG_FRAME_WARN depending on targetHauke Mehrtens2023-06-021-1/+0
| | | | | | | | | This set the CONFIG_FRAME_WARN option depending on some target settings. It will use the default from the upstream kernel and not the hard coded value of 1024 now. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 16a20512d852f6ecebf8c57cd7fa2572a06a9d0b)
* kernel: enable (ARM|ARM64)_MODULE_PLTS in generic configTony Ambardar2023-05-241-1/+0
| | | | | | | | | | | | | | | | | | | | | This allows loading modules with large memory requirements, recently needed while testing on armvirt/32. Past forum discussions [1] and bug reports [2] also raised this and the ipq806x target already set it in response [3]. Given this increases kernel image size by only ~1KB, is generally useful on multi-platform kernels, and enabled by default on upstream arm32 Linux, add it to the generic config. The setting has similar utility on arm64, is a requirement for KASLR, and already enabled on most OpenWrt aarch64 targets, so pull this into the top-level generic config. [1]: https://forum.openwrt.org/t/vmap-allocation-for-size-442368-failed-use-vmalloc-size-to-increase-size/34545/7 [2]: https://github.com/openwrt/openwrt/issues/8282 [3]: f81e148eb6 ("ipq806x: update 4.19 kernel config"). Signed-off-by: Tony Ambardar <itugrok@yahoo.com> (cherry picked from commit c2d194a34eb1a62a610f0437287db6c3eca64d5a) Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* rockchip: add NanoPi R2C supportTianling Shen2023-05-186-4/+105
| | | | | | | The NanoPi R2C is a minor variant of NanoPi R2S with the on-board NIC chip changed from rtl8211e to yt8521s, and otherwise identical to R2S. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* kernel: backport Motorcomm YT8521/YT8531 supportTianling Shen2023-05-181-0/+1
| | | | | | It will be used on NanoPi R2C and OrangePi R1 Plus LTS board. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* rockchip: move UBOOT_DEVICE_NAME to defaultTianling Shen2023-05-182-3/+1
| | | | | | Simplify variable usage. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* rockchip: merge bootscriptTianling Shen2023-05-184-18/+12
| | | | | | | | The bootscript for nanopi r2s/r4s only changes the serial address, so make it auto detected in mmc bootscript rather than creating more (redudant) files. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* treewide: remove files for building 5.10 kernelNick Hainke2023-05-1210-1115/+0
| | | | | | | | | | | All targets are bumped to 5.15. Remove the old 5.10 patches, configs and files using: find target/linux -iname '*-5.10' -exec rm -r {} \; Further, remove the 5.10 include. Signed-off-by: Nick Hainke <vincent@systemli.org>
* rockchip: disable UHS speed for ROC-RK3328-CCTianling Shen2023-05-091-0/+10
| | | | | | | | | | | The previously stated speed of sdr-104 in is too high for the hardware to reliably communicate with some fast SD cards. Rockchip boards have a common bug when operating uhs speed, which will hang the system during a soft reboot. To be on the safe side, lower the speed to workaround. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* rockchip: enable rk805 pinctrl driverTianling Shen2023-05-091-1/+2
| | | | | | | This is required for ROC-RK3328-CC to light up the LED-s which are connected to rk805's gpio. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* rockchip: add Firefly ROC-RK3328-CC supportTianling Shen2023-05-093-8/+30
| | | | | | | | | | | | | | | | | | | | | | Hardware -------- RockChip RK3328 ARM64 (4 cores) 4GB DDR4 RAM 1x 1000 Base-T 2 LEDs (POWER / USER) HDMI 2.0 3.5mm TRRS AV jack Micro-SD slot eMMC slot 1x USB 3.0 Port 2x USB 2.0 Port Installation ------------ Uncompress the OpenWrt sysupgrade and write it to a micro SD card using dd. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* kernel: improve handling of CONFIG_IO_URINGTony Ambardar2023-05-032-2/+0
| | | | | | | | | | | | | | | | | | | | | | Kernel setting CONFIG_IO_URING supports high-performance I/O for file access and servers, generally for more performant platforms, and adds ~45 KB to kernel sizes. The need for this on less "beefy" devices is questionable, as is the size cost considering many platforms have kernel size limits which require tricky repartitioning if outgrown. The size cost is also large relative to the ~180 KB bump expected between major OpenWRT kernel releases. No OpenWrt packages have hard dependencies on this; samba4 and mariadb can take advantage if available (+KERNEL_IO_URING:liburing) but otherwise build and work fine. Since CONFIG_IO_URING is already managed via the KERNEL_IO_URING setting in Config-kernel.in (default Y), remove it from those target configs which unconditionally enable it, and update the defaults to enable it conditionally only on more powerful 64-bit x86 and arm devices. It may still be manually enabled as needed for high-performance custom builds. Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
* kernel: Deactivate CONFIG_COMPATHauke Mehrtens2023-04-292-7/+0
| | | | | | | | | | | | | | This deactivates the CONFIG_COMPAT kernel option. With CONFIG_COMPAT the kernel will provide syscall interfaces for arm32 binaries in addition to the interfaces needed for arm64 binaries. In OpenWrt the complete userspace is compiled for this specific architecture and support for 32 bit ARM applications is not needed. This reduces the size and the attack surface for the systems. On all other targets CONFIG_COMPAT is already deactivated. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Deactivate CONFIG_LEGACY_PTYSHauke Mehrtens2023-04-292-4/+0
| | | | | | | | | The legacy (BSD) PTY support could open security problems in a system, We do not need them in OpenWrt, deactivate this option in all targets. Debian also deactivates this option. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Activate CONFIG_ARM64_SW_TTBR0_PANHauke Mehrtens2023-04-292-2/+0
| | | | | | | | | | | | | This activates the CONFIG_ARM64_SW_TTBR0_PAN option for all arm64 kernels by default. The CONFIG_ARM64_SW_TTBR0_PAN option prevents the kernel form accessing user space memory directly. This makes it harder to exploit the kernel. This is activated by default and was already activate on all other arm64 targets before. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Activate CONFIG_HARDENED_USERCOPY for all targetsHauke Mehrtens2023-04-292-2/+0
| | | | | | | | | | | | | | This activates CONFIG_HARDENED_USERCOPY for the remaining targets. This adds additional checks in the copy_from_user() and copy_to_user() functions. This was not activated for ARCHS38 before because of a bug in the Linux kernel 5.4 till 5.14, which as fixed and is described here: https://github.com/foss-for-synopsys-dwc-arc-processors/linux/issues/15 I do not know why this was deactivated for mt7629 and rockchip. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* treewide: update NVMEM symbolsRafał Miłecki2023-01-072-4/+4
| | | | | Fixes: 8dfe69cdfc5c ("kernel: update nvmem subsystem to the latest upstream") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* sunxi: ensure NanoPi R1 has unique MAC addressJan-Niklas Burfeind2022-12-251-11/+2
| | | | | | | | | | | | | | | | | | | | Ensure the MAC address for all NanoPi R1 boards is assigned uniquely for each board. The vendor ships the device in two variants; one with and one without eMMC; but both without static mac-addresses. In order to assign both board types unique MAC addresses, fall back on the same method used for the NanoPi R2S and R4S in case the EEPROM chip is not present by generating the board MAC from the SD card CID. [0] https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R1#Hardware_Spec Similar too and based on: commit b5675f500daf ("rockchip: ensure NanoPi R4S has unique MAC address") Co-authored-by: David Bauer <mail@david-bauer.net> Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
* kernel: bump 5.10 to 5.10.159John Audia2022-12-141-1/+1
| | | | | | | | | | | | | | | Removed upstreamed: backport-5.10/888-v6.1-ca8210-Fix-crash-by-zero-initializing-data.patch[1] All patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.159&id=0a8e66e375736ea12c11f0ef238ba2a8efec460b Build system: x86_64 Build-tested: ramips/tplink_archer-a6-v3 Run-tested: ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me>
* rockchip: enable watchdog driverKien Truong2022-12-041-1/+2
| | | | | | | | Enable Synopsys DesignWare watchdog driver for rockchip device Tested on NanoPi R2S Signed-off-by: Kien Truong <duckientruong@gmail.com>
* rockchip: use LZMA FIT for kernel imageChuanhong Guo2022-11-145-8/+7
| | | | | | | | Use LZMA compressed kernel to save some space in boot partition. Fixes: #11197 Tested-by: Tianling Shen <cnsztl@immortalwrt.org> [NanoPi R2S] Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* rockchip: armv8: add CONFIG_ARM64_ERRATUM_1742098John Audia2022-10-301-0/+1
| | | | | | | | 5.15.76 introduces a new symbol that applies Cortex-A72 SoCs so enable it[1]. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/arm64/Kconfig?id=v5.15.76&id2=v5.15.75 Signed-off-by: John Audia <therealgraysky@proton.me>
* kernel: disable CONFIG_CPU_LITTLE_ENDIAN in generic configAleksander Jan Bajkowski2022-10-212-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Endianness depends on CPU architecture. CONFIG_CPU_(BIG/LITTLE)_ENDIAN should be enabled on target or subtarget based on SoC architecture. Fixes warning: $ make kernel_oldconfig CONFIG_TARGET=subtarget ... .config:1008:warning: override: CPU_LITTLE_ENDIAN changes choice state .... Summary: - ARC - only the CONFIG_CPU_BIG_ENDIAN symbol is defined for this architeture. If it is disabled then the processor operates in LITTLE_ENDIAN mode (default), - ARM32 - CONFIG_CPU_LITTLE_ENDIAN symbol available since kernel 5.19. This option should be enabled after OpenWRT moves to kernel 6.x. After refreshing the kernel, the symbol disappears, - ARM64 - enabled CONFIG_CPU_LITTLE_ENDIAN, - MIPS - enabled relevant symbols, - POWERPC - enabled CONFIG_CPU_BIG_ENDIAN, - UML - Symbols are not defined for this architecture, - X86 - always little endian. Symbols are not defined for this architecture. Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
* rockchip: switch to 5.15 kernelTomas Lara2022-10-021-2/+1
| | | | | | Run tested: NanoPI R4S Signed-off-by: Tomas Lara <tl849670@gmail.com>
* rockchip: refresh kernel 5.15 configTomas Lara2022-10-021-10/+13
| | | | | | Refreshed using make kernel oldconfig CONFIG TARGET=rockchip . Signed-off-by: Tomas Lara <tl849670@gmail.com>
* kernel: Move some IOMMU options to genericHauke Mehrtens2022-09-242-3/+0
| | | | | | | | | | | | This adds some missing IOMMU related options for x86/64 and moves some of them to generic for all targets. On x86 IOMMU_DEFAULT_DMA_LAZY is used by default, on all other platforms IOMMU_DEFAULT_DMA_STRICT is the default. we just follow the default kernel configuration here. Fixes: 8fea4a102ccd ("x86/64: enable IOMMU support") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* rockchip: add system-LED aliases specific to OpenWrtDavid Bauer2022-09-102-0/+32
| | | | | | | Add the aliases sections required to detect LEDs specific to OpenWrt boot / update indication for the NanoPi R4S. Signed-off-by: David Bauer <mail@david-bauer.net>
* rockchip: ensure NanoPi R4S has unique MAC addressDavid Bauer2022-09-101-5/+28
| | | | | | | | | | | | | | | | | Ensure the MAC address for all NanoPi R4S boards is assigned unique for each board. FriendlyElec ship two versions of the R4S: The standard as well as the enterprise edition with only the enterprise edition including the EEPROM chip that stores the unique MAC address. In order to assign both board types unique MAC addresses, fall back on the same method used for the NanoPi R2S in case the EEPROM chip is not present by generating the board MAC from the SD card CID. [0] https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R4S#Differences_Between_R4S_Standard_Version_.26_R4S_Enterprise_Version Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: Activate CONFIG_GPIOLIB in generic configurationHauke Mehrtens2022-08-102-2/+0
| | | | | | | | All targets expect the malta target already activate the CONFIG_GPIOLIB option. Move it to generic kernel configuration and also activate it for malta. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: Activate CONFIG_INPUT_MISC on all targetsHauke Mehrtens2022-08-102-2/+0
| | | | | | | | | CONFIG_INPUT_MISC does not do any changes to the kernel image, it only shows some extra kernel configuration options. Activate it on all targets. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* rockchip: reliably distribute net interruptsRonny Kotzschmar2022-07-071-2/+9
| | | | | | | | | On the NanoPI R4S it takes an average of 3..5 seconds for the network devices to appear in '/proc/interrupts'. Wait up to 10 seconds to ensure that the distribution of the interrupts really happens. Signed-off-by: Ronny Kotzschmar <ro.ok@me.com>
* generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]Tomasz Maciej Nowak2022-06-242-0/+3
| | | | | | | | | | | | This is now built-in, enable so it won't propagate on target configs. Link: https://lkml.org/lkml/2022/1/3/168 Fixes: 79e7a2552e89 ("kernel: bump 5.15 to 5.15.44") Fixes: 0ca93670693b ("kernel: bump 5.10 to 5.10.119") Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com> (Link to Kernel's commit taht made it built-in, CRYPTO_LIB_BLAKE2S[_ARM|_X86] as it's selectable, 5.10 backport) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* rockchip: add kernel 5.15 as testingJuergen Wurzer2022-06-186-1/+763
| | | | | | | | Add kernel 5.15 as testing kernel for the rockchip-armv8 target. Signed-off-by: Juergen Wurzer <wurzer.juergen@gmail.com> [squash commits, update commit message] Signed-off-by: David Bauer <mail@david-bauer.net>
* rockchip/armv8: enable armv8-CE crypto algorithmsEneas U de Queiroz2022-06-041-0/+9
| | | | | | | This enables armv8 crypto extensions version of AES, GHASH, and CRC T10 algorithms in the kernel. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
* kernel: include CONFIG_KEXEC_SIG in configsPhilip Prindeville2022-03-151-1/+0
| | | | | | | | | | | | | | Seeing failure to build because of missing symbols related to provisioning CONFIG_KEXEC and signed images. Without this, if you set CONFIG_KERNEL_KEXEC=y and try to build, target/linux will hang at: scripts/kconfig/conf --syncconfig Kconfig ... kexec system call (KEXEC) [Y/n/?] y kexec file based system call (KEXEC_FILE) [Y/n/?] y Verify kernel signature during kexec_file_load() syscall (KEXEC_SIG) [N/y/?] (NEW) Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
* kernel: 5.10: remove CONFIG_DEVTMPFS{,_MOUNT} from kconfigsRui Salvaterra2022-03-011-2/+0
| | | | | | They are required for container support, but are handled in Config-kernel.in. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* rockchip: disable UHS modes for NanoPi R4SDavid Bauer2022-01-271-0/+26
| | | | | | | | | | | The NanoPi R4S leaves the SD card in 1.8V signalling when rebooting while U-Boot requires the card to be in 3.3V mode. Remove UHS support from the SD controller so the card remains in 3.3V mode. This reduces transfer speeds but ensures a reboot whether from userspace or following a kernel panic is always working. Signed-off-by: David Bauer <mail@david-bauer.net>
* rockchip: remove Kernel 5.4David Bauer2021-12-2712-1559/+0
| | | | | | | As v5.10 is the default kernel version now, the files for v5.4 can be dropped. Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: 5.10: consolidate mac80211 crypto optionsSergey Ryazanov2021-12-171-7/+0
| | | | | | | | | | | | | | | | | | | | | | Each of - CRYPTO_AEAD2 - CRYPTO_AEAD - CRYPTO_GF128MUL - CRYPTO_GHASH - CRYPTO_HASH2 - CRYPTO_HASH - CRYPTO_MANAGER2 - CRYPTO_MANAGER - CRYPTO_NULL2 either directly required for mac80211 crypto support, or directly selected by such options. Support for the mac80211 crypto was enabled in the generic config since c7182123b9 ("kernel: make cryptoapi support needed by mac80211 built-in"). So move the above options from the target configs to the generic config to make it clear why do we need them. CC: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* kernel: filter out both Clang and LLD versionsSergey Ryazanov2021-12-171-1/+0
| | | | | | | | Both CLANG_VERSION and LLD_VERISON are autogenerated runtime configuration options, so add them to the kernel configuration filter and remove from generic and per-target configs to keep configs clean. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* rockchip: move r8152 related patches to genericChukun Pan2021-10-304-256/+0
| | | | | | | These patches can be used on other platforms, so move it to generic. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* rockchip: rename "Rock Pi 4" to "Rock Pi 4A"Adrian Schmutzler2021-10-103-33/+4
| | | | | | | | | | | | Kernel has added the different variants of the Rock Pi 4 in commit b5edb0467370 ("arm64: dts: rockchip: Mark rock-pi-4 as rock-pi-4a dts"). The former Rock Pi 4 is now Rock Pi 4A. For compatibility with kernel 5.4, this rename has been held back so far. Having switched to kernel 5.10 now, we can finally apply it in our tree as well. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* rockchip: switch to kernel 5.10Adrian Schmutzler2021-10-101-2/+1
| | | | | | | This target has testing support for more than half a year now. Time to switch. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: Deactivate some ARM64 errata workaroundsHauke Mehrtens2021-10-032-10/+0
| | | | | | | | | | | This deactivates the following workarounds for erratas in ARM64 CPUS: CONFIG_ARM64_ERRATUM_1165522: Cortex-A76 cores (r0p0, r1p0, r2p0) CONFIG_ARM64_ERRATUM_1286807: Cortex-A76 cores (r0p0 to r3p0) CONFIG_ARM64_ERRATUM_1418040: Cortex-A76/Neoverse-N1 cores (r0p0 to r3p1) CONFIG_CAVIUM_TX2_ERRATUM_219: Cavium ThunderX2 CONFIG_FUJITSU_ERRATUM_010001: Fujitsu-A64FX Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* rockchip: fix broken squashfs sysupgradeDavid Bauer2021-09-241-1/+1
| | | | | | | | | | | | | | The rockchip platform supports squashfs SD card images. However, the resulting image is not padded to completely fill the rootfs partition. Because of that, the f2fs overlay might not be erased, resulting in uci-defaults not bing executed or the configuration not being erased, even though drop config was selected. Modify the image generation process so the image is padded to cover the entire root filesystem partition. Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: Set CONFIG_RCU_CPU_STALL_TIMEOUT=21Hauke Mehrtens2021-09-092-2/+0
| | | | | | | | | | | | The default value for CONFIG_RCU_CPU_STALL_TIMEOUT was changed from 60 seconds to 21 seconds in 2012 in the upstream kernel. Some targets already use 21 seconds. This patch changes the default value in the generic configuration to 21 seconds and removes the target specific configuration options. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
* kernel: move two symbols to the generic kconfigsRui Salvaterra2021-08-292-4/+0
| | | | | | | CONFIG_RCU_{NEED_SEGCBLIST,STALL_COMMON} are set basically everywhere. Move them to the generic kconfigs. And resort the generic kconfigs while at it. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* kernel: disable CONFIG_RCU_EXPERT and friendsRui Salvaterra2021-08-292-2/+0
| | | | | | | | | | | | | | Based on the existing documentation [1][2], I dare anyone to demonstrate that we need to fine-tune these RCU parameters. The (performance) breakage potential for doing so is immense, so let's just please put down this loaded footgun. Disable CONFIG_RCU_EXPERT and its dependent symbols. Additionally, remove the CONFIG_RCU_EXPERT symbol from the target kconfigs which contain it. [1] https://www.kernel.org/doc/Documentation/RCU/Design/Data-Structures/Data-Structures.html [2] https://lwn.net/Articles/777214/ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>