This is likely a legitimate bug: something took the kref object
negative. (Which was noticed due to the recent migration of kref from
atomic_t to refcount_t which will refuse to perform dangerous
refcounting actions.)
If I had to guess, I think it's dlpar_cpu_exists(), which is calling
of_node_put
With Feb 27 next tree I am seeing inconsistent results on a CPU remove
DLPAR operation on a POWER8 LPAR.
After the cpu remove operation the SMT capability of the LPAR is disabled.
# uname -r
4.10.0-next-20170227
# ppc64_cpu --smt
SMT=8
# lscpu
Architecture: ppc64le
Byte Order: