<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/scsi/fcoe, branch linux-2.6.35.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.35.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.35.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2010-05-25T15:07:02+00:00</updated>
<entry>
<title>kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN</title>
<updated>2010-05-25T15:07:02+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2010-05-24T21:33:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4be929be34f9bdeffa40d815d32d7d60d2c7f03b'/>
<id>urn:sha1:4be929be34f9bdeffa40d815d32d7d60d2c7f03b</id>
<content type='text'>
- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not
  USHORT_MAX/SHORT_MAX/SHORT_MIN.

- Make SHRT_MIN of type s16, not int, for consistency.

[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]
[akpm@linux-foundation.org: fix security/keys/keyring.c]
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6</title>
<updated>2010-05-21T14:19:18+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-05-21T14:19:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=33cf23b0a535475aead57707cb9f4fe135a93544'/>
<id>urn:sha1:33cf23b0a535475aead57707cb9f4fe135a93544</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (182 commits)
  [SCSI] aacraid: add an ifdef'd device delete case instead of taking the device offline
  [SCSI] aacraid: prohibit access to array container space
  [SCSI] aacraid: add support for handling ATA pass-through commands.
  [SCSI] aacraid: expose physical devices for models with newer firmware
  [SCSI] aacraid: respond automatically to volumes added by config tool
  [SCSI] fcoe: fix fcoe module ref counting
  [SCSI] libfcoe: FIP Keep-Alive messages for VPorts are sent with incorrect port_id and wwn
  [SCSI] libfcoe: Fix incorrect MAC address clearing
  [SCSI] fcoe: fix a circular locking issue with rtnl and sysfs mutex
  [SCSI] libfc: Move the port_id into lport
  [SCSI] fcoe: move link speed checking into its own routine
  [SCSI] libfc: Remove extra pointer check
  [SCSI] libfc: Remove unused fc_get_host_port_type
  [SCSI] fcoe: fixes wrong error exit in fcoe_create
  [SCSI] libfc: set seq_id for incoming sequence
  [SCSI] qla2xxx: Updates to ISP82xx support.
  [SCSI] qla2xxx: Optionally disable target reset.
  [SCSI] qla2xxx: ensure flash operation and host reset via sg_reset are mutually exclusive
  [SCSI] qla2xxx: Silence bogus warning by gcc for wrap and did.
  [SCSI] qla2xxx: T10 DIF support added.
  ...
</content>
</entry>
<entry>
<title>[SCSI] fcoe: fix fcoe module ref counting</title>
<updated>2010-05-17T02:22:40+00:00</updated>
<author>
<name>Vasu Dev</name>
<email>vasu.dev@intel.com</email>
</author>
<published>2010-05-07T22:19:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=15af974dcb22914f29aeb9a9cac5879b0dc3860e'/>
<id>urn:sha1:15af974dcb22914f29aeb9a9cac5879b0dc3860e</id>
<content type='text'>
Currently fcoe module ref count is used for tracking
active fcoe instances, it means each fcoe instance create
increments the count while destroy dec the count.

The dec is done only if fcoe instance is destroyed from
/sysfs but not if destroyed due to NETDEV_UNREGISTER event.
So this patch moves only module_put doing dec to common
fcoe_if_destroy function, so that dec would occur on ever
fcoe instance destroy.

Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfcoe: FIP Keep-Alive messages for VPorts are sent with incorrect port_id and wwn</title>
<updated>2010-05-17T02:22:38+00:00</updated>
<author>
<name>Kaladhar Musunuru</name>
<email>kmusunuru@juniper.net</email>
</author>
<published>2010-05-07T22:18:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fb83153d7308e1344f1d4a2e287b6aaab2f6d14c'/>
<id>urn:sha1:fb83153d7308e1344f1d4a2e287b6aaab2f6d14c</id>
<content type='text'>
All VNports are sending FIP Keep-Alive messages with port_id and wwpn of the parent host instead of it's own port_id and wwpn. Standard FIP descriptor type 11 indicates to send own port_id and port_name.

Signed-off-by: Kaladhar Musunuru &lt;kmusunuru@juniper.net&gt;
Acked-by: Joe Eykholt &lt;jeykholt@cisco.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfcoe: Fix incorrect MAC address clearing</title>
<updated>2010-05-17T02:22:37+00:00</updated>
<author>
<name>Kaladhar Musunuru</name>
<email>kmusunuru@juniper.net</email>
</author>
<published>2010-05-07T22:18:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8b889e4f95545241fe90aa426ce9b7395d13ae06'/>
<id>urn:sha1:8b889e4f95545241fe90aa426ce9b7395d13ae06</id>
<content type='text'>
Fix typo in memset. Incorrect length parameter to memset resulting non-zero MAC address in FPMA messages.

Signed-off-by: Kaladhar Musunuru &lt;kmusunuru@juniper.net&gt;
Acked-by: Joe Eykholt &lt;jeykholt@cisco.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] fcoe: fix a circular locking issue with rtnl and sysfs mutex</title>
<updated>2010-05-17T02:22:35+00:00</updated>
<author>
<name>Vasu Dev</name>
<email>vasu.dev@intel.com</email>
</author>
<published>2010-05-07T22:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=34ce27bcf96f5f366e1fa8c4729ffc8a55de4cc3'/>
<id>urn:sha1:34ce27bcf96f5f366e1fa8c4729ffc8a55de4cc3</id>
<content type='text'>
Currently rtnl mutex is grabbed during fcoe create, destroy, enable
and disable operations while sysfs s_active read mutex is already
held, but simultaneously other networking events could try grabbing
write s_active mutex while rtnl is already held and that is causing
circular lock warning, its detailed log pasted at end.

In this log, the rtnl was held before write s_active during device
renaming but there are more such cases as Joe reported another
instance with tg3 open at:-
http://www.open-fcoe.org/pipermail/devel/2010-February/008263.html

This patch fixes this issue by not waiting for rtnl mutex during
fcoe ops, that means if rtnl mutex is not immediately available
then restart_syscall() to allow others waiting in line to
grab s_active along with rtnl mutex to finish their work first
under these mutex.

Currently rtnl mutex was grabbed twice during fcoe_destroy call flow,
second grab was from fcoe_if_destroy called from fcoe_destroy after
dropping rtnl mutex before calling fcoe_if_destroy, so instead made
fcoe_if_destroy always called with rtnl mutex held to have this mutex
grabbed only once in this code path.

However left matching rtnl_unlock as-is in its original place as it was
dropped there for good reason since very next call causes synchronous
fip worker flush and if rtnl mutex is still held before flush
then that would cause new circular warning between fip-&gt;recv_work and
rtnl mutex, I've added detailed comment for this on fcoe_if_destroy
calling and rtnl muxtes unlocking.

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.33.1linux-stable-2.6.33 #1
-------------------------------------------------------
fcoemon/18823 is trying to acquire lock:
(fcoe_config_mutex){+.+.+.}, at: [&lt;ffffffffa02ba5fc&gt;] fcoe_create+0x27/0x4f7
[fcoe]

but task is already holding lock:
(s_active){++++.+}, at: [&lt;ffffffff8115ef93&gt;] sysfs_get_active_two+0x31/0x48

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 (s_active){++++.+}:
   [&lt;ffffffff81077bdb&gt;] __lock_acquire+0xb73/0xd2b
   [&lt;ffffffff81077e60&gt;] lock_acquire+0xcd/0xf1
   [&lt;ffffffff8115e5df&gt;] sysfs_deactivate+0x8b/0xe0
   [&lt;ffffffff8115edfb&gt;] sysfs_addrm_finish+0x36/0x55
   [&lt;ffffffff8115d0cc&gt;] sysfs_hash_and_remove+0x53/0x6a
   [&lt;ffffffff8115f353&gt;] sysfs_remove_link+0x21/0x23
   [&lt;ffffffff812b6c93&gt;] device_rename+0x99/0xcb
   [&lt;ffffffff8138dbf0&gt;] dev_change_name+0xd5/0x1d2
   [&lt;ffffffff8138deee&gt;] dev_ifsioc+0x201/0x2ac
   [&lt;ffffffff8138e4ba&gt;] dev_ioctl+0x521/0x632
   [&lt;ffffffff81379e43&gt;] sock_do_ioctl+0x3d/0x47
   [&lt;ffffffff8137a254&gt;] sock_ioctl+0x213/0x222
   [&lt;ffffffff81114614&gt;] vfs_ioctl+0x32/0xa6
   [&lt;ffffffff81114b94&gt;] do_vfs_ioctl+0x490/0x4d6
   [&lt;ffffffff81114c30&gt;] sys_ioctl+0x56/0x79
   [&lt;ffffffff81009b42&gt;] system_call_fastpath+0x16/0x1b

-&gt; #1 (rtnl_mutex){+.+.+.}:
   [&lt;ffffffff81077bdb&gt;] __lock_acquire+0xb73/0xd2b
   [&lt;ffffffff81077e60&gt;] lock_acquire+0xcd/0xf1
   [&lt;ffffffff8142f343&gt;] __mutex_lock_common+0x4b/0x383
   [&lt;ffffffff8142f73f&gt;] mutex_lock_nested+0x3e/0x43
   [&lt;ffffffff813959f9&gt;] rtnl_lock+0x17/0x19
   [&lt;ffffffff8138ccae&gt;] register_netdevice_notifier+0x1e/0x19b
   [&lt;ffffffffa02580c1&gt;] 0xffffffffa02580c1
   [&lt;ffffffff81002069&gt;] do_one_initcall+0x5e/0x15e
   [&lt;ffffffff81084094&gt;] sys_init_module+0xd8/0x23a
   [&lt;ffffffff81009b42&gt;] system_call_fastpath+0x16/0x1b

-&gt; #0 (fcoe_config_mutex){+.+.+.}:
   [&lt;ffffffff81077a85&gt;] __lock_acquire+0xa1d/0xd2b
   [&lt;ffffffff81077e60&gt;] lock_acquire+0xcd/0xf1
   [&lt;ffffffff8142f343&gt;] __mutex_lock_common+0x4b/0x383
   [&lt;ffffffff8142f73f&gt;] mutex_lock_nested+0x3e/0x43
   [&lt;ffffffffa02ba5fc&gt;] fcoe_create+0x27/0x4f7 [fcoe]
   [&lt;ffffffff810635b1&gt;] param_attr_store+0x27/0x35
   [&lt;ffffffff81063619&gt;] module_attr_store+0x26/0x2a
   [&lt;ffffffff8115dae3&gt;] sysfs_write_file+0x108/0x144
   [&lt;ffffffff81107bd1&gt;] vfs_write+0xae/0x10b
   [&lt;ffffffff81107cee&gt;] sys_write+0x4a/0x6e
   [&lt;ffffffff81009b42&gt;] system_call_fastpath+0x16/0x1b

other info that might help us debug this:

3 locks held by fcoemon/18823:
#0:  (&amp;buffer-&gt;mutex){+.+.+.}, at: [&lt;ffffffff8115da17&gt;]
sysfs_write_file+0x3c/0x144
#1:  (s_active){++++.+}, at: [&lt;ffffffff8115ef86&gt;]
sysfs_get_active_two+0x24/0x48
#2:  (s_active){++++.+}, at: [&lt;ffffffff8115ef93&gt;]
sysfs_get_active_two+0x31/0x48

stack backtrace:
Pid: 18823, comm: fcoemon Tainted: G        W  2.6.33.1linux-stable-2.6.33 #1
Call Trace:
[&lt;ffffffff81076c38&gt;] print_circular_bug+0xa8/0xb6
[&lt;ffffffff81077a85&gt;] __lock_acquire+0xa1d/0xd2b
[&lt;ffffffffa02ba5fc&gt;] ? fcoe_create+0x27/0x4f7 [fcoe]
[&lt;ffffffff81077e60&gt;] lock_acquire+0xcd/0xf1
[&lt;ffffffffa02ba5fc&gt;] ? fcoe_create+0x27/0x4f7 [fcoe]
[&lt;ffffffffa02ba5fc&gt;] ? fcoe_create+0x27/0x4f7 [fcoe]
[&lt;ffffffff8142f343&gt;] __mutex_lock_common+0x4b/0x383
[&lt;ffffffffa02ba5fc&gt;] ? fcoe_create+0x27/0x4f7 [fcoe]
[&lt;ffffffff8106ac70&gt;] ? cpu_clock+0x43/0x5e
[&lt;ffffffff81074e12&gt;] ? lockstat_clock+0x11/0x13
[&lt;ffffffff81074e40&gt;] ? lock_release_holdtime+0x2c/0x127
[&lt;ffffffff8115ef93&gt;] ? sysfs_get_active_two+0x31/0x48
[&lt;ffffffff8142f73f&gt;] mutex_lock_nested+0x3e/0x43
[&lt;ffffffffa02ba5fc&gt;] fcoe_create+0x27/0x4f7 [fcoe]
[&lt;ffffffff810635b1&gt;] param_attr_store+0x27/0x35
[&lt;ffffffff81063619&gt;] module_attr_store+0x26/0x2a
[&lt;ffffffff8115dae3&gt;] sysfs_write_file+0x108/0x144
[&lt;ffffffff81107bd1&gt;] vfs_write+0xae/0x10b
[&lt;ffffffff81076596&gt;] ? trace_hardirqs_on_caller+0x125/0x150
[&lt;ffffffff81107cee&gt;] sys_write+0x4a/0x6e
[&lt;ffffffff81009b42&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: Move the port_id into lport</title>
<updated>2010-05-17T02:22:34+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2010-05-07T22:18:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7b2787ec15b9d1c2f716da61b0eec21a3f5e6520'/>
<id>urn:sha1:7b2787ec15b9d1c2f716da61b0eec21a3f5e6520</id>
<content type='text'>
This patch creates a port_id member in struct fc_lport.
This allows libfc to just deal with fc_lport instances
instead of calling into the fc_host to get the port_id.

This change helps in only using symbols necessary for
operation from the libfc structures. libfc still needs
to change the fc_host_port_id() if the port_id changes
so the presentation layer (scsi_transport_fc) can provide
the user with the correct value, but libfc shouldn't
rely on the presentation layer for operational values.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] fcoe: move link speed checking into its own routine</title>
<updated>2010-05-17T02:22:32+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2010-05-07T22:18:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5e4f8fe7b58f4da5043b7f219fe9193cddd9262e'/>
<id>urn:sha1:5e4f8fe7b58f4da5043b7f219fe9193cddd9262e</id>
<content type='text'>
It doesn't make sense to update the link speed in the is_link_ok()
routine. Move it to it's own routine and acquire the device speed
when we're configuring the device initially as well as if there are
any netdev events received.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] libfc: Remove extra pointer check</title>
<updated>2010-05-17T02:22:30+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2010-05-07T22:18:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d29510a2968f87eaf455c606cd8802b6f8a0774b'/>
<id>urn:sha1:d29510a2968f87eaf455c606cd8802b6f8a0774b</id>
<content type='text'>
The fcf pointer is checked again after this verification
making the first check redundant. Remote the first check.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] fcoe: fixes wrong error exit in fcoe_create</title>
<updated>2010-05-17T02:22:27+00:00</updated>
<author>
<name>Vasu Dev</name>
<email>vasu.dev@intel.com</email>
</author>
<published>2010-05-07T22:18:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=721cafafb66f57b461226aa197997f3e5b296f91'/>
<id>urn:sha1:721cafafb66f57b461226aa197997f3e5b296f91</id>
<content type='text'>
fcoe_create exits using out_nodev label when module is not
yet LIVE but this exit path unlocks the rtnl_lock though
rtnl lock was not held in this case.

So this patch replaces out_nodev with out_nomod to exit
w/o unlocking rtnl_lock.

Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
</feed>
