summaryrefslogtreecommitdiffstats
path: root/sys/netatm/uni/unisig_subr.c
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2003-07-23 14:28:57 +0000
committerharti <harti@FreeBSD.org>2003-07-23 14:28:57 +0000
commitf8b34e3f70219ed6642f2c3ed7430361969ccccf (patch)
tree9fe86b328b35bc3515a752c557d6999aa602cfe7 /sys/netatm/uni/unisig_subr.c
parent162e49f535eeecc1626f095ecec2e27292d2dd24 (diff)
downloadFreeBSD-src-f8b34e3f70219ed6642f2c3ed7430361969ccccf.zip
FreeBSD-src-f8b34e3f70219ed6642f2c3ed7430361969ccccf.tar.gz
Convert a lot of uma_zalloc() calls to be NOWAIT instead of WAITOK. All
these may be called from contexts where we cannot sleep (callout handlers for example).
Diffstat (limited to 'sys/netatm/uni/unisig_subr.c')
-rw-r--r--sys/netatm/uni/unisig_subr.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/sys/netatm/uni/unisig_subr.c b/sys/netatm/uni/unisig_subr.c
index dfcb0a8..f2b4c3c 100644
--- a/sys/netatm/uni/unisig_subr.c
+++ b/sys/netatm/uni/unisig_subr.c
@@ -267,8 +267,9 @@ unisig_open_vcc(usp, cvp)
/*
* Allocate control block for VCC
+ * May be called from timeout - don't wait.
*/
- uvp = uma_zalloc(unisig_vc_zone, M_WAITOK | M_ZERO);
+ uvp = uma_zalloc(unisig_vc_zone, M_NOWAIT | M_ZERO);
if (uvp == NULL) {
return(ENOMEM);
}
@@ -869,6 +870,7 @@ unisig_save_attrs(usp, msg, ap)
* 0 everything OK
* else error encountered
*
+ * May be called from timeout so make allocations non-waiting
*/
int
unisig_set_attrs(usp, msg, ap)
@@ -890,7 +892,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->aal.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_aalp) {
msg->msg_ie_aalp = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_aalp == NULL) {
err = ENOMEM;
goto done;
@@ -948,7 +950,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->traffic.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_clrt) {
msg->msg_ie_clrt = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_clrt == NULL) {
err = ENOMEM;
goto done;
@@ -1005,7 +1007,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->bearer.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_bbcp) {
msg->msg_ie_bbcp = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_bbcp == NULL) {
err = ENOMEM;
goto done;
@@ -1033,7 +1035,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->bhli.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_bhli) {
msg->msg_ie_bhli = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_bhli == NULL) {
err = ENOMEM;
goto done;
@@ -1073,7 +1075,7 @@ unisig_set_attrs(usp, msg, ap)
ap->blli.tag_l3 == T_ATM_PRESENT) {
if (!msg->msg_ie_blli) {
msg->msg_ie_blli = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_blli == NULL) {
err = ENOMEM;
goto done;
@@ -1158,7 +1160,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->called.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_cdad) {
msg->msg_ie_cdad = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_cdad == NULL) {
err = ENOMEM;
goto done;
@@ -1174,7 +1176,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->called.subaddr.address_format != T_ATM_ABSENT) {
if (!msg->msg_ie_cdsa) {
msg->msg_ie_cdsa = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_cdsa == NULL) {
err = ENOMEM;
goto done;
@@ -1196,7 +1198,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->calling.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_cgad) {
msg->msg_ie_cgad = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_cgad == NULL) {
err = ENOMEM;
goto done;
@@ -1213,7 +1215,7 @@ unisig_set_attrs(usp, msg, ap)
T_ATM_ABSENT) {
if (!msg->msg_ie_cgsa) {
msg->msg_ie_cgsa = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_cgsa == NULL) {
err = ENOMEM;
goto done;
@@ -1234,7 +1236,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->qos.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_qosp) {
msg->msg_ie_qosp = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_qosp == NULL) {
err = ENOMEM;
goto done;
@@ -1266,7 +1268,7 @@ unisig_set_attrs(usp, msg, ap)
ap->transit.v.length != 0) {
if (!msg->msg_ie_trnt) {
msg->msg_ie_trnt = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_trnt == NULL) {
err = ENOMEM;
goto done;
@@ -1291,7 +1293,7 @@ unisig_set_attrs(usp, msg, ap)
if (ap->cause.tag == T_ATM_PRESENT) {
if (!msg->msg_ie_caus) {
msg->msg_ie_caus = uma_zalloc(unisig_ie_zone,
- M_WAITOK | M_ZERO);
+ M_NOWAIT | M_ZERO);
if (msg->msg_ie_caus == NULL) {
err = ENOMEM;
goto done;
OpenPOWER on IntegriCloud