diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 17:04:04 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 17:04:04 -0700 | 
| commit | dc43d9fa73d82083656fb9c02f4823bcdcfb9f91 (patch) | |
| tree | f5303b6d7ff3e0157ab3312b5dc3182785972fec /include | |
| parent | 80775068dbcf849dca81316e43bcc309985956ac (diff) | |
| parent | 50c31e4a2497ea17747b587e8f96b278f07f5483 (diff) | |
| download | linux-dc43d9fa73d82083656fb9c02f4823bcdcfb9f91.tar.bz2 | |
Merge branch 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, mtrr: Use pci_dev->revision
  x86, mtrr: use stop_machine APIs for doing MTRR rendezvous
  stop_machine: implement stop_machine_from_inactive_cpu()
  stop_machine: reorganize stop_cpus() implementation
  x86, mtrr: lock stop machine during MTRR rendezvous sequence
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/stop_machine.h | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h index 092dc9b1ce7d..4a9d0c7edc65 100644 --- a/include/linux/stop_machine.h +++ b/include/linux/stop_machine.h @@ -124,15 +124,19 @@ int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);   */  int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus); +int stop_machine_from_inactive_cpu(int (*fn)(void *), void *data, +				   const struct cpumask *cpus); +  #else	 /* CONFIG_STOP_MACHINE && CONFIG_SMP */  static inline int __stop_machine(int (*fn)(void *), void *data,  				 const struct cpumask *cpus)  { +	unsigned long flags;  	int ret; -	local_irq_disable(); +	local_irq_save(flags);  	ret = fn(data); -	local_irq_enable(); +	local_irq_restore(flags);  	return ret;  } @@ -142,5 +146,11 @@ static inline int stop_machine(int (*fn)(void *), void *data,  	return __stop_machine(fn, data, cpus);  } +static inline int stop_machine_from_inactive_cpu(int (*fn)(void *), void *data, +						 const struct cpumask *cpus) +{ +	return __stop_machine(fn, data, cpus); +} +  #endif	/* CONFIG_STOP_MACHINE && CONFIG_SMP */  #endif	/* _LINUX_STOP_MACHINE */ |