[fix] iperf speed test have been stable.
This commit is contained in:
parent
6d89a9f120
commit
154d73a4e7
|
@ -27,6 +27,7 @@ struct eth_device
|
|||
rt_uint16_t flags;
|
||||
rt_uint8_t link_changed;
|
||||
rt_uint8_t link_status;
|
||||
rt_uint8_t rx_notice; /* avoid send the same mail to mailbox */
|
||||
|
||||
/* eth device interface */
|
||||
struct pbuf* (*eth_rx)(rt_device_t dev);
|
||||
|
|
|
@ -550,9 +550,15 @@ rt_err_t eth_device_init(struct eth_device * dev, const char *name)
|
|||
rt_err_t eth_device_ready(struct eth_device* dev)
|
||||
{
|
||||
if (dev->netif)
|
||||
/* post message to Ethernet thread */
|
||||
{
|
||||
if(dev->rx_notice == RT_FALSE)
|
||||
{
|
||||
dev->rx_notice = RT_TRUE;
|
||||
return rt_mb_send(ð_rx_thread_mb, (rt_uint32_t)dev);
|
||||
else
|
||||
}
|
||||
/* post message to Ethernet thread */
|
||||
}
|
||||
|
||||
return ERR_OK; /* netif is not initialized yet, just return. */
|
||||
}
|
||||
|
||||
|
@ -646,9 +652,10 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
else
|
||||
netifapi_netif_set_link_down(device->netif);
|
||||
}
|
||||
device->rx_notice = RT_FALSE;
|
||||
|
||||
/* receive all of buffer */
|
||||
do
|
||||
while(1)
|
||||
{
|
||||
if(device->eth_rx == RT_NULL) break;
|
||||
|
||||
|
@ -664,7 +671,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
}
|
||||
}
|
||||
else break;
|
||||
}while(rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t *)&device, RT_WAITING_NO) == RT_EOK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -27,6 +27,7 @@ struct eth_device
|
|||
rt_uint16_t flags;
|
||||
rt_uint8_t link_changed;
|
||||
rt_uint8_t link_status;
|
||||
rt_uint8_t rx_notice; /* avoid send the same mail to mailbox */
|
||||
|
||||
/* eth device interface */
|
||||
struct pbuf* (*eth_rx)(rt_device_t dev);
|
||||
|
|
|
@ -599,9 +599,15 @@ void eth_device_deinit(struct eth_device *dev)
|
|||
rt_err_t eth_device_ready(struct eth_device* dev)
|
||||
{
|
||||
if (dev->netif)
|
||||
{
|
||||
if(dev->rx_notice == RT_FALSE)
|
||||
{
|
||||
dev->rx_notice = RT_TRUE;
|
||||
return rt_mb_send(ð_rx_thread_mb, (rt_uint32_t)dev);
|
||||
}
|
||||
/* post message to Ethernet thread */
|
||||
return rt_mb_send(ð_rx_thread_mb, (rt_ubase_t)dev);
|
||||
else
|
||||
}
|
||||
|
||||
return ERR_OK; /* netif is not initialized yet, just return. */
|
||||
}
|
||||
|
||||
|
@ -695,9 +701,10 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
else
|
||||
netifapi_netif_set_link_down(device->netif);
|
||||
}
|
||||
device->rx_notice = RT_FALSE;
|
||||
|
||||
/* receive all of buffer */
|
||||
do
|
||||
while(1)
|
||||
{
|
||||
if(device->eth_rx == RT_NULL) break;
|
||||
|
||||
|
@ -713,7 +720,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
}
|
||||
}
|
||||
else break;
|
||||
}while(rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t *)&device, RT_WAITING_NO) == RT_EOK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -27,6 +27,7 @@ struct eth_device
|
|||
rt_uint16_t flags;
|
||||
rt_uint8_t link_changed;
|
||||
rt_uint8_t link_status;
|
||||
rt_uint8_t rx_notice; /* avoid send the same mail to mailbox */
|
||||
|
||||
/* eth device interface */
|
||||
struct pbuf* (*eth_rx)(rt_device_t dev);
|
||||
|
|
|
@ -601,9 +601,15 @@ void eth_device_deinit(struct eth_device *dev)
|
|||
rt_err_t eth_device_ready(struct eth_device* dev)
|
||||
{
|
||||
if (dev->netif)
|
||||
/* post message to Ethernet thread */
|
||||
{
|
||||
if(dev->rx_notice == RT_FALSE)
|
||||
{
|
||||
dev->rx_notice = RT_TRUE;
|
||||
return rt_mb_send(ð_rx_thread_mb, (rt_uint32_t)dev);
|
||||
else
|
||||
}
|
||||
/* post message to Ethernet thread */
|
||||
}
|
||||
|
||||
return ERR_OK; /* netif is not initialized yet, just return. */
|
||||
}
|
||||
|
||||
|
@ -697,9 +703,10 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
else
|
||||
netifapi_netif_set_link_down(device->netif);
|
||||
}
|
||||
device->rx_notice = RT_FALSE;
|
||||
|
||||
/* receive all of buffer */
|
||||
do
|
||||
while(1)
|
||||
{
|
||||
if(device->eth_rx == RT_NULL) break;
|
||||
|
||||
|
@ -715,7 +722,7 @@ static void eth_rx_thread_entry(void* parameter)
|
|||
}
|
||||
}
|
||||
else break;
|
||||
}while(rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t *)&device, RT_WAITING_NO) == RT_EOK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue