Michael van Elst wrote:
> Right. This needs to be written differently. Instead of GETCGD_SOFTC()
> use:
> 
>       cs = getcgd_softc(bp->b_dev);
>       if (!cs) {
>               bp->b_error = ENXIO;
>               biodone(bp);
>               return;
>     }

I enabled DEBUG in the config and changed cgdstrategy. Same crash:

Stopped in pid 10.1 (mount_ffs) at      netbsd:cgdstrategy+0x2d:        divl
4
0(%r12),%eax

ffffffff808edcd8 <cgdstrategy>:
ffffffff808edcd8:       55                      push   %rbp
ffffffff808edcd9:       48 89 e5                mov    %rsp,%rbp
ffffffff808edcdc:       53                      push   %rbx
ffffffff808edcdd:       48 83 ec 08             sub    $0x8,%rsp
ffffffff808edce1:       48 89 fb                mov    %rdi,%rbx
ffffffff808edce4:       f6 05 d5 d0 8e 00 01    testb  $0x1,0x8ed0d5(%rip)      
  # ffffffff811dadc0 <cgddebug>
ffffffff808edceb:       75 52                   jne    ffffffff808edd3f 
<cgdstrategy+0x67>
ffffffff808edced:       48 8b 7b 38             mov    0x38(%rbx),%rdi
ffffffff808edcf1:       e8 e5 fd ff ff          callq  ffffffff808edadb 
<getcgd_softc>
ffffffff808edcf6:       48 89 c7                mov    %rax,%rdi
ffffffff808edcf9:       48 85 c0                test   %rax,%rax
ffffffff808edcfc:       74 58                   je     ffffffff808edd56 
<cgdstrategy+0x7e>
ffffffff808edcfe:       48 83 7b 48 00          cmpq   $0x0,0x48(%rbx)
ffffffff808edd03:       8b 4b 34                mov    0x34(%rbx),%ecx
ffffffff808edd06:       78 11                   js     ffffffff808edd19 
<cgdstrategy+0x41>
ffffffff808edd08:       89 c8                   mov    %ecx,%eax
ffffffff808edd0a:       31 d2                   xor    %edx,%edx
ffffffff808edd0c:       f7 77 40                divl   0x40(%rdi)
ffffffff808edd0f:       85 d2                   test   %edx,%edx
ffffffff808edd11:       75 06                   jne    ffffffff808edd19 
<cgdstrategy+0x41>
ffffffff808edd13:       f6 43 40 03             testb  $0x3,0x40(%rbx)
ffffffff808edd17:       74 18                   je     ffffffff808edd31 
<cgdstrategy+0x59>
ffffffff808edd19:       c7 43 20 16 00 00 00    movl   $0x16,0x20(%rbx)
ffffffff808edd20:       89 4b 24                mov    %ecx,0x24(%rbx)
ffffffff808edd23:       48 89 df                mov    %rbx,%rdi
ffffffff808edd26:       48 83 c4 08             add    $0x8,%rsp
ffffffff808edd2a:       5b                      pop    %rbx
ffffffff808edd2b:       5d                      pop    %rbp
ffffffff808edd2c:       e9 f0 c3 fc ff          jmpq   ffffffff808ba121 
<biodone>
ffffffff808edd31:       48 89 de                mov    %rbx,%rsi
ffffffff808edd34:       48 83 c4 08             add    $0x8,%rsp
ffffffff808edd38:       5b                      pop    %rbx
ffffffff808edd39:       5d                      pop    %rbp
ffffffff808edd3a:       e9 a1 2e 00 00          jmpq   ffffffff808f0be0 
<dk_strategy>
ffffffff808edd3f:       48 63 57 34             movslq 0x34(%rdi),%rdx
ffffffff808edd43:       48 89 fe                mov    %rdi,%rsi
ffffffff808edd46:       48 c7 c7 18 15 f9 80    mov    $0xffffffff80f91518,%rdi
ffffffff808edd4d:       31 c0                   xor    %eax,%eax
ffffffff808edd4f:       e8 4f d8 f8 ff          callq  ffffffff8087b5a3 <printf>
ffffffff808edd54:       eb 97                   jmp    ffffffff808edced 
<cgdstrategy+0x15>
ffffffff808edd56:       c7 43 20 06 00 00 00    movl   $0x6,0x20(%rbx)
ffffffff808edd5d:       eb c4                   jmp    ffffffff808edd23 
<cgdstrategy+0x4b>

ffffffff808eeb2e:       48 c7 c7 d8 dc 8e 80    mov    $0xffffffff808edcd8,%rdi
ffffffff808eeb35:       5b                      pop    %rbx
ffffffff808eeb36:       41 5c                   pop    %r12
ffffffff808eeb38:       5d                      pop    %rbp
ffffffff808eeb39:       e9 4f db f4 ff          jmpq   ffffffff8083c68d <physio>

ffffffff808eeb9d:       48 c7 c7 d8 dc 8e 80    mov    $0xffffffff808edcd8,%rdi
ffffffff808eeba4:       5b                      pop    %rbx
ffffffff808eeba5:       41 5c                   pop    %r12
ffffffff808eeba7:       5d                      pop    %rbp
ffffffff808eeba8:       e9 e0 da f4 ff          jmpq   ffffffff8083c68d <physio>

Alex

Reply via email to