<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/scsi/libiscsi.c, branch v4.13</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>scsi: libiscsi: use kvzalloc for iscsi_pool_init</title>
<updated>2017-06-13T00:48:04+00:00</updated>
<author>
<name>Kyle Fortin</name>
<email>kyle.fortin@oracle.com</email>
</author>
<published>2017-05-17T20:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bfcc62ed7066268349e8e7955925bdaf4be0eec0'/>
<id>bfcc62ed7066268349e8e7955925bdaf4be0eec0</id>
<content type='text'>
iscsiadm session login can fail with the following error:

iscsiadm: Could not login to [iface: default, target: iqn.1986-03.com...
iscsiadm: initiator reported error (9 - internal error)

When /etc/iscsi/iscsid.conf sets node.session.cmds_max = 4096, it
results in 64K-sized kmallocs per session.  A system under fragmented
slab pressure may not have any 64K objects available and fail iscsiadm
session login. Even though memory objects of a smaller size are
available, the large order allocation ends up failing.

The kernel prints a warning and does dump_stack, like below:

iscsid: page allocation failure: order:4, mode:0xc0d0
CPU: 0 PID: 2456 Comm: iscsid Not tainted 4.1.12-61.1.28.el6uek.x86_64 #2
Call Trace:
 [&lt;ffffffff816c6e40&gt;] dump_stack+0x63/0x83
 [&lt;ffffffff8118e58a&gt;] warn_alloc_failed+0xea/0x140
 [&lt;ffffffff81191df9&gt;] __alloc_pages_slowpath+0x409/0x760
 [&lt;ffffffff81192401&gt;] __alloc_pages_nodemask+0x2b1/0x2d0
 [&lt;ffffffffa048f6c0&gt;] ? dev_attr_host_ipaddress+0x20/0xffffffffffffc722
 [&lt;ffffffff811dc38f&gt;] alloc_pages_current+0xaf/0x170
 [&lt;ffffffff81192581&gt;] alloc_kmem_pages+0x31/0xd0
 [&lt;ffffffffa048f600&gt;] ? iscsi_transport_group+0x20/0xffffffffffffc7e2
 [&lt;ffffffff811ad738&gt;] kmalloc_order+0x18/0x50
 [&lt;ffffffff811ad7a4&gt;] kmalloc_order_trace+0x34/0xe0
 [&lt;ffffffff8146ee30&gt;] ? transport_remove_classdev+0x70/0x70
 [&lt;ffffffff811e843d&gt;] __kmalloc+0x27d/0x2a0
 [&lt;ffffffff810c8cbd&gt;] ? complete_all+0x4d/0x60
 [&lt;ffffffffa04af299&gt;] iscsi_pool_init+0x69/0x160 [libiscsi]
 [&lt;ffffffff81465d90&gt;] ? device_initialize+0xb0/0xd0
 [&lt;ffffffffa04af510&gt;] iscsi_session_setup+0x180/0x2f4 [libiscsi]
 [&lt;ffffffffa04c5a60&gt;] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
 [&lt;ffffffffa04c531f&gt;] iscsi_sw_tcp_session_create+0xcf/0x150 [iscsi_tcp]
 [&lt;ffffffffa04c5a60&gt;] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
 [&lt;ffffffffa048a633&gt;] iscsi_if_create_session+0x33/0xd0
 [&lt;ffffffffa04c5a60&gt;] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
 [&lt;ffffffffa048abd8&gt;] iscsi_if_recv_msg+0x508/0x8c0 [scsi_transport_iscsi]
 [&lt;ffffffff811922eb&gt;] ? __alloc_pages_nodemask+0x19b/0x2d0
 [&lt;ffffffff811e6d69&gt;] ? __kmalloc_node_track_caller+0x209/0x2c0
 [&lt;ffffffffa048b00c&gt;] iscsi_if_rx+0x7c/0x200 [scsi_transport_iscsi]
 [&lt;ffffffff81623dc6&gt;] netlink_unicast+0x126/0x1c0
 [&lt;ffffffff8162468c&gt;] netlink_sendmsg+0x36c/0x400
 [&lt;ffffffff815d2fed&gt;] sock_sendmsg+0x4d/0x60
 [&lt;ffffffff815d596a&gt;] ___sys_sendmsg+0x30a/0x330
 [&lt;ffffffff811bc72c&gt;] ? handle_pte_fault+0x20c/0x230
 [&lt;ffffffff811bc90c&gt;] ? __handle_mm_fault+0x1bc/0x330
 [&lt;ffffffff811bcb32&gt;] ? handle_mm_fault+0xb2/0x1a0
 [&lt;ffffffff815d5b99&gt;] __sys_sendmsg+0x49/0x90
 [&lt;ffffffff815d5bf9&gt;] SyS_sendmsg+0x19/0x20
 [&lt;ffffffff816cbb2e&gt;] system_call_fastpath+0x12/0x71

Use kvzalloc for iscsi_pool in iscsi_pool_init.

Signed-off-by: Kyle Fortin &lt;kyle.fortin@oracle.com&gt;
Tested-by: Kyle Fortin &lt;kyle.fortin@oracle.com&gt;
Reviewed-by: Joseph Slember &lt;joe.slember@oracle.com&gt;
Reviewed-by: Lance Hartmann &lt;lance.hartmann@oracle.com&gt;
Acked-by: Lee Duncan &lt;lduncan@suse.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
iscsiadm session login can fail with the following error:

iscsiadm: Could not login to [iface: default, target: iqn.1986-03.com...
iscsiadm: initiator reported error (9 - internal error)

When /etc/iscsi/iscsid.conf sets node.session.cmds_max = 4096, it
results in 64K-sized kmallocs per session.  A system under fragmented
slab pressure may not have any 64K objects available and fail iscsiadm
session login. Even though memory objects of a smaller size are
available, the large order allocation ends up failing.

The kernel prints a warning and does dump_stack, like below:

iscsid: page allocation failure: order:4, mode:0xc0d0
CPU: 0 PID: 2456 Comm: iscsid Not tainted 4.1.12-61.1.28.el6uek.x86_64 #2
Call Trace:
 [&lt;ffffffff816c6e40&gt;] dump_stack+0x63/0x83
 [&lt;ffffffff8118e58a&gt;] warn_alloc_failed+0xea/0x140
 [&lt;ffffffff81191df9&gt;] __alloc_pages_slowpath+0x409/0x760
 [&lt;ffffffff81192401&gt;] __alloc_pages_nodemask+0x2b1/0x2d0
 [&lt;ffffffffa048f6c0&gt;] ? dev_attr_host_ipaddress+0x20/0xffffffffffffc722
 [&lt;ffffffff811dc38f&gt;] alloc_pages_current+0xaf/0x170
 [&lt;ffffffff81192581&gt;] alloc_kmem_pages+0x31/0xd0
 [&lt;ffffffffa048f600&gt;] ? iscsi_transport_group+0x20/0xffffffffffffc7e2
 [&lt;ffffffff811ad738&gt;] kmalloc_order+0x18/0x50
 [&lt;ffffffff811ad7a4&gt;] kmalloc_order_trace+0x34/0xe0
 [&lt;ffffffff8146ee30&gt;] ? transport_remove_classdev+0x70/0x70
 [&lt;ffffffff811e843d&gt;] __kmalloc+0x27d/0x2a0
 [&lt;ffffffff810c8cbd&gt;] ? complete_all+0x4d/0x60
 [&lt;ffffffffa04af299&gt;] iscsi_pool_init+0x69/0x160 [libiscsi]
 [&lt;ffffffff81465d90&gt;] ? device_initialize+0xb0/0xd0
 [&lt;ffffffffa04af510&gt;] iscsi_session_setup+0x180/0x2f4 [libiscsi]
 [&lt;ffffffffa04c5a60&gt;] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
 [&lt;ffffffffa04c531f&gt;] iscsi_sw_tcp_session_create+0xcf/0x150 [iscsi_tcp]
 [&lt;ffffffffa04c5a60&gt;] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
 [&lt;ffffffffa048a633&gt;] iscsi_if_create_session+0x33/0xd0
 [&lt;ffffffffa04c5a60&gt;] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
 [&lt;ffffffffa048abd8&gt;] iscsi_if_recv_msg+0x508/0x8c0 [scsi_transport_iscsi]
 [&lt;ffffffff811922eb&gt;] ? __alloc_pages_nodemask+0x19b/0x2d0
 [&lt;ffffffff811e6d69&gt;] ? __kmalloc_node_track_caller+0x209/0x2c0
 [&lt;ffffffffa048b00c&gt;] iscsi_if_rx+0x7c/0x200 [scsi_transport_iscsi]
 [&lt;ffffffff81623dc6&gt;] netlink_unicast+0x126/0x1c0
 [&lt;ffffffff8162468c&gt;] netlink_sendmsg+0x36c/0x400
 [&lt;ffffffff815d2fed&gt;] sock_sendmsg+0x4d/0x60
 [&lt;ffffffff815d596a&gt;] ___sys_sendmsg+0x30a/0x330
 [&lt;ffffffff811bc72c&gt;] ? handle_pte_fault+0x20c/0x230
 [&lt;ffffffff811bc90c&gt;] ? __handle_mm_fault+0x1bc/0x330
 [&lt;ffffffff811bcb32&gt;] ? handle_mm_fault+0xb2/0x1a0
 [&lt;ffffffff815d5b99&gt;] __sys_sendmsg+0x49/0x90
 [&lt;ffffffff815d5bf9&gt;] SyS_sendmsg+0x19/0x20
 [&lt;ffffffff816cbb2e&gt;] system_call_fastpath+0x12/0x71

Use kvzalloc for iscsi_pool in iscsi_pool_init.

Signed-off-by: Kyle Fortin &lt;kyle.fortin@oracle.com&gt;
Tested-by: Kyle Fortin &lt;kyle.fortin@oracle.com&gt;
Reviewed-by: Joseph Slember &lt;joe.slember@oracle.com&gt;
Reviewed-by: Lance Hartmann &lt;lance.hartmann@oracle.com&gt;
Acked-by: Lee Duncan &lt;lduncan@suse.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.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>2017-05-04T19:19:44+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2017-05-04T19:19:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8d5e72dfdf0fa29a21143fd72746c6f43295ce9f'/>
<id>8d5e72dfdf0fa29a21143fd72746c6f43295ce9f</id>
<content type='text'>
Pull SCSI updates from James Bottomley:
 "This update includes the usual round of major driver updates
  (hisi_sas, ufs, fnic, cxlflash, be2iscsi, ipr, stex). There's also the
  usual amount of cosmetic and spelling stuff"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (155 commits)
  scsi: qla4xxx: fix spelling mistake: "Tempalate" -&gt; "Template"
  scsi: stex: make S6flag static
  scsi: mac_esp: fix to pass correct device identity to free_irq()
  scsi: aacraid: pci_alloc_consistent() failures on ARM64
  scsi: ufs: make ufshcd_get_lists_status() register operation obvious
  scsi: ufs: use MASK_EE_STATUS
  scsi: mac_esp: Replace bogus memory barrier with spinlock
  scsi: fcoe: make fcoe_e_d_tov and fcoe_r_a_tov static
  scsi: sd_zbc: Do not write lock zones for reset
  scsi: sd_zbc: Remove superfluous assignments
  scsi: sd: sd_zbc: Rename sd_zbc_setup_write_cmnd
  scsi: Improve scsi_get_sense_info_fld
  scsi: sd: Cleanup sd_done sense data handling
  scsi: sd: Improve sd_completed_bytes
  scsi: sd: Fix function descriptions
  scsi: mpt3sas: remove redundant wmb
  scsi: mpt: Move scsi_remove_host() out of mptscsih_remove_host()
  scsi: sg: reset 'res_in_use' after unlinking reserved array
  scsi: mvumi: remove code handling zero scsi_sg_count(scmd) case
  scsi: fusion: fix spelling mistake: "Persistancy" -&gt; "Persistency"
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull SCSI updates from James Bottomley:
 "This update includes the usual round of major driver updates
  (hisi_sas, ufs, fnic, cxlflash, be2iscsi, ipr, stex). There's also the
  usual amount of cosmetic and spelling stuff"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (155 commits)
  scsi: qla4xxx: fix spelling mistake: "Tempalate" -&gt; "Template"
  scsi: stex: make S6flag static
  scsi: mac_esp: fix to pass correct device identity to free_irq()
  scsi: aacraid: pci_alloc_consistent() failures on ARM64
  scsi: ufs: make ufshcd_get_lists_status() register operation obvious
  scsi: ufs: use MASK_EE_STATUS
  scsi: mac_esp: Replace bogus memory barrier with spinlock
  scsi: fcoe: make fcoe_e_d_tov and fcoe_r_a_tov static
  scsi: sd_zbc: Do not write lock zones for reset
  scsi: sd_zbc: Remove superfluous assignments
  scsi: sd: sd_zbc: Rename sd_zbc_setup_write_cmnd
  scsi: Improve scsi_get_sense_info_fld
  scsi: sd: Cleanup sd_done sense data handling
  scsi: sd: Improve sd_completed_bytes
  scsi: sd: Fix function descriptions
  scsi: mpt3sas: remove redundant wmb
  scsi: mpt: Move scsi_remove_host() out of mptscsih_remove_host()
  scsi: sg: reset 'res_in_use' after unlinking reserved array
  scsi: mvumi: remove code handling zero scsi_sg_count(scmd) case
  scsi: fusion: fix spelling mistake: "Persistancy" -&gt; "Persistency"
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>scsi: libiscsi: qedi: convert iscsi_task.refcount from atomic_t to refcount_t</title>
<updated>2017-03-15T22:44:39+00:00</updated>
<author>
<name>Elena Reshetova</name>
<email>elena.reshetova@intel.com</email>
</author>
<published>2017-03-09T11:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6dc618cdd6b896791313926becb1f86ede0e046a'/>
<id>6dc618cdd6b896791313926becb1f86ede0e046a</id>
<content type='text'>
refcount_t type and corresponding API should be used instead of atomic_t
when the variable is used as a reference counter. This allows to avoid
accidental refcounter overflows that might lead to use-after-free
situations.

Signed-off-by: Elena Reshetova &lt;elena.reshetova@intel.com&gt;
Signed-off-by: Hans Liljestrand &lt;ishkamiel@gmail.com&gt;
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: David Windsor &lt;dwindsor@gmail.com&gt;
Acked-by: Chris Leech &lt;cleech@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
refcount_t type and corresponding API should be used instead of atomic_t
when the variable is used as a reference counter. This allows to avoid
accidental refcounter overflows that might lead to use-after-free
situations.

Signed-off-by: Elena Reshetova &lt;elena.reshetova@intel.com&gt;
Signed-off-by: Hans Liljestrand &lt;ishkamiel@gmail.com&gt;
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: David Windsor &lt;dwindsor@gmail.com&gt;
Acked-by: Chris Leech &lt;cleech@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'mkp-scsi/fixes' into fixes</title>
<updated>2017-03-07T23:13:02+00:00</updated>
<author>
<name>James Bottomley</name>
<email>James.Bottomley@HansenPartnership.com</email>
</author>
<published>2017-03-07T23:13:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e2a3a67302fbe2431fc6d7c313073da5b2b4c293'/>
<id>e2a3a67302fbe2431fc6d7c313073da5b2b4c293</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>sched/headers: Prepare for new header dependencies before moving code to &lt;linux/sched/signal.h&gt;</title>
<updated>2017-03-02T07:42:29+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@kernel.org</email>
</author>
<published>2017-02-08T17:51:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3f07c0144132e4f59d88055ac8ff3e691a5fa2b8'/>
<id>3f07c0144132e4f59d88055ac8ff3e691a5fa2b8</id>
<content type='text'>
We are going to split &lt;linux/sched/signal.h&gt; out of &lt;linux/sched.h&gt;, which
will have to be picked up from other headers and a couple of .c files.

Create a trivial placeholder &lt;linux/sched/signal.h&gt; file that just
maps to &lt;linux/sched.h&gt; to make this patch obviously correct and
bisectable.

Include the new header in the files that are going to need it.

Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Mike Galbraith &lt;efault@gmx.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are going to split &lt;linux/sched/signal.h&gt; out of &lt;linux/sched.h&gt;, which
will have to be picked up from other headers and a couple of .c files.

Create a trivial placeholder &lt;linux/sched/signal.h&gt; file that just
maps to &lt;linux/sched.h&gt; to make this patch obviously correct and
bisectable.

Include the new header in the files that are going to need it.

Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Mike Galbraith &lt;efault@gmx.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scsi: libiscsi: add lock around task lists to fix list corruption regression</title>
<updated>2017-03-01T03:05:22+00:00</updated>
<author>
<name>Chris Leech</name>
<email>cleech@redhat.com</email>
</author>
<published>2017-02-28T00:58:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6f8830f5bbab16e54f261de187f3df4644a5b977'/>
<id>6f8830f5bbab16e54f261de187f3df4644a5b977</id>
<content type='text'>
There's a rather long standing regression from the commit "libiscsi:
Reduce locking contention in fast path"

Depending on iSCSI target behavior, it's possible to hit the case in
iscsi_complete_task where the task is still on a pending list
(!list_empty(&amp;task-&gt;running)).  When that happens the task is removed
from the list while holding the session back_lock, but other task list
modification occur under the frwd_lock.  That leads to linked list
corruption and eventually a panicked system.

Rather than back out the session lock split entirely, in order to try
and keep some of the performance gains this patch adds another lock to
maintain the task lists integrity.

Major enterprise supported kernels have been backing out the lock split
for while now, thanks to the efforts at IBM where a lab setup has the
most reliable reproducer I've seen on this issue.  This patch has been
tested there successfully.

Signed-off-by: Chris Leech &lt;cleech@redhat.com&gt;
Fixes: 659743b02c41 ("[SCSI] libiscsi: Reduce locking contention in fast path")
Reported-by: Prashantha Subbarao &lt;psubbara@us.ibm.com&gt;
Reviewed-by: Guilherme G. Piccoli &lt;gpiccoli@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v3.15+
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's a rather long standing regression from the commit "libiscsi:
Reduce locking contention in fast path"

Depending on iSCSI target behavior, it's possible to hit the case in
iscsi_complete_task where the task is still on a pending list
(!list_empty(&amp;task-&gt;running)).  When that happens the task is removed
from the list while holding the session back_lock, but other task list
modification occur under the frwd_lock.  That leads to linked list
corruption and eventually a panicked system.

Rather than back out the session lock split entirely, in order to try
and keep some of the performance gains this patch adds another lock to
maintain the task lists integrity.

Major enterprise supported kernels have been backing out the lock split
for while now, thanks to the efforts at IBM where a lab setup has the
most reliable reproducer I've seen on this issue.  This patch has been
tested there successfully.

Signed-off-by: Chris Leech &lt;cleech@redhat.com&gt;
Fixes: 659743b02c41 ("[SCSI] libiscsi: Reduce locking contention in fast path")
Reported-by: Prashantha Subbarao &lt;psubbara@us.ibm.com&gt;
Reviewed-by: Guilherme G. Piccoli &lt;gpiccoli@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v3.15+
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scsi: remove eh_timed_out methods in the transport template</title>
<updated>2017-02-07T00:10:03+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2017-01-30T12:18:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b6a05c823fc573a65efc4466f174abf05f922e0f'/>
<id>b6a05c823fc573a65efc4466f174abf05f922e0f</id>
<content type='text'>
Instead define the timeout behavior purely based on the host_template
eh_timed_out method and wire up the existing transport implementations
in the host templates.  This also clears up the confusion that the
transport template method overrides the host template one, so some
drivers have to re-override the transport template one.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: Tyrel Datwyler &lt;tyreld@linux.vnet.ibm.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead define the timeout behavior purely based on the host_template
eh_timed_out method and wire up the existing transport implementations
in the host templates.  This also clears up the confusion that the
transport template method overrides the host template one, so some
drivers have to re-override the transport template one.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: Tyrel Datwyler &lt;tyreld@linux.vnet.ibm.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scsi: libiscsi: Fix locking in __iscsi_conn_send_pdu</title>
<updated>2016-10-17T17:34:44+00:00</updated>
<author>
<name>Jitendra Bhivare</name>
<email>jitendra.bhivare@broadcom.com</email>
</author>
<published>2016-10-13T06:38:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4fa507992f0a1063d7326abaf705f9408548349e'/>
<id>4fa507992f0a1063d7326abaf705f9408548349e</id>
<content type='text'>
The code at free_task label in __iscsi_conn_send_pdu can get executed
from blk_timeout_work which takes queue_lock using spin_lock_irq.
back_lock taken with spin_unlock_bh will cause WARN_ON_ONCE.  The code
gets executed either with bottom half or IRQ disabled hence using
spin_lock/spin_unlock for back_lock is safe.

Signed-off-by: Jitendra Bhivare &lt;jitendra.bhivare@broadcom.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: Chris Leech &lt;cleech@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code at free_task label in __iscsi_conn_send_pdu can get executed
from blk_timeout_work which takes queue_lock using spin_lock_irq.
back_lock taken with spin_unlock_bh will cause WARN_ON_ONCE.  The code
gets executed either with bottom half or IRQ disabled hence using
spin_lock/spin_unlock for back_lock is safe.

Signed-off-by: Jitendra Bhivare &lt;jitendra.bhivare@broadcom.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: Chris Leech &lt;cleech@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libiscsi: Remove set-but-not-used variables</title>
<updated>2016-04-11T20:57:09+00:00</updated>
<author>
<name>Bart Van Assche</name>
<email>bart.vanassche@sandisk.com</email>
</author>
<published>2016-03-30T18:27:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e9e410e8e8537b383b0325f3d03c522aba36fa0b'/>
<id>e9e410e8e8537b383b0325f3d03c522aba36fa0b</id>
<content type='text'>
Avoid that building with W=1 causes gcc to report warnings about
set-but-not-used variables.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Reviewed-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid that building with W=1 causes gcc to report warnings about
set-but-not-used variables.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Reviewed-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libiscsi: Unexport iscsi_eh_target_reset()</title>
<updated>2016-04-11T20:57:09+00:00</updated>
<author>
<name>Bart Van Assche</name>
<email>bart.vanassche@sandisk.com</email>
</author>
<published>2016-03-30T18:26:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3907adf67a1559d455f90b0de4c977dd456fe311'/>
<id>3907adf67a1559d455f90b0de4c977dd456fe311</id>
<content type='text'>
Running "git grep -nHw iscsi_eh_target_reset" shows that this function
is only called from inside the drivers/scsi/libiscsi.c source
file. Hence unexport this function.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Reviewed-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Running "git grep -nHw iscsi_eh_target_reset" shows that this function
is only called from inside the drivers/scsi/libiscsi.c source
file. Hence unexport this function.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Reviewed-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
