myl driver failing during server shutdown

Jo Rhett jrhett at svcolo.com
Tue Aug 15 19:01:40 UTC 2006


> Jo Rhett wrote:
>> So I had thought that my motherboard didn't honor the acpi reset  
>> or  power down command.  It turns out that it does just fine --  
>> but the  shutdown is failing/hanging.  Attaching a serial console  
>> to it, I see

On Aug 11, 2006, at 8:27 PM, Scott Long wrote:
> Give this (untested) patch a try.  If that doesn't work, it's going to
> need a lot more digging, and I unfortunately don't have the time for
> that right now.

Now it fails to boot:

/boot/kernel/acpi.ko text=0x40c2c data=0x2160+0x1090 syms=[0x4+0x7810 
+0x4+0xa292]
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights  
reserved.
FreeBSD 6.0-RELEASE-p9 #0: Mon Aug 14 19:56:42 PDT 2006
     root at triceratops.lizardarts.com:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) Pros}ssor (1596.28-MHz 686-class CPU)
   Origin = "AuthenticAMD"  Id = 0x662  Stepping = 2
    
Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,C 
MOV,PAT,PSE36,MMX,FXSR,SSE>
   AMD Features=0xc0480800<SYSCALL,MP,MMX+,3DNow+,3DNow>
real memory  = 1040121856 (991 MB)
avail memory = 1009188864 (962 MB)
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <KM266P AWRDACPI> on motherboard
acpi0: Power Button (fixed)
pci_link0: <ACPI PCI Link LNKA> irq 11 on acpi0
pci_link1: <ACPI PCI Link LNKB> irq 10 on acpi0
pci_link2: <ACPI PCI Link LNKC> irq 12 on acpi0
pci_link3: <ACPI PCI Link LNKD> irq 5 on acpi0
pci_link4: <ACPI PCI Link LNKE> on acpi0
pci_link5: <ACPI PCI Link LNKF> on acpi0
pci_link6: <ACPI PCI Link LNK0> on acpi0
pci_link7: <ACPI PCI Link LNK1> on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8235/8237 (Apollo KM400/KM400A) host to PCI bridge> mem  
0xe0000000-0xe3ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
mly0: <Mylex AcceleRAID 170> mem 0xe8000000-0xe9ffffff irq 10 at  
device 8.0 on pci0
mly0: [GIANT-LOCKED]

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x0
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc05ec7d2
stack pointer           = 0x28:0xc0c20b14
frame pointer           = 0x28:0xc0c20b14
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
Uptime: 1s

>
> Scott
>
> Index: mly.c
> ===================================================================
> RCS file: /usr/ncvs/src/sys/dev/mly/mly.c,v
> retrieving revision 1.39
> diff -u -r1.39 mly.c
> --- mly.c	8 Aug 2005 12:23:26 -0000	1.39
> +++ mly.c	10 Aug 2006 11:57:54 -0000
> @@ -1128,9 +1128,12 @@
>  	    mc->mc_data = *data;
>  	    mc->mc_flags |= MLY_CMD_DATAOUT;
>  	}
> -	mc->mc_length = datasize;
> -	mc->mc_packet->generic.data_size = datasize;
> +    } else if (datasize != 0) {
> +	error = EINVAL;
> +	goto out;
>      }
> +    mc->mc_length = datasize;
> +    mc->mc_packet->generic.data_size = datasize;
>
>      /* run the command */
>      if ((error = mly_immediate_command(mc)))

-- 
Jo Rhett
senior geek
Silicon Valley Colocation



More information about the freebsd-scsi mailing list