Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21f3b24d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull first round of SCSI updates from James Bottomley:
 "The patch set is mostly driver updates (bnx2fc, ipr, lpfc, qla4) and a
  few bug fixes"

Pull delayed because google hates James, and sneakily considers his pull
requests spam. Why, google, why?

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (60 commits)
  [SCSI] aacraid: 1024 max outstanding command support for Series 7 and above
  [SCSI] bnx2fc: adjust duplicate test
  [SCSI] qla4xxx: Update driver version to 5.03.00-k4
  [SCSI] qla4xxx: Fix return code for qla4xxx_session_get_param.
  [SCSI] qla4xxx: wait for boot target login response during probe.
  [SCSI] qla4xxx: Added support for force firmware dump
  [SCSI] qla4xxx: Re-register IRQ handler while retrying initialize of adapter
  [SCSI] qla4xxx: Throttle active IOCBs to firmware limits
  [SCSI] qla4xxx: Remove unnecessary code from qla4xxx_init_local_data
  [SCSI] qla4xxx: Quiesce driver activities while loopback
  [SCSI] qla4xxx: Rename MBOX_ASTS_IDC_NOTIFY to MBOX_ASTS_IDC_REQUEST_NOTIFICATION
  [SCSI] qla4xxx: Add spurious interrupt messages under debug level 2
  [SCSI] cxgb4i: Remove the scsi host device when removing device
  [SCSI] bfa: fix strncpy() limiter in bfad_start_ops()
  [SCSI] qla4xxx: Update driver version to 5.03.00-k3
  [SCSI] qla4xxx: Correct the validation to check in get_sys_info mailbox
  [SCSI] qla4xxx: Pass correct function param to qla4_8xxx_rd_direct
  [SCSI] lpfc 8.3.37: Update lpfc version for 8.3.37 driver release
  [SCSI] lpfc 8.3.37: Fixed infinite loop in lpfc_sli4_fcf_rr_next_index_get.
  [SCSI] lpfc 8.3.37: Fixed crash due to SLI Port invalid resource count
  ...
parents 2a7d2b96 2b4df6ea
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1800,7 +1800,8 @@ F: drivers/bcma/
F:	include/linux/bcma/

BROCADE BFA FC SCSI DRIVER
M:	Krishna C Gudipati <kgudipat@brocade.com>
M:	Anil Gurumurthy <agurumur@brocade.com>
M:	Vijaya Mohan Guvva <vmohan@brocade.com>
L:	linux-scsi@vger.kernel.org
S:	Supported
F:	drivers/scsi/bfa/
@@ -2074,8 +2075,8 @@ S: Maintained
F:	include/linux/clk.h

CISCO FCOE HBA DRIVER
M:	Abhijeet Joglekar <abjoglek@cisco.com>
M:	Venkata Siva Vijayendra Bhamidipati <vbhamidi@cisco.com>
M:	Hiral Patel <hiralpat@cisco.com>
M:	Suma Ramars <sramars@cisco.com>
M:	Brian Uchino <buchino@cisco.com>
L:	linux-scsi@vger.kernel.org
S:	Supported
+6 −2
Original line number Diff line number Diff line
@@ -12,13 +12,13 @@
 *----------------------------------------------------------------------------*/

#ifndef AAC_DRIVER_BUILD
# define AAC_DRIVER_BUILD 29801
# define AAC_DRIVER_BUILD 30000
# define AAC_DRIVER_BRANCH "-ms"
#endif
#define MAXIMUM_NUM_CONTAINERS	32

#define AAC_NUM_MGT_FIB         8
#define AAC_NUM_IO_FIB		(512 - AAC_NUM_MGT_FIB)
#define AAC_NUM_IO_FIB		(1024 - AAC_NUM_MGT_FIB)
#define AAC_NUM_FIB		(AAC_NUM_IO_FIB + AAC_NUM_MGT_FIB)

#define AAC_MAX_LUN		(8)
@@ -36,6 +36,10 @@
#define CONTAINER_TO_ID(cont)		(cont)
#define CONTAINER_TO_LUN(cont)		(0)

#define PMC_DEVICE_S7	0x28c
#define PMC_DEVICE_S8	0x28d
#define PMC_DEVICE_S9	0x28f

#define aac_phys_to_logical(x)  ((x)+1)
#define aac_logical_to_phys(x)  ((x)?(x)-1:0)

+10 −1
Original line number Diff line number Diff line
@@ -404,6 +404,12 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
		dev->max_fib_size = status[1] & 0xFFE0;
		host->sg_tablesize = status[2] >> 16;
		dev->sg_tablesize = status[2] & 0xFFFF;
		if (dev->pdev->device == PMC_DEVICE_S7 ||
		    dev->pdev->device == PMC_DEVICE_S8 ||
		    dev->pdev->device == PMC_DEVICE_S9)
			host->can_queue = ((status[3] >> 16) ? (status[3] >> 16) :
				(status[3] & 0xFFFF)) - AAC_NUM_MGT_FIB;
		else
			host->can_queue = (status[3] & 0xFFFF) - AAC_NUM_MGT_FIB;
		dev->max_num_aif = status[4] & 0xFFFF;
		/*
@@ -452,6 +458,9 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
		}
	}

	if (host->can_queue > AAC_NUM_IO_FIB)
		host->can_queue = AAC_NUM_IO_FIB;

	/*
	 *	Ok now init the communication subsystem
	 */
+1 −1
Original line number Diff line number Diff line
@@ -1034,7 +1034,7 @@ bfad_start_ops(struct bfad_s *bfad) {
			sizeof(driver_info.host_os_patch) - 1);

	strncpy(driver_info.os_device_name, bfad->pci_name,
		sizeof(driver_info.os_device_name - 1));
		sizeof(driver_info.os_device_name) - 1);

	/* FCS driver info init */
	spin_lock_irqsave(&bfad->bfad_lock, flags);
+26 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@
#include "bnx2fc_constants.h"

#define BNX2FC_NAME		"bnx2fc"
#define BNX2FC_VERSION		"1.0.12"
#define BNX2FC_VERSION		"1.0.13"

#define PFX			"bnx2fc: "

@@ -156,6 +156,18 @@
#define BNX2FC_RELOGIN_WAIT_TIME	200
#define BNX2FC_RELOGIN_WAIT_CNT		10

#define BNX2FC_STATS(hba, stat, cnt)					\
	do {								\
		u32 val;						\
									\
		val = fw_stats->stat.cnt;				\
		if (hba->prev_stats.stat.cnt <= val)			\
			val -= hba->prev_stats.stat.cnt;		\
		else							\
			val += (0xfffffff - hba->prev_stats.stat.cnt);	\
		hba->bfw_stats.cnt += val;				\
	} while (0)

/* bnx2fc driver uses only one instance of fcoe_percpu_s */
extern struct fcoe_percpu_s bnx2fc_global;

@@ -167,6 +179,14 @@ struct bnx2fc_percpu_s {
	spinlock_t fp_work_lock;
};

struct bnx2fc_fw_stats {
	u64	fc_crc_cnt;
	u64	fcoe_tx_pkt_cnt;
	u64	fcoe_rx_pkt_cnt;
	u64	fcoe_tx_byte_cnt;
	u64	fcoe_rx_byte_cnt;
};

struct bnx2fc_hba {
	struct list_head list;
	struct cnic_dev *cnic;
@@ -207,6 +227,8 @@ struct bnx2fc_hba {
	struct bnx2fc_rport **tgt_ofld_list;

	/* statistics */
	struct bnx2fc_fw_stats bfw_stats;
	struct fcoe_statistics_params prev_stats;
	struct fcoe_statistics_params *stats_buffer;
	dma_addr_t stats_buf_dma;
	struct completion stat_req_done;
@@ -280,6 +302,7 @@ struct bnx2fc_rport {
#define BNX2FC_FLAG_UPLD_REQ_COMPL	0x7
#define BNX2FC_FLAG_EXPL_LOGO		0x8
#define BNX2FC_FLAG_DISABLE_FAILED	0x9
#define BNX2FC_FLAG_ENABLED		0xa

	u8 src_addr[ETH_ALEN];
	u32 max_sqes;
@@ -468,6 +491,8 @@ int bnx2fc_send_fw_fcoe_init_msg(struct bnx2fc_hba *hba);
int bnx2fc_send_fw_fcoe_destroy_msg(struct bnx2fc_hba *hba);
int bnx2fc_send_session_ofld_req(struct fcoe_port *port,
					struct bnx2fc_rport *tgt);
int bnx2fc_send_session_enable_req(struct fcoe_port *port,
					struct bnx2fc_rport *tgt);
int bnx2fc_send_session_disable_req(struct fcoe_port *port,
				    struct bnx2fc_rport *tgt);
int bnx2fc_send_session_destroy_req(struct bnx2fc_hba *hba,
Loading