fwts: 32 bit ACPI table pointers break when running on 64 architectures

Bug #736874 reported by Colin Ian King
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
fwts (Ubuntu)
Fix Released
Medium
Colin Ian King

Bug Description

Binary package hint: fwts

An ACPI table (such as the RSDT) containing 32 bit pointers to ACPI tables in firmware causes a segfault when being processed by the ACPICA core engine (for example, running the method test) when executing fwts on a 64 bit machine.

The reason for this is that all tables are cached copies from firmware (to speed up execution and to allow for some easy pointer twiddling) using malloc(). Unfortunately on 64 bit systems these tables require a 64 bit pointer and the legacy 32 bit pointers to tables (for example in the RSDT) cannot address these.

A workaround is not to malloc() these tables but to anonymously mmap() with MAP_32BIT to ensure all tables can be 32 bit addressable.

Related branches

Changed in fwts (Ubuntu):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Colin King (colin-king)
Revision history for this message
Colin Ian King (colin-king) wrote :

A newer version 0.22.08 of the firmware test suite (fwts) tool is now available which fixes the above issue by ensuring tables used by ACPICA are allocated using a mmap() with MAP_32BIT and also checking for broken ACPI tables that may return an incorrect table size by the firmware.

New version for natty is in the PPA: at https://launchpad.net/~firmware-testing-team/+archive/scratch/+packages

Can this be uploaded? Thanks!

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package fwts - 0.22.08

---------------
fwts (0.22.08) natty; urgency=low

  * fix segfault of method test on 64 bit machines (LP: #736874)
 -- Colin King <email address hidden> Thu, 17 Mar 2011 14:13:12 +0000

Changed in fwts (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.