1 Known issues : 1 Known issues : 2 * Please read the associated RELEASE-N 2 * Please read the associated RELEASE-NOTES file !!! 3 * This source release intended for ups 3 * This source release intended for upstream kernel releases only! 4 4 5 Changes from 20050323 to 20050413 5 Changes from 20050323 to 20050413 6 6 7 * Changed version number to 8.0.28 7 * Changed version number to 8.0.28 8 * Fixed build warning for 2.6.12-rc2 k 8 * Fixed build warning for 2.6.12-rc2 kernels: mempool_alloc now 9 requires a function which takes an u 9 requires a function which takes an unsigned int for gfp_flags. 10 * Removed pci dma sync calls to cohere 10 * Removed pci dma sync calls to coherent/consistent pci memory. 11 * Merged patch from Christoph Hellwig < 11 * Merged patch from Christoph Hellwig <hch@lst.de>: split helpers 12 for fabric and nport logins out of l 12 for fabric and nport logins out of lpfc_cmpl_els_flogi. 13 * Removed sysfs attributes that are us 13 * Removed sysfs attributes that are used to dump the various 14 discovery lists. 14 discovery lists. 15 * Fix for issue where not all luns are 15 * Fix for issue where not all luns are seen. Search all lists 16 other than unmap list in lpfc_find_t 16 other than unmap list in lpfc_find_target(). Otherwise INQUIRY 17 to luns on nodes in NPR or other rel 17 to luns on nodes in NPR or other relevant states (PLOGI, 18 PRLI...) are errored back and scan() 18 PRLI...) are errored back and scan() terminates. 19 * Removed FC_TRANSPORT_PATCHESxxx defi 19 * Removed FC_TRANSPORT_PATCHESxxx defines. They're in 2.6.12-rc1. 20 * Compare return value of lpfc_scsi_tg 20 * Compare return value of lpfc_scsi_tgt_reset against SCSI 21 midlayer codes SUCCESS/FAILED which 21 midlayer codes SUCCESS/FAILED which that function returns rather 22 than SLI return code. 22 than SLI return code. 23 * Removed extraneous calls to lpfc_sli 23 * Removed extraneous calls to lpfc_sli_next_iotag which should 24 only be called from lpfc_sli_submit_ 24 only be called from lpfc_sli_submit_iocb. Also make 25 lpfc_sli_next_iotag static. 25 lpfc_sli_next_iotag static. 26 * Added PCI ID for LP10000-S. 26 * Added PCI ID for LP10000-S. 27 * Changes in lpfc_abort_handler(): Ret 27 * Changes in lpfc_abort_handler(): Return SUCCESS if we did not 28 find command in both TX and TX compl 28 find command in both TX and TX completion queues. Return ERROR 29 if we timed out waiting for command 29 if we timed out waiting for command to complete after abort was 30 issued. 30 issued. 31 * Zero-out response sense length in lp 31 * Zero-out response sense length in lpfc_scsi_prep_cmnd to prevent 32 interpretation of stale sense length 32 interpretation of stale sense length when the command completes 33 - was causing spurious 0710 messages 33 - was causing spurious 0710 messages. 34 * Moved clearing of host_scribble insi 34 * Moved clearing of host_scribble inside host_lock in IO 35 completion path. 35 completion path. 36 * Fixed a bunch of mixed tab/space ind 36 * Fixed a bunch of mixed tab/space indentation. 37 * Allow hex format numbers in sysfs at 37 * Allow hex format numbers in sysfs attribute setting. Fix 38 application hang when invalid number 38 application hang when invalid numbers are used in sysfs 39 settings. 39 settings. 40 * Removed extra iotag allocation by lp 40 * Removed extra iotag allocation by lpfc_abort_handler. 41 * Clear host_scribble in the scsi_cmnd 41 * Clear host_scribble in the scsi_cmnd structure when failing in 42 queuecommand. 42 queuecommand. 43 * Changed logic at top of lpfc_abort_h 43 * Changed logic at top of lpfc_abort_handler so that if the 44 command's host_scibble field is NULL 44 command's host_scibble field is NULL, return SUCCESS because the 45 driver has already returned the comm 45 driver has already returned the command to the midlayer. 46 46 47 Changes from 20050308 to 20050323 47 Changes from 20050308 to 20050323 48 48 49 * Changed version number to 8.0.27 49 * Changed version number to 8.0.27 50 * Changed a few lines from patch submi 50 * Changed a few lines from patch submitted by Christoph Hellwig 51 (3/19). MAILBOX_WSIZE * (uint32_t) i 51 (3/19). MAILBOX_WSIZE * (uint32_t) is replaced with an 52 equivalent MAILBOX_CMDSIZE macro. 52 equivalent MAILBOX_CMDSIZE macro. 53 * Merged patch from Christoph Hellwig 53 * Merged patch from Christoph Hellwig (3/19): some misc patches 54 against the latest drivers: 54 against the latest drivers: 55 - stop using volatile. if you need 55 - stop using volatile. if you need special ordering use memory 56 barriers but that doesn't seem to 56 barriers but that doesn't seem to be the case here 57 - switch lpfc_sli_pcimem_bcopy to ta 57 - switch lpfc_sli_pcimem_bcopy to take void * arguments. 58 - remove typecast for constants - a 58 - remove typecast for constants - a U postfix marks them 59 unsigned int in C 59 unsigned int in C 60 - add a MAILBOX_CMD_SIZE macro, as m 60 - add a MAILBOX_CMD_SIZE macro, as most users of 61 MAILBOX_CMD_WSIZE didn't really wa 61 MAILBOX_CMD_WSIZE didn't really want the word count 62 - kill struct lpfc_scsi_dma_buf and 62 - kill struct lpfc_scsi_dma_buf and embedded the two members 63 directly in struct lpfc_scsi_buf 63 directly in struct lpfc_scsi_buf 64 - don't call dma_sync function on al 64 - don't call dma_sync function on allocations from 65 pci_pool_alloc - it's only for str 65 pci_pool_alloc - it's only for streaming mappings (pci_map_*) 66 * Merged patch from Christoph Hellwig 66 * Merged patch from Christoph Hellwig (3/19) - nlp_failMask isn't 67 ever used by the driver, just report 67 ever used by the driver, just reported to userspace (and that in 68 a multi-value file which is against 68 a multi-value file which is against the sysfs guidelines). 69 * Change pci_module_init to pci_regist 69 * Change pci_module_init to pci_register_module() with appropriate 70 ifdefs. 70 ifdefs. 71 * Added #include <linux/dma-mapping.h> 71 * Added #include <linux/dma-mapping.h> as required by the DMA 72 32bit and 64bit defines on some arch 72 32bit and 64bit defines on some archs. 73 * Merged patch from Christoph Hellwig 73 * Merged patch from Christoph Hellwig (03/19) - fix initialization 74 order - scsi_add_host must happen la 74 order - scsi_add_host must happen last from scsi POV. Also some 75 minor style/comment fixups. 75 minor style/comment fixups. 76 * Fixed use of TRANSPORT_PATCHES_V2 by 76 * Fixed use of TRANSPORT_PATCHES_V2 by changing to 77 FC_TRANSPORT_PATCHES_V2. 77 FC_TRANSPORT_PATCHES_V2. 78 78 79 Changes from 20050223 to 20050308 79 Changes from 20050223 to 20050308 80 80 81 * Changed version number to 8.0.26 81 * Changed version number to 8.0.26 82 * Revise TRANSPORT_PATCHES_V2 so that 82 * Revise TRANSPORT_PATCHES_V2 so that lpfc_target is removed and 83 rport data is used instead. Removed 83 rport data is used instead. Removed device_queue_hash[]. 84 * Changed RW attributes of scan_down, 84 * Changed RW attributes of scan_down, max_luns and fcp_bind_method 85 to R only. 85 to R only. 86 * Fixed RSCN handling during initial l 86 * Fixed RSCN handling during initial link initialization. 87 * Fixed issue with receiving PLOGI han 87 * Fixed issue with receiving PLOGI handling when node is on NPR 88 list and marked for ADISC. 88 list and marked for ADISC. 89 * Fixed RSCN timeout issues. 89 * Fixed RSCN timeout issues. 90 * Reduced severity of "SCSI layer issu 90 * Reduced severity of "SCSI layer issued abort device" message to 91 KERN_WARNING. 91 KERN_WARNING. 92 * Feedback from Christoph Hellwig (on 92 * Feedback from Christoph Hellwig (on 2/5) - In the LPFC_EVT_SCAN 93 case the caller already has the targ 93 case the caller already has the target ID handly, so pass that 94 one in evt_arg1. 94 one in evt_arg1. 95 * Fix compile warning/resultant panic 95 * Fix compile warning/resultant panic in 96 lpfc_register_remote_port(). 96 lpfc_register_remote_port(). 97 97 98 Changes from 20050215 to 20050223 98 Changes from 20050215 to 20050223 99 99 100 * Changed version number to 8.0.25 100 * Changed version number to 8.0.25 101 * Add appropriate comments to lpfc_sli 101 * Add appropriate comments to lpfc_sli.c. 102 * Use DMA_64BIT_MASK and DMA_32BIT_MAS 102 * Use DMA_64BIT_MASK and DMA_32BIT_MASK defines instead of 103 0xffffffffffffffffULL & 0xffffffffUL 103 0xffffffffffffffffULL & 0xffffffffULL respectively. Use pci 104 equivalents instead of dma_set_mask 104 equivalents instead of dma_set_mask and also modify condition 105 clause to actually exit on error con 105 clause to actually exit on error condition. 106 * Restart els timeout handler only if 106 * Restart els timeout handler only if txcmplq_cnt. On submission, 107 mod_timer the els_tmofunc. This pre 107 mod_timer the els_tmofunc. This prevents the worker thread from 108 waking up the els_tmo handler un-nec 108 waking up the els_tmo handler un-necessarily. The thread was 109 being woken up even when there were 109 being woken up even when there were no pending els commands. 110 * Added new typedefs for abort and res 110 * Added new typedefs for abort and reset functions. 111 * Collapsed lpfc_sli_abort_iocb_xxx in 111 * Collapsed lpfc_sli_abort_iocb_xxx into a single function. 112 * Collapsed lpfc_sli_sum_iocb_xxx into 112 * Collapsed lpfc_sli_sum_iocb_xxx into a single function. 113 * Removed TXQ from all abort and reset 113 * Removed TXQ from all abort and reset handlers since it is never 114 used. 114 used. 115 * Fixed Oops panic in 8.0.23 (reported 115 * Fixed Oops panic in 8.0.23 (reported on SourceForge). The 116 driver was not handling LPFC_IO_POLL 116 driver was not handling LPFC_IO_POLL cases correctly in 117 fast_ring_event and was setting the 117 fast_ring_event and was setting the tgt_reset timeout to 0 in 118 lpfc_reset_bus_handler. This 0 time 118 lpfc_reset_bus_handler. This 0 timeout would not allow the FW 119 to timeout ABTS's on bad targets and 119 to timeout ABTS's on bad targets and allow the driver to have an 120 iocb on two lists. Also split the l 120 iocb on two lists. Also split the lpfc_sli_ringtxcmpl_get 121 function into two routines to match 121 function into two routines to match the fast and slow completion 122 semantics - ELS completions worked f 122 semantics - ELS completions worked for the wrong reasons. Also 123 provided new log message number - ha 123 provided new log message number - had two 0326 entries. 124 * Removed unused #define LPFC_SCSI_INI 124 * Removed unused #define LPFC_SCSI_INITIAL_BPL_SIZE. 125 * Removed unused struct lpfc_node_farp 125 * Removed unused struct lpfc_node_farp_pend definition. 126 * Removed unused #define LPFC_SLIM2_PA 126 * Removed unused #define LPFC_SLIM2_PAGE_AREA. 127 * Changed zeros used as pointers to NU 127 * Changed zeros used as pointers to NULL. 128 * Removed unneeded braces around singl 128 * Removed unneeded braces around single line in lpfc_do_work. 129 * Close humongous memory leak in lpfc_ 129 * Close humongous memory leak in lpfc_sli.c - driver was losing 13 130 iocbq structures per LIP. 130 iocbq structures per LIP. 131 * Removed last of GFP_ATOMIC allocatio 131 * Removed last of GFP_ATOMIC allocations. 132 * Locks are not taken outside of nport 132 * Locks are not taken outside of nportdisc, hbadisc, els and most 133 of the init, sli, mbox and ct groups 133 of the init, sli, mbox and ct groups of functions 134 * Fix comment for lpfc_sli_iocb_cmd_ty 134 * Fix comment for lpfc_sli_iocb_cmd_type to fit within 80 columns. 135 * Replaced wait_event() with wait_even 135 * Replaced wait_event() with wait_event_interruptible(). 136 wait_event() puts the woker thread i 136 wait_event() puts the woker thread in an UNINTERRUPTIBLE state 137 causing it to figure in load average 137 causing it to figure in load average calculations. Also add a 138 BUG_ON to the ret code of wait_event 138 BUG_ON to the ret code of wait_event_interruptible() since the 139 premise is that the worker thread is 139 premise is that the worker thread is signal-immune. 140 140 141 Changes from 20050208 to 20050215 141 Changes from 20050208 to 20050215 142 142 143 * Changed version number to 8.0.24 143 * Changed version number to 8.0.24 144 * Fixed a memory leak of iocbq structu 144 * Fixed a memory leak of iocbq structure. For ELS solicited iocbs 145 sli layer now frees the response ioc 145 sli layer now frees the response iocbs after processing it. 146 * Closed large memory leak -- we were 146 * Closed large memory leak -- we were losing 13 iocbq structures 147 per LIP. 147 per LIP. 148 * Changing EIO and ENOMEM to -EIO and 148 * Changing EIO and ENOMEM to -EIO and -ENOMEM respectively. 149 * Cleanup of lpfc_sli_iocb_cmd_type ar 149 * Cleanup of lpfc_sli_iocb_cmd_type array and typing of iocb type. 150 * Implemented Christoph Hellwig's feed 150 * Implemented Christoph Hellwig's feedback from 02/05: Remove 151 macros putLunHigh, putLunLow. Use lp 151 macros putLunHigh, putLunLow. Use lpfc_put_lun() inline instead. 152 * Integrated Christoph Hellwig's feedb 152 * Integrated Christoph Hellwig's feedback from 02/05: Instead of 153 cpu_to_be32(), use swab16((uint16_t) 153 cpu_to_be32(), use swab16((uint16_t)lun). This is the same as 154 "swab16() on LE" and "<<16 on BE". 154 "swab16() on LE" and "<<16 on BE". 155 * Added updates for revised FC remote 155 * Added updates for revised FC remote port patch (dev_loss_tmo 156 moved to rport, hostdata renamed dd_ 156 moved to rport, hostdata renamed dd_data, add fc_remote_host() 157 on shutdown). 157 on shutdown). 158 * Removed unnecessary function prototy 158 * Removed unnecessary function prototype. 159 * Added code to prevent waking up work 159 * Added code to prevent waking up worker thread after the exit of 160 worker thread. Fixes panic seen wit 160 worker thread. Fixes panic seen with insmod/rmmod testing with 161 70 disks. 161 70 disks. 162 * Integrated Christoph Hellwig's patch 162 * Integrated Christoph Hellwig's patch from 1/30: Make some 163 variables/code static (namely lpfcAl 163 variables/code static (namely lpfcAlpaArray and 164 process_nodev_timeout()). 164 process_nodev_timeout()). 165 * Integrated Christoph Hellwig's patch 165 * Integrated Christoph Hellwig's patch from 1/30: Use 166 switch...case instead of if...else i 166 switch...case instead of if...else if...else if while decoding 167 JDEC id. 167 JDEC id. 168 168 169 Changes from 20050201 to 20050208 169 Changes from 20050201 to 20050208 170 170 171 * Changed version number to 8.0.23 171 * Changed version number to 8.0.23 172 * Make lpfc_work_done, lpfc_get_scsi_b 172 * Make lpfc_work_done, lpfc_get_scsi_buf, 173 lpfc_mbx_process_link_up, lpfc_mbx_i 173 lpfc_mbx_process_link_up, lpfc_mbx_issue_link_down and 174 lpfc_sli_chipset_init static. 174 lpfc_sli_chipset_init static. 175 * Cleaned up references to list_head-> 175 * Cleaned up references to list_head->next field in the driver. 176 * Replaced lpfc_discq_post_event with 176 * Replaced lpfc_discq_post_event with lpfc_workq_post_event. 177 * Implemented Christoph Hellwig's revi !! 177 * Implmented Christoph Hellwig's review from 2/5: Check for return 178 values of kmalloc. 178 values of kmalloc. 179 * Integrated Christoph Hellwig's patch 179 * Integrated Christoph Hellwig's patch from 1/30: Protecting 180 scan_tmo and friends in !FC_TRANSPOR 180 scan_tmo and friends in !FC_TRANSPORT_PATCHES_V2 && 181 !USE_SCAN_TARGET. 181 !USE_SCAN_TARGET. 182 * Integrated Christoph Hellwig's patch 182 * Integrated Christoph Hellwig's patch from 1/30: Some fixes in 183 the evt handling area. 183 the evt handling area. 184 * Integrated Christoph Hellwig's patch 184 * Integrated Christoph Hellwig's patch from 1/30: Remove usage of 185 intr_inited variable. The interrupt !! 185 intr_inited variable. The interrupt initilization from OS side 186 now happens in lpfc_probe_one(). 186 now happens in lpfc_probe_one(). 187 * Integrated Christoph Hellwig's patch 187 * Integrated Christoph Hellwig's patch from 1/30: remove shim 188 lpfc_alloc_transport_attr - remove s 188 lpfc_alloc_transport_attr - remove shim lpfc_alloc_shost_attrs - 189 remove shim lpfc_scsi_host_init - al 189 remove shim lpfc_scsi_host_init - allocate phba mem in scsi's 190 hostdata readjust code so that they 190 hostdata readjust code so that they are no use after free's 191 (don't use after scsi_host_put) - ma 191 (don't use after scsi_host_put) - make lpfc_alloc_sysfs_attr 192 return errors 192 return errors 193 * Fixed panic in lpfc_probe_one(). Do 193 * Fixed panic in lpfc_probe_one(). Do not delete in a list 194 iterator that is not safe. 194 iterator that is not safe. 195 * Clean up fast lookup array of the fc 195 * Clean up fast lookup array of the fcp_ring when aborting iocbs. 196 * Following timeout handlers moved to 196 * Following timeout handlers moved to the lpfc worker thread: 197 lpfc_disc_timeout, lpfc_els_timeout, 197 lpfc_disc_timeout, lpfc_els_timeout, lpfc_mbox, lpfc_fdmi_tmo, 198 lpfc_nodev_timeout, lpfc_els_retry_d 198 lpfc_nodev_timeout, lpfc_els_retry_delay. 199 * Removed unused NLP_NS_NODE #define. 199 * Removed unused NLP_NS_NODE #define. 200 * Integrated Christoph Hellwig's patch 200 * Integrated Christoph Hellwig's patch from 1/30: remove unused 201 lpfc_hba_list; remove unused lpfc_rd 201 lpfc_hba_list; remove unused lpfc_rdrev_wd30; remove 202 lpfc_get_brd_no and use Linux provid 202 lpfc_get_brd_no and use Linux provided IDR. 203 * Changed board reset procedure so tha 203 * Changed board reset procedure so that lpfc_sli_send_reset() 204 writes the INITFF bit and leaves lpf 204 writes the INITFF bit and leaves lpfc_sli_brdreset() to clear 205 the bit. 205 the bit. 206 * Removed outfcpio sysfs device attrib 206 * Removed outfcpio sysfs device attribute. 207 * VPD changes: 1) Modify driver to use 207 * VPD changes: 1) Modify driver to use the model name and 208 description from the VPD data if it 208 description from the VPD data if it exists 2) Rework use of DUMP 209 mailbox command to support HBAs with 209 mailbox command to support HBAs with 256 bytes of SLIM. 210 * Fixed compile error for implicit def 210 * Fixed compile error for implicit definition of struct 211 scsi_target 211 scsi_target 212 212 213 Changes from 20050124 to 20050201 213 Changes from 20050124 to 20050201 214 214 215 * Changed version number to 8.0.22 215 * Changed version number to 8.0.22 216 * Moved discovery timeout handler to w 216 * Moved discovery timeout handler to worker thread. There are 217 function calls in this function whic 217 function calls in this function which are not safe to call from 218 HW interrupt context. 218 HW interrupt context. 219 * Removed free_irq from the error path 219 * Removed free_irq from the error path of HBA initialization. 220 This will fix the free of uninitiali 220 This will fix the free of uninitialised IRQ when config_port 221 fails. 221 fails. 222 * Make sure function which processes u 222 * Make sure function which processes unsolicited IOCBs on ELS ring 223 still is called with the lock held. 223 still is called with the lock held. 224 * Clear LA bit from work_ha when we ar 224 * Clear LA bit from work_ha when we are not supposed to handle LA. 225 * Fix double locking bug in the error 225 * Fix double locking bug in the error handling part of 226 lpfc_mbx_cmpl_read_la. 226 lpfc_mbx_cmpl_read_la. 227 * Implemented fast IOCB processing for 227 * Implemented fast IOCB processing for FCP ring. 228 * Since mboxes are now unconditionally 228 * Since mboxes are now unconditionally allocated outside of the 229 lock, free them in cases where they 229 lock, free them in cases where they are not used. 230 * Moved out a couple of GFP_ATOMICs in 230 * Moved out a couple of GFP_ATOMICs in lpfc_disc_timeout, to 231 before locks so that they can GFP_KE 231 before locks so that they can GFP_KERNEL instead. Also cleaned 232 up code. 232 up code. 233 * Collapsed interrupt handling code in 233 * Collapsed interrupt handling code into one function. 234 * Removed event posting and handling o 234 * Removed event posting and handling of solicited and unsolicited 235 iocbs. 235 iocbs. 236 * Remove ELS ring handling leftovers f 236 * Remove ELS ring handling leftovers from the lpfc_sli_inter(). 237 * ELS ring (any slow ring) moved from 237 * ELS ring (any slow ring) moved from the lpfc_sli_inter() into a 238 worker thread. Link Attention, Mbox 238 worker thread. Link Attention, Mbox Attention, and Error 239 Attention, as well as slow rings' at 239 Attention, as well as slow rings' attention is passed to the 240 worker thread via worker thread copy 240 worker thread via worker thread copy of Host Attention 241 register. Corresponding events are r 241 register. Corresponding events are removed from the event queue 242 handling. 242 handling. 243 * Add entries to hba structure to dele 243 * Add entries to hba structure to delegate some functionality from 244 the lpfc_sli_inter() to a worker thr 244 the lpfc_sli_inter() to a worker thread. 245 * Reduced used of GFP_ATOMIC for memor 245 * Reduced used of GFP_ATOMIC for memory allocations. 246 * Moved locks deeper in order to chang 246 * Moved locks deeper in order to change GFP_ATOMIC to GFP_KERNEL. 247 * IOCB initialization fix for Raw IO. 247 * IOCB initialization fix for Raw IO. 248 * Removed qcmdcnt, iodonecnt, errcnt f 248 * Removed qcmdcnt, iodonecnt, errcnt from lpfc_target and from 249 driver. 249 driver. 250 * Added call to lpfc_els_abort in lpfc 250 * Added call to lpfc_els_abort in lpfc_free_node. Modified 251 lpfc_els_abort to reset txq and txcm 251 lpfc_els_abort to reset txq and txcmplq iterator after a 252 iocb_cmpl call. 252 iocb_cmpl call. 253 * Fixed a use after free issue in lpfc 253 * Fixed a use after free issue in lpfc_init.c. 254 * Defined default mailbox completion r 254 * Defined default mailbox completion routine and removed code in 255 the sli layer which checks the mbox_ 255 the sli layer which checks the mbox_cmpl == 0 to free mail box 256 resources. 256 resources. 257 * In lpfc_workq_post_event, clean up c 257 * In lpfc_workq_post_event, clean up comment formatting and remove 258 unneeded cast of kmalloc's return. 258 unneeded cast of kmalloc's return. 259 * Removed loop which calls fc_remote_p 259 * Removed loop which calls fc_remote_port_unblock and 260 fc_remote_port_delete for every targ 260 fc_remote_port_delete for every target as this same effect is 261 accomplished by the scsi_remove_host 261 accomplished by the scsi_remove_host call. 262 * Minor cleanup of header files. Stop 262 * Minor cleanup of header files. Stop header files including 263 other header files. Removed sentine 263 other header files. Removed sentinels which hide multiple 264 inclusions. Removed unneeded #inclu 264 inclusions. Removed unneeded #include directives. 265 * Fixed memory leaks in mailbox error 265 * Fixed memory leaks in mailbox error paths. 266 * Moved lock from around of lpfc_work_ 266 * Moved lock from around of lpfc_work_done to lpfc_work_done 267 itself. 267 itself. 268 * Removed typedef for LPFC_WORK_EVT_t 268 * Removed typedef for LPFC_WORK_EVT_t and left just struct 269 lpfc_work_evt to comply with linux_s 269 lpfc_work_evt to comply with linux_scsi review coding style. 270 * Fixed some trailing whitespaces, spa 270 * Fixed some trailing whitespaces, spaces used for indentation and 271 ill-formatting multiline comments. 271 ill-formatting multiline comments. 272 * Bug fix for Raw IO errors. Reuse of 272 * Bug fix for Raw IO errors. Reuse of IOCBs now mandates setting 273 of ulpPU and fcpi_parm to avoid inco 273 of ulpPU and fcpi_parm to avoid incorrect read check of Write IO 274 and incorrect read length. 274 and incorrect read length. 275 275 276 Changes from 20050110 to 20050124 276 Changes from 20050110 to 20050124 277 277 278 * Changed version number to 8.0.21 278 * Changed version number to 8.0.21 279 * Removed unpleasant casting in the de 279 * Removed unpleasant casting in the definition and use of 280 lpfc_disc_action function pointer ar 280 lpfc_disc_action function pointer array. 281 * Makefile cleanup. Use ?= operator f 281 * Makefile cleanup. Use ?= operator for setting default 282 KERNELVERSION and BASEINCLUDE values 282 KERNELVERSION and BASEINCLUDE values. Use $(PWD) consistently. 283 * Removed call to lpfc_sli_intr from l 283 * Removed call to lpfc_sli_intr from lpfc_config_port_post. All 284 Linux systems will service hardware 284 Linux systems will service hardware interrupts while bringing up 285 the driver. 285 the driver. 286 * Christoph Hellwig change request: Re 286 * Christoph Hellwig change request: Reorg of contents of 287 lpfc_hbadisc.c, lpfc_scsi.h, lpfc_in 287 lpfc_hbadisc.c, lpfc_scsi.h, lpfc_init.c, lpfc_sli.c, 288 lpfc_attr.c, lpfc_scsi.c. 288 lpfc_attr.c, lpfc_scsi.c. 289 * Renamed discovery thread to lpfc_wor 289 * Renamed discovery thread to lpfc_worker thread. Moved handling 290 of error attention and link attentio 290 of error attention and link attention and mbox event handler to 291 lpfc_worker thread. 291 lpfc_worker thread. 292 * Removed .proc_info and .proc_name fr 292 * Removed .proc_info and .proc_name from the driver template and 293 associated code. 293 associated code. 294 * Removed check of FC_UNLOADING flag i 294 * Removed check of FC_UNLOADING flag in lpfc_queuecommand to 295 determine what result to return. 295 determine what result to return. 296 * Move modification of FC_UNLOADING fl 296 * Move modification of FC_UNLOADING flag under host_lock. 297 * Fix IOERR_RCV_BUFFER_WAITING handlin 297 * Fix IOERR_RCV_BUFFER_WAITING handling for CT and ELS subsystem. 298 * Workaround firmware bug for IOERR_RC 298 * Workaround firmware bug for IOERR_RCV_BUFFER_WAITING on ELS 299 ring. 299 ring. 300 * Fixed a couple lpfc_post_buffer prob 300 * Fixed a couple lpfc_post_buffer problems in lpfc_init.c. 301 * Add missing spaces to the parameter 301 * Add missing spaces to the parameter descriptions for 302 lpfc_cr_delay, lpfc_cr_count and lpf 302 lpfc_cr_delay, lpfc_cr_count and lpfc_discovery_threads. 303 * Lock before calling lpfc_sli_hba_dow 303 * Lock before calling lpfc_sli_hba_down(). 304 * Fix leak of "host" in the error path 304 * Fix leak of "host" in the error path in the remove_one() path. 305 * Fix comment for lpfc_cr_count. It d 305 * Fix comment for lpfc_cr_count. It defaults to 1. 306 * Fix issue where we are calling lpfc_ 306 * Fix issue where we are calling lpfc_disc_done() recursively from 307 lpfc_linkdown(), but list_for_each_e 307 lpfc_linkdown(), but list_for_each_entry_safe() is not safe for 308 such use. 308 such use. 309 * Bump lpfc_discovery_threads (count o 309 * Bump lpfc_discovery_threads (count of outstading ELS commands in 310 discovery) to 32 310 discovery) to 32 311 * If the SCSI midlayer tries to recove 311 * If the SCSI midlayer tries to recover from an error on a lun 312 while the corresponding target is in 312 while the corresponding target is in the NPR state, lpfc driver 313 will reject all the resets. This wil 313 will reject all the resets. This will cause the target to be 314 moved to offline state and block all 314 moved to offline state and block all the I/Os. The fix for this 315 is to delay the lun reset to a targe 315 is to delay the lun reset to a target which is not in MAPPED 316 state until the target is rediscover 316 state until the target is rediscovered or nodev timeout is 317 fired. 317 fired. 318 318 319 Changes from 20041229 to 20050110 319 Changes from 20041229 to 20050110 320 320 321 * Changed version number to 8.0.20 321 * Changed version number to 8.0.20 322 * rport fix: use new fc_remote_port_ro 322 * rport fix: use new fc_remote_port_rolechg() function instead of 323 direct structure change 323 direct structure change 324 * rport fix: last null pointer check 324 * rport fix: last null pointer check 325 * Phase II of GFP_ATOMIC effort. Repl 325 * Phase II of GFP_ATOMIC effort. Replaced iocb_mem_pool and 326 scsibuf_mem_pool with kmalloc and li 326 scsibuf_mem_pool with kmalloc and linked list. Inserted list 327 operations for mempool_alloc calls. 327 operations for mempool_alloc calls. General code cleanup. All 328 abort and reset routines converted. 328 abort and reset routines converted. Handle_ring_event 329 converted. 329 converted. 330 * If the mbox_cmpl == lpfc_sli_wake_mb 330 * If the mbox_cmpl == lpfc_sli_wake_mbox_wait in 331 lpfc_sli_handle_mb_event, pmb->conte 331 lpfc_sli_handle_mb_event, pmb->context1 points to a waitq. Do 332 not free the structure. 332 not free the structure. 333 * rport fixes: fix for rmmod crash 333 * rport fixes: fix for rmmod crash 334 * rport fixes: when receiving PRLI's, 334 * rport fixes: when receiving PRLI's, set node/rport role values 335 * rport fixes: fix for unload and for 335 * rport fixes: fix for unload and for fabric port deletes 336 * VPD info bug fix. 336 * VPD info bug fix. 337 * lpfc_linkdown() should be able to pr 337 * lpfc_linkdown() should be able to process all outstanding events 338 by calling lpfc_disc_done() even if 338 by calling lpfc_disc_done() even if it is called from 339 lpfc_disc_done() Moving all events f 339 lpfc_disc_done() Moving all events from phba->dpc_disc to local 340 local_dpc_disc prevents those events 340 local_dpc_disc prevents those events from being processed. 341 Removing that queue. From now on we 341 Removing that queue. From now on we should not see "Illegal 342 State Transition" messages. 342 State Transition" messages. 343 * Release host lock and enable interru 343 * Release host lock and enable interrupts when calling 344 del_timer_sync() 344 del_timer_sync() 345 * All related to rports: Clean up issu 345 * All related to rports: Clean up issues with rport deletion 346 Convert to using block/unblock on li 346 Convert to using block/unblock on list remove (was del/add) 347 Moved rport delete to freenode - so 347 Moved rport delete to freenode - so rport tracks node. 348 * rport fixes: for fport, get maxframe 348 * rport fixes: for fport, get maxframe and class support 349 information 349 information 350 * Added use of wait_event to work with 350 * Added use of wait_event to work with kthread interface. 351 * Ensure that scsi_transport_fc.h is a 351 * Ensure that scsi_transport_fc.h is always pulled in by 352 lpfc_scsiport.c 352 lpfc_scsiport.c 353 * In remote port changes: no longer nu 353 * In remote port changes: no longer nulling target->pnode when 354 removing from mapped list. Pnode get 354 removing from mapped list. Pnode get nulled when the node is 355 freed (after nodev tmo). This bug wa 355 freed (after nodev tmo). This bug was causing i/o received in 356 the small window while the device wa 356 the small window while the device was blocked to be errored w/ 357 did_no_connect. With the fix, it ret 357 did_no_connect. With the fix, it returns host_busy 358 (per the pre-remote port changes). 358 (per the pre-remote port changes). 359 * Merge in support for fc transport re 359 * Merge in support for fc transport remote port use. This removes 360 any consistent bindings within the d 360 any consistent bindings within the driver. All scanning is now 361 on a per-target basis driven by the 361 on a per-target basis driven by the discovery engine. 362 362 363 Changes from 20041220 to 20041229 363 Changes from 20041220 to 20041229 364 364 365 * Changed version number to 8.0.19 365 * Changed version number to 8.0.19 366 * Fixed bug for handling RSCN type 3. 366 * Fixed bug for handling RSCN type 3. Terminate RSCN mode 367 properly after ADISC handling comple 367 properly after ADISC handling completes. 368 * Add list_remove_head macro. Macro c 368 * Add list_remove_head macro. Macro cleans up memory allocation 369 list handling. Also clean up lpfc_r 369 list handling. Also clean up lpfc_reset_bus_handler - routine 370 does not need to allocate its own sc 370 does not need to allocate its own scsi_cmnd and scsi_device 371 structures. 371 structures. 372 * Fixed potential discovery bug, nlp l 372 * Fixed potential discovery bug, nlp list corrutpion fix potential 373 memory leak 373 memory leak 374 * Part 1 of the memory allocation rewo 374 * Part 1 of the memory allocation rework request by linux-scsi. 375 This effort fixes the number of bdes 375 This effort fixes the number of bdes per scsi_buf to 64, makes 376 the scatter-gather count a module pa 376 the scatter-gather count a module parameter, builds a linked 377 list of scsi_bufs, and removes all d 377 list of scsi_bufs, and removes all dependencies on lpfc_mem.h. 378 * Reverted lpfc_do_dpc, probe_one, rem 378 * Reverted lpfc_do_dpc, probe_one, remove_one to original 379 implementation. Too many problems ( 379 implementation. Too many problems (driver not completing 380 initial discovery, and IO not starti 380 initial discovery, and IO not starting to disks). Backs out 381 kthread patch. 381 kthread patch. 382 * Fix race condition in lpfc_do_dpc. 382 * Fix race condition in lpfc_do_dpc. If wake_up interrupt occurs 383 while lpfc_do_dpc is running disc_do 383 while lpfc_do_dpc is running disc_done and the dpc list is 384 empty, the latest insertion is misse 384 empty, the latest insertion is missed and the schedule_timeout 385 does not wakeup. The sleep interval 385 does not wakeup. The sleep interval is MAX_SCHEDULE_TIMEOUT 386 defined as ~0UL >> 1, a very large n 386 defined as ~0UL >> 1, a very large number. Hacked it to 5*HZ 387 for now. 387 for now. 388 * Fixed bug introduced when discovery 388 * Fixed bug introduced when discovery thread implementation was 389 moved to kthread. kthread_stop() is 389 moved to kthread. kthread_stop() is not able to wake up thread 390 waiting on a semaphore and "modprobe 390 waiting on a semaphore and "modprobe -r lpfc" is not always 391 (most of the times) able to complete 391 (most of the times) able to complete. Fix is in not using 392 semaphore for the interruptible slee !! 392 semaphore for the interruptable sleep. 393 * Small Makefile cleanup - Remove remn 393 * Small Makefile cleanup - Remove remnants of 2.4 vs. 2.6 394 determination. 394 determination. 395 395 396 Changes from 20041213 to 20041220 396 Changes from 20041213 to 20041220 397 397 398 * Changed version number to 8.0.18 398 * Changed version number to 8.0.18 399 * Janitorial cleanup after removal of 399 * Janitorial cleanup after removal of sliinit and ringinit[] ring 400 statistic is owned by the ring and S 400 statistic is owned by the ring and SLI stats are in sli 401 structure. 401 structure. 402 * Integrated patch from Christoph Hell< 402 * Integrated patch from Christoph Hellwig <hch@lst.de> Kill 403 compile warnings on 64 bit platforms 403 compile warnings on 64 bit platforms: %variables for %llx format 404 specifiers must be cast to long long !! 404 specifiers must be caste to long long because %(u)int64_t can 405 just be long on 64bit platforms. 405 just be long on 64bit platforms. 406 * Integrated patch from Christoph Hell< 406 * Integrated patch from Christoph Hellwig <hch@lst.de> Removes 407 dead code. 407 dead code. 408 * Integrated patch from Christoph Hell< 408 * Integrated patch from Christoph Hellwig <hch@lst.de>: use 409 kthread interface. 409 kthread interface. 410 * Print LPFC_MODULE_DESC banner in mod 410 * Print LPFC_MODULE_DESC banner in module init routine. 411 * Removed sliinit structure and ringin 411 * Removed sliinit structure and ringinit[] array. 412 * Changed log message number from 324 412 * Changed log message number from 324 to 326 in lpfc_sli.c. 413 * Wait longer for commands to complete 413 * Wait longer for commands to complete in lpfc_reset_bus_handler 414 and lpfc_reset_bus_handler. Also us 414 and lpfc_reset_bus_handler. Also use schedule_timeout() instead 415 of msleep() and add error message in 415 of msleep() and add error message in lpfc_abort_handler() 416 * When setting lpfc_nodev_tmo, from de 416 * When setting lpfc_nodev_tmo, from dev_loss set routine, make 1 417 sec minimum value. 417 sec minimum value. 418 * Functions which assume lock being he 418 * Functions which assume lock being held were called without lock 419 and kernel complained about unlockin 419 and kernel complained about unlocking lock which is not locked. 420 * Added code in linkdown to unreg if w 420 * Added code in linkdown to unreg if we know login session will be 421 terminated. 421 terminated. 422 * Removed automap config parameter and 422 * Removed automap config parameter and fixed up use_adisc logic to 423 include FCP2 devices. 423 include FCP2 devices. 424 424 425 Changes from 20041207 to 20041213 425 Changes from 20041207 to 20041213 426 426 427 * Changed version number to 8.0.17 427 * Changed version number to 8.0.17 428 * Fix sparse warnings by adding __iome 428 * Fix sparse warnings by adding __iomem markers to lpfc_compat.h. 429 * Fix some sparse warnings -- 0 used a 429 * Fix some sparse warnings -- 0 used as NULL pointer. 430 * Make sure there's a space between ev !! 430 * Make sure there's a space between every if and it's (. 431 * Fix some overly long lines and make 431 * Fix some overly long lines and make sure hard tabs are used for 432 indentation. 432 indentation. 433 * Remove all trailing whitespace. 433 * Remove all trailing whitespace. 434 * Integrate Christoph Hellwig's patch 434 * Integrate Christoph Hellwig's patch for 8.0.14: if 435 pci_module_init fails we need to rel 435 pci_module_init fails we need to release the transport template. 436 (also don't print the driver name at 436 (also don't print the driver name at startup, linux drivers can 437 be loaded without hardware present, 437 be loaded without hardware present, and noise in the log for 438 that case is considered unpolite, be 438 that case is considered unpolite, better print messages only for 439 hardware actually found). 439 hardware actually found). 440 * Integrate Christoph Hellwig's patch 440 * Integrate Christoph Hellwig's patch for 8.0.14: Add missing 441 __iomem annotations, remove broken c 441 __iomem annotations, remove broken casts, mark functions static. 442 Only major changes is changing of so !! 442 Only major changes is chaning of some offsets from word-based to 443 byte-based so we can simply do void !! 443 byte-based so we cans simply do void pointer arithmetics (gcc 444 extension) instead of casting to uin 444 extension) instead of casting to uint32_t. 445 * Integrate Christoph Hellwig's patch 445 * Integrate Christoph Hellwig's patch for 8.0.14: flag is always 446 LPFC_SLI_ABORT_IMED, aka 0 - remove 446 LPFC_SLI_ABORT_IMED, aka 0 - remove dead code. 447 * Modified preprocessor #ifdef, #if, # 447 * Modified preprocessor #ifdef, #if, #ifndef to reflect upstream 448 kernel submission. Clean build with 448 kernel submission. Clean build with make clean;make and make 449 clean;make ADVANCED=1 on SMP x86, 2. 449 clean;make ADVANCED=1 on SMP x86, 2.6.10-rc2 on RHEL 4 Beta 450 1. IO with a few lips and a long cab 450 1. IO with a few lips and a long cable pull behaved accordingly. 451 * Implement full VPD support. 451 * Implement full VPD support. 452 * Abort handler will try to wait for a 452 * Abort handler will try to wait for abort completion before 453 returning. Fixes some panics in ioc 453 returning. Fixes some panics in iocb completion code path. 454 454 455 Changes from 20041130 to 20041207 455 Changes from 20041130 to 20041207 456 456 457 * Changed version number to 8.0.16 457 * Changed version number to 8.0.16 458 * Hung dt session fix. When the midla 458 * Hung dt session fix. When the midlayer calls to abort a scsi 459 command, make sure the driver does n 459 command, make sure the driver does not complete post-abort 460 handler. Just NULL the iocb_cmpl ca 460 handler. Just NULL the iocb_cmpl callback handler and let SLI 461 take over. 461 take over. 462 * Add Read check that uses SLI option 462 * Add Read check that uses SLI option to validate all READ data 463 actually received. 463 actually received. 464 464 465 465 466 Changes from 20041123 to 20041130 466 Changes from 20041123 to 20041130 467 467 468 * Changed version number to 8.0.15 468 * Changed version number to 8.0.15 469 * Ifdef'd unused "binary" attributes b 469 * Ifdef'd unused "binary" attributes by DFC_DEBUG for clean 470 compiles 470 compiles 471 * Stop DID_ERROR from showing up along 471 * Stop DID_ERROR from showing up along with QUEUE_FULL set by the 472 Clarion array (SCSI error ret. val. 472 Clarion array (SCSI error ret. val. 0x70028) There is no need 473 for driver to hard fail command whic 473 for driver to hard fail command which was failed by the target 474 device. 474 device. 475 * Fix for Scsi device scan bug reporte 475 * Fix for Scsi device scan bug reported on SourceForge. Driver 476 was returning a DID_ERROR in lpfc_ha 476 was returning a DID_ERROR in lpfc_handle_fcp_error causing 477 midlayer to mark report luns as fail 477 midlayer to mark report luns as failing even though it 478 succeeded. 478 succeeded. 479 * Don't ignore SCSI status on underrun 479 * Don't ignore SCSI status on underrun conditions for inquiries, 480 test unit ready's, etc. This was ca 480 test unit ready's, etc. This was causing us to lose 481 reservation conflicts, etc 481 reservation conflicts, etc 482 482 483 Changes from 20041018 to 20041123 483 Changes from 20041018 to 20041123 484 484 485 * Changed version number to 8.0.14 485 * Changed version number to 8.0.14 486 * Added new function "iterator" lpfc_s 486 * Added new function "iterator" lpfc_sli_next_iocb_slot() which 487 returns pointer to iocb entry at cmd 487 returns pointer to iocb entry at cmdidx if queue is not full. 488 It also updates next_cmdidx, and loc 488 It also updates next_cmdidx, and local_getidx (but not cmdidx) 489 * lpfc_sli_submit_iocb() copies next_c 489 * lpfc_sli_submit_iocb() copies next_cmdidx into cmdidx. Now it is 490 the only place were we are updating 490 the only place were we are updating cmdidx. 491 * lpfc_sli_update_ring() is split in t 491 * lpfc_sli_update_ring() is split in to two -- 492 lpfc_sli_update_ring() and lpfc_sli_ 492 lpfc_sli_update_ring() and lpfc_sli_update_full_ring(). 493 * lpfc_sli_update_ring() don't to read 493 * lpfc_sli_update_ring() don't to read back correct value of 494 cmdidx. 494 cmdidx. 495 * Simplified lpfc_sli_resume_iocb() an 495 * Simplified lpfc_sli_resume_iocb() and its use. 496 * New static function lpfc_sli_next_io 496 * New static function lpfc_sli_next_iocb(phba, pring, &piocb) to 497 iterate through commands in the TX q 497 iterate through commands in the TX queue and new command (at the 498 end). 498 end). 499 * Reduced max_lun to 256 (due to issue 499 * Reduced max_lun to 256 (due to issues reported to some arrays). 500 Fixed comment, and macro values so d 500 Fixed comment, and macro values so def=256, min=1, max=32768. 501 * Fix an obvious typo/bug: kfree was u 501 * Fix an obvious typo/bug: kfree was used to free lpfc_scsi_buf 502 instead of mempool_free in lpfc_scsi 502 instead of mempool_free in lpfc_scsiport.c. 503 * Suppress nodev_tmo message for FABRI 503 * Suppress nodev_tmo message for FABRIC nodes. 504 * Fixed some usage of plain integer as 504 * Fixed some usage of plain integer as NULL pointer. 505 * Bug fix for FLOGI cmpl, lpfc_els_chk 505 * Bug fix for FLOGI cmpl, lpfc_els_chk_latt error path code 506 cleanup. 506 cleanup. 507 * Fixup lpfc_els_chk_latt() to have Fa 507 * Fixup lpfc_els_chk_latt() to have Fabric NPorts go thru 508 discovery state machine as well. 508 discovery state machine as well. 509 * Fixes to lpfc_els_chk_latt(). 509 * Fixes to lpfc_els_chk_latt(). 510 * Use DID not SCSI target id as a port 510 * Use DID not SCSI target id as a port_id and add some missing 511 locks in lpfc_fcp.c. 511 locks in lpfc_fcp.c. 512 * Changed eh_abort_handler to return F 512 * Changed eh_abort_handler to return FAILED if command is not 513 found in driver. 513 found in driver. 514 * Fix crash: paging request at virtual 514 * Fix crash: paging request at virtual address 0000000000100108 - 515 a result of removing from the txcmpl 515 a result of removing from the txcmpl list item which was already 516 removed (100100 is a LIST_POISON1 va 516 removed (100100 is a LIST_POISON1 value from the next pointer 517 and 8 is an offset of the "prev") Dr 517 and 8 is an offset of the "prev") Driver runs out of iotags and 518 does not handle that case well. The !! 518 does not handle that case well. The root of the proble is in the 519 initialization code in lpfc_sli.c 519 initialization code in lpfc_sli.c 520 * Changes to work with proposed linux 520 * Changes to work with proposed linux kernel patch to support 521 hotplug. 521 hotplug. 522 * Zero out seg_cnt in prep_io failure 522 * Zero out seg_cnt in prep_io failure path to prevent double sg 523 unmap calls. 523 unmap calls. 524 * Fix setting of upper 32 bits for Hos 524 * Fix setting of upper 32 bits for Host Group Ring Pointers if in 525 SLIM. Old code was inappropriately m 525 SLIM. Old code was inappropriately masking off low order bits. 526 * Use scsi_[activate|deactivate]_tcq c 526 * Use scsi_[activate|deactivate]_tcq calls provided in scsi_tcq.h. 527 * Integrated patch from Christoph Hell 527 * Integrated patch from Christoph Hellwig (hch@lst.de): don't call 528 pci_dma_sync_* on coherent memory. p 528 pci_dma_sync_* on coherent memory. pci_dma_sync_* is need and 529 must be used only with streaming dma 529 must be used only with streaming dma mappings pci_map_*, not 530 coherent mappings. Note: There are 530 coherent mappings. Note: There are more consistent mappings 531 that are using pci_dma_sync calls. P 531 that are using pci_dma_sync calls. Probably these should be 532 removed as well. 532 removed as well. 533 * Modified lpfc_free_scsi_buf to accom 533 * Modified lpfc_free_scsi_buf to accommodate all three scsi_buf 534 free types to alleviate miscellaneou 534 free types to alleviate miscellaneous panics with cable pull 535 testing. 535 testing. 536 * Set hotplug to default 0 and lpfc_ta 536 * Set hotplug to default 0 and lpfc_target_remove to not remove 537 devices unless hotplug is enabled. 537 devices unless hotplug is enabled. 538 * Fixed discovery bug: plogi cmpl uses 538 * Fixed discovery bug: plogi cmpl uses ndlp after its freed. 539 * Fixed discovery bug: rnid acc cmpl, 539 * Fixed discovery bug: rnid acc cmpl, can potentially use ndlp 540 after its freed. 540 after its freed. 541 * Modularize code path in lpfc_target_ 541 * Modularize code path in lpfc_target_remove(). 542 * Changes to support SCSI hotplug (ifd 542 * Changes to support SCSI hotplug (ifdef'ed out because they need 543 kernel support USE_SCAN_TARGET requi 543 kernel support USE_SCAN_TARGET requires kernel support to export 544 the interface to scsi_scan_target an 544 the interface to scsi_scan_target and to move the SCAN_WILD_CARD 545 define to a general scsi header file 545 define to a general scsi header file. USE_RESCAN_HOST requires 546 kernel support to export an interfac 546 kernel support to export an interface to scan_scsi_host() with 547 the rescan flag turned on). 547 the rescan flag turned on). 548 * Removed redundant variable declarati 548 * Removed redundant variable declaration of lpfc_linkdown_tmo. 549 * Fix for large port count remove test 549 * Fix for large port count remove test. 550 * Added check to see if BAR1 register 550 * Added check to see if BAR1 register is valid before using BAR1 551 register for programming config_port 551 register for programming config_port mail box command. 552 * Added lpfc_scsi_hotplug to enable/di 552 * Added lpfc_scsi_hotplug to enable/disable driver support of SCSI 553 hotplug. 553 hotplug. 554 * Changed lpfc_disc_neverdev() to lpfc 554 * Changed lpfc_disc_neverdev() to lpfc_disc_illegal() and changed 555 lpfc_disc_nodev() to lpfc_disc_noop( 555 lpfc_disc_nodev() to lpfc_disc_noop(). Adjusted appropriate 556 events to use these routines. 556 events to use these routines. 557 * Add support for SCSI device hotplug. 557 * Add support for SCSI device hotplug. 558 * Take dummy lpfc_target's into accoun 558 * Take dummy lpfc_target's into account for lpfc_slave_destroy(). 559 * Bug fix to store WWPN / WWNN in Name 559 * Bug fix to store WWPN / WWNN in NameServer / FDMI lpfc_nodelist 560 entries. 560 entries. 561 * Added slavecnt in lpfc_target for di 561 * Added slavecnt in lpfc_target for diagnostic purposes. 562 * Added lpfc_hba load/unload flags to 562 * Added lpfc_hba load/unload flags to take care of special cases 563 for add/remove device. 563 for add/remove device. 564 * Have target add/remove delay before 564 * Have target add/remove delay before scanning. 565 * Have rmmod path cleanup blocked devi 565 * Have rmmod path cleanup blocked devices before scsi_remove_host. 566 * Added a #define for msleep for 2.6.5 566 * Added a #define for msleep for 2.6.5 kernels. 567 * In reset bus handler if memory alloc 567 * In reset bus handler if memory allocation fails, return FAILED 568 and not SUCCESS. 568 and not SUCCESS. 569 * Have lpfc eh handlers, bus_reset and 569 * Have lpfc eh handlers, bus_reset and lun_reset, wait for all 570 associated I/Os to complete before r 570 associated I/Os to complete before returning. 571 * Fix memset byte count in lpfc_hba_in 571 * Fix memset byte count in lpfc_hba_init so that 572 LP1050 would initialize correctly. 572 LP1050 would initialize correctly. 573 * Background nodev_timeout processing !! 573 * Backround nodev_timeout processing to DPC This enables us to 574 unblock (stop dev_loss_tmo) when app !! 574 unblock (stop dev_loss_tmo) when appopriate. 575 * Fix array discovery with multiple lu 575 * Fix array discovery with multiple luns. The max_luns was 0 at 576 the time the host structure was init 576 the time the host structure was initialized. lpfc_cfg_params 577 then set the max_luns to the correct 577 then set the max_luns to the correct value afterwards. 578 * Remove unused define LPFC_MAX_LUN an 578 * Remove unused define LPFC_MAX_LUN and set the default value of 579 lpfc_max_lun parameter to 512. 579 lpfc_max_lun parameter to 512. 580 * Reduced stack usage of lpfc_hba_init 580 * Reduced stack usage of lpfc_hba_init. 581 * Cleaned up the following warning gen 581 * Cleaned up the following warning generated by 582 scripts/checkincludes.pl lpfc_fcp.c: 582 scripts/checkincludes.pl lpfc_fcp.c: scsi/scsi_cmnd.h is 583 included more than once. 583 included more than once. 584 * Replaced "set_current_state(TASK_UNI 584 * Replaced "set_current_state(TASK_UNINTERRUPTIBLE); 585 schedule_timeout(timeout)" with "msl 585 schedule_timeout(timeout)" with "msleep(timeout)". 586 * Fixnode was losing starget when redi 586 * Fixnode was losing starget when rediscovered. We saw messages 587 like: lpfc 0000:04:02.0: 0:0263 Cann 587 like: lpfc 0000:04:02.0: 0:0263 Cannot block scsi target as a 588 result. Moved starget field into st 588 result. Moved starget field into struct lpfc_target which is 589 referenced from the node. 589 referenced from the node. 590 * Add additional SLI layer logging in 590 * Add additional SLI layer logging in lpfc_sli.c. 591 * Ignore more unexpected completions i 591 * Ignore more unexpected completions in lpfc_nportdisc.c. 592 * Can not call lpfc_target_unblock fro 592 * Can not call lpfc_target_unblock from the soft interrupt 593 context. It seems to be not nessase 593 context. It seems to be not nessasery to unblock target from 594 nodev timeout. 594 nodev timeout. 595 * Introduce and use less lethal event 595 * Introduce and use less lethal event handler for unexpected 596 events in lpfc_nportdisc.c. 596 events in lpfc_nportdisc.c. 597 * Can not call fc_target_(un)block() f 597 * Can not call fc_target_(un)block() functions with interrupts 598 disabled in lpfc_scsiport.c. 598 disabled in lpfc_scsiport.c. 599 * Added new configuration parameter, l 599 * Added new configuration parameter, lpfc_max_luns range 1-32768, 600 default 32768. 600 default 32768. 601 * Allow lpfc_fcp.c to call lpfc_get_hb 601 * Allow lpfc_fcp.c to call lpfc_get_hba_sym_node_name(). 602 * Increase nodev timeout from 20 secon 602 * Increase nodev timeout from 20 seconds to 30 seconds. 603 * Replace some kfree((void*)ptr) with 603 * Replace some kfree((void*)ptr) with kfree(ptr). 604 * Make 3 functions static: lpfc_get_hb 604 * Make 3 functions static: lpfc_get_hba_sym_node_name, 605 lpfc_intr_prep and lpfc_setup_slim_a 605 lpfc_intr_prep and lpfc_setup_slim_access. Move lpfc_intr_prep 606 and lpfc_setup_slim_access so they'r 606 and lpfc_setup_slim_access so they're defined before being used. 607 * Remove an unnecessary list_del() in 607 * Remove an unnecessary list_del() in lpfc_hbadisc.c. 608 * Set nlp_state before calling lpfc_nl 608 * Set nlp_state before calling lpfc_nlp_list() since this will 609 potentially call fc_target_unblock w 609 potentially call fc_target_unblock which may cause a race in 610 queuecommand by releasing host_lock. 610 queuecommand by releasing host_lock. 611 * Since lpfc_nodev_tmo < dev_loss_tmo 611 * Since lpfc_nodev_tmo < dev_loss_tmo remove queuecommand 612 DID_BAD_TARGET return for now. 612 DID_BAD_TARGET return for now. 613 * Fix a problem with rcv logo. 613 * Fix a problem with rcv logo. 614 * Remove unused portstatistics_t struc 614 * Remove unused portstatistics_t structure. 615 * Remove #if 0 and unnecessary checks 615 * Remove #if 0 and unnecessary checks in lpfc_fcp.c. 616 * Simplify lpfc_issue_lip: Extra layer 616 * Simplify lpfc_issue_lip: Extra layer of protection removed. 617 * Grab lock before calling lpfc_sli_is 617 * Grab lock before calling lpfc_sli_issue_mbox(phba, pmb, 618 MBX_NOWAIT) in lpfc_sli_issue_mbox_w 618 MBX_NOWAIT) in lpfc_sli_issue_mbox_wait(). 619 619 620 Changes from 20040920 to 20041018 620 Changes from 20040920 to 20041018 621 621 622 * Changed version number to 8.0.13 622 * Changed version number to 8.0.13 623 * Hide some attributes using #ifndef D 623 * Hide some attributes using #ifndef DFC_DEBUG ... #endif. 624 * Modify Makefile to (1) make BUILD_NO 624 * Modify Makefile to (1) make BUILD_NO_DEBUG=1 will hide some 625 (binary) attributes (2) make BUILD_F 625 (binary) attributes (2) make BUILD_FC_TRANS=0 will build driver 626 for 2.6.5 kernel with block/unblock 626 for 2.6.5 kernel with block/unblock patch. 627 * Modified #ifdef names. 627 * Modified #ifdef names. 628 * Added support for proposed FC transp 628 * Added support for proposed FC transport host attributes (which 629 replaces some of the attributes we h 629 replaces some of the attributes we had local to the driver). 630 Removed the binary statistics sysfs 630 Removed the binary statistics sysfs attribute. 631 * Added extra ELS verbose logging for 631 * Added extra ELS verbose logging for ELS responses. 632 * Added recognition for BUILD_FC_TRANS 632 * Added recognition for BUILD_FC_TRANS=2 to Makefile to define 633 FC_TRANS_VER2. 633 FC_TRANS_VER2. 634 * Add a pointer for link stats allocat 634 * Add a pointer for link stats allocation. 635 * Exported lpfc_get_hba_sym_node_name 635 * Exported lpfc_get_hba_sym_node_name for use by FC_TRANS_VER2 636 sysfs routines. 636 sysfs routines. 637 * Fix discovery problem in lip testing 637 * Fix discovery problem in lip testing: if device sends an ELS cmd 638 (i.e. LOGO) before our FLOGI complet 638 (i.e. LOGO) before our FLOGI completes it should be LS_RJT'ed. 639 * Moved #defines around to provide tar 639 * Moved #defines around to provide target_add/remove for upstream 640 kernel deliverables only not SLES9. 640 kernel deliverables only not SLES9. Provided ifdefs to #include 641 target_block/unblock only if FC_TRAN 641 target_block/unblock only if FC_TRANS_VER1. 642 * Add sanity check in lpfc_nlp_list mo 642 * Add sanity check in lpfc_nlp_list move setting nlp_Target 643 outside #ifdef. 643 outside #ifdef. 644 * Added a blocked member to the lpfc_t 644 * Added a blocked member to the lpfc_target structure for 645 block/unblock. This member allows t 645 block/unblock. This member allows the driver to know when to 646 unblock for pci_remove_one or pci_ad 646 unblock for pci_remove_one or pci_add_one. #ifdef'd some more 647 block/unblock stuff and removed some 647 block/unblock stuff and removed some defensive checks from 648 target_block/unblock. 648 target_block/unblock. 649 * Moved + 5 second window to dev_loss_ 649 * Moved + 5 second window to dev_loss_tmo setting and updated 650 comments. 650 comments. 651 * Removed NULL target check from targe 651 * Removed NULL target check from target_block/unblock and fixed up 652 a few comments. 652 a few comments. 653 * Enable sysfs attributes on 2.6.5 ker 653 * Enable sysfs attributes on 2.6.5 kernels and remove extra 654 compatibility code. 654 compatibility code. 655 * Remove any and all trailing whitespa 655 * Remove any and all trailing whitespace. 656 * Added message 0718 and return error 656 * Added message 0718 and return error when dma_map_single fails. 657 * Changed the fcpCntl2 commands to inc 657 * Changed the fcpCntl2 commands to include an FCP_ prefix to get 658 rid of build warnings on later 2.6.9 658 rid of build warnings on later 2.6.9-rc kernels. Build 659 conflicts with scsi/scsi.h. Remove 659 conflicts with scsi/scsi.h. Remove inclusions of scsi/scsi.h 660 from hbadisc.c, sli.c, and fcp.c sin 660 from hbadisc.c, sli.c, and fcp.c since these modules had no 661 dependencies on scsi.h. 661 dependencies on scsi.h. 662 * Fixed a bug with RSCN handling. A RS 662 * Fixed a bug with RSCN handling. A RSCN received on one device, 663 shouldn't affect other devices not r 663 shouldn't affect other devices not referenced by the RSCN. 664 * Moved #if LINUX_VERSION_CODE >= KERN 664 * Moved #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,6) to include 665 lpfc_jedec_to_ascii to prevent warni 665 lpfc_jedec_to_ascii to prevent warning in SLES 9. 666 * Update Makefile to account for SLES 666 * Update Makefile to account for SLES 9 and scsi-target upstream 667 kernel. 667 kernel. 668 * This checkin provides block/unblock 668 * This checkin provides block/unblock hooks for the upstream scsi 669 target kernel and 2.6.5 on SLES9 SP1 669 target kernel and 2.6.5 on SLES9 SP1 with the block/unblock 670 patch. 670 patch. 671 * Discovery changes regarding setting 671 * Discovery changes regarding setting targetp->pnode and 672 ndlp->nlp_Target Ensure fc_target_* 672 ndlp->nlp_Target Ensure fc_target_* routines are called properly 673 from discovery. Remove list_del's f 673 from discovery. Remove list_del's from lpfc_cleanup(). Ensure 674 all the lpfc_consistent_bind_* routi 674 all the lpfc_consistent_bind_* routines don't set any driver 675 structure objects. 675 structure objects. 676 * Fix for timeout of READ_LA or READ_S 676 * Fix for timeout of READ_LA or READ_SPARAM mailbox command 677 causing panic. 677 causing panic. 678 * Cleanup list_del()'s for Discovery n 678 * Cleanup list_del()'s for Discovery ndlp lists. 679 * Bug fixes for some insmod/rmmod cras 679 * Bug fixes for some insmod/rmmod crashes, link down crashes and 680 device loss crashes. 680 device loss crashes. 681 * Removed NLP_SEARCH_DEQUE. 681 * Removed NLP_SEARCH_DEQUE. 682 * Call lpfc_target_unblock only if the 682 * Call lpfc_target_unblock only if the targetp is nonNull and with 683 the host_lock held. 683 the host_lock held. 684 * Added qcmdcnt back along with misc b 684 * Added qcmdcnt back along with misc bug fixes to discovery. 685 * Changed tgt_io to outfcpio lpfc_fcp. 685 * Changed tgt_io to outfcpio lpfc_fcp.c. 686 * Fixed errors caused by LIP and cable 686 * Fixed errors caused by LIP and cable pulls both with and without 687 block/unblock patch. 687 block/unblock patch. 688 * For now we have to call fc_target_un 688 * For now we have to call fc_target_unblock and fc_target_block 689 with interrupts enabled. 689 with interrupts enabled. 690 * Save seg_cnt from dma_map_sg. Save 690 * Save seg_cnt from dma_map_sg. Save scatter-gather start address 691 and pass back to dma_unmap_sg in err 691 and pass back to dma_unmap_sg in error with seg_cnt. 692 * Incorporating block/unblock calls in 692 * Incorporating block/unblock calls into driver with ifdefs. This 693 change is supported by scsi-target-2 693 change is supported by scsi-target-2.6 kernel and forward only. 694 * Merged in some discovery bug fixes a 694 * Merged in some discovery bug fixes and added tgt io counters. 695 * Added sysfs attributes/interfaces: r 695 * Added sysfs attributes/interfaces: read only attribute 696 "management_version" and write only 696 "management_version" and write only attribute "issue_lip". 697 * Fix build on big endian machines: wh 697 * Fix build on big endian machines: while #if was OK with 698 __BIG_ENDIAN which defined as 4321, 698 __BIG_ENDIAN which defined as 4321, __BIG_ENDIAN_BITFIELD has to 699 be tested with #ifdef because it doe 699 be tested with #ifdef because it does not have any value, it is 700 either defined or not. 700 either defined or not. 701 * Add fabric_name and port_type attrib 701 * Add fabric_name and port_type attributes. 702 * Change mdelay to msleep. mdelay wor 702 * Change mdelay to msleep. mdelay works, but wastefully uses cpu 703 resources without a lock held. Rever 703 resources without a lock held. Revert to msleep. Tested with 704 sg_reset for bus and three attached 704 sg_reset for bus and three attached targets. 705 * Added the customary #ifndef...#defin 705 * Added the customary #ifndef...#define...#endif to 706 lpfc_version.h. 706 lpfc_version.h. 707 * Integrate patches from Christoph Hel 707 * Integrate patches from Christoph Hellwig: two new helpers common 708 to lpfc_sli_resume_iocb and lpfc_sli 708 to lpfc_sli_resume_iocb and lpfc_sli_issue_iocb - singificant 709 cleanup of those two functions - the 709 cleanup of those two functions - the unused SLI_IOCB_USE_TXQ is 710 gone - lpfc_sli_issue_iocb_wait lose 710 gone - lpfc_sli_issue_iocb_wait loses its flags argument 711 totally. 711 totally. 712 * Fix in lpfc_sli.c: we can not store 712 * Fix in lpfc_sli.c: we can not store a 5 bit value in a 4-bit 713 field. 713 field. 714 * Moved some routines out of lpfc_fcp. 714 * Moved some routines out of lpfc_fcp.c into more appropriate 715 files. 715 files. 716 * Whitespace cleanup: remove all trail 716 * Whitespace cleanup: remove all trailing whitespace. 717 * Make lpfc_disc_ndlp_show static to l 717 * Make lpfc_disc_ndlp_show static to lpfc_fcp.c. 718 * Remove leftover printk and replace s 718 * Remove leftover printk and replace some with 719 printk(KERN_WARNING) 719 printk(KERN_WARNING) 720 * Trivial: fix a few long lines and a 720 * Trivial: fix a few long lines and a soft tab. 721 * Remove warnings generated by Sparse 721 * Remove warnings generated by Sparse against driver (make 722 C=1). Mostly these are "using intege 722 C=1). Mostly these are "using integer as pointer warnings" 723 i.e. use NULL instead of 0. 723 i.e. use NULL instead of 0. 724 * Integrated patch from Christoph Hell 724 * Integrated patch from Christoph Hellwig: Quite a lot of changes 725 here, the most notable is that the p 725 here, the most notable is that the phba->slim2p lpfc_dmabuf goes 726 away in favour of a typede pointer a 726 away in favour of a typede pointer and a dma_addr_t. Due to the 727 typed pointer lots of the cast mess 727 typed pointer lots of the cast mess can go away, and while at it 728 I also replaced the messy SLI2_SLIM_ 728 I also replaced the messy SLI2_SLIM_t with a simple struct 729 lpfc2_sli2_slim that only contains t 729 lpfc2_sli2_slim that only contains the part of the union we care 730 about while using SLI2_SLIM_SIZE for 730 about while using SLI2_SLIM_SIZE for all size calculations 731 directly. 731 directly. 732 * Integrated patch from Christoph Hell 732 * Integrated patch from Christoph Hellwig: This streamlines the 733 I/O completion path a little more, e 733 I/O completion path a little more, especially taking care of 734 fast-pathing the non-error case. Al 734 fast-pathing the non-error case. Also removes tons of dead 735 members and defines from lpfc_scsi.h 735 members and defines from lpfc_scsi.h - e.g. lpfc_target is down 736 to nothing more than the lpfc_nodeli 736 to nothing more than the lpfc_nodelist pointer. 737 * Added binary sysfs file to issue mbo 737 * Added binary sysfs file to issue mbox commands 738 * Replaced #if __BIG_ENDIAN with #if _ 738 * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for 739 compatibility with the user space ap 739 compatibility with the user space applications. 740 * Decrease the amount of data in proc_ 740 * Decrease the amount of data in proc_info. 741 * Condense nodelist flag members. 741 * Condense nodelist flag members. 742 * Expand INFO for discovery sysfs shos 742 * Expand INFO for discovery sysfs shost entries. 743 * Notify user if information exceeds 4 743 * Notify user if information exceeds 4k sysfs limit. 744 * Removed a bunch of unused #defines. 744 * Removed a bunch of unused #defines. 745 * Added initial sysfs discovery shost 745 * Added initial sysfs discovery shost attributes. 746 * Remove unused #defines lpfc_disc.h. 746 * Remove unused #defines lpfc_disc.h. 747 * Fixed failMask nodelist settings. 747 * Fixed failMask nodelist settings. 748 * Cleanup some old comments / unused v 748 * Cleanup some old comments / unused variables. 749 * Add LP101 to list of recognized adap 749 * Add LP101 to list of recognized adapters. 750 750 751 Changes from 20040908 to 20040920 751 Changes from 20040908 to 20040920 752 752 753 * Changed version number to 8.0.12 753 * Changed version number to 8.0.12 754 * Removed used #defines: DEFAULT_PCI_L 754 * Removed used #defines: DEFAULT_PCI_LATENCY_CLOCKS and 755 PCI_LATENCY_VALUE from lpfc_hw.h. 755 PCI_LATENCY_VALUE from lpfc_hw.h. 756 * Changes to accommodate rnid. 756 * Changes to accommodate rnid. 757 * Fix RSCN handling so RSCN NS queries 757 * Fix RSCN handling so RSCN NS queries only effect NPorts found in 758 RSCN data. 758 RSCN data. 759 * If we rcv a plogi on a NPort queued 759 * If we rcv a plogi on a NPort queued up for discovery, clear the 760 NLP_NPR_2B_DISC bit since rcv plogi 760 NLP_NPR_2B_DISC bit since rcv plogi logic will force NPort thru 761 discovery. 761 discovery. 762 * Ensure lpfc_target is also cleaned u 762 * Ensure lpfc_target is also cleaned up in lpfc_cleanup(). 763 * Preliminary changes for block/unbloc 763 * Preliminary changes for block/unblock kernel API extensions in 764 progress with linux-scsi list. Thes 764 progress with linux-scsi list. These are name changes and 765 prototype changes only. 765 prototype changes only. 766 * Added send_abts flag to lpfc_els_abo 766 * Added send_abts flag to lpfc_els_abort. For rcv LOGO when ADISC 767 sent, the XRI of the LOGO rcv'ed is 767 sent, the XRI of the LOGO rcv'ed is the same as the ADISC 768 sent. Thus we cannot ABTS the ADISC 768 sent. Thus we cannot ABTS the ADISC before sending the LOGO ACC. 769 * Weed out some unused fc_flags. Add 769 * Weed out some unused fc_flags. Add FC_DISC_TMO. 770 * board_online sysfs attribute added t 770 * board_online sysfs attribute added to support libdfc functions 771 InitDiagEnv and SetBrdEnv. 771 InitDiagEnv and SetBrdEnv. 772 * Streamline code in lpfc_els_retry fi 772 * Streamline code in lpfc_els_retry fixup abort case in 773 lpfc_els_timeout_handler(). 773 lpfc_els_timeout_handler(). 774 * Flush discovery/ELS events when we b 774 * Flush discovery/ELS events when we bring SLI layer down. 775 * ctlreg and slimem binary attributes 775 * ctlreg and slimem binary attributes added to support libdfc 776 read/write mem/ctl functions. 776 read/write mem/ctl functions. 777 * Integrated Christoph Hellwig's patch 777 * Integrated Christoph Hellwig's patch: Cleanup 778 lpfc_sli_ringpostbuf_get. 778 lpfc_sli_ringpostbuf_get. 779 * Modified lpfc_slave_alloc and lpfc_s 779 * Modified lpfc_slave_alloc and lpfc_slave_destroy to allocate and 780 free a dummy target pointer. This a 780 free a dummy target pointer. This allows queuecommand to skip 781 the NULL target pointer check and av 781 the NULL target pointer check and avoid the console spam when 782 slave_alloc fails. 782 slave_alloc fails. 783 * Fix cfg_scan_down logic, it was reve 783 * Fix cfg_scan_down logic, it was reversed. 784 * Init list head ctrspbuflist. 784 * Init list head ctrspbuflist. 785 * Change name of lpfc_driver_abort to 785 * Change name of lpfc_driver_abort to lpfc_els_abort since it is 786 only valid for ELS ring. 786 only valid for ELS ring. 787 * Remove unused third argument for lpf 787 * Remove unused third argument for lpfc_consistent_bind_get(). 788 * Fix up iotag fields in lpfc_prep_els 788 * Fix up iotag fields in lpfc_prep_els_iocb(). 789 * Remove log message on code path trig 789 * Remove log message on code path triggered by lpfc_els_abort(). 790 * Set host->unique_id in lpfc_fcp.c. 790 * Set host->unique_id in lpfc_fcp.c. 791 * Removed deadwood: lpfc_target.pHba n 791 * Removed deadwood: lpfc_target.pHba not necessary anymore. 792 * Integrated patch from Christoph Hell 792 * Integrated patch from Christoph Hellwig: remove dead 793 SLI_IOCB_POLL handling. 793 SLI_IOCB_POLL handling. 794 * Integrated patch from Christoph Hell 794 * Integrated patch from Christoph Hellwig: Streamline I/O 795 submission and completion path a lit 795 submission and completion path a little. 796 * Remove unnecessary lpfc_brd_no. Ens 796 * Remove unnecessary lpfc_brd_no. Ensure brd_no assignment is 797 unique. 797 unique. 798 * Removed unused MAX_FCP_LUN. 798 * Removed unused MAX_FCP_LUN. 799 * Use mod_timer instead of add_timer f 799 * Use mod_timer instead of add_timer for fdmi in lpfc_ct.c. 800 * Fixed misc discovery problems. 800 * Fixed misc discovery problems. 801 * Move stopping timers till just befor 801 * Move stopping timers till just before lpfc_mem_free() call. 802 * Fix up NameServer reglogin error pat 802 * Fix up NameServer reglogin error path. 803 * Cleanup possible outstanding discove 803 * Cleanup possible outstanding discovery timers on rmmod. 804 * Fix discovery NPort to NPort pt2pt p 804 * Fix discovery NPort to NPort pt2pt problem. 805 * Get rid of ip_tmofunc / scsi_tmofunc 805 * Get rid of ip_tmofunc / scsi_tmofunc. 806 * Integrated patch from Christoph Hell 806 * Integrated patch from Christoph Hellwig: 807 lpfc_disc_done/lpfc_do_dpc cleanup - 807 lpfc_disc_done/lpfc_do_dpc cleanup - lpfc_disc_done can return 808 void - move lpfc_do_dpc and lpfc_dis 808 void - move lpfc_do_dpc and lpfc_disc_done to lpfc_hbadisc.c - 809 remove checking of list emptiness be 809 remove checking of list emptiness before calling lpfc_disc_done, 810 it handles the empty list case just 810 it handles the empty list case just fine and the additional 811 instructions cost less then the bust 811 instructions cost less then the bustlocked spinlock operations. 812 * Integrated patch from Christoph Hell 812 * Integrated patch from Christoph Hellwig: This adds a new 64bit 813 counter instead, brd_no isn't reused 813 counter instead, brd_no isn't reused anymore. Also some tiny 814 whitespace cleanups in surrounding c 814 whitespace cleanups in surrounding code. 815 * Reorder functions in lpfc_els.c to r 815 * Reorder functions in lpfc_els.c to remove need for prototypes. 816 * Removed unused prototypes from lpfc_ 816 * Removed unused prototypes from lpfc_crtn.h - 817 lpfc_ip_timeout_handler, lpfc_read_p 817 lpfc_ip_timeout_handler, lpfc_read_pci and lpfc_revoke. 818 * Removed some unused prototypes from 818 * Removed some unused prototypes from lpfc_crtn.h - 819 lpfc_scsi_hba_reset, lpfc_scsi_issue 819 lpfc_scsi_hba_reset, lpfc_scsi_issue_inqsn, 820 lpfc_scsi_issue_inqp0, lpfc_scsi_tim 820 lpfc_scsi_issue_inqp0, lpfc_scsi_timeout_handler. 821 * Integrated patch from Christoph Hell 821 * Integrated patch from Christoph Hellwig: remove TRUE/FALSE 822 usage. 822 usage. 823 * Integrated patch from Christoph Hell 823 * Integrated patch from Christoph Hellwig: Remove unused function 824 prototypes lpfc_set_pkt_len and lpfc 824 prototypes lpfc_set_pkt_len and lpfc_get_pkt_data from 825 lpfc_crtn.h - fixes build warnings. 825 lpfc_crtn.h - fixes build warnings. 826 * Removed unused struct lpfc_dmabufip 826 * Removed unused struct lpfc_dmabufip definition from lpfc_mem.h. 827 * Removed pre-2.6.5 MODULE_VERSION mac 827 * Removed pre-2.6.5 MODULE_VERSION macro from lpfc_compat.h. 828 * Fixing missing static and removing d 828 * Fixing missing static and removing dead code. 829 * Adding nodewwn, portwwn and portfcid 829 * Adding nodewwn, portwwn and portfcid shost attributes. 830 * Initial support for CT via sysfs. re 830 * Initial support for CT via sysfs. request payloads of size less 831 than PAGE_SIZE and rsp payloads of s 831 than PAGE_SIZE and rsp payloads of size PAGE_SIZE are supported. 832 Driver maintains a list of rsp's and 832 Driver maintains a list of rsp's and passes back rsp's 833 corresponding to the pid of the call 833 corresponding to the pid of the calling process. 834 * Support for RefreshInformation, GetA 834 * Support for RefreshInformation, GetAdapterAttributes, 835 GetPortStatistics. 835 GetPortStatistics. 836 * Make nodev-tmo default to 20 seconds 836 * Make nodev-tmo default to 20 seconds. 837 * Fix up some DSM error cases, unreg_l 837 * Fix up some DSM error cases, unreg_login rpi where needed. 838 * Fix up comments for fc_target_block 838 * Fix up comments for fc_target_block / fc_target_unblock. 839 * Fix up code for scsi_block_requests 839 * Fix up code for scsi_block_requests / scsi_unblock_requests. 840 * Add NLP_FCP_TARGET for nodeinfo supp 840 * Add NLP_FCP_TARGET for nodeinfo support. 841 * Move suspend/resume in lpfc_nlp_list 841 * Move suspend/resume in lpfc_nlp_list under appropriate case - 842 Used host_lock for DPC to avoid race 842 Used host_lock for DPC to avoid race (remove dpc_lock) 843 * Fix some corner cases for PLOGI rece 843 * Fix some corner cases for PLOGI receive - simplify error case 844 for cmpl_reglogin_reglogin_issue. 844 for cmpl_reglogin_reglogin_issue. 845 * Bug fix for ppc64 EEH MMIO panic - a 845 * Bug fix for ppc64 EEH MMIO panic - always do readl after 846 writel's of HBA registers to force f 846 writel's of HBA registers to force flush. 847 * Get rid of initial static routine de 847 * Get rid of initial static routine declarations in lpfc_hbadisc.c 848 and lpfc_els.c. 848 and lpfc_els.c. 849 * Updates to discovery processing. 849 * Updates to discovery processing. 850 850 851 Changes from 20040823 to 20040908 851 Changes from 20040823 to 20040908 852 852 853 * Changed version number to 8.0.11 853 * Changed version number to 8.0.11 854 * Removed persistent binding code. 854 * Removed persistent binding code. 855 * Display both ASC and ASCQ info. 855 * Display both ASC and ASCQ info. 856 * Fixed link down->up transitions when 856 * Fixed link down->up transitions when linkdown tmo expires. Fix 857 was in the defensive error checking 857 was in the defensive error checking at the start of 858 queuecommand. 858 queuecommand. 859 * Removed lpfc_scsi_timeout_handler as 859 * Removed lpfc_scsi_timeout_handler as this timer is no longer 860 required. The midlayer will exhaust 860 required. The midlayer will exhaust retries and then call 861 lpfc_abort_handler, lpfc_reset_lun_h 861 lpfc_abort_handler, lpfc_reset_lun_handler, and 862 lpfc_reset_target_handler. 862 lpfc_reset_target_handler. 863 * Minimal support for SCSI flat space 863 * Minimal support for SCSI flat space addressing/volume set 864 addressing. Use 16 bits of LUN addr 864 addressing. Use 16 bits of LUN address so that flat 865 addressing/VSA will work. 865 addressing/VSA will work. 866 * Changed 2 occurrences of if( 1 != f( 866 * Changed 2 occurrences of if( 1 != f(x)) to if(f(x) != 1) 867 * Drop include of lpfc_cfgparm.h. 867 * Drop include of lpfc_cfgparm.h. 868 * Reduce stack usage of lpfc_fdmi_cmd 868 * Reduce stack usage of lpfc_fdmi_cmd in lpfc_ct.c. 869 * Add minimum range checking property 869 * Add minimum range checking property to /sys write/store 870 functions. 870 functions. 871 * Fix display of node_name and port_na 871 * Fix display of node_name and port_name via fc transport 872 attr. 872 attr. 873 * Removed biosparam code. 873 * Removed biosparam code. 874 * Removed range checking. phba->config 874 * Removed range checking. phba->config[] array elements are now 875 embedded into the hba struct. lpfc_c 875 embedded into the hba struct. lpfc_config_setup() has been 876 removed. 876 removed. 877 * Collapsed lpfc_scsi_cmd_start into l 877 * Collapsed lpfc_scsi_cmd_start into lpfc_queuecommand and cleaned 878 up combined routines. 878 up combined routines. 879 * Removed unused prototypes myprint an 879 * Removed unused prototypes myprint and 880 lpfc_sched_service_high_priority_que 880 lpfc_sched_service_high_priority_queue. 881 * Removed unused function lpfc_nodev. 881 * Removed unused function lpfc_nodev. 882 * Removed scsi_cmnd->timeout_per_comma 882 * Removed scsi_cmnd->timeout_per_command cancelation. SCSI midlayer 883 now times out all commands - FW is i 883 now times out all commands - FW is instructed to not timeout. 884 * Removed polling code from lpfc_scsi_ 884 * Removed polling code from lpfc_scsi_cmd_start. Reorganized 885 queuecommand and cmd_start some. 885 queuecommand and cmd_start some. 886 886 887 Changes from 20040810 to 20040823 887 Changes from 20040810 to 20040823 888 888 889 * Changed version number to 8.0.10 889 * Changed version number to 8.0.10 890 * Additional timer changes as per Arja 890 * Additional timer changes as per Arjan / Christoph's comments. 891 * Used mod_timer() instead of del_time 891 * Used mod_timer() instead of del_timer_sync() where appropriate. 892 * Fixed a use after free case (panic o 892 * Fixed a use after free case (panic on 2.6.8.1 with 893 CONFIG_DEBUG_SLAB set). 893 CONFIG_DEBUG_SLAB set). 894 * Fix compile warning in lpfc_fcp.c. 894 * Fix compile warning in lpfc_fcp.c. 895 * Minor fix for log message, that prin 895 * Minor fix for log message, that prints unassigned brdno which is 896 zero. 896 zero. 897 * Move scsi_host_alloc() to the beginn 897 * Move scsi_host_alloc() to the beginning of probe_one(). This 898 ensures that host_lock is available 898 ensures that host_lock is available at later stages and also 899 avoids tons of unnecessary initializ 899 avoids tons of unnecessary initializing if host_alloc() 900 fails. 900 fails. 901 * Removed else clause from lpfc_slave_ 901 * Removed else clause from lpfc_slave_configure that set 902 sdev->queue_depth. The driver infor 902 sdev->queue_depth. The driver informs the midlayer of its 903 setting in the template and only ove 903 setting in the template and only overrides if queue tagging is 904 enabled. 904 enabled. 905 * Added PCI_DEVICE_ID_ZEPHYR and PCI_D 905 * Added PCI_DEVICE_ID_ZEPHYR and PCI_DEVICE_ID_ZFLY (Junior 906 Zephyr) support 906 Zephyr) support 907 907 908 Changes from 20040730 to 20040810 908 Changes from 20040730 to 20040810 909 909 910 * Changed version number to 8.0.9 910 * Changed version number to 8.0.9 911 * Removed per HBA driver lock. Driver 911 * Removed per HBA driver lock. Driver now uses the host->host_lock 912 * Restored support for the 2.6.5 kerne 912 * Restored support for the 2.6.5 kernel for those linux distributions 913 shipped with the 2.6.5 kernel. 913 shipped with the 2.6.5 kernel. 914 * Applied patch from Christoph Hellwig 914 * Applied patch from Christoph Hellwig (hch@infradead.org) as follows 915 "[PATCH] use scsi host private data 915 "[PATCH] use scsi host private data in ->proc_info. 916 * Applied patch from Christoph Hellwig 916 * Applied patch from Christoph Hellwig (hch@infradead.org) as follows 917 "Re: [Emulex] Ready for next round. 917 "Re: [Emulex] Ready for next round. This patch cleans up the memory 918 allocation routines a little and fix 918 allocation routines a little and fixes a missing mempool_destroy and 919 some missing error handling." 919 some missing error handling." 920 * Changed pointers assignments from 0 920 * Changed pointers assignments from 0 to NULL. 921 * Added fixes to the lpfc_reset_lun_ha 921 * Added fixes to the lpfc_reset_lun_handler and lpfc_reset_bus_handler 922 entry points that caused kernel to O 922 entry points that caused kernel to Oops or hang. 923 * Added fixes to targetless hosts that 923 * Added fixes to targetless hosts that caused modprobe and insmod to hang. 924 * Ongoing cleanup to many files 924 * Ongoing cleanup to many files 925 925 926 Changes from 20040723 to 20040730 926 Changes from 20040723 to 20040730 927 927 928 * Changed version number to 8.0.8 928 * Changed version number to 8.0.8 929 * Removed unused LPFN_DRIVER_VERSION # 929 * Removed unused LPFN_DRIVER_VERSION #define. 930 * Folded lpfc_findnode_scsiid into lpf 930 * Folded lpfc_findnode_scsiid into lpfc_find_target, its only 931 caller. 931 caller. 932 * Removed 2 unneeded arguments to lpfc 932 * Removed 2 unneeded arguments to lpfc_find_target (lun and 933 create_flag). 933 create_flag). 934 * Make lpfc_sli_reset_on_init = 1 934 * Make lpfc_sli_reset_on_init = 1 935 * Minor cleanup to quieten sparse. 935 * Minor cleanup to quieten sparse. 936 * Removed missing function = 0 in tmo 936 * Removed missing function = 0 in tmo routine in lpfc_els.c. 937 * Moved additional binding parameters 937 * Moved additional binding parameters into lpfc_defaults.c: 938 lpfc_automap / lpfc_fcp_bind_method 938 lpfc_automap / lpfc_fcp_bind_method 939 * Use msecs_to_jiffies() where applica 939 * Use msecs_to_jiffies() where applicable. 940 * Only use queue depth attribute only 940 * Only use queue depth attribute only after SLI HBA setup was 941 completed. 941 completed. 942 * Put in memory barriers for PPC 942 * Put in memory barriers for PPC 943 * Added PCI_DEVICE_ID_HELIOS and PCI_D 943 * Added PCI_DEVICE_ID_HELIOS and PCI_DEVICE_ID_JFLY (Junior 944 Helios) support 944 Helios) support 945 * Added 4&10 gigabit choices in user o 945 * Added 4&10 gigabit choices in user option link_speed 946 * Updated timer logic: Set timer data 946 * Updated timer logic: Set timer data after init_timer use 947 timer_pending() instead of expires. 947 timer_pending() instead of expires. 948 * Removed some remnants of IP over FC 948 * Removed some remnants of IP over FC support from Kconfig and 949 Makefile. 949 Makefile. 950 * Remove redundant prototypes for lpfc 950 * Remove redundant prototypes for lpfc_handle_eratt, 951 lpfc_handle_latt and lpfc_read_pci. 951 lpfc_handle_latt and lpfc_read_pci. 952 * Ongoing cleanup of lpfc_init.c. 952 * Ongoing cleanup of lpfc_init.c. 953 * Changed LPFC_CFG_DFT_HBA_Q_DEPTH -> 953 * Changed LPFC_CFG_DFT_HBA_Q_DEPTH -> LPFC_CFG_HBA_Q_DEPTH. 954 * Another cleanup stab at lpfc_ct.c. R 954 * Another cleanup stab at lpfc_ct.c. Remove castings, structure 955 code sanely, remove redundant code, 955 code sanely, remove redundant code, reorganize code so that 956 functions are invoked after definiti 956 functions are invoked after definition. 957 957 958 Changes from 20040716 to 20040723 958 Changes from 20040716 to 20040723 959 959 960 * Changed version number to 8.0.7 960 * Changed version number to 8.0.7 961 * Cleanup of lpfc_ct.c. Removed number 961 * Cleanup of lpfc_ct.c. Removed number of casts, removed tons of 962 dead/redundant code, cleaned up badl 962 dead/redundant code, cleaned up badly and poorly written code, 963 cleaned up return values. 963 cleaned up return values. 964 * Fixed Persistent binding implementat 964 * Fixed Persistent binding implementation 965 * Removed all references to lpfc_scsi_ 965 * Removed all references to lpfc_scsi_req_tmo 966 * Removed last references to lun_skip 966 * Removed last references to lun_skip config parameter. 967 * Removed LPFC_DEV_RPTLUN node failure 967 * Removed LPFC_DEV_RPTLUN node failure bit because we don't issue 968 REPORT_LUNS from the driver anymore. 968 REPORT_LUNS from the driver anymore. 969 * Removed LUN-tracking in driver. Rem 969 * Removed LUN-tracking in driver. Removed lpfc_lun struct and 970 moved any functionality we still nee 970 moved any functionality we still need to lpfc_target. 971 * Added new lpfc_jedec_to_ascii() call 971 * Added new lpfc_jedec_to_ascii() call and replace two instances 972 of duplicate code with calls to this 972 of duplicate code with calls to this function. 973 * Removed Volume Set Addressing handli 973 * Removed Volume Set Addressing handling on LUN IDs. 974 * Applied patch from Christoph Hellwig 974 * Applied patch from Christoph Hellwig (hch@infradead.org) that 975 removes dead code belonging to lpfc_ 975 removes dead code belonging to lpfc_build_scsi_cmnd() and its 976 call path. This is related to the re 976 call path. This is related to the recently removed report_lun 977 code. 977 code. 978 978 979 Changes from 20040709 to 20040716 979 Changes from 20040709 to 20040716 980 980 981 * Changed version number to 8.0.6 981 * Changed version number to 8.0.6 982 * Removed internal report LUNs usage. 982 * Removed internal report LUNs usage. Removed functions: 983 lpfc_disc_issue_rptlun, lpfc_disc_cm 983 lpfc_disc_issue_rptlun, lpfc_disc_cmpl_rptlun, 984 lpfc_disc_retry_rptlun and their use 984 lpfc_disc_retry_rptlun and their use. 985 * Removed usused scheduler prototypes 985 * Removed usused scheduler prototypes in lpfc_crtn.h 986 * Replace lpfc_geportname() with gener 986 * Replace lpfc_geportname() with generic memcmp(). 987 * Rearrange code in lpfc_rcv_plogi_plo 987 * Rearrange code in lpfc_rcv_plogi_plogi_issue() to make it a 988 little more readable. 988 little more readable. 989 * Remove redundant port_cmp != 2 check 989 * Remove redundant port_cmp != 2 check in if 990 (!port_cmp) { .... if (port_cmp != 2 990 (!port_cmp) { .... if (port_cmp != 2).... } 991 * Clock changes: removed struct clk_da 991 * Clock changes: removed struct clk_data and timerList. 992 * Clock changes: separate nodev_tmo an 992 * Clock changes: separate nodev_tmo and els_retry_delay into 2 993 separate timers and convert to 1 arg 993 separate timers and convert to 1 argument changed 994 LPFC_NODE_FARP_PEND_t to struct lpfc 994 LPFC_NODE_FARP_PEND_t to struct lpfc_node_farp_pend convert 995 ipfarp_tmo to 1 argument convert tar 995 ipfarp_tmo to 1 argument convert target struct tmofunc and 996 rtplunfunc to 1 argument * cr_count, 996 rtplunfunc to 1 argument * cr_count, cr_delay and 997 discovery_threads are only needed to 997 discovery_threads are only needed to be module_params and not 998 visible via sysfs. 998 visible via sysfs. 999 999 1000 Changes from 20040614 to 20040709 1000 Changes from 20040614 to 20040709 1001 1001 1002 * Changed version number to 8.0.5 1002 * Changed version number to 8.0.5 1003 * Make lpfc_info static. 1003 * Make lpfc_info static. 1004 * Make lpfc_get_scsi_buf static. 1004 * Make lpfc_get_scsi_buf static. 1005 * Print a warning if pci_set_mwi retu 1005 * Print a warning if pci_set_mwi returns an error. 1006 * Changed SERV_PARM to struct serv_pa 1006 * Changed SERV_PARM to struct serv_parm. 1007 * Changed LS_RJT to struct ls_rjt. 1007 * Changed LS_RJT to struct ls_rjt. 1008 * Changed CSP to struct csp. 1008 * Changed CSP to struct csp. 1009 * Changed CLASS_PARMS to struct class 1009 * Changed CLASS_PARMS to struct class_parms. 1010 * Some cosmetic coding style cleanups 1010 * Some cosmetic coding style cleanups to lpfc_fcp.c. 1011 * Providing a sysfs interface that du 1011 * Providing a sysfs interface that dumps the last 32 1012 LINK_[UP|DOWN] and RSCN events. 1012 LINK_[UP|DOWN] and RSCN events. 1013 * Get rid of delay_iodone timer. 1013 * Get rid of delay_iodone timer. 1014 * Remove qfull timers and qfull logic 1014 * Remove qfull timers and qfull logic. 1015 * Convert mbox_tmo, nlp_xri_tmo to 1 !! 1015 * Convert mbox_tmo, nlp_xri_tmo to 1 argment clock handler 1016 * Removed duplicate extern defs of th 1016 * Removed duplicate extern defs of the bind variables. 1017 * Streamline usage of the defines CLA 1017 * Streamline usage of the defines CLASS2 and CLASS3, removing 1018 un-necessary checks on config[LPFC_ 1018 un-necessary checks on config[LPFC_CFG_FCP_CLASS]. 1019 * Moving the persistent binding varia 1019 * Moving the persistent binding variables to new file 1020 lpfc_defaults.c 1020 lpfc_defaults.c 1021 * Changed LPFC_SCSI_BUF_t to struct l 1021 * Changed LPFC_SCSI_BUF_t to struct lpfc_scsi_buf. 1022 * Moved config specific code from pro 1022 * Moved config specific code from probe_one() into 1023 config_setup(). Removing a redundan 1023 config_setup(). Removing a redundant check on scandown value 1024 from bind_setup() as this is alread 1024 from bind_setup() as this is already done in config_setup(). 1025 * Changed LPFC_SLI_t to struct lpfc_s 1025 * Changed LPFC_SLI_t to struct lpfc_sli. 1026 * Changed FCP_CMND to struct fcp_cmnd 1026 * Changed FCP_CMND to struct fcp_cmnd. 1027 * Changed FCP_RSP to struct fcp_rsp. 1027 * Changed FCP_RSP to struct fcp_rsp. 1028 * Remove the need for buf_tmo. 1028 * Remove the need for buf_tmo. 1029 * Changed ULP_BDE64 to struct ulp_bde 1029 * Changed ULP_BDE64 to struct ulp_bde64. 1030 * Changed ULP_BDE to struct ulp_bde. 1030 * Changed ULP_BDE to struct ulp_bde. 1031 * Cleanup lpfc_os_return_scsi_cmd() a 1031 * Cleanup lpfc_os_return_scsi_cmd() and its call path. 1032 * Removed lpfc_no_device_delay. 1032 * Removed lpfc_no_device_delay. 1033 * Consolidating lpfc_hba_put_event() 1033 * Consolidating lpfc_hba_put_event() into lpfc_put_event(). 1034 * Removed following attributes and th 1034 * Removed following attributes and their functionality: 1035 lpfc_extra_io_tmo, lpfc_nodev_holdi 1035 lpfc_extra_io_tmo, lpfc_nodev_holdio, lpfc_delay_rsp_err, 1036 lpfc_tgt_queue_depth and lpfc_check 1036 lpfc_tgt_queue_depth and lpfc_check_cond_err. 1037 * Clock changes consolidating timers, 1037 * Clock changes consolidating timers, just in the struct lpfc_hba, 1038 to get rid of clkData and pass only 1038 to get rid of clkData and pass only one argument to timeout 1039 routine. Also, removing need for ou 1039 routine. Also, removing need for outstanding clock linked list 1040 to stop these timers at rmmod. 1040 to stop these timers at rmmod. 1041 * Move lpfc.conf contents into lpfc_f 1041 * Move lpfc.conf contents into lpfc_fcp.c. Removing per adapter 1042 attributes in favor of global attri 1042 attributes in favor of global attributes. 1043 * Fix a potential null pointer refere 1043 * Fix a potential null pointer reference of pmbuf in lpfc_ct.c. 1044 * On reset_lun, issue LUN_RESET as op 1044 * On reset_lun, issue LUN_RESET as opposed to ABORT_TASK_SET. 1045 * Removed SCSI_REQ_TMO related code. 1045 * Removed SCSI_REQ_TMO related code. 1046 * Introducing two new defines LPFC_AT 1046 * Introducing two new defines LPFC_ATTR_R and LPFC_ATTR_RW that do 1047 a module_param, MODULE_PARM_DESC, l 1047 a module_param, MODULE_PARM_DESC, lpfc_param_show, 1048 [lpfc_param_store] and CLASS_DEVICE 1048 [lpfc_param_store] and CLASS_DEVICE_ATTRIBUTE. 1049 * Properly clean up when allocation o 1049 * Properly clean up when allocation of a linked BDE fails in the 1050 SCSI queuecommand path. 1050 SCSI queuecommand path. 1051 * Fail SCSI command if dma_map_sg cal 1051 * Fail SCSI command if dma_map_sg call fails. 1052 * Remove unused macros SWAP_ALWAYS an 1052 * Remove unused macros SWAP_ALWAYS and SWAP_ALWAYS16. 1053 * Reset context2 to 0 on exit in 1053 * Reset context2 to 0 on exit in 1054 lpfc_sli_issue_iocb_wait_high_prior 1054 lpfc_sli_issue_iocb_wait_high_priority() and 1055 lpfc_sli_issue_iocb_wait(). 1055 lpfc_sli_issue_iocb_wait(). 1056 * Arranging lpfc_scsiport.c to follow 1056 * Arranging lpfc_scsiport.c to follow style of use after 1057 definition. This removes the need f 1057 definition. This removes the need for the cruft of forward 1058 declarations. Also removing a redun 1058 declarations. Also removing a redundant #define ScsiResult as it 1059 already available elsewhere. 1059 already available elsewhere. 1060 * Applying "Streamline lpfc error han 1060 * Applying "Streamline lpfc error handling" patch from Christoph 1061 Hellwig (hch@infradead.org) with fo 1061 Hellwig (hch@infradead.org) with following modifications: fix 1062 mem leaks, remove some misplaced co 1062 mem leaks, remove some misplaced code that need not be there, 1063 print a message on exit (old code p 1063 print a message on exit (old code prints two (entry/exit)), make 1064 ret values consistent (either 1/0 o 1064 ret values consistent (either 1/0 or SUCCESS/FAILURE), keep all 1065 eh routines in a single file (lpfc_ 1065 eh routines in a single file (lpfc_scsiport.c). 1066 * Move contents of lpfc_module_param. 1066 * Move contents of lpfc_module_param.h into lpfc_fcp.c. 1067 * Changed sysfs attributes to CLASS_D 1067 * Changed sysfs attributes to CLASS_DEVICE_ATTRIBUTES (previously 1068 DEVICE_ATTRIBUTES). They now appear 1068 DEVICE_ATTRIBUTES). They now appear in 1069 /sys/class/scsi_host/hostx (previou 1069 /sys/class/scsi_host/hostx (previously in 1070 /sys/bus/pci/drivers/lpfc/devx). 1070 /sys/bus/pci/drivers/lpfc/devx). 1071 * Removed lpfc_syfs.h and lpfc_sysfs. 1071 * Removed lpfc_syfs.h and lpfc_sysfs.c. 1072 * Cleanup of config params. Throttle 1072 * Cleanup of config params. Throttle params have been removed. 1073 max_lun has been removed. max_targe 1073 max_lun has been removed. max_target is replaced with a #define, 1074 lun_skip is removed. Remove ipfc c 1074 lun_skip is removed. Remove ipfc config params and related 1075 code. 1075 code. 1076 * Changed DMABUF_t usage to struct lp 1076 * Changed DMABUF_t usage to struct lpfc_dmabuf. 1077 * Downsizing iCfgParam structure to i 1077 * Downsizing iCfgParam structure to include a_string, a_low, a_hi 1078 and a_default values only. 1078 and a_default values only. 1079 * Free SCSI buf safety memory pool on 1079 * Free SCSI buf safety memory pool on shutdown to eliminate memory 1080 leak. 1080 leak. 1081 * Change lpfc_printf_log to a #define 1081 * Change lpfc_printf_log to a #define. Also include phba->brd_no 1082 and newline in the print string rat 1082 and newline in the print string rather than in the #define. 1083 * Remove code that optionally locates 1083 * Remove code that optionally locates Host Group Pointers in host 1084 memory SLIM since this is no longer 1084 memory SLIM since this is no longer needed for PPC64, once 1085 CONFIG_PORT uses HBA's view of its 1085 CONFIG_PORT uses HBA's view of its BAR0. 1086 * Removed the forward declarations of 1086 * Removed the forward declarations of the sli functions and 1087 rearranging the code in lpfc_sli.c. 1087 rearranging the code in lpfc_sli.c. 1088 * Removed the preamble functionality 1088 * Removed the preamble functionality from logging. 1089 * Make lpfc_sli_hba_setup() return ne 1089 * Make lpfc_sli_hba_setup() return negative error codes on error 1090 and correct the comment left over i 1090 and correct the comment left over in lpfc_fcp.c 1091 * Removed the lpfc_loadtime variable. 1091 * Removed the lpfc_loadtime variable. 1092 * Put a space between all ifs and the 1092 * Put a space between all ifs and their open parens '('. 1093 * Change Studly_Caps LPFC_SCSI_BUF_t 1093 * Change Studly_Caps LPFC_SCSI_BUF_t to struct lpfc_scsi_buf. 1094 * Fixed insmod hang after hardware er 1094 * Fixed insmod hang after hardware error. 1095 * Relocated scsi_host alloc to before 1095 * Relocated scsi_host alloc to before we enable the interrupt 1096 handler 1096 handler 1097 * Add .tmp_versions directory to Make 1097 * Add .tmp_versions directory to Makefile clean target. This 1098 directory is created in the 2.6.5+ 1098 directory is created in the 2.6.5+ build process (with Red Hat 1099 kernels at least). 1099 kernels at least). 1100 * Changing phba->config to kmalloc lp 1100 * Changing phba->config to kmalloc lpfc_icfgparam and not 1101 *phba->config. This is manifesting 1101 *phba->config. This is manifesting itself as a panic in 1102 pci_release_region(). 1102 pci_release_region(). 1103 * Fix for firmware download / board r 1103 * Fix for firmware download / board reset problem. 1104 * Integrated patch from Christoph Hel 1104 * Integrated patch from Christoph Hellwig (hch@infradead.org) to 1105 reorganize and cleanup lpfc_fcp.c 1105 reorganize and cleanup lpfc_fcp.c 1106 * Don't abort commands immediately wh 1106 * Don't abort commands immediately when there is an RSCN event to 1107 give driver time to rediscover targ 1107 give driver time to rediscover targets before the midlayer 1108 retries the SCSI commands. 1108 retries the SCSI commands. 1109 1109 1110 Changes from 20040604 to 20040614 1110 Changes from 20040604 to 20040614 1111 1111 1112 * Changed version number to 8.0.4 1112 * Changed version number to 8.0.4 1113 * Removed lpfc_valid_lun function. 1113 * Removed lpfc_valid_lun function. 1114 * Added scsi_buf safety pool to addre 1114 * Added scsi_buf safety pool to address scsi_buf failures in 1115 queuecommand under low memory condi 1115 queuecommand under low memory conditions. Allocations now come 1116 from kmalloc initially, but if kmal 1116 from kmalloc initially, but if kmalloc fails, the allocation 1117 comes from the safety pool. 1117 comes from the safety pool. 1118 * Modified lpfc_slave_alloc to only s 1118 * Modified lpfc_slave_alloc to only set the scsi_device->hostdata 1119 pointer if the driver has discovere 1119 pointer if the driver has discovered the target. This routine 1120 always returns success now as well 1120 always returns success now as well since no error ever occurs in 1121 the alloc routine. 1121 the alloc routine. 1122 * Mask only info and warning messages 1122 * Mask only info and warning messages. Print all error messages 1123 irrespective of mask. 1123 irrespective of mask. 1124 * Removing lpfc_log_chk_msg_disabled( 1124 * Removing lpfc_log_chk_msg_disabled() 1125 * Changed lpfc_printf_log to take str 1125 * Changed lpfc_printf_log to take struct lpfc_hba * directly 1126 instead of a "board number". 1126 instead of a "board number". 1127 * Convert dma_sync_single to pci_dma_ 1127 * Convert dma_sync_single to pci_dma_sync_single_for_{device/cpu}. 1128 * Implemented new style log messages. 1128 * Implemented new style log messages. The message strings are now 1129 embedded in the call to lpfc_printf 1129 embedded in the call to lpfc_printf_log. 1130 * Decreased FLOGI discovery timeout t 1130 * Decreased FLOGI discovery timeout to 20 seconds. 1131 * On error in lpfc_pci_probe_one() re 1131 * On error in lpfc_pci_probe_one() return -1 and not 1. 1132 * Allow for board numbers that are no 1132 * Allow for board numbers that are not sequential, paving the way 1133 for hotplug support. 1133 for hotplug support. 1134 * scsi_add_host() can fail, so wrap i 1134 * scsi_add_host() can fail, so wrap it around in an if(). Also 1135 initiate scsi_scan_host() after att 1135 initiate scsi_scan_host() after attaching the sysfs attributes. 1136 * lpfc_release_version is used only i 1136 * lpfc_release_version is used only in lpfc_ct.c, so move it there 1137 and mark it as static. 1137 and mark it as static. 1138 * Removed lpfc_sleep_ms and replaced 1138 * Removed lpfc_sleep_ms and replaced with mdelay or schedule calls 1139 directly 1139 directly 1140 * Removed all (struct list_head *) ca 1140 * Removed all (struct list_head *) casts from clkData-related list 1141 handling in list_add, list_del macr 1141 handling in list_add, list_del macros. 1142 * Removed EXPORT_SYMBOLs. 1142 * Removed EXPORT_SYMBOLs. 1143 * Removed LPFC_MIN_QFULL and lpfc_qth 1143 * Removed LPFC_MIN_QFULL and lpfc_qthrottle_up. 1144 * Replace LPFCSCSITARGET_t with struc 1144 * Replace LPFCSCSITARGET_t with struct lpfc_target. 1145 * Replace LPFCSCSILUN_t with struct l 1145 * Replace LPFCSCSILUN_t with struct lpfc_lun. 1146 * Remove unused struct declarations ( 1146 * Remove unused struct declarations (fcPathId and fcRouteId) from 1147 lpfc_scsi.h. 1147 lpfc_scsi.h. 1148 * Rewrite use of FC transport attribu 1148 * Rewrite use of FC transport attributes. 1149 * Fix crash when link is lost. This 1149 * Fix crash when link is lost. This was due to lpfc_delay_iodone 1150 calling list_del on an object that 1150 calling list_del on an object that was never put on a list. 1151 * Remove trailing spaces at the end o 1151 * Remove trailing spaces at the end of all lines. 1152 * Set MAX_FCP_TARGET to 256 from 0xff 1152 * Set MAX_FCP_TARGET to 256 from 0xff. Set MAX_FCP_LUN and 1153 MAX_FCP_CMDS to their decimal equiv 1153 MAX_FCP_CMDS to their decimal equivalents and updated 1154 documentation. 1154 documentation. 1155 1155 1156 Changes from 20040526 to 20040604 1156 Changes from 20040526 to 20040604 1157 1157 1158 * Changed version number to 8.0.3 1158 * Changed version number to 8.0.3 1159 * Completed sysfs FC transport suppor 1159 * Completed sysfs FC transport support. 1160 * Removed unused fields in SCSI LUN a 1160 * Removed unused fields in SCSI LUN and SCSI Target structures: 1161 void *pTargetProto; void *pTargetOS 1161 void *pTargetProto; void *pTargetOSEnv; void *pLunOSEnv; 1162 * Modified list_for_each to list_for_ 1162 * Modified list_for_each to list_for_each_entry. Modified 1163 list_for_each_safe to list_for_each 1163 list_for_each_safe to list_for_each_entry_safe. 1164 * Remove lpfc_dfc.h file. 1164 * Remove lpfc_dfc.h file. 1165 * Changed pHba->phba, pCommand->pcmd 1165 * Changed pHba->phba, pCommand->pcmd 1166 * Changed plogi_ndlp -> plogindlp, po 1166 * Changed plogi_ndlp -> plogindlp, pos_tmp->postmp, pRsp->prsp, 1167 pCmd->pcmd 1167 pCmd->pcmd 1168 * Changed pText -> ptext 1168 * Changed pText -> ptext 1169 * Changed p_tmp_buff -> ptmpbuff 1169 * Changed p_tmp_buff -> ptmpbuff 1170 * Changed pBufList -> pbuflist, pRsp 1170 * Changed pBufList -> pbuflist, pRsp -> prsp, pCmd -> pcmd 1171 * Changed *pos_tmp -> *postmp, *p_mbu 1171 * Changed *pos_tmp -> *postmp, *p_mbuf -> *pmbuf 1172 * Following changes are made to the S 1172 * Following changes are made to the SCSI fast path: Added 1173 DMA_BUF_t member to the lpfc_scsi_b 1173 DMA_BUF_t member to the lpfc_scsi_buf_t. This will reduce a 1174 memory allocation in the scsi fast 1174 memory allocation in the scsi fast path. Added check for 1175 targetp == NULL in the scsi fast pa 1175 targetp == NULL in the scsi fast path. Increased number of 1176 scatter gather entries in lpfc_scsi 1176 scatter gather entries in lpfc_scsi_dma_ext to 4 from 3 and 1177 changed the size of lpfc_scsi_dma_e 1177 changed the size of lpfc_scsi_dma_ext to 264 1178 * Fixing some missing static lpfc_npo 1178 * Fixing some missing static lpfc_nportdisc.c. 1179 * Reordered #include lines so that lp 1179 * Reordered #include lines so that lpfc.h doesn't have to #include 1180 other header files. 1180 other header files. 1181 * Remove lpfc_get_hba_sym_node_name() 1181 * Remove lpfc_get_hba_sym_node_name() as a global EXPORT and make 1182 it static. 1182 it static. 1183 * Move struct clk_data definition fro 1183 * Move struct clk_data definition from lpfc_hw.h to lpfc_sli.h. 1184 * Changed LPFC_IOCBQ_t to struct lpfc 1184 * Changed LPFC_IOCBQ_t to struct lpfc_iocbq. 1185 * Changed LPFC_SLI_RING_t to struct l 1185 * Changed LPFC_SLI_RING_t to struct lpfc_sli_ring. 1186 * Changed LPFC_NODELIST_t to struct l 1186 * Changed LPFC_NODELIST_t to struct lpfc_nodelist. 1187 * Rearranged lpfc_nportdisc.c by movi 1187 * Rearranged lpfc_nportdisc.c by moving state machine array 1188 (lpfc_disc_action) and the one func 1188 (lpfc_disc_action) and the one function that uses it, 1189 lpfc_disc_state_machine, to the end 1189 lpfc_disc_state_machine, to the end of the file, removing the 1190 need for the raft of prototypes at 1190 need for the raft of prototypes at the top. 1191 * Changed LPFC_BINDLIST_t to struct l 1191 * Changed LPFC_BINDLIST_t to struct lpfc_bindlist. 1192 * Removed lpfc_issue_ct_rsp(), lpfc_s 1192 * Removed lpfc_issue_ct_rsp(), lpfc_sleep(), lpfc_add_bind(), 1193 lpfc_del_bind(), lpfc_sli_wake_mbox 1193 lpfc_del_bind(), lpfc_sli_wake_mbox_wait() and 1194 lpfc_sli_issue_mbox_wait(). 1194 lpfc_sli_issue_mbox_wait(). 1195 * Fixed a large number of overly-long 1195 * Fixed a large number of overly-long lines. 1196 * Fixed some discovery problems: Intr 1196 * Fixed some discovery problems: Introduced deferred ndlp removal 1197 when in DSM to avoid panic when in 1197 when in DSM to avoid panic when in nested DMSs Fix NportId 1198 fffc01 handling to not relogin afte 1198 fffc01 handling to not relogin after LOGO fixed handling of LOGO 1199 on PLOGI issue. 1199 on PLOGI issue. 1200 * Changed SLI_CT_REQUEST to lpfc_sli_ 1200 * Changed SLI_CT_REQUEST to lpfc_sli_ct_request. 1201 * Changed NAME_TYPE to struct lpfc_na 1201 * Changed NAME_TYPE to struct lpfc_name. 1202 * Changed lpfcCfgParam_t to struct lp 1202 * Changed lpfcCfgParam_t to struct lpfc_cfgparam. 1203 * Changed LPFC_STAT_t to struct lpfc_ 1203 * Changed LPFC_STAT_t to struct lpfc_stats. 1204 * Changed HBAEVT_t to struct lpfc_hba 1204 * Changed HBAEVT_t to struct lpfc_hba_event. 1205 * Changed Studly_Caps lpfcHBA_t to st 1205 * Changed Studly_Caps lpfcHBA_t to struct lpfc_hba. 1206 * Removed no longer used tasklet_runn 1206 * Removed no longer used tasklet_running flag. 1207 * Removing *PSOME_VAR typedefs and us 1207 * Removing *PSOME_VAR typedefs and using SOME_VAR* directly. 1208 * Changing .use_clustering to ENABLE_ 1208 * Changing .use_clustering to ENABLE_CLUSTERING. 1209 * Modify lpfc_queuecommand to return 1209 * Modify lpfc_queuecommand to return SCSI_MLQUEUE_HOST_BUSY when 1210 it can't queue a SCSI command. Als 1210 it can't queue a SCSI command. Also, remove cmnds_in_flight 1211 member of struct lpfcHBA for 2.6 ke 1211 member of struct lpfcHBA for 2.6 kernels as it was only needed 1212 to determine what to return from qu 1212 to determine what to return from queuecommand. 1213 * Change return type of lpfc_evt_iocb 1213 * Change return type of lpfc_evt_iocb_free to void as it doesn't 1214 return anything. 1214 return anything. 1215 * Remove unused cmnd_retry_list and i 1215 * Remove unused cmnd_retry_list and in_retry members in struct 1216 lpfcHBA. 1216 lpfcHBA. 1217 * Remove some instances of unneeded c 1217 * Remove some instances of unneeded casting of kmalloc's return in 1218 lpfc_scsiport.c 1218 lpfc_scsiport.c 1219 * Remove lpfc_linux_attach() and lpfc 1219 * Remove lpfc_linux_attach() and lpfc_linux_detach(). Integrate 1220 them into lpfc_probe_one() and lpfc 1220 them into lpfc_probe_one() and lpfc_release_one() respectively. 1221 * Remove lpfc_num_iocbs, lpfc_num_buf 1221 * Remove lpfc_num_iocbs, lpfc_num_bufs module parameters 1222 * Remove #defines for NUM_NODES, NUM_ 1222 * Remove #defines for NUM_NODES, NUM_BUFS and NUM_IOCBS 1223 1223 1224 Changes from 20040515 to 20040526 1224 Changes from 20040515 to 20040526 1225 1225 1226 * Changing version number to 8.0.2. 1226 * Changing version number to 8.0.2. 1227 * Including dma-mapping.h as one of t 1227 * Including dma-mapping.h as one of the include headers. Also 1228 rearrange the #include order. 1228 rearrange the #include order. 1229 * Make functions static as appropriat 1229 * Make functions static as appropriate. 1230 * queuecommand() will now return SCSI 1230 * queuecommand() will now return SCSI_MLQUEUE_HOST_BUSY instead of 1231 1 to backpressure midlayer. 1231 1 to backpressure midlayer. 1232 * Removed function prototypes for lpf 1232 * Removed function prototypes for lpfc_start_timer() and 1233 lpfc_stop_timer() 1233 lpfc_stop_timer() 1234 * Changed timer support to be inline. 1234 * Changed timer support to be inline. Clk_data is now declared 1235 right next to the corresponding tim 1235 right next to the corresponding timer_list entry so we don't 1236 have to allocate these clk_data dyn 1236 have to allocate these clk_data dynamically. 1237 * Add readls after writels to PCI spa 1237 * Add readls after writels to PCI space to flush the writes. 1238 * Fix misspelled word "safety" in fun 1238 * Fix misspelled word "safety" in function names. 1239 * Fix up comments in lpfc.conf for pe 1239 * Fix up comments in lpfc.conf for per HBA parameters to reflect 1240 new implementation. 1240 new implementation. 1241 * Change lpfc_proc_info handler to ge 1241 * Change lpfc_proc_info handler to get the Nodename from 1242 fc_nodename and not fc_portname. 1242 fc_nodename and not fc_portname. 1243 * Fix up some comments and whitespace 1243 * Fix up some comments and whitespace in lpfc_fcp.c. 1244 * Formatting changes: get rid of lead 1244 * Formatting changes: get rid of leading spaces in code 1245 * Move discovery processing from task 1245 * Move discovery processing from tasklet to a kernel thread. 1246 * Move ndlp node from unmap list to m 1246 * Move ndlp node from unmap list to map list if ADISC completed 1247 successfully. 1247 successfully. 1248 * Flush all the ELS IOCBs when there 1248 * Flush all the ELS IOCBs when there is a link event. 1249 * LP9802 qdepth is twice the LP9802DC 1249 * LP9802 qdepth is twice the LP9802DC qdepth. Delay 1250 elx_sched_init after READ_CONFIG to 1250 elx_sched_init after READ_CONFIG to get max_xri from the 1251 firmware. Reset ELX_CFG_DFT_HBA_Q_ 1251 firmware. Reset ELX_CFG_DFT_HBA_Q_DEPTH to max_xri after 1252 READ_CONFIG 1252 READ_CONFIG 1253 * Fix fc_get_cfg_parm() to be more ro 1253 * Fix fc_get_cfg_parm() to be more robust and support embedded hex 1254 values. The lpfc_param's are now d 1254 values. The lpfc_param's are now defined as: 1255 lpfc_log_verbose="lpfc:0,lpfc0:0x10 1255 lpfc_log_verbose="lpfc:0,lpfc0:0x10,lpfc1:4,lpfc100:0xffff" The 1256 "," delimter does not matter. It ca 1256 "," delimter does not matter. It can be anything or not exist at 1257 all. ie param = "lpfc:0lpfc0:0x10.l 1257 all. ie param = "lpfc:0lpfc0:0x10.lpfc1:4txtlpfc100:0xffff" will 1258 also work. Additionally the string 1258 also work. Additionally the string is treated as case 1259 insensitive. 1259 insensitive. 1260 * Changed all usage of lpfc_find_lun_ 1260 * Changed all usage of lpfc_find_lun_device() to lpfc_find_lun(). 1261 * Removed unnecessary wrappers lpfc_f 1261 * Removed unnecessary wrappers lpfc_find_lun_device() and 1262 lpfc_tran_find_lun(). 1262 lpfc_tran_find_lun(). 1263 * Switch from using internal bus/id/l 1263 * Switch from using internal bus/id/lun to similar data from 1264 scsi_device structure. 1264 scsi_device structure. 1265 * Eliminate one-line function lpfc_fi 1265 * Eliminate one-line function lpfc_find_target() 1266 * Added slave_alloc, slave_destory 1266 * Added slave_alloc, slave_destory 1267 * lpfc_scsi_cmd_start can now acquire 1267 * lpfc_scsi_cmd_start can now acquire lun pointer from 1268 scsi_device->hostdata, which is set 1268 scsi_device->hostdata, which is setup in slave_alloc. 1269 * Eliminate unnecessary checking on e 1269 * Eliminate unnecessary checking on every cmd just to see if we 1270 are accessing the device the first 1270 are accessing the device the first time. 1271 * Remove assumption in lpfc_reset_lun 1271 * Remove assumption in lpfc_reset_lun_handler that a valid 1272 lpfc_scsi_buf is hung off of linux' 1272 lpfc_scsi_buf is hung off of linux's scsi_cmnd->host_scribble 1273 when our reset is called. 1273 when our reset is called. 1274 1274 1275 Changes from 20040507 to 20040515 1275 Changes from 20040507 to 20040515 1276 1276 1277 * Changed version to 8.0.1 1277 * Changed version to 8.0.1 1278 * Fixed crash on driver rmmod after e 1278 * Fixed crash on driver rmmod after error injection tests and 1279 lpfc_tasklet deadlock. 1279 lpfc_tasklet deadlock. 1280 * Modified lpfc.conf to remove limit 1280 * Modified lpfc.conf to remove limit on number of support hosts 1281 * Removed HBAAPI 1281 * Removed HBAAPI 1282 * Removed duplication of SCSI opcodes 1282 * Removed duplication of SCSI opcodes from lpfc_fcp.h that are 1283 available in scsi/scsi.h 1283 available in scsi/scsi.h 1284 * Rework module_param usage 1284 * Rework module_param usage 1285 * Added MODULE_PARAM_DESC for various 1285 * Added MODULE_PARAM_DESC for various module_params 1286 * Removed #define EXPORT_SYMTAB 1286 * Removed #define EXPORT_SYMTAB 1287 * Removed #includes of if_arp.h and r 1287 * Removed #includes of if_arp.h and rtnetlink.h 1288 * Removed string "Open Source" from M 1288 * Removed string "Open Source" from MODULE_DESC 1289 * Cleanup duplicated string definitio 1289 * Cleanup duplicated string definitions used by MODULE_DESC 1290 * Renamed lpfc_pci_[detect|release] t 1290 * Renamed lpfc_pci_[detect|release] to lpfc_pci_[probe|remove]_one 1291 * Fix formatting of lpfc_driver 1291 * Fix formatting of lpfc_driver 1292 * Remove unnecessary memset to 0 of l 1292 * Remove unnecessary memset to 0 of lpfcDRVR 1293 * Attach driver attributes always unl 1293 * Attach driver attributes always unless pci_module_init failed 1294 * Remove all one-line wrappers from l 1294 * Remove all one-line wrappers from lpfc_mem. 1295 * Remove lpfc_sysfs_set_[show|store] 1295 * Remove lpfc_sysfs_set_[show|store] as it is no longer needed 1296 * Redo lpfc_sysfs_params_[show|store] 1296 * Redo lpfc_sysfs_params_[show|store] to one value per attribute rule 1297 * Breakdown lpfc_sysfs_info_show into 1297 * Breakdown lpfc_sysfs_info_show into smaller one value per attribute 1298 * Use device attributes instead of dr 1298 * Use device attributes instead of driver attributes where appropriate 1299 * Remove no longer needed EXPORT_SYMB 1299 * Remove no longer needed EXPORT_SYMBOLs 1300 * Remove some unused code (1600 msg's 1300 * Remove some unused code (1600 msg's related) 1301 1301 1302 Changes from 20040429 to 20040507 1302 Changes from 20040429 to 20040507 1303 1303 1304 * Change version to 8.0.0 1304 * Change version to 8.0.0 1305 * Fix the number of cmd / rsp ring en 1305 * Fix the number of cmd / rsp ring entries in lpfc_fcp.c to match 1306 the divisions setup in lpfc_hw.h. 1306 the divisions setup in lpfc_hw.h. 1307 * Remove phba->iflag reference. 1307 * Remove phba->iflag reference. 1308 * Several locking improvements. 1308 * Several locking improvements. 1309 * Remove functions lpfc_drvr_init_loc 1309 * Remove functions lpfc_drvr_init_lock, lpfc_drvr_lock, 1310 lpfc_drvr_unlock and lpfc_hipri_*. 1310 lpfc_drvr_unlock and lpfc_hipri_*. 1311 * Remove LPFC_DRVR_LOCK and LPFC_DRVR 1311 * Remove LPFC_DRVR_LOCK and LPFC_DRVR_UNLOCK macros. 1312 * Make lpfc_info() use lpfc_get_hba_m 1312 * Make lpfc_info() use lpfc_get_hba_model_desc() instead of 1313 rewriting almost identical code. 1313 rewriting almost identical code. 1314 * Fix 1 overly long line in each of l 1314 * Fix 1 overly long line in each of lpfc_cfgparm.h, lpfc_ftp.c and 1315 lpfc_sli.c. 1315 lpfc_sli.c. 1316 * Fix build for Red Hat 2.6.3 kernel 1316 * Fix build for Red Hat 2.6.3 kernel by #defining MODULE_VERSION 1317 only if it isn't already defined. 1317 only if it isn't already defined. 1318 * Change elx_sli_issue_mbox_wait to r 1318 * Change elx_sli_issue_mbox_wait to return correct error code to 1319 the caller. 1319 the caller. 1320 * In some of the els completion routi 1320 * In some of the els completion routines, after calling 1321 lpfc_elx_chk_latt, driver ignores t 1321 lpfc_elx_chk_latt, driver ignores the return code of the 1322 lpfc_elx_chk_latt. This will preven 1322 lpfc_elx_chk_latt. This will prevent the discovery state machine 1323 restarting correctly when there are 1323 restarting correctly when there are link events in the middle of 1324 discovery state machine running. Fi 1324 discovery state machine running. Fix this by exiting discovery 1325 state machine if lpfc_els_chk_latt 1325 state machine if lpfc_els_chk_latt returns a non zero value. 1326 * Removed MAX_LPFC_BRDS from lpfc_dia 1326 * Removed MAX_LPFC_BRDS from lpfc_diag.h 1327 * Removed unused first_check. 1327 * Removed unused first_check. 1328 * Remove some unused fields and defin 1328 * Remove some unused fields and defines. 1329 * Change lpfc-param names to lpfc_par 1329 * Change lpfc-param names to lpfc_param. 1330 * Add use of MODULE_VERSION macro for 1330 * Add use of MODULE_VERSION macro for 2.6 kernels. 1331 * Shorten length of some of the comme 1331 * Shorten length of some of the comment lines to make them more 1332 readable. 1332 readable. 1333 * Move FCP_* definitions to their own 1333 * Move FCP_* definitions to their own header file, lpfc_fcp.h. 1334 * Remove unused prototypes from lpfc_ 1334 * Remove unused prototypes from lpfc_crtn.h: fcptst, iptst, 1335 lpfc_DELAYMS. 1335 lpfc_DELAYMS. 1336 * Remove duplicated prototypes from l 1336 * Remove duplicated prototypes from lpfc_crtn.h: 1337 lpfc_config_port_prep, lpfc_config_ 1337 lpfc_config_port_prep, lpfc_config_port_post, 1338 lpfc_hba_down_prep. 1338 lpfc_hba_down_prep. 1339 * Removed some unused export_symbols. 1339 * Removed some unused export_symbols. 1340 * Install driver files into */drivers 1340 * Install driver files into */drivers/scsi/lpfc instead of 1341 */drivers/scsi. 1341 */drivers/scsi. 1342 1342 1343 Changes from 20040426 to 20040429 1343 Changes from 20040426 to 20040429 1344 1344 1345 * Declared export symbol lpfc_page_al 1345 * Declared export symbol lpfc_page_alloc and lpfc_page_free 1346 * Changed lpfc version number to 6.98 1346 * Changed lpfc version number to 6.98.3 1347 * Move the definition of MAX_LPFC_BRD 1347 * Move the definition of MAX_LPFC_BRDS to the only header file 1348 that uses it (lpfc_diag.h). 1348 that uses it (lpfc_diag.h). 1349 * Change lpfc_sli_wake_iocb_wait to d 1349 * Change lpfc_sli_wake_iocb_wait to do a regular wake_up since 1350 lpfc_sli_issue_iocb_wait now sleeps 1350 lpfc_sli_issue_iocb_wait now sleeps uninterruptible. 1351 * Replace list_for_each() with list_f 1351 * Replace list_for_each() with list_for_each_safe() when a list 1352 element could be deleted. 1352 element could be deleted. 1353 * Fix IOCB memory leak 1353 * Fix IOCB memory leak 1354 1354 1355 Changes from 20040416 to 20040426 1355 Changes from 20040416 to 20040426 1356 1356 1357 * Change lpfc_config_port_prep() to i 1357 * Change lpfc_config_port_prep() to interpret word 4 of the DUMP 1358 mbox response as a byte-count 1358 mbox response as a byte-count 1359 * Add info attribute to sysfs 1359 * Add info attribute to sysfs 1360 * Minor formatting (spaces to tabs) c 1360 * Minor formatting (spaces to tabs) cleanup in lpfc_sched.h 1361 * Remove unused log message number 73 1361 * Remove unused log message number 732 1362 * Completing MODULE_PARM -> module_pa 1362 * Completing MODULE_PARM -> module_param changes 1363 * Removed unused targetenable module 1363 * Removed unused targetenable module parameter 1364 * Removed locks from lpfc_sli_issue_m 1364 * Removed locks from lpfc_sli_issue_mbox_wait routine 1365 * Removed code that retry 29,00 check 1365 * Removed code that retry 29,00 check condition 1366 * Removed code that manipulates rspSn 1366 * Removed code that manipulates rspSnsLen. 1367 * Fix use of lun-q-depth config param 1367 * Fix use of lun-q-depth config param 1368 * Fix severity inconsistency with log 1368 * Fix severity inconsistency with log message 249 1369 * Removed lpfc_max_target from lpfc_l 1369 * Removed lpfc_max_target from lpfc_linux_attach 1370 * Replace references to lpfcDRVR.pHba 1370 * Replace references to lpfcDRVR.pHba[] with lpfc_get_phba_by_inst() 1371 * Change lpfc_param to lpfc-param 1371 * Change lpfc_param to lpfc-param 1372 * Partially removed 32 HBA restrictio !! 1372 * Partially removed 32 HBA restriction within driver. Incorported 1373 lpfc_instcnt, lpfc_instance[], and 1373 lpfc_instcnt, lpfc_instance[], and pHba[] into lpfcDRVR 1374 structure Added routines lpfc_get_p 1374 structure Added routines lpfc_get_phba_by_inst() 1375 lpfc_get_inst_by_phba() lpfc_check_ 1375 lpfc_get_inst_by_phba() lpfc_check_valid_phba() 1376 * Turn on attributes "set" & "params" 1376 * Turn on attributes "set" & "params" by default. 1377 * Further formatting/whitespace/line 1377 * Further formatting/whitespace/line length cleanup on: lpfc_ct.c 1378 lpfc_els.c lpfc_fcp.c lpfc_hbadisc. 1378 lpfc_els.c lpfc_fcp.c lpfc_hbadisc.c lpfc_init.c lpfc_ipport.c 1379 lpfc_mbox.c lpfc_nportdisc.c lpfc_s 1379 lpfc_mbox.c lpfc_nportdisc.c lpfc_sched.c lpfc_sched.h 1380 lpfc_scsi.h lpfc_scsiport.c lpfc_sl 1380 lpfc_scsi.h lpfc_scsiport.c lpfc_sli.c and lpfc_sli.h 1381 * Add log message 249 to log any unsu 1381 * Add log message 249 to log any unsupported device addressing 1382 modes encountered. 1382 modes encountered. 1383 * Add support for 256 targets and 256 1383 * Add support for 256 targets and 256 LUNs 1384 * Fixed panic in lpfc_linkdown. 1384 * Fixed panic in lpfc_linkdown. 1385 * Removed (struct list_head*) casting 1385 * Removed (struct list_head*) casting in several calls to list_del 1386 * Free irq reservation and kill runni 1386 * Free irq reservation and kill running timers when insmod or 1387 modprobe are killed via ctrl-c 1387 modprobe are killed via ctrl-c 1388 * Remove drivers/scsi from include pa 1388 * Remove drivers/scsi from include path 1389 * Wrap use of log message 311 in macr 1389 * Wrap use of log message 311 in macro 1390 * Detect failure return from pci_map_ 1390 * Detect failure return from pci_map_sg call in lpfc_os_prep_io 1391 * Fix use-after-free of IOCB in lpfc_ 1391 * Fix use-after-free of IOCB in lpfc_sli_process_sol_iocb which 1392 was causing an Oops on 2.6.5 kernel 1392 was causing an Oops on 2.6.5 kernel. 1393 * Cleanup use of several gotos not us 1393 * Cleanup use of several gotos not used for error exit. 1394 * Replace memcpy_toio() and memcpy_to 1394 * Replace memcpy_toio() and memcpy_toio() with endian-dependent 1395 lpfc_memcpy_to_slim() and lpfc_memc 1395 lpfc_memcpy_to_slim() and lpfc_memcpy_from_slim() so that for 1396 big endian hosts like PPC64, the SL 1396 big endian hosts like PPC64, the SLIM is accessed 4 bytes at a 1397 time instead of as a byte-stream. 1397 time instead of as a byte-stream. 1398 1398 1399 Changes from 20040409 to 20040416 1399 Changes from 20040409 to 20040416 1400 1400 1401 * The scsi_register and scsi_alloc_ho 1401 * The scsi_register and scsi_alloc_host OS calls can fail and 1402 return a zero-valued host pointer. 1402 return a zero-valued host pointer. A ctrl-C on 2.6 kernels 1403 during driver load will cause this 1403 during driver load will cause this and the driver to panic. 1404 Fixed this bug. Also found a bug i 1404 Fixed this bug. Also found a bug in the error_x handling with 1405 lpfc_sli_hba_down - it was in the w 1405 lpfc_sli_hba_down - it was in the wrong place and the driver 1406 lock was not held, but needed to be 1406 lock was not held, but needed to be (in lpfc_linux_attach) Fixed 1407 both. Did some minor comment clean 1407 both. Did some minor comment clean up. 1408 * Removed unwanted (void *) castings. 1408 * Removed unwanted (void *) castings. 1409 * Replace define of INVALID_PHYS, wit 1409 * Replace define of INVALID_PHYS, with kernel 2.6.5's 1410 dma_mapping_error() and add a inlin 1410 dma_mapping_error() and add a inline function for earlier 1411 kernels. Remove lpfc_bad_scatterli 1411 kernels. Remove lpfc_bad_scatterlist(). 1412 * Clean up formatting in hbaapi.h, lp 1412 * Clean up formatting in hbaapi.h, lpfc.h, lpfc_cfgparm.h, 1413 lpfc_crtn.h, lpfc_ct.c, lpfc_diag.h 1413 lpfc_crtn.h, lpfc_ct.c, lpfc_diag.h, lpfc_disc.h, lpfc_els.c, 1414 lpfc_fcp.c, lpfc_hbadisc.c, lpfc_hw 1414 lpfc_fcp.c, lpfc_hbadisc.c, lpfc_hw.h, lpfc_init.c, 1415 lpfc_ipport.c, lpfc_logmsg.c, lpfc_ 1415 lpfc_ipport.c, lpfc_logmsg.c, lpfc_logmsg.h and lpfc_scsiport.c 1416 - mostly replacing groups of 8 spac 1416 - mostly replacing groups of 8 spaces with hard tabs and keeping 1417 lines to 80 column max.. 1417 lines to 80 column max.. 1418 * Removed LPFC_DRVR_LOCK call from lp 1418 * Removed LPFC_DRVR_LOCK call from lpfc_unblock_requests for 2.4 1419 kernels. The lpfc_scsi_done routin 1419 kernels. The lpfc_scsi_done routine already unlocks the driver 1420 lock since it expects this lock to 1420 lock since it expects this lock to be held. 1421 * Removed global lock capabilities fr 1421 * Removed global lock capabilities from driver lock routines 1422 * Remove SA_INTERRUPT flag from reque 1422 * Remove SA_INTERRUPT flag from request_irq 1423 * Move dma_addr_t cast inside of getP 1423 * Move dma_addr_t cast inside of getPaddr macro as everywhere 1424 getPaddr is used, the return is cas 1424 getPaddr is used, the return is cast to dma_addr_t. 1425 * Clean up formatting in lpfc_sli.c a 1425 * Clean up formatting in lpfc_sli.c and lpfc_sysfs.c - mostly 1426 replacing groups of 8 spaces with 1426 replacing groups of 8 spaces with hard tabs and keeping lines 1427 to 80 column max. 1427 to 80 column max. 1428 * Fix build for RHEL 2.1 BOOT kernels 1428 * Fix build for RHEL 2.1 BOOT kernels by always #including 1429 interrupt.h in lpfc.h. 1429 interrupt.h in lpfc.h. 1430 * Fix RHEL 3 build by #defining EXPOR 1430 * Fix RHEL 3 build by #defining EXPORT_SYMTAB. 1431 * Replace sprintf with snprintf in lp 1431 * Replace sprintf with snprintf in lpfc_proc_info. 1432 * Fix build warnings on 2.6 kernels - 1432 * Fix build warnings on 2.6 kernels - remove no longer used calls 1433 to character device initialization 1433 to character device initialization. 1434 * Initial support code for discovery 1434 * Initial support code for discovery in tasklet conversion. 1435 * Removing char interface and ioctl c 1435 * Removing char interface and ioctl code. 1436 * Change all elx prefixes to lpfc 1436 * Change all elx prefixes to lpfc 1437 * Replace lpfc_write_slim() & lpfc_re 1437 * Replace lpfc_write_slim() & lpfc_read_slim() with memcpy_toio(), 1438 memcpy_fromio(), writel() & readl() 1438 memcpy_fromio(), writel() & readl(). 1439 1439 1440 Changes from 20040402 to 20040409 1440 Changes from 20040402 to 20040409 1441 1441 1442 * Replaced lpfc_read_hbaregs_plus_off 1442 * Replaced lpfc_read_hbaregs_plus_offset and 1443 lpfc_write_hbaregs_plus_offset func 1443 lpfc_write_hbaregs_plus_offset functions with readl and writel. 1444 * Get rid of long mdelay's in insmod 1444 * Get rid of long mdelay's in insmod path 1445 * Changed the way our pci_device_id s 1445 * Changed the way our pci_device_id structures are initialized 1446 * Replace lpfc_read/write_CA/HA/HC/HS 1446 * Replace lpfc_read/write_CA/HA/HC/HS with calls to readl() & 1447 writel() directly. 1447 writel() directly. 1448 * Increase SLI2_SLIM to 16K Increase 1448 * Increase SLI2_SLIM to 16K Increase cmd / rsp IOCBs accordingly 1449 * Removed lpfc_els_chk_latt from the 1449 * Removed lpfc_els_chk_latt from the lpfc_config_post function. 1450 lpfc_els_chk_latt will enable the l 1450 lpfc_els_chk_latt will enable the link event interrupts when 1451 flogi is pending which causes two d 1451 flogi is pending which causes two discovery state machines 1452 running parallelly. 1452 running parallelly. 1453 * Add pci_disable_device to unload pa 1453 * Add pci_disable_device to unload path. 1454 * Move lpfc_sleep_event from lpfc_fcp 1454 * Move lpfc_sleep_event from lpfc_fcp.c to lpfc_util_ioctl.c 1455 * Call dma_map_single() & pci_map_sin 1455 * Call dma_map_single() & pci_map_single() directly instead of via 1456 macro lpfc_pci_map(). Allow addres 1456 macro lpfc_pci_map(). Allow address 0 for PPC64. 1457 * Change sleep to uninterruptible in 1457 * Change sleep to uninterruptible in lpfc_sli_issue_icob_wait 1458 because this function doesn't handl 1458 because this function doesn't handle signals. 1459 * Move lpfc_wakeup_event from lpfc_fc 1459 * Move lpfc_wakeup_event from lpfc_fcp.c to lpfc_ioctl.c 1460 * Remove unneeded #include <linux/net 1460 * Remove unneeded #include <linux/netdevice.h> 1461 * Remove unused clock variables lpfc_ 1461 * Remove unused clock variables lpfc_clkCnt and lpfc_sec_clk. 1462 * Get rid of capitalization of functi 1462 * Get rid of capitalization of function names. 1463 * Removed lpfc_addr_sprintf. 1463 * Removed lpfc_addr_sprintf. 1464 * Implemented gotos in lpfc_linux_att 1464 * Implemented gotos in lpfc_linux_attach for error cases. 1465 * Replace mlist->dma.list = dmp->dma. 1465 * Replace mlist->dma.list = dmp->dma.list; to mlist = dmp. 1466 * Remove functions lpfc_get_OsNameVer 1466 * Remove functions lpfc_get_OsNameVersion and elx_wakeup. Change 1467 elx_wakeup to wake_up_interruptible 1467 elx_wakeup to wake_up_interruptible 1468 * Add function lpfc_get_os_nameversio 1468 * Add function lpfc_get_os_nameversion and change 1469 lpfc_get_OsNameVersion to lpfc_get_ 1469 lpfc_get_OsNameVersion to lpfc_get_os_nameversion. 1470 * Remove lpfc_get_OsNameVersion 1470 * Remove lpfc_get_OsNameVersion 1471 * Change driver name to a consistent 1471 * Change driver name to a consistent lpfc in every visible place. 1472 * Fix build warning: removed unused v 1472 * Fix build warning: removed unused variable ret in lpfc_fdmi_tmo. 1473 * Remove lpfc_utsname_nodename_check 1473 * Remove lpfc_utsname_nodename_check function 1474 * Remove functions lpfc_register_intr 1474 * Remove functions lpfc_register_intr and lpfc_unregister_intr 1475 * Fill in owner field in lpfc_ops fil 1475 * Fill in owner field in lpfc_ops file_operations struct and 1476 remove now unnecessary open and clo 1476 remove now unnecessary open and close entry points. 1477 * Change function name prefixes from 1477 * Change function name prefixes from elx_ to lpfc_ 1478 * Remove special case check for TUR i 1478 * Remove special case check for TUR in elx_os_prep_io() 1479 * Renamed elx_scsi.h to lpfc_scsi.h 1479 * Renamed elx_scsi.h to lpfc_scsi.h 1480 * Renamed elx_sched.h to lpfc_sched.h 1480 * Renamed elx_sched.h to lpfc_sched.h 1481 * Renamed elx_mem.h to lpfc_mem.h 1481 * Renamed elx_mem.h to lpfc_mem.h 1482 * Renamed elx_sli.h to lpfc_sli.h 1482 * Renamed elx_sli.h to lpfc_sli.h 1483 * Renamed elx_logmsg.h to lpfc_logmsg 1483 * Renamed elx_logmsg.h to lpfc_logmsg.h 1484 * Renamed elx.h to lpfc.h 1484 * Renamed elx.h to lpfc.h 1485 * Renamed elx_sli.c to lpfc_sli.c 1485 * Renamed elx_sli.c to lpfc_sli.c 1486 * Renamed elx_sched.c to lpfc_sched.c 1486 * Renamed elx_sched.c to lpfc_sched.c 1487 * Renamed elx_mem.c to lpfc_mem.c 1487 * Renamed elx_mem.c to lpfc_mem.c 1488 * Renamed elx_logmsg.c to lpfc_logmsg 1488 * Renamed elx_logmsg.c to lpfc_logmsg.c 1489 * Renamed lpfcLINUXfcp.c lpfc_fcp.c 1489 * Renamed lpfcLINUXfcp.c lpfc_fcp.c 1490 * Renamed elx_clock.c to lpfc_clock.c 1490 * Renamed elx_clock.c to lpfc_clock.c 1491 * Reduce stack usage in lpfc_info(). 1491 * Reduce stack usage in lpfc_info(). 1492 * Move lpip_stats structure from lpfc 1492 * Move lpip_stats structure from lpfc_hba.h to lpfc_ip.h. 1493 * Move lpfc_stats and HBAEVT_t struct 1493 * Move lpfc_stats and HBAEVT_t structures from lpfc_hba.h to 1494 lpfc.h 1494 lpfc.h 1495 * Remove lpfc_hba.h 1495 * Remove lpfc_hba.h 1496 * Remove duplicate rc definitions fro 1496 * Remove duplicate rc definitions from 1497 * Removed code which used next pointe 1497 * Removed code which used next pointer to store mbox structure. 1498 * Cleaned up list iterations. 1498 * Cleaned up list iterations. 1499 * Removed non list manipulation of th 1499 * Removed non list manipulation of the next pointers. 1500 * Change list_del()/INIT_LIST_HEAD se 1500 * Change list_del()/INIT_LIST_HEAD sequences to list_del_init() 1501 * In ELX_IOCBQ_t: Moved hipri_trigger 1501 * In ELX_IOCBQ_t: Moved hipri_trigger field to iocb_flag. Combined 1502 hipri_wait_queue and rsp_iocb in un 1502 hipri_wait_queue and rsp_iocb in union 1503 * Replaced casting from list_head wit 1503 * Replaced casting from list_head with list_entry macro. 1504 * Added ct_ndlp_context field to the 1504 * Added ct_ndlp_context field to the ELX_IOCBQ_t. 1505 * Do not use DMABUf_t list to store n 1505 * Do not use DMABUf_t list to store ndlp context 1506 * Return 0 from lpfc_process_iotcl_ut 1506 * Return 0 from lpfc_process_iotcl_util() when ELX_INITBRDS 1507 succeeds. 1507 succeeds. 1508 * remove elx_os_scsiport.h 1508 * remove elx_os_scsiport.h 1509 * Do not use DMABUf_t list to hold rp 1509 * Do not use DMABUf_t list to hold rpi context 1510 * Replace elx_cfg_* names with lpfc_c 1510 * Replace elx_cfg_* names with lpfc_cfg-* 1511 * Moved FCP activity to ring 0. Move 1511 * Moved FCP activity to ring 0. Moved ELS/CT activity to ring 2. 1512 * Clean up formatting of elx_sli.h (t 1512 * Clean up formatting of elx_sli.h (tabs for indents, 80 column 1513 lines). 1513 lines). 1514 * Remove unused elxclock declaration 1514 * Remove unused elxclock declaration in elx_sli.h. 1515 * Since everywhere IOCB_ENTRY is used 1515 * Since everywhere IOCB_ENTRY is used, the return value is cast, 1516 move the cast into the macro. 1516 move the cast into the macro. 1517 * Split ioctls out into separate file 1517 * Split ioctls out into separate files 1518 1518 1519 Changes from 20040326 to 20040402 1519 Changes from 20040326 to 20040402 1520 1520 1521 * Updated ChangeLog for 20040402 Sour 1521 * Updated ChangeLog for 20040402 SourceForge drop. 1522 * Use safe list iterator for ndlp lis 1522 * Use safe list iterator for ndlp list 1523 * Added code to return NLP_STE_FREED_ 1523 * Added code to return NLP_STE_FREED_NODE from the discovery 1524 state machine functions if the node 1524 state machine functions if the node is freed from the 1525 function. 1525 function. 1526 * Fixes to DMABUF_t handling 1526 * Fixes to DMABUF_t handling 1527 * Fix for load error in discovery 1527 * Fix for load error in discovery 1528 * Remove loop_cnt variable from lpfc_ 1528 * Remove loop_cnt variable from lpfc_rcv_plogi_unused_node. 1529 * Remove nle. reference. 1529 * Remove nle. reference. 1530 * Remove support for building 2.4 dri 1530 * Remove support for building 2.4 drivers 1531 * Remove elx_util.h and replace elx_d 1531 * Remove elx_util.h and replace elx_disc.h with lpfc_disc.h 1532 * Implemented the Linux list macros i 1532 * Implemented the Linux list macros in the discovery code. 1533 Also moved elx_disc.h contents into 1533 Also moved elx_disc.h contents into lpfc_disc.h 1534 * Unused variable cleanup 1534 * Unused variable cleanup 1535 * Use Linux list macros for DMABUF_t 1535 * Use Linux list macros for DMABUF_t 1536 * Break up ioctls into 3 sections, df 1536 * Break up ioctls into 3 sections, dfc, util, hbaapi 1537 rearranged code so this could be ea 1537 rearranged code so this could be easily separated into a 1538 different module later. All 3 are c !! 1538 differnet module later All 3 are currently turned on by 1539 defines in lpfc_ioctl.c LPFC_DFC_IO 1539 defines in lpfc_ioctl.c LPFC_DFC_IOCTL, LPFC_UTIL_IOCTL, 1540 LPFC_HBAAPI_IOCTL 1540 LPFC_HBAAPI_IOCTL 1541 * Misc cleanup: some goto's; add comm 1541 * Misc cleanup: some goto's; add comments; clarify function 1542 args 1542 args 1543 * Added code to use list macro for EL 1543 * Added code to use list macro for ELXSCSITARGET_t. 1544 * New list implementation for ELX_MBO 1544 * New list implementation for ELX_MBOXQ_t 1545 * Cleaned up some list_head casting. 1545 * Cleaned up some list_head casting. 1546 * Put IPFC ifdef around two members o 1546 * Put IPFC ifdef around two members of struct lpfc_nodelist. 1547 * Cleaned up iocb list using list mac 1547 * Cleaned up iocb list using list macros and list_head data 1548 structure. 1548 structure. 1549 * lpfc_online() was missing some time 1549 * lpfc_online() was missing some timer routines that were 1550 started by lpfc_linux_attach(). Th 1550 started by lpfc_linux_attach(). These routines are now also 1551 started by lpfc_online(). lpfc_off 1551 started by lpfc_online(). lpfc_offline() only stopped 1552 els_timeout routine. It now stops 1552 els_timeout routine. It now stops all timeout routines 1553 associated with that hba. 1553 associated with that hba. 1554 * Replace separate next and prev poin 1554 * Replace separate next and prev pointers in struct 1555 lpfc_bindlist with list_head type. 1555 lpfc_bindlist with list_head type. In elxHBA_t, replace 1556 fc_nlpbind_start and _end with fc_n 1556 fc_nlpbind_start and _end with fc_nlpbind_list and use 1557 list_head macros to access it. 1557 list_head macros to access it. 1558 * Fix ulpStatus for aborting I/Os ove 1558 * Fix ulpStatus for aborting I/Os overlaps with newer firmware 1559 ulpStatus values 1559 ulpStatus values 1560 * Rework params_show/store to be cons 1560 * Rework params_show/store to be consistent as the other 1561 routines. Remove generic'ness and 1561 routines. Remove generic'ness and rely on set attribute. 1562 * Remove unused log message. 1562 * Remove unused log message. 1563 * Collapse elx_crtn.h and prod_crtn.h 1563 * Collapse elx_crtn.h and prod_crtn.h into lpfc_crtn.h 1564 * Ifdef Scheduler specific routines 1564 * Ifdef Scheduler specific routines 1565 * Removed following unused ioctl's: E !! 1565 * Removed following ununsed ioclt's: ELX_READ_IOCB 1566 ELX_READ_MEMSEG ELX_READ_BINFO ELX_ 1566 ELX_READ_MEMSEG ELX_READ_BINFO ELX_READ_EINVAL ELX_READ_LHBA 1567 ELX_READ_LXHBA ELX_SET ELX_DBG LPFC 1567 ELX_READ_LXHBA ELX_SET ELX_DBG LPFC_TRACE 1568 * Removed variable fc_dbg_flg 1568 * Removed variable fc_dbg_flg 1569 * Fixed a bug where HBA_Q_DEPTH was s 1569 * Fixed a bug where HBA_Q_DEPTH was set incorrectly for 1570 3-digit HBAs. Also changed can_que 1570 3-digit HBAs. Also changed can_queue so midlayer will only 1571 send (HBA_Q_DEPTH - 10) cmds. 1571 send (HBA_Q_DEPTH - 10) cmds. 1572 * Clean up code in the error path, ch 1572 * Clean up code in the error path, check condition. Remove 1573 unused sense-related fields in lun !! 1573 ununsed sense-related fields in lun structure. 1574 * Added code for safety pools for fol 1574 * Added code for safety pools for following objects: mbuf/bpl, 1575 mbox, iocb, ndlp, bind 1575 mbox, iocb, ndlp, bind 1576 * Wrapped '#include <elx_sched.h>' in 1576 * Wrapped '#include <elx_sched.h>' in '#ifdef USE_SCHEDULER'. 1577 * Fixed 'make clean' target. 1577 * Fixed 'make clean' target. 1578 * Build now ignores elx_sched.o, and 1578 * Build now ignores elx_sched.o, and includes lpfc_sysfs.o. 1579 * Wrapped lpfndd.o target in BUILD_IP 1579 * Wrapped lpfndd.o target in BUILD_IPFC ifdef. 1580 * Removed elx_os.h inclusion in imple 1580 * Removed elx_os.h inclusion in implementation files. 1581 * Removed ELX_OS_IO_t data structure 1581 * Removed ELX_OS_IO_t data structure and put data direction 1582 and non scatter/gather physical add 1582 and non scatter/gather physical address into the scsi buffer 1583 structure directly. Moved DRVR_LOC 1583 structure directly. Moved DRVR_LOCK, putPaddr, getPaddr 1584 macros and some defines into elx.h 1584 macros and some defines into elx.h since they are required 1585 by the whole driver. 1585 by the whole driver. 1586 * Migrated following ioctls (debug) E 1586 * Migrated following ioctls (debug) ELX_DISPLAY_PCI_ALL 1587 ELX_DEVP ELX_READ_BPLIST ELX_RESET_ 1587 ELX_DEVP ELX_READ_BPLIST ELX_RESET_QDEPTH ELX_STAT. 1588 * Step 1 of attempt to move all Debug 1588 * Step 1 of attempt to move all Debug ioctls to sysfs. 1589 Implemented the following IOCTLs in 1589 Implemented the following IOCTLs in sysfs: ELX_WRITE_HC 1590 ELX_WRITE_HS ELX_WRITE_HA ELX_WRITE 1590 ELX_WRITE_HS ELX_WRITE_HA ELX_WRITE_CA ELX_READ_HC 1591 ELX_READ_HS ELX_READ_HA ELX_READ_CA 1591 ELX_READ_HS ELX_READ_HA ELX_READ_CA ELX_READ_MB ELX_RESET 1592 ELX_READ_HBA ELX_INSTANCE ELX_LIP. 1592 ELX_READ_HBA ELX_INSTANCE ELX_LIP. Also introduced 1593 attribute "set" to be used in conju 1593 attribute "set" to be used in conjunction with the above 1594 attributes. 1594 attributes. 1595 * Removed DLINK, enqueue and dequeue !! 1595 * Removed DLINK, enque and deque declarations now that clock 1596 doesn't use them anymore 1596 doesn't use them anymore 1597 * Separated install rule so that BUIL 1597 * Separated install rule so that BUILD_IPFC has to be set when 1598 make is called in order for the ins 1598 make is called in order for the install rule to attempt to 1599 copy the lpfndd.o driver. This cha 1599 copy the lpfndd.o driver. This change fixes a bug that 1600 occurs because the install rule by 1600 occurs because the install rule by default attempted to 1601 install lpfndd.o, whereas the defau 1601 install lpfndd.o, whereas the default make rule did not by 1602 default build lpfndd.o. 1602 default build lpfndd.o. 1603 * Keep track if hbaapi index numbers 1603 * Keep track if hbaapi index numbers need to be refreshed. 1604 * Removed prod_os.h from include list 1604 * Removed prod_os.h from include list. 1605 * Removed LPFC_LOCK and LPFC_UNLOCK m 1605 * Removed LPFC_LOCK and LPFC_UNLOCK macros. Added OS calls 1606 into elx_os_scsiport.c. This file 1606 into elx_os_scsiport.c. This file is now empty. 1607 * Added spin_lock_irqsave and spin_un 1607 * Added spin_lock_irqsave and spin_unlock_irqrestore calls 1608 into code directly and removed LPFC 1608 into code directly and removed LPFC_LOCK_ and _UNLOCK_ 1609 macros 1609 macros 1610 * Remove references to "elx_clock.h" 1610 * Remove references to "elx_clock.h" 1611 * Added utsname.h to include list. T 1611 * Added utsname.h to include list. The previous checkin to 1612 elx_os.h removed its inclusion of u 1612 elx_os.h removed its inclusion of utsname.h since there is 1613 precious little in the file. Howev 1613 precious little in the file. However, lpfcLINUXfcp.c needs 1614 it and now has it. 1614 it and now has it. 1615 * Removed some commented-out code 1615 * Removed some commented-out code 1616 * Removed elx_lck_t data structure, s 1616 * Removed elx_lck_t data structure, stray elxDRVR_t type, and 1617 include from file. No longer used. 1617 include from file. No longer used. 1618 * Removed two PCI Sync defines. Remo 1618 * Removed two PCI Sync defines. Removed includes - not 1619 needed. Cleaned up macro lines. 1619 needed. Cleaned up macro lines. 1620 * Added two functions from elxLINUXfc 1620 * Added two functions from elxLINUXfcp.c. These functions 1621 were IPFC specific. 1621 were IPFC specific. 1622 * Removed hipri lock abstractions and 1622 * Removed hipri lock abstractions and added OS call into code. 1623 Removed elx_lck_t and added spinloc 1623 Removed elx_lck_t and added spinlock_t directly. Moved two 1624 IPFC functions into lpfc_ipport.c 1624 IPFC functions into lpfc_ipport.c 1625 * Moved IP specific structures to lpf 1625 * Moved IP specific structures to lpfc_ip.h file. 1626 * lpfc_ipfarp_timeout() uses system t 1626 * lpfc_ipfarp_timeout() uses system timer. Remove all usages 1627 of old internal clock support. 1627 of old internal clock support. 1628 * Made changes to compile without IPF 1628 * Made changes to compile without IPFC support for the default 1629 build. Added ifdef IPFC for all lp 1629 build. Added ifdef IPFC for all lpfc_ip.h includes. 1630 * Patched elx_free_scsi_buf 1630 * Patched elx_free_scsi_buf 1631 * Removed elx_sched.o from 2.6 depend 1631 * Removed elx_sched.o from 2.6 dependencies 1632 * Reworked lpfc_pcimap. 1632 * Reworked lpfc_pcimap. 1633 * Use Linux swap macros to replace EL 1633 * Use Linux swap macros to replace ELX swapping macros 1634 (SWAP_SHORT, SWAP_LONG, SWAP_DATA, 1634 (SWAP_SHORT, SWAP_LONG, SWAP_DATA, SWAP_DATA16, 1635 PCIMEM_SHORT, PCIMEM_LONG, PCIMEM_D 1635 PCIMEM_SHORT, PCIMEM_LONG, PCIMEM_DATA). 1636 * move in_interrupt() check inside of 1636 * move in_interrupt() check inside of elx_sleep_ms() 1637 * Moved location of pci.h include. 1637 * Moved location of pci.h include. 1638 * Restored elx_lck_t types in elxHBA_ 1638 * Restored elx_lck_t types in elxHBA_t. 1639 * Removed elx_pci_dma_sync call. Als 1639 * Removed elx_pci_dma_sync call. Also removed some PCI 1640 defines from elx_hw.h and removed t 1640 defines from elx_hw.h and removed the spinlock_t locks that 1641 are no longer used in elx.h 1641 are no longer used in elx.h 1642 * elx_iodone() now uses system timer. 1642 * elx_iodone() now uses system timer. 1643 * elx_qfull_retry() now uses system t 1643 * elx_qfull_retry() now uses system timer. 1644 * lpfc_put_buf(), lpfc_ip_xri_timeout 1644 * lpfc_put_buf(), lpfc_ip_xri_timeout() and 1645 lpfc_ip_timeout_handler() now use s 1645 lpfc_ip_timeout_handler() now use system timer. 1646 * lpfc_fdmi_tmo() and lpfc_qthrottle_ 1646 * lpfc_fdmi_tmo() and lpfc_qthrottle_up() now use system 1647 timer. 1647 timer. 1648 * Removed num_bufs and num_iocbs conf 1648 * Removed num_bufs and num_iocbs configuration parameters. 1649 * Fixed a memory corruption bug. This 1649 * Fixed a memory corruption bug. This was caused by a memory 1650 write to ndlp structure from lpfc_c 1650 write to ndlp structure from lpfc_cmpl_els_acc function. 1651 This ndlp structure was freed from 1651 This ndlp structure was freed from lpfc_els_unsol_event. 1652 * lpfc_disc_timeout() and lpfc_establ 1652 * lpfc_disc_timeout() and lpfc_establish_link_tmo() now use 1653 system timer. Also update lpfc_els 1653 system timer. Also update lpfc_els_retry_delay() to do a 1654 single lock release at the end. 1654 single lock release at the end. 1655 * Remove use of PAN (pseudo adapter n 1655 * Remove use of PAN (pseudo adapter number). 1656 * Reintroduced usage of the cross com 1656 * Reintroduced usage of the cross compiler for building on 1657 ppc64 to remove build errors that w 1657 ppc64 to remove build errors that were cropping up when 1658 using the standard gcc compiler. 1658 using the standard gcc compiler. 1659 * Fix no-unlock-before return in lpfc 1659 * Fix no-unlock-before return in lpfc_els_retry_delay which was 1660 causing a deadlock on insmod in so 1660 causing a deadlock on insmod in some environments. 1661 * Minor format changes fix up comment 1661 * Minor format changes fix up comments 1662 * Create utility clock function elx_s 1662 * Create utility clock function elx_start_timer() and 1663 elx_stop_timer(). All timeout rout 1663 elx_stop_timer(). All timeout routines now use these common 1664 routines. 1664 routines. 1665 * Minor formatting changes fix up com !! 1665 * Minor formating changes fix up comments 1666 * Minor formatting changes get rid of 1666 * Minor formatting changes get rid of failover defines for 1667 syntax checking 1667 syntax checking 1668 * Minor formatting changes remove ISC 1668 * Minor formatting changes remove ISCSI defines. 1669 * Fix typo in install target for 2.4 1669 * Fix typo in install target for 2.4 kernels. 1670 * Removed unused elx_scsi_add_timer e 1670 * Removed unused elx_scsi_add_timer extern function 1671 declaration. 1671 declaration. 1672 * Cleanup casting around DMA masks. 1672 * Cleanup casting around DMA masks. 1673 * Comment out lpfndd.o modules_instal 1673 * Comment out lpfndd.o modules_install section as lpfndd.o is 1674 not generated if CONFIG_NET_LPFC is 1674 not generated if CONFIG_NET_LPFC is not set. Also refer to 1675 BASEINCLUDE only in out of kernel s 1675 BASEINCLUDE only in out of kernel source module builds as it 1676 will not exist otherwise. 1676 will not exist otherwise. 1677 * Removed unused malloc counters from 1677 * Removed unused malloc counters from lpfcLINUXfcp.c. 1678 * Remove some unnecessary #includes i 1678 * Remove some unnecessary #includes in lpfcLINUXfcp.c 1679 * Remove unnecessary #includes in elx !! 1679 * Remove unncessary #includes in elxLINUXfcp.c 1680 * Minor formatting cleanups in Makefi 1680 * Minor formatting cleanups in Makefile to avoid some 1681 linewrapping. 1681 linewrapping. 1682 * Removed unused elx_mem_pool data st 1682 * Removed unused elx_mem_pool data structure. 1683 * Remove several unnecessary #include 1683 * Remove several unnecessary #includes. 1684 * Moving fix for memory leak in ioctl 1684 * Moving fix for memory leak in ioctl lip area to sysfs's lip. 1685 * Removed unused elx_dma_handle_t elx 1685 * Removed unused elx_dma_handle_t elx_acc_handle_t 1686 FC_MAX_SEGSZ and FC_MAX_POOL. 1686 FC_MAX_SEGSZ and FC_MAX_POOL. 1687 * Rewrite of Makefile. Fixes breakage 1687 * Rewrite of Makefile. Fixes breakages with make -j4 during 1688 kernel compile. Does not recompile 1688 kernel compile. Does not recompile all files on every 1689 build. Uses the kernel build's defi 1689 build. Uses the kernel build's definitions of CFLAGS, 1690 MODFLAGS etc. Removed "make rpm" op 1690 MODFLAGS etc. Removed "make rpm" option. 1691 * Removed unused #defines CLOSED, DEA 1691 * Removed unused #defines CLOSED, DEAD, OPENED, NORMAL_OPEN 1692 and unneeded #include of elx_sched. 1692 and unneeded #include of elx_sched.h in elx.h. 1693 * Several log message updates 1693 * Several log message updates 1694 * Add PCI_DEVICE_ID_FIREFLY for LP600 1694 * Add PCI_DEVICE_ID_FIREFLY for LP6000 1695 * Fixed known issues in 20040326: dri 1695 * Fixed known issues in 20040326: driver crashes on rmmod in 1696 both 2.4 and 2.6 kernels 1696 both 2.4 and 2.6 kernels 1697 1697 1698 1698 1699 Changes from 20040319 to 20040326 1699 Changes from 20040319 to 20040326 1700 1700 1701 * Updated ChangeLog for 20040326 Sour 1701 * Updated ChangeLog for 20040326 SourceForge drop. 1702 * remove lpfc_isr / lpfc_tmr logic fi 1702 * remove lpfc_isr / lpfc_tmr logic fixed up 8 spaces from 1703 previous checkins with tabs 1703 previous checkins with tabs 1704 * replace elx_in_intr() with in_inter 1704 * replace elx_in_intr() with in_interrupt() 1705 * Remove unused messages 1602 and 160 1705 * Remove unused messages 1602 and 1603. 1706 * Fix the following issues with log m 1706 * Fix the following issues with log messages: Remove unused 1707 messages 406, 407, 409, 927, 928, 1 1707 messages 406, 407, 409, 927, 928, 1201, 1202, 1204, 1205, 1206 1708 and 1207. Create a new message 738 1708 and 1207. Create a new message 738 to fix duplicate instances 1709 of 736. 1709 of 736. 1710 * Removed remaining pci interface abs 1710 * Removed remaining pci interface abstractions from elxLINUXfcp.c. 1711 Implemented OS calls directly in al 1711 Implemented OS calls directly in all remaining files and cleaned 1712 up modules. Removed prototypes as 1712 up modules. Removed prototypes as well. 1713 * Removed following functions/structu 1713 * Removed following functions/structures elx_mem_dmapool 1714 elx_idx_dmapool elx_size_dmapool el 1714 elx_idx_dmapool elx_size_dmapool elx_kmem_lock dfc_data_alloc 1715 dfc_data_free dfc_mem struct mbuf_i 1715 dfc_data_free dfc_mem struct mbuf_info elx_acc_handle_t 1716 data_handle elx_dma_handle_t dma_ha 1716 data_handle elx_dma_handle_t dma_handle struct elx_memseg 1717 MEMSEG_t 1717 MEMSEG_t 1718 * lpfc_els_timeout_handler() now uses 1718 * lpfc_els_timeout_handler() now uses system timer. 1719 * Further cleanup of #ifdef powerpc 1719 * Further cleanup of #ifdef powerpc 1720 * lpfc_scsi_timeout_handler() now use 1720 * lpfc_scsi_timeout_handler() now uses system timer. 1721 * Replace common driver's own defines 1721 * Replace common driver's own defines for endianness w/ Linux's 1722 __BIG_ENDIAN etc. 1722 __BIG_ENDIAN etc. 1723 * Added #ifdef IPFC for all IPFC spec 1723 * Added #ifdef IPFC for all IPFC specific code. 1724 * lpfc_disc_retry_rptlun() now uses s 1724 * lpfc_disc_retry_rptlun() now uses system timer. 1725 * lpfc_npr_timeout() now uses system 1725 * lpfc_npr_timeout() now uses system timer. 1726 * Modified detect code, on insmod, to 1726 * Modified detect code, on insmod, to only wait a max of 2 secs if 1727 link comes up and there are no devi 1727 link comes up and there are no devices. 1728 * Move remaining message logging func 1728 * Move remaining message logging functions into 1729 elx_logmsg.c/elx_logmsg.h. 1729 elx_logmsg.c/elx_logmsg.h. 1730 * Added code to clear link attention 1730 * Added code to clear link attention bit when there is a pending 1731 link event and the memory allocatio 1731 link event and the memory allocation for read_la mail box 1732 command fails. 1732 command fails. 1733 * Removed function calls for mapping 1733 * Removed function calls for mapping bar registers and allocating 1734 kernel virtual memory mappings to t 1734 kernel virtual memory mappings to the mapped bars Removed 1735 prototypes, lpfc_driver_cache_line, 1735 prototypes, lpfc_driver_cache_line, and pci_bar1_map rename to 1736 pci_bar2_map. 1736 pci_bar2_map. 1737 * Allocate mbox only if the hba_state 1737 * Allocate mbox only if the hba_state is in ready state. 1738 * Complete lip support via sysfs. To 1738 * Complete lip support via sysfs. To lip, echo brdnum > 1739 /sys/bus/pci/drivers/lpfc/lip. 1739 /sys/bus/pci/drivers/lpfc/lip. 1740 * moving sysfs show/store implementat 1740 * moving sysfs show/store implementations to lpfc_sysfs.c. Also add 1741 support for lip. 1741 support for lip. 1742 * Add files: lpfc_sysfs.c, lpfc_sysfs 1742 * Add files: lpfc_sysfs.c, lpfc_sysfs.h 1743 * move LPFC_DRIVER_NAME and LPFC_MODU 1743 * move LPFC_DRIVER_NAME and LPFC_MODULE_DESC out of lpfcLINUXfcp.c 1744 to lpfc_version.h, since it is now 1744 to lpfc_version.h, since it is now needed in lpfc_sysfs.c 1745 * elx_mbox_timeout now uses system ti 1745 * elx_mbox_timeout now uses system timer 1746 * Changed lpfc_nodev_timeout, lpfc_el 1746 * Changed lpfc_nodev_timeout, lpfc_els_retry_delay and 1747 lpfc_linkdown_timeout to use the sy 1747 lpfc_linkdown_timeout to use the system timer instead of 1748 internal clock support. 1748 internal clock support. 1749 * Move remaining message logging func 1749 * Move remaining message logging functions in elx_util.c to 1750 elx_logmsg.c. 1750 elx_logmsg.c. 1751 * Remove some unnecessary typecasting 1751 * Remove some unnecessary typecasting. 1752 * Remove log message that is no longe 1752 * Remove log message that is no longer used (was used by 1753 elx_str_atox). 1753 elx_str_atox). 1754 * Replaced DLINK_t and SLINK_t by sta 1754 * Replaced DLINK_t and SLINK_t by standard Linux list_head 1755 * Removed deque macro 1755 * Removed deque macro 1756 * Replaced ELX_DLINK_t and ELX_SLINK_ !! 1756 * Replaced ELX_DLINK_t ans ELX_SLINK_t by Linux struct list_head 1757 (except for clock) 1757 (except for clock) 1758 * Removed following functions from co 1758 * Removed following functions from code: linux_kmalloc linux_kfree 1759 elx_alloc_bigbuf elx_free_bigbuf 1759 elx_alloc_bigbuf elx_free_bigbuf 1760 * Removed following abstract function 1760 * Removed following abstract functions from the code. elx_malloc 1761 elx_free elx_ip_get_rcv_buf elx_ip_ 1761 elx_free elx_ip_get_rcv_buf elx_ip_free_rcv_buf 1762 elx_mem_alloc_dmabuf elx_mem_alloc_ 1762 elx_mem_alloc_dmabuf elx_mem_alloc_dmabufext elx_mem_alloc_dma 1763 elx_mem_alloc_buf lpfc_bufmap 1763 elx_mem_alloc_buf lpfc_bufmap 1764 * Removed custom PCI configuration #d 1764 * Removed custom PCI configuration #defines and replaced with 1765 OS-provided #defines. Also added li 1765 OS-provided #defines. Also added linux/pci.h to *.c files. 1766 * Remove elx_str_ctox. Replace elx_s 1766 * Remove elx_str_ctox. Replace elx_str_atox with sscanf. 1767 * Many indentation/whitespace fixes. 1767 * Many indentation/whitespace fixes. 1768 * Replace elx_str_ctox with isxdigit 1768 * Replace elx_str_ctox with isxdigit where it was only used to 1769 check the value of a character. 1769 check the value of a character. 1770 * Removed following functions from th 1770 * Removed following functions from the code. elx_kmem_free 1771 elx_kmem_alloc elx_kmem_zalloc 1771 elx_kmem_alloc elx_kmem_zalloc 1772 * Change use of 2.4 SCSI typedef Scsi 1772 * Change use of 2.4 SCSI typedef Scsi_Host_Template to struct 1773 scsi_host_template for 2.6 kernels. 1773 scsi_host_template for 2.6 kernels. 1774 * Change use of 2.4 SCSI typedefs (Sc 1774 * Change use of 2.4 SCSI typedefs (Scsi_Device, Scsi_Cmnd, 1775 Scsi_Request) the their real struct 1775 Scsi_Request) the their real struct names. 1776 * Move 2.6 compatibility irqreturn de 1776 * Move 2.6 compatibility irqreturn definitions to lpfc_compat.h. 1777 Protect these definitions from conf 1777 Protect these definitions from conflicting with similar ones in 1778 later 2.4 kernels. 1778 later 2.4 kernels. 1779 * Remove unused definitions: LINUX_TG 1779 * Remove unused definitions: LINUX_TGT_t, LINUX_LUN_t, 1780 LINUX_BUF_t, elx_lun_t, SET_ADAPTER 1780 LINUX_BUF_t, elx_lun_t, SET_ADAPTER_STATUS. 1781 * Convert pci_ calls to linux 2.6 dma 1781 * Convert pci_ calls to linux 2.6 dma_ equivalents. 1782 * Removed unused types: struct buf, s 1782 * Removed unused types: struct buf, struct sc_buf, T_SCSIBUF 1783 typedef. 1783 typedef. 1784 * Fix Makefile so that 2.4 drivers do 1784 * Fix Makefile so that 2.4 drivers don't always rebuild all files. 1785 * Remove unused _static_ and fc_lun_t 1785 * Remove unused _static_ and fc_lun_t definitions. 1786 * Cleaned up some memory pool impleme 1786 * Cleaned up some memory pool implementation code. 1787 * Fix panic with char dev changes. Tu 1787 * Fix panic with char dev changes. Turns out that 2.6.4 code does 1788 the same in kernel space with the 2 1788 the same in kernel space with the 2.4 interface style 1789 definitions. So remove the new char 1789 definitions. So remove the new char dev code altogether. 1790 * Remove typecasting from fc_get_cfg_ 1790 * Remove typecasting from fc_get_cfg_param and consolidate 1791 multiple instances of the parameter 1791 multiple instances of the parameter switch into a single 1792 instance. 1792 instance. 1793 * Use lpfc_is_LC_HBA() macro that tes 1793 * Use lpfc_is_LC_HBA() macro that tests pcidev->device directly 1794 instead of saving a private copy th 1794 instead of saving a private copy that undergoes varied shifting 1795 & casting. 1795 & casting. 1796 * Removed usage of all memory pools. 1796 * Removed usage of all memory pools. 1797 1797 1798 Changes from 20040312 to 20040319 1798 Changes from 20040312 to 20040319 1799 1799 1800 * Use dev_warn instead of printk for 1800 * Use dev_warn instead of printk for 2.6 kernels 1801 * Correct Iocbq completion routine fo 1801 * Correct Iocbq completion routine for 2.6 kernel case 1802 * Change void *pOSCmd to Scsi_Smnd *p 1802 * Change void *pOSCmd to Scsi_Smnd *pCmd 1803 * Change void *pOScmd to struct sk_bu 1803 * Change void *pOScmd to struct sk_buff *pCmd 1804 * Remove data direction code. !! 1804 * Remove data directon code. 1805 * Removed memory pool for buf/bpl buf 1805 * Removed memory pool for buf/bpl buffers and use kmalloc/kfree 1806 pci_pool_alloc/free directly. 1806 pci_pool_alloc/free directly. 1807 * Move PPC check for DMA address 0 in 1807 * Move PPC check for DMA address 0 in scatter-gather list, into 1808 lpfc_compat.h 1808 lpfc_compat.h 1809 * Always use pci_unmap_single() inste 1809 * Always use pci_unmap_single() instead of pci_unmap_page() 1810 * Clean up the 2.6 vs 2.4 #if blocks. 1810 * Clean up the 2.6 vs 2.4 #if blocks. 1811 * Conditionalize Scheduler 1811 * Conditionalize Scheduler 1812 * Add a comment to explain a little w 1812 * Add a comment to explain a little what the first Makefile 1813 section does. 1813 section does. 1814 * Removed lpfc_intr_post 1814 * Removed lpfc_intr_post 1815 * Sysfs new display format. Also adde 1815 * Sysfs new display format. Also added write functionality. You 1816 can [ echo "0 log_verbose 3" > 1816 can [ echo "0 log_verbose 3" > 1817 /sys/bus/pci/drivers/lpfc/params]. 1817 /sys/bus/pci/drivers/lpfc/params]. Hex support yet to be added. 1818 * Removed several #ifdef powerpc, inc 1818 * Removed several #ifdef powerpc, including for a discovery issue 1819 in lpfc_ValidLun() 1819 in lpfc_ValidLun() 1820 * Change elx_printf_log to use vsprin 1820 * Change elx_printf_log to use vsprintf. 1821 * Added lpfc_compat.h provides macros 1821 * Added lpfc_compat.h provides macros to aid compilation in the 1822 Linux 2.4 kernel over various platf 1822 Linux 2.4 kernel over various platform architectures. Initially 1823 support mapping to a DMA address. 1823 support mapping to a DMA address. 1824 * Removed memory pool for nlp/bind bu 1824 * Removed memory pool for nlp/bind buffers and use kmalloc/kfree 1825 directly. 1825 directly. 1826 * Removed memory pool for iocb buffer 1826 * Removed memory pool for iocb buffers and use kmalloc/kfree 1827 directly. 1827 directly. 1828 * Removed memory pool for mailbox buf 1828 * Removed memory pool for mailbox buffers and use kmalloc/kfree 1829 directly. 1829 directly. 1830 * Cleaned up back and forth casts 1830 * Cleaned up back and forth casts 1831 * Initial support for sysfs for 2.6 k 1831 * Initial support for sysfs for 2.6 kernel. 1832 * Changed elx_dma_addr_t to dma_addr_ 1832 * Changed elx_dma_addr_t to dma_addr_t 1833 * Fix a 2.6 kernel check to be >= 2.6 1833 * Fix a 2.6 kernel check to be >= 2.6.0 instead of > (was missing 1834 2.6.0). 1834 2.6.0). 1835 * Remove elx_printf and elx_str_sprin 1835 * Remove elx_printf and elx_str_sprintf. Replace elx_print with 1836 printk. 1836 printk. 1837 * Replace elx_printf with printk. 1837 * Replace elx_printf with printk. 1838 * Replace elx_str_sprintf with sprint 1838 * Replace elx_str_sprintf with sprintf. 1839 * Removed the mem_lock, its prototype 1839 * Removed the mem_lock, its prototype, function, macro, and 1840 iflags. 1840 iflags. 1841 * Use kmalloc/kfree for ELX_SCSI_BUF_ 1841 * Use kmalloc/kfree for ELX_SCSI_BUF_t 1842 * Use linux pci_pools for SCSI_DMA_EX 1842 * Use linux pci_pools for SCSI_DMA_EXT 1843 * Use linux pci_pools for BPLs. 1843 * Use linux pci_pools for BPLs. 1844 * Minor cleanup of DFC args for PPC64 1844 * Minor cleanup of DFC args for PPC64. 1845 * Several small indentation cleanups. 1845 * Several small indentation cleanups. 1846 * New Linux 2.6 style of char device 1846 * New Linux 2.6 style of char device registration. 1847 * Migrated members of LPFCHBA_t and L 1847 * Migrated members of LPFCHBA_t and LINUX_HBA_t into elxHBA_t 1848 * Use strcpy, strncmp, isdigit, strle 1848 * Use strcpy, strncmp, isdigit, strlen instead of abstractions 1849 * Cleanup of driver_template. 1849 * Cleanup of driver_template. 1850 * Facilitate compile time turn on/off 1850 * Facilitate compile time turn on/off of lpfc_network_on. 1851 * Split large source files into small 1851 * Split large source files into smaller, better named ones. 1852 1852 1853 Changes from 2.10a to 20040312 1853 Changes from 2.10a to 20040312 1854 1854 1855 * Fix build for 2.4 kernels 1855 * Fix build for 2.4 kernels 1856 * Move driver version macros into lpf 1856 * Move driver version macros into lpfc_version.h file. 1857 * Fixed data miscompare with LIP. 1857 * Fixed data miscompare with LIP. 1858 * Removed elx_sli, elx_ioc, elx_disc, 1858 * Removed elx_sli, elx_ioc, elx_disc, elx_sch routines, 1859 prototypes, and reference points. 1859 prototypes, and reference points. 1860 * Correct the space insertions with h 1860 * Correct the space insertions with hardtabs 1861 * Remove routine call pointers in ELX 1861 * Remove routine call pointers in ELX_SLI_INIT_t struct. 1862 * Removed module locks except for drv 1862 * Removed module locks except for drvr, mem, and clock. 1863 * Removed unused module locks from so 1863 * Removed unused module locks from sourcebase. Kept drvr_lock, 1864 mem_lock, and clock_lock. 1864 mem_lock, and clock_lock. 1865 * Change NULL to 0 1865 * Change NULL to 0
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.