[next,v2] batman-adv: Disable __ethtool_get_link_ksettings compat on < 3.2

Message ID 1456817617-5762-1-git-send-email-sven@narfation.org (mailing list archive)
State Rejected, archived
Delegated to: Marek Lindner
Headers

Commit Message

Sven Eckelmann March 1, 2016, 7:33 a.m. UTC
  The __ethtool_get_link_ksettings is currently used only for kernels >=
3.15. But the compat code is read by the compiler for each kernel. But
kernels up to 3.1 never had the function __ethtool_get_settings which is
used to emulate this function for kernels < 4.6. Therefore, kernels < 3.2
will fail to compile when this compatibility layer is enabled.

Fixes: 3515604d82d5 ("batman-adv: ELP - use new ethtool_link_get_ksettings API")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
v2:
 - correct version number of the supported kernel

 compat-include/linux/ethtool.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Antonio Quartulli March 1, 2016, 8:07 a.m. UTC | #1
On Tue, Mar 01, 2016 at 08:33:37AM +0100, Sven Eckelmann wrote:
> The __ethtool_get_link_ksettings is currently used only for kernels >=
> 3.15. But the compat code is read by the compiler for each kernel. But
> kernels up to 3.1 never had the function __ethtool_get_settings which is
> used to emulate this function for kernels < 4.6. Therefore, kernels < 3.2
> will fail to compile when this compatibility layer is enabled.
> 
> Fixes: 3515604d82d5 ("batman-adv: ELP - use new ethtool_link_get_ksettings API")
> Signed-off-by: Sven Eckelmann <sven@narfation.org>
> ---
> v2:
>  - correct version number of the supported kernel
> 
>  compat-include/linux/ethtool.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/compat-include/linux/ethtool.h b/compat-include/linux/ethtool.h
> index 87f7577..2e6270e 100644
> --- a/compat-include/linux/ethtool.h
> +++ b/compat-include/linux/ethtool.h
> @@ -24,7 +24,9 @@
>  #include <linux/version.h>
>  #include_next <linux/ethtool.h>
>  
> -#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
> +/* WARNING only enabled on kernels with __ethtool_get_settings support */
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) && \
> +    LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)

Sven,

does it mean that on <3.2 batman v won't compile at all ?


Cheers,
  
Sven Eckelmann March 1, 2016, 8:30 a.m. UTC | #2
On Tuesday 01 March 2016 16:07:08 Antonio Quartulli wrote:
[...]
> does it mean that on <3.2 batman v won't compile at all ?

Ehrm, it doesn't even work on < 3.15. And afaik it never compiled on < 3.2

Kind regards,
	Sven
  
Sven Eckelmann March 20, 2016, 2:02 p.m. UTC | #3
On Tuesday 01 March 2016 08:33:37 Sven Eckelmann wrote:
> The __ethtool_get_link_ksettings is currently used only for kernels >=
> 3.15. But the compat code is read by the compiler for each kernel. But
> kernels up to 3.1 never had the function __ethtool_get_settings which is
> used to emulate this function for kernels < 4.6. Therefore, kernels < 3.2
> will fail to compile when this compatibility layer is enabled.
> 
> Fixes: 3515604d82d5 ("batman-adv: ELP - use new ethtool_link_get_ksettings
> API") Signed-off-by: Sven Eckelmann <sven@narfation.org>
> ---
> v2:
>  - correct version number of the supported kernel

This patch rejected in favor of the compat(-include) cleanup [1].

Kind regards,
	Sven

[1] https://patchwork.open-mesh.org/patch/15942/
  

Patch

diff --git a/compat-include/linux/ethtool.h b/compat-include/linux/ethtool.h
index 87f7577..2e6270e 100644
--- a/compat-include/linux/ethtool.h
+++ b/compat-include/linux/ethtool.h
@@ -24,7 +24,9 @@ 
 #include <linux/version.h>
 #include_next <linux/ethtool.h>
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
+/* WARNING only enabled on kernels with __ethtool_get_settings support */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) && \
+    LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
 
 #define ethtool_link_ksettings batadv_ethtool_link_ksettings