git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
sh
/
kernel
/
cpufreq.c
diff --git
a/arch/sh/kernel/cpufreq.c
b/arch/sh/kernel/cpufreq.c
index
8551616
..
47abf6e
100644
(file)
--- a/
arch/sh/kernel/cpufreq.c
+++ b/
arch/sh/kernel/cpufreq.c
@@
-3,7
+3,7
@@
*
* cpufreq driver for the SuperH processors.
*
*
* cpufreq driver for the SuperH processors.
*
- * Copyright (C) 2002, 2003 Paul Mundt
+ * Copyright (C) 2002, 2003
, 2004, 2005
Paul Mundt
* Copyright (C) 2002 M. R. Brown
*
* This program is free software; you can redistribute it and/or modify it
* Copyright (C) 2002 M. R. Brown
*
* This program is free software; you can redistribute it and/or modify it
@@
-18,7
+18,9
@@
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/delay.h>
+#include <linux/cpumask.h>
#include <linux/smp.h>
#include <linux/smp.h>
+#include <linux/sched.h> /* set_cpus_allowed() */
#include <asm/processor.h>
#include <asm/watchdog.h>
#include <asm/processor.h>
#include <asm/watchdog.h>
@@
-46,9
+48,8
@@
struct clock_set {
#endif
};
#endif
};
-#define NR_CLOCK_SETS (sizeof(clock_sets) / sizeof(struct clock_set))
#define MIN_CLOCK_SET 0
#define MIN_CLOCK_SET 0
-#define MAX_CLOCK_SET (
NR_CLOCK_SETS
- 1)
+#define MAX_CLOCK_SET (
ARRAY_SIZE(clock_sets)
- 1)
/*
* For the time being, we only support two frequencies, which in turn are
/*
* For the time being, we only support two frequencies, which in turn are
@@
-83,18
+84,16
@@
static void sh_cpufreq_update_clocks(unsigned int set)
static int sh_cpufreq_setstate(unsigned int cpu, unsigned int set)
{
unsigned short frqcr = ctrl_inw(FRQCR);
static int sh_cpufreq_setstate(unsigned int cpu, unsigned int set)
{
unsigned short frqcr = ctrl_inw(FRQCR);
-
unsigned long
cpus_allowed;
+
cpumask_t
cpus_allowed;
struct cpufreq_freqs freqs;
struct cpufreq_freqs freqs;
- int allowable_cpu_map;
if (!cpu_online(cpu))
return -ENODEV;
cpus_allowed = current->cpus_allowed;
if (!cpu_online(cpu))
return -ENODEV;
cpus_allowed = current->cpus_allowed;
- allowable_cpu_map = 1 << cpu;
- set_cpus_allowed(current, allowable_cpu_map);
-
- BUG_ON(!(allowable_cpu_map & (1 << smp_processor_id())));
+ set_cpus_allowed(current, cpumask_of_cpu(cpu));
+
+ BUG_ON(smp_processor_id() != cpu);
freqs.cpu = cpu;
freqs.old = current_cpu_data.cpu_clock / 1000;
freqs.cpu = cpu;
freqs.old = current_cpu_data.cpu_clock / 1000;
@@
-134,7
+133,7
@@
static int sh_cpufreq_setstate(unsigned int cpu, unsigned int set)
set_cpus_allowed(current, cpus_allowed);
cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
set_cpus_allowed(current, cpus_allowed);
cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-
+
return 0;
}
return 0;
}