@@ -80,6 +80,16 @@ static irqreturn_t ef100_msi_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
+static int ef100_phy_probe(struct efx_nic *efx)
+{
+ /* stub: allocate the phy_data */
+ efx->phy_data = kzalloc(sizeof(struct efx_mcdi_phy_data), GFP_KERNEL);
+ if (!efx->phy_data)
+ return -ENOMEM;
+
+ return 0;
+}
+
/* Other
*/
@@ -196,6 +206,10 @@ static int ef100_probe_main(struct efx_nic *efx)
efx->max_vis = EF100_MAX_VIS;
+ rc = ef100_phy_probe(efx);
+ if (rc)
+ goto fail;
+
rc = efx_init_channels(efx);
if (rc)
goto fail;
We can't actually do the MCDI to probe it fully until we have working MCDI, which comes later, but we need efx->phy_data to be allocated so that when we get MCDI events the link-state change handler doesn't NULL-dereference. Signed-off-by: Edward Cree <ecree@solarflare.com> --- drivers/net/ethernet/sfc/ef100_nic.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)