Signed-off-by: Hal Rosenstock <h...@mellanox.com>
---
 opensm/osm_sa_path_record.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/opensm/osm_sa_path_record.c b/opensm/osm_sa_path_record.c
index 09dcaff..393d78e 100644
--- a/opensm/osm_sa_path_record.c
+++ b/opensm/osm_sa_path_record.c
@@ -1604,7 +1604,7 @@ void osm_pr_rcv_process(IN void *context, IN void *data)
        const ib_gid_t *p_dgid = NULL;
        const osm_port_t *p_src_port, *p_dest_port;
        osm_port_t *requester_port;
-       uint8_t rate;
+       uint8_t rate, mtu;
 
        OSM_LOG_ENTER(sa->p_log);
 
@@ -1645,6 +1645,16 @@ void osm_pr_rcv_process(IN void *context, IN void *data)
                        goto Exit;
                }
        }
+       /* Validate MTU if supplied */
+       if ((p_sa_mad->comp_mask & IB_PR_COMPMASK_MTUSELEC) &&
+           (p_sa_mad->comp_mask & IB_PR_COMPMASK_MTU)) {
+               mtu = ib_path_rec_mtu(p_pr);
+               if (!ib_mtu_is_valid(mtu)) {
+                       osm_sa_send_error(sa, p_madw,
+                                         IB_SA_MAD_STATUS_REQ_INVALID);
+                       goto Exit;
+               }
+       }
 
        cl_qlist_init(&pr_list);
 
-- 
1.7.6.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to