Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

IB/mthca: Fix SRQ limit event range check

Mem-free HCAs always keep one spare SRQ WQE, so the SRQ limit cannot
be set beyond srq->max - 1.

Signed-off-by: Dotan Barak <dotanb@mellanox.co.il>
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>

authored by

Dotan Barak and committed by
Roland Dreier
1252c517 43db2bc0

+2 -1
+2 -1
drivers/infiniband/hw/mthca/mthca_srq.c
··· 370 370 return -EINVAL; 371 371 372 372 if (attr_mask & IB_SRQ_LIMIT) { 373 - if (attr->srq_limit > srq->max) 373 + u32 max_wr = mthca_is_memfree(dev) ? srq->max - 1 : srq->max; 374 + if (attr->srq_limit > max_wr) 374 375 return -EINVAL; 375 376 376 377 mutex_lock(&srq->mutex);