Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Oct 2010 13:17:49 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-acpi@freebsd.org
Subject:   Re: MacBookPro 5,1
Message-ID:  <201010171317.49815.hselasky@c2i.net>
In-Reply-To: <201010171056.12606.hselasky@c2i.net>
References:  <201010121209.06397.hselasky@c2i.net> <201010131958.02252.jkim@FreeBSD.org> <201010171056.12606.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

Some more debugging reveals that:

The Resource type is 15, which is:

ACPI_RSCONVERT_INFO     AcpiRsConvertExtIrq[9] =

And that it fails on:

ACPI_RSC_SOURCEX

That means it writes beyond the 11 bytes reserved for this element!

During sub-routines of AcpiRsCreateAmlResources().

--HPS


On Sunday 17 October 2010 10:56:12 Hans Petter Selasky wrote:
> Hi,
> 
> After debugging for some time now I've found the issue.
> 
> 1) I extended all allocations from ACPI to PAGE_SIZE.
> 2) Then I filled the extra area with zero.
> 3) Then at free I checked if some buffers were overwritten, and indeed I
> got bingo this time. The printout has the format:
> 
> printf("Dirty free <allocation length> <first overwritten byte offset>\n");
> kdb_backtrace();
> 
> Is this enough information for you to make a patch?
> 
> unknown: I/O range not supported 0xffffff00024c1000 0xcf8 0xcff
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> acpi_parse_resources() at acpi_parse_resources+0x287
> acpi_probe_child() at acpi_probe_child+0x1b4
> AcpiNsWalkNamespace() at AcpiNsWalkNamespace+0x163
> AcpiWalkNamespace() at AcpiWalkNamespace+0xbf
> acpi_attach() at acpi_attach+0x8fa
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff irq 0,8 on
> acpi0
> Timecounter "HPET" frequency 25000000 Hz quality 900
> hpet0: [FILTER]
> Event timer "HPET" frequency 25000000 Hz quality 450
> Event timer "HPET1" frequency 25000000 Hz quality 440
> Event timer "HPET2" frequency 25000000 Hz quality 440
> Event timer "HPET3" frequency 25000000 Hz quality 440
> Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
> cpu0: <ACPI CPU> on acpi0
> cpu1: <ACPI CPU> on acpi0
> acpi_acad0: <AC Adapter> on acpi0
> acpi_lid0: <Control Method Lid Switch> on acpi0
> acpi_lid0: enable wake failed
> acpi_button0: <Power Button> on acpi0
> acpi_button1: <Sleep Button> on acpi0
> pcib0: <ACPI Host-PCI bridge> on acpi0
> pci0: <ACPI PCI bus> on pcib0
> Dirty free 13 at 13
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> AcpiOsFree() at AcpiOsFree+0x7a
> AcpiUtDeleteInternalObj() at AcpiUtDeleteInternalObj+0x77
> AcpiUtUpdateRefCount() at AcpiUtUpdateRefCount+0xb4
> AcpiUtUpdateObjectReference() at AcpiUtUpdateObjectReference+0x45
> AcpiRsSetSrsMethodData() at AcpiRsSetSrsMethodData+0xf2
> AcpiSetCurrentResources() at AcpiSetCurrentResources+0x49
> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x204
> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt+0x1a9
> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
> pci_add_resources() at pci_add_resources+0x14a
> pci_add_children() at pci_add_children+0x10e
> acpi_pci_attach() at acpi_pci_attach+0xcd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1fd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0xa28
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> pci_link32: Enter debugger
> pci_link43: Enter debugger
> Dirty free 13 at 13
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> AcpiOsFree() at AcpiOsFree+0x7a
> AcpiUtDeleteInternalObj() at AcpiUtDeleteInternalObj+0x77
> AcpiUtUpdateRefCount() at AcpiUtUpdateRefCount+0xb4
> AcpiUtUpdateObjectReference() at AcpiUtUpdateObjectReference+0x45
> AcpiRsSetSrsMethodData() at AcpiRsSetSrsMethodData+0xf2
> AcpiSetCurrentResources() at AcpiSetCurrentResources+0x49
> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x204
> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt+0x1a9
> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
> pci_add_resources() at pci_add_resources+0x14a
> pci_add_children() at pci_add_children+0x10e
> acpi_pci_attach() at acpi_pci_attach+0xcd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1fd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0xa28
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> pci_link33: Enter debugger
> Dirty free 13 at 13
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> AcpiOsFree() at AcpiOsFree+0x7a
> AcpiUtDeleteInternalObj() at AcpiUtDeleteInternalObj+0x77
> AcpiUtUpdateRefCount() at AcpiUtUpdateRefCount+0xb4
> AcpiUtUpdateObjectReference() at AcpiUtUpdateObjectReference+0x45
> AcpiRsSetSrsMethodData() at AcpiRsSetSrsMethodData+0xf2
> AcpiSetCurrentResources() at AcpiSetCurrentResources+0x49
> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x204
> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt+0x1a9
> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
> pci_add_resources() at pci_add_resources+0x14a
> pci_add_children() at pci_add_children+0x10e
> acpi_pci_attach() at acpi_pci_attach+0xcd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1fd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0xa28
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> pci_link34: Enter debugger
> Dirty free 13 at 13
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> AcpiOsFree() at AcpiOsFree+0x7a
> AcpiUtDeleteInternalObj() at AcpiUtDeleteInternalObj+0x77
> AcpiUtUpdateRefCount() at AcpiUtUpdateRefCount+0xb4
> AcpiUtUpdateObjectReference() at AcpiUtUpdateObjectReference+0x45
> AcpiRsSetSrsMethodData() at AcpiRsSetSrsMethodData+0xf2
> AcpiSetCurrentResources() at AcpiSetCurrentResources+0x49
> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x204
> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt+0x1a9
> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
> pci_add_resources() at pci_add_resources+0x14a
> pci_add_children() at pci_add_children+0x10e
> acpi_pci_attach() at acpi_pci_attach+0xcd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1fd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0xa28
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> pci_link41: Enter debugger
> pci_link42: Enter debugger
> Dirty free 13 at 13
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> AcpiOsFree() at AcpiOsFree+0x7a
> AcpiUtDeleteInternalObj() at AcpiUtDeleteInternalObj+0x77
> AcpiUtUpdateRefCount() at AcpiUtUpdateRefCount+0xb4
> AcpiUtUpdateObjectReference() at AcpiUtUpdateObjectReference+0x45
> AcpiRsSetSrsMethodData() at AcpiRsSetSrsMethodData+0xf2
> AcpiSetCurrentResources() at AcpiSetCurrentResources+0x49
> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x204
> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt+0x1a9
> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
> pci_add_resources() at pci_add_resources+0x14a
> pci_add_children() at pci_add_children+0x10e
> acpi_pci_attach() at acpi_pci_attach+0xcd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1fd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0xa28
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> pci_link36: Enter debugger
> Dirty free 13 at 13
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> AcpiOsFree() at AcpiOsFree+0x7a
> AcpiUtDeleteInternalObj() at AcpiUtDeleteInternalObj+0x77
> AcpiUtUpdateRefCount() at AcpiUtUpdateRefCount+0xb4
> AcpiUtUpdateObjectReference() at AcpiUtUpdateObjectReference+0x45
> AcpiRsSetSrsMethodData() at AcpiRsSetSrsMethodData+0xf2
> AcpiSetCurrentResources() at AcpiSetCurrentResources+0x49
> acpi_pci_link_route_irqs() at acpi_pci_link_route_irqs+0x204
> acpi_pci_link_route_interrupt() at acpi_pci_link_route_interrupt+0x1a9
> acpi_pcib_route_interrupt() at acpi_pcib_route_interrupt+0x40d
> pci_assign_interrupt() at pci_assign_interrupt+0x1c3
> pci_add_resources() at pci_add_resources+0x14a
> pci_add_children() at pci_add_children+0x10e
> acpi_pci_attach() at acpi_pci_attach+0xcd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_pcib_attach() at acpi_pcib_attach+0x1a7
> acpi_pcib_acpi_attach() at acpi_pcib_acpi_attach+0x1fd
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> acpi_attach() at acpi_attach+0xa28
> device_attach() at device_attach+0x69
> bus_generic_attach() at bus_generic_attach+0x1a
> nexus_acpi_attach() at nexus_acpi_attach+0x69
> device_attach() at device_attach+0x69
> bus_generic_new_pass() at bus_generic_new_pass+0xd6
> bus_set_pass() at bus_set_pass+0x7a
> configure() at configure+0xa
> mi_startup() at mi_startup+0x59
> btext() at btext+0x2c
> pci_link35: Enter debugger
> pci_link39: Enter debugger
> 
> 
> --HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201010171317.49815.hselasky>