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