?? changelog.lpfc
字號:
of ulpPU and fcpi_parm to avoid incorrect read check of Write IO and incorrect read length.Changes from 20050110 to 20050124 * Changed version number to 8.0.21 * Removed unpleasant casting in the definition and use of lpfc_disc_action function pointer array. * Makefile cleanup. Use ?= operator for setting default KERNELVERSION and BASEINCLUDE values. Use $(PWD) consistently. * Removed call to lpfc_sli_intr from lpfc_config_port_post. All Linux systems will service hardware interrupts while bringing up the driver. * Christoph Hellwig change request: Reorg of contents of lpfc_hbadisc.c, lpfc_scsi.h, lpfc_init.c, lpfc_sli.c, lpfc_attr.c, lpfc_scsi.c. * Renamed discovery thread to lpfc_worker thread. Moved handling of error attention and link attention and mbox event handler to lpfc_worker thread. * Removed .proc_info and .proc_name from the driver template and associated code. * Removed check of FC_UNLOADING flag in lpfc_queuecommand to determine what result to return. * Move modification of FC_UNLOADING flag under host_lock. * Fix IOERR_RCV_BUFFER_WAITING handling for CT and ELS subsystem. * Workaround firmware bug for IOERR_RCV_BUFFER_WAITING on ELS ring. * Fixed a couple lpfc_post_buffer problems in lpfc_init.c. * Add missing spaces to the parameter descriptions for lpfc_cr_delay, lpfc_cr_count and lpfc_discovery_threads. * Lock before calling lpfc_sli_hba_down(). * Fix leak of "host" in the error path in the remove_one() path. * Fix comment for lpfc_cr_count. It defaults to 1. * Fix issue where we are calling lpfc_disc_done() recursively from lpfc_linkdown(), but list_for_each_entry_safe() is not safe for such use. * Bump lpfc_discovery_threads (count of outstading ELS commands in discovery) to 32 * If the SCSI midlayer tries to recover from an error on a lun while the corresponding target is in the NPR state, lpfc driver will reject all the resets. This will cause the target to be moved to offline state and block all the I/Os. The fix for this is to delay the lun reset to a target which is not in MAPPED state until the target is rediscovered or nodev timeout is fired.Changes from 20041229 to 20050110 * Changed version number to 8.0.20 * rport fix: use new fc_remote_port_rolechg() function instead of direct structure change * rport fix: last null pointer check * Phase II of GFP_ATOMIC effort. Replaced iocb_mem_pool and scsibuf_mem_pool with kmalloc and linked list. Inserted list operations for mempool_alloc calls. General code cleanup. All abort and reset routines converted. Handle_ring_event converted. * If the mbox_cmpl == lpfc_sli_wake_mbox_wait in lpfc_sli_handle_mb_event, pmb->context1 points to a waitq. Do not free the structure. * rport fixes: fix for rmmod crash * rport fixes: when receiving PRLI's, set node/rport role values * rport fixes: fix for unload and for fabric port deletes * VPD info bug fix. * lpfc_linkdown() should be able to process all outstanding events by calling lpfc_disc_done() even if it is called from lpfc_disc_done() Moving all events from phba->dpc_disc to local local_dpc_disc prevents those events from being processed. Removing that queue. From now on we should not see "Illegal State Transition" messages. * Release host lock and enable interrupts when calling del_timer_sync() * All related to rports: Clean up issues with rport deletion Convert to using block/unblock on list remove (was del/add) Moved rport delete to freenode - so rport tracks node. * rport fixes: for fport, get maxframe and class support information * Added use of wait_event to work with kthread interface. * Ensure that scsi_transport_fc.h is always pulled in by lpfc_scsiport.c * In remote port changes: no longer nulling target->pnode when removing from mapped list. Pnode get nulled when the node is freed (after nodev tmo). This bug was causing i/o recieved in the small window while the device was blocked to be errored w/ did_no_connect. With the fix, it returns host_busy (per the pre-remote port changes). * Merge in support for fc transport remote port use. This removes any consistent bindings within the driver. All scanning is now on a per-target basis driven by the discovery engine.Changes from 20041220 to 20041229 * Changed version number to 8.0.19 * Fixed bug for handling RSCN type 3. Terminate RSCN mode properly after ADISC handling completes. * Add list_remove_head macro. Macro cleans up memory allocation list handling. Also clean up lpfc_reset_bus_handler - routine does not need to allocate its own scsi_cmnd and scsi_device structures. * Fixed potential discovery bug, nlp list corrutpion fix potential memory leak * Part 1 of the memory allocation rework request by linux-scsi. This effort fixes the number of bdes per scsi_buf to 64, makes the scatter-gather count a module parameter, builds a linked list of scsi_bufs, and removes all dependencies on lpfc_mem.h. * Reverted lpfc_do_dpc, probe_one, remove_one to original implementation. Too many problems (driver not completing initial discovery, and IO not starting to disks). Backs out kthread patch. * Fix race condition in lpfc_do_dpc. If wake_up interrupt occurs while lpfc_do_dpc is running disc_done and the dpc list is empty, the latest insertion is missed and the schedule_timeout does not wakeup. The sleep interval is MAX_SCHEDULE_TIMEOUT defined as ~0UL >> 1, a very large number. Hacked it to 5*HZ for now. * Fixed bug introduced when discovery thread implementation was moved to kthread. kthread_stop() is not able to wake up thread waiting on a semaphore and "modprobe -r lpfc" is not always (most of the times) able to complete. Fix is in not using semaphore for the interruptable sleep. * Small Makefile cleanup - Remove remnants of 2.4 vs. 2.6 determination.Changes from 20041213 to 20041220 * Changed version number to 8.0.18 * Janitorial cleanup after removal of sliinit and ringinit[] ring statistic is owned by the ring and SLI stats are in sli structure. * Integrated patch from Christoph Hellwig <hch@lst.de> Kill compile warnings on 64 bit platforms: %variables for %llx format specifiers must be caste to long long because %(u)int64_t can just be long on 64bit platforms. * Integrated patch from Christoph Hellwig <hch@lst.de> Removes dead code. * Integrated patch from Christoph Hellwig <hch@lst.de>: use kthread interface. * Print LPFC_MODULE_DESC banner in module init routine. * Removed sliinit structure and ringinit[] array. * Changed log message number from 324 to 326 in lpfc_sli.c. * Wait longer for commands to complete in lpfc_reset_bus_handler and lpfc_reset_bus_handler. Also use schedule_timeout() instead of msleep() and add error message in lpfc_abort_handler() * When setting lpfc_nodev_tmo, from dev_loss set routine, make 1 sec minimum value. * Functions which assume lock being held were called without lock and kernel complained about unlocking lock which is not locked. * Added code in linkdown to unreg if we know login session will be terminated. * Removed automap config parameter and fixed up use_adisc logic to include FCP2 devices.Changes from 20041207 to 20041213 * Changed version number to 8.0.17 * Fix sparse warnings by adding __iomem markers to lpfc_compat.h. * Fix some sparse warnings -- 0 used as NULL pointer. * Make sure there's a space between every if and it's (. * Fix some overly long lines and make sure hard tabs are used for indentation. * Remove all trailing whitespace. * Integrate Christoph Hellwig's patch for 8.0.14: if pci_module_init fails we need to release the transport template. (also don't print the driver name at startup, linux drivers can be loaded without hardware present, and noise in the log for that case is considered unpolite, better print messages only for hardware actually found). * Integrate Christoph Hellwig's patch for 8.0.14: Add missing __iomem annotations, remove broken casts, mark functions static. Only major changes is chaning of some offsets from word-based to byte-based so we cans simply do void pointer arithmetics (gcc extension) instead of casting to uint32_t. * Integrate Christoph Hellwig's patch for 8.0.14: flag is always LPFC_SLI_ABORT_IMED, aka 0 - remove dead code. * Modified preprocessor #ifdef, #if, #ifndef to reflect upstream kernel submission. Clean build with make clean;make and make clean;make ADVANCED=1 on SMP x86, 2.6.10-rc2 on RHEL 4 Beta 1. IO with a few lips and a long cable pull behaved accordingly. * Implement full VPD support. * Abort handler will try to wait for abort completion before returning. Fixes some panics in iocb completion code path.Changes from 20041130 to 20041207 * Changed version number to 8.0.16 * Hung dt session fix. When the midlayer calls to abort a scsi command, make sure the driver does not complete post-abort handler. Just NULL the iocb_cmpl callback handler and let SLI take over. * Add Read check that uses SLI option to validate all READ data actually received.Changes from 20041123 to 20041130 * Changed version number to 8.0.15 * Ifdef'd unused "binary" attributes by DFC_DEBUG for clean compiles * Stop DID_ERROR from showing up along with QUEUE_FULL set by the Clarion array (SCSI error ret. val. 0x70028) There is no need for driver to hard fail command which was failed by the target device. * Fix for Scsi device scan bug reported on SourceForge. Driver was returning a DID_ERROR in lpfc_handle_fcp_error causing midlayer to mark report luns as failing even though it succeeded. * Don't ignore SCSI status on underrun conditions for inquiries, test unit ready's, etc. This was causing us to lose reservation conflicts, etcChanges from 20041018 to 20041123 * Changed version number to 8.0.14 * Added new function "iterator" lpfc_sli_next_iocb_slot() which returns pointer to iocb entry at cmdidx if queue is not full. It also updates next_cmdidx, and local_getidx (but not cmdidx) * lpfc_sli_submit_iocb() copies next_cmdidx into cmdidx. Now it is the only place were we are updating cmdidx. * lpfc_sli_update_ring() is split in to two -- lpfc_sli_update_ring() and lpfc_sli_update_full_ring(). * lpfc_sli_update_ring() don't to read back correct value of cmdidx. * Simplified lpfc_sli_resume_iocb() and its use. * New static function lpfc_sli_next_iocb(phba, pring, &piocb) to iterate through commands in the TX queue and new command (at the end). * Reduced max_lun to 256 (due to issues reported to some arrays). Fixed comment, and macro values so def=256, min=1, max=32768. * Fix an obvious typo/bug: kfree was used to free lpfc_scsi_buf instead of mempool_free in lpfc_scsiport.c. * Suppress nodev_tmo message for FABRIC nodes. * Fixed some usage of plain integer as NULL pointer. * Bug fix for FLOGI cmpl, lpfc_els_chk_latt error path code cleanup. * Fixup lpfc_els_chk_latt() to have Fabric NPorts go thru discovery state machine as well. * Fixes to lpfc_els_chk_latt(). * Use DID not SCSI target id as a port_id and add some missing locks in lpfc_fcp.c. * Changed eh_abort_handler to return FAILED if command is not found in driver. * Fix crash: paging request at virtual address 0000000000100108 - a result of removing from the txcmpl list item which was already removed (100100 is a LIST_POISON1 value from the next pointer and 8 is an offset of the "prev") Driver runs out of iotags and does not handle that case well. The root of the proble is in the initialization code in lpfc_sli.c * Changes to work with proposed linux kernel patch to support hotplug. * Zero out seg_cnt in prep_io failure path to prevent double sg unmap calls. * Fix setting of upper 32 bits for Host Group Ring Pointers if in SLIM. Old code was inappropriately masking off low order bits. * Use scsi_[activate|deactivate]_tcq calls provided in scsi_tcq.h. * Integrated patch from Christoph Hellwig (hch@lst.de): don't call pci_dma_sync_* on coherent memory. pci_dma_sync_* is need and must be used only with streaming dma mappings pci_map_*, not coherent mappings. Note: There are more consistent mappings that are using pci_dma_sync calls. Probably these should be removed as well. * Modified lpfc_free_scsi_buf to accomodate all three scsi_buf free types to alleviate miscellaneous panics with cable pull testing. * Set hotplug to default 0 and lpfc_target_remove to not remove devices unless hotplug is enabled. * Fixed discovery bug: plogi cmpl uses ndlp after its freed. * Fixed discovery bug: rnid acc cmpl, can potentially use ndlp after its freed. * Modularize code path in lpfc_target_remove(). * Changes to support SCSI hotplug (ifdef'ed out because they need kernel support USE_SCAN_TARGET requires kernel support to export the interface to scsi_scan_target and to move the SCAN_WILD_CARD
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -