IB/hfi1: Validate header in set_armed_active
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Tue, 9 Aug 2016 15:19:56 +0000 (11:19 -0400)
committerDoug Ledford <dledford@redhat.com>
Mon, 22 Aug 2016 18:31:42 +0000 (14:31 -0400)
Validate the etype to insure that the header is correct.

Reviewed-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hfi1/driver.c

index c4156870a8bb6de63dffb1a01de1adbdff481f4d..303f10555729715a9a21fd5b240eb8daba39efc0 100644 (file)
@@ -894,8 +894,9 @@ static inline int set_armed_to_active(struct hfi1_ctxtdata *rcd,
        struct work_struct *lsaw = &rcd->ppd->linkstate_active_work;
        struct hfi1_message_header *hdr = hfi1_get_msgheader(packet->rcd->dd,
                                                             packet->rhf_addr);
+       u8 etype = rhf_rcv_type(packet->rhf);
 
-       if (hdr2sc(hdr, packet->rhf) != 0xf) {
+       if (etype == RHF_RCV_TYPE_IB && hdr2sc(hdr, packet->rhf) != 0xf) {
                int hwstate = read_logical_state(dd);
 
                if (hwstate != LSTATE_ACTIVE) {