Commit 8f6486b1 authored by James Bottomley's avatar James Bottomley

fusion dead code removal

From: Christoph Hellwig <hch@lst.de>

This patch (ontop of the patch to use <linux/list.>) removes lots of
dead code from the fusion driver, mostly related to the 
orphaned dmp and
target drivers.

Acked By: Moore, Eric Dean <Emoore@lsil.com>

also modified not to back out MPTSTM code
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 8dc98aa0
......@@ -137,8 +137,6 @@ int mpt_stm_index = -1;
struct proc_dir_entry *mpt_proc_root_dir;
DmpServices_t *DmpService;
#define WHOINIT_UNKNOWN 0xAA
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
......@@ -169,7 +167,9 @@ static DECLARE_WAIT_QUEUE_HEAD(mpt_waitq);
*/
static irqreturn_t mpt_interrupt(int irq, void *bus_id, struct pt_regs *r);
static int mpt_base_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply);
static int mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes,
u32 *req, int replyBytes, u16 *u16reply, int maxwait,
int sleepFlag);
static int mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag);
static void mpt_detect_bound_ports(MPT_ADAPTER *ioc, struct pci_dev *pdev);
static void mpt_adapter_disable(MPT_ADAPTER *ioc);
......@@ -956,41 +956,6 @@ mpt_add_sge(char *pAddr, u32 flagslength, dma_addr_t dma_addr)
}
}
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/**
* mpt_add_chain - Place a chain SGE at address pAddr.
* @pAddr: virtual address for SGE
* @next: nextChainOffset value (u32's)
* @length: length of next SGL segment
* @dma_addr: Physical address
*
* This routine places a MPT request frame back on the MPT adapter's
* FreeQ.
*/
void
mpt_add_chain(char *pAddr, u8 next, u16 length, dma_addr_t dma_addr)
{
if (sizeof(dma_addr_t) == sizeof(u64)) {
SGEChain64_t *pChain = (SGEChain64_t *) pAddr;
u32 tmp = dma_addr & 0xFFFFFFFF;
pChain->Length = cpu_to_le16(length);
pChain->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT | mpt_addr_size();
pChain->NextChainOffset = next;
pChain->Address.Low = cpu_to_le32(tmp);
tmp = (u32) ((u64)dma_addr >> 32);
pChain->Address.High = cpu_to_le32(tmp);
} else {
SGEChain32_t *pChain = (SGEChain32_t *) pAddr;
pChain->Length = cpu_to_le16(length);
pChain->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT | mpt_addr_size();
pChain->NextChainOffset = next;
pChain->Address = cpu_to_le32(dma_addr);
}
}
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/**
* mpt_send_handshake_request - Send MPT request via doorbell
......@@ -3690,7 +3655,7 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
*
* Returns 0 for success, non-zero for failure.
*/
int
static int
mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes, u32 *req,
int replyBytes, u16 *u16reply, int maxwait, int sleepFlag)
{
......@@ -5237,9 +5202,6 @@ procmpt_version_read(char *buf, char **start, off_t offset, int request, int *eo
case MPTCTL_DRIVER:
if (!ctl++) drvname = "ioctl";
break;
case MPTDMP_DRIVER:
if (!dmp++) drvname = "DMP";
break;
}
if (drvname)
......@@ -5920,7 +5882,6 @@ mpt_sp_ioc_info(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
EXPORT_SYMBOL(ioc_list);
EXPORT_SYMBOL(mpt_proc_root_dir);
EXPORT_SYMBOL(DmpService);
EXPORT_SYMBOL(mpt_register);
EXPORT_SYMBOL(mpt_deregister);
EXPORT_SYMBOL(mpt_event_register);
......@@ -5933,9 +5894,7 @@ EXPORT_SYMBOL(mpt_get_msg_frame);
EXPORT_SYMBOL(mpt_put_msg_frame);
EXPORT_SYMBOL(mpt_free_msg_frame);
EXPORT_SYMBOL(mpt_add_sge);
EXPORT_SYMBOL(mpt_add_chain);
EXPORT_SYMBOL(mpt_send_handshake_request);
EXPORT_SYMBOL(mpt_handshake_req_reply_wait);
EXPORT_SYMBOL(mpt_verify_adapter);
EXPORT_SYMBOL(mpt_GetIocState);
EXPORT_SYMBOL(mpt_print_ioc_summary);
......@@ -5990,8 +5949,6 @@ fusion_init(void)
MptResetHandlers[i] = NULL;
}
DmpService = NULL;
/* NEW! 20010120 -sralston
* Register ourselves (mptbase) in order to facilitate
* EventNotification handling.
......
......@@ -83,8 +83,8 @@
#define COPYRIGHT "Copyright (c) 1999-2004 " MODULEAUTHOR
#endif
#define MPT_LINUX_VERSION_COMMON "3.01.16"
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.01.16"
#define MPT_LINUX_VERSION_COMMON "3.01.17"
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.01.17"
#define WHAT_MAGIC_STRING "@" "(" "#" ")"
#define show_mptmod_ver(s,ver) \
......@@ -206,7 +206,6 @@ typedef enum {
MPTSCSIH_DRIVER, /* MPT SCSI host (initiator) class */
MPTLAN_DRIVER, /* MPT LAN class */
MPTSTM_DRIVER, /* MPT SCSI target mode class */
MPTDMP_DRIVER, /* MPT Dynamic Multi-pathing class */
MPTUNKNOWN_DRIVER
} MPT_DRIVER_CLASS;
......@@ -348,27 +347,6 @@ typedef struct _SYSIF_REGS
/*
* Dynamic Multi-Pathing specific stuff...
*/
#define DMP_MAX_PATHS 8
typedef struct _PathInfo {
u8 ioc;
u8 target;
u8 pad;
u8 pflags;
} PathInfo;
#define PATHINFO_FLAGS_OWNED 0x01
#define PATHINFO_FLAGS_EXISTS 0x02
#define PATHINFO_FLAGS_AVAILABLE 0x04
#define PATHINFO_FLAGS_SECONDARY 0x08
#define PFLAGS_EXISTS_AND_AVAIL (PATHINFO_FLAGS_EXISTS|PATHINFO_FLAGS_AVAILABLE)
#define PFLAGS_AVAIL_AND_OWNED (PATHINFO_FLAGS_AVAILABLE|PATHINFO_FLAGS_OWNED)
typedef struct _ScsiCmndTracker {
void *head;
void *tail;
} ScsiCmndTracker;
/* VirtDevice negoFlags field */
#define MPT_TARGET_NO_NEGO_WIDE 0x01
......@@ -378,12 +356,9 @@ typedef struct _ScsiCmndTracker {
/*
* VirtDevice - FC LUN device or SCSI target device
* (used to be FCSCSI_TARGET)
*/
typedef struct _VirtDevice {
struct scsi_device *device;
rwlock_t VdevLock;
int ref_cnt;
u8 tflags;
u8 ioc_id;
u8 target_id;
......@@ -396,14 +371,8 @@ typedef struct _VirtDevice {
u8 type; /* byte 0 of Inquiry data */
u8 cflags; /* controller flags */
u8 rsvd1raid;
int npaths;
u16 fc_phys_lun;
u16 fc_xlat_lun;
int stall_detected;
PathInfo path[DMP_MAX_PATHS];
struct timer_list stall_timer;
struct timer_list retry_timer;
struct timer_list gone_timer;
u32 num_luns;
u32 luns[8]; /* Max LUNs is 256 */
u8 pad[4];
......@@ -427,14 +396,6 @@ typedef struct _VirtDevice {
#define MPT_TARGET_FLAGS_VALID_56 0x10
#define MPT_TARGET_FLAGS_SAF_TE_ISSUED 0x20
typedef struct _VirtDevTracker {
struct _VirtDevice *head;
struct _VirtDevice *tail;
rwlock_t VlistLock;
int pad;
} VirtDevTracker;
/*
* /proc/mpt interface
*/
......@@ -648,12 +609,6 @@ typedef struct _MPT_ADAPTER
struct net_device *netdev;
} MPT_ADAPTER;
typedef struct _MPT_ADAPTER_TRACKER {
MPT_ADAPTER *head;
MPT_ADAPTER *tail;
} MPT_ADAPTER_TRACKER;
/*
* New return value convention:
* 1 = Ok to free associated request frame
......@@ -875,13 +830,6 @@ typedef struct _mpt_sge {
#define MPT_INDEX_2_RFPTR(ioc,idx) \
(MPT_FRAME_HDR*)( (u8*)(ioc)->reply_frames + (ioc)->req_sz * (idx) )
#define SWAB4(value) \
(u32)( (((value) & 0x000000ff) << 24) \
| (((value) & 0x0000ff00) << 8) \
| (((value) & 0x00ff0000) >> 8) \
| (((value) & 0xff000000) >> 24) )
#if defined(MPT_DEBUG) || defined(MPT_DEBUG_MSG_FRAME)
#define DBG_DUMP_REPLY_FRAME(mfp) \
{ u32 *m = (u32 *)(mfp); \
......@@ -966,7 +914,7 @@ typedef struct _MPT_SCSI_HOST {
u8 resetPending;
u8 is_spi; /* Parallel SCSI i/f */
u8 negoNvram; /* DV disabled, nego NVRAM */
u8 is_multipath; /* Multi-path compatible */
u8 pad1;
u8 tmState;
u8 rsvd[2];
MPT_FRAME_HDR *tmPtr; /* Ptr to TM request*/
......@@ -987,26 +935,6 @@ typedef struct _MPT_SCSI_HOST {
/* Forward decl, a strange C thing, to prevent gcc compiler warnings */
struct scsi_cmnd;
/*
* DMP service layer structure / API interface
*/
typedef struct _DmpServices {
VirtDevTracker VdevList;
struct semaphore *Daemon;
int (*ScsiPathSelect)
(struct scsi_cmnd *, MPT_SCSI_HOST **hd, int *target, int *lun);
int (*DmpIoDoneChk)
(MPT_SCSI_HOST *, struct scsi_cmnd *,
SCSIIORequest_t *,
SCSIIOReply_t *);
void (*mptscsih_scanVlist)
(MPT_SCSI_HOST *, int portnum);
int (*ScsiAbort)
(struct scsi_cmnd *);
int (*ScsiBusReset)
(struct scsi_cmnd *);
} DmpServices_t;
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/*
* Generic structure passed to the base mpt_config function.
......@@ -1042,10 +970,8 @@ extern MPT_FRAME_HDR *mpt_get_msg_frame(int handle, MPT_ADAPTER *ioc);
extern void mpt_free_msg_frame(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf);
extern void mpt_put_msg_frame(int handle, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf);
extern void mpt_add_sge(char *pAddr, u32 flagslength, dma_addr_t dma_addr);
extern void mpt_add_chain(char *pAddr, u8 next, u16 length, dma_addr_t dma_addr);
extern int mpt_send_handshake_request(int handle, MPT_ADAPTER *ioc, int reqBytes, u32 *req, int sleepFlag);
extern int mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes, u32 *req, int replyBytes, u16 *u16reply, int maxwait, int sleepFlag);
extern int mpt_verify_adapter(int iocid, MPT_ADAPTER **iocpp);
extern u32 mpt_GetIocState(MPT_ADAPTER *ioc, int cooked);
extern void mpt_print_ioc_summary(MPT_ADAPTER *ioc, char *buf, int *size, int len, int showlan);
......@@ -1062,7 +988,6 @@ extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc);
*/
extern struct list_head ioc_list;
extern struct proc_dir_entry *mpt_proc_root_dir;
extern DmpServices_t *DmpService;
extern int mpt_lan_index; /* needed by mptlan.c */
extern int mpt_stm_index; /* needed by mptstm.c */
......@@ -1070,13 +995,6 @@ extern int mpt_stm_index; /* needed by mptstm.c */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
#endif /* } __KERNEL__ */
/*
* More (public) macros...
*/
#ifndef offsetof
#define offsetof(t, m) ((size_t) (&((t *)0)->m))
#endif
#if defined(__alpha__) || defined(__sparc_v9__) || defined(__ia64__) || defined(__x86_64__)
#define CAST_U32_TO_PTR(x) ((void *)(u64)x)
#define CAST_PTR_TO_U32(x) ((u32)(u64)x)
......
......@@ -1192,12 +1192,7 @@ mptscsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
hd->ioc = ioc;
if ((int)ioc->chip_type > (int)FC929)
hd->is_spi = 1;
if (DmpService && (ioc->chip_type == FC919 ||
ioc->chip_type == FC929)) {
hd->is_multipath = 1;
}
hd->is_spi = 1;
/* SCSI needs scsi_cmnd lookup table!
* (with size equal to req_depth*PtrSz!)
......@@ -2787,7 +2782,6 @@ mptscsih_slave_alloc(struct scsi_device *device)
return -ENOMEM;
} else {
memset(vdev, 0, sizeof(VirtDevice));
rwlock_init(&vdev->VdevLock);
vdev->tflags = MPT_TARGET_FLAGS_Q_YES;
vdev->ioc_id = hd->ioc->id;
vdev->target_id = device->id;
......@@ -2983,8 +2977,6 @@ copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSI
pReq = (SCSIIORequest_t *) mf;
index = (int) pReq->TargetID;
target = hd->Targets[index];
if (hd->is_multipath && sc->device->hostdata)
target = (VirtDevice *) sc->device->hostdata;
if (sense_count) {
u8 *sense_data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment