aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2021-06-16 13:01:48 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2021-07-26 16:04:31 +0000
commitd857bf20373325346168e71ff39cb84d692b51e7 (patch)
treebefd503e6b72242b00cd1fe4a19ae832cd5d05ac /sys
parenta0d74ac3f3700fa384076d46f6a3fe4f82d1e0ad (diff)
downloadsrc-d857bf20373325346168e71ff39cb84d692b51e7.tar.gz
src-d857bf20373325346168e71ff39cb84d692b51e7.zip
ibcore: Don't allocate method table, if already present.
This commit aligns the code in question with upstream Linux. Linux commit: 2468b82d69e3a53d024f28d79ba0fdb8bf43dfbf Reviewed by: kib Sponsored by: Mellanox Technologies // NVIDIA Networking (cherry picked from commit 721b795b721b349db5e6198f8681d5992447c775)
Diffstat (limited to 'sys')
-rw-r--r--sys/ofed/drivers/infiniband/core/ib_mad.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/ofed/drivers/infiniband/core/ib_mad.c b/sys/ofed/drivers/infiniband/core/ib_mad.c
index 5b1297fe4cd3..82a3f19d92bb 100644
--- a/sys/ofed/drivers/infiniband/core/ib_mad.c
+++ b/sys/ofed/drivers/infiniband/core/ib_mad.c
@@ -1554,8 +1554,11 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
method = &(*vendor_table)->vendor_class[
vclass]->method_table[i];
/* Allocate method table for this OUI */
- if ((ret = allocate_method_table(method)))
- goto error3;
+ if (!*method) {
+ ret = allocate_method_table(method);
+ if (ret)
+ goto error3;
+ }
memcpy((*vendor_table)->vendor_class[vclass]->oui[i],
mad_reg_req->oui, 3);
goto check_in_use;