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>