From: Hannes Reinecke <[email protected]>

Call 'nvme_fc_fpin_rcv()' to enable FPIN notifications for NVMe.

Signed-off-by: Hannes Reinecke <[email protected]>
Reviewed-by: Justin Tee <[email protected]>
Tested-by: Bryan Gurney <[email protected]>
Tested-by: Muneendra Kumar <[email protected]>
---
 drivers/scsi/lpfc/lpfc_els.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index c7cbc5b50dfe..146ed6fd41af 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -33,6 +33,7 @@
 #include <scsi/scsi_transport_fc.h>
 #include <uapi/scsi/fc/fc_fs.h>
 #include <uapi/scsi/fc/fc_els.h>
+#include <linux/nvme-fc-driver.h>
 
 #include "lpfc_hw4.h"
 #include "lpfc_hw.h"
@@ -10249,9 +10250,15 @@ lpfc_els_rcv_fpin(struct lpfc_vport *vport, void *p, 
u32 fpin_length)
                fpin_length += sizeof(struct fc_els_fpin); /* the entire FPIN */
 
                /* Send every descriptor individually to the upper layer */
-               if (deliver)
+               if (deliver) {
                        fc_host_fpin_rcv(lpfc_shost_from_vport(vport),
                                         fpin_length, (char *)fpin, 0);
+#if (IS_ENABLED(CONFIG_NVME_FC))
+                       if (vport->cfg_enable_fc4_type & LPFC_ENABLE_NVME)
+                               nvme_fc_fpin_rcv(vport->localport,
+                                                fpin_length, (char *)fpin);
+#endif
+               }
                desc_cnt++;
        }
 }
-- 
2.50.1


Reply via email to