Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
*** 64,109 ****
* by an M_DATA. In the latter case skip the M_CTL.
*/
if (mp->b_datap->db_type != M_DATA) {
if ((mp->b_cont == NULL) ||
(mp->b_cont->b_datap->db_type != M_DATA)) {
! atomic_add_64(&dlcosmk_data->epackets, 1);
dlcosmk0dbg(("dlcosmk_process: no data\n"));
return (EINVAL);
}
}
/* Update global stats */
! atomic_add_64(&dlcosmk_data->npackets, 1);
/*
* This should only be called for outgoing packets. For inbound, just
* send it along.
*/
if ((proc == IPP_LOCAL_IN) || (proc == IPP_FWD_IN)) {
dlcosmk2dbg(("dlcosmk_process:cannot mark incoming packets\n"));
! atomic_add_64(&dlcosmk_data->ipackets, 1);
return (0);
}
if ((ill_index == 0) ||
((ill = ill_lookup_on_ifindex_global_instance(ill_index,
B_FALSE)) == NULL)) {
dlcosmk2dbg(("dlcosmk_process:invalid ill index %u\n",
ill_index));
! atomic_add_64(&dlcosmk_data->ipackets, 1);
return (0);
}
/*
* Check if the interface supports CoS marking. If not send it to the
* next action in the chain
*/
if (!(ill->ill_flags & ILLF_COS_ENABLED)) {
dlcosmk2dbg(("dlcosmk_process:ill %u does not support CoS\n",
ill_index));
! atomic_add_64(&dlcosmk_data->ipackets, 1);
ill_refrele(ill);
return (0);
}
ill_refrele(ill);
--- 64,109 ----
* by an M_DATA. In the latter case skip the M_CTL.
*/
if (mp->b_datap->db_type != M_DATA) {
if ((mp->b_cont == NULL) ||
(mp->b_cont->b_datap->db_type != M_DATA)) {
! atomic_inc_64(&dlcosmk_data->epackets);
dlcosmk0dbg(("dlcosmk_process: no data\n"));
return (EINVAL);
}
}
/* Update global stats */
! atomic_inc_64(&dlcosmk_data->npackets);
/*
* This should only be called for outgoing packets. For inbound, just
* send it along.
*/
if ((proc == IPP_LOCAL_IN) || (proc == IPP_FWD_IN)) {
dlcosmk2dbg(("dlcosmk_process:cannot mark incoming packets\n"));
! atomic_inc_64(&dlcosmk_data->ipackets);
return (0);
}
if ((ill_index == 0) ||
((ill = ill_lookup_on_ifindex_global_instance(ill_index,
B_FALSE)) == NULL)) {
dlcosmk2dbg(("dlcosmk_process:invalid ill index %u\n",
ill_index));
! atomic_inc_64(&dlcosmk_data->ipackets);
return (0);
}
/*
* Check if the interface supports CoS marking. If not send it to the
* next action in the chain
*/
if (!(ill->ill_flags & ILLF_COS_ENABLED)) {
dlcosmk2dbg(("dlcosmk_process:ill %u does not support CoS\n",
ill_index));
! atomic_inc_64(&dlcosmk_data->ipackets);
ill_refrele(ill);
return (0);
}
ill_refrele(ill);
*** 122,142 ****
/* DL_UNITDATA message?? */
if (dlur->dl_primitive == DL_UNITDATA_REQ) {
dlur->dl_priority.dl_max =
dlcosmk_data->dl_max;
} else {
! atomic_add_64(&dlcosmk_data->ipackets,
! 1);
}
break;
}
case M_DATA:
/* fastpath message */
mp->b_band = dlcosmk_data->b_band;
break;
default:
! atomic_add_64(&dlcosmk_data->ipackets, 1);
break;
}
return (0);
}
--- 122,141 ----
/* DL_UNITDATA message?? */
if (dlur->dl_primitive == DL_UNITDATA_REQ) {
dlur->dl_priority.dl_max =
dlcosmk_data->dl_max;
} else {
! atomic_inc_64(&dlcosmk_data->ipackets);
}
break;
}
case M_DATA:
/* fastpath message */
mp->b_band = dlcosmk_data->b_band;
break;
default:
! atomic_inc_64(&dlcosmk_data->ipackets);
break;
}
return (0);
}