<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/s390/scsi, branch linux-3.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-09-24T08:11:02Z</updated>
<entry>
<title>[SCSI] zfcp: only access zfcp_scsi_dev for valid scsi_device</title>
<updated>2012-09-24T08:11:02Z</updated>
<author>
<name>Martin Peschke</name>
</author>
<published>2012-09-04T13:23:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d436de8ce25f53a8a880a931886821f632247943'/>
<id>urn:sha1:d436de8ce25f53a8a880a931886821f632247943</id>
<content type='text'>
__scsi_remove_device (e.g. due to dev_loss_tmo) calls
zfcp_scsi_slave_destroy which in turn sends a close LUN FSF request to
the adapter. After 30 seconds without response,
zfcp_erp_timeout_handler kicks the ERP thread failing the close LUN
ERP action. zfcp_erp_wait in zfcp_erp_lun_shutdown_wait and thus
zfcp_scsi_slave_destroy returns and then scsi_device is no longer
valid. Sometime later the response to the close LUN FSF request may
finally come in. However, commit
b62a8d9b45b971a67a0f8413338c230e3117dff5
"[SCSI] zfcp: Use SCSI device data zfcp_scsi_dev instead of zfcp_unit"
introduced a number of attempts to unconditionally access struct
zfcp_scsi_dev through struct scsi_device causing a use-after-free.
This leads to an Oops due to kernel page fault in one of:
zfcp_fsf_abort_fcp_command_handler, zfcp_fsf_open_lun_handler,
zfcp_fsf_close_lun_handler, zfcp_fsf_req_trace,
zfcp_fsf_fcp_handler_common.
Move dereferencing of zfcp private data zfcp_scsi_dev allocated in
scsi_device via scsi_transport_reserve_device after the check for
potentially aborted FSF request and thus no longer valid scsi_device.
Only then assign sdev_to_zfcp(sdev) to the local auto variable struct
zfcp_scsi_dev *zfcp_sdev.

Signed-off-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #2.6.37+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: No automatic port_rescan on events</title>
<updated>2012-09-24T08:11:02Z</updated>
<author>
<name>Steffen Maier</name>
</author>
<published>2012-09-04T13:23:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=43f60cbd56c4a3a8f7fb009ac52d6d57ac864921'/>
<id>urn:sha1:43f60cbd56c4a3a8f7fb009ac52d6d57ac864921</id>
<content type='text'>
In FC fabrics with large zones, the automatic port_rescan on incoming ELS
and any adapter recovery can cause quite some traffic at the very same
time, especially if lots of Linux images share an HBA, which is common on
s390. This can cause trouble and failures. Fix this by making such port
rescans dependent on a user configurable module parameter.

The following unconditional automatic port rescans remain as is:
On setting an adapter online and
on manual user-triggered writes to the sysfs attribute port_rescan.

Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: restore refcount check on port_remove</title>
<updated>2012-09-24T08:11:02Z</updated>
<author>
<name>Steffen Maier</name>
</author>
<published>2012-09-04T13:23:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d99b601b63386f3395dc26a699ae703a273d9982'/>
<id>urn:sha1:d99b601b63386f3395dc26a699ae703a273d9982</id>
<content type='text'>
Upstream commit f3450c7b917201bb49d67032e9f60d5125675d6a
"[SCSI] zfcp: Replace local reference counting with common kref"
accidentally dropped a reference count check before tearing down
zfcp_ports that are potentially in use by zfcp_units.
Even remote ports in use can be removed causing
unreachable garbage objects zfcp_ports with zfcp_units.
Thus units won't come back even after a manual port_rescan.
The kref of zfcp_port-&gt;dev.kobj is already used by the driver core.
We cannot re-use it to track the number of zfcp_units.
Re-introduce our own counter for units per port
and check on port_remove.

Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #2.6.33+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: remove invalid reference to list iterator variable</title>
<updated>2012-09-24T08:11:02Z</updated>
<author>
<name>Julia Lawall</name>
</author>
<published>2012-09-04T13:23:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca579c9f136af4274ccfd1bcaee7f38a29a0e2e9'/>
<id>urn:sha1:ca579c9f136af4274ccfd1bcaee7f38a29a0e2e9</id>
<content type='text'>
If list_for_each_entry, etc complete a traversal of the list, the iterator
variable ends up pointing to an address at an offset from the list head,
and not a meaningful structure.  Thus this value should not be used after
the end of the iterator.  Replace port-&gt;adapter-&gt;scsi_host by
adapter-&gt;scsi_host.

This problem was found using Coccinelle (http://coccinelle.lip6.fr/).

Oversight in upsteam commit of v2.6.37
a1ca48319a9aa1c5b57ce142f538e76050bb8972
"[SCSI] zfcp: Move ACL/CFDC code to zfcp_cfdc.c"
which merged the content of zfcp_erp_port_access_changed().

Signed-off-by: Julia Lawall &lt;Julia.Lawall@lip6.fr&gt;
Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Reviewed-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #2.6.37+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: Do not wakeup while suspended</title>
<updated>2012-09-24T08:11:01Z</updated>
<author>
<name>Steffen Maier</name>
</author>
<published>2012-09-04T13:23:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb45214960bc989af8b911ebd77da541c797717d'/>
<id>urn:sha1:cb45214960bc989af8b911ebd77da541c797717d</id>
<content type='text'>
If the mapping of FCP device bus ID and corresponding subchannel
is modified while the Linux image is suspended, the resume of FCP
devices can fail. During resume, zfcp gets callbacks from cio regarding
the modified subchannels but they can be arbitrarily mixed with the
restore/resume callback. Since the cio callbacks would trigger
adapter recovery, zfcp could wakeup before the resume callback.
Therefore, ignore the cio callbacks regarding subchannels while
being suspended. We can safely do so, since zfcp does not deal itself
with subchannels. For problem determination purposes, we still trace the
ignored callback events.

The following kernel messages could be seen on resume:

kernel: &lt;WWPN&gt;: parent &lt;FCP device bus ID&gt; should not be sleeping

As part of adapter reopen recovery, zfcp performs auto port scanning
which can erroneously try to register new remote ports with
scsi_transport_fc and the device core code complains about the parent
(adapter) still sleeping.

kernel: zfcp.3dff9c: &lt;FCP device bus ID&gt;:\
 Setting up the QDIO connection to the FCP adapter failed
&lt;last kernel message repeated 3 more times&gt;
kernel: zfcp.574d43: &lt;FCP device bus ID&gt;:\
 ERP cannot recover an error on the FCP device

In such cases, the adapter gave up recovery and remained blocked along
with its child objects: remote ports and LUNs/scsi devices. Even the
adapter shutdown as part of giving up recovery failed because the ccw
device state remained disconnected. Later, the corresponding remote
ports ran into dev_loss_tmo. As a result, the LUNs were erroneously
not available again after resume.

Even a manually triggered adapter recovery (e.g. sysfs attribute
failed, or device offline/online via sysfs) could not recover the
adapter due to the remaining disconnected state of the corresponding
ccw device.

Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #2.6.32+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: Bounds checking for deferred error trace</title>
<updated>2012-09-24T08:11:01Z</updated>
<author>
<name>Steffen Maier</name>
</author>
<published>2012-09-04T13:23:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=01e60527f0a49b3d7df603010bd6079bb4b6cf07'/>
<id>urn:sha1:01e60527f0a49b3d7df603010bd6079bb4b6cf07</id>
<content type='text'>
The pl vector has scount elements, i.e. pl[scount-1] is the last valid
element. For maximum sized requests, payload-&gt;counter == scount after
the last loop iteration. Therefore, do bounds checking first (with
boolean shortcut) to not access the invalid element pl[scount].

Do not trust the maximum sbale-&gt;scount value from the HBA
but ensure we won't access the pl vector out of our allocated bounds.
While at it, clean up scoping and prevent unnecessary memset.

Minor fix for 86a9668a8d29ea711613e1cb37efa68e7c4db564
"[SCSI] zfcp: support for hardware data router"

Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Reviewed-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #3.2+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: Make trace record tags unique</title>
<updated>2012-09-24T08:11:01Z</updated>
<author>
<name>Steffen Maier</name>
</author>
<published>2012-09-04T13:23:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0100998dbfe6dfcd90a6e912ca7ed6f255d48f25'/>
<id>urn:sha1:0100998dbfe6dfcd90a6e912ca7ed6f255d48f25</id>
<content type='text'>
Duplicate fssrh_2 from a54ca0f62f953898b05549391ac2a8a4dad6482b
"[SCSI] zfcp: Redesign of the debug tracing for HBA records."
complicates distinction of generic status read response from
local link up.
Duplicate fsscth1 from 2c55b750a884b86dea8b4cc5f15e1484cc47a25c
"[SCSI] zfcp: Redesign of the debug tracing for SAN records."
complicates distinction of good common transport response from
invalid port handle.

Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Reviewed-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #2.6.38+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] zfcp: Adapt to new FC_PORTSPEED semantics</title>
<updated>2012-09-24T08:11:01Z</updated>
<author>
<name>Steffen Maier</name>
</author>
<published>2012-09-04T13:23:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d22019778cd9ea04c1dadf7bf453920d5288f8d9'/>
<id>urn:sha1:d22019778cd9ea04c1dadf7bf453920d5288f8d9</id>
<content type='text'>
Commit a9277e7783651d4e0a849f7988340b1c1cf748a4
"[SCSI] scsi_transport_fc: Getting FC Port Speed in sync with FC-GS"
changed the semantics of FC_PORTSPEED defines to
FDMI port attributes of FC-HBA/SM-HBA
which is different from the previous bit reversed
Report Port Speed Capabilities (RPSC) ELS of FC-GS/FC-LS.

Zfcp showed "10 Gbit" instead of "4 Gbit" for supported_speeds.
It now uses explicit bit conversion as the other LLDs already
do, in order to be independent of the kernel bit semantics.
See also http://marc.info/?l=linux-scsi&amp;m=134452926830730&amp;w=2

Signed-off-by: Steffen Maier &lt;maier@linux.vnet.ibm.com&gt;
Reviewed-by: Martin Peschke &lt;mpeschke@linux.vnet.ibm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #3.4+
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>s390/comments: unify copyright messages and remove file names</title>
<updated>2012-07-20T09:15:04Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2012-07-20T09:15:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a53c8fab3f87c995c30ac226a03af95361243144'/>
<id>urn:sha1:a53c8fab3f87c995c30ac226a03af95361243144</id>
<content type='text'>
Remove the file name from the comment at top of many files. In most
cases the file name was wrong anyway, so it's rather pointless.

Also unify the IBM copyright statement. We did have a lot of sightly
different statements and wanted to change them one after another
whenever a file gets touched. However that never happened. Instead
people start to take the old/"wrong" statements to use as a template
for new files.
So unify all of them in one go.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>compat: fix compile breakage on s390</title>
<updated>2012-02-27T15:54:27Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2012-02-27T09:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=048cd4e51d24ebf7f3552226d03c769d6ad91658'/>
<id>urn:sha1:048cd4e51d24ebf7f3552226d03c769d6ad91658</id>
<content type='text'>
The new is_compat_task() define for the !COMPAT case in
include/linux/compat.h conflicts with a similar define in
arch/s390/include/asm/compat.h.

This is the minimal patch which fixes the build issues.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
