View | Details | Raw Unified | Return to bug 209475 | Differences between
and this patch

Collapse All | Expand All

(-)pf.c.fni (-7 / +24 lines)
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

Return to bug 209475