diff mbox

gpio: Fix OF build problem on UM

Message ID 1471334801-2814-1-git-send-email-linus.walleij@linaro.org
State New
Headers show

Commit Message

Linus Walleij Aug. 16, 2016, 8:06 a.m. UTC
The UserMode (UM) Linux build was failing in gpiolib-of as it requires
ioremap()/iounmap() to exist, which is absent from UM. The non-existence
of IO memory is negatively defined as CONFIG_NO_IOMEM so put a reverse
dependency on !NO_IOMEM for OF_GPIO to fix the build.

Cc: stable@vger.kernel.org
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpio/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Geert Uytterhoeven Aug. 17, 2016, 9:03 a.m. UTC | #1
On Tue, Aug 16, 2016 at 10:06 AM, Linus Walleij
<linus.walleij@linaro.org> wrote:
> The UserMode (UM) Linux build was failing in gpiolib-of as it requires
> ioremap()/iounmap() to exist, which is absent from UM. The non-existence
> of IO memory is negatively defined as CONFIG_NO_IOMEM so put a reverse
> dependency on !NO_IOMEM for OF_GPIO to fix the build.
>
> Cc: stable@vger.kernel.org
> Reported-by: kbuild test robot <fengguang.wu@intel.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  drivers/gpio/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> index 98dd47a30fc7..a6026f2fe7f5 100644
> --- a/drivers/gpio/Kconfig
> +++ b/drivers/gpio/Kconfig
> @@ -50,6 +50,7 @@ config GPIO_DEVRES
>  config OF_GPIO
>         def_bool y
>         depends on OF
> +       depends on !NO_IOMEM

depends on HAS_IOMEM?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Aug. 19, 2016, 8:53 a.m. UTC | #2
On Wed, Aug 17, 2016 at 11:03 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> On Tue, Aug 16, 2016 at 10:06 AM, Linus Walleij
> <linus.walleij@linaro.org> wrote:
>> The UserMode (UM) Linux build was failing in gpiolib-of as it requires
>> ioremap()/iounmap() to exist, which is absent from UM. The non-existence
>> of IO memory is negatively defined as CONFIG_NO_IOMEM so put a reverse
>> dependency on !NO_IOMEM for OF_GPIO to fix the build.
>>
>> Cc: stable@vger.kernel.org
>> Reported-by: kbuild test robot <fengguang.wu@intel.com>
>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>> ---
>>  drivers/gpio/Kconfig | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
>> index 98dd47a30fc7..a6026f2fe7f5 100644
>> --- a/drivers/gpio/Kconfig
>> +++ b/drivers/gpio/Kconfig
>> @@ -50,6 +50,7 @@ config GPIO_DEVRES
>>  config OF_GPIO
>>         def_bool y
>>         depends on OF
>> +       depends on !NO_IOMEM
>
> depends on HAS_IOMEM?

Apparently not, and that is the scary thing.

HAS_IOMEM depends on !NO_IOMEM indeed but
it also selects GENERIC_IO, and AFAICT there are
some configs out there in the intersection between,
that have IOMEM but are not using GENERIC_IO,
tell me if I'm wrong :/

Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Geert Uytterhoeven Aug. 19, 2016, 9:16 a.m. UTC | #3
On Fri, Aug 19, 2016 at 10:53 AM, Linus Walleij
<linus.walleij@linaro.org> wrote:
> On Wed, Aug 17, 2016 at 11:03 AM, Geert Uytterhoeven
> <geert@linux-m68k.org> wrote:
>> On Tue, Aug 16, 2016 at 10:06 AM, Linus Walleij
>> <linus.walleij@linaro.org> wrote:
>>> The UserMode (UM) Linux build was failing in gpiolib-of as it requires
>>> ioremap()/iounmap() to exist, which is absent from UM. The non-existence
>>> of IO memory is negatively defined as CONFIG_NO_IOMEM so put a reverse
>>> dependency on !NO_IOMEM for OF_GPIO to fix the build.
>>>
>>> Cc: stable@vger.kernel.org
>>> Reported-by: kbuild test robot <fengguang.wu@intel.com>
>>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>>> ---
>>>  drivers/gpio/Kconfig | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
>>> index 98dd47a30fc7..a6026f2fe7f5 100644
>>> --- a/drivers/gpio/Kconfig
>>> +++ b/drivers/gpio/Kconfig
>>> @@ -50,6 +50,7 @@ config GPIO_DEVRES
>>>  config OF_GPIO
>>>         def_bool y
>>>         depends on OF
>>> +       depends on !NO_IOMEM
>>
>> depends on HAS_IOMEM?
>
> Apparently not, and that is the scary thing.
>
> HAS_IOMEM depends on !NO_IOMEM indeed but
> it also selects GENERIC_IO, and AFAICT there are
> some configs out there in the intersection between,
> that have IOMEM but are not using GENERIC_IO,
> tell me if I'm wrong :/

lib/Kconfig:

    config HAS_IOMEM
            bool
            depends on !NO_IOMEM
            select GENERIC_IO
            default y

Hence if NO_IOMEM is not set, HAS_IOMEM and GENERIC_IO are always set.

UML selects GENERIC_IO, but not HAS_IOMEM (it sets NO_IOMEM).

Perhaps you're confusing GENERIC_IO with GENERIC_IOMAP?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Aug. 19, 2016, 12:53 p.m. UTC | #4
On Fri, Aug 19, 2016 at 11:16 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> On Fri, Aug 19, 2016 at 10:53 AM, Linus Walleij
> <linus.walleij@linaro.org> wrote:
>> On Wed, Aug 17, 2016 at 11:03 AM, Geert Uytterhoeven
>> <geert@linux-m68k.org> wrote:
>>> On Tue, Aug 16, 2016 at 10:06 AM, Linus Walleij
>>> <linus.walleij@linaro.org> wrote:
>>>> The UserMode (UM) Linux build was failing in gpiolib-of as it requires
>>>> ioremap()/iounmap() to exist, which is absent from UM. The non-existence
>>>> of IO memory is negatively defined as CONFIG_NO_IOMEM so put a reverse
>>>> dependency on !NO_IOMEM for OF_GPIO to fix the build.
>>>>
>>>> Cc: stable@vger.kernel.org
>>>> Reported-by: kbuild test robot <fengguang.wu@intel.com>
>>>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>>>> ---
>>>>  drivers/gpio/Kconfig | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
>>>> index 98dd47a30fc7..a6026f2fe7f5 100644
>>>> --- a/drivers/gpio/Kconfig
>>>> +++ b/drivers/gpio/Kconfig
>>>> @@ -50,6 +50,7 @@ config GPIO_DEVRES
>>>>  config OF_GPIO
>>>>         def_bool y
>>>>         depends on OF
>>>> +       depends on !NO_IOMEM
>>>
>>> depends on HAS_IOMEM?
>>
>> Apparently not, and that is the scary thing.
>>
>> HAS_IOMEM depends on !NO_IOMEM indeed but
>> it also selects GENERIC_IO, and AFAICT there are
>> some configs out there in the intersection between,
>> that have IOMEM but are not using GENERIC_IO,
>> tell me if I'm wrong :/
>
> lib/Kconfig:
>
>     config HAS_IOMEM
>             bool
>             depends on !NO_IOMEM
>             select GENERIC_IO
>             default y
>
> Hence if NO_IOMEM is not set, HAS_IOMEM and GENERIC_IO are always set.
>
> UML selects GENERIC_IO, but not HAS_IOMEM (it sets NO_IOMEM).

Ah you're right.

OK sent a new version!

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 98dd47a30fc7..a6026f2fe7f5 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -50,6 +50,7 @@  config GPIO_DEVRES
 config OF_GPIO
 	def_bool y
 	depends on OF
+	depends on !NO_IOMEM
 
 config GPIO_ACPI
 	def_bool y