diff mbox

isdn: disable HiSax NetJet driver on microblaze arch

Message ID 87pp4vw3ep.fsf@gmail.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Nicolai Stange June 17, 2015, 1:05 a.m. UTC
Fix an allmodconfig compilation failer on microblaze due to big endian
architectures being apparently unsupported by the NetJet code:
  drivers/isdn/hisax/nj_s.c: In function 'setup_netjet_s':
  drivers/isdn/hisax/nj_s.c:265:2:
      error: #error "not running on big endian machines now"

Modify the relevant Kconfig such that the NetJet code is not built on
microblaze anymore.

Note that endianess on microblaze is not determined through Kconfig,
but by means of a compiler provided CPP macro, namely __MICROBLAZEEL__.
However, gcc defaults to big endianess on that platform.

Signed-off-by: Nicolai Stange <nicstange@gmail.com>
---
 The maintainer tree listed under "ISDN SUBSYSTEM" in MAINTAINERS does
 not exist anymore. I created the diff against the Linus tree.

 drivers/isdn/hisax/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jean Delvare June 17, 2015, 6:53 a.m. UTC | #1
Le Wednesday 17 June 2015 à 03:05 +0200, Nicolai Stange a écrit :
> Fix an allmodconfig compilation failer on microblaze due to big endian
> architectures being apparently unsupported by the NetJet code:
>   drivers/isdn/hisax/nj_s.c: In function 'setup_netjet_s':
>   drivers/isdn/hisax/nj_s.c:265:2:
>       error: #error "not running on big endian machines now"
> 
> Modify the relevant Kconfig such that the NetJet code is not built on
> microblaze anymore.
> 
> Note that endianess on microblaze is not determined through Kconfig,
> but by means of a compiler provided CPP macro, namely __MICROBLAZEEL__.
> However, gcc defaults to big endianess on that platform.
> 
> Signed-off-by: Nicolai Stange <nicstange@gmail.com>
> ---
>  The maintainer tree listed under "ISDN SUBSYSTEM" in MAINTAINERS does
>  not exist anymore. I created the diff against the Linus tree.
> 
>  drivers/isdn/hisax/Kconfig | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
> index 97465ac..eb83d94 100644
> --- a/drivers/isdn/hisax/Kconfig
> +++ b/drivers/isdn/hisax/Kconfig
> @@ -237,7 +237,7 @@ config HISAX_MIC
>  
>  config HISAX_NETJET
>  	bool "NETjet card"
> -	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
> +	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
>  	depends on VIRT_TO_BUS
>  	help
>  	  This enables HiSax support for the NetJet from Traverse
> @@ -249,7 +249,7 @@ config HISAX_NETJET
>  
>  config HISAX_NETJET_U
>  	bool "NETspider U card"
> -	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
> +	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
>  	depends on VIRT_TO_BUS
>  	help
>  	  This enables HiSax support for the Netspider U interface ISDN card

Acked-by: Jean Delvare <jdelvare@suse.de>
Nicolai Stange June 17, 2015, 10:58 a.m. UTC | #2
> Acked-by: Jean Delvare <jdelvare@suse.de>

Jean, thank you very much for your prompt reaction!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller June 21, 2015, 4:54 p.m. UTC | #3
From: Nicolai Stange <nicstange@gmail.com>
Date: Wed, 17 Jun 2015 03:05:02 +0200

> Fix an allmodconfig compilation failer on microblaze due to big endian
> architectures being apparently unsupported by the NetJet code:
>   drivers/isdn/hisax/nj_s.c: In function 'setup_netjet_s':
>   drivers/isdn/hisax/nj_s.c:265:2:
>       error: #error "not running on big endian machines now"
> 
> Modify the relevant Kconfig such that the NetJet code is not built on
> microblaze anymore.
> 
> Note that endianess on microblaze is not determined through Kconfig,
> but by means of a compiler provided CPP macro, namely __MICROBLAZEEL__.
> However, gcc defaults to big endianess on that platform.
> 
> Signed-off-by: Nicolai Stange <nicstange@gmail.com>
> ---
>  The maintainer tree listed under "ISDN SUBSYSTEM" in MAINTAINERS does
>  not exist anymore. I created the diff against the Linus tree.

Applied, but we're long overdue for an across-the-board-available
endianness Kconfig option that can flat out be used in these situations.
The current way this is handled is at best, a mess.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
Nicolai Stange June 21, 2015, 5:59 p.m. UTC | #4
David Miller <davem@davemloft.net> writes:
>> Note that endianess on microblaze is not determined through Kconfig,
>> but by means of a compiler provided CPP macro, namely __MICROBLAZEEL__.
>> However, gcc defaults to big endianess on that platform.
> Applied, but we're long overdue for an across-the-board-available
> endianness Kconfig option that can flat out be used in these situations.
> The current way this is handled is at best, a mess.

Thanks!

Regarding the general Kconfig endianess symbol, I will do another patch
based on the information of
  git grep '_endian\.h' -- arch/
and supply every arch with either of CONFIG_CPU_{LITTLE,BIG}_ENDIAN if
lacking.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
Jean Delvare June 22, 2015, 11:27 a.m. UTC | #5
Le Sunday 21 June 2015 à 19:59 +0200, Nicolai Stange a écrit :
> David Miller <davem@davemloft.net> writes:
> >> Note that endianess on microblaze is not determined through Kconfig,
> >> but by means of a compiler provided CPP macro, namely __MICROBLAZEEL__.
> >> However, gcc defaults to big endianess on that platform.
> > Applied, but we're long overdue for an across-the-board-available
> > endianness Kconfig option that can flat out be used in these situations.
> > The current way this is handled is at best, a mess.

I fully agree.

> Thanks!
> 
> Regarding the general Kconfig endianess symbol, I will do another patch
> based on the information of
>   git grep '_endian\.h' -- arch/
> and supply every arch with either of CONFIG_CPU_{LITTLE,BIG}_ENDIAN if
> lacking.

Note that Chen Gang (Cc'd) attempted the same almost a year ago:
http://patchwork.linux-mips.org/patch/7540/
then:
http://marc.info/?t=140958656400002&r=1&w=2

The idea was great IMHO but it did not work out, and I can't remember
why.
Nicolai Stange June 22, 2015, 12:36 p.m. UTC | #6
Jean Delvare <jdelvare@suse.de> writes:
> Le Sunday 21 June 2015 à 19:59 +0200, Nicolai Stange a écrit :
>> David Miller <davem@davemloft.net> writes:
>>> Applied, but we're long overdue for an across-the-board-available
>>> endianness Kconfig option that can flat out be used in these situations.
>>> The current way this is handled is at best, a mess.
>> 
>> Regarding the general Kconfig endianess symbol, I will do another patch
>> based on the information of
>>   git grep '_endian\.h' -- arch/
>> and supply every arch with either of CONFIG_CPU_{LITTLE,BIG}_ENDIAN if
>> lacking.
>
> Note that Chen Gang (Cc'd) attempted the same almost a year ago:
> http://patchwork.linux-mips.org/patch/7540/
> then:
> http://marc.info/?t=140958656400002&r=1&w=2
>
> The idea was great IMHO but it did not work out, and I can't remember
> why.

Thank you very much for this pointer, Jean!  I've read through these
threads and to summarize, some arch maintainers' main point against that
patchset is that (recent) drivers should generally support both, LE and
BE.

It is interesting to note that Chen Gang had already addressed the very
same issue (Hisax NetJet driver) by the far more general approach
proposed by David Miller here, namely by introducing an
"across-the-board-available endianess Kconfig option".

So unless you really want to have such an option and ping me, I will not
do another patch in the mood of Chen Gang's original one.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
diff mbox

Patch

diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
index 97465ac..eb83d94 100644
--- a/drivers/isdn/hisax/Kconfig
+++ b/drivers/isdn/hisax/Kconfig
@@ -237,7 +237,7 @@  config HISAX_MIC
 
 config HISAX_NETJET
 	bool "NETjet card"
-	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
 	depends on VIRT_TO_BUS
 	help
 	  This enables HiSax support for the NetJet from Traverse
@@ -249,7 +249,7 @@  config HISAX_NETJET
 
 config HISAX_NETJET_U
 	bool "NETspider U card"
-	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+	depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
 	depends on VIRT_TO_BUS
 	help
 	  This enables HiSax support for the Netspider U interface ISDN card