diff options
Diffstat (limited to 'openvz-sources/022.077/5116_linux-2.6.8.1-ips-7.12.02.patch')
-rw-r--r-- | openvz-sources/022.077/5116_linux-2.6.8.1-ips-7.12.02.patch | 602 |
1 files changed, 0 insertions, 602 deletions
diff --git a/openvz-sources/022.077/5116_linux-2.6.8.1-ips-7.12.02.patch b/openvz-sources/022.077/5116_linux-2.6.8.1-ips-7.12.02.patch deleted file mode 100644 index 43efc51..0000000 --- a/openvz-sources/022.077/5116_linux-2.6.8.1-ips-7.12.02.patch +++ /dev/null @@ -1,602 +0,0 @@ ---- ./drivers/scsi/ips.h.ips 2004-08-14 09:36:32.000000000 +0400 -+++ ./drivers/scsi/ips.h 2005-11-18 21:59:08.000000000 +0300 -@@ -53,14 +53,6 @@ - #include <asm/uaccess.h> - #include <asm/io.h> - -- /* Prototypes */ -- extern int ips_detect(Scsi_Host_Template *); -- extern int ips_release(struct Scsi_Host *); -- extern int ips_eh_abort(Scsi_Cmnd *); -- extern int ips_eh_reset(Scsi_Cmnd *); -- extern int ips_queue(Scsi_Cmnd *, void (*) (Scsi_Cmnd *)); -- extern const char * ips_info(struct Scsi_Host *); -- - /* - * Some handy macros - */ -@@ -95,11 +87,14 @@ - #define scsi_set_pci_device(sh,dev) (0) - #endif - -- #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -+ #ifndef IRQ_NONE - typedef void irqreturn_t; - #define IRQ_NONE - #define IRQ_HANDLED - #define IRQ_RETVAL(x) -+ #endif -+ -+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) - #define IPS_REGISTER_HOSTS(SHT) scsi_register_module(MODULE_SCSI_HA,SHT) - #define IPS_UNREGISTER_HOSTS(SHT) scsi_unregister_module(MODULE_SCSI_HA,SHT) - #define IPS_ADD_HOST(shost,device) -@@ -127,6 +122,10 @@ - #ifndef min - #define min(x,y) ((x) < (y) ? x : y) - #endif -+ -+ #ifndef __iomem /* For clean compiles in earlier kernels without __iomem annotations */ -+ #define __iomem -+ #endif - - #define pci_dma_hi32(a) ((a >> 16) >> 16) - #define pci_dma_lo32(a) (a & 0xffffffff) -@@ -453,10 +452,10 @@ - static void ips_select_queue_depth(struct Scsi_Host *, Scsi_Device *); - static int ips_biosparam(Disk *disk, kdev_t dev, int geom[]); - #else -- int ips_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int); -+ static int ips_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int); - static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev, - sector_t capacity, int geom[]); -- int ips_slave_configure(Scsi_Device *SDptr); -+ static int ips_slave_configure(Scsi_Device *SDptr); - #endif - - /* -@@ -1113,8 +1112,8 @@ - uint32_t mem_addr; /* Memory mapped address */ - uint32_t io_len; /* Size of IO Address */ - uint32_t mem_len; /* Size of memory address */ -- char *mem_ptr; /* Memory mapped Ptr */ -- char *ioremap_ptr; /* ioremapped memory pointer */ -+ char __iomem *mem_ptr; /* Memory mapped Ptr */ -+ char __iomem *ioremap_ptr;/* ioremapped memory pointer */ - ips_hw_func_t func; /* hw function pointers */ - struct pci_dev *pcidev; /* PCI device handle */ - char *flash_data; /* Save Area for flash data */ -@@ -1210,13 +1209,13 @@ - - #define IPS_VER_MAJOR 7 - #define IPS_VER_MAJOR_STRING "7" --#define IPS_VER_MINOR 00 --#define IPS_VER_MINOR_STRING "00" --#define IPS_VER_BUILD 15 --#define IPS_VER_BUILD_STRING "15" --#define IPS_VER_STRING "7.00.15" -+#define IPS_VER_MINOR 12 -+#define IPS_VER_MINOR_STRING "12" -+#define IPS_VER_BUILD 02 -+#define IPS_VER_BUILD_STRING "02" -+#define IPS_VER_STRING "7.12.02" - #define IPS_RELEASE_ID 0x00020000 --#define IPS_BUILD_IDENT 625 -+#define IPS_BUILD_IDENT 761 - #define IPS_LEGALCOPYRIGHT_STRING "(C) Copyright IBM Corp. 1994, 2002. All Rights Reserved." - #define IPS_ADAPTECCOPYRIGHT_STRING "(c) Copyright Adaptec, Inc. 2002 to 2004. All Rights Reserved." - #define IPS_DELLCOPYRIGHT_STRING "(c) Copyright Dell 2004. All Rights Reserved." -@@ -1227,32 +1226,35 @@ - #define IPS_VER_SERVERAID2 "2.88.13" - #define IPS_VER_NAVAJO "2.88.13" - #define IPS_VER_SERVERAID3 "6.10.24" --#define IPS_VER_SERVERAID4H "7.00.15" --#define IPS_VER_SERVERAID4MLx "7.00.15" --#define IPS_VER_SARASOTA "7.00.15" --#define IPS_VER_MARCO "7.00.15" --#define IPS_VER_SEBRING "7.00.15" -+#define IPS_VER_SERVERAID4H "7.12.02" -+#define IPS_VER_SERVERAID4MLx "7.12.02" -+#define IPS_VER_SARASOTA "7.12.02" -+#define IPS_VER_MARCO "7.12.02" -+#define IPS_VER_SEBRING "7.12.02" -+#define IPS_VER_KEYWEST "7.12.02" - - /* Compatability IDs for various adapters */ - #define IPS_COMPAT_UNKNOWN "" --#define IPS_COMPAT_CURRENT "SB610" -+#define IPS_COMPAT_CURRENT "KW710" - #define IPS_COMPAT_SERVERAID1 "2.25.01" - #define IPS_COMPAT_SERVERAID2 "2.88.13" - #define IPS_COMPAT_NAVAJO "2.88.13" - #define IPS_COMPAT_KIOWA "2.88.13" - #define IPS_COMPAT_SERVERAID3H "SB610" - #define IPS_COMPAT_SERVERAID3L "SB610" --#define IPS_COMPAT_SERVERAID4H "SB610" --#define IPS_COMPAT_SERVERAID4M "SB610" --#define IPS_COMPAT_SERVERAID4L "SB610" --#define IPS_COMPAT_SERVERAID4Mx "SB610" --#define IPS_COMPAT_SERVERAID4Lx "SB610" --#define IPS_COMPAT_SARASOTA "SB610" --#define IPS_COMPAT_MARCO "SB610" --#define IPS_COMPAT_SEBRING "SB610" --#define IPS_COMPAT_BIOS "SB610" -+#define IPS_COMPAT_SERVERAID4H "KW710" -+#define IPS_COMPAT_SERVERAID4M "KW710" -+#define IPS_COMPAT_SERVERAID4L "KW710" -+#define IPS_COMPAT_SERVERAID4Mx "KW710" -+#define IPS_COMPAT_SERVERAID4Lx "KW710" -+#define IPS_COMPAT_SARASOTA "KW710" -+#define IPS_COMPAT_MARCO "KW710" -+#define IPS_COMPAT_SEBRING "KW710" -+#define IPS_COMPAT_TAMPA "KW710" -+#define IPS_COMPAT_KEYWEST "KW710" -+#define IPS_COMPAT_BIOS "KW710" - --#define IPS_COMPAT_MAX_ADAPTER_TYPE 16 -+#define IPS_COMPAT_MAX_ADAPTER_TYPE 18 - #define IPS_COMPAT_ID_LENGTH 8 - - #define IPS_DEFINE_COMPAT_TABLE(tablename) \ -@@ -1272,7 +1274,9 @@ - IPS_COMPAT_SARASOTA, /* one-channel variety of SARASOTA */ \ - IPS_COMPAT_SARASOTA, /* two-channel variety of SARASOTA */ \ - IPS_COMPAT_MARCO, \ -- IPS_COMPAT_SEBRING \ -+ IPS_COMPAT_SEBRING, \ -+ IPS_COMPAT_TAMPA, \ -+ IPS_COMPAT_KEYWEST \ - } - - ---- ./drivers/scsi/ips.c.ips 2004-08-14 09:36:11.000000000 +0400 -+++ ./drivers/scsi/ips.c 2005-11-18 22:01:46.000000000 +0300 -@@ -133,6 +133,12 @@ - /* 6.10.00 - Remove 1G Addressing Limitations */ - /* 6.11.xx - Get VersionInfo buffer off the stack ! DDTS 60401 */ - /* 6.11.xx - Make Logical Drive Info structure safe for DMA DDTS 60639 */ -+/* 7.10.18 - Add highmem_io flag in SCSI Templete for 2.4 kernels */ -+/* - Fix path/name for scsi_hosts.h include for 2.6 kernels */ -+/* - Fix sort order of 7k */ -+/* - Remove 3 unused "inline" functions */ -+/* 7.10.xx - Use STATIC functions whereever possible */ -+/* - Clean up deprecated MODULE_PARM calls */ - /*****************************************************************************/ - - /* -@@ -176,7 +182,13 @@ - #include <scsi/sg.h> - - #include "scsi.h" -+ -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,0) -+#include "hosts.h" -+#else - #include <scsi/scsi_host.h> -+#endif -+ - #include "ips.h" - - #include <linux/module.h> -@@ -191,14 +203,21 @@ - - #ifdef MODULE - static char *ips = NULL; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,25) - MODULE_PARM(ips, "s"); -+#else -+#include <linux/moduleparam.h> -+#define MAX_BOOT_OPTIONS_SIZE 256 -+static char boot_options[MAX_BOOT_OPTIONS_SIZE]; -+module_param_string(ips, boot_options, MAX_BOOT_OPTIONS_SIZE, 0); -+#endif - #endif - - /* - * DRIVER_VER - */ --#define IPS_VERSION_HIGH "7.00" --#define IPS_VERSION_LOW ".15 " -+#define IPS_VERSION_HIGH "7.12" -+#define IPS_VERSION_LOW ".02 " - - #if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__) - #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" -@@ -236,6 +255,121 @@ - #endif - - /* -+ * Function prototypes -+ */ -+static int ips_detect(Scsi_Host_Template *); -+static int ips_release(struct Scsi_Host *); -+int ips_eh_abort(Scsi_Cmnd *); -+static int ips_eh_reset(Scsi_Cmnd *); -+static int ips_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *)); -+static const char *ips_info(struct Scsi_Host *); -+static irqreturn_t do_ipsintr(int, void *, struct pt_regs *); -+static int ips_hainit(ips_ha_t *); -+static int ips_map_status(ips_ha_t *, ips_scb_t *, ips_stat_t *); -+static int ips_send_wait(ips_ha_t *, ips_scb_t *, int, int); -+static int ips_send_cmd(ips_ha_t *, ips_scb_t *); -+static int ips_online(ips_ha_t *, ips_scb_t *); -+static int ips_inquiry(ips_ha_t *, ips_scb_t *); -+static int ips_rdcap(ips_ha_t *, ips_scb_t *); -+static int ips_msense(ips_ha_t *, ips_scb_t *); -+static int ips_reqsen(ips_ha_t *, ips_scb_t *); -+static int ips_deallocatescbs(ips_ha_t *, int); -+static int ips_allocatescbs(ips_ha_t *); -+static int ips_reset_copperhead(ips_ha_t *); -+static int ips_reset_copperhead_memio(ips_ha_t *); -+static int ips_reset_morpheus(ips_ha_t *); -+static int ips_issue_copperhead(ips_ha_t *, ips_scb_t *); -+static int ips_issue_copperhead_memio(ips_ha_t *, ips_scb_t *); -+static int ips_issue_i2o(ips_ha_t *, ips_scb_t *); -+static int ips_issue_i2o_memio(ips_ha_t *, ips_scb_t *); -+static int ips_isintr_copperhead(ips_ha_t *); -+static int ips_isintr_copperhead_memio(ips_ha_t *); -+static int ips_isintr_morpheus(ips_ha_t *); -+static int ips_wait(ips_ha_t *, int, int); -+static int ips_write_driver_status(ips_ha_t *, int); -+static int ips_read_adapter_status(ips_ha_t *, int); -+static int ips_read_subsystem_parameters(ips_ha_t *, int); -+static int ips_read_config(ips_ha_t *, int); -+static int ips_clear_adapter(ips_ha_t *, int); -+static int ips_readwrite_page5(ips_ha_t *, int, int); -+static int ips_init_copperhead(ips_ha_t *); -+static int ips_init_copperhead_memio(ips_ha_t *); -+static int ips_init_morpheus(ips_ha_t *); -+static int ips_isinit_copperhead(ips_ha_t *); -+static int ips_isinit_copperhead_memio(ips_ha_t *); -+static int ips_isinit_morpheus(ips_ha_t *); -+static int ips_erase_bios(ips_ha_t *); -+static int ips_program_bios(ips_ha_t *, char *, uint32_t, uint32_t); -+static int ips_verify_bios(ips_ha_t *, char *, uint32_t, uint32_t); -+static int ips_erase_bios_memio(ips_ha_t *); -+static int ips_program_bios_memio(ips_ha_t *, char *, uint32_t, uint32_t); -+static int ips_verify_bios_memio(ips_ha_t *, char *, uint32_t, uint32_t); -+static int ips_flash_copperhead(ips_ha_t *, ips_passthru_t *, ips_scb_t *); -+static int ips_flash_bios(ips_ha_t *, ips_passthru_t *, ips_scb_t *); -+static int ips_flash_firmware(ips_ha_t *, ips_passthru_t *, ips_scb_t *); -+static void ips_free_flash_copperhead(ips_ha_t * ha); -+static void ips_get_bios_version(ips_ha_t *, int); -+static void ips_identify_controller(ips_ha_t *); -+static void ips_chkstatus(ips_ha_t *, IPS_STATUS *); -+static void ips_enable_int_copperhead(ips_ha_t *); -+static void ips_enable_int_copperhead_memio(ips_ha_t *); -+static void ips_enable_int_morpheus(ips_ha_t *); -+static int ips_intr_copperhead(ips_ha_t *); -+static int ips_intr_morpheus(ips_ha_t *); -+static void ips_next(ips_ha_t *, int); -+static void ipsintr_blocking(ips_ha_t *, struct ips_scb *); -+static void ipsintr_done(ips_ha_t *, struct ips_scb *); -+static void ips_done(ips_ha_t *, ips_scb_t *); -+static void ips_free(ips_ha_t *); -+static void ips_init_scb(ips_ha_t *, ips_scb_t *); -+static void ips_freescb(ips_ha_t *, ips_scb_t *); -+static void ips_setup_funclist(ips_ha_t *); -+static void ips_statinit(ips_ha_t *); -+static void ips_statinit_memio(ips_ha_t *); -+static void ips_fix_ffdc_time(ips_ha_t *, ips_scb_t *, time_t); -+static void ips_ffdc_reset(ips_ha_t *, int); -+static void ips_ffdc_time(ips_ha_t *); -+static uint32_t ips_statupd_copperhead(ips_ha_t *); -+static uint32_t ips_statupd_copperhead_memio(ips_ha_t *); -+static uint32_t ips_statupd_morpheus(ips_ha_t *); -+static ips_scb_t *ips_getscb(ips_ha_t *); -+static inline void ips_putq_scb_head(ips_scb_queue_t *, ips_scb_t *); -+static inline void ips_putq_scb_tail(ips_scb_queue_t *, ips_scb_t *); -+static inline void ips_putq_wait_head(ips_wait_queue_t *, Scsi_Cmnd *); -+static inline void ips_putq_wait_tail(ips_wait_queue_t *, Scsi_Cmnd *); -+static inline void ips_putq_copp_head(ips_copp_queue_t *, -+ ips_copp_wait_item_t *); -+static inline void ips_putq_copp_tail(ips_copp_queue_t *, -+ ips_copp_wait_item_t *); -+static inline ips_scb_t *ips_removeq_scb_head(ips_scb_queue_t *); -+static inline ips_scb_t *ips_removeq_scb(ips_scb_queue_t *, ips_scb_t *); -+static inline Scsi_Cmnd *ips_removeq_wait_head(ips_wait_queue_t *); -+static inline Scsi_Cmnd *ips_removeq_wait(ips_wait_queue_t *, Scsi_Cmnd *); -+static inline ips_copp_wait_item_t *ips_removeq_copp(ips_copp_queue_t *, -+ ips_copp_wait_item_t *); -+static inline ips_copp_wait_item_t *ips_removeq_copp_head(ips_copp_queue_t *); -+ -+static int ips_is_passthru(Scsi_Cmnd *); -+static int ips_make_passthru(ips_ha_t *, Scsi_Cmnd *, ips_scb_t *, int); -+static int ips_usrcmd(ips_ha_t *, ips_passthru_t *, ips_scb_t *); -+static void ips_cleanup_passthru(ips_ha_t *, ips_scb_t *); -+static void ips_scmd_buf_write(Scsi_Cmnd * scmd, void *data, -+ unsigned int count); -+static void ips_scmd_buf_read(Scsi_Cmnd * scmd, void *data, unsigned int count); -+ -+static int ips_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int); -+static int ips_host_info(ips_ha_t *, char *, off_t, int); -+static void copy_mem_info(IPS_INFOSTR *, char *, int); -+static int copy_info(IPS_INFOSTR *, char *, ...); -+static int ips_get_version_info(ips_ha_t * ha, dma_addr_t, int intr); -+static void ips_version_check(ips_ha_t * ha, int intr); -+static int ips_abort_init(ips_ha_t * ha, int index); -+static int ips_init_phase2(int index); -+ -+static int ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr); -+static int ips_register_scsi(int index); -+ -+/* - * global variables - */ - static const char ips_name[] = "ips"; -@@ -278,9 +412,12 @@ - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) - .use_new_eh_code = 1, - #endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,20) && LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -+ .highmem_io = 1, -+#endif - }; - --IPS_DEFINE_COMPAT_TABLE( Compatable ); /* Version Compatability Table */ -+static IPS_DEFINE_COMPAT_TABLE( Compatable ); /* Version Compatability Table */ - - - /* This table describes all ServeRAID Adapters */ -@@ -298,7 +435,7 @@ - static int __devinit ips_insert_device(struct pci_dev *pci_dev, const struct pci_device_id *ent); - static void __devexit ips_remove_device(struct pci_dev *pci_dev); - --struct pci_driver ips_pci_driver = { -+static struct pci_driver ips_pci_driver = { - .name = ips_hot_plug_name, - .id_table = ips_pci_table, - .probe = ips_insert_device, -@@ -395,123 +532,6 @@ - IPS_DATA_UNK, IPS_DATA_UNK, IPS_DATA_UNK, IPS_DATA_UNK, IPS_DATA_UNK - }; - --/* -- * Function prototypes -- */ --int ips_detect(Scsi_Host_Template *); --int ips_release(struct Scsi_Host *); --int ips_eh_abort(Scsi_Cmnd *); --int ips_eh_reset(Scsi_Cmnd *); --int ips_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *)); --const char *ips_info(struct Scsi_Host *); --irqreturn_t do_ipsintr(int, void *, struct pt_regs *); --static int ips_hainit(ips_ha_t *); --static int ips_map_status(ips_ha_t *, ips_scb_t *, ips_stat_t *); --static int ips_send_wait(ips_ha_t *, ips_scb_t *, int, int); --static int ips_send_cmd(ips_ha_t *, ips_scb_t *); --static int ips_online(ips_ha_t *, ips_scb_t *); --static int ips_inquiry(ips_ha_t *, ips_scb_t *); --static int ips_rdcap(ips_ha_t *, ips_scb_t *); --static int ips_msense(ips_ha_t *, ips_scb_t *); --static int ips_reqsen(ips_ha_t *, ips_scb_t *); --static int ips_deallocatescbs(ips_ha_t *, int); --static int ips_allocatescbs(ips_ha_t *); --static int ips_reset_copperhead(ips_ha_t *); --static int ips_reset_copperhead_memio(ips_ha_t *); --static int ips_reset_morpheus(ips_ha_t *); --static int ips_issue_copperhead(ips_ha_t *, ips_scb_t *); --static int ips_issue_copperhead_memio(ips_ha_t *, ips_scb_t *); --static int ips_issue_i2o(ips_ha_t *, ips_scb_t *); --static int ips_issue_i2o_memio(ips_ha_t *, ips_scb_t *); --static int ips_isintr_copperhead(ips_ha_t *); --static int ips_isintr_copperhead_memio(ips_ha_t *); --static int ips_isintr_morpheus(ips_ha_t *); --static int ips_wait(ips_ha_t *, int, int); --static int ips_write_driver_status(ips_ha_t *, int); --static int ips_read_adapter_status(ips_ha_t *, int); --static int ips_read_subsystem_parameters(ips_ha_t *, int); --static int ips_read_config(ips_ha_t *, int); --static int ips_clear_adapter(ips_ha_t *, int); --static int ips_readwrite_page5(ips_ha_t *, int, int); --static int ips_init_copperhead(ips_ha_t *); --static int ips_init_copperhead_memio(ips_ha_t *); --static int ips_init_morpheus(ips_ha_t *); --static int ips_isinit_copperhead(ips_ha_t *); --static int ips_isinit_copperhead_memio(ips_ha_t *); --static int ips_isinit_morpheus(ips_ha_t *); --static int ips_erase_bios(ips_ha_t *); --static int ips_program_bios(ips_ha_t *, char *, uint32_t, uint32_t); --static int ips_verify_bios(ips_ha_t *, char *, uint32_t, uint32_t); --static int ips_erase_bios_memio(ips_ha_t *); --static int ips_program_bios_memio(ips_ha_t *, char *, uint32_t, uint32_t); --static int ips_verify_bios_memio(ips_ha_t *, char *, uint32_t, uint32_t); --static int ips_flash_copperhead(ips_ha_t *, ips_passthru_t *, ips_scb_t *); --static int ips_flash_bios(ips_ha_t *, ips_passthru_t *, ips_scb_t *); --static int ips_flash_firmware(ips_ha_t *, ips_passthru_t *, ips_scb_t *); --static void ips_free_flash_copperhead(ips_ha_t * ha); --static void ips_get_bios_version(ips_ha_t *, int); --static void ips_identify_controller(ips_ha_t *); --static void ips_chkstatus(ips_ha_t *, IPS_STATUS *); --static void ips_enable_int_copperhead(ips_ha_t *); --static void ips_enable_int_copperhead_memio(ips_ha_t *); --static void ips_enable_int_morpheus(ips_ha_t *); --static int ips_intr_copperhead(ips_ha_t *); --static int ips_intr_morpheus(ips_ha_t *); --static void ips_next(ips_ha_t *, int); --static void ipsintr_blocking(ips_ha_t *, struct ips_scb *); --static void ipsintr_done(ips_ha_t *, struct ips_scb *); --static void ips_done(ips_ha_t *, ips_scb_t *); --static void ips_free(ips_ha_t *); --static void ips_init_scb(ips_ha_t *, ips_scb_t *); --static void ips_freescb(ips_ha_t *, ips_scb_t *); --static void ips_setup_funclist(ips_ha_t *); --static void ips_statinit(ips_ha_t *); --static void ips_statinit_memio(ips_ha_t *); --static void ips_fix_ffdc_time(ips_ha_t *, ips_scb_t *, time_t); --static void ips_ffdc_reset(ips_ha_t *, int); --static void ips_ffdc_time(ips_ha_t *); --static uint32_t ips_statupd_copperhead(ips_ha_t *); --static uint32_t ips_statupd_copperhead_memio(ips_ha_t *); --static uint32_t ips_statupd_morpheus(ips_ha_t *); --static ips_scb_t *ips_getscb(ips_ha_t *); --static inline void ips_putq_scb_head(ips_scb_queue_t *, ips_scb_t *); --static inline void ips_putq_scb_tail(ips_scb_queue_t *, ips_scb_t *); --static inline void ips_putq_wait_head(ips_wait_queue_t *, Scsi_Cmnd *); --static inline void ips_putq_wait_tail(ips_wait_queue_t *, Scsi_Cmnd *); --static inline void ips_putq_copp_head(ips_copp_queue_t *, -- ips_copp_wait_item_t *); --static inline void ips_putq_copp_tail(ips_copp_queue_t *, -- ips_copp_wait_item_t *); --static inline ips_scb_t *ips_removeq_scb_head(ips_scb_queue_t *); --static inline ips_scb_t *ips_removeq_scb(ips_scb_queue_t *, ips_scb_t *); --static inline Scsi_Cmnd *ips_removeq_wait_head(ips_wait_queue_t *); --static inline Scsi_Cmnd *ips_removeq_wait(ips_wait_queue_t *, Scsi_Cmnd *); --static inline ips_copp_wait_item_t *ips_removeq_copp(ips_copp_queue_t *, -- ips_copp_wait_item_t *); --static inline ips_copp_wait_item_t *ips_removeq_copp_head(ips_copp_queue_t *); -- --static int ips_is_passthru(Scsi_Cmnd *); --static int ips_make_passthru(ips_ha_t *, Scsi_Cmnd *, ips_scb_t *, int); --static int ips_usrcmd(ips_ha_t *, ips_passthru_t *, ips_scb_t *); --static void ips_cleanup_passthru(ips_ha_t *, ips_scb_t *); --static void ips_scmd_buf_write(Scsi_Cmnd * scmd, void *data, -- unsigned int count); --static void ips_scmd_buf_read(Scsi_Cmnd * scmd, void *data, unsigned int count); -- --int ips_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int); --static int ips_host_info(ips_ha_t *, char *, off_t, int); --static void copy_mem_info(IPS_INFOSTR *, char *, int); --static int copy_info(IPS_INFOSTR *, char *, ...); --static int ips_get_version_info(ips_ha_t * ha, dma_addr_t, int intr); --static void ips_version_check(ips_ha_t * ha, int intr); --static int ips_abort_init(ips_ha_t * ha, int index); --static int ips_init_phase2(int index); -- --static int ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr); --static int ips_register_scsi(int index); --/*--------------------------------------------------------------------------*/ --/* Exported Functions */ --/*--------------------------------------------------------------------------*/ - - /****************************************************************************/ - /* */ -@@ -580,7 +600,7 @@ - /* NOTE: this routine is called under the io_request_lock spinlock */ - /* */ - /****************************************************************************/ --int -+static int - ips_detect(Scsi_Host_Template * SHT) - { - int i; -@@ -588,8 +608,11 @@ - METHOD_TRACE("ips_detect", 1); - - #ifdef MODULE -- if (ips) -- ips_setup(ips); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,25) -+ ips = boot_options; -+#endif -+ if (ips) -+ ips_setup(ips); - #endif - - for (i = 0; i < ips_num_controllers; i++) { -@@ -669,7 +692,7 @@ - /* Remove a driver */ - /* */ - /****************************************************************************/ --int -+static int - ips_release(struct Scsi_Host *sh) - { - ips_scb_t *scb; -@@ -865,7 +888,7 @@ - /* NOTE: this routine is called under the io_request_lock spinlock */ - /* */ - /****************************************************************************/ --int -+static int - ips_eh_reset(Scsi_Cmnd * SC) - { - int ret; -@@ -1065,7 +1088,7 @@ - /* Linux obtains io_request_lock before calling this function */ - /* */ - /****************************************************************************/ --int -+static int - ips_queue(Scsi_Cmnd * SC, void (*done) (Scsi_Cmnd *)) - { - ips_ha_t *ha; -@@ -1288,7 +1311,7 @@ - /* Set queue depths on devices once scan is complete */ - /* */ - /****************************************************************************/ --int -+static int - ips_slave_configure(Scsi_Device * SDptr) - { - ips_ha_t *ha; -@@ -1314,7 +1337,7 @@ - /* Wrapper for the interrupt handler */ - /* */ - /****************************************************************************/ --irqreturn_t -+static irqreturn_t - do_ipsintr(int irq, void *dev_id, struct pt_regs * regs) - { - ips_ha_t *ha; -@@ -1493,7 +1516,7 @@ - /* Return info about the driver */ - /* */ - /****************************************************************************/ --const char * -+static const char * - ips_info(struct Scsi_Host *SH) - { - static char buffer[256]; -@@ -1531,7 +1554,7 @@ - /* The passthru interface for the driver */ - /* */ - /****************************************************************************/ --int -+static int - ips_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, - int length, int func) - { -@@ -6996,7 +7019,6 @@ - for (j = position; j < ips_num_controllers; j++) { - switch (ips_ha[j]->ad_type) { - case IPS_ADTYPE_SERVERAID6M: -- case IPS_ADTYPE_SERVERAID7k: - case IPS_ADTYPE_SERVERAID7M: - if (nvram->adapter_order[i] == 'M') { - ips_shift_controllers(position, -@@ -7017,6 +7039,7 @@ - case IPS_ADTYPE_SERVERAID6I: - case IPS_ADTYPE_SERVERAID5I2: - case IPS_ADTYPE_SERVERAID5I1: -+ case IPS_ADTYPE_SERVERAID7k: - if (nvram->adapter_order[i] == 'S') { - ips_shift_controllers(position, - j); -@@ -7254,8 +7277,8 @@ - int j; - int index; - dma_addr_t dma_address; -- char *ioremap_ptr; -- char *mem_ptr; -+ char __iomem *ioremap_ptr; -+ char __iomem *mem_ptr; - uint32_t IsDead; - - METHOD_TRACE("ips_init_phase1", 1); -@@ -7545,6 +7568,15 @@ - MODULE_LICENSE("GPL"); - #endif - -+#ifdef MODULE_DESCRIPTION -+MODULE_DESCRIPTION("IBM ServeRAID Adapter Driver " IPS_VER_STRING); -+#endif -+ -+#ifdef MODULE_VERSION -+MODULE_VERSION(IPS_VER_STRING); -+#endif -+ -+ - /* - * Overrides for Emacs so that we almost follow Linus's tabbing style. - * Emacs will notice this stuff at the end of the file and automatically |