From: Chris Wright Date: Thu, 5 Jan 2006 20:13:25 +0000 (-0800) Subject: OK, now backout update asus acpi fix, and wait for Len to merge upstream X-Git-Tag: v2.6.14.6~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9bab629991bfc69898d72779c270254dda7db8c7;p=thirdparty%2Fkernel%2Fstable-queue.git OK, now backout update asus acpi fix, and wait for Len to merge upstream --- diff --git a/queue-2.6.14/acpi-fix-asus_acpi-on-samsung-p30-p35.patch b/queue-2.6.14/acpi-fix-asus_acpi-on-samsung-p30-p35.patch deleted file mode 100644 index e16c3a66284..00000000000 --- a/queue-2.6.14/acpi-fix-asus_acpi-on-samsung-p30-p35.patch +++ /dev/null @@ -1,73 +0,0 @@ -From stable-bounces@linux.kernel.org Tue Jan 3 19:59:37 2006 -Date: Wed, 4 Jan 2006 04:55:09 +0100 -From: Karol Kozimor -To: "Brown, Len" , stable@kernel.org -Message-ID: <20060104035509.GA4983@hell.org.pl> -Cc: linux-acpi@vger.kernel.org, Greek0@gmx.net -Subject: [PATCH] acpi: fix asus_acpi on Samsung P30/P35 - -Work around asus_acpi driver oopses on Samsung P30s and the like due to the -ACPI implicit return. - -The code used to rely on a certain method to return a NULL buffer, which -is now hardly possible with the implicit return code on by default. This -sort of fixes bugs #5067 and #5092 for now. - -Note: this patch makes the driver unusable on said machines (and on said -machines only) iff acpi=strict is specified, but it seems noone really uses -that. - -Signed-off-by: Karol Kozimor -Signed-off-by: Chris Wright -Signed-off-by: Greg Kroah-Hartman ---- - - drivers/acpi/asus_acpi.c | 27 ++++++++++++++++++--------- - 1 file changed, 18 insertions(+), 9 deletions(-) - -Index: linux-2.6.14.5/drivers/acpi/asus_acpi.c -=================================================================== ---- linux-2.6.14.5.orig/drivers/acpi/asus_acpi.c -+++ linux-2.6.14.5/drivers/acpi/asus_acpi.c -@@ -987,9 +987,21 @@ static int __init asus_hotk_get_info(voi - printk(KERN_NOTICE " BSTS called, 0x%02x returned\n", - bsts_result); - -- /* Samsung P30 has a device with a valid _HID whose INIT does not -- * return anything. Catch this one and any similar here */ -- if (buffer.pointer == NULL) { -+ /* This is unlikely with implicit return */ -+ if (buffer.pointer == NULL) -+ return -EINVAL; -+ -+ model = (union acpi_object *) buffer.pointer; -+ /* -+ * Samsung P30 has a device with a valid _HID whose INIT does not -+ * return anything. It used to be possible to catch this exception, -+ * but the implicit return code will now happily confuse the -+ * driver. We assume that every ACPI_TYPE_STRING is a valid model -+ * identifier but it's still possible to get completely bogus data. -+ */ -+ if (model->type == ACPI_TYPE_STRING) { -+ printk(KERN_NOTICE " %s model detected, ", model->string.pointer); -+ } else { - if (asus_info && /* Samsung P30 */ - strncmp(asus_info->oem_table_id, "ODEM", 4) == 0) { - hotk->model = P30; -@@ -1002,13 +1014,10 @@ static int __init asus_hotk_get_info(voi - "the developers with your DSDT\n"); - } - hotk->methods = &model_conf[hotk->model]; -- return AE_OK; -- } -+ -+ acpi_os_free(model); - -- model = (union acpi_object *)buffer.pointer; -- if (model->type == ACPI_TYPE_STRING) { -- printk(KERN_NOTICE " %s model detected, ", -- model->string.pointer); -+ return AE_OK; - } - - hotk->model = END_MODEL; diff --git a/queue-2.6.14/series b/queue-2.6.14/series index fa2896859d2..37f87815763 100644 --- a/queue-2.6.14/series +++ b/queue-2.6.14/series @@ -3,4 +3,3 @@ ieee80211_crypt_tkip-depends-on-net_radio.patch insanity-avoidance-in-proc.patch sysctl-don-t-overflow-the-user-supplied-buffer-with-0.patch ufs-inode-i_sem-is-not-released-in-error-path.patch -acpi-fix-asus_acpi-on-samsung-p30-p35.patch diff --git a/queue/acpi-fix-asus_acpi-on-samsung-p30-p35.patch b/queue/acpi-fix-asus_acpi-on-samsung-p30-p35.patch deleted file mode 100644 index 09d2bd17015..00000000000 --- a/queue/acpi-fix-asus_acpi-on-samsung-p30-p35.patch +++ /dev/null @@ -1,73 +0,0 @@ -From stable-bounces@linux.kernel.org Tue Jan 3 19:59:37 2006 -Date: Wed, 4 Jan 2006 04:55:09 +0100 -From: Karol Kozimor -To: "Brown, Len" , stable@kernel.org -Message-ID: <20060104035509.GA4983@hell.org.pl> -Cc: linux-acpi@vger.kernel.org, Greek0@gmx.net -Subject: [PATCH] acpi: fix asus_acpi on Samsung P30/P35 - -Work around asus_acpi driver oopses on Samsung P30s and the like due to the -ACPI implicit return. - -The code used to rely on a certain method to return a NULL buffer, which -is now hardly possible with the implicit return code on by default. This -sort of fixes bugs #5067 and #5092 for now. - -Note: this patch makes the driver unusable on said machines (and on said -machines only) iff acpi=strict is specified, but it seems noone really uses -that. - -Signed-off-by: Karol Kozimor -Signed-off-by: Chris Wright -Signed-off-by: Greg Kroah-Hartman ---- - - drivers/acpi/asus_acpi.c | 27 ++++++++++++++++++--------- - 1 files changed, 18 insertions(+), 9 deletions(-) - -Index: linux-2.6.15.y/drivers/acpi/asus_acpi.c -=================================================================== ---- linux-2.6.15.y.orig/drivers/acpi/asus_acpi.c -+++ linux-2.6.15.y/drivers/acpi/asus_acpi.c -@@ -987,9 +987,21 @@ static int __init asus_hotk_get_info(voi - printk(KERN_NOTICE " BSTS called, 0x%02x returned\n", - bsts_result); - -- /* Samsung P30 has a device with a valid _HID whose INIT does not -- * return anything. Catch this one and any similar here */ -- if (buffer.pointer == NULL) { -+ /* This is unlikely with implicit return */ -+ if (buffer.pointer == NULL) -+ return -EINVAL; -+ -+ model = (union acpi_object *) buffer.pointer; -+ /* -+ * Samsung P30 has a device with a valid _HID whose INIT does not -+ * return anything. It used to be possible to catch this exception, -+ * but the implicit return code will now happily confuse the -+ * driver. We assume that every ACPI_TYPE_STRING is a valid model -+ * identifier but it's still possible to get completely bogus data. -+ */ -+ if (model->type == ACPI_TYPE_STRING) { -+ printk(KERN_NOTICE " %s model detected, ", model->string.pointer); -+ } else { - if (asus_info && /* Samsung P30 */ - strncmp(asus_info->oem_table_id, "ODEM", 4) == 0) { - hotk->model = P30; -@@ -1002,13 +1014,10 @@ static int __init asus_hotk_get_info(voi - "the developers with your DSDT\n"); - } - hotk->methods = &model_conf[hotk->model]; -- return AE_OK; -- } -+ -+ acpi_os_free(model); - -- model = (union acpi_object *)buffer.pointer; -- if (model->type == ACPI_TYPE_STRING) { -- printk(KERN_NOTICE " %s model detected, ", -- model->string.pointer); -+ return AE_OK; - } - - hotk->model = END_MODEL; diff --git a/queue/series b/queue/series index 29f1414a949..93b59f1dafe 100644 --- a/queue/series +++ b/queue/series @@ -1,4 +1,3 @@ bridge-fix-faulty-check-in-br_stp_recalculate_bridge_id.patch ufs-inode-i_sem-is-not-released-in-error-path.patch -acpi-fix-asus_acpi-on-samsung-p30-p35.patch skge-handle-out-of-memory-on-ring-changes.patch