[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061007031910.GA1494@dominikbrodowski.de>
Date: Fri, 6 Oct 2006 23:19:10 -0400
From: Dominik Brodowski <linux@...inikbrodowski.net>
To: "Eugeny S. Mints" <eugeny.mints@...il.com>
Cc: pm list <linux-pm@...ts.osdl.org>,
Matthew Locke <matt@...adgs.com>,
Amit Kucheria <amit.kucheria@...ia.com>,
Igor Stoppa <igor.stoppa@...ia.com>,
kernel list <linux-kernel@...r.kernel.org>
Subject: Re: [RFC] CPUFreq PowerOP integration, Centrino PM Core and OPs registration 2/3
Hi,
On Thu, Sep 14, 2006 at 06:50:02PM +0400, Eugeny S. Mints wrote:
> +static int
> +process_pwr_param(struct pm_core_point *opt, int op, char *param_name,
> + int va_arg)
> +{
> + int cpu = 0;
> + char buf[8];
> +
> + for (cpu = 0; cpu < NR_CPUS; cpu++)
> + {
> + sprintf(buf, "v%d", cpu);
> +
> + if (strcmp(param_name, buf) == 0) {
> + if (op == PWR_PARAM_SET)
> + opt->opt[cpu].pwpr[_I386_PM_CORE_POINT_V] =
> + va_arg;
> + else if (opt != NULL)
> + *(int *)va_arg =
> + opt->opt[cpu].pwpr[_I386_PM_CORE_POINT_V];
> + else if ((*(int *)va_arg = get_vtg(cpu)) <= 0)
> + return -EINVAL;
> + return 0;
> + }
> +
> + sprintf(buf, "freq%d", cpu);
> +
> + if (strcmp(param_name, buf) == 0) {
> + if (op == PWR_PARAM_SET)
> + opt->opt[cpu].pwpr[_I386_PM_CORE_POINT_FREQ] =
> + va_arg;
> + else if (opt != NULL)
> + *(int *)va_arg =
> + opt->opt[cpu].pwpr[_I386_PM_CORE_POINT_FREQ];
> + else if ((*(int *)va_arg = get_freq(cpu)) <= 0)
> + return -EINVAL;
> +
> + return 0;
> + }
> + }
> +
> + return -EINVAL;
> +}
Ouch. IIRC Pavel had some fine comments about such string parsing deep in
arch code... Other than that I see lots of indirection, lots of code being
added (~400 lines) for no gain in functionality for the x86 case.
Thanks,
Dominik
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists