Oh, I did have one minor comment I forgot about:
> +struct ib_cq *send_cq cacheline_aligned;
This could actually be cacheline_aligned_in_smp I think, not that it
matters at all in practice (although maybe someone will build a 1-core
embedded initiator on a memory-constraine
Put the variables accessed together in the hot-path into common
cachelines, and separate them by RW vs RO to avoid false dirtying.
We keep a local copy of the lkey and rkey in the target to avoid
traversing pointers (and associated cache lines) to find them.
---
drivers/infiniband/ulp/srp/ib_srp.c