<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/drivers/s390/block, branch linux-4.10.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-4.10.y</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-4.10.y'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2017-03-15T02:20:06+00:00</updated>
<entry>
<title>s390/dcssblk: fix device size calculation in dcssblk_direct_access()</title>
<updated>2017-03-15T02:20:06+00:00</updated>
<author>
<name>Gerald Schaefer</name>
<email>gerald.schaefer@de.ibm.com</email>
</author>
<published>2017-01-30T14:52:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1f2659aa7dfe2596e0d102f2cf61f20d3266f2f5'/>
<id>urn:sha1:1f2659aa7dfe2596e0d102f2cf61f20d3266f2f5</id>
<content type='text'>
commit a63f53e34db8b49675448d03ae324f6c5bc04fe6 upstream.

Since commit dd22f551 "block: Change direct_access calling convention",
the device size calculation in dcssblk_direct_access() is off-by-one.
This results in bdev_direct_access() always returning -ENXIO because the
returned value is not page aligned.

Fix this by adding 1 to the dev_sz calculation.

Fixes: dd22f551 ("block: Change direct_access calling convention")
Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Replace &lt;asm/uaccess.h&gt; with &lt;linux/uaccess.h&gt; globally</title>
<updated>2016-12-24T19:46:01+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2016-12-24T19:46:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7c0f6ba682b9c7632072ffbedf8d328c8f3c42ba'/>
<id>urn:sha1:7c0f6ba682b9c7632072ffbedf8d328c8f3c42ba</id>
<content type='text'>
This was entirely automated, using the script by Al:

  PATT='^[[:blank:]]*#[[:blank:]]*include[[:blank:]]*&lt;asm/uaccess.h&gt;'
  sed -i -e "s!$PATT!#include &lt;linux/uaccess.h&gt;!" \
        $(git grep -l "$PATT"|grep -v ^include/linux/uaccess.h)

to do the replacement at the end of the merge window.

Requested-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>s390/dasd: fix typos in DASD error messages</title>
<updated>2016-12-14T15:33:40+00:00</updated>
<author>
<name>Stefan Haberland</name>
<email>sth@linux.vnet.ibm.com</email>
</author>
<published>2016-11-18T13:39:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=50cff5adcf8eb8bcdd79087a91878f298fb58dcf'/>
<id>urn:sha1:50cff5adcf8eb8bcdd79087a91878f298fb58dcf</id>
<content type='text'>
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: channel path aware error recovery</title>
<updated>2016-12-12T11:05:03+00:00</updated>
<author>
<name>Stefan Haberland</name>
<email>sth@linux.vnet.ibm.com</email>
</author>
<published>2016-08-08T13:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a521b048bc8c5d3c57a468c2cba70eb60e873616'/>
<id>urn:sha1:a521b048bc8c5d3c57a468c2cba70eb60e873616</id>
<content type='text'>
With this feature, the DASD device driver more robustly handles DASDs
that are attached via multiple channel paths and are subject to
constant Interface-Control-Checks (IFCCs) and Channel-Control-Checks
(CCCs) or loss of High-Performance-FICON (HPF) functionality on one or
more of these paths.

If a channel path does not work correctly, it is removed from normal
operation as long as other channel paths are available. All extended
error recovery states can be queried and reset via user space
interfaces.

Signed-off-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Reviewed-by: Jan Hoeppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: extend dasd path handling</title>
<updated>2016-12-12T11:04:37+00:00</updated>
<author>
<name>Stefan Haberland</name>
<email>sth@linux.vnet.ibm.com</email>
</author>
<published>2016-08-08T13:53:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c93461515a1a16486f4e483cb34170366fa73ea1'/>
<id>urn:sha1:c93461515a1a16486f4e483cb34170366fa73ea1</id>
<content type='text'>
Store flags and path_data per channel path.
Implement get/set functions for various path masks.
The patch does not add functional changes.

Signed-off-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Reviewed-by: Jan Hoeppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: Fix locking issue when changing RO attribute</title>
<updated>2016-10-28T08:09:04+00:00</updated>
<author>
<name>Jan Höppner</name>
<email>hoeppner@linux.vnet.ibm.com</email>
</author>
<published>2016-10-13T11:31:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9f9d53e5bdb4362a73b801176cae49e77bea41fb'/>
<id>urn:sha1:9f9d53e5bdb4362a73b801176cae49e77bea41fb</id>
<content type='text'>
The function dasd_ro_store() calls set_disk_ro() to set the device in
question read-only. Since set_disk_ro() might sleep, we can't call it
while holding a lock. However, we also can't simply check if the device,
block, and gdp references are valid before we call set_disk_ro() because
an offline processing might have been started in the meanwhile which
will destroy those references.

In order to reliably call set_disk_ro() we have to ensure several
things:

- Still check validity of the mentioned references but additionally
  check if offline processing is running and bail out accordingly. Also,
  do this while holding the device lock.
- To ensure that the block device is still safe after the lock, increase
  the open_count while still holding the device lock.

Reviewed-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Signed-off-by: Jan Höppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: Fix locking issue when changing EER attribute</title>
<updated>2016-10-28T08:09:04+00:00</updated>
<author>
<name>Jan Höppner</name>
<email>hoeppner@linux.vnet.ibm.com</email>
</author>
<published>2016-10-12T10:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9de67725c80cb8a7b34b1932e196d2ed61a08879'/>
<id>urn:sha1:9de67725c80cb8a7b34b1932e196d2ed61a08879</id>
<content type='text'>
The reference to a device in question may get lost when the extended
error reporting (EER) attribute is being enabled/disabled while the
device is set offline at the same time. This is due to missing
refcounting and incorrect locking. Fix this by the following:

- In dasd_eer_store() get the device directly and handle the refcount
  accordingly.
- Move the lock in dasd_eer_enable() up so we can ensure safe
  processing.
- Check if the device is being set offline and return with -EBUSY if so.
- While at it, change the return code from -EPERM to -EMEDIUMTYPE as
  suggested by a FIXME, since that is what we're actually checking.

Reviewed-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Signed-off-by: Jan Höppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: Eliminate race condition in dasd_generic_set_offline()</title>
<updated>2016-10-28T08:09:04+00:00</updated>
<author>
<name>Jan Höppner</name>
<email>hoeppner@linux.vnet.ibm.com</email>
</author>
<published>2016-10-18T15:54:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0f57c97f241b4fc18251fb2b1c499e9f71e93c78'/>
<id>urn:sha1:0f57c97f241b4fc18251fb2b1c499e9f71e93c78</id>
<content type='text'>
Before we set a device offline, the open_count for the block device is
checked and certain flags are checked and set as well.
However, this is all done without holding any lock. Potentially, if the
open_count was checked but the DASD_FLAG_OFFLINE wasn't set yet, a
different process might want to increase the open_count depending on
whether DASD_FLAG_OFFLINE is set or not in the meanwhile.

This is quite racy and can lead to the loss of the device for that
process and subsequently lead to a panic.

Fix this by checking the open_count and setting the offline flags while
holding the ccwdev lock.

Reviewed-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Signed-off-by: Jan Höppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: Make use of dasd_set_feature() more often</title>
<updated>2016-10-28T08:09:03+00:00</updated>
<author>
<name>Jan Höppner</name>
<email>hoeppner@linux.vnet.ibm.com</email>
</author>
<published>2016-10-07T15:21:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1081f3a70b74b90b6db60eb1ac6cc3c480d62d57'/>
<id>urn:sha1:1081f3a70b74b90b6db60eb1ac6cc3c480d62d57</id>
<content type='text'>
When setting certain attributes, we actually set the according feature
flag. Do this by using dasd_set_feature() at a few occurrences and
remove duplicate code.

In dasd_set_feature() dasd_find_busid() is used to retrieve the devmap
for the device in question. Combined with the change above, this would
require the device to be set online at least once so that a devmap is
being created. Change that by using dasd_devmap_from_cdev() instead,
which uses dasd_find_busid() first and will create a devmap accordingly
if there is none yet.

Reviewed-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Signed-off-by: Jan Höppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/dasd: Replace simple_strtoul with kstrtouint</title>
<updated>2016-10-28T08:09:03+00:00</updated>
<author>
<name>Jan Höppner</name>
<email>hoeppner@linux.vnet.ibm.com</email>
</author>
<published>2016-10-10T16:29:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ce7a788f4d5aba3361572067c7ac7c4e85d4a070'/>
<id>urn:sha1:ce7a788f4d5aba3361572067c7ac7c4e85d4a070</id>
<content type='text'>
simple_strtoul() has been marked obsolete for quite some time now.
Replace a few last occurrences with kstrtouint().

Reviewed-by: Stefan Haberland &lt;sth@linux.vnet.ibm.com&gt;
Signed-off-by: Jan Höppner &lt;hoeppner@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
