sfc: Clear I2C adapter structure in falcon_remove_nic()
i2c_del_adapter() leaves dangling pointers in the structure. If we retry the NIC probe and pass the structure to i2c_add_adapter() again it will lead to an oops unless we clear it first. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
115122afc5
commit
8c870379d2
|
@ -3114,8 +3114,10 @@ void falcon_remove_nic(struct efx_nic *efx)
|
|||
struct falcon_nic_data *nic_data = efx->nic_data;
|
||||
int rc;
|
||||
|
||||
/* Remove I2C adapter and clear it in preparation for a retry */
|
||||
rc = i2c_del_adapter(&efx->i2c_adap);
|
||||
BUG_ON(rc);
|
||||
memset(&efx->i2c_adap, 0, sizeof(efx->i2c_adap));
|
||||
|
||||
falcon_remove_spi_devices(efx);
|
||||
falcon_free_buffer(efx, &efx->irq_status);
|
||||
|
|
Loading…
Reference in New Issue