diff --git a/drivers/infiniband/core/counters.c b/drivers/infiniband/core/counters.c
index 40204c6caa5baecf50e74de84ed6c05259a492af..c88139fa859e27f676df2f99bd0bf75a9a4b5af5 100644
--- a/drivers/infiniband/core/counters.c
+++ b/drivers/infiniband/core/counters.c
@@ -276,7 +276,7 @@ int rdma_counter_bind_qp_auto(struct ib_qp *qp, u8 port)
 	struct rdma_counter *counter;
 	int ret;
 
-	if (!qp->res.valid)
+	if (!qp->res.valid || rdma_is_kernel_res(&qp->res))
 		return 0;
 
 	if (!rdma_is_port_valid(dev, port))