[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