The last hunk looks quite wrong to me. The manager_present logic looks inverted.
- result = acpi_manager_get_info(sbs); - if (!result) { - sbs->manager_present = 1; - for (id = 0; id < MAX_SBS_BAT; ++id) - if ((sbs->batteries_supported & (1 << id))) - acpi_battery_add(sbs, id); - } else + result = 0; + + if (!sbs_manager_broken) { + result = acpi_manager_get_info(sbs); + if (!result) { + sbs->manager_present = 0; + for (id = 0; id < MAX_SBS_BAT; ++id) + if ((sbs->batteries_supported & (1 << id))) + acpi_battery_add(sbs, id); + } + } + + if (!sbs->manager_present) acpi_battery_add(sbs, 0);
The last hunk looks quite wrong to me. The manager_present logic looks inverted.
- result = acpi_manager_ get_info( sbs); present = 1; batteries_ supported & (1 << id))) add(sbs, id); broken) { get_info( sbs); present = 0; batteries_ supported & (1 << id))) add(sbs, id); manager_ present)
acpi_ battery_ add(sbs, 0);
- if (!result) {
- sbs->manager_
- for (id = 0; id < MAX_SBS_BAT; ++id)
- if ((sbs->
- acpi_battery_
- } else
+ result = 0;
+
+ if (!sbs_manager_
+ result = acpi_manager_
+ if (!result) {
+ sbs->manager_
+ for (id = 0; id < MAX_SBS_BAT; ++id)
+ if ((sbs->
+ acpi_battery_
+ }
+ }
+
+ if (!sbs->