to the particular buffer (and the last rewrite of pbuf_free), changed most
pbuf_ref_chain() calls back to pbuf_ref(). I think this was causing some pbuf
leaks.
instead of PBUF_ROM. This addition allows support of copy-on-demand where the
lower layers can call pbuf_unref() which tests for any PBUF_REF buffers and
replaces them with PBUF_POOL buffers. This is now used
everywhere. pbuf_unref() is called in ARP queueing and in the coldfire
driver, which puts frames on a DMA queue and frees them later.
Along with this change pbuf_free() now goes through the entire chain of
buffers and tests all the ref counters, not just the first one. Generally now
pbuf_ref_chain() should be called and not pbuf_ref(). This change was made
because it is possible for the head of the pbuf chain to have a different
count than the payload pbuf which might have been passed by the application.
Coldfire ethernet driver also had some minor other updates and STATS was
changed to LWIP_STATS.
interrupts. In unixsim this is implemented by using a mutex. Uses #define
SYS_LIGHTWEIGHT_PROT to enable. It is enabled in coldfire by default, but
disabled in unixsim.
Fixes bug 2005 if you enable SYS_LIGHTWEIGHT_PROT. So the bug is closed.
Fixed the following bugs:
2366: For coldfire port: pbuf is freed twice when no room on
output ring.
2368: Coldfire port: buffer cleanup in 5272 driver causes
problems.
2376: Can't have timeouts large enough
Committing in .
Modified Files:
coldfire/sys_arch.c coldfire/netif/5272fec.c
----------------------------------------------------------------------