Lines 804-813
Link Here
|
804 |
V_pf_state_key_z = uma_zcreate("pf state keys", |
804 |
V_pf_state_key_z = uma_zcreate("pf state keys", |
805 |
sizeof(struct pf_state_key), pf_state_key_ctor, NULL, NULL, NULL, |
805 |
sizeof(struct pf_state_key), pf_state_key_ctor, NULL, NULL, NULL, |
806 |
UMA_ALIGN_PTR, 0); |
806 |
UMA_ALIGN_PTR, 0); |
807 |
V_pf_keyhash = malloc(pf_hashsize * sizeof(struct pf_keyhash), |
807 |
|
808 |
M_PFHASH, M_WAITOK | M_ZERO); |
808 |
V_pf_keyhash = mallocarray(pf_hashsize, sizeof(struct pf_keyhash), |
809 |
V_pf_idhash = malloc(pf_hashsize * sizeof(struct pf_idhash), |
809 |
M_PFHASH, M_NOWAIT | M_ZERO); |
810 |
M_PFHASH, M_WAITOK | M_ZERO); |
810 |
V_pf_idhash = mallocarray(pf_hashsize, sizeof(struct pf_idhash), |
|
|
811 |
M_PFHASH, M_NOWAIT | M_ZERO); |
812 |
if (V_pf_keyhash == NULL || V_pf_idhash == NULL) { |
813 |
printf("pf_initialize : Not enough memory for %lu bytes.\n", |
814 |
pf_hashsize * sizeof(struct pf_keyhash)); |
815 |
pf_hashsize = PF_HASHSIZ; |
816 |
V_pf_keyhash = mallocarray(pf_hashsize, sizeof(struct pf_keyhash), |
817 |
M_PFHASH, M_WAITOK | M_ZERO); |
818 |
V_pf_idhash = mallocarray(pf_hashsize, sizeof(struct pf_idhash), |
819 |
M_PFHASH, M_WAITOK | M_ZERO); |
820 |
} |
821 |
|
811 |
pf_hashmask = pf_hashsize - 1; |
822 |
pf_hashmask = pf_hashsize - 1; |
812 |
for (i = 0, kh = V_pf_keyhash, ih = V_pf_idhash; i <= pf_hashmask; |
823 |
for (i = 0, kh = V_pf_keyhash, ih = V_pf_idhash; i <= pf_hashmask; |
813 |
i++, kh++, ih++) { |
824 |
i++, kh++, ih++) { |
Lines 822-830
Link Here
|
822 |
V_pf_limits[PF_LIMIT_SRC_NODES].zone = V_pf_sources_z; |
833 |
V_pf_limits[PF_LIMIT_SRC_NODES].zone = V_pf_sources_z; |
823 |
uma_zone_set_max(V_pf_sources_z, PFSNODE_HIWAT); |
834 |
uma_zone_set_max(V_pf_sources_z, PFSNODE_HIWAT); |
824 |
uma_zone_set_warning(V_pf_sources_z, "PF source nodes limit reached"); |
835 |
uma_zone_set_warning(V_pf_sources_z, "PF source nodes limit reached"); |
825 |
V_pf_srchash = malloc(pf_srchashsize * sizeof(struct pf_srchash), |
836 |
if ((V_pf_srchash = mallocarray(pf_srchashsize, |
826 |
M_PFHASH, M_WAITOK|M_ZERO); |
837 |
sizeof(struct pf_srchash), M_PFHASH, M_NOWAIT | M_ZERO)) == NULL){ |
827 |
pf_srchashmask = pf_srchashsize - 1; |
838 |
printf("pf_initialize: Not enough memory for %lu bytes.\n", |
|
|
839 |
pf_srchashsize * sizeof(struct pf_srchash)); |
840 |
pf_srchashsize = (PF_HASHSIZ / 4); |
841 |
V_pf_srchash = mallocarray(pf_srchashsize, |
842 |
sizeof(struct pf_srchash), M_PFHASH, M_WAITOK | M_ZERO); |
843 |
} |
844 |
pf_srchashmask = pf_srchashsize - 1; |
828 |
for (i = 0, sh = V_pf_srchash; i <= pf_srchashmask; i++, sh++) |
845 |
for (i = 0, sh = V_pf_srchash; i <= pf_srchashmask; i++, sh++) |
829 |
mtx_init(&sh->lock, "pf_srchash", NULL, MTX_DEF); |
846 |
mtx_init(&sh->lock, "pf_srchash", NULL, MTX_DEF); |
830 |
|
847 |
|