kern/113986: [patch] [acpi] viapm.ko kernel module incorrectly reprograms SMBus base address, thereby causing a hang on the ASUS A7V when trying to shutdown -p

Martin Birgmeier martin at email.aon.at
Sun Jun 24 11:20:02 UTC 2007


>Number:         113986
>Category:       kern
>Synopsis:       [patch] [acpi] viapm.ko kernel module incorrectly reprograms SMBus base address, thereby causing a hang on the ASUS A7V when trying to shutdown -p
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 24 11:20:01 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Martin Birgmeier
>Release:        FreeBSD 6.2-RELEASE i386
>Organization:
MBi at home
>Environment:
System: FreeBSD gandalf.xyzzy 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Sat Jan 13 20:23:55 CET 2007 root at gandalf.xyzzy:/d/14.1/OBJ/FreeBSD/RELENG_6_2_0_RELEASE/src/sys/XYZZY i386


>Description:
	The Makefile for the viapm.ko kernel module (at
	sys/modules/i2c/controllers/viapm/Makefile) sets

	    CFLAGS         += -DVIAPM_BASE_ADDR=0x6000

	which breaks the power-off function (shutdown -p) on my ASUS A7V
	motherboard.

	The reason for the latter is that the ACPI \_SI.SST method of
	the A7V bios only knows about the standard base address of the
	SMBus controller (0xe800). If the controller suddenly appears
	at another address, "empty space" will be read, causing an
	infinite loop while executing the method during acpi_shutdown_final()
	in sys/dev/acpica/acpi.c.

	This fixes i386/97468.

	p.s. The e-mail address is bogus as I am paranoid of junk mail.
	Please reply via adding to the PR.

>How-To-Repeat:
	Use FreeBSD source as is. :-)

>Fix:

*** ./sys/modules/i2c/controllers/viapm/Makefile.ORIG	Tue Nov  8 18:03:55 2005
--- ./sys/modules/i2c/controllers/viapm/Makefile	Sun Jun 24 12:12:18 2007
***************
*** 4,9 ****
  KMOD		= viapm
  SRCS		= device_if.h bus_if.h isa_if.h iicbb_if.h pci_if.h smbus_if.h \
  		  opt_isa.h viapm.c
- CFLAGS		+= -DVIAPM_BASE_ADDR=0x6000
  
  .include <bsd.kmod.mk>
--- 4,8 ----

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list