2015-06-17 01:05:22

by Nicolai Stange

[permalink] [raw]
Subject: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

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 <[email protected]>
---
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
--
2.4.3


2015-06-17 06:54:01

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

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 <[email protected]>
> ---
> 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 <[email protected]>

--
Jean Delvare
SUSE L3 Support

2015-06-17 10:58:51

by Nicolai Stange

[permalink] [raw]
Subject: Re: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

> Acked-by: Jean Delvare <[email protected]>

Jean, thank you very much for your prompt reaction!

2015-06-21 16:42:21

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

From: Nicolai Stange <[email protected]>
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 <[email protected]>
> ---
> 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.

2015-06-21 17:59:24

by Nicolai Stange

[permalink] [raw]
Subject: Re: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

David Miller <[email protected]> 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.

2015-06-22 11:27:45

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

Le Sunday 21 June 2015 à 19:59 +0200, Nicolai Stange a écrit :
> David Miller <[email protected]> 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.

--
Jean Delvare
SUSE L3 Support

2015-06-22 12:36:26

by Nicolai Stange

[permalink] [raw]
Subject: Re: [PATCH] isdn: disable HiSax NetJet driver on microblaze arch

Jean Delvare <[email protected]> writes:
> Le Sunday 21 June 2015 à 19:59 +0200, Nicolai Stange a écrit :
>> David Miller <[email protected]> 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.