diff mbox series

[for-next,5/5] IB/hfi1: Consider LMC in 16B/bypass ingress packet check

Message ID 20181128181941.30921.34813.stgit@scvm10.sc.intel.com (mailing list archive)
State Accepted
Commit ff8b67fccdb65402df78a1695c38be805252cf8e
Delegated to: Jason Gunthorpe
Headers show
Series IB/hfi1: Random fixes for driver to land in for-next | expand

Commit Message

Dennis Dalessandro Nov. 28, 2018, 6:19 p.m. UTC
From: Ashutosh Dixit <ashutosh.dixit@intel.com>

Ingress packet check for 16B/bypass packets should consider the port
LMC. Not doing this will result in packets sent to the LMC LIDs
getting dropped. The check is implemented in HW for 9B packets.

Reviewed-by: Mike Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
---
 drivers/infiniband/hw/hfi1/driver.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/hfi1/driver.c b/drivers/infiniband/hw/hfi1/driver.c
index d5277c2..a8ad707 100644
--- a/drivers/infiniband/hw/hfi1/driver.c
+++ b/drivers/infiniband/hw/hfi1/driver.c
@@ -1426,7 +1426,7 @@  static int hfi1_bypass_ingress_pkt_check(struct hfi1_packet *packet)
 	if ((!(hfi1_is_16B_mcast(packet->dlid))) &&
 	    (packet->dlid !=
 		opa_get_lid(be32_to_cpu(OPA_LID_PERMISSIVE), 16B))) {
-		if (packet->dlid != ppd->lid)
+		if ((packet->dlid & ~((1 << ppd->lmc) - 1)) != ppd->lid)
 			return -EINVAL;
 	}