ACPICA: Disassembler: Remove duplicate code in _PLD processing.
authorBob Moore <robert.moore@intel.com>
Tue, 25 Aug 2015 02:28:32 +0000 (10:28 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 25 Aug 2015 21:11:30 +0000 (23:11 +0200)
ACPICA commit 6d9c827b540837b6e54059e17756a06985e4a196

ACPICA BZ 1176.

Link: https://bugs.acpica.org/show_bug.cgi?id=1176
Link: https://github.com/acpica/acpica/commit/6d9c827b
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/utxface.c
include/acpi/acbuffer.h

index 51cf52d52243c99233728a2d00d73e6171b38a28..c2bd5e2485a4c5d01440404909c3cebf9fc4be54 100644 (file)
@@ -517,7 +517,8 @@ acpi_decode_pld_buffer(u8 *in_buffer,
 
        /* Parameter validation */
 
-       if (!in_buffer || !return_buffer || (length < 16)) {
+       if (!in_buffer || !return_buffer
+           || (length < ACPI_PLD_REV1_BUFFER_SIZE)) {
                return (AE_BAD_PARAMETER);
        }
 
@@ -567,7 +568,7 @@ acpi_decode_pld_buffer(u8 *in_buffer,
        pld_info->rotation = ACPI_PLD_GET_ROTATION(&dword);
        pld_info->order = ACPI_PLD_GET_ORDER(&dword);
 
-       if (length >= ACPI_PLD_BUFFER_SIZE) {
+       if (length >= ACPI_PLD_REV2_BUFFER_SIZE) {
 
                /* Fifth 32-bit DWord (Revision 2 of _PLD) */
 
index 6b040f4ddfabc3131a9290aaf10319928d12bbbd..fcf9080eae85369e1a364fd730f266e5ec2732ec 100644 (file)
@@ -147,6 +147,7 @@ struct acpi_pld_info {
  *        (Intended for BIOS use only)
  */
 #define ACPI_PLD_REV1_BUFFER_SIZE               16     /* For Revision 1 of the buffer (From ACPI spec) */
+#define ACPI_PLD_REV2_BUFFER_SIZE               20     /* For Revision 2 of the buffer (From ACPI spec) */
 #define ACPI_PLD_BUFFER_SIZE                    20     /* For Revision 2 of the buffer (From ACPI spec) */
 
 /* First 32-bit dword, bits 0:32 */