fwts: CMOS reading should have interrupts disabled during a read op

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

Bug Description

To stop any potential race conditions between writing to port 0x70 and reading from port 0x71 we should disable interrupts to be safe. We can do this by:

iopl(3);
asm("cli");
write to port 0x70
read data from port 0x71
asm("sti");
iopl(0);

Revision history for this message
Colin Ian King (colin-king) wrote :

Fix committed, commit cf35b18c8d91ff9a24b076f6d7bd3f20ddec5310, will appear in fwts V0.24.11

Changed in fwts (Ubuntu):
status: New → In Progress
importance: Undecided → Low
assignee: nobody → Colin King (colin-king)
status: In Progress → Fix Committed
Revision history for this message
Keng-Yu Lin (lexical) wrote :
Download full text (5.2 KiB)

A newer version 0.24.14 of fwts is available which fixes this bug and a few other minor fixes the Precise release.

Version V0.24.14 can be found in the PPA:

https://launchpad.net/~firmware-testing-team/+archive/ppa-fwts-devel

Can this be uploaded this to Precise universe?

This has been soaked tested against hundreds of firmware and kernel log snapshots to check for any regressions and against a test suite to check for regressions in fwts.

This new version includes the following major bug fixes since V0.23.25

  * Add copy-acpica.sh script that updates the ACPI
  * data: klog: add _OSC evaluation failure tests
  * data: klog: add _CRS evaluation PNP kernel erro
  * uefi: csm: fix typo.
  * acpi: power_button: remove check on /proc/acpi/button/power
  * lib: fwts_button: add power button support
  * acpi: lid: use button helper
  * lib: add generic button helper into lib
  * lib: add generic button helper
  * debian: update control
  * uefi: add UEFI CSM check.
  * lib: update battery helpers and re-work tests
  * acpi: s3power: use fwts_battery helper
  * lib: add fwts_battery
  * s3power: use fwts_ac_adapter()
  * acpi: ac_adapter: use fwts_ac_adapter lib
  * lib: add fwts_ac_adapter
  * acpi: ac_adapter: use newer /sys interface
  * acpi: method: clean up dangling whitespaces
  * acpi: method: handle mobile platform tests when FADT is lying
  * acpi: method: dump return object on non-null return failures.
  * acpi: method: make lock delay between each test 0 usecs
  * acpi: method: on non-mobile tests explicitly report skipped mobile tests
  * lib: fwts_cmos: disabled interrupts during port I/O (LP: #880472)
  * bios: pciirq: fix typo
  * bios: pnp: fix typo in event_notification_addr
  * fwts-collect: fix mpdump log and don't remove README.txt
  * doc: remove --dmidecode option from man page
  * pci: crs: fetch BIOS date from /sys/class/dmi/id/bios_date
  * lib + tests: remove framework dmidecode and --dmidecode option
  * lib: fwts_dump: don't use fw->dmidecode anymore
  * lib: fwts_dump: warnings if not being run by root.
  * lib: fwts_framework: fwts_framework_show_version() more generic
  * lib + tests: add warning flag to fwts_check_root_euid()
  * klog: enable this for non-x86
  * pci: maxreadreq: enable this for non-x86
  * kernel: oops: enable this for non-x86
  * lib: fwts_dump: do sensible non-x86 dumps
  * lib: fwts_smbios: fix non-x86 build failure.
  * bios: Add PnP Installation Check structure test
  * bios: pciirq: fix formatting
  * bios: Add Legacy PCI IRQ Routing Table test
  * debian: remove dependancy on dmidecode
  * pci: crs: get BIOS date from SMBIOS rather than rely on dmidecode
  * lib: fwts_smbios: add in fwts_dmi_header from dmi_decode
  * lib: fwts_smbios, fetch version number too.
  * dmi: dmi_decode: complete re-write, better detection (LP: #874373)
  * bios: smbios: handle legacy DMI header
  * lib: smbios: handle legacy DMI header
  * lib: tidy up headers
  * bios: smbios: use smbios find helper
  * lib: add smbios find helper
  * bios: smbios: check header fully and dump fields (LP: #876331)
  * bios: bios32: use fwts_checksum
  * acpi: checksum: use fwts_checksum
  * lib: fwts_acpi_tables: use fwts_c...

Read more...

Revision history for this message
Martin Pitt (pitti) wrote :

As the patch was committed upstream, I unsubscribe sponsors now.

Revision history for this message
Colin Ian King (colin-king) wrote :

@Martin, I'm not sure how we proceed here, since we'd like the new version of fwts 0.24.14 to be uploaded and hence superceed the older version fwts 0.23.25. The newer version will include this bug fix as well as a bunch of other fixes and new features for Precise.

Revision history for this message
Colin Ian King (colin-king) wrote :

.."fix committed" was marked in this bug by me as the commit has been committed to the git repo - however, the new changes have not been uploaded.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.3 KiB)

This bug was fixed in the package fwts - 0.24.14

---------------
fwts (0.24.14) precise; urgency=low

  * Add copy-acpica.sh script that updates the ACPI
  * data: klog: add _OSC evaluation failure tests
  * data: klog: add _CRS evaluation PNP kernel erro
  * uefi: csm: fix typo.

fwts (0.24.13) precise; urgency=low

  * acpi: power_button: remove check on /proc/acpi/button/power
  * lib: fwts_button: add power button support
  * acpi: lid: use button helper
  * lib: add generic button helper into lib
  * lib: add generic button helper

fwts (0.24.12) precise; urgency=low

  * debian: update control
  * uefi: add UEFI CSM check.

fwts (0.24.11) oneiric; urgency=low

  * lib: update battery helpers and re-work tests
  * acpi: s3power: use fwts_battery helper
  * lib: add fwts_battery
  * s3power: use fwts_ac_adapter()
  * acpi: ac_adapter: use fwts_ac_adapter lib
  * lib: add fwts_ac_adapter
  * acpi: ac_adapter: use newer /sys interface
  * acpi: method: clean up dangling whitespaces
  * acpi: method: handle mobile platform tests when FADT is lying
  * acpi: method: dump return object on non-null return failures.
  * acpi: method: make lock delay between each test 0 usecs
  * acpi: method: on non-mobile tests explicitly report skipped mobile tests
  * lib: fwts_cmos: disabled interrupts during port I/O (LP: #880472)
  * bios: pciirq: fix typo
  * bios: pnp: fix typo in event_notification_addr

fwts (0.24.10) oneiric; urgency=low

  * fwts-collect: fix mpdump log and don't remove README.txt
  * doc: remove --dmidecode option from man page
  * pci: crs: fetch BIOS date from /sys/class/dmi/id/bios_date
  * lib + tests: remove framework dmidecode and --dmidecode option
  * lib: fwts_dump: don't use fw->dmidecode anymore
  * lib: fwts_dump: warnings if not being run by root.
  * lib: fwts_framework: fwts_framework_show_version() more generic
  * lib + tests: add warning flag to fwts_check_root_euid()
  * klog: enable this for non-x86
  * pci: maxreadreq: enable this for non-x86
  * kernel: oops: enable this for non-x86
  * lib: fwts_dump: do sensible non-x86 dumps
  * lib: fwts_smbios: fix non-x86 build failure.

fwts (0.24.09) oneiric; urgency=low

  * bios: Add PnP Installation Check structure test
  * bios: pciirq: fix formatting
  * bios: Add Legacy PCI IRQ Routing Table test

fwts (0.24.08) oneiric; urgency=low

  * debian: remove dependancy on dmidecode
  * pci: crs: get BIOS date from SMBIOS rather than rely on dmidecode
  * lib: fwts_smbios: add in fwts_dmi_header from dmi_decode
  * lib: fwts_smbios, fetch version number too.
  * dmi: dmi_decode: complete re-write, better detection (LP: #874373)
  * bios: smbios: handle legacy DMI header
  * lib: smbios: handle legacy DMI header
  * lib: tidy up headers
  * bios: smbios: use smbios find helper
  * lib: add smbios find helper
  * bios: smbios: check header fully and dump fields (LP: #876331)
  * bios: bios32: use fwts_checksum
  * acpi: checksum: use fwts_checksum
  * lib: fwts_acpi_tables: use fwts_checksum
  * lib: multiproc: use fwts_checksum
  * lib: add checksum helper fwts_checksum()
  * bios: smbios: use systab efi helper
  * lib: fwts_acpi_tables: use systab efi helper
  * lib: ad...

Read more...

Changed in fwts (Ubuntu):
status: Fix Committed → 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.