From 67fad5fb7b92ef884cff31f4aa7086237f06af86 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sat, 23 May 2020 23:48:31 +0000 Subject: [PATCH] ib_srpt: Backport the max_sge_delta calculation to kernel versions < v4.17 git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8978 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- srpt/src/ib_srpt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index b0eebfc2d..6e8d604ef 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -2341,6 +2341,8 @@ retry: ch->max_send_sge = sdev->dev_attr.max_sge; #endif if (max_sge_delta == 0) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) + /* See also commit 0ede73bc012c ("IB/uverbs: Extend uverbs_ioctl header with driver_id") # v4.17. */ switch (sdev->device->ops.driver_id) { case RDMA_DRIVER_MLX4: /* @@ -2361,6 +2363,13 @@ retry: default: break; } +#else + if (strncmp(dev_name(&sdev->device->dev), "mlx4_", 5) == 0) + max_sge_delta = 2; + else if (strncmp(dev_name(&sdev->device->dev), "mthca", 5) == 0) + max_sge_delta = 1; +#endif + pr_debug("max_sge_delta = %d\n", max_sge_delta); } /* * For max_sge values > 2 * max_sge_delta, subtract max_sge_delta. For