mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
scsi: fnic: Modify IO path to use FDLS
Modify IO path to use FDLS. Add helper functions to process IOs. Remove unused template functions. Clean up obsolete code. Refactor old function definitions. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202410210147.fQp7tYeb-lkp@intel.com/ Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com> Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com> Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com> Reviewed-by: Arun Easi <aeasi@cisco.com> Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com> Link: https://lore.kernel.org/r/20241212020312.4786-11-kartilak@cisco.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
9cf9fe2f3e
commit
6335be1c50
@@ -479,7 +479,6 @@ int fnic_set_intr_mode_msix(struct fnic *fnic);
|
||||
void fnic_free_intr(struct fnic *fnic);
|
||||
int fnic_request_intr(struct fnic *fnic);
|
||||
|
||||
int fnic_send(struct fc_lport *, struct fc_frame *);
|
||||
void fnic_free_wq_buf(struct vnic_wq *wq, struct vnic_wq_buf *buf);
|
||||
void fnic_handle_frame(struct work_struct *work);
|
||||
void fnic_tport_event_handler(struct work_struct *work);
|
||||
@@ -499,11 +498,9 @@ int fnic_abort_cmd(struct scsi_cmnd *);
|
||||
int fnic_device_reset(struct scsi_cmnd *);
|
||||
int fnic_eh_host_reset_handler(struct scsi_cmnd *sc);
|
||||
int fnic_host_reset(struct Scsi_Host *shost);
|
||||
int fnic_reset(struct Scsi_Host *);
|
||||
void fnic_scsi_cleanup(struct fc_lport *);
|
||||
void fnic_scsi_abort_io(struct fc_lport *);
|
||||
void fnic_empty_scsi_cleanup(struct fc_lport *);
|
||||
void fnic_exch_mgr_reset(struct fc_lport *, u32, u32);
|
||||
void fnic_reset(struct Scsi_Host *shost);
|
||||
int fnic_issue_fc_host_lip(struct Scsi_Host *shost);
|
||||
void fnic_scsi_fcpio_reset(struct fnic *fnic);
|
||||
int fnic_wq_copy_cmpl_handler(struct fnic *fnic, int copy_work_to_do, unsigned int cq_index);
|
||||
int fnic_wq_cmpl_handler(struct fnic *fnic, int);
|
||||
int fnic_flogi_reg_handler(struct fnic *fnic, u32);
|
||||
@@ -515,7 +512,8 @@ const char *fnic_state_to_str(unsigned int state);
|
||||
void fnic_mq_map_queues_cpus(struct Scsi_Host *host);
|
||||
void fnic_log_q_error(struct fnic *fnic);
|
||||
void fnic_handle_link_event(struct fnic *fnic);
|
||||
|
||||
void fnic_stats_debugfs_init(struct fnic *fnic);
|
||||
void fnic_stats_debugfs_remove(struct fnic *fnic);
|
||||
int fnic_is_abts_pending(struct fnic *, struct scsi_cmnd *);
|
||||
|
||||
void fnic_handle_fip_frame(struct work_struct *work);
|
||||
@@ -536,6 +534,13 @@ int fnic_get_desc_by_devid(struct pci_dev *pdev, char **desc,
|
||||
void fnic_fdls_link_status_change(struct fnic *fnic, int linkup);
|
||||
void fnic_delete_fcp_tports(struct fnic *fnic);
|
||||
void fnic_flush_tport_event_list(struct fnic *fnic);
|
||||
int fnic_count_ioreqs_wq(struct fnic *fnic, u32 hwq, u32 portid);
|
||||
unsigned int fnic_count_ioreqs(struct fnic *fnic, u32 portid);
|
||||
unsigned int fnic_count_all_ioreqs(struct fnic *fnic);
|
||||
unsigned int fnic_count_lun_ioreqs_wq(struct fnic *fnic, u32 hwq,
|
||||
struct scsi_device *device);
|
||||
unsigned int fnic_count_lun_ioreqs(struct fnic *fnic,
|
||||
struct scsi_device *device);
|
||||
|
||||
struct fnic_scsi_iter_data {
|
||||
struct fnic *fnic;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define _FNIC_IO_H_
|
||||
|
||||
#include <scsi/fc/fc_fcp.h>
|
||||
#include "fnic_fdls.h"
|
||||
|
||||
#define FNIC_DFLT_SG_DESC_CNT 32
|
||||
#define FNIC_MAX_SG_DESC_CNT 256 /* Maximum descriptors per sgl */
|
||||
@@ -41,6 +42,8 @@ enum fnic_ioreq_state {
|
||||
};
|
||||
|
||||
struct fnic_io_req {
|
||||
struct fnic_iport_s *iport;
|
||||
struct fnic_tport_s *tport;
|
||||
struct host_sg_desc *sgl_list; /* sgl list */
|
||||
void *sgl_list_alloc; /* sgl list address used for free */
|
||||
dma_addr_t sense_buf_pa; /* dma address for sense buffer*/
|
||||
|
||||
@@ -85,12 +85,6 @@ static unsigned int fnic_max_qdepth = FNIC_DFLT_QUEUE_DEPTH;
|
||||
module_param(fnic_max_qdepth, uint, S_IRUGO|S_IWUSR);
|
||||
MODULE_PARM_DESC(fnic_max_qdepth, "Queue depth to report for each LUN");
|
||||
|
||||
static struct libfc_function_template fnic_transport_template = {
|
||||
.fcp_abort_io = fnic_empty_scsi_cleanup,
|
||||
.fcp_cleanup = fnic_empty_scsi_cleanup,
|
||||
.exch_mgr_reset = fnic_exch_mgr_reset
|
||||
};
|
||||
|
||||
struct workqueue_struct *fnic_fip_queue;
|
||||
|
||||
static int fnic_slave_alloc(struct scsi_device *sdev)
|
||||
@@ -163,7 +157,7 @@ static struct fc_function_template fnic_fc_functions = {
|
||||
.show_starget_port_id = 1,
|
||||
.show_rport_dev_loss_tmo = 1,
|
||||
.set_rport_dev_loss_tmo = fnic_set_rport_dev_loss_tmo,
|
||||
.issue_fc_host_lip = fnic_reset,
|
||||
.issue_fc_host_lip = fnic_issue_fc_host_lip,
|
||||
.get_fc_host_stats = fnic_get_stats,
|
||||
.reset_fc_host_stats = fnic_reset_host_stats,
|
||||
.dd_fcrport_size = sizeof(struct fc_rport_libfc_priv),
|
||||
@@ -906,8 +900,6 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
fc_set_wwnn(lp, fnic->config.node_wwn);
|
||||
fc_set_wwpn(lp, fnic->config.port_wwn);
|
||||
|
||||
fcoe_libfc_config(lp, &fnic->ctlr, &fnic_transport_template, 0);
|
||||
|
||||
if (!fc_exch_mgr_alloc(lp, FC_CLASS_3, FCPIO_HOST_EXCH_RANGE_START,
|
||||
FCPIO_HOST_EXCH_RANGE_END, NULL)) {
|
||||
err = -ENOMEM;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -127,6 +127,4 @@ struct stats_debug_info {
|
||||
};
|
||||
|
||||
int fnic_get_stats_data(struct stats_debug_info *, struct fnic_stats *);
|
||||
void fnic_stats_debugfs_init(struct fnic *);
|
||||
void fnic_stats_debugfs_remove(struct fnic *);
|
||||
#endif /* _FNIC_STATS_H_ */
|
||||
|
||||
Reference in New Issue
Block a user