diff options
author | Nate Lawson <njl@FreeBSD.org> | 2005-02-24 20:21:41 +0000 |
---|---|---|
committer | Nate Lawson <njl@FreeBSD.org> | 2005-02-24 20:21:41 +0000 |
commit | d269386a24e6737cd349826c1e2477a938151788 (patch) | |
tree | ee07b09c81754c27cd9affe399da0d2db35a4b43 | |
parent | 0c5897722c11d5f8df5ede8095d5596f7f1e1633 (diff) |
Notes
-rw-r--r-- | sys/kern/kern_cpu.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/sys/kern/kern_cpu.c b/sys/kern/kern_cpu.c index cff9da3c07d5..355b258ee916 100644 --- a/sys/kern/kern_cpu.c +++ b/sys/kern/kern_cpu.c @@ -51,9 +51,9 @@ __FBSDID("$FreeBSD$"); /* * Number of levels we can handle. Levels are synthesized from settings - * so for N settings there may be N^2 levels. + * so for M settings and N drivers, there may be M*N levels. */ -#define CF_MAX_LEVELS 32 +#define CF_MAX_LEVELS 64 struct cpufreq_softc { struct cf_level curr_level; @@ -321,8 +321,11 @@ cf_get_method(device_t dev, struct cf_level *level) if (levels == NULL) return (ENOMEM); error = CPUFREQ_LEVELS(sc->dev, levels, &count); - if (error) + if (error) { + if (error == E2BIG) + printf("cpufreq: need to increase CF_MAX_LEVELS\n"); goto out; + } error = device_get_children(device_get_parent(dev), &devs, &numdevs); if (error) goto out; @@ -686,8 +689,12 @@ cpufreq_curr_sysctl(SYSCTL_HANDLER_ARGS) for (n = 0; n < devcount; n++) { count = CF_MAX_LEVELS; error = CPUFREQ_LEVELS(devs[n], levels, &count); - if (error) + if (error) { + if (error == E2BIG) + printf( + "cpufreq: need to increase CF_MAX_LEVELS\n"); break; + } for (i = 0; i < count; i++) { if (CPUFREQ_CMP(levels[i].total_set.freq, freq)) { error = CPUFREQ_SET(devs[n], &levels[i], @@ -727,8 +734,11 @@ cpufreq_levels_sysctl(SYSCTL_HANDLER_ARGS) if (levels == NULL) return (ENOMEM); error = CPUFREQ_LEVELS(sc->dev, levels, &count); - if (error) + if (error) { + if (error == E2BIG) + printf("cpufreq: need to increase CF_MAX_LEVELS\n"); goto out; + } if (count) { for (i = 0; i < count; i++) { set = &levels[i].total_set; |