android_kernel_asus_sm8350/arch/powerpc
Paul Mackerras 91b973f90c powerpc: Make sure "cache" directory is removed when offlining cpu
The code in remove_cache_dir() is supposed to remove the "cache"
subdirectory from the sysfs directory for a CPU when that CPU is
being offlined.  It tries to do this by calling kobject_put() on
the kobject for the subdirectory.  However, the subdirectory only
gets removed once the last reference goes away, and the reference
being put here may well not be the last reference.  That means
that the "cache" subdirectory may still exist when the offlining
operation has finished.  If the same CPU subsequently gets onlined,
the code tries to add a new "cache" subdirectory.  If the old
subdirectory has not yet been removed, we get a WARN_ON in the
sysfs code, with stack trace, and an error message printed on the
console.  Further, we ultimately end up with an online cpu with no
"cache" subdirectory.

This fixes it by doing an explicit kobject_del() at the point where
we want the subdirectory to go away.  kobject_del() removes the sysfs
directory even though the object still exists in memory.  The object
will get freed at some point in the future.  A subsequent onlining
operation can create a new sysfs directory, even if the old object
still exists in memory, without causing any problems.

Cc: stable@vger.kernel.org # v3.0+
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-01-29 17:02:26 +11:00
..
boot Merge remote-tracking branch 'agust/next' into next 2014-01-29 16:53:55 +11:00
configs Merge remote-tracking branch 'scott/next' into next 2014-01-15 14:22:35 +11:00
crypto powerpc: Fix compile of sha1-powerpc-asm.S on 32-bit 2013-03-05 16:56:26 +11:00
include powerpc/pseries/cpuidle: smt-snooze-delay cleanup. 2014-01-29 17:02:24 +11:00
kernel powerpc: Make sure "cache" directory is removed when offlining cpu 2014-01-29 17:02:26 +11:00
kvm Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
lib powerpc: Add vr save/restore functions 2014-01-15 13:46:43 +11:00
math-emu powerpc: fix e500 SPE float SIGFPE generation 2014-01-07 18:43:42 -06:00
mm powerpc/mm: Fix mmap errno when MAP_FIXED is set and mapping exceeds the allowed address space 2014-01-29 17:02:25 +11:00
net bpf: do not use reciprocal divide 2014-01-15 17:02:08 -08:00
oprofile powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
perf powerpc/perf: Fix handling of FAB events 2013-10-03 17:25:38 +10:00
platforms powerpc/powernv/cpuidle: Back-end cpuidle driver for powernv platform. 2014-01-29 17:02:24 +11:00
sysdev powerpc/iommu: Fix initialisation of DART iommu table 2014-01-29 16:58:49 +11:00
xmon powerpc/book3s: Introduce exclusive emergency stack for machine check exception. 2013-12-05 16:02:05 +11:00
Kconfig Merge remote-tracking branch 'scott/next' into next 2014-01-29 16:55:25 +11:00
Kconfig.debug Merge branch 'kconfig-diet' from Dave Hansen 2013-07-04 11:25:51 -07:00
Makefile powerpc: Fix error when cross building TAGS & cscope 2013-11-25 11:49:11 +11:00
relocs_check.pl Fix warning typo "CONFIG_RELCOATABLE" 2013-05-29 15:11:30 +02:00