Messages in this thread | | | Subject | Re: [oops] sysdev: Pass the attribute to the low level sysdev show/store function | From | Mike Galbraith <> | Date | Fri, 25 Jul 2008 07:45:57 +0200 |
| |
On Thu, 2008-07-24 at 22:27 +0200, Andi Kleen wrote: > On Thu, Jul 24, 2008 at 01:27:24PM +0200, Mike Galbraith wrote: > > Greetings, > > > > Oops below bisects to.. > > This patch should fix it.
Confirmed, and thanks.
-Mike
> > -Andi > > > commit a2ab909933f8c8623282979dfa64f3e358bdb9fc > Author: Andi Kleen <ak@gargoyle.(none)> > Date: Thu Jul 24 21:57:40 2008 +0200 > > Make scheduler sysfs attributes sysdev class devices > > They are really class devices, but were incorrectly declared. This leads > to crashes with the recent changes that makes non normal sysdevs > use a different prototype. > > Signed-off-by: Andi Kleen <ak@linux.intel.com> > > diff --git a/kernel/sched.c b/kernel/sched.c > index 6acf749..24358ca 100644 > --- a/kernel/sched.c > +++ b/kernel/sched.c > @@ -7641,34 +7641,34 @@ static ssize_t sched_power_savings_store(const char *buf, size_t count, int smt) > } > > #ifdef CONFIG_SCHED_MC > -static ssize_t sched_mc_power_savings_show(struct sys_device *dev, > - struct sysdev_attribute *attr, char *page) > +static ssize_t sched_mc_power_savings_show(struct sysdev_class *class, > + char *page) > { > return sprintf(page, "%u\n", sched_mc_power_savings); > } > -static ssize_t sched_mc_power_savings_store(struct sys_device *dev, > - struct sysdev_attribute *attr, > +static ssize_t sched_mc_power_savings_store(struct sysdev_class *class, > const char *buf, size_t count) > { > return sched_power_savings_store(buf, count, 0); > } > -static SYSDEV_ATTR(sched_mc_power_savings, 0644, sched_mc_power_savings_show, > - sched_mc_power_savings_store); > +static SYSDEV_CLASS_ATTR(sched_mc_power_savings, 0644, > + sched_mc_power_savings_show, > + sched_mc_power_savings_store); > #endif > > #ifdef CONFIG_SCHED_SMT > -static ssize_t sched_smt_power_savings_show(struct sys_device *dev, > - struct sysdev_attribute *attr, char *page) > +static ssize_t sched_smt_power_savings_show(struct sysdev_class *dev, > + char *page) > { > return sprintf(page, "%u\n", sched_smt_power_savings); > } > -static ssize_t sched_smt_power_savings_store(struct sys_device *dev, > - struct sysdev_attribute *attr, > +static ssize_t sched_smt_power_savings_store(struct sysdev_class *dev, > const char *buf, size_t count) > { > return sched_power_savings_store(buf, count, 1); > } > -static SYSDEV_ATTR(sched_smt_power_savings, 0644, sched_smt_power_savings_show, > +static SYSDEV_CLASS_ATTR(sched_smt_power_savings, 0644, > + sched_smt_power_savings_show, > sched_smt_power_savings_store); > #endif >
| |