Blob Blame History Raw
From: Daniel Wagner <dwagner@suse.de>
Subject: scsi: kABI workaround for fc_host_fpin_rcv
Patch-mainline: Never, kABI workaround
References: git-fixes

Addresses kABI breakage introduced by 64fd2ba977b1 ("scsi: scsi_transport_fc:
Add an additional flag to fc_host_fpin_rcv()")

Signed-off-by: Daniel Wagner <dwagner@suse.de>

---
 drivers/scsi/lpfc/lpfc_els.c     |    4 ++--
 drivers/scsi/qla2xxx/qla_isr.c   |    2 +-
 drivers/scsi/scsi_transport_fc.c |   15 +++++++++++----
 include/scsi/scsi_transport_fc.h |    5 ++++-
 4 files changed, 18 insertions(+), 8 deletions(-)

--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -10290,8 +10290,8 @@ lpfc_els_rcv_fpin(struct lpfc_vport *vpo
 
 		/* Send every descriptor individually to the upper layer */
 		if (deliver)
-			fc_host_fpin_rcv(lpfc_shost_from_vport(vport),
-					 fpin_length, (char *)fpin, 0);
+			fc_host_fpin_rcv_ack(lpfc_shost_from_vport(vport),
+					     fpin_length, (char *)fpin, 0);
 		desc_cnt++;
 	}
 }
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -45,7 +45,7 @@ qla27xx_process_purex_fpin(struct scsi_q
 	ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x508f,
 		       pkt, pkt_size);
 
-	fc_host_fpin_rcv(vha->host, pkt_size, (char *)pkt, 0);
+	fc_host_fpin_rcv_ack(vha->host, pkt_size, (char *)pkt, 0);
 }
 
 const char *const port_state_str[] = {
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -889,7 +889,7 @@ fc_fpin_congn_stats_update(struct Scsi_H
 }
 
 /**
- * fc_host_fpin_rcv - routine to process a received FPIN.
+ * fc_host_fpin_rcv_ack - routine to process a received FPIN.
  * @shost:		host the FPIN was received on
  * @fpin_len:		length of FPIN payload, in bytes
  * @fpin_buf:		pointer to FPIN payload
@@ -898,8 +898,8 @@ fc_fpin_congn_stats_update(struct Scsi_H
  *	This routine assumes no locks are held on entry.
  */
 void
-fc_host_fpin_rcv(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf,
-		u8 event_acknowledge)
+fc_host_fpin_rcv_ack(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf,
+		     u8 event_acknowledge)
 {
 	struct fc_els_fpin *fpin = (struct fc_els_fpin *)fpin_buf;
 	struct fc_tlv_desc *tlv;
@@ -938,8 +938,15 @@ fc_host_fpin_rcv(struct Scsi_Host *shost
 	fc_host_post_fc_event(shost, fc_get_event_number(),
 				event_code, fpin_len, fpin_buf, 0);
 }
-EXPORT_SYMBOL(fc_host_fpin_rcv);
+EXPORT_SYMBOL(fc_host_fpin_rcv_ack);
+
 
+void
+fc_host_fpin_rcv(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf)
+{
+	fc_host_fpin_rcv_ack(shost, fpin_len, fpin_buf, 0);
+}
+EXPORT_SYMBOL(fc_host_fpin_rcv);
 
 static __init int fc_transport_init(void)
 {
--- a/include/scsi/scsi_transport_fc.h
+++ b/include/scsi/scsi_transport_fc.h
@@ -496,7 +496,9 @@ enum fc_host_event_code  {
 	FCH_EVT_PORT_FABRIC		= 0x204,
 	FCH_EVT_LINK_UNKNOWN		= 0x500,
 	FCH_EVT_LINK_FPIN		= 0x501,
+#ifndef __GENKSYMS__
 	FCH_EVT_LINK_FPIN_ACK		= 0x502,
+#endif
 	FCH_EVT_VENDOR_UNIQUE		= 0xffff,
 };
 
@@ -859,8 +861,9 @@ void fc_host_post_fc_event(struct Scsi_H
 	 * Note: when calling fc_host_post_fc_event(), vendor_id may be
 	 *   specified as 0.
 	 */
-void fc_host_fpin_rcv(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf,
+void fc_host_fpin_rcv_ack(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf,
 		u8 event_acknowledge);
+void fc_host_fpin_rcv(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf);
 struct fc_vport *fc_vport_create(struct Scsi_Host *shost, int channel,
 		struct fc_vport_identifiers *);
 int fc_vport_terminate(struct fc_vport *vport);