diff options
author | Jean-Jacques Hiblot <jjhiblot@ti.com> | 2018-08-09 16:17:41 +0200 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2018-08-21 16:21:37 +0200 |
commit | c3211708cf721163733f03330bdb579d8c0f689b (patch) | |
tree | 74a9010dce505f97d25d2cd049cd4f7351ef56cc /net | |
parent | c73251eac199a54643ead1febde2db0b02970cc6 (diff) | |
download | u-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.c | 3 |
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) |