On 9/14/26 18:53, Andrew Lunn wrote:
quoted
quoted
+static const struct net_device_ops ax88179a_netdev_ops = {
+ .ndo_open = usbnet_open,
+ .ndo_stop = usbnet_stop,
+ .ndo_start_xmit = usbnet_start_xmit,
+ .ndo_tx_timeout = usbnet_tx_timeout,
+ .ndo_get_stats64 = dev_get_tstats64,
+ .ndo_change_mtu = ax88179_change_mtu,
+ .ndo_set_mac_address = ax88179_set_mac_addr,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_eth_ioctl = usbnet_mii_ioctl,
dev->mii.mdio_read is never initialized for ax88179a, so
dev->mii.mdio_read()
through usbnet_mii_ioctl() is a NULL function pointer.
Something like:
static int ax88179a_mii_ioctl(...)
{
struct ax88179_data *data = netdev2data(net);
return phylink_mii_ioctl(data->phylink, ifr, cmd);
}
Is this transitory? Does a later patch fix this up?
The aim is to remove all dev->mii accesses.
No, unfortunately, this is an mii-leftover. I thought that
usbnet was emulating the mii ioctl somehow, not that it was expecting
to be able to use a mii_mdio_read. I will remove the
>>> + .ndo_eth_ioctl = usbnet_mii_ioctl,
line, entirely.
Birger