Re: [v2][PATCH 1/1] net: phy: Add link between phy dev and mac dev

From: Wang, Xiaolei
Date: Sun Nov 27 2022 - 22:19:11 EST



On 11/28/2022 4:30 AM, Florian Fainelli wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know the content is safe.

On 11/25/2022 5:41 PM, Wang, Xiaolei wrote:
add Florian

thanks

xiaolei

On 11/26/2022 5:43 AM, Andrew Lunn wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender
and know the content is safe.

On Fri, Nov 25, 2022 at 12:12:06PM +0800, Xiaolei Wang wrote:
If the external phy used by current mac interface is
managed by another mac interface, it means that this
network port cannot work independently, especially
when the system suspend and resume, the following
trace may appear, so we should create a device link
between phy dev and mac dev.

   WARNING: CPU: 0 PID: 24 at drivers/net/phy/phy.c:983
phy_error+0x20/0x68
   Modules linked in:
   CPU: 0 PID: 24 Comm: kworker/0:2 Not tainted
6.1.0-rc3-00011-g5aaef24b5c6d-dirty #34
   Hardware name: Freescale i.MX6 SoloX (Device Tree)
   Workqueue: events_power_efficient phy_state_machine
   unwind_backtrace from show_stack+0x10/0x14
   show_stack from dump_stack_lvl+0x68/0x90
   dump_stack_lvl from __warn+0xb4/0x24c
   __warn from warn_slowpath_fmt+0x5c/0xd8
   warn_slowpath_fmt from phy_error+0x20/0x68
   phy_error from phy_state_machine+0x22c/0x23c
   phy_state_machine from process_one_work+0x288/0x744
   process_one_work from worker_thread+0x3c/0x500
   worker_thread from kthread+0xf0/0x114
   kthread from ret_from_fork+0x14/0x28
   Exception stack(0xf0951fb0 to 0xf0951ff8)

Signed-off-by: Xiaolei Wang <xiaolei.wang@xxxxxxxxxxxxx>
This needs Florians review, since for v1 he thinks it will cause
regressions.

Please give me until Tuesday to give this patch some proper testing, thanks!

Hi

Test on imx6sx
Before adding the patch:

ifconfig eth1 up
echo enabled > /sys/class/tty/ttymxc0/power/wakeup
echo mem > /sys/power/state

The following problems arise:

WARNING: CPU: 0 PID: 24 at drivers/net/phy/phy.c:983
phy_error+0x20/0x68
   Modules linked in:
   CPU: 0 PID: 24 Comm: kworker/0:2 Not tainted
6.1.0-rc3-00011-g5aaef24b5c6d-dirty #34
   Hardware name: Freescale i.MX6 SoloX (Device Tree)
   Workqueue: events_power_efficient phy_state_machine
   unwind_backtrace from show_stack+0x10/0x14
   show_stack from dump_stack_lvl+0x68/0x90
   dump_stack_lvl from __warn+0xb4/0x24c
   __warn from warn_slowpath_fmt+0x5c/0xd8
   warn_slowpath_fmt from phy_error+0x20/0x68
   phy_error from phy_state_machine+0x22c/0x23c
   phy_state_machine from process_one_work+0x288/0x744
   process_one_work from worker_thread+0x3c/0x500
   worker_thread from kthread+0xf0/0x114
   kthread from ret_from_fork+0x14/0x28
   Exception stack (0xf0951fb0 to 0xf0951ff8)

After applying the patch:

ifconfig eth1 up

echo enabled > /sys/class/tty/ttymxc0/power/wakeup
echo mem > /sys/power/state

eth1 will link normally

Since I don't have more boards here, I haven't tested and analyzed the different situations of other boards. If you need more test records, please wait, I will collect some hardware to verify different situations.

thanks

xiaolei


--
Florian