Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
*** 1682,1692 ****
* atomic decrement the reference count to prevent
* the race condition with the interrupt thread that
* is processing a loaned up buffer block.
*/
free_state = rx_msg_p->free;
! ref_cnt = atomic_add_32_nv(&rx_msg_p->ref_cnt, -1);
if (!ref_cnt) {
atomic_dec_32(&nxge_mblks_pending);
buffer = rx_msg_p->buffer;
size = rx_msg_p->block_size;
NXGE_DEBUG_MSG((NULL, MEM2_CTL, "nxge_freeb: "
--- 1682,1692 ----
* atomic decrement the reference count to prevent
* the race condition with the interrupt thread that
* is processing a loaned up buffer block.
*/
free_state = rx_msg_p->free;
! ref_cnt = atomic_dec_32_nv(&rx_msg_p->ref_cnt);
if (!ref_cnt) {
atomic_dec_32(&nxge_mblks_pending);
buffer = rx_msg_p->buffer;
size = rx_msg_p->block_size;
NXGE_DEBUG_MSG((NULL, MEM2_CTL, "nxge_freeb: "