Message ID | 1528108297-18442-3-git-send-email-jjhiblot@ti.com |
---|---|
State | Superseded |
Delegated to: | Lukasz Majewski |
Headers | show |
Series | Fixes/Addition to use the USB Ethernet gadget with the DWC3 gadget controller | expand |
On Mon, Jun 4, 2018 at 5:31 AM, Jean-Jacques Hiblot <jjhiblot@ti.com> wrote: > When a USB ethernet device is halted, the device driver is removed. When > this happens the uclass private memory is freed and uclass_priv is set to > NULL. This causes a data abort when uclass_priv->state is then set to > ETH_STATE_PASSIVE. > > Fix it by checking if uclass_priv is NULL before setting uclass_priv->state > > Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
diff --git a/net/eth-uclass.c b/net/eth-uclass.c index d20a1cf..f71b5cd 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -312,7 +312,8 @@ void eth_halt(void) eth_get_ops(current)->stop(current); priv = current->uclass_priv; - priv->state = ETH_STATE_PASSIVE; + if (priv) + priv->state = ETH_STATE_PASSIVE; } int eth_is_active(struct udevice *dev)
When a USB ethernet device is halted, the device driver is removed. When this happens the uclass private memory is freed and uclass_priv is set to NULL. This causes a data abort when uclass_priv->state is then set to ETH_STATE_PASSIVE. Fix it by checking if uclass_priv is NULL before setting uclass_priv->state Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> --- net/eth-uclass.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)