|
@@ -1,40 +1,12 @@
|
|
|
/*
|
|
|
* linux/drivers/message/fusion/mptctl.c
|
|
|
- * Fusion MPT misc device (ioctl) driver.
|
|
|
- * For use with PCI chip/adapter(s):
|
|
|
- * LSIFC9xx/LSI409xx Fibre Channel
|
|
|
+ * mpt Ioctl driver.
|
|
|
+ * For use with LSI Logic PCI chip/adapters
|
|
|
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
|
|
*
|
|
|
- * Credits:
|
|
|
- * This driver would not exist if not for Alan Cox's development
|
|
|
- * of the linux i2o driver.
|
|
|
- *
|
|
|
- * A special thanks to Pamela Delaney (LSI Logic) for tons of work
|
|
|
- * and countless enhancements while adding support for the 1030
|
|
|
- * chip family. Pam has been instrumental in the development of
|
|
|
- * of the 2.xx.xx series fusion drivers, and her contributions are
|
|
|
- * far too numerous to hope to list in one place.
|
|
|
- *
|
|
|
- * A huge debt of gratitude is owed to David S. Miller (DaveM)
|
|
|
- * for fixing much of the stupid and broken stuff in the early
|
|
|
- * driver while porting to sparc64 platform. THANK YOU!
|
|
|
- *
|
|
|
- * A big THANKS to Eddie C. Dost for fixing the ioctl path
|
|
|
- * and most importantly f/w download on sparc64 platform!
|
|
|
- * (plus Eddie's other helpful hints and insights)
|
|
|
- *
|
|
|
- * Thanks to Arnaldo Carvalho de Melo for finding and patching
|
|
|
- * a potential memory leak in mptctl_do_fw_download(),
|
|
|
- * and for some kmalloc insight:-)
|
|
|
- *
|
|
|
- * (see also mptbase.c)
|
|
|
- *
|
|
|
- * Copyright (c) 1999-2004 LSI Logic Corporation
|
|
|
- * Originally By: Steven J. Ralston, Noah Romer
|
|
|
- * (mailto:sjralston1@netscape.net)
|
|
|
+ * Copyright (c) 1999-2005 LSI Logic Corporation
|
|
|
* (mailto:mpt_linux_developer@lsil.com)
|
|
|
*
|
|
|
- * $Id: mptctl.c,v 1.63 2002/12/03 21:26:33 pdelaney Exp $
|
|
|
*/
|
|
|
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
|
|
/*
|
|
@@ -95,8 +67,8 @@
|
|
|
#include <scsi/scsi_host.h>
|
|
|
#include <scsi/scsi_tcq.h>
|
|
|
|
|
|
-#define COPYRIGHT "Copyright (c) 1999-2004 LSI Logic Corporation"
|
|
|
-#define MODULEAUTHOR "Steven J. Ralston, Noah Romer, Pamela Delaney"
|
|
|
+#define COPYRIGHT "Copyright (c) 1999-2005 LSI Logic Corporation"
|
|
|
+#define MODULEAUTHOR "LSI Logic Corporation"
|
|
|
#include "mptbase.h"
|
|
|
#include "mptctl.h"
|
|
|
|
|
@@ -1119,7 +1091,7 @@ mptctl_getiocinfo (unsigned long arg, unsigned int data_size)
|
|
|
int numDevices = 0;
|
|
|
unsigned int max_id;
|
|
|
int ii;
|
|
|
- int port;
|
|
|
+ unsigned int port;
|
|
|
int cim_rev;
|
|
|
u8 revision;
|
|
|
|
|
@@ -1162,9 +1134,7 @@ mptctl_getiocinfo (unsigned long arg, unsigned int data_size)
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
- /* Verify the data transfer size is correct.
|
|
|
- * Ignore the port setting.
|
|
|
- */
|
|
|
+ /* Verify the data transfer size is correct. */
|
|
|
if (karg->hdr.maxDataSize != data_size) {
|
|
|
printk(KERN_ERR "%s@%d::mptctl_getiocinfo - "
|
|
|
"Structure size mismatch. Command not completed.\n",
|
|
@@ -1181,6 +1151,8 @@ mptctl_getiocinfo (unsigned long arg, unsigned int data_size)
|
|
|
else
|
|
|
karg->adapterType = MPT_IOCTL_INTERFACE_SCSI;
|
|
|
|
|
|
+ if (karg->hdr.port > 1)
|
|
|
+ return -EINVAL;
|
|
|
port = karg->hdr.port;
|
|
|
|
|
|
karg->port = port;
|