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