4.9-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Leon Romanovsky <[email protected]>

[ Upstream commit 2468b82d69e3a53d024f28d79ba0fdb8bf43dfbf ]

Let's perform checks in-place instead of BUG_ONs.

Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Doug Ledford <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/infiniband/core/mad.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -1549,7 +1549,8 @@ static int add_oui_reg_req(struct ib_mad
                            mad_reg_req->oui, 3)) {
                        method = &(*vendor_table)->vendor_class[
                                                vclass]->method_table[i];
-                       BUG_ON(!*method);
+                       if (!*method)
+                               goto error3;
                        goto check_in_use;
                }
        }
@@ -1559,10 +1560,12 @@ static int add_oui_reg_req(struct ib_mad
                                vclass]->oui[i])) {
                        method = &(*vendor_table)->vendor_class[
                                vclass]->method_table[i];
-                       BUG_ON(*method);
                        /* 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;


Reply via email to