https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288551

--- Comment #1 from Peter Eriksson <[email protected]> ---
If I'm reading the assembly code correctly (objdump) the this is the code
causing the panic:

# objdump  --disassemble=mpr_iocfacts_allocate mpr.ko|head -8

mpr.ko:     file format elf64-x86-64-freebsd


Disassembly of section .text:

00000000000016a0 <mpr_iocfacts_allocate>:
    16a0:       55                      push   %rbp


# dc
16 d i o
16A0 8DA + p
1F7A

# objdump  --disassemble=mpr_iocfacts_allocate mpr.ko
...
   1f75:       e8 e6 2a 00 00          call   4a60 <mpr_iocfacts_free>
   1f7a:       0f b7 85 58 ff ff ff    movzwl -0xa8(%rbp),%eax


/usr/src/dev/mpr/mpr.c in mpr_iocfacts_reallocate()
...
        /*                                                                      
         * If doing a Diag Reset and the FW is significantly different          
         * (reallocating will be set above in IOC Facts comparison), then all   
         * buffers based on the IOC Facts will need to be freed before they are 
         * reallocated.                                                         
         */
        if (reallocating) {
                mpr_iocfacts_free(sc);
                mprsas_realloc_targets(sc, saved_facts.MaxTargets +
                    saved_facts.MaxVolumes);
        }

Perhaps we should not be doing a mpr_iocfacts_free just before reallocating?

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to