2022-06-24 07:54:29

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH net v1 1/2] net: asix: fix "can't send until first packet is send" issue

If cable is attached after probe sequence, the usbnet framework would
not automatically start processing RX packets except at least one
packet was transmitted.

On systems with any kind of address auto configuration this issue was
not detected, because some packets are send immediately after link state
is changed to "running".

With this patch we will notify usbnet about link status change provided by the
PHYlib.

Fixes: e532a096be0e ("net: usb: asix: ax88772: add phylib support")
Reported-by: Anton Lundin <[email protected]>
Signed-off-by: Oleksij Rempel <[email protected]>
---
drivers/net/usb/asix_common.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
index 632fa6c1d5e3..b4a1b7abcfc9 100644
--- a/drivers/net/usb/asix_common.c
+++ b/drivers/net/usb/asix_common.c
@@ -431,6 +431,7 @@ void asix_adjust_link(struct net_device *netdev)

asix_write_medium_mode(dev, mode, 0);
phy_print_status(phydev);
+ usbnet_link_change(dev, phydev->link, 0);
}

int asix_write_gpio(struct usbnet *dev, u16 value, int sleep, int in_pm)
--
2.30.2


2022-06-24 08:00:51

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH net v1 2/2] net: usb: asix: do not force pause frames support

We should respect link partner capabilities and not force flow control
support on every link. Even more, in current state the MAC driver do not
advertises pause support so we should not keep flow control enabled at
all.

Fixes: e532a096be0e ("net: usb: asix: ax88772: add phylib support")
Reported-by: Anton Lundin <[email protected]>
Signed-off-by: Oleksij Rempel <[email protected]>
---
drivers/net/usb/asix.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/usb/asix.h b/drivers/net/usb/asix.h
index 2c81236c6c7c..45d3cc5cc355 100644
--- a/drivers/net/usb/asix.h
+++ b/drivers/net/usb/asix.h
@@ -126,8 +126,7 @@
AX_MEDIUM_RE)

#define AX88772_MEDIUM_DEFAULT \
- (AX_MEDIUM_FD | AX_MEDIUM_RFC | \
- AX_MEDIUM_TFC | AX_MEDIUM_PS | \
+ (AX_MEDIUM_FD | AX_MEDIUM_PS | \
AX_MEDIUM_AC | AX_MEDIUM_RE)

/* AX88772 & AX88178 RX_CTL values */
--
2.30.2

2022-06-28 04:53:28

by Oleksij Rempel

[permalink] [raw]
Subject: Re: [PATCH net v1 2/2] net: usb: asix: do not force pause frames support

On Fri, Jun 24, 2022 at 09:51:39AM +0200, Oleksij Rempel wrote:
> We should respect link partner capabilities and not force flow control
> support on every link. Even more, in current state the MAC driver do not
> advertises pause support so we should not keep flow control enabled at
> all.
>
> Fixes: e532a096be0e ("net: usb: asix: ax88772: add phylib support")
> Reported-by: Anton Lundin <[email protected]>
> Signed-off-by: Oleksij Rempel <[email protected]>

In different mail thread Anton reported as tested.
Tested-by: Anton Lundin <[email protected]>

> ---
> drivers/net/usb/asix.h | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/net/usb/asix.h b/drivers/net/usb/asix.h
> index 2c81236c6c7c..45d3cc5cc355 100644
> --- a/drivers/net/usb/asix.h
> +++ b/drivers/net/usb/asix.h
> @@ -126,8 +126,7 @@
> AX_MEDIUM_RE)
>
> #define AX88772_MEDIUM_DEFAULT \
> - (AX_MEDIUM_FD | AX_MEDIUM_RFC | \
> - AX_MEDIUM_TFC | AX_MEDIUM_PS | \
> + (AX_MEDIUM_FD | AX_MEDIUM_PS | \
> AX_MEDIUM_AC | AX_MEDIUM_RE)
>
> /* AX88772 & AX88178 RX_CTL values */
> --
> 2.30.2
>
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |

2022-06-28 05:11:03

by Oleksij Rempel

[permalink] [raw]
Subject: Re: [PATCH net v1 1/2] net: asix: fix "can't send until first packet is send" issue

On Fri, Jun 24, 2022 at 09:51:38AM +0200, Oleksij Rempel wrote:
> If cable is attached after probe sequence, the usbnet framework would
> not automatically start processing RX packets except at least one
> packet was transmitted.
>
> On systems with any kind of address auto configuration this issue was
> not detected, because some packets are send immediately after link state
> is changed to "running".
>
> With this patch we will notify usbnet about link status change provided by the
> PHYlib.
>
> Fixes: e532a096be0e ("net: usb: asix: ax88772: add phylib support")
> Reported-by: Anton Lundin <[email protected]>
> Signed-off-by: Oleksij Rempel <[email protected]>

In different mail thread Anton reported as tested.
Tested-by: Anton Lundin <[email protected]>

> ---
> drivers/net/usb/asix_common.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
> index 632fa6c1d5e3..b4a1b7abcfc9 100644
> --- a/drivers/net/usb/asix_common.c
> +++ b/drivers/net/usb/asix_common.c
> @@ -431,6 +431,7 @@ void asix_adjust_link(struct net_device *netdev)
>
> asix_write_medium_mode(dev, mode, 0);
> phy_print_status(phydev);
> + usbnet_link_change(dev, phydev->link, 0);
> }
>
> int asix_write_gpio(struct usbnet *dev, u16 value, int sleep, int in_pm)
> --
> 2.30.2
>
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |

2022-06-28 05:16:45

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net v1 1/2] net: asix: fix "can't send until first packet is send" issue

Hello:

This series was applied to netdev/net.git (master)
by Jakub Kicinski <[email protected]>:

On Fri, 24 Jun 2022 09:51:38 +0200 you wrote:
> If cable is attached after probe sequence, the usbnet framework would
> not automatically start processing RX packets except at least one
> packet was transmitted.
>
> On systems with any kind of address auto configuration this issue was
> not detected, because some packets are send immediately after link state
> is changed to "running".
>
> [...]

Here is the summary with links:
- [net,v1,1/2] net: asix: fix "can't send until first packet is send" issue
https://git.kernel.org/netdev/net/c/805206e66fab
- [net,v1,2/2] net: usb: asix: do not force pause frames support
https://git.kernel.org/netdev/net/c/ce95ab775f8d

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


2022-06-28 08:02:08

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH net v1 1/2] net: asix: fix "can't send until first packet is send" issue

Hi Oleksij,

subject of this patch looks strange. It should probably read "can't
receive until first packet is sent".

Regards,
Lucas

Am Dienstag, dem 28.06.2022 um 06:49 +0200 schrieb Oleksij Rempel:
> On Fri, Jun 24, 2022 at 09:51:38AM +0200, Oleksij Rempel wrote:
> > If cable is attached after probe sequence, the usbnet framework would
> > not automatically start processing RX packets except at least one
> > packet was transmitted.
> >
> > On systems with any kind of address auto configuration this issue was
> > not detected, because some packets are send immediately after link state
> > is changed to "running".
> >
> > With this patch we will notify usbnet about link status change provided by the
> > PHYlib.
> >
> > Fixes: e532a096be0e ("net: usb: asix: ax88772: add phylib support")
> > Reported-by: Anton Lundin <[email protected]>
> > Signed-off-by: Oleksij Rempel <[email protected]>
>
> In different mail thread Anton reported as tested.
> Tested-by: Anton Lundin <[email protected]>
>
> > ---
> > drivers/net/usb/asix_common.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
> > index 632fa6c1d5e3..b4a1b7abcfc9 100644
> > --- a/drivers/net/usb/asix_common.c
> > +++ b/drivers/net/usb/asix_common.c
> > @@ -431,6 +431,7 @@ void asix_adjust_link(struct net_device *netdev)
> >
> > asix_write_medium_mode(dev, mode, 0);
> > phy_print_status(phydev);
> > + usbnet_link_change(dev, phydev->link, 0);
> > }
> >
> > int asix_write_gpio(struct usbnet *dev, u16 value, int sleep, int in_pm)
> > --
> > 2.30.2
> >
> >
>


2022-06-28 08:19:57

by Oleksij Rempel

[permalink] [raw]
Subject: Re: [PATCH net v1 1/2] net: asix: fix "can't send until first packet is send" issue

On Tue, Jun 28, 2022 at 09:50:42AM +0200, Lucas Stach wrote:
> Hi Oleksij,
>
> subject of this patch looks strange. It should probably read "can't
> receive until first packet is sent".

rigth. But it is already taken.


> Regards,
> Lucas
>
> Am Dienstag, dem 28.06.2022 um 06:49 +0200 schrieb Oleksij Rempel:
> > On Fri, Jun 24, 2022 at 09:51:38AM +0200, Oleksij Rempel wrote:
> > > If cable is attached after probe sequence, the usbnet framework would
> > > not automatically start processing RX packets except at least one
> > > packet was transmitted.
> > >
> > > On systems with any kind of address auto configuration this issue was
> > > not detected, because some packets are send immediately after link state
> > > is changed to "running".
> > >
> > > With this patch we will notify usbnet about link status change provided by the
> > > PHYlib.
> > >
> > > Fixes: e532a096be0e ("net: usb: asix: ax88772: add phylib support")
> > > Reported-by: Anton Lundin <[email protected]>
> > > Signed-off-by: Oleksij Rempel <[email protected]>
> >
> > In different mail thread Anton reported as tested.
> > Tested-by: Anton Lundin <[email protected]>
> >
> > > ---
> > > drivers/net/usb/asix_common.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
> > > index 632fa6c1d5e3..b4a1b7abcfc9 100644
> > > --- a/drivers/net/usb/asix_common.c
> > > +++ b/drivers/net/usb/asix_common.c
> > > @@ -431,6 +431,7 @@ void asix_adjust_link(struct net_device *netdev)
> > >
> > > asix_write_medium_mode(dev, mode, 0);
> > > phy_print_status(phydev);
> > > + usbnet_link_change(dev, phydev->link, 0);
> > > }
> > >
> > > int asix_write_gpio(struct usbnet *dev, u16 value, int sleep, int in_pm)
> > > --
> > > 2.30.2
> > >
> > >
> >
>
>
>
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |