*   refcnt   - Reference count access to this object.
         *   dead     - Do not attempt to use this object.
         */
-       atomic_t    refcnt;
+       refcount_t    refcnt;
        bool        dead;
 
        /* What socket does this endpoint belong to?  */
 
        asoc->base.type = SCTP_EP_TYPE_ASSOCIATION;
 
        /* Initialize the object handling fields.  */
-       atomic_set(&asoc->base.refcnt, 1);
+       refcount_set(&asoc->base.refcnt, 1);
 
        /* Initialize the bind addr area.  */
        sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port);
 /* Hold a reference to an association. */
 void sctp_association_hold(struct sctp_association *asoc)
 {
-       atomic_inc(&asoc->base.refcnt);
+       refcount_inc(&asoc->base.refcnt);
 }
 
 /* Release a reference to an association and cleanup
  */
 void sctp_association_put(struct sctp_association *asoc)
 {
-       if (atomic_dec_and_test(&asoc->base.refcnt))
+       if (refcount_dec_and_test(&asoc->base.refcnt))
                sctp_association_destroy(asoc);
 }
 
 
        ep->base.type = SCTP_EP_TYPE_SOCKET;
 
        /* Initialize the basic object fields. */
-       atomic_set(&ep->base.refcnt, 1);
+       refcount_set(&ep->base.refcnt, 1);
        ep->base.dead = false;
 
        /* Create an input queue.  */
 /* Hold a reference to an endpoint. */
 void sctp_endpoint_hold(struct sctp_endpoint *ep)
 {
-       atomic_inc(&ep->base.refcnt);
+       refcount_inc(&ep->base.refcnt);
 }
 
 /* Release a reference to an endpoint and clean up if there are
  */
 void sctp_endpoint_put(struct sctp_endpoint *ep)
 {
-       if (atomic_dec_and_test(&ep->base.refcnt))
+       if (refcount_dec_and_test(&ep->base.refcnt))
                sctp_endpoint_destroy(ep);
 }