|
@@ -1556,7 +1556,8 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
@@ -1566,10 +1567,12 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
|
|
|
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;
|