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