> Can you please file a PR kern/59082 > explaining this use-case I still don't get this. I want to read out sensor readings and don't know of a better way.
> including details of why you are using this dbcool attachment instead of, > say, getting the sensor data through an ACPI or FDT firmware binding I would be happy to learn of another way. > and how you know it's safe on this board How should I be definitely knowing that? Disassemble the BIOS? > and all the symptoms you just shared? Which symptoms? That the kernel panics? The full backtrace? But why? It looks like you already instantly found the problem. > Adding a null test is probably all this code needs Yes, the two null tests you suggested indeed fixes it for me
Index: sys/dev/i2c/dbcool.c =================================================================== RCS file: /cvsroot/src/sys/dev/i2c/dbcool.c,v retrieving revision 1.64 diff -u -p -r1.64 dbcool.c --- sys/dev/i2c/dbcool.c 30 Mar 2022 00:06:50 -0000 1.64 +++ sys/dev/i2c/dbcool.c 17 Feb 2025 16:11:13 -0000 @@ -776,7 +776,7 @@ dbcool_attach(device_t parent, device_t sc->sc_dc.dc_writereg = dbcool_writereg; sc->sc_dev = self; sc->sc_prop = args->ia_prop; - prop_object_retain(sc->sc_prop); + if (sc->sc_prop != NULL) prop_object_retain(sc->sc_prop); if (dbcool_chip_ident(&sc->sc_dc) < 0 || sc->sc_dc.dc_chip == NULL) panic("could not identify chip at addr %d", args->ia_addr); @@ -1697,7 +1697,7 @@ dbcool_attach_sensor(struct dbcool_softc name_index = sc->sc_dc.dc_chip->table[idx].name_index; snprintf(name, 7, "s%02x", sc->sc_dc.dc_chip->table[idx].reg.val_reg); - if (prop_dictionary_get_string(sc->sc_prop, name, &desc)) { + if (sc->sc_prop != NULL && prop_dictionary_get_string(sc->sc_prop, name, &desc)) { strlcpy(sc->sc_sensor[idx].desc, desc, sizeof(sc->sc_sensor[idx].desc)); } else {