NetBSD-Bugs archive

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

Re: kern/54994: Critical bug in uarea_poolpage_alloc() for archs with __HAVE_CPU_UAREA_ROUTINES



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

From: Jason Thorpe <thorpej%me.com@localhost>
To: rin%netbsd.org@localhost
Cc: kern-bug-people%netbsd.org@localhost,
 gnats-admin%netbsd.org@localhost,
 netbsd-bugs%netbsd.org@localhost,
 gnats-bugs%netbsd.org@localhost
Subject: Re: kern/54994: Critical bug in uarea_poolpage_alloc() for archs with
 __HAVE_CPU_UAREA_ROUTINES
Date: Fri, 21 Feb 2020 07:52:45 -0800

 > On Feb 21, 2020, at 3:15 AM, rokuyama.rk%gmail.com@localhost wrote:
 >=20
 > Since low-level routines for these archs assume physically contignous
 > u-area, this results in a catastrophe; pages happens to follow the 1st
 > page of u-area will be randomly overwritten.
 
 I don't have an Alpha handy to run your test case, but I don't think =
 this is catastrophic on all platforms.  As far as I can recall, the =
 Alpha does not actually require a physically contiguous u-area.  MIPS is =
 the same in this regard (although it probably need to make sure it keeps =
 UPAGES wired TLB entries for the u-area when the direct-mapping isn't =
 used ... it certainly used to do that).  The comment in the Alpha's =
 cpu_uarea_alloc() is merely there to call out the requirement in order =
 to be able to use the direct-mapped region.
 
 Oh, turns out MIPS already has much more complex rules for when the =
 direct-mapped region is used, so I suspect it's fine as well.  I haven't =
 audited the rest.
 
 In any case, the short answer is: Only an issue if the PA of the u-area =
 is provided to the CPU, not an issue if it does everything with the VA =
 of the u-area.
 
 -- thorpej
 


Home | Main Index | Thread Index | Old Index