<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/scsi/fnic, branch v3.11</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>[SCSI] fnic: BUG: sleeping function called from invalid context during probe</title>
<updated>2013-08-02T20:16:38+00:00</updated>
<author>
<name>Chris Leech</name>
<email>cleech@redhat.com</email>
</author>
<published>2013-07-23T20:04:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e09056b25c38357df5c01985a0b3af608bccbfc0'/>
<id>e09056b25c38357df5c01985a0b3af608bccbfc0</id>
<content type='text'>
I hit this during driver probe with the latest fnic updates (this trace
is from a backport into a distro kernel, but the issue is the same).

&gt; BUG: sleeping function called from invalid context at mm/slab.c:3113
&gt; in_atomic(): 0, irqs_disabled(): 1, pid: 610, name: work_for_cpu
&gt; INFO: lockdep is turned off.
&gt; irq event stamp: 0
&gt; hardirqs last  enabled at (0): [&lt;(null)&gt;] (null)
&gt; hardirqs last disabled at (0): [&lt;ffffffff81070aa5&gt;]
&gt; copy_process+0x5e5/0x1670
&gt; softirqs last  enabled at (0): [&lt;ffffffff81070aa5&gt;]
&gt; copy_process+0x5e5/0x1670
&gt; softirqs last disabled at (0): [&lt;(null)&gt;] (null)
&gt; Pid: 610, comm: work_for_cpu Not tainted
&gt; Call Trace:
&gt;  [&lt;ffffffff810b2d10&gt;] ? print_irqtrace_events+0xd0/0xe0
&gt;  [&lt;ffffffff8105c1a7&gt;] ? __might_sleep+0xf7/0x130
&gt;  [&lt;ffffffff81184efb&gt;] ? kmem_cache_alloc_trace+0x20b/0x2d0
&gt;  [&lt;ffffffff8109709e&gt;] ? __create_workqueue_key+0x3e/0x1d0
&gt;  [&lt;ffffffff8109709e&gt;] ? __create_workqueue_key+0x3e/0x1d0
&gt;  [&lt;ffffffffa00c101c&gt;] ? fnic_probe+0x977/0x11aa [fnic]
&gt;  [&lt;ffffffffa00c1048&gt;] ? fnic_probe+0x9a3/0x11aa [fnic]
&gt;  [&lt;ffffffff81096f00&gt;] ? do_work_for_cpu+0x0/0x30
&gt;  [&lt;ffffffff812c6da7&gt;] ? local_pci_probe+0x17/0x20
&gt;  [&lt;ffffffff81096f18&gt;] ? do_work_for_cpu+0x18/0x30
&gt;  [&lt;ffffffff8109cdc6&gt;] ? kthread+0x96/0xa0
&gt;  [&lt;ffffffff8100c1ca&gt;] ? child_rip+0xa/0x20
&gt;  [&lt;ffffffff81550f80&gt;] ? _spin_unlock_irq+0x30/0x40
&gt;  [&lt;ffffffff8100bb10&gt;] ? restore_args+0x0/0x30
&gt;  [&lt;ffffffff8109cd30&gt;] ? kthread+0x0/0xa0
&gt;  [&lt;ffffffff8100c1c0&gt;] ? child_rip+0x0/0x20

The problem is in this hunk of "FIP VLAN Discovery Feature Support"
(d3c995f1dcf938f1084388d92b8fb97bec366566)

create_singlethreaded_workqueue cannot be called with irqs disabled

@@ -620,7 +634,29 @@ static int __devinit fnic_probe(struct pci_dev
*pdev,
        vnic_dev_packet_filter(fnic-&gt;vdev, 1, 1, 0, 0, 0);
        vnic_dev_add_addr(fnic-&gt;vdev, FIP_ALL_ENODE_MACS);
        vnic_dev_add_addr(fnic-&gt;vdev, fnic-&gt;ctlr.ctl_src_addr);
+       fnic-&gt;set_vlan = fnic_set_vlan;
        fcoe_ctlr_init(&amp;fnic-&gt;ctlr, FIP_MODE_AUTO);
+       setup_timer(&amp;fnic-&gt;fip_timer, fnic_fip_notify_timer,
+                           (unsigned long)fnic);
+       spin_lock_init(&amp;fnic-&gt;vlans_lock);
+       INIT_WORK(&amp;fnic-&gt;fip_frame_work, fnic_handle_fip_frame);
+       INIT_WORK(&amp;fnic-&gt;event_work, fnic_handle_event);
+       skb_queue_head_init(&amp;fnic-&gt;fip_frame_queue);
+       spin_lock_irqsave(&amp;fnic_list_lock, flags);
+       if (!fnic_fip_queue) {
+           fnic_fip_queue =
+               create_singlethread_workqueue("fnic_fip_q");
+           if (!fnic_fip_queue) {
+               spin_unlock_irqrestore(&amp;fnic_list_lock, flags);
+               printk(KERN_ERR PFX "fnic FIP work queue "
+                        "create failed\n");
+               err = -ENOMEM;
+               goto err_out_free_max_pool;
+           }
+       }
+       spin_unlock_irqrestore(&amp;fnic_list_lock, flags);
+       INIT_LIST_HEAD(&amp;fnic-&gt;evlist);
+       INIT_LIST_HEAD(&amp;fnic-&gt;vlans);
    } else {
        shost_printk(KERN_INFO, fnic-&gt;lport-&gt;host,
                 "firmware uses non-FIP mode\n");

The attempts to make fnic_fip_queue a single instance for the driver
while it's being created in probe look awkward anyway, why is this not
created in fnic_init_module like the event workqueue?

Signed-off-by: Chris Leech &lt;cleech@redhat.com&gt;
Tested-by: Anantha Tungarakodi &lt;atungara@cisco.com&gt;
Acked-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I hit this during driver probe with the latest fnic updates (this trace
is from a backport into a distro kernel, but the issue is the same).

&gt; BUG: sleeping function called from invalid context at mm/slab.c:3113
&gt; in_atomic(): 0, irqs_disabled(): 1, pid: 610, name: work_for_cpu
&gt; INFO: lockdep is turned off.
&gt; irq event stamp: 0
&gt; hardirqs last  enabled at (0): [&lt;(null)&gt;] (null)
&gt; hardirqs last disabled at (0): [&lt;ffffffff81070aa5&gt;]
&gt; copy_process+0x5e5/0x1670
&gt; softirqs last  enabled at (0): [&lt;ffffffff81070aa5&gt;]
&gt; copy_process+0x5e5/0x1670
&gt; softirqs last disabled at (0): [&lt;(null)&gt;] (null)
&gt; Pid: 610, comm: work_for_cpu Not tainted
&gt; Call Trace:
&gt;  [&lt;ffffffff810b2d10&gt;] ? print_irqtrace_events+0xd0/0xe0
&gt;  [&lt;ffffffff8105c1a7&gt;] ? __might_sleep+0xf7/0x130
&gt;  [&lt;ffffffff81184efb&gt;] ? kmem_cache_alloc_trace+0x20b/0x2d0
&gt;  [&lt;ffffffff8109709e&gt;] ? __create_workqueue_key+0x3e/0x1d0
&gt;  [&lt;ffffffff8109709e&gt;] ? __create_workqueue_key+0x3e/0x1d0
&gt;  [&lt;ffffffffa00c101c&gt;] ? fnic_probe+0x977/0x11aa [fnic]
&gt;  [&lt;ffffffffa00c1048&gt;] ? fnic_probe+0x9a3/0x11aa [fnic]
&gt;  [&lt;ffffffff81096f00&gt;] ? do_work_for_cpu+0x0/0x30
&gt;  [&lt;ffffffff812c6da7&gt;] ? local_pci_probe+0x17/0x20
&gt;  [&lt;ffffffff81096f18&gt;] ? do_work_for_cpu+0x18/0x30
&gt;  [&lt;ffffffff8109cdc6&gt;] ? kthread+0x96/0xa0
&gt;  [&lt;ffffffff8100c1ca&gt;] ? child_rip+0xa/0x20
&gt;  [&lt;ffffffff81550f80&gt;] ? _spin_unlock_irq+0x30/0x40
&gt;  [&lt;ffffffff8100bb10&gt;] ? restore_args+0x0/0x30
&gt;  [&lt;ffffffff8109cd30&gt;] ? kthread+0x0/0xa0
&gt;  [&lt;ffffffff8100c1c0&gt;] ? child_rip+0x0/0x20

The problem is in this hunk of "FIP VLAN Discovery Feature Support"
(d3c995f1dcf938f1084388d92b8fb97bec366566)

create_singlethreaded_workqueue cannot be called with irqs disabled

@@ -620,7 +634,29 @@ static int __devinit fnic_probe(struct pci_dev
*pdev,
        vnic_dev_packet_filter(fnic-&gt;vdev, 1, 1, 0, 0, 0);
        vnic_dev_add_addr(fnic-&gt;vdev, FIP_ALL_ENODE_MACS);
        vnic_dev_add_addr(fnic-&gt;vdev, fnic-&gt;ctlr.ctl_src_addr);
+       fnic-&gt;set_vlan = fnic_set_vlan;
        fcoe_ctlr_init(&amp;fnic-&gt;ctlr, FIP_MODE_AUTO);
+       setup_timer(&amp;fnic-&gt;fip_timer, fnic_fip_notify_timer,
+                           (unsigned long)fnic);
+       spin_lock_init(&amp;fnic-&gt;vlans_lock);
+       INIT_WORK(&amp;fnic-&gt;fip_frame_work, fnic_handle_fip_frame);
+       INIT_WORK(&amp;fnic-&gt;event_work, fnic_handle_event);
+       skb_queue_head_init(&amp;fnic-&gt;fip_frame_queue);
+       spin_lock_irqsave(&amp;fnic_list_lock, flags);
+       if (!fnic_fip_queue) {
+           fnic_fip_queue =
+               create_singlethread_workqueue("fnic_fip_q");
+           if (!fnic_fip_queue) {
+               spin_unlock_irqrestore(&amp;fnic_list_lock, flags);
+               printk(KERN_ERR PFX "fnic FIP work queue "
+                        "create failed\n");
+               err = -ENOMEM;
+               goto err_out_free_max_pool;
+           }
+       }
+       spin_unlock_irqrestore(&amp;fnic_list_lock, flags);
+       INIT_LIST_HEAD(&amp;fnic-&gt;evlist);
+       INIT_LIST_HEAD(&amp;fnic-&gt;vlans);
    } else {
        shost_printk(KERN_INFO, fnic-&gt;lport-&gt;host,
                 "firmware uses non-FIP mode\n");

The attempts to make fnic_fip_queue a single instance for the driver
while it's being created in probe look awkward anyway, why is this not
created in fnic_init_module like the event workqueue?

Signed-off-by: Chris Leech &lt;cleech@redhat.com&gt;
Tested-by: Anantha Tungarakodi &lt;atungara@cisco.com&gt;
Acked-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi</title>
<updated>2013-07-04T19:30:30+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-07-04T19:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=84cbd7222b2b00dcddef3103203986b3d59c836a'/>
<id>84cbd7222b2b00dcddef3103203986b3d59c836a</id>
<content type='text'>
Pull first round of SCSI updates from James Bottomley:
 "The patch set is mostly driver updates (usf, zfcp, lpfc, mpt2sas,
  megaraid_sas, bfa, ipr) and a few bug fixes.  Also of note is that the
  Buslogic driver has been rewritten to a better coding style and 64 bit
  support added.  We also removed the libsas limitation on 16 bytes for
  the command size (currently no drivers make use of this)"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (101 commits)
  [SCSI] megaraid: minor cut and paste error fixed.
  [SCSI] ufshcd-pltfrm: remove unnecessary dma_set_coherent_mask() call
  [SCSI] ufs: fix register address in UIC error interrupt handling
  [SCSI] ufshcd-pltfrm: add missing empty slot in ufs_of_match[]
  [SCSI] ufs: use devres functions for ufshcd
  [SCSI] ufs: Fix the response UPIU length setting
  [SCSI] ufs: rework link start-up process
  [SCSI] ufs: remove version check before IS reg clear
  [SCSI] ufs: amend interrupt configuration
  [SCSI] ufs: wrap the i/o access operations
  [SCSI] storvsc: Update the storage protocol to win8 level
  [SCSI] storvsc: Increase the value of scsi timeout for storvsc devices
  [SCSI] MAINTAINERS: Add myself as the maintainer for BusLogic SCSI driver
  [SCSI] BusLogic: Port driver to 64-bit.
  [SCSI] BusLogic: Fix style issues
  [SCSI] libiscsi: Added new boot entries in the session sysfs
  [SCSI] aacraid: Fix for arrays are going offline in the system. System hangs
  [SCSI] ipr: IOA Status Code(IOASC) update
  [SCSI] sd: Update WRITE SAME heuristics
  [SCSI] fnic: potential dead lock in fnic_is_abts_pending()
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull first round of SCSI updates from James Bottomley:
 "The patch set is mostly driver updates (usf, zfcp, lpfc, mpt2sas,
  megaraid_sas, bfa, ipr) and a few bug fixes.  Also of note is that the
  Buslogic driver has been rewritten to a better coding style and 64 bit
  support added.  We also removed the libsas limitation on 16 bytes for
  the command size (currently no drivers make use of this)"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (101 commits)
  [SCSI] megaraid: minor cut and paste error fixed.
  [SCSI] ufshcd-pltfrm: remove unnecessary dma_set_coherent_mask() call
  [SCSI] ufs: fix register address in UIC error interrupt handling
  [SCSI] ufshcd-pltfrm: add missing empty slot in ufs_of_match[]
  [SCSI] ufs: use devres functions for ufshcd
  [SCSI] ufs: Fix the response UPIU length setting
  [SCSI] ufs: rework link start-up process
  [SCSI] ufs: remove version check before IS reg clear
  [SCSI] ufs: amend interrupt configuration
  [SCSI] ufs: wrap the i/o access operations
  [SCSI] storvsc: Update the storage protocol to win8 level
  [SCSI] storvsc: Increase the value of scsi timeout for storvsc devices
  [SCSI] MAINTAINERS: Add myself as the maintainer for BusLogic SCSI driver
  [SCSI] BusLogic: Port driver to 64-bit.
  [SCSI] BusLogic: Fix style issues
  [SCSI] libiscsi: Added new boot entries in the session sysfs
  [SCSI] aacraid: Fix for arrays are going offline in the system. System hangs
  [SCSI] ipr: IOA Status Code(IOASC) update
  [SCSI] sd: Update WRITE SAME heuristics
  [SCSI] fnic: potential dead lock in fnic_is_abts_pending()
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>fnic: switch to fixed_size_llseek()</title>
<updated>2013-06-29T08:57:31+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2013-06-17T13:44:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=eb5881d37fe2c8c43c92bb7f2c87fba90a2103f2'/>
<id>eb5881d37fe2c8c43c92bb7f2c87fba90a2103f2</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] fnic: potential dead lock in fnic_is_abts_pending()</title>
<updated>2013-06-27T00:41:44+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2013-05-30T07:50:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5d65f91896197bd047f97ed8e7792b06de491eac'/>
<id>5d65f91896197bd047f97ed8e7792b06de491eac</id>
<content type='text'>
There is an unlock missing if the == FNIC_IOREQ_ABTS_PENDING is
false.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is an unlock missing if the == FNIC_IOREQ_ABTS_PENDING is
false.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>lseek(fd, n, SEEK_END) does *not* go to eof - n</title>
<updated>2013-06-16T18:10:53+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@ZenIV.linux.org.uk</email>
</author>
<published>2013-06-16T17:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8177a9d79c0e942dcac3312f15585d0344d505a5'/>
<id>8177a9d79c0e942dcac3312f15585d0344d505a5</id>
<content type='text'>
When you copy some code, you are supposed to read it.  If nothing else,
there's a chance to spot and fix an obvious bug instead of sharing it...

X-Song: "I Got It From Agnes", by Tom Lehrer
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
[ Tom Lehrer? You're dating yourself, Al ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When you copy some code, you are supposed to read it.  If nothing else,
there's a chance to spot and fix an obvious bug instead of sharing it...

X-Song: "I Got It From Agnes", by Tom Lehrer
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
[ Tom Lehrer? You're dating yourself, Al ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] fnic: Incremented driver version</title>
<updated>2013-05-02T14:32:24+00:00</updated>
<author>
<name>Hiral Patel</name>
<email>hiralpat@cisco.com</email>
</author>
<published>2013-02-26T00:18:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=62271dbda7e83ea7c492c1a2c45bf5e02b072b40'/>
<id>62271dbda7e83ea7c492c1a2c45bf5e02b072b40</id>
<content type='text'>
Signed-off-by: Brian Uchino &lt;buchino@cisco.com&gt;
Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Brian Uchino &lt;buchino@cisco.com&gt;
Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] fnic: Kernel panic due to FIP mode misconfiguration</title>
<updated>2013-05-02T14:32:23+00:00</updated>
<author>
<name>Hiral Patel</name>
<email>hiralpat@cisco.com</email>
</author>
<published>2013-02-26T00:18:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d7fadce335fa4d38868f331c9265b139e797986f'/>
<id>d7fadce335fa4d38868f331c9265b139e797986f</id>
<content type='text'>
If switch configured in FIP and adapter configured in non-fip mode, driver
panics while queueing FIP frame in non-existing fip_frame_queue. Added config
check before queueing FIP frame in misconfiguration case to avoid kernel panic.

Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If switch configured in FIP and adapter configured in non-fip mode, driver
panics while queueing FIP frame in non-existing fip_frame_queue. Added config
check before queueing FIP frame in misconfiguration case to avoid kernel panic.

Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] fnic: FIP VLAN Discovery Feature Support</title>
<updated>2013-05-02T14:30:40+00:00</updated>
<author>
<name>Hiral Patel</name>
<email>hiralpat@cisco.com</email>
</author>
<published>2013-02-26T00:18:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d3c995f1dcf938f1084388d92b8fb97bec366566'/>
<id>d3c995f1dcf938f1084388d92b8fb97bec366566</id>
<content type='text'>
FIP VLAN discovery discovers the FCoE VLAN that will be used by all other FIP
protocols as well as by the FCoE encapsulation for Fibre Channel payloads on
the established virtual link. One of the goals of FC-BB-5 was to be as
nonintrusive as possible on initiators and targets, and therefore FIP VLAN
discovery occurs in the native VLAN used by the initiator or target to
exchange Ethernet traffic. The FIP VLAN discovery protocol is the only FIP
protocol running on the native VLAN; all other FIP protocols run on the
discovered FCoE VLANs.

If an administrator has manually configured FCoE VLANs on ENodes and FCFs,
there is no need to use this protocol. FIP and FCoE will run over the
configured VLANs.

An ENode without FCoE VLANs configuration would use this automated discovery
protocol to discover over which VLANs FCoE is running.

The ENode sends a FIP VLAN discovery request to a multicast MAC address called
All-FCF-MACs, which is a multicast MAC address to which all FCFs listen.

All FCFs that can be reached in the native VLAN of the ENode are expected to
respond on the same VLAN with a response that lists one or more FCoE VLANs
that are available for the ENode's VN_Port login. This protocol has the sole
purpose of allowing the ENode to discover all the available FCoE VLANs.

Now the ENode may enable a subset of these VLANs for FCoE Running the FIP
protocol in these VLANs on a per VLAN basis. And FCoE data transactions also
would occur on this VLAN. Hence, Except for FIP VLAN discovery, all other FIP
and FCoE traffic runs on the selected FCoE VLAN.  Its only the FIP VLAN
Discovery protocol that is permitted to run on the Default native VLAN of the
system.

[**** NOTE ****]
We are working on moving this feature definitions and functionality to libfcoe
module. We need this patch to be approved, as Suse is looking forward to merge
this feature in SLES 11 SP3 release.  Once this patch is approved, we will
submit patch which should move vlan discovery feature to libfoce.

[Fengguang Wu &lt;fengguang.wu@intel.com&gt;: kmalloc cast removal]
Signed-off-by: Anantha Prakash T &lt;atungara@cisco.com&gt;
Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FIP VLAN discovery discovers the FCoE VLAN that will be used by all other FIP
protocols as well as by the FCoE encapsulation for Fibre Channel payloads on
the established virtual link. One of the goals of FC-BB-5 was to be as
nonintrusive as possible on initiators and targets, and therefore FIP VLAN
discovery occurs in the native VLAN used by the initiator or target to
exchange Ethernet traffic. The FIP VLAN discovery protocol is the only FIP
protocol running on the native VLAN; all other FIP protocols run on the
discovered FCoE VLANs.

If an administrator has manually configured FCoE VLANs on ENodes and FCFs,
there is no need to use this protocol. FIP and FCoE will run over the
configured VLANs.

An ENode without FCoE VLANs configuration would use this automated discovery
protocol to discover over which VLANs FCoE is running.

The ENode sends a FIP VLAN discovery request to a multicast MAC address called
All-FCF-MACs, which is a multicast MAC address to which all FCFs listen.

All FCFs that can be reached in the native VLAN of the ENode are expected to
respond on the same VLAN with a response that lists one or more FCoE VLANs
that are available for the ENode's VN_Port login. This protocol has the sole
purpose of allowing the ENode to discover all the available FCoE VLANs.

Now the ENode may enable a subset of these VLANs for FCoE Running the FIP
protocol in these VLANs on a per VLAN basis. And FCoE data transactions also
would occur on this VLAN. Hence, Except for FIP VLAN discovery, all other FIP
and FCoE traffic runs on the selected FCoE VLAN.  Its only the FIP VLAN
Discovery protocol that is permitted to run on the Default native VLAN of the
system.

[**** NOTE ****]
We are working on moving this feature definitions and functionality to libfcoe
module. We need this patch to be approved, as Suse is looking forward to merge
this feature in SLES 11 SP3 release.  Once this patch is approved, we will
submit patch which should move vlan discovery feature to libfoce.

[Fengguang Wu &lt;fengguang.wu@intel.com&gt;: kmalloc cast removal]
Signed-off-by: Anantha Prakash T &lt;atungara@cisco.com&gt;
Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] fnic: Fnic Trace Utility</title>
<updated>2013-02-22T17:32:07+00:00</updated>
<author>
<name>Hiral Patel</name>
<email>hiralpat@cisco.com</email>
</author>
<published>2013-02-13T01:01:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4d7007b49d523d8f954ae047118d82c130f673ce'/>
<id>4d7007b49d523d8f954ae047118d82c130f673ce</id>
<content type='text'>
Fnic Trace utility is a tracing functionality built directly into fnic driver
to trace events. The benefit that trace buffer brings to fnic driver is the
ability to see what it happening inside the fnic driver. It also provides the
capability to trace every IO event inside fnic driver to debug panics, hangs
and potentially IO corruption issues. This feature makes it easy to find
problems in fnic driver and it also helps in tracking down strange bugs in a
more manageable way. Trace buffer is shared across all fnic instances for
this implementation.

Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fnic Trace utility is a tracing functionality built directly into fnic driver
to trace events. The benefit that trace buffer brings to fnic driver is the
ability to see what it happening inside the fnic driver. It also provides the
capability to trace every IO event inside fnic driver to debug panics, hangs
and potentially IO corruption issues. This feature makes it easy to find
problems in fnic driver and it also helps in tracking down strange bugs in a
more manageable way. Trace buffer is shared across all fnic instances for
this implementation.

Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] fnic: New debug flags and debug log messages</title>
<updated>2013-02-22T17:31:09+00:00</updated>
<author>
<name>Hiral Patel</name>
<email>hiralpat@cisco.com</email>
</author>
<published>2013-02-13T01:01:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=14eb5d905d16ecd33e5e3113eb44cfa2bb47e7d7'/>
<id>14eb5d905d16ecd33e5e3113eb44cfa2bb47e7d7</id>
<content type='text'>
Added new fnic debug flags for identifying IO state at every stage of IO while
debugging and also added more log messages for better debugging capability.

Signed-off-by: Sesidhar Baddela &lt;sebaddel@cisco.com&gt;
Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added new fnic debug flags for identifying IO state at every stage of IO while
debugging and also added more log messages for better debugging capability.

Signed-off-by: Sesidhar Baddela &lt;sebaddel@cisco.com&gt;
Signed-off-by: Hiral Patel &lt;hiralpat@cisco.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
