Linux mainline fork with MSM8998 patches | https://mainline.space | Currently supported devices:
OnePlus 5/5T, Xiaomi Mi 6, F(x)tec Pro¹ (2019 QX1000 model) & Sony Xperia XZ Premium (UNTESTED!)
Ido Schimmel says: ==================== mlxsw: Removing dependency of mlxsw on GRE Petr says: mlxsw_spectrum supports offloading of a tc action mirred egress mirror to a gretap or ip6gretap netdevice, which necessitates calls to functions defined in ip_gre, ip6_gre and ip6_tunnel modules. Previously this was enabled by introducing a hard dependency of MLXSW_SPECTRUM on NET_IPGRE and IPV6_GRE. However the rest of mlxsw is careful about picking which modules are absolutely required, and therefore the better approach is to make mlxsw_spectrum tolerant of absence of one or both of the GRE flavors. One way this might be resolved is by keeping the code in mlxsw_spectrum intact, and defining defaults for functions that mlxsw_spectrum depends on. The downsides are that other modules end up littered with these do-nothing defaults; that the driver ends up carrying quite a bit of dead code; and that the driver ends up having to explicitly depend on IPV6_TUNNEL to prevent configurations where mlxsw_spectrum is compiled in and and ip6_tunnel is a module, something that it currently can treat as an implementation detail of the IPV6_GRE dependency. Alternatively, the driver should just bite the bullet and ifdef-out the code that handles configurations that are not supported. Since that's what we are doing for IPv6 dependency, let's do the same for the GRE flavors. Patch #1 introduces a wrapper function for determining the value of ipv6.sysctl.multipath_hash_policy, which defaults to 0 on non-IPv6 builds. That function is then used from spectrum_router.c, instead of the direct variable reference that was introduced there during the short window when the Spectrum driver had a hard dependency on IPv6. Patch #2 moves one function to keep together in one block all the callbacks for handling (IPv4) gretap mirroring. Patch #3 then introduces the ifdefs to hide the irrelevant code. ==================== Signed-off-by: David S. Miller <davem@davemloft.net> |
||
|---|---|---|
| arch | ||
| block | ||
| certs | ||
| crypto | ||
| Documentation | ||
| drivers | ||
| firmware | ||
| fs | ||
| include | ||
| init | ||
| ipc | ||
| kernel | ||
| lib | ||
| LICENSES | ||
| mm | ||
| net | ||
| samples | ||
| scripts | ||
| security | ||
| sound | ||
| tools | ||
| usr | ||
| virt | ||
| .cocciconfig | ||
| .get_maintainer.ignore | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| COPYING | ||
| CREDITS | ||
| Kbuild | ||
| Kconfig | ||
| MAINTAINERS | ||
| Makefile | ||
| README | ||
Linux kernel ============ This file was moved to Documentation/admin-guide/README.rst Please notice that there are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML and PDF. In order to build the documentation, use ``make htmldocs`` or ``make pdfdocs``. There are various text files in the Documentation/ subdirectory, several of them using the Restructured Text markup notation. See Documentation/00-INDEX for a list of what is contained in each file. Please read the Documentation/process/changes.rst file, as it contains the requirements for building and running the kernel, and information about the problems which may result by upgrading your kernel.