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