[PATCH] ASR driver update

Don Bowman don at sandvine.com
Mon May 3 15:46:44 PDT 2004


From: Scott Long [mailto:scottl at freebsd.org]
> 
> Scott Long wrote:
> > All,
> > 
> > In case you've been watching the CVS commit mail, I've started a
> > massive cleanup effort on the ASR driver.  Nearly all of the work
> > so far has been cosmetic and non-functional (which trimmed nearly
> > 1000 lines off of asr.c!).  Now I have a patch that converts the
> > driver to using the bus_space_*() API.  While this should, in
> > theory, not change any functionality, it is a much more fundamental
> > change to the driver, so I'd appreciate more testing of it before
> > I commit.  The  patch can be found at
> > 
> > http://people.freebsd.org/~scottl/asr_bus_space.diff
> > 
> > I'm espeically interested in testing with the 20xx ZCR 
> adapters since
> > they appear to be especially troublesome to the API.
> > 
> > Thanks,
> > 
> > Scott
> 
> 
> One thing that I forgot to mention is that the patch is only for the
> latest 5.2-CURRENT sources.  You'll need revision 1.57 of asr.c in
> order for the patch to apply cleanly.
> 
Here are the resuls, a panic during bootup. System is a dual xeon.
Unfortunately, this was before dumpdev was setup, so i don't
have a stack trace.

asr0: [GIANT-LOCKED]

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xe0001
fault code              = supervisor write, page not present
instruction pointer     = 0x8:0xc04738d2
stack pointer           = 0x10:0xc0c21918
frame pointer           = 0x10:0xc0c21930
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)
trap number             = 12
panic: page fault
at line 815 in file /usr/src/sys/i386/i386/trap.c
cpuid = 0; 
Uptime: 1s
Shutting down ACPI
Automatic reboot in 15 seconds - press a key on the console to abort

(kgdb) info line *0xc04738d2
Line 1957 of "/usr/src/sys/dev/asr/asr.c"
   starts at address 0xc04738cf <ASR_setSysTab+147>
   and ends at 0xc04738d5 <ASR_setSysTab+153>.


        (void)ASR_fillMessage((void *)&Message_Ptr,
          sizeof(I2O_EXEC_SYS_TAB_SET_MESSAGE) - sizeof(I2O_SG_ELEMENT)
           + ((3+SystemTable->NumberEntries) *
sizeof(I2O_SGE_SIMPLE_ELEMENT)));
     >>>I2O_MESSAGE_FRAME_setVersionOffset(&(Message_Ptr->StdMessageFrame),
          (I2O_VERSION_11 +
          (((sizeof(I2O_EXEC_SYS_TAB_SET_MESSAGE) - sizeof(I2O_SG_ELEMENT))
                        / sizeof(U32)) << 4)));







More information about the freebsd-scsi mailing list