Menu

ChangeLog-8.0.20

IMPORTANT:

Starting in the 8.0.17 release, the driver began to be targeted strictly
toward the upstream kernel. As such, we removed #ifdefs for older kernels
(pre 2.6.10). The 8.0.16 release should be used if the driver is to be
run on one of the older kernels.

Unfortunately, what is "an older kernel" is still in a state of flux.
In general, the most important modification that was needed, support for
target block/unblock in the FC transport (see Cable Pull below), was added
to the kernel as of the 2.6.10 kernel. However, there are still patches
for the fc transport outstanding to the 2.6.10 kernel. The patches cover:
1 : The addition of new host-level attributes and statistics.
This patch has been incorporated into the kernel, in one of the
first -bk? updates to 2.6.10 (meaning, it will be fully contained
in 2.6.11)
2 : The addition of remote FC port attributes (and a couple of last
host-level attributes).

In driver revisions 8.0.17 through 8.0.19, a single source tarball was
provided which contained ifdefs to select the kernel state. A simple
"make" assumed a 2.6.10 kernel, a "make ADVANCED=1" assumed a 2.6.10
kernel plus the 1st patch.

With release 8.0.20, 2 source tarballs are provided:

lpfcdriver-2.6-8.0.20.tar :
Contains no #ifdefs, and assumes that all of the above
functionality and patches are in the kernel. This is an
upstream-ready source snapshot.

lpfcdriver-full-2.6-8.9.20.tar.gz
Contains #ifdefs so that it remains functional on an unpatched
2.6.10 kernel. It is compiled as:
make : assumes base 2.6.10
make ADVANCED=1 : assumes 2.6.10 kernel plus patch #1
make ADVANCED=2 : assumes 2.6.10 kernel plus patches 1 and 2.

Please heed these dependencies....

********************************************************************

Known issues :
* Please read the associated RELEASE-NOTES file !!!
* This source release intended for upstream kernel releases only!

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.

Posted by James Smart 2005-01-11

Log in to post a comment.