Please don't use a 'goto' for something like this.
Just do
raw_spin_lock(&amd_nb_lock);
if (cpuhw->amd_nb) {
if (!--cpuhw->amd_nb->refcnt)
kfree(cpuhw->amd_nb);
cpuhw->amd_nb = NULL;
}
raw_spin_unlock(&amd_nb_lock);
instead. Much more readable.
Let's keep 'goto' for cases where we have error returns that we don't want
to nest, not trivial stuff like this.
Linus
--