net/route: Fix an error in cache list management.

This commit is contained in:
Gregory Nutt 2017-10-02 08:10:12 -06:00
parent 152164dcaf
commit 6ccb974910

View File

@ -577,24 +577,24 @@ int net_addcache_ipv4(FAR struct net_route_ipv4_s *route)
* list, then do nothing. It is already the most recently used. * list, then do nothing. It is already the most recently used.
*/ */
if (prev == NULL) if (prev == NULL)
{ {
net_unlock_ipv4_cache(); net_unlock_ipv4_cache();
return OK; return OK;
} }
/* Otherwise, remove the cache entry from the list */ /* Otherwise, remove the cache entry from the middle or end of
* the list.
*/
if (g_ipv4_cache.tail == cache) prev->flink = cache->flink;
{ if (g_ipv4_cache.tail == cache)
g_ipv4_cache.tail = prev; {
} g_ipv4_cache.tail = prev;
else }
{
prev->flink = cache->flink;
}
cache->flink = NULL; cache->flink = NULL;
break;
} }
} }
@ -657,24 +657,24 @@ int net_addcache_ipv6(FAR struct net_route_ipv6_s *route)
* list, then do nothing. It is already the most recently used. * list, then do nothing. It is already the most recently used.
*/ */
if (prev == NULL) if (prev == NULL)
{ {
net_unlock_ipv6_cache(); net_unlock_ipv6_cache();
return OK; return OK;
} }
/* Otherwise, remove the cache entry from the list */ /* Otherwise, remove the cache entry from the middle or end of
* the list.
*/
if (g_ipv6_cache.tail == cache) prev->flink = cache->flink;
{ if (g_ipv6_cache.tail == cache)
g_ipv6_cache.tail = prev; {
} g_ipv6_cache.tail = prev;
else }
{
prev->flink = cache->flink;
}
cache->flink = NULL; cache->flink = NULL;
break;
} }
} }