xref: /OK3568_Linux_fs/kernel/Documentation/scsi/lpfc.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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