📄 changelog.lpfc
字号:
define to a general scsi header file. USE_RESCAN_HOST requires kernel support to export an interface to scan_scsi_host() with the rescan flag turned on). * Removed redundant variable declaration of lpfc_linkdown_tmo. * Fix for large port count remove test. * Added check to see if BAR1 register is valid before using BAR1 register for programming config_port mail box command. * Added lpfc_scsi_hotplug to enable/disable driver support of SCSI hotplug. * Changed lpfc_disc_neverdev() to lpfc_disc_illegal() and changed lpfc_disc_nodev() to lpfc_disc_noop(). Adjusted appropriate events to use these routines. * Add support for SCSI device hotplug. * Take dummy lpfc_target's into account for lpfc_slave_destroy(). * Bug fix to store WWPN / WWNN in NameServer / FDMI lpfc_nodelist entries. * Added slavecnt in lpfc_target for diagnostic purposes. * Added lpfc_hba load/unload flags to take care of special cases for add/remove device. * Have target add/remove delay before scanning. * Have rmmod path cleanup blocked devices before scsi_remove_host. * Added a #define for msleep for 2.6.5 kernels. * In reset bus handler if memory allocation fails, return FAILED and not SUCCESS. * Have lpfc eh handlers, bus_reset and lun_reset, wait for all associated I/Os to complete before returning. * Fix memset byte count in lpfc_hba_init so that LP1050 would initialize correctly. * Backround nodev_timeout processing to DPC This enables us to unblock (stop dev_loss_tmo) when appopriate. * Fix array discovery with multiple luns. The max_luns was 0 at the time the host structure was intialized. lpfc_cfg_params then set the max_luns to the correct value afterwards. * Remove unused define LPFC_MAX_LUN and set the default value of lpfc_max_lun parameter to 512. * Reduced stack usage of lpfc_hba_init. * Cleaned up the following warning generated by scripts/checkincludes.pl lpfc_fcp.c: scsi/scsi_cmnd.h is included more than once. * Replaced "set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(timeout)" with "msleep(timeout)". * Fixnode was loosing starget when rediscovered. We saw messages like: lpfc 0000:04:02.0: 0:0263 Cannot block scsi target as a result. Moved starget field into struct lpfc_target which is referenced from the node. * Add additional SLI layer logging in lpfc_sli.c. * Ignore more unexpected completions in lpfc_nportdisc.c. * Can not call lpfc_target_unblock from the soft interrupt context. It seems to be not nessasery to unblock target from nodev timeout. * Introduce and use less lethal event handler for unexpected events in lpfc_nportdisc.c. * Can not call fc_target_(un)block() functions with interrupts disabled in lpfc_scsiport.c. * Added new configuration parameter, lpfc_max_luns range 1-32768, default 32768. * Allow lpfc_fcp.c to call lpfc_get_hba_sym_node_name(). * Increase nodev timeout from 20 seconds to 30 seconds. * Replace some kfree((void*)ptr) with kfree(ptr). * Make 3 functions static: lpfc_get_hba_sym_node_name, lpfc_intr_prep and lpfc_setup_slim_access. Move lpfc_intr_prep and lpfc_setup_slim_access so they're defined before being used. * Remove an unecessary list_del() in lpfc_hbadisc.c. * Set nlp_state before calling lpfc_nlp_list() since this will potentially call fc_target_unblock which may cause a race in queuecommand by releasing host_lock. * Since lpfc_nodev_tmo < dev_loss_tmo remove queuecommand DID_BAD_TARGET return for now. * Fix a problem with rcv logo. * Remove unused portstatistics_t structure. * Remove #if 0 and unnecessary checks in lpfc_fcp.c. * Simplify lpfc_issue_lip: Extra layer of protection removed. * Grab lock before calling lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT) in lpfc_sli_issue_mbox_wait().Changes from 20040920 to 20041018 * Changed version number to 8.0.13 * Hide some attributes using #ifndef DFC_DEBUG ... #endif. * Modify Makefile to (1) make BUILD_NO_DEBUG=1 will hide some (binary) attributes (2) make BUILD_FC_TRANS=0 will build driver for 2.6.5 kernel with block/unblock patch. * Modified #ifdef names. * Added support for proposed FC transport host attributes (which replaces some of the attributes we had local to the driver). Removed the binary statistics sysfs attribute. * Added extra ELS verbose logging for ELS responses. * Added recognition for BUILD_FC_TRANS=2 to Makefile to define FC_TRANS_VER2. * Add a pointer for link stats allocation. * Exported lpfc_get_hba_sym_node_name for use by FC_TRANS_VER2 sysfs routines. * Fix discovery problem in lip testing: if device sends an ELS cmd (i.e. LOGO) before our FLOGI completes it should be LS_RJT'ed. * Moved #defines around to provide target_add/remove for upstream kernel deliverables only not SLES9. Provided ifdefs to #include target_block/unblock only if FC_TRANS_VER1. * Add sanity check in lpfc_nlp_list move setting nlp_Target outside #ifdef. * Added a blocked member to the lpfc_target structure for block/unblock. This member allows the driver to know when to unblock for pci_remove_one or pci_add_one. #ifdef'd some more block/unblock stuff and removed some defensive checks from target_block/unblock. * Moved + 5 second window to dev_loss_tmo setting and updated comments. * Removed NULL target check from target_block/unblock and fixed up a few comments. * Enable sysfs attributes on 2.6.5 kernels and remove extra compatibility code. * Remove any and all trailing whitespace. * Added message 0718 and return error when dma_map_single fails. * Changed the fcpCntl2 commands to include an FCP_ prefix to get rid of build warnings on later 2.6.9-rc kernels. Build conflicts with scsi/scsi.h. Remove inclusions of scsi/scsi.h from hbadisc.c, sli.c, and fcp.c since these modules had no dependencies on scsi.h. * Fixed a bug with RSCN handling. A RSCN received on one device, shouldn't affect other devices not referenced by the RSCN. * Moved #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,6) to include lpfc_jedec_to_ascii to prevent warning in SLES 9. * Update Makefile to account for SLES 9 and scsi-target upstream kernel. * This checkin provides block/unblock hooks for the upstream scsi target kernel and 2.6.5 on SLES9 SP1 with the block/unblock patch. * Discovery changes regarding setting targetp->pnode and ndlp->nlp_Target Ensure fc_target_* routines are called properly from discovery. Remove list_del's from lpfc_cleanup(). Ensure all the lpfc_consistent_bind_* routines don't set any driver structure objects. * Fix for timeout of READ_LA or READ_SPARAM mailbox command causing panic. * Cleanup list_del()'s for Discovery ndlp lists. * Bug fixes for some insmod/rmmod crashes, link down crashes and device loss crashes. * Removed NLP_SEARCH_DEQUE. * Call lpfc_target_unblock only if the targetp is nonNull and with the host_lock held. * Added qcmdcnt back along with misc bug fixes to discovery. * Changed tgt_io to outfcpio lpfc_fcp.c. * Fixed errors caused by LIP and cable pulls both with and without block/unblock patch. * For now we have to call fc_target_unblock and fc_target_block with interrupts enabled. * Save seg_cnt from dma_map_sg. Save scatter-gather start address and pass back to dma_unmap_sg in error with seg_cnt. * Incorporating block/unblock calls into driver with ifdefs. This change is supported by scsi-target-2.6 kernel and forward only. * Merged in some discovery bug fixes and added tgt io counters. * Added sysfs attributes/interfaces: read only attribute "management_version" and write only attribute "issue_lip". * Fix build on big endian machines: while #if was OK with __BIG_ENDIAN which defined as 4321, __BIG_ENDIAN_BITFIELD has to be tested with #ifdef because it does not have any value, it is either defined or not. * Add fabric_name and port_type attributes. * Change mdelay to msleep. mdelay works, but wastefully uses cpu resources without a lock held. Revert to msleep. Tested with sg_reset for bus and three attached targets. * Added the customary #ifndef...#define...#endif to lpfc_version.h. * Integrate patches from Christoph Hellwig: two new helpers common to lpfc_sli_resume_iocb and lpfc_sli_issue_iocb - singificant cleanup of those two functions - the unused SLI_IOCB_USE_TXQ is gone - lpfc_sli_issue_iocb_wait loses it's flags argument totally. * Fix in lpfc_sli.c: we can not store a 5 bit value in a 4-bit field. * Moved some routines out of lpfc_fcp.c into more appropriate files. * Whitespace cleanup: remove all trailing whitespace. * Make lpfc_disc_ndlp_show static to lpfc_fcp.c. * Remove leftover printk and replace some with printk(KERN_WARNING) * Trivial: fix a few long lines and a soft tab. * Remove warnings generated by Sparse against driver (make C=1). Mostly these are "using integer as pointer warnings" i.e. use NULL instead of 0. * Integrated patch from Christoph Hellwig: Quite a lot of changes here, the most notable is that the phba->slim2p lpfc_dmabuf goes away in favour of a typede pointer and a dma_addr_t. Due to the typed pointer lots of the cast mess can go away, and while at it I also replaced the messy SLI2_SLIM_t with a simple struct lpfc2_sli2_slim that only contains the part of the union we care about while using SLI2_SLIM_SIZE for all size calculations directly. * Integrated patch from Christoph Hellwig: This streamlines the I/O completion path a little more, especially taking care of fast-pathing the non-error case. Also removes tons of dead members and defines from lpfc_scsi.h - e.g. lpfc_target is down to nothing more then the lpfc_nodelist pointer. * Added binary sysfs file to issue mbox commands * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for compatibility with the user space applications. * Decrease the amount of data in proc_info. * Condense nodelist flag members. * Expand INFO for discovery sysfs shost entries. * Notify user if information exceeds 4k sysfs limit. * Removed a bunch of unused #defines. * Added initial sysfs discovery shost attributes. * Remove unused #defines lpfc_disc.h. * Fixed failMask nodelist settings. * Cleanup some old comments / unused variables. * Add LP101 to list of recognized adapters.Changes from 20040908 to 20040920 * Changed version number to 8.0.12 * Removed used #defines: DEFAULT_PCI_LATENCY_CLOCKS and PCI_LATENCY_VALUE from lpfc_hw.h. * Changes to accomodate rnid. * Fix RSCN handling so RSCN NS queries only effect NPorts found in RSCN data. * If we rcv a plogi on a NPort queued up for discovery, clear the NLP_NPR_2B_DISC bit since rcv plogi logic will force NPort thru discovery. * Ensure lpfc_target is also cleaned up in lpfc_cleanup(). * Preliminary changes for block/unblock kernel API extensions in progress with linux-scsi list. These are name changes and prototype changes only. * Added send_abts flag to lpfc_els_abort. For rcv LOGO when ADISC sent, the XRI of the LOGO rcv'ed is the same as the ADISC sent. Thus we cannot ABTS the ADISC before sending the LOGO ACC. * Weed out some unused fc_flags. Add FC_DISC_TMO. * board_online sysfs attribute added to support libdfc functions InitDiagEnv and SetBrdEnv. * Streamline code in lpfc_els_retry fixup abort case in lpfc_els_timeout_handler(). * Flush discovery/ELS events when we bring SLI layer down. * ctlreg and slimem binary attributes added to support libdfc read/write mem/ctl functions. * Integrated Christoph Hellwig's patch: Cleanup lpfc_sli_ringpostbuf_get. * Modified lpfc_slave_alloc and lpfc_slave_destroy to allocate and free a dummy target pointer. This allows queuecommand to skip the NULL target pointer check and avoid the console spam when slave_alloc fails. * Fix cfg_scan_down logic, it was reversed. * Init list head ctrspbuflist. * Change name of lpfc_driver_abort to lpfc_els_abort since it is only valid for ELS ring. * Remove unused third argument for lpfc_consistent_bind_get(). * Fix up iotag fields in lpfc_prep_els_iocb(). * Remove log message on code path triggered by lpfc_els_abort(). * Set host->unique_id in lpfc_fcp.c. * Removed deadwood: lpfc_target.pHba not necessary anymore. * Integrated patch from Christoph Hellwig: remove dead SLI_IOCB_POLL handling. * Integrated patch from Christoph Hellwig: Streamline I/O submission and completion path a little. * Remove unnecessary lpfc_brd_no. Ensure brd_no assignment is unique. * Removed unused MAX_FCP_LUN. * Use mod_timer instead of add_timer for fdmi in lpfc_ct.c. * Fixed misc discovery problems. * Move stopping timers till just before lpfc_mem_free() call. * Fix up NameServer reglogin error path. * Cleanup possible outstanding discovery timers on rmmod. * Fix discovery NPort to NPort pt2pt problem. * Get rid of ip_tmofunc / scsi_tmofunc. * Integrated patch from Christoph Hellwig: lpfc_disc_done/lpfc_do_dpc cleanup - lpfc_disc_done can return void - move lpfc_do_dpc and lpfc_disc_done to lpfc_hbadisc.c - remove checking of list emptiness before calling lpfc_disc_done, it handles the emtpy list case just fine and the additional instructions cost less then the bustlocked spinlock operations. * Integrated patch from Christoph Hellwig: This adds a new 64bit counter instead, brd_no isn't reused anymore. Also some tiny whitespace cleanups in surrounding code. * Reorder functions in lpfc_els.c to remove need for prototypes. * Removed unsed prototypes from lpfc_crtn.h -
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -