diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2016-05-05 09:23:04 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-05-05 09:28:58 -0400 |
commit | f18ebc211e259d4f591e39e74b2aa2de226c9a1d (patch) | |
tree | d651da8932ba87dbac83b5a60a50b5dd1388596b /drivers/acpi | |
parent | a508d954af748bc1f5f1d9174f167a8650fca923 (diff) |
ACPI / sysfs: fix error code in get_status()
The problem with ornamental, do-nothing gotos is that they lead to
"forgot to set the error code" bugs. We should be returning -EINVAL
here but we don't. It leads to an uninitalized variable in
counter_show():
drivers/acpi/sysfs.c:603 counter_show()
error: uninitialized symbol 'status'.
Fixes: 1c8fce27e275 (ACPI: introduce drivers/acpi/sysfs.c)
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/sysfs.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c index 0243d375c6fd..4b3a9e27f1b6 100644 --- a/drivers/acpi/sysfs.c +++ b/drivers/acpi/sysfs.c | |||
@@ -555,23 +555,22 @@ static void acpi_global_event_handler(u32 event_type, acpi_handle device, | |||
555 | static int get_status(u32 index, acpi_event_status *status, | 555 | static int get_status(u32 index, acpi_event_status *status, |
556 | acpi_handle *handle) | 556 | acpi_handle *handle) |
557 | { | 557 | { |
558 | int result = 0; | 558 | int result; |
559 | 559 | ||
560 | if (index >= num_gpes + ACPI_NUM_FIXED_EVENTS) | 560 | if (index >= num_gpes + ACPI_NUM_FIXED_EVENTS) |
561 | goto end; | 561 | return -EINVAL; |
562 | 562 | ||
563 | if (index < num_gpes) { | 563 | if (index < num_gpes) { |
564 | result = acpi_get_gpe_device(index, handle); | 564 | result = acpi_get_gpe_device(index, handle); |
565 | if (result) { | 565 | if (result) { |
566 | ACPI_EXCEPTION((AE_INFO, AE_NOT_FOUND, | 566 | ACPI_EXCEPTION((AE_INFO, AE_NOT_FOUND, |
567 | "Invalid GPE 0x%x", index)); | 567 | "Invalid GPE 0x%x", index)); |
568 | goto end; | 568 | return result; |
569 | } | 569 | } |
570 | result = acpi_get_gpe_status(*handle, index, status); | 570 | result = acpi_get_gpe_status(*handle, index, status); |
571 | } else if (index < (num_gpes + ACPI_NUM_FIXED_EVENTS)) | 571 | } else if (index < (num_gpes + ACPI_NUM_FIXED_EVENTS)) |
572 | result = acpi_get_event_status(index - num_gpes, status); | 572 | result = acpi_get_event_status(index - num_gpes, status); |
573 | 573 | ||
574 | end: | ||
575 | return result; | 574 | return result; |
576 | } | 575 | } |
577 | 576 | ||