diff mbox series

mptcp: MPTCP_IPV6 should depend on IPV6 instead of selecting it

Message ID 20201020073839.29226-1-geert@linux-m68k.org
State Deferred, archived
Delegated to: Matthieu Baerts
Headers show
Series mptcp: MPTCP_IPV6 should depend on IPV6 instead of selecting it | expand

Commit Message

Geert Uytterhoeven Oct. 20, 2020, 7:38 a.m. UTC
MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
is done for all other IPv6 features.

Fixes: f870fa0b5768842c ("mptcp: Add MPTCP socket stubs")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 net/mptcp/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Matthieu Baerts Oct. 20, 2020, 9:26 a.m. UTC | #1
Hi Geert,

Thank you for the patch!

On 20/10/2020 09:38, Geert Uytterhoeven wrote:
> MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
> not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
> is done for all other IPv6 features.

Here again, the intension was to select IPv6 from MPTCP but I understand 
the issue: if we enable MPTCP, we will select IPV6 as well by default. 
Maybe not what we want on some embedded devices with very limited memory 
where IPV6 is already off. We should instead enable MPTCP_IPV6 only if 
IPV6=y. LGTM then!

Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>

Cheers,
Matt
Jakub Kicinski Oct. 21, 2020, 3:56 a.m. UTC | #2
On Tue, 20 Oct 2020 11:26:34 +0200 Matthieu Baerts wrote:
> On 20/10/2020 09:38, Geert Uytterhoeven wrote:
> > MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
> > not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
> > is done for all other IPv6 features.  
> 
> Here again, the intension was to select IPv6 from MPTCP but I understand 
> the issue: if we enable MPTCP, we will select IPV6 as well by default. 
> Maybe not what we want on some embedded devices with very limited memory 
> where IPV6 is already off. We should instead enable MPTCP_IPV6 only if 
> IPV6=y. LGTM then!
> 
> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>

Applied, thanks!
Geert Uytterhoeven Oct. 21, 2020, 9:43 a.m. UTC | #3
Hi Jakub,

On Wed, Oct 21, 2020 at 5:56 AM Jakub Kicinski <kuba@kernel.org> wrote:
> On Tue, 20 Oct 2020 11:26:34 +0200 Matthieu Baerts wrote:
> > On 20/10/2020 09:38, Geert Uytterhoeven wrote:
> > > MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
> > > not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
> > > is done for all other IPv6 features.
> >
> > Here again, the intension was to select IPv6 from MPTCP but I understand
> > the issue: if we enable MPTCP, we will select IPV6 as well by default.
> > Maybe not what we want on some embedded devices with very limited memory
> > where IPV6 is already off. We should instead enable MPTCP_IPV6 only if
> > IPV6=y. LGTM then!
> >
> > Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
>
> Applied, thanks!

My apologies, this fails for the CONFIG_IPV6=m and CONFIG_MPTCP=y
case:
  + error: net/mptcp/protocol.o: undefined reference to
`inet6_getname':  => .rodata+0x19c)
  + error: net/mptcp/protocol.o: undefined reference to `inet6_ioctl':
 => .rodata+0x1a4)
  + error: net/mptcp/protocol.o: undefined reference to
`inet6_recvmsg':  => .rodata+0x1c4)
  + error: net/mptcp/protocol.o: undefined reference to
`inet6_release':  => .rodata+0x188)
  + error: net/mptcp/protocol.o: undefined reference to
`inet6_sendmsg':  => .rodata+0x1c0)
  + error: protocol.c: undefined reference to `inet6_destroy_sock':
=> .text+0x4994)
  + error: protocol.c: undefined reference to
`inet6_register_protosw':  => .init.text+0xc6)
  + error: protocol.c: undefined reference to `inet6_stream_ops':  =>
.text+0x2bb0)
  + error: protocol.c: undefined reference to `tcpv6_prot':  => .text+0x2ba8)
  + error: subflow.c: undefined reference to
`tcp_request_sock_ipv6_ops':  => .text+0x8e2)
  + error: undefined reference to `ipv6_specific':  => (.init.text+0xea)
  + error: undefined reference to `tcp_request_sock_ipv6_ops':  =>
(.init.text+0xc4)

So those issues have to be fixed first

Gr{oetje,eeting}s,

                        Geert
Matthieu Baerts Oct. 21, 2020, 9:47 a.m. UTC | #4
Hi Geert,

On 21/10/2020 11:43, Geert Uytterhoeven wrote:
> Hi Jakub,
> 
> On Wed, Oct 21, 2020 at 5:56 AM Jakub Kicinski <kuba@kernel.org> wrote:
>> On Tue, 20 Oct 2020 11:26:34 +0200 Matthieu Baerts wrote:
>>> On 20/10/2020 09:38, Geert Uytterhoeven wrote:
>>>> MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
>>>> not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
>>>> is done for all other IPv6 features.
>>>
>>> Here again, the intension was to select IPv6 from MPTCP but I understand
>>> the issue: if we enable MPTCP, we will select IPV6 as well by default.
>>> Maybe not what we want on some embedded devices with very limited memory
>>> where IPV6 is already off. We should instead enable MPTCP_IPV6 only if
>>> IPV6=y. LGTM then!
>>>
>>> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
>>
>> Applied, thanks!
> 
> My apologies, this fails for the CONFIG_IPV6=m and CONFIG_MPTCP=y
> case:

Good point, MPTCP cannot be compiled as a module (like TCP). It should 
then depends on IPV6=y. I thought it would be the case.

Do you want me to send a patch or do you already have one?

Cheers,
Matt
Geert Uytterhoeven Oct. 21, 2020, 9:52 a.m. UTC | #5
Hi Matthieu,

On Wed, Oct 21, 2020 at 11:47 AM Matthieu Baerts
<matthieu.baerts@tessares.net> wrote:
> On 21/10/2020 11:43, Geert Uytterhoeven wrote:
> > On Wed, Oct 21, 2020 at 5:56 AM Jakub Kicinski <kuba@kernel.org> wrote:
> >> On Tue, 20 Oct 2020 11:26:34 +0200 Matthieu Baerts wrote:
> >>> On 20/10/2020 09:38, Geert Uytterhoeven wrote:
> >>>> MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
> >>>> not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
> >>>> is done for all other IPv6 features.
> >>>
> >>> Here again, the intension was to select IPv6 from MPTCP but I understand
> >>> the issue: if we enable MPTCP, we will select IPV6 as well by default.
> >>> Maybe not what we want on some embedded devices with very limited memory
> >>> where IPV6 is already off. We should instead enable MPTCP_IPV6 only if
> >>> IPV6=y. LGTM then!
> >>>
> >>> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
> >>
> >> Applied, thanks!
> >
> > My apologies, this fails for the CONFIG_IPV6=m and CONFIG_MPTCP=y
> > case:
>
> Good point, MPTCP cannot be compiled as a module (like TCP). It should
> then depends on IPV6=y. I thought it would be the case.
>
> Do you want me to send a patch or do you already have one?

I don't have a patch yet, so feel free to send one.

Gr{oetje,eeting}s,

                        Geert
Matthieu Baerts Oct. 21, 2020, 10:54 a.m. UTC | #6
Hi Geert,

On 21/10/2020 11:52, Geert Uytterhoeven wrote:
> Hi Matthieu,
> 
> On Wed, Oct 21, 2020 at 11:47 AM Matthieu Baerts
> <matthieu.baerts@tessares.net> wrote:
>> On 21/10/2020 11:43, Geert Uytterhoeven wrote:
>>> On Wed, Oct 21, 2020 at 5:56 AM Jakub Kicinski <kuba@kernel.org> wrote:
>>>> On Tue, 20 Oct 2020 11:26:34 +0200 Matthieu Baerts wrote:
>>>>> On 20/10/2020 09:38, Geert Uytterhoeven wrote:
>>>>>> MPTCP_IPV6 selects IPV6, thus enabling an optional feature the user may
>>>>>> not want to enable.  Fix this by making MPTCP_IPV6 depend on IPV6, like
>>>>>> is done for all other IPv6 features.
>>>>>
>>>>> Here again, the intension was to select IPv6 from MPTCP but I understand
>>>>> the issue: if we enable MPTCP, we will select IPV6 as well by default.
>>>>> Maybe not what we want on some embedded devices with very limited memory
>>>>> where IPV6 is already off. We should instead enable MPTCP_IPV6 only if
>>>>> IPV6=y. LGTM then!
>>>>>
>>>>> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
>>>>
>>>> Applied, thanks!
>>>
>>> My apologies, this fails for the CONFIG_IPV6=m and CONFIG_MPTCP=y
>>> case:
>>
>> Good point, MPTCP cannot be compiled as a module (like TCP). It should
>> then depends on IPV6=y. I thought it would be the case.
>>
>> Do you want me to send a patch or do you already have one?
> 
> I don't have a patch yet, so feel free to send one.

Just did:

https://lore.kernel.org/netdev/20201021105154.628257-1-matthieu.baerts@tessares.net/

Groetjes,
Matt
diff mbox series

Patch

diff --git a/net/mptcp/Kconfig b/net/mptcp/Kconfig
index abb0a992d4a0855a..8936604b3bf9d76d 100644
--- a/net/mptcp/Kconfig
+++ b/net/mptcp/Kconfig
@@ -19,7 +19,7 @@  config INET_MPTCP_DIAG
 
 config MPTCP_IPV6
 	bool "MPTCP: IPv6 support for Multipath TCP"
-	select IPV6
+	depends on IPV6
 	default y
 
 config MPTCP_KUNIT_TESTS