summaryrefslogtreecommitdiffstats
path: root/sys/net/pf_osfp.c
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2008-06-14 02:22:13 +0000
committerhenning <henning@openbsd.org>2008-06-14 02:22:13 +0000
commit4190158d2e782d73ba038514636a5dc16051e5ad (patch)
treeb718a218ba11ce6ffb96e4daae094a3691f32342 /sys/net/pf_osfp.c
parentcmp(4) (diff)
downloadwireguard-openbsd-4190158d2e782d73ba038514636a5dc16051e5ad.tar.xz
wireguard-openbsd-4190158d2e782d73ba038514636a5dc16051e5ad.zip
pool_get()s not in interrupt context should not be PR_NOWAIT, but
PR_WAITOK | PR_LIMITFAIL. from discussion with art. ok ryan claudio thib
Diffstat (limited to 'sys/net/pf_osfp.c')
-rw-r--r--sys/net/pf_osfp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/net/pf_osfp.c b/sys/net/pf_osfp.c
index 57344e155fc..75f33032e1a 100644
--- a/sys/net/pf_osfp.c
+++ b/sys/net/pf_osfp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pf_osfp.c,v 1.14 2008/06/12 18:17:01 henning Exp $ */
+/* $OpenBSD: pf_osfp.c,v 1.15 2008/06/14 02:22:13 henning Exp $ */
/*
* Copyright (c) 2003 Mike Frantzen <frantzen@w4g.org>
@@ -366,10 +366,12 @@ pf_osfp_add(struct pf_osfp_ioctl *fpioc)
if (PF_OSFP_ENTRY_EQ(entry, &fpioc->fp_os))
return (EEXIST);
}
- if ((entry = pool_get(&pf_osfp_entry_pl, PR_NOWAIT)) == NULL)
+ if ((entry = pool_get(&pf_osfp_entry_pl,
+ PR_WAITOK|PR_LIMITFAIL)) == NULL)
return (ENOMEM);
} else {
- if ((fp = pool_get(&pf_osfp_pl, PR_NOWAIT)) == NULL)
+ if ((fp = pool_get(&pf_osfp_pl,
+ PR_WAITOK|PR_LIMITFAIL)) == NULL)
return (ENOMEM);
memset(fp, 0, sizeof(*fp));
fp->fp_tcpopts = fpioc->fp_tcpopts;
@@ -381,7 +383,8 @@ pf_osfp_add(struct pf_osfp_ioctl *fpioc)
fp->fp_wscale = fpioc->fp_wscale;
fp->fp_ttl = fpioc->fp_ttl;
SLIST_INIT(&fp->fp_oses);
- if ((entry = pool_get(&pf_osfp_entry_pl, PR_NOWAIT)) == NULL) {
+ if ((entry = pool_get(&pf_osfp_entry_pl,
+ PR_WAITOK|PR_LIMITFAIL)) == NULL) {
pool_put(&pf_osfp_pl, fp);
return (ENOMEM);
}