]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
RDMA/core: Rate limit MAD error messages
authorParav Pandit <parav@mellanox.com>
Tue, 28 Aug 2018 11:45:31 +0000 (14:45 +0300)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 26 Nov 2019 12:16:31 +0000 (13:16 +0100)
BugLink: https://bugs.launchpad.net/bugs/1853915
[ Upstream commit f9d08f1e1939ad4d92e38bd3dee6842512f5bee6 ]

While registering a mad agent, a user space can trigger various errors
and flood the logs.

Therefore, decrease verbosity and rate limit such error messages.
While we are at it, use __func__ to print function name.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/infiniband/core/mad.c

index e4339b9e43a54351ca46ae71c9bc5672bffe59fd..6072ac7023cb75c2a6bc69f310d9e5f3f94a2a08 100644 (file)
@@ -217,30 +217,30 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
        /* Validate parameters */
        qpn = get_spl_qp_index(qp_type);
        if (qpn == -1) {
-               dev_notice(&device->dev,
-                          "ib_register_mad_agent: invalid QP Type %d\n",
-                          qp_type);
+               dev_dbg_ratelimited(&device->dev, "%s: invalid QP Type %d\n",
+                                   __func__, qp_type);
                goto error1;
        }
 
        if (rmpp_version && rmpp_version != IB_MGMT_RMPP_VERSION) {
-               dev_notice(&device->dev,
-                          "ib_register_mad_agent: invalid RMPP Version %u\n",
-                          rmpp_version);
+               dev_dbg_ratelimited(&device->dev,
+                                   "%s: invalid RMPP Version %u\n",
+                                   __func__, rmpp_version);
                goto error1;
        }
 
        /* Validate MAD registration request if supplied */
        if (mad_reg_req) {
                if (mad_reg_req->mgmt_class_version >= MAX_MGMT_VERSION) {
-                       dev_notice(&device->dev,
-                                  "ib_register_mad_agent: invalid Class Version %u\n",
-                                  mad_reg_req->mgmt_class_version);
+                       dev_dbg_ratelimited(&device->dev,
+                                           "%s: invalid Class Version %u\n",
+                                           __func__,
+                                           mad_reg_req->mgmt_class_version);
                        goto error1;
                }
                if (!recv_handler) {
-                       dev_notice(&device->dev,
-                                  "ib_register_mad_agent: no recv_handler\n");
+                       dev_dbg_ratelimited(&device->dev,
+                                           "%s: no recv_handler\n", __func__);
                        goto error1;
                }
                if (mad_reg_req->mgmt_class >= MAX_MGMT_CLASS) {
@@ -250,9 +250,9 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
                         */
                        if (mad_reg_req->mgmt_class !=
                            IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) {
-                               dev_notice(&device->dev,
-                                          "ib_register_mad_agent: Invalid Mgmt Class 0x%x\n",
-                                          mad_reg_req->mgmt_class);
+                               dev_dbg_ratelimited(&device->dev,
+                                       "%s: Invalid Mgmt Class 0x%x\n",
+                                       __func__, mad_reg_req->mgmt_class);
                                goto error1;
                        }
                } else if (mad_reg_req->mgmt_class == 0) {
@@ -260,8 +260,9 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
                         * Class 0 is reserved in IBA and is used for
                         * aliasing of IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE
                         */
-                       dev_notice(&device->dev,
-                                  "ib_register_mad_agent: Invalid Mgmt Class 0\n");
+                       dev_dbg_ratelimited(&device->dev,
+                                           "%s: Invalid Mgmt Class 0\n",
+                                           __func__);
                        goto error1;
                } else if (is_vendor_class(mad_reg_req->mgmt_class)) {
                        /*
@@ -269,18 +270,19 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
                         * ensure supplied OUI is not zero
                         */
                        if (!is_vendor_oui(mad_reg_req->oui)) {
-                               dev_notice(&device->dev,
-                                          "ib_register_mad_agent: No OUI specified for class 0x%x\n",
-                                          mad_reg_req->mgmt_class);
+                               dev_dbg_ratelimited(&device->dev,
+                                       "%s: No OUI specified for class 0x%x\n",
+                                       __func__,
+                                       mad_reg_req->mgmt_class);
                                goto error1;
                        }
                }
                /* Make sure class supplied is consistent with RMPP */
                if (!ib_is_mad_class_rmpp(mad_reg_req->mgmt_class)) {
                        if (rmpp_version) {
-                               dev_notice(&device->dev,
-                                          "ib_register_mad_agent: RMPP version for non-RMPP class 0x%x\n",
-                                          mad_reg_req->mgmt_class);
+                               dev_dbg_ratelimited(&device->dev,
+                                       "%s: RMPP version for non-RMPP class 0x%x\n",
+                                       __func__, mad_reg_req->mgmt_class);
                                goto error1;
                        }
                }
@@ -291,9 +293,9 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
                                        IB_MGMT_CLASS_SUBN_LID_ROUTED) &&
                            (mad_reg_req->mgmt_class !=
                                        IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE)) {
-                               dev_notice(&device->dev,
-                                          "ib_register_mad_agent: Invalid SM QP type: class 0x%x\n",
-                                          mad_reg_req->mgmt_class);
+                               dev_dbg_ratelimited(&device->dev,
+                                       "%s: Invalid SM QP type: class 0x%x\n",
+                                       __func__, mad_reg_req->mgmt_class);
                                goto error1;
                        }
                } else {
@@ -301,9 +303,9 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
                                        IB_MGMT_CLASS_SUBN_LID_ROUTED) ||
                            (mad_reg_req->mgmt_class ==
                                        IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE)) {
-                               dev_notice(&device->dev,
-                                          "ib_register_mad_agent: Invalid GS QP type: class 0x%x\n",
-                                          mad_reg_req->mgmt_class);
+                               dev_dbg_ratelimited(&device->dev,
+                                       "%s: Invalid GS QP type: class 0x%x\n",
+                                       __func__, mad_reg_req->mgmt_class);
                                goto error1;
                        }
                }
@@ -318,18 +320,18 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
        /* Validate device and port */
        port_priv = ib_get_mad_port(device, port_num);
        if (!port_priv) {
-               dev_notice(&device->dev,
-                          "ib_register_mad_agent: Invalid port %d\n",
-                          port_num);
+               dev_dbg_ratelimited(&device->dev, "%s: Invalid port %d\n",
+                                   __func__, port_num);
                ret = ERR_PTR(-ENODEV);
                goto error1;
        }
 
-       /* Verify the QP requested is supported.  For example, Ethernet devices
-        * will not have QP0 */
+       /* Verify the QP requested is supported. For example, Ethernet devices
+        * will not have QP0.
+        */
        if (!port_priv->qp_info[qpn].qp) {
-               dev_notice(&device->dev,
-                          "ib_register_mad_agent: QP %d not supported\n", qpn);
+               dev_dbg_ratelimited(&device->dev, "%s: QP %d not supported\n",
+                                   __func__, qpn);
                ret = ERR_PTR(-EPROTONOSUPPORT);
                goto error1;
        }