On 09/17/2014 04:11 AM, Mike Holmes wrote:
@@ -275,8 +275,8 @@ int odp_pktio_close(odp_pktio_t id)
                        break;
  #endif
                default:
+                       res |= free_pktio_entry(id);
                        break;
-               res |= free_pktio_entry(id);
                }
        }

Mike, I think your fix is not correct. You need something like that:

        lock_entry(entry);
        if (!is_free(entry)) {
                switch (entry->s.params.type) {
                case ODP_PKTIO_TYPE_SOCKET_BASIC:
                case ODP_PKTIO_TYPE_SOCKET_MMSG:
                 .....
                        break;
                default:
                        break;
 -               res |= free_pktio_entry(id);
                }
 + /*  set entry->s.taken = 0 when freeing entry */
 +    res |= free_pktio_entry(id);
        }
        unlock_entry(entry);


Maxim.

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to