Index: kern_cpu.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_cpu.c,v retrieving revision 1.28 diff -u -r1.28 kern_cpu.c --- kern_cpu.c 30 Oct 2007 22:18:08 -0000 1.28 +++ kern_cpu.c 13 Jan 2008 01:38:24 -0000 @@ -606,6 +606,17 @@ /* Finally, output the list of levels. */ i = 0; TAILQ_FOREACH(lev, &sc->all_levels, link) { + /* + * Skip levels that are too close in frequency to the + * previous levels. Some systems report bogus duplicate + * settings (i.e., for acpi_perf). + */ + if (i > 0 && CPUFREQ_CMP(lev->total_set.freq, + levels[i - 1].total_set.freq)) { + sc->all_count--; + continue; + } + /* Skip levels that have a frequency that is too low. */ if (lev->total_set.freq < cf_lowest_freq) { sc->all_count--;