To clarify, I guess the kfree would only be needed if funcs[i] != NULL and funcs[i]->patch == NULL?