dm: eth: Test 'ethrotate' before changing current ethernet device
In eth_current_changed(), the call to eth_get_dev() below has a side effect of rotating ethernet device if uc_priv->current == NULL. This is not what we want when 'ethrotate' variable is 'no'. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
e7cc8d11ad
commit
a671c4f2be
11
net/eth.c
11
net/eth.c
@ -1039,6 +1039,17 @@ int eth_receive(void *packet, int length)
|
|||||||
static void eth_current_changed(void)
|
static void eth_current_changed(void)
|
||||||
{
|
{
|
||||||
char *act = getenv("ethact");
|
char *act = getenv("ethact");
|
||||||
|
char *ethrotate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The call to eth_get_dev() below has a side effect of rotating
|
||||||
|
* ethernet device if uc_priv->current == NULL. This is not what
|
||||||
|
* we want when 'ethrotate' variable is 'no'.
|
||||||
|
*/
|
||||||
|
ethrotate = getenv("ethrotate");
|
||||||
|
if ((ethrotate != NULL) && (strcmp(ethrotate, "no") == 0))
|
||||||
|
return;
|
||||||
|
|
||||||
/* update current ethernet name */
|
/* update current ethernet name */
|
||||||
if (eth_get_dev()) {
|
if (eth_get_dev()) {
|
||||||
if (act == NULL || strcmp(act, eth_get_name()) != 0)
|
if (act == NULL || strcmp(act, eth_get_name()) != 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user