static void sctp_transport_destroy_rcu(struct rcu_head *head) { struct sctp_transport *transport; transport = container_of(head, struct sctp_transport, rcu); dst_release(transport->dst); kfree(transport); SCTP_DBG_OBJCNT_DEC(transport); }
/* Dispose of a ssnmap. */ void sctp_ssnmap_free(struct sctp_ssnmap *map) { if (map && map->malloced) { int size; size = sctp_ssnmap_size(map->in.len, map->out.len); if (size <= KMALLOC_MAX_SIZE) kfree(map); else free_pages((unsigned long)map, get_order(size)); SCTP_DBG_OBJCNT_DEC(ssnmap); } }
static void sctp_transport_destroy_rcu(struct rcu_head *head) { struct sctp_transport *transport; transport = container_of(head, struct sctp_transport, rcu); if (transport->asoc) sctp_association_put(transport->asoc); sctp_packet_free(&transport->packet); dst_release(transport->dst); kfree(transport); SCTP_DBG_OBJCNT_DEC(transport); }