NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/53072: netbsd-8 regression: startx (nv driver) crashes system



The following reply was made to PR kern/53072; it has been noted by GNATS.

From: Roy Bixler <rcbixler%nyx.net@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/53072: netbsd-8 regression: startx (nv driver) crashes
 system
Date: Mon, 5 Mar 2018 17:23:19 -0700

 On Mon, Mar 05, 2018 at 07:10:00PM +0000, matthew green wrote:
 > The following reply was made to PR kern/53072; it has been noted by GNATS.
 > 
 > From: matthew green <mrg%eterna.com.au@localhost>
 > To: gnats-bugs%NetBSD.org@localhost, rcbixler%nyx.net@localhost, bsiegert%netbsd.org@localhost
 > Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
 >     netbsd-bugs%netbsd.org@localhost
 > Subject: re: kern/53072: netbsd-8 regression: startx (nv driver) crashes system
 > Date: Tue, 06 Mar 2018 06:06:41 +1100
 > 
 >  can you try this patch?  it's x86/pmap.c 1.267 which was
 >  missed in the pullup.
 
 I applied the patch to the source tree pulled from netbsd-8 as of
 2018-02-27 1000Z and X with the nv driver works again.
 
 >  Index: pmap.c
 >  ===================================================================
 >  RCS file: /cvsroot/src/sys/arch/x86/x86/pmap.c,v
 >  retrieving revision 1.245.6.2
 >  diff -p -u -u -r1.245.6.2 pmap.c
 >  --- pmap.c	27 Feb 2018 09:07:33 -0000	1.245.6.2
 >  +++ pmap.c	5 Mar 2018 19:02:45 -0000
 >  @@ -1737,8 +1737,8 @@ pmap_pp_needs_pve(struct pmap_page *pp)
 >   	 * since the first pv entry is stored in the pmap_page.
 >   	 */
 >   
 >  -	return (pp->pp_flags & PP_EMBEDDED) != 0 ||
 >  -		!LIST_EMPTY(&pp->pp_head.pvh_list);
 >  +	return pp && ((pp->pp_flags & PP_EMBEDDED) != 0 ||
 >  +	    !LIST_EMPTY(&pp->pp_head.pvh_list));
 >   }
 >   
 >   /*
 >  @@ -4123,7 +4123,7 @@ pmap_enter_ma(struct pmap *pmap, vaddr_t
 >   	 */
 >   
 >   	bool needpves = pmap_pp_needs_pve(new_pp);
 >  -	if (new_pp && needpves) {
 >  +	if (needpves) {
 >   		new_pve = pool_cache_get(&pmap_pv_cache, PR_NOWAIT);
 >   		new_sparepve = pool_cache_get(&pmap_pv_cache, PR_NOWAIT);
 >   	} else {
 >  
 
 -- 
 Roy Bixler <rcbixler%nyx.net@localhost>
 "The fundamental principle of science, the definition almost, is this: the
 sole test of the validity of any idea is experiment."
 -- Richard P. Feynman
 



Home | Main Index | Thread Index | Old Index