Another global that can go to .rodata:
ffffffff8227fec0 g O .data 0000000000000420 acpisbs_battery_checks
Builds fine on amd64, but I don't have access to this hardware.
Tests? OK?
diff --git a/sys/dev/acpi/acpisbs.c b/sys/dev/acpi/acpisbs.c
index 7fd85860f79..252588da591 100644
--- a/sys/dev/acpi/acpisbs.c
+++ b/sys/dev/acpi/acpisbs.c
@@ -58,7 +58,7 @@
(SMBUS_READ_##kind == SMBUS_READ_BLOCK ? SMBUS_DATA_SIZE : 2), \
#val, senst, sens }
-struct acpisbs_battery_check {
+const struct acpisbs_battery_check {
uint8_t mode;
uint8_t command;
size_t offset;
@@ -230,7 +230,8 @@ acpisbs_read(struct acpisbs_softc *sc)
int i;
for (i = 0; i < nitems(acpisbs_battery_checks); i++) {
- struct acpisbs_battery_check check = acpisbs_battery_checks[i];
+ const struct acpisbs_battery_check check =
+ acpisbs_battery_checks[i];
void *p = (void *)&sc->sc_battery + check.offset;
acpi_smbus_read(sc, check.mode, check.command, check.len, p);
@@ -273,7 +274,8 @@ acpisbs_setup_sensors(struct acpisbs_softc *sc)
nitems(acpisbs_battery_checks), M_DEVBUF, M_WAITOK | M_ZERO);
for (i = 0; i < nitems(acpisbs_battery_checks); i++) {
- struct acpisbs_battery_check check = acpisbs_battery_checks[i];
+ const struct acpisbs_battery_check check =
+ acpisbs_battery_checks[i];
if (check.sensor_type < 0)
continue;
@@ -301,7 +303,8 @@ acpisbs_refresh_sensors(struct acpisbs_softc *sc)
int i;
for (i = 0; i < nitems(acpisbs_battery_checks); i++) {
- struct acpisbs_battery_check check = acpisbs_battery_checks[i];
+ const struct acpisbs_battery_check check =
+ acpisbs_battery_checks[i];
void *p = (void *)&sc->sc_battery + check.offset;
uint16_t *ival = (uint16_t *)p;