> +#include <rdma/ib_cache.h>
> + ret = ib_find_cached_pkey(viport_config->ibdev,
> + viport_config->port,
> + be16_to_cpu(viport_config->path_info.path.
> + pkey),
> + &attr->pkey_index);
I think this can just be replaced with ib_find_pkey()... there is a call
to kmalloc(... GFP_KERNEL) just a couple of lines about, so you are in a
context where sleeping is allowed. As I said before we want to get rid
of the caching infrastructure so please don't add new users.