svn commit: r192033 - stable/7/sys/dev/ata

John Baldwin jhb at freebsd.org
Wed Jun 10 13:57:04 UTC 2009


On Wednesday 10 June 2009 4:39:53 am Bruce Simpson wrote:
> John Baldwin wrote:
> > http://www.FreeBSD.org/~jhb/patches/ata_ali.patch
> > Ok, I've uploaded the patch, I must have just sent it inline before.
> >   
> 
> Thanks!
> 
> I did a p4 integ on my p4 work branch, built a NanoBSD USB stick image 
> with this patch incorporated into the kernel, booted from it 
> successfully on the affected machine, and got this panic just after the 
> WITNESS warning.
> 
> Had to transcribe by hand, no debugging symbols at the moment.
> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0 apic id = 00
> fault virtual address = 0x0
> fault code = supervisor read, page not present
> instruction pointer = 0x20:0x0
> stack pointer = 0x28:0xc4adbb68
> frame pointer = 0x28:0xc4adbb9c
> code segment = base 0x0, limit 0xfffff, type 0x1b
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 4 (g_down)
> [thread pid 4 tid 100008]
> Stopped at 0: error reading from address 0
> 
> ata_begin_transaction+0x18a
> ata_start+0x1db
> ata_queue_request+0x4a0
> ad_strategy+0x28f
> g_disk_start+0x16a
> g_io_schedule_down+0x281
> g_down_procbody+0x8d
> fork_exit+0xb8
> fork_trampoline+0x8
> 
> Looks like some sort of switch table, call %*edx, just after 
> ata_pio_write() in that function. I'll try to grab line number info on 
> next boot from NanoBSD build tree.

On an i386 8.0 kernel built here it is this line:

139		if ((error = ch->dma.load(request, NULL, &dummy))) {

which would seem to indicate dma.load is NULL somehow.  My patch doesn't 
affect that part of the code at all.  Are you using any modules or is ata 
compiled into your kernel?  Given that the resource stuff worked and that it 
worked on 7, I think I will commit it for now (and start the MFC timer) and 
assume this is a separate bug.

-- 
John Baldwin


More information about the svn-src-stable-7 mailing list