Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
*** 357,373 ****
else \
rval = 1; \
}
#define SF_SCD_INCR_REF(scdp) { \
! atomic_add_32((volatile uint32_t *)&(scdp)->scd_refcnt, 1); \
}
#define SF_SCD_DECR_REF(srdp, scdp) { \
sf_region_map_t _scd_rmap = (scdp)->scd_region_map; \
! if (!atomic_add_32_nv( \
! (volatile uint32_t *)&(scdp)->scd_refcnt, -1)) { \
sfmmu_destroy_scd((srdp), (scdp), &_scd_rmap); \
} \
}
/*
--- 357,372 ----
else \
rval = 1; \
}
#define SF_SCD_INCR_REF(scdp) { \
! atomic_inc_32((volatile uint32_t *)&(scdp)->scd_refcnt); \
}
#define SF_SCD_DECR_REF(srdp, scdp) { \
sf_region_map_t _scd_rmap = (scdp)->scd_region_map; \
! if (!atomic_dec_32_nv((volatile uint32_t *)&(scdp)->scd_refcnt)) {\
sfmmu_destroy_scd((srdp), (scdp), &_scd_rmap); \
} \
}
/*