Re: [PATCH net 1/2] net: enetc: allocate vf_state during PF probes

From: Vladimir Oltean
Date: Fri Nov 01 2024 - 07:37:53 EST


On Thu, Oct 31, 2024 at 02:02:46PM +0800, Wei Fang wrote:
> In the previous implementation, vf_state is allocated memory only when VF
> is enabled. However, net_device_ops::ndo_set_vf_mac() may be called before
> VF is enabled to configure the MAC address of VF. If this is the case,
> enetc_pf_set_vf_mac() will access vf_state, resulting in access to a null
> pointer. The simplified error log is as follows.
>
> root@ls1028ardb:~# ip link set eno0 vf 1 mac 00:0c:e7:66:77:89
> [ 173.543315] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
> [ 173.637254] pc : enetc_pf_set_vf_mac+0x3c/0x80 Message from sy
> [ 173.641973] lr : do_setlink+0x4a8/0xec8
> [ 173.732292] Call trace:
> [ 173.734740] enetc_pf_set_vf_mac+0x3c/0x80
> [ 173.738847] __rtnl_newlink+0x530/0x89c
> [ 173.742692] rtnl_newlink+0x50/0x7c
> [ 173.746189] rtnetlink_rcv_msg+0x128/0x390
> [ 173.750298] netlink_rcv_skb+0x60/0x130
> [ 173.754145] rtnetlink_rcv+0x18/0x24
> [ 173.757731] netlink_unicast+0x318/0x380
> [ 173.761665] netlink_sendmsg+0x17c/0x3c8
>
> Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
> Signed-off-by: Wei Fang <wei.fang@xxxxxxx>
> ---

Reviewed-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>
Tested-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>