table->refs[i] = 0;\r
}\r
table->max = 1 << dev->caps.log_num_vlans;\r
+ if(table->max > MLX4_MAX_VLAN_NUM)\r
+ {\r
+ table->max = MLX4_MAX_VLAN_NUM;\r
+ }\r
table->total = 0;\r
}\r
\r
}\r
mlx4_dbg(dev, "Free mac index is %d\n", free);\r
\r
- if (table->total == table->max) {\r
+ if (table->total == table->max || free < 0) {\r
/* No free mac entries */\r
err = -ENOSPC;\r
goto out;\r
}\r
}\r
\r
- if (table->total == table->max) {\r
+ if (table->total == table->max || free < 0) {\r
/* No free vlan entries */\r
err = -ENOSPC;\r
goto out;\r