^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) =========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) LPFC Driver Release Notes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) =========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) .. important::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Starting in the 8.0.17 release, the driver began to be targeted strictly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) toward the upstream kernel. As such, we removed #ifdefs for older kernels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) (pre 2.6.10). The 8.0.16 release should be used if the driver is to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) run on one of the older kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) The proposed modifications to the transport layer for FC remote ports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) and extended attribute support is now part of the upstream kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) as of 2.6.12. We no longer need to provide patches for this support,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) nor a *full* version which has old an new kernel support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) The driver now requires a 2.6.12 (if pre-release, 2.6.12-rc1) or later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) Please heed these dependencies....
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) The following information is provided for additional background on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) history of the driver as we push for upstream acceptance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) Cable pull and temporary device Loss:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) In older revisions of the lpfc driver, the driver internally queued i/o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) received from the midlayer. In the cases where a cable was pulled, link
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) jitter, or a device temporarily loses connectivity (due to its cable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) being removed, a switch rebooting, or a device reboot), the driver could
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) hide the disappearance of the device from the midlayer. I/O's issued to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) the LLDD would simply be queued for a short duration, allowing the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) to reappear or link come back alive, with no inadvertent side effects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) to the system. If the driver did not hide these conditions, i/o would be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) errored by the driver, the mid-layer would exhaust its retries, and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) device would be taken offline. Manual intervention would be required to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) re-enable the device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) The community supporting kernel.org has driven an effort to remove
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) internal queuing from all LLDDs. The philosophy is that internal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) queuing is unnecessary as the block layer already performs the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) queuing. Removing the queues from the LLDD makes a more predictable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) and more simple LLDD.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) As a potential new addition to kernel.org, the 8.x driver was asked to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) have all internal queuing removed. Emulex complied with this request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) In explaining the impacts of this change, Emulex has worked with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) community in modifying the behavior of the SCSI midlayer so that SCSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) devices can be temporarily suspended while transport events (such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) those described) can occur.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) The proposed patch was posted to the linux-scsi mailing list. The patch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) is contained in the 2.6.10-rc2 (and later) patch kits. As such, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) patch is part of the standard 2.6.10 kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) By default, the driver expects the patches for block/unblock interfaces
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) to be present in the kernel. No #define needs to be set to enable support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) Kernel Support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) This source package is targeted for the upstream kernel only. (See notes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) at the top of this file). It relies on interfaces that are slowing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) migrating into the kernel.org kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) At this time, the driver requires the 2.6.12 (if pre-release, 2.6.12-rc1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) If a driver is needed for older kernels please utilize the 8.0.16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) driver sources.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) Patches
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) Thankfully, at this time, patches are not needed.