Can you try this patch to see if it helps on your HP systems?

? acpipci.diff
? acpitz.c.fix
? condref
? msg
? passive.diff
? tzdiff
? xdiff
Index: dsdt.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.157
diff -u -p -u -p -b -r1.157 dsdt.c
--- dsdt.c      5 Dec 2009 02:38:11 -0000       1.157
+++ dsdt.c      19 Jun 2010 03:10:08 -0000
@@ -699,6 +699,11 @@ aml_delchildren(struct aml_node *node)

                aml_delchildren(onode);

+               if (onode->value && onode->value->refcnt > 1) {
+                       printf("MULTI: %s\n", aml_nodename(onode));
+                       onode->value->node = NULL;
+               }
+
                /* Decrease reference count */
                aml_xdelref(&onode->value, "");

@@ -976,6 +981,9 @@ aml_copyvalue(struct aml_value *lhs, str
                break;
        case AML_OBJTYPE_OBJREF:
                lhs->v_objref = rhs->v_objref;
+               aml_xaddref(lhs->v_objref.ref, "");
+               printf("copy objref: %x %s\n", lhs->v_objref.type,
+                       aml_nodename(lhs->v_objref.ref->node));
                break;
        default:
                printf("copyvalue: %x", rhs->type);
@@ -3626,11 +3634,11 @@ aml_xparse(struct aml_scope *scope, int
                /* CondRef: rr => I */
                ival = 0;
                if (opargs[0]->node != NULL) {
-                       aml_freevalue(opargs[1]);
-
                        /* Create Object Reference */
-                       _aml_setvalue(opargs[1], AML_OBJTYPE_OBJREF, opcode, 
opargs[0]);
-                       aml_xaddref(opargs[1], "CondRef");
+                       opargs[2] = aml_allocvalue(AML_OBJTYPE_OBJREF, opcode,
+                               opargs[0]);
+                       aml_xaddref(opargs[0], "CondRef");
+                       aml_xstore(scope, opargs[1], 0, opargs[2]);

                        /* Mark that we found it */
                        ival = -1;


>
>
> On 01/24/10 02:00, Zoran IvaniD wrote:
>> On Fri, Jan 22, 2010 at 02:04:23PM +0100, Jan Stary wrote:
>> <snip>
>>> correctly (?) recognizes the SpeedStep frequencies:
>>>
>>>     cpu0: Enhanced SpeedStep 2528 MHz: speeds: 2534, 2533, 1600, 800 MHz
>>>
>>> The kernel without ACPI does not:
>>>
>>>     cpu0: unknown Enhanced SpeedStep CPU, msr 0x0617492506004925
>>>     cpu0: using only highest and lowest power states
>>>     cpu0: Enhanced SpeedStep 2528 MHz: speeds: 19467, 1600 MHz
>>>
>> <snip>
>>> mtrr: Pentium Pro MTRR support
>>> "RICOH, Bay8Controller" (manufacturer 0x0, product 0x0) at pcmcia0
>>> function 0 not configured
>>> copyvalue: efff0021Store to default type!    efff0021
>>>
>>> 5c12 Called: \\_SB_.PCI0.LPCB.EC0_.RPPC
>>>    local0:  0xd2c14d04 cnt:01 stk:60 integer: 2
>>>    local1:  0xd2c1d3c4 cnt:01 stk:61 integer: 0
>>>    local2:  0xd2c34384 cnt:02 stk:62 objref: 0xd2c20044 index:0
>>> opcode:CondRef
>>> uvm_fault(0xd08ad720, 0xefffe000, 0, 1) ->  d
>>> kernel: page fault trap, code=0
>>> Stopped at  aml_nodename+0x1b:      pushl   0(%ebx)
>>> ddb{0}>  rebooting...
>>>
>>>
>>
>> Hi!
>>
>> This looks same as problem on my hp 6930p. According to Jordan it's some
>> reference counting bug somewhere. This makes it boot...
>>
>>
>> Index: dsdt.c
>> ===================================================================
>> RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
>> retrieving revision 1.157
>> diff -u -p -r1.157 dsdt.c
>> --- dsdt.c   5 Dec 2009 02:38:11 -0000       1.157
>> +++ dsdt.c   23 Jan 2010 23:49:46 -0000
>> @@ -3629,7 +3629,7 @@ aml_xparse(struct aml_scope *scope, int
>>                      aml_freevalue(opargs[1]);
>>
>>                      /* Create Object Reference */
>> -                    _aml_setvalue(opargs[1], AML_OBJTYPE_OBJREF, opcode, 
>> opargs[0]);
>> +                    _aml_setvalue(opargs[1], AML_OBJTYPE_INTEGER, 
>> 0xDEADBEEF,
>> opargs[0]);
>>                      aml_xaddref(opargs[1], "CondRef");
>>
>>                      /* Mark that we found it */
>>
>>
>
> Looks like the same problem I have on my hp 6730b. The diff makes it
> boot, but if I plug or unplug the ac I get the panic below and the only
> way to leave ddb is hard reboot.
>
> Disabled acpiec makes it boot too and I've not seen any crashes yet.
> acpidump -o output in a tar is attached.
>
>
> panic: config_detach: forced detach of bge0 failed (45)
> Stopped at      Debugger+0x5:   leave
> RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS
> PANIC!
> IF RUNNING SMP, USE 'mach ddbcpu <#>' AND 'trace' ON OTHER PROCESSORS,
> TOO.
> DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
> ddb{1}> trace
> Debugger() at Debugger+0x5
> panic() at panic+0x122
> config_detach() at config_detach+0x27f
> config_detach_children() at config_detach_children+0x45
> pci_detach_devices() at pci_detach_devices+0x19
> ppb_hotplug_remove() at ppb_hotplug_remove+0x25
> workq_thread() at workq_thread+0x33
> end trace frame: 0x0, count: -7
> ddb{1}> ps
>     PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
>    3471      1   3471      0  3   0x2040180  select        sendmail
>    2064      1   2064      0  3   0x2004082  ttyin         getty
>   18842      1  18842      0  3   0x2004082  ttyin         getty
>   15817      1  15817      0  3   0x2004082  ttyin         getty
>   27825      1  27825      0  3   0x2004082  ttyin         getty
>   19379      1  19379      0  3   0x2004082  ttyin         getty
>    6143      1   6143      0  3   0x2004082  ttyin         getty
>   12058      1  12058      0  3   0x2000080  select        cron
>   26732      1  26732      0  3   0x2000180  select        inetd
>   27189      1  27189      0  3   0x2000080  select        sshd
>     168  25640  25640     74  3   0x2000180  bpf           pflogd
>   25640      1  25640      0  3   0x2000080  netio         pflogd
>    4164  11186  11186     73  3   0x2000180  poll          syslogd
>   11186      1  11186      0  3   0x2000088  netio         syslogd
>   30145      1  30145     77  3   0x2000180  poll          dhclient
>   14937      1   5441      0  3   0x2000082  poll          dhclient
>      21      0      0      0  3   0x2100200  bored         crypto
>      20      0      0      0  3   0x2100200  aiodoned      aiodoned
>      19      0      0      0  3   0x2100200  syncer        update
>      18      0      0      0  3   0x2100200  cleaner       cleaner
>      17      0      0      0  3    0x100200  reaper        reaper
>      16      0      0      0  3   0x2100200  pgdaemon      pagedaemon
>      15      0      0      0  3   0x2100200  pftm          pfpurge
>      14      0      0      0  3   0x2100200  usbevt        usb7
>      13      0      0      0  3   0x2100200  usbevt        usb6
>      12      0      0      0  3   0x2100200  usbevt        usb5
>      11      0      0      0  3   0x2100200  usbevt        usb4
>      10      0      0      0  3   0x2100200  usbevt        usb3
>       9      0      0      0  3   0x2100200  usbevt        usb2
>       8      0      0      0  3   0x2100200  usbevt        usb1
>       7      0      0      0  3   0x2100200  usbtsk        usbtask
>       6      0      0      0  3   0x2100200  usbevt        usb0
>       5      0      0      0  7   0x2100200                acpi0
>       4      0      0      0  3  0x40100200                idle1
> *    3      0      0      0  7   0x2100200                syswq
>       2      0      0      0  3  0x40100200                idle0
>       1      0      1      0  3   0x2004080  wait          init
>       0     -1      0      0  3   0x2080200  scheduler     swapper
> ddb{1}> boot reboot
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out
> bge0: PHY read timed out

Reply via email to