diff options
Diffstat (limited to 'arch/powerpc/kernel/cacheinfo.c')
| -rw-r--r-- | arch/powerpc/kernel/cacheinfo.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c index 65493272787..40198d50b4c 100644 --- a/arch/powerpc/kernel/cacheinfo.c +++ b/arch/powerpc/kernel/cacheinfo.c @@ -12,7 +12,6 @@  #include <linux/cpu.h>  #include <linux/cpumask.h> -#include <linux/init.h>  #include <linux/kernel.h>  #include <linux/kobject.h>  #include <linux/list.h> @@ -757,7 +756,10 @@ void cacheinfo_cpu_online(unsigned int cpu_id)  	cacheinfo_sysfs_populate(cpu_id, cache);  } -#ifdef CONFIG_HOTPLUG_CPU /* functions needed for cpu offline */ +/* functions needed to remove cache entry for cpu offline or suspend/resume */ + +#if (defined(CONFIG_PPC_PSERIES) && defined(CONFIG_SUSPEND)) || \ +    defined(CONFIG_HOTPLUG_CPU)  static struct cache *cache_lookup_by_cpu(unsigned int cpu_id)  { @@ -794,6 +796,9 @@ static void remove_cache_dir(struct cache_dir *cache_dir)  {  	remove_index_dirs(cache_dir); +	/* Remove cache dir from sysfs */ +	kobject_del(cache_dir->kobj); +  	kobject_put(cache_dir->kobj);  	kfree(cache_dir); @@ -841,4 +846,4 @@ void cacheinfo_cpu_offline(unsigned int cpu_id)  	if (cache)  		cache_cpu_clear(cache, cpu_id);  } -#endif /* CONFIG_HOTPLUG_CPU */ +#endif /* (CONFIG_PPC_PSERIES && CONFIG_SUSPEND) || CONFIG_HOTPLUG_CPU */  | 
