Index: sys/dev/asmc/asmc.c =================================================================== --- sys/dev/asmc/asmc.c +++ sys/dev/asmc/asmc.c @@ -830,9 +830,16 @@ void asmc_dumpall(device_t dev) { int i; + uint8_t buf[4]; + uint32_t nkeys; + + /* Read number of keys from SMC */ + if (asmc_key_read(dev, ASMC_NKEYS, buf, sizeof buf) != 0) + return; - /* XXX magic number */ - for (i=0; i < 0x100; i++) + nkeys = be32dec(buf); + device_printf(dev, "dumping %d keys\n", nkeys); + for (i = 0; i < nkeys; i++) asmc_key_dump(dev, i); } #endif