<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/scsi, branch v3.9-rc6</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>libfcoe: Fix fcoe_sysfs VN2VN mode</title>
<updated>2013-03-25T23:04:22+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2013-03-25T18:00:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0db0e377ab5be5d507a2fca3d78215cd2e83b974'/>
<id>0db0e377ab5be5d507a2fca3d78215cd2e83b974</id>
<content type='text'>
The libfc discovery layer is being initialized in the
'create' paths for both legacy libfcoe module parameters
and fcoe_sysfs control interfaces. The problem is that
for VN2VN mode the discovery layer is initialized as if
it were in 'fabric' mode and it is not re-configured when
the mode is changed to 'vn2vn'.

This patch splits out code that needs to be initialized
once and code that can, and should be, re-configured when
the mode changes. Additionally this patch makes that change
so that the discovery layer can be reconfigured to the
libfcoe implementation when in 'vn2vn' mode.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
Reviewed-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The libfc discovery layer is being initialized in the
'create' paths for both legacy libfcoe module parameters
and fcoe_sysfs control interfaces. The problem is that
for VN2VN mode the discovery layer is initialized as if
it were in 'fabric' mode and it is not re-configured when
the mode is changed to 'vn2vn'.

This patch splits out code that needs to be initialized
once and code that can, and should be, re-configured when
the mode changes. Additionally this patch makes that change
so that the discovery layer can be reconfigured to the
libfcoe implementation when in 'vn2vn' mode.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
Reviewed-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libfc, fcoe, bnx2fc: Split fc_disc_init into fc_disc_{init, config}</title>
<updated>2013-03-25T23:03:03+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2013-03-25T18:00:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0807619d3c64d935c257a377ac86982c777f969c'/>
<id>0807619d3c64d935c257a377ac86982c777f969c</id>
<content type='text'>
Split discovery initialization in code that is setup once (fcoe_disc_init)
and code that can be re-configured (fcoe_disc_config).

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
Reviewed-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Split discovery initialization in code that is setup once (fcoe_disc_init)
and code that can be re-configured (fcoe_disc_config).

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
Reviewed-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libfc, fcoe, bnx2fc: Always use fcoe_disc_init for discovery layer initialization</title>
<updated>2013-03-25T23:01:10+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2013-03-25T18:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8a9a71381208b2364a2d12b0d257ae333917a1bc'/>
<id>8a9a71381208b2364a2d12b0d257ae333917a1bc</id>
<content type='text'>
Currently libfcoe is doing some libfc discovery layer initialization outside of
libfc. This patch moves this code into libfc and sets up a split in discovery
(one time) initialization code and (re-configurable) settings that will come in
the next patch.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
Reviewed-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently libfcoe is doing some libfc discovery layer initialization outside of
libfc. This patch moves this code into libfc and sets up a split in discovery
(one time) initialization code and (re-configurable) settings that will come in
the next patch.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
Reviewed-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fcoe: Fix deadlock between create and destroy paths</title>
<updated>2013-03-25T22:55:56+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2013-03-25T18:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f9c4358edb285cead00a0d6cf0644c84ee773026'/>
<id>f9c4358edb285cead00a0d6cf0644c84ee773026</id>
<content type='text'>
We can deadlock (s_active and fcoe_config_mutex) if a
port is being destroyed at the same time one is being created.

[ 4200.503113] ======================================================
[ 4200.503114] [ INFO: possible circular locking dependency detected ]
[ 4200.503116] 3.8.0-rc5+ #8 Not tainted
[ 4200.503117] -------------------------------------------------------
[ 4200.503118] kworker/3:2/2492 is trying to acquire lock:
[ 4200.503119]  (s_active#292){++++.+}, at: [&lt;ffffffff8122d20b&gt;] sysfs_addrm_finish+0x3b/0x70
[ 4200.503127]
but task is already holding lock:
[ 4200.503128]  (fcoe_config_mutex){+.+.+.}, at: [&lt;ffffffffa02f3338&gt;] fcoe_destroy_work+0xe8/0x120 [fcoe]
[ 4200.503133]
which lock already depends on the new lock.

[ 4200.503135]
the existing dependency chain (in reverse order) is:
[ 4200.503136]
-&gt; #1 (fcoe_config_mutex){+.+.+.}:
[ 4200.503139]        [&lt;ffffffff810c7711&gt;] lock_acquire+0xa1/0x140
[ 4200.503143]        [&lt;ffffffff816ca7be&gt;] mutex_lock_nested+0x6e/0x360
[ 4200.503146]        [&lt;ffffffffa02f11bd&gt;] fcoe_enable+0x1d/0xb0 [fcoe]
[ 4200.503148]        [&lt;ffffffffa02f127d&gt;] fcoe_ctlr_enabled+0x2d/0x50 [fcoe]
[ 4200.503151]        [&lt;ffffffffa02ffbe8&gt;] store_ctlr_enabled+0x38/0x90 [libfcoe]
[ 4200.503154]        [&lt;ffffffff81424878&gt;] dev_attr_store+0x18/0x30
[ 4200.503157]        [&lt;ffffffff8122b750&gt;] sysfs_write_file+0xe0/0x150
[ 4200.503160]        [&lt;ffffffff811b334c&gt;] vfs_write+0xac/0x180
[ 4200.503162]        [&lt;ffffffff811b3692&gt;] sys_write+0x52/0xa0
[ 4200.503164]        [&lt;ffffffff816d7159&gt;] system_call_fastpath+0x16/0x1b
[ 4200.503167]
-&gt; #0 (s_active#292){++++.+}:
[ 4200.503170]        [&lt;ffffffff810c680f&gt;] __lock_acquire+0x135f/0x1c90
[ 4200.503172]        [&lt;ffffffff810c7711&gt;] lock_acquire+0xa1/0x140
[ 4200.503174]        [&lt;ffffffff8122c626&gt;] sysfs_deactivate+0x116/0x160
[ 4200.503176]        [&lt;ffffffff8122d20b&gt;] sysfs_addrm_finish+0x3b/0x70
[ 4200.503178]        [&lt;ffffffff8122b2eb&gt;] sysfs_hash_and_remove+0x5b/0xb0
[ 4200.503180]        [&lt;ffffffff8122f3d1&gt;] sysfs_remove_group+0x61/0x100
[ 4200.503183]        [&lt;ffffffff814251eb&gt;] device_remove_groups+0x3b/0x60
[ 4200.503185]        [&lt;ffffffff81425534&gt;] device_remove_attrs+0x44/0x80
[ 4200.503187]        [&lt;ffffffff81425e97&gt;] device_del+0x127/0x1c0
[ 4200.503189]        [&lt;ffffffff81425f52&gt;] device_unregister+0x22/0x60
[ 4200.503191]        [&lt;ffffffffa0300970&gt;] fcoe_ctlr_device_delete+0xe0/0xf0 [libfcoe]
[ 4200.503194]        [&lt;ffffffffa02f1b5c&gt;] fcoe_interface_cleanup+0x6c/0xa0 [fcoe]
[ 4200.503196]        [&lt;ffffffffa02f3355&gt;] fcoe_destroy_work+0x105/0x120 [fcoe]
[ 4200.503198]        [&lt;ffffffff8107ee91&gt;] process_one_work+0x1a1/0x580
[ 4200.503203]        [&lt;ffffffff81080c6e&gt;] worker_thread+0x15e/0x440
[ 4200.503205]        [&lt;ffffffff8108715a&gt;] kthread+0xea/0xf0
[ 4200.503207]        [&lt;ffffffff816d70ac&gt;] ret_from_fork+0x7c/0xb0

[ 4200.503209]
other info that might help us debug this:

[ 4200.503211]  Possible unsafe locking scenario:

[ 4200.503212]        CPU0                    CPU1
[ 4200.503213]        ----                    ----
[ 4200.503214]   lock(fcoe_config_mutex);
[ 4200.503215]                                lock(s_active#292);
[ 4200.503218]                                lock(fcoe_config_mutex);
[ 4200.503219]   lock(s_active#292);
[ 4200.503221]
 *** DEADLOCK ***

[ 4200.503223] 3 locks held by kworker/3:2/2492:
[ 4200.503224]  #0:  (fcoe){.+.+.+}, at: [&lt;ffffffff8107ee2b&gt;] process_one_work+0x13b/0x580
[ 4200.503228]  #1:  ((&amp;port-&gt;destroy_work)){+.+.+.}, at: [&lt;ffffffff8107ee2b&gt;] process_one_work+0x13b/0x580
[ 4200.503232]  #2:  (fcoe_config_mutex){+.+.+.}, at: [&lt;ffffffffa02f3338&gt;] fcoe_destroy_work+0xe8/0x120 [fcoe]
[ 4200.503236]
stack backtrace:
[ 4200.503238] Pid: 2492, comm: kworker/3:2 Not tainted 3.8.0-rc5+ #8
[ 4200.503240] Call Trace:
[ 4200.503243]  [&lt;ffffffff816c2f09&gt;] print_circular_bug+0x1fb/0x20c
[ 4200.503246]  [&lt;ffffffff810c680f&gt;] __lock_acquire+0x135f/0x1c90
[ 4200.503248]  [&lt;ffffffff810c463a&gt;] ? debug_check_no_locks_freed+0x9a/0x180
[ 4200.503250]  [&lt;ffffffff810c7711&gt;] lock_acquire+0xa1/0x140
[ 4200.503253]  [&lt;ffffffff8122d20b&gt;] ? sysfs_addrm_finish+0x3b/0x70
[ 4200.503255]  [&lt;ffffffff8122c626&gt;] sysfs_deactivate+0x116/0x160
[ 4200.503258]  [&lt;ffffffff8122d20b&gt;] ? sysfs_addrm_finish+0x3b/0x70
[ 4200.503260]  [&lt;ffffffff8122d20b&gt;] sysfs_addrm_finish+0x3b/0x70
[ 4200.503262]  [&lt;ffffffff8122b2eb&gt;] sysfs_hash_and_remove+0x5b/0xb0
[ 4200.503265]  [&lt;ffffffff8122f3d1&gt;] sysfs_remove_group+0x61/0x100
[ 4200.503273]  [&lt;ffffffff814251eb&gt;] device_remove_groups+0x3b/0x60
[ 4200.503275]  [&lt;ffffffff81425534&gt;] device_remove_attrs+0x44/0x80
[ 4200.503277]  [&lt;ffffffff81425e97&gt;] device_del+0x127/0x1c0
[ 4200.503279]  [&lt;ffffffff81425f52&gt;] device_unregister+0x22/0x60
[ 4200.503282]  [&lt;ffffffffa0300970&gt;] fcoe_ctlr_device_delete+0xe0/0xf0 [libfcoe]
[ 4200.503285]  [&lt;ffffffffa02f1b5c&gt;] fcoe_interface_cleanup+0x6c/0xa0 [fcoe]
[ 4200.503287]  [&lt;ffffffffa02f3355&gt;] fcoe_destroy_work+0x105/0x120 [fcoe]
[ 4200.503290]  [&lt;ffffffff8107ee91&gt;] process_one_work+0x1a1/0x580
[ 4200.503292]  [&lt;ffffffff8107ee2b&gt;] ? process_one_work+0x13b/0x580
[ 4200.503295]  [&lt;ffffffffa02f3250&gt;] ? fcoe_if_destroy+0x230/0x230 [fcoe]
[ 4200.503297]  [&lt;ffffffff81080c6e&gt;] worker_thread+0x15e/0x440
[ 4200.503299]  [&lt;ffffffff81080b10&gt;] ? busy_worker_rebind_fn+0x100/0x100
[ 4200.503301]  [&lt;ffffffff8108715a&gt;] kthread+0xea/0xf0
[ 4200.503304]  [&lt;ffffffff81087070&gt;] ? kthread_create_on_node+0x160/0x160
[ 4200.503306]  [&lt;ffffffff816d70ac&gt;] ret_from_fork+0x7c/0xb0
[ 4200.503308]  [&lt;ffffffff81087070&gt;] ? kthread_create_on_node+0x160/0x160

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can deadlock (s_active and fcoe_config_mutex) if a
port is being destroyed at the same time one is being created.

[ 4200.503113] ======================================================
[ 4200.503114] [ INFO: possible circular locking dependency detected ]
[ 4200.503116] 3.8.0-rc5+ #8 Not tainted
[ 4200.503117] -------------------------------------------------------
[ 4200.503118] kworker/3:2/2492 is trying to acquire lock:
[ 4200.503119]  (s_active#292){++++.+}, at: [&lt;ffffffff8122d20b&gt;] sysfs_addrm_finish+0x3b/0x70
[ 4200.503127]
but task is already holding lock:
[ 4200.503128]  (fcoe_config_mutex){+.+.+.}, at: [&lt;ffffffffa02f3338&gt;] fcoe_destroy_work+0xe8/0x120 [fcoe]
[ 4200.503133]
which lock already depends on the new lock.

[ 4200.503135]
the existing dependency chain (in reverse order) is:
[ 4200.503136]
-&gt; #1 (fcoe_config_mutex){+.+.+.}:
[ 4200.503139]        [&lt;ffffffff810c7711&gt;] lock_acquire+0xa1/0x140
[ 4200.503143]        [&lt;ffffffff816ca7be&gt;] mutex_lock_nested+0x6e/0x360
[ 4200.503146]        [&lt;ffffffffa02f11bd&gt;] fcoe_enable+0x1d/0xb0 [fcoe]
[ 4200.503148]        [&lt;ffffffffa02f127d&gt;] fcoe_ctlr_enabled+0x2d/0x50 [fcoe]
[ 4200.503151]        [&lt;ffffffffa02ffbe8&gt;] store_ctlr_enabled+0x38/0x90 [libfcoe]
[ 4200.503154]        [&lt;ffffffff81424878&gt;] dev_attr_store+0x18/0x30
[ 4200.503157]        [&lt;ffffffff8122b750&gt;] sysfs_write_file+0xe0/0x150
[ 4200.503160]        [&lt;ffffffff811b334c&gt;] vfs_write+0xac/0x180
[ 4200.503162]        [&lt;ffffffff811b3692&gt;] sys_write+0x52/0xa0
[ 4200.503164]        [&lt;ffffffff816d7159&gt;] system_call_fastpath+0x16/0x1b
[ 4200.503167]
-&gt; #0 (s_active#292){++++.+}:
[ 4200.503170]        [&lt;ffffffff810c680f&gt;] __lock_acquire+0x135f/0x1c90
[ 4200.503172]        [&lt;ffffffff810c7711&gt;] lock_acquire+0xa1/0x140
[ 4200.503174]        [&lt;ffffffff8122c626&gt;] sysfs_deactivate+0x116/0x160
[ 4200.503176]        [&lt;ffffffff8122d20b&gt;] sysfs_addrm_finish+0x3b/0x70
[ 4200.503178]        [&lt;ffffffff8122b2eb&gt;] sysfs_hash_and_remove+0x5b/0xb0
[ 4200.503180]        [&lt;ffffffff8122f3d1&gt;] sysfs_remove_group+0x61/0x100
[ 4200.503183]        [&lt;ffffffff814251eb&gt;] device_remove_groups+0x3b/0x60
[ 4200.503185]        [&lt;ffffffff81425534&gt;] device_remove_attrs+0x44/0x80
[ 4200.503187]        [&lt;ffffffff81425e97&gt;] device_del+0x127/0x1c0
[ 4200.503189]        [&lt;ffffffff81425f52&gt;] device_unregister+0x22/0x60
[ 4200.503191]        [&lt;ffffffffa0300970&gt;] fcoe_ctlr_device_delete+0xe0/0xf0 [libfcoe]
[ 4200.503194]        [&lt;ffffffffa02f1b5c&gt;] fcoe_interface_cleanup+0x6c/0xa0 [fcoe]
[ 4200.503196]        [&lt;ffffffffa02f3355&gt;] fcoe_destroy_work+0x105/0x120 [fcoe]
[ 4200.503198]        [&lt;ffffffff8107ee91&gt;] process_one_work+0x1a1/0x580
[ 4200.503203]        [&lt;ffffffff81080c6e&gt;] worker_thread+0x15e/0x440
[ 4200.503205]        [&lt;ffffffff8108715a&gt;] kthread+0xea/0xf0
[ 4200.503207]        [&lt;ffffffff816d70ac&gt;] ret_from_fork+0x7c/0xb0

[ 4200.503209]
other info that might help us debug this:

[ 4200.503211]  Possible unsafe locking scenario:

[ 4200.503212]        CPU0                    CPU1
[ 4200.503213]        ----                    ----
[ 4200.503214]   lock(fcoe_config_mutex);
[ 4200.503215]                                lock(s_active#292);
[ 4200.503218]                                lock(fcoe_config_mutex);
[ 4200.503219]   lock(s_active#292);
[ 4200.503221]
 *** DEADLOCK ***

[ 4200.503223] 3 locks held by kworker/3:2/2492:
[ 4200.503224]  #0:  (fcoe){.+.+.+}, at: [&lt;ffffffff8107ee2b&gt;] process_one_work+0x13b/0x580
[ 4200.503228]  #1:  ((&amp;port-&gt;destroy_work)){+.+.+.}, at: [&lt;ffffffff8107ee2b&gt;] process_one_work+0x13b/0x580
[ 4200.503232]  #2:  (fcoe_config_mutex){+.+.+.}, at: [&lt;ffffffffa02f3338&gt;] fcoe_destroy_work+0xe8/0x120 [fcoe]
[ 4200.503236]
stack backtrace:
[ 4200.503238] Pid: 2492, comm: kworker/3:2 Not tainted 3.8.0-rc5+ #8
[ 4200.503240] Call Trace:
[ 4200.503243]  [&lt;ffffffff816c2f09&gt;] print_circular_bug+0x1fb/0x20c
[ 4200.503246]  [&lt;ffffffff810c680f&gt;] __lock_acquire+0x135f/0x1c90
[ 4200.503248]  [&lt;ffffffff810c463a&gt;] ? debug_check_no_locks_freed+0x9a/0x180
[ 4200.503250]  [&lt;ffffffff810c7711&gt;] lock_acquire+0xa1/0x140
[ 4200.503253]  [&lt;ffffffff8122d20b&gt;] ? sysfs_addrm_finish+0x3b/0x70
[ 4200.503255]  [&lt;ffffffff8122c626&gt;] sysfs_deactivate+0x116/0x160
[ 4200.503258]  [&lt;ffffffff8122d20b&gt;] ? sysfs_addrm_finish+0x3b/0x70
[ 4200.503260]  [&lt;ffffffff8122d20b&gt;] sysfs_addrm_finish+0x3b/0x70
[ 4200.503262]  [&lt;ffffffff8122b2eb&gt;] sysfs_hash_and_remove+0x5b/0xb0
[ 4200.503265]  [&lt;ffffffff8122f3d1&gt;] sysfs_remove_group+0x61/0x100
[ 4200.503273]  [&lt;ffffffff814251eb&gt;] device_remove_groups+0x3b/0x60
[ 4200.503275]  [&lt;ffffffff81425534&gt;] device_remove_attrs+0x44/0x80
[ 4200.503277]  [&lt;ffffffff81425e97&gt;] device_del+0x127/0x1c0
[ 4200.503279]  [&lt;ffffffff81425f52&gt;] device_unregister+0x22/0x60
[ 4200.503282]  [&lt;ffffffffa0300970&gt;] fcoe_ctlr_device_delete+0xe0/0xf0 [libfcoe]
[ 4200.503285]  [&lt;ffffffffa02f1b5c&gt;] fcoe_interface_cleanup+0x6c/0xa0 [fcoe]
[ 4200.503287]  [&lt;ffffffffa02f3355&gt;] fcoe_destroy_work+0x105/0x120 [fcoe]
[ 4200.503290]  [&lt;ffffffff8107ee91&gt;] process_one_work+0x1a1/0x580
[ 4200.503292]  [&lt;ffffffff8107ee2b&gt;] ? process_one_work+0x13b/0x580
[ 4200.503295]  [&lt;ffffffffa02f3250&gt;] ? fcoe_if_destroy+0x230/0x230 [fcoe]
[ 4200.503297]  [&lt;ffffffff81080c6e&gt;] worker_thread+0x15e/0x440
[ 4200.503299]  [&lt;ffffffff81080b10&gt;] ? busy_worker_rebind_fn+0x100/0x100
[ 4200.503301]  [&lt;ffffffff8108715a&gt;] kthread+0xea/0xf0
[ 4200.503304]  [&lt;ffffffff81087070&gt;] ? kthread_create_on_node+0x160/0x160
[ 4200.503306]  [&lt;ffffffff816d70ac&gt;] ret_from_fork+0x7c/0xb0
[ 4200.503308]  [&lt;ffffffff81087070&gt;] ? kthread_create_on_node+0x160/0x160

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Tested-by: Jack Morgan &lt;jack.morgan@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2fc: Make the fcoe_cltr the SCSI host parent</title>
<updated>2013-03-25T19:19:15+00:00</updated>
<author>
<name>Robert Love</name>
<email>robert.w.love@intel.com</email>
</author>
<published>2013-03-25T18:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=01bdcb626f80838f55ec2af993daef50b9c59c49'/>
<id>01bdcb626f80838f55ec2af993daef50b9c59c49</id>
<content type='text'>
The fcoemon userspace daemon is searching for the a hostX
under the the /sys/bus/fcoe/devices/ctlrX/ entries. When
interfaces created using fcoe_sysfs and fcoe.ko this linkage
is setup correctly, but bnx2fc is not doing the same thing
and therefore fcoemon does not create the fcoe interface
for bnx2fc.

This patch sets up the correct linkage for bnx2fc such that
fcoemon will work correctly with fcoe_sysfs and bnx2fc.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Acked-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The fcoemon userspace daemon is searching for the a hostX
under the the /sys/bus/fcoe/devices/ctlrX/ entries. When
interfaces created using fcoe_sysfs and fcoe.ko this linkage
is setup correctly, but bnx2fc is not doing the same thing
and therefore fcoemon does not create the fcoe interface
for bnx2fc.

This patch sets up the correct linkage for bnx2fc such that
fcoemon will work correctly with fcoe_sysfs and bnx2fc.

Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Acked-by: Bhanu Prakash Gollapudi &lt;bprakash@broadcom.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI / glue: Add .match() callback to struct acpi_bus_type</title>
<updated>2013-03-04T13:23:40+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2013-03-03T21:35:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=53540098b23c3884b4a0b4f220b9d977bc496af3'/>
<id>53540098b23c3884b4a0b4f220b9d977bc496af3</id>
<content type='text'>
USB uses the .find_bridge() callback from struct acpi_bus_type
incorrectly, because as a result of the way it is used by USB every
device in the system that doesn't have a bus type or parent is
passed to usb_acpi_find_device() for inspection.

What USB actually needs, though, is to call usb_acpi_find_device()
for USB ports that don't have a bus type defined, but have
usb_port_device_type as their device type, as well as for USB
devices.

To fix that replace the struct bus_type pointer in struct
acpi_bus_type used for matching devices to specific subsystems
with a .match() callback to be used for this purpose and update
the users of struct acpi_bus_type, including USB, accordingly.
Define the .match() callback routine for USB, usb_acpi_bus_match(),
in such a way that it will cover both USB devices and USB ports
and remove the now redundant .find_bridge() callback pointer from
usb_acpi_bus.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Acked-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Acked-by: Jeff Garzik &lt;jgarzik@pobox.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
USB uses the .find_bridge() callback from struct acpi_bus_type
incorrectly, because as a result of the way it is used by USB every
device in the system that doesn't have a bus type or parent is
passed to usb_acpi_find_device() for inspection.

What USB actually needs, though, is to call usb_acpi_find_device()
for USB ports that don't have a bus type defined, but have
usb_port_device_type as their device type, as well as for USB
devices.

To fix that replace the struct bus_type pointer in struct
acpi_bus_type used for matching devices to specific subsystems
with a .match() callback to be used for this purpose and update
the users of struct acpi_bus_type, including USB, accordingly.
Define the .match() callback routine for USB, usb_acpi_bus_match(),
in such a way that it will cover both USB devices and USB ports
and remove the now redundant .find_bridge() callback pointer from
usb_acpi_bus.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Acked-by: Yinghai Lu &lt;yinghai@kernel.org&gt;
Acked-by: Jeff Garzik &lt;jgarzik@pobox.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi</title>
<updated>2013-03-02T19:42:16+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-03-02T19:42:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=426d266c12e9116497e3055212f823a56e1a6914'/>
<id>426d266c12e9116497e3055212f823a56e1a6914</id>
<content type='text'>
Pull SCSI updates from James Bottomley:
 "This is an assorted set of stragglers into the merge window with
  driver updates for qla2xxx, megaraid_sas, storvsc and ufs.

  It also includes pulls of the uapi tree (all the remaining SCSI
  pieces) and the fcoe tree (updates to fcoe and libfc)"

* tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (81 commits)
  [SCSI] ufs: Separate PCI code into glue driver
  [SCSI] ufs: Segregate PCI Specific Code
  [SCSI] scsi: fix lpfc build when wmb() is defined as mb()
  [SCSI] storvsc: Handle dynamic resizing of the device
  [SCSI] storvsc: Restructure error handling code on command completion
  [SCSI] storvsc: avoid usage of WRITE_SAME
  [SCSI] aacraid: suppress two GCC warnings
  [SCSI] hpsa: check for dma_mapping_error in hpsa_passthru ioctls
  [SCSI] hpsa: reorganize error handling in hpsa_passthru_ioctl
  [SCSI] hpsa: check for dma_mapping_error in hpsa_map_sg_chain_block
  [SCSI] hpsa: Check for dma_mapping_error for all code paths using fill_cmd
  [SCSI] hpsa: Check for dma_mapping_error in hpsa_map_one
  [SCSI] dc395x: uninitialized variable in device_alloc()
  [SCSI] Fix range check in scsi_host_dif_capable()
  [SCSI] storvsc: Initialize the sglist
  [SCSI] mpt2sas: Add support for OEM specific controller
  [SCSI] ipr: Fix oops while resetting an ipr adapter
  [SCSI] fnic: Fnic Trace Utility
  [SCSI] fnic: New debug flags and debug log messages
  [SCSI] fnic: fnic driver may hit BUG_ON on device reset
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull SCSI updates from James Bottomley:
 "This is an assorted set of stragglers into the merge window with
  driver updates for qla2xxx, megaraid_sas, storvsc and ufs.

  It also includes pulls of the uapi tree (all the remaining SCSI
  pieces) and the fcoe tree (updates to fcoe and libfc)"

* tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (81 commits)
  [SCSI] ufs: Separate PCI code into glue driver
  [SCSI] ufs: Segregate PCI Specific Code
  [SCSI] scsi: fix lpfc build when wmb() is defined as mb()
  [SCSI] storvsc: Handle dynamic resizing of the device
  [SCSI] storvsc: Restructure error handling code on command completion
  [SCSI] storvsc: avoid usage of WRITE_SAME
  [SCSI] aacraid: suppress two GCC warnings
  [SCSI] hpsa: check for dma_mapping_error in hpsa_passthru ioctls
  [SCSI] hpsa: reorganize error handling in hpsa_passthru_ioctl
  [SCSI] hpsa: check for dma_mapping_error in hpsa_map_sg_chain_block
  [SCSI] hpsa: Check for dma_mapping_error for all code paths using fill_cmd
  [SCSI] hpsa: Check for dma_mapping_error in hpsa_map_one
  [SCSI] dc395x: uninitialized variable in device_alloc()
  [SCSI] Fix range check in scsi_host_dif_capable()
  [SCSI] storvsc: Initialize the sglist
  [SCSI] mpt2sas: Add support for OEM specific controller
  [SCSI] ipr: Fix oops while resetting an ipr adapter
  [SCSI] fnic: Fnic Trace Utility
  [SCSI] fnic: New debug flags and debug log messages
  [SCSI] fnic: fnic driver may hit BUG_ON on device reset
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] Merge tag 'fcoe-02-19-13' into for-linus</title>
<updated>2013-03-01T09:10:08+00:00</updated>
<author>
<name>James Bottomley</name>
<email>JBottomley@Parallels.com</email>
</author>
<published>2013-03-01T09:09:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3e34c1fc2b51f117045e4a2472572f14ac91df6e'/>
<id>3e34c1fc2b51f117045e4a2472572f14ac91df6e</id>
<content type='text'>
FCoE Updates for 3.9

Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FCoE Updates for 3.9

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-02-28T20:43:43+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-02-28T20:43:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=21f3b24da9328415792efc780f50b9f434c12465'/>
<id>21f3b24da9328415792efc780f50b9f434c12465</id>
<content type='text'>
Pull first round of SCSI updates from James Bottomley:
 "The patch set is mostly driver updates (bnx2fc, ipr, lpfc, qla4) and a
  few bug fixes"

Pull delayed because google hates James, and sneakily considers his pull
requests spam. Why, google, why?

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (60 commits)
  [SCSI] aacraid: 1024 max outstanding command support for Series 7 and above
  [SCSI] bnx2fc: adjust duplicate test
  [SCSI] qla4xxx: Update driver version to 5.03.00-k4
  [SCSI] qla4xxx: Fix return code for qla4xxx_session_get_param.
  [SCSI] qla4xxx: wait for boot target login response during probe.
  [SCSI] qla4xxx: Added support for force firmware dump
  [SCSI] qla4xxx: Re-register IRQ handler while retrying initialize of adapter
  [SCSI] qla4xxx: Throttle active IOCBs to firmware limits
  [SCSI] qla4xxx: Remove unnecessary code from qla4xxx_init_local_data
  [SCSI] qla4xxx: Quiesce driver activities while loopback
  [SCSI] qla4xxx: Rename MBOX_ASTS_IDC_NOTIFY to MBOX_ASTS_IDC_REQUEST_NOTIFICATION
  [SCSI] qla4xxx: Add spurious interrupt messages under debug level 2
  [SCSI] cxgb4i: Remove the scsi host device when removing device
  [SCSI] bfa: fix strncpy() limiter in bfad_start_ops()
  [SCSI] qla4xxx: Update driver version to 5.03.00-k3
  [SCSI] qla4xxx: Correct the validation to check in get_sys_info mailbox
  [SCSI] qla4xxx: Pass correct function param to qla4_8xxx_rd_direct
  [SCSI] lpfc 8.3.37: Update lpfc version for 8.3.37 driver release
  [SCSI] lpfc 8.3.37: Fixed infinite loop in lpfc_sli4_fcf_rr_next_index_get.
  [SCSI] lpfc 8.3.37: Fixed crash due to SLI Port invalid resource count
  ...
</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 (bnx2fc, ipr, lpfc, qla4) and a
  few bug fixes"

Pull delayed because google hates James, and sneakily considers his pull
requests spam. Why, google, why?

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (60 commits)
  [SCSI] aacraid: 1024 max outstanding command support for Series 7 and above
  [SCSI] bnx2fc: adjust duplicate test
  [SCSI] qla4xxx: Update driver version to 5.03.00-k4
  [SCSI] qla4xxx: Fix return code for qla4xxx_session_get_param.
  [SCSI] qla4xxx: wait for boot target login response during probe.
  [SCSI] qla4xxx: Added support for force firmware dump
  [SCSI] qla4xxx: Re-register IRQ handler while retrying initialize of adapter
  [SCSI] qla4xxx: Throttle active IOCBs to firmware limits
  [SCSI] qla4xxx: Remove unnecessary code from qla4xxx_init_local_data
  [SCSI] qla4xxx: Quiesce driver activities while loopback
  [SCSI] qla4xxx: Rename MBOX_ASTS_IDC_NOTIFY to MBOX_ASTS_IDC_REQUEST_NOTIFICATION
  [SCSI] qla4xxx: Add spurious interrupt messages under debug level 2
  [SCSI] cxgb4i: Remove the scsi host device when removing device
  [SCSI] bfa: fix strncpy() limiter in bfad_start_ops()
  [SCSI] qla4xxx: Update driver version to 5.03.00-k3
  [SCSI] qla4xxx: Correct the validation to check in get_sys_info mailbox
  [SCSI] qla4xxx: Pass correct function param to qla4_8xxx_rd_direct
  [SCSI] lpfc 8.3.37: Update lpfc version for 8.3.37 driver release
  [SCSI] lpfc 8.3.37: Fixed infinite loop in lpfc_sli4_fcf_rr_next_index_get.
  [SCSI] lpfc 8.3.37: Fixed crash due to SLI Port invalid resource count
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>scsi/lpfc: convert to idr_alloc()</title>
<updated>2013-02-28T03:10:19+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2013-02-28T01:04:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ab51603672a335d325963ca410d9c527d9f834f7'/>
<id>ab51603672a335d325963ca410d9c527d9f834f7</id>
<content type='text'>
Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Acked-by: James Smart &lt;james.smart@emulex.com&gt;
Cc: James Bottomley &lt;James.Bottomley@HansenPartnership.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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Acked-by: James Smart &lt;james.smart@emulex.com&gt;
Cc: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
