IB/rdmavt, hfi1, qib: Modify check_ah() to account for extended LIDs
rvt_check_ah() delegates lid verification to underlying driver. Underlying driver uses different conditions to check for dlid depending on whether the device supports extended LIDs Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com> Signed-off-by: Don Hiatt <don.hiatt@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
@@ -53,6 +53,7 @@
|
||||
#include <linux/rculist.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <rdma/opa_addr.h>
|
||||
|
||||
#include "hfi.h"
|
||||
#include "common.h"
|
||||
@@ -1461,6 +1462,10 @@ static int hfi1_check_ah(struct ib_device *ibdev, struct rdma_ah_attr *ah_attr)
|
||||
struct hfi1_devdata *dd;
|
||||
u8 sc5;
|
||||
|
||||
if (hfi1_check_mcast(rdma_ah_get_dlid(ah_attr)) &&
|
||||
!(rdma_ah_get_ah_flags(ah_attr) & IB_AH_GRH))
|
||||
return -EINVAL;
|
||||
|
||||
/* test the mapping for validity */
|
||||
ibp = to_iport(ibdev, rdma_ah_get_port_num(ah_attr));
|
||||
ppd = ppd_from_ibp(ibp);
|
||||
|
Reference in New Issue
Block a user