Missing call to ifmedia_removeall(&adapter->media); in ena_detach. ifmedia_add allocates memory. entry = malloc(sizeof(*entry), M_IFADDR, M_NOWAIT); ifmedia_removeall will free the entries.
Thanks for the report, will look into this