From owner-p4-projects Wed Jun 19 18:34:55 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8466F37B403; Wed, 19 Jun 2002 18:34:37 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id ED7C037B412 for ; Wed, 19 Jun 2002 18:34:29 -0700 (PDT) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g5K1YTG49194 for perforce@freebsd.org; Wed, 19 Jun 2002 18:34:29 -0700 (PDT) (envelope-from julian@freebsd.org) Date: Wed, 19 Jun 2002 18:34:29 -0700 (PDT) Message-Id: <200206200134.g5K1YTG49194@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer Subject: PERFORCE change 13182 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=13182 Change 13182 by julian@julian_ref on 2002/06/19 18:33:42 try MFC jeff's latest patch.. Affected files ... ... //depot/projects/kse/sys/netinet/if_ether.c#12 integrate ... //depot/projects/kse/sys/vm/vm_kern.c#8 integrate Differences ... ==== //depot/projects/kse/sys/netinet/if_ether.c#12 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)if_ether.c 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/netinet/if_ether.c,v 1.94 2002/05/15 01:03:32 kbyanc Exp $ + * $FreeBSD: src/sys/netinet/if_ether.c,v 1.95 2002/06/20 01:27:40 peter Exp $ */ /* @@ -102,7 +102,7 @@ static LIST_HEAD(, llinfo_arp) llinfo_arp; struct ifqueue arpintrq; -static int arp_inuse, arp_allocated; +static int arp_inuse, arp_allocated, arpinit_done; static int arp_maxtries = 5; static int useloopback = 1; /* use loopback interface for local traffic */ @@ -162,13 +162,10 @@ register struct sockaddr *gate = rt->rt_gateway; register struct llinfo_arp *la = (struct llinfo_arp *)rt->rt_llinfo; static struct sockaddr_dl null_sdl = {sizeof(null_sdl), AF_LINK}; - static int arpinit_done; if (!arpinit_done) { arpinit_done = 1; - LIST_INIT(&llinfo_arp); timeout(arptimer, (caddr_t)0, hz); - register_netisr(NETISR_ARP, arpintr); } if (rt->rt_flags & RTF_GATEWAY) return; @@ -494,6 +491,10 @@ register struct arphdr *ar; int s; + if (!arpinit_done) { + arpinit_done = 1; + timeout(arptimer, (caddr_t)0, hz); + } while (arpintrq.ifq_head) { s = splimp(); IF_DEQUEUE(&arpintrq, m); @@ -943,6 +944,8 @@ arpintrq.ifq_maxlen = 50; mtx_init(&arpintrq.ifq_mtx, "arp_inq", NULL, MTX_DEF); + LIST_INIT(&llinfo_arp); + register_netisr(NETISR_ARP, arpintr); } SYSINIT(arp, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, arp_init, 0); ==== //depot/projects/kse/sys/vm/vm_kern.c#8 (text+ko) ==== @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $FreeBSD: src/sys/vm/vm_kern.c,v 1.79 2002/06/19 20:47:18 jeff Exp $ + * $FreeBSD: src/sys/vm/vm_kern.c,v 1.80 2002/06/19 23:49:57 jeff Exp $ */ /* @@ -312,6 +312,7 @@ vm_map_entry_t entry; vm_offset_t addr; vm_page_t m; + int pflags; GIANT_REQUIRED; @@ -346,25 +347,26 @@ vm_map_insert(map, kmem_object, offset, addr, addr + size, VM_PROT_ALL, VM_PROT_ALL, 0); + /* + * Note: if M_NOWAIT specified alone, allocate from + * interrupt-safe queues only (just the free list). If + * M_USE_RESERVE is also specified, we can also + * allocate from the cache. Neither of the latter two + * flags may be specified from an interrupt since interrupts + * are not allowed to mess with the cache queue. + */ + + if ((flags & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) + pflags = VM_ALLOC_INTERRUPT; + else + pflags = VM_ALLOC_SYSTEM; + + if (flags & M_ZERO) + pflags |= VM_ALLOC_ZERO; + + for (i = 0; i < size; i += PAGE_SIZE) { - int pflags; - /* - * Note: if M_NOWAIT specified alone, allocate from - * interrupt-safe queues only (just the free list). If - * M_USE_RESERVE is also specified, we can also - * allocate from the cache. Neither of the latter two - * flags may be specified from an interrupt since interrupts - * are not allowed to mess with the cache queue. - */ retry: - if ((flags & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) - pflags = VM_ALLOC_INTERRUPT; - else - pflags = VM_ALLOC_SYSTEM; - - if (flags & M_ZERO) - pflags |= VM_ALLOC_ZERO; - m = vm_page_alloc(kmem_object, OFF_TO_IDX(offset + i), pflags); /* @@ -395,6 +397,8 @@ vm_map_unlock(map); goto bad; } + if (flags & M_ZERO && (m->flags & PG_ZERO) == 0) + vm_page_zero_fill(m); vm_page_flag_clear(m, PG_ZERO); m->valid = VM_PAGE_BITS_ALL; } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message