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