diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2021-06-16 13:01:48 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2021-07-26 16:04:31 +0000 |
commit | d857bf20373325346168e71ff39cb84d692b51e7 (patch) | |
tree | befd503e6b72242b00cd1fe4a19ae832cd5d05ac /sys | |
parent | a0d74ac3f3700fa384076d46f6a3fe4f82d1e0ad (diff) | |
download | src-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.c | 7 |
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; |