~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/scsi/ChangeLog.lpfc

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/scsi/ChangeLog.lpfc (Version linux-6.12-rc7) and /Documentation/scsi/ChangeLog.lpfc (Version linux-6.5.13)


  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         * Implemented 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 initialization 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 interruptible 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 cast 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 changing of some offsets from word-based to
443           byte-based so we can simply do void     443           byte-based so we can simply do void pointer arithmetic (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 problem 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         * Background nodev_timeout processing to DPC. This enables us to
574           unblock (stop dev_loss_tmo) when app    574           unblock (stop dev_loss_tmo) when appropriate.
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 argument 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.  Incorporated
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           different 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 unused ioctl'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           unused 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, enqueue and dequeue 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 formatting 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 unnecessary #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 and 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 direction 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
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php