xpt_bus_register panics

Scott Long scottl at samsco.org
Fri Nov 18 08:48:36 PST 2005


Kenneth D. Merry wrote:
> On Fri, Nov 18, 2005 at 17:05:01 +0200, Danny Braniss wrote:
> 
>>>Danny Braniss wrote:
>>>
>>>>hi,
>>>>	it seems that i might be doing something wrong, if the
>>>>iscsi_initiator.ko is loaded early on by the boot loader via
>>>>	iscsi_initiator_load="YES"
>>>>the kernel panics in xpt_bus_register(...)
>>>>
>>>>i can move this part of the code, so that it will be done later, but
>>>>was wondering if there is a 'correct' way to handle this.
>>>>
>>>>danny
>>>>
>>>
>>>Can you provide a traceback of the panic?  Also, you don't need
>>>to special-case the module loading code with #ifdef KLD_MODULE.
>>>It should be unconditional.
>>
>>what if it get's - someday - compiled into the kernel? but i see
>>your point. 
>>
>>
>>Fatal trap 12: page fault while in kernel mode
>>cpuid = 0; apic id = 00
>>fault virtual address   = 0x0
>>fault code              = supervisor write, page not present
>>instruction pointer     = 0x20:0xc044f014
>>stack pointer           = 0x28:0xc0c20c30
>>frame pointer           = 0x28:0xc0c20d18
>>code segment            = base 0x0, limit 0xfffff, type 0x1b
>>                        = DPL 0, pres 1, def32 1, gran 1
>>processor eflags        = interrupt enabled, resume, IOPL = 0
>>current process         = 0 (swapper)
>>[thread pid 0 tid 0 ]
>>Stopped at      xpt_bus_register+0xe4:  movl    %ebx,0(%eax)
>>db> tr
>>Tracing pid 0 tid 0 td 0xc0933a80
>>xpt_bus_register(c555fd40,0,c0a564b0,c54202c0,c0a564b0) at 
>>xpt_bus_register+0xe4
>>ic_init(c0a567c0,c54202c0,c0c20d74,c063908b,c54202c0) at ic_init+0x51
>>iscsi_load(c54202c0,0,0,c0934680,0) at iscsi_load+0xb7
>>module_register_init(c0a564b0,c1ec00,c1e000,0,c0444fb5) at 
>>module_register_init+0x4b
>>mi_startup() at mi_startup+0x96
>>begin() at begin+0x2c
>>db>  
> 
> 
> I wonder if your module is getting initialized before xpt_init() gets
> called.
> 
> It looks like that section of xpt_bus_register() manipulates the
> xpt_busses list, which gets initialized in xpt_init().
> 
> Ken

Yeah, I'm thinking the same thing.  Maybe CAM needs to get initialized
earlier.

Scott


More information about the freebsd-scsi mailing list