diff options
Diffstat (limited to 'drivers/acpi/acpica/rsmisc.c')
| -rw-r--r-- | drivers/acpi/acpica/rsmisc.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/acpi/acpica/rsmisc.c b/drivers/acpi/acpica/rsmisc.c index c2dd9aae4745..6e8e98cf598d 100644 --- a/drivers/acpi/acpica/rsmisc.c +++ b/drivers/acpi/acpica/rsmisc.c @@ -194,7 +194,8 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,  		case ACPI_RSC_COUNT_SERIAL_VEN: -			item_count = ACPI_GET16(source) - info->value; +			ACPI_MOVE_16_TO_16(&temp16, source); +			item_count = temp16 - info->value;  			resource->length = resource->length + item_count;  			ACPI_SET16(destination, item_count); @@ -202,9 +203,10 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,  		case ACPI_RSC_COUNT_SERIAL_RES: +			ACPI_MOVE_16_TO_16(&temp16, source);  			item_count = (aml_resource_length +  				      sizeof(struct aml_resource_large_header)) -			    - ACPI_GET16(source) - info->value; +			    - temp16 - info->value;  			resource->length = resource->length + item_count;  			ACPI_SET16(destination, item_count); @@ -289,9 +291,9 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,  			/* Copy the resource_source string */ +			ACPI_MOVE_16_TO_16(&temp16, source);  			source = -			    ACPI_ADD_PTR(void, aml, -					 (ACPI_GET16(source) + info->value)); +			    ACPI_ADD_PTR(void, aml, (temp16 + info->value));  			acpi_rs_move_data(target, source, item_count,  					  info->opcode);  			break;  |