rpms/kernel/F-13 acpi-ec-limit-burst-to-64-bit.patch, NONE, 1.1 kernel.spec, 1.1979, 1.1980

Chuck Ebbert cebbert at fedoraproject.org
Tue Apr 13 17:15:43 UTC 2010


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv24362

Modified Files:
	kernel.spec 
Added Files:
	acpi-ec-limit-burst-to-64-bit.patch 
Log Message:
Fix ACPI errors on boot caused by EC burst mode patch (#581535)
Re-enable ACPI EC delay patch (#579510)

acpi-ec-limit-burst-to-64-bit.patch:
 exprep.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

--- NEW FILE acpi-ec-limit-burst-to-64-bit.patch ---
ACPI: EC: Limit burst to 64 bit

From: Alexey Starikovskiy <astarikovskiy at suse.de>

access_bit_width field is u8 in ACPICA, thus 256 value written to it
becomes 0, causing divide by zero later.
Proper fix would be to remove access_bit_width at all, just because
we already have access_byte_width, which is access_bit_width / 8.
Limit access width to 64 bit for now.

Signed-off-by: Alexey Starikovskiy <astarikovskiy at suse.de>
---
 drivers/acpi/acpica/exprep.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/acpi/acpica/exprep.c b/drivers/acpi/acpica/exprep.c
index a610ebe..2fbfe51 100644
--- a/drivers/acpi/acpica/exprep.c
+++ b/drivers/acpi/acpica/exprep.c
@@ -471,13 +471,18 @@ acpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info)
 		/* allow full data read from EC address space */
 		if (obj_desc->field.region_obj->region.space_id ==
 			ACPI_ADR_SPACE_EC) {
-			if (obj_desc->common_field.bit_length > 8)
-				obj_desc->common_field.access_bit_width =
-				ACPI_ROUND_UP(obj_desc->common_field.
-							bit_length, 8);
+			if (obj_desc->common_field.bit_length > 8) {
+				unsigned width =
+					ACPI_ROUND_BITS_UP_TO_BYTES(
+					obj_desc->common_field.bit_length);
+				// access_bit_width is u8, don't overflow it
+				if (width > 8)
+					width = 8;
 				obj_desc->common_field.access_byte_width =
-				ACPI_DIV_8(obj_desc->common_field.
-							access_bit_width);
+							width;
+				obj_desc->common_field.access_bit_width =
+							8 * width;
+			}
 		}
 
 		ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-13/kernel.spec,v
retrieving revision 1.1979
retrieving revision 1.1980
diff -u -p -r1.1979 -r1.1980
--- kernel.spec	13 Apr 2010 03:34:43 -0000	1.1979
+++ kernel.spec	13 Apr 2010 17:15:42 -0000	1.1980
@@ -14,6 +14,7 @@ Summary: The Linux kernel
 %undefine buildid
 %endif
 
+###################################################################
 # Polite request for people who spin their own kernel rpms:
 # please modify the "buildid" define in a way that identifies
 # that the kernel isn't the stock distribution kernel, for example,
@@ -23,6 +24,7 @@ Summary: The Linux kernel
 # (Uncomment the '#' and both spaces below to set the buildid.)
 #
 # % define buildid .local
+###################################################################
 
 # buildid can also be specified on the rpmbuild command line
 # by adding --define="buildid .whatever". If both kinds of buildid
@@ -782,6 +784,7 @@ Patch12102: b43_-fall-back-gracefully-to
 
 Patch12200: acpi-ec-add-delay-before-write.patch
 Patch12210: acpi-ec-allow-multibyte-access-to-ec.patch
+Patch12220: acpi-ec-limit-burst-to-64-bit.patch
 
 %endif
 
@@ -1264,11 +1267,12 @@ ApplyPatch linux-2.6-usb-wwan-update.pat
 # ACPI
 ApplyPatch linux-2.6-defaults-acpi-video.patch
 ApplyPatch linux-2.6-acpi-video-dos.patch
-# Breaks boot on lenovo t410
-#ApplyPatch acpi-ec-add-delay-before-write.patch
-ApplyPatch acpi-ec-allow-multibyte-access-to-ec.patch
 ApplyPatch linux-2.6-acpi-video-export-edid.patch
 
+ApplyPatch acpi-ec-add-delay-before-write.patch
+ApplyPatch acpi-ec-allow-multibyte-access-to-ec.patch
+ApplyPatch acpi-ec-limit-burst-to-64-bit.patch
+
 # Various low-impact patches to aid debugging.
 ApplyPatch linux-2.6-debug-sizeof-structs.patch
 ApplyPatch linux-2.6-debug-nmi-timeout.patch
@@ -2067,13 +2071,17 @@ fi
 # and build.
 
 %changelog
+* Tue Apr 13 2010 Chuck Ebbert <cebbert at redhat.com>
+- Fix ACPI errors on boot caused by EC burst mode patch (#581535)
+- Re-enable ACPI EC delay patch (#579510)
+
 * Tue Apr 13 2010 Ben Skeggs <bskeggs at redhat.com>
 - drm-nouveau-acpi-edid-fallback.patch: fix oops on cards without _DSM method
 
 * Mon Apr 12 2010 Matthew Garrett <mjg at redhat.com>
 - linux-2.6-acpi-video-export-edid.patch:
   drm-nouveau-acpi-edid-fallback.patch: Let nouveau get an EDID from ACPI
-   
+
 * Fri Apr 09 2010 John W. Linville <linville at redhat.com> 2.6.33.2-41
 - b43: Allow PIO mode to be selected at module load
 - b43: fall back gracefully to PIO mode after fatal DMA errors



More information about the scm-commits mailing list