summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorJean-Jacques Hiblot <jjhiblot@ti.com>2018-08-09 16:17:41 +0200
committerMarek Vasut <marex@denx.de>2018-08-21 16:21:37 +0200
commitc3211708cf721163733f03330bdb579d8c0f689b (patch)
tree74a9010dce505f97d25d2cd049cd4f7351ef56cc /net
parentc73251eac199a54643ead1febde2db0b02970cc6 (diff)
downloadu-boot-c3211708cf721163733f03330bdb579d8c0f689b.tar.gz
u-boot-c3211708cf721163733f03330bdb579d8c0f689b.tar.bz2
u-boot-c3211708cf721163733f03330bdb579d8c0f689b.zip
net: eth-uclass: Fix for DM USB ethernet support
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>
Diffstat (limited to 'net')
-rw-r--r--net/eth-uclass.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index fa3f5497a2..91d861be41 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)