diff options
-rw-r--r-- | sys/dev/acpica/acpi_smbat.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/dev/acpica/acpi_smbat.c b/sys/dev/acpica/acpi_smbat.c index 37216e1..39bfb3c 100644 --- a/sys/dev/acpica/acpi_smbat.c +++ b/sys/dev/acpica/acpi_smbat.c @@ -371,11 +371,11 @@ acpi_smbat_get_bst(device_t dev, struct acpi_bst *bst) sc->bst.volt = val; acpi_smbat_info_updated(&sc->bst_lastupdated); - error = 0; out: - memcpy(bst, &sc->bst, sizeof(sc->bst)); + if (error == 0) + memcpy(bst, &sc->bst, sizeof(sc->bst)); ACPI_SERIAL_END(smbat); return (error); } @@ -445,13 +445,14 @@ acpi_smbat_get_bif(device_t dev, struct acpi_bif *bif) sc->bif.oeminfo, sizeof(sc->bif.oeminfo))) goto out; - acpi_smbat_info_updated(&sc->bif_lastupdated); - /* XXX check if device was replugged during read? */ + + acpi_smbat_info_updated(&sc->bif_lastupdated); error = 0; out: - memcpy(bif, &sc->bif, sizeof(sc->bif)); + if (error == 0) + memcpy(bif, &sc->bif, sizeof(sc->bif)); ACPI_SERIAL_END(smbat); return (error); } |