thanks. probably enough.  ill go find it :)

> On Jul 1, 2020, at 18:33, [email protected] wrote:
> 
> 
>> 
>> Synopsis:    uvm_wait_pla calls bufbackoff(NULL,4). It *(NULL)s.
>> Category:    kernel
>> Environment:
>    System      : OpenBSD 6.7
>    Details     : OpenBSD 6.7 (GENERIC.MP) #1: Sat May 16 16:33:02 MDT 2020
>             
> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> 
>    Architecture: OpenBSD.amd64
>    Machine     : amd64
>> Description:
>    I got a uvmfault that showed bufbackoff called as
>    bufbackoff(0,4) at bufbackoff+0x23 with the next function
>    down being uvm_wait_pla.  Out of curiosity I looked at
>    these two functions, and it looks to me like a null pointer
>    is passed and dereferenced by bufbackoff's first line:
> 
>    kern/vfs_bio.c:
>    bufbackoff(struct uvm_constraint_range *range, long size)
>    {
>    ...
>        if (range->ucr_high > dma_constraint.ucr_high) {
> 
>    uvm/uvm_pmemrange.c:2049 (uvm_wait_pla):
> 
>          if (bufbackoff(NULL, atop(size)) == 0) {
> 
>    Apologies if it is not actually this simple. I do have a bunch
>    of pictures of ddb output including stack trace, registers,
>    and ps output. Unfortunately, I fumbled around thinking more
>    info would help, so the dmesg I got on reboot didn't have
>    the good stuff. I'm hoping you don't really need all that once
>    you read the two functions. 
> 
>    It looks like uvm_wait() in uvm/uvm_pdaemon.c also calls bufbackoff
>    with a NULL range argument.
> 
>    Things still look like this in current based on cvsweb.
> 
>> How-To-Repeat:
>    It has only happened once since upgrading to 6.7 in May.
>> Fix:
>    I have no clue.
> 

Reply via email to