<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/s390/block, branch v2.6.27.50</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>S390: dasd: support DIAG access for read-only devices</title>
<updated>2010-01-06T23:17:15+00:00</updated>
<author>
<name>Stefan Weinhuber</name>
<email>wein@de.ibm.com</email>
</author>
<published>2009-12-07T11:51:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=016b73b363d8d717a37e63c267c0c79d40a6d7d3'/>
<id>016b73b363d8d717a37e63c267c0c79d40a6d7d3</id>
<content type='text'>
commit 22825ab7693fd29769518a0d25ba43c01a50092a upstream.

When a DASD device is used with the DIAG discipline, the DIAG
initialization will indicate success or error with a respective
return code. So far we have interpreted a return code of 4 as error,
but it actually means that the initialization was successful, but
the device is read-only. To allow read-only devices to be used with
DIAG we need to accept a return code of 4 as success.

Re-initialization of the DIAG access is also part of the DIAG error
recovery. If we find that the access mode of a device has been
changed from writable to read-only while the device was in use,
we print an error message.

Signed-off-by: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Stephen Powell &lt;zlinuxman@wowway.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 22825ab7693fd29769518a0d25ba43c01a50092a upstream.

When a DASD device is used with the DIAG discipline, the DIAG
initialization will indicate success or error with a respective
return code. So far we have interpreted a return code of 4 as error,
but it actually means that the initialization was successful, but
the device is read-only. To allow read-only devices to be used with
DIAG we need to accept a return code of 4 as success.

Re-initialization of the DIAG access is also part of the DIAG error
recovery. If we find that the access mode of a device has been
changed from writable to read-only while the device was in use,
we print an error message.

Signed-off-by: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Stephen Powell &lt;zlinuxman@wowway.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dcss: fix build bug.</title>
<updated>2008-08-25T16:15:01+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2008-08-25T16:13:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dbe13d9981e55c60a030d0509acc9a8968b9c5bf'/>
<id>dbe13d9981e55c60a030d0509acc9a8968b9c5bf</id>
<content type='text'>
Fix this compile bug:

  CC      drivers/s390/block/dcssblk.o
drivers/s390/block/dcssblk.c: In function 'dcssblk_add_store':
drivers/s390/block/dcssblk.c:387: error: implicit declaration of function 'dcssblk_get_segment_by_name'
drivers/s390/block/dcssblk.c:389: error: label 'release_gd' used but not defined
make[1]: *** [drivers/s390/block/dcssblk.o] Error 1
make: *** [drivers/s390/block/] Error 2

Cc: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix this compile bug:

  CC      drivers/s390/block/dcssblk.o
drivers/s390/block/dcssblk.c: In function 'dcssblk_add_store':
drivers/s390/block/dcssblk.c:387: error: implicit declaration of function 'dcssblk_get_segment_by_name'
drivers/s390/block/dcssblk.c:389: error: label 'release_gd' used but not defined
make[1]: *** [drivers/s390/block/dcssblk.o] Error 1
make: *** [drivers/s390/block/] Error 2

Cc: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dcssblk: fix race in dcssblk_add_store()</title>
<updated>2008-08-21T17:46:42+00:00</updated>
<author>
<name>Gerald Schaefer</name>
<email>gerald.schaefer@de.ibm.com</email>
</author>
<published>2008-08-21T17:46:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=04f64b5756872b474d9429e3b6987ada10bb8012'/>
<id>04f64b5756872b474d9429e3b6987ada10bb8012</id>
<content type='text'>
Concurrently adding the same segment may lead to duplicate device_register()
calls, which will trigger an error in kobject code:
"... don't try to register things with the same name in the same directory".
This patch adds a check to avoid this.

Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Concurrently adding the same segment may lead to duplicate device_register()
calls, which will trigger an error in kobject code:
"... don't try to register things with the same name in the same directory".
This patch adds a check to avoid this.

Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] cio: call ccw driver notify function with lock held</title>
<updated>2008-08-21T17:46:41+00:00</updated>
<author>
<name>Peter Oberparleiter</name>
<email>peter.oberparleiter@de.ibm.com</email>
</author>
<published>2008-08-21T17:46:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=91c36919a456589f4f073671474a1f899e0d3c2b'/>
<id>91c36919a456589f4f073671474a1f899e0d3c2b</id>
<content type='text'>
Calling a ccw driver's notify function without the ccw device lock
held opens up a race window between discovery and handling of a change
in the device operational state. As a result, the device driver may
encounter unexpected device malfunction, leading to out-of-retry
situations or similar.

Remove race by extending the ccw device lock from state change
discovery to the calling of the notify function.

Signed-off-by: Peter Oberparleiter &lt;peter.oberparleiter@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling a ccw driver's notify function without the ccw device lock
held opens up a race window between discovery and handling of a change
in the device operational state. As a result, the device driver may
encounter unexpected device malfunction, leading to out-of-retry
situations or similar.

Remove race by extending the ccw device lock from state change
discovery to the calling of the notify function.

Signed-off-by: Peter Oberparleiter &lt;peter.oberparleiter@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dasd: fix data size for PSF/PRSSD command</title>
<updated>2008-08-21T17:46:41+00:00</updated>
<author>
<name>Stefan Weinhuber</name>
<email>wein@de.ibm.com</email>
</author>
<published>2008-08-21T17:46:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=49fd38bdaa96f093fcad3176a781a4d0de8f8602'/>
<id>49fd38bdaa96f093fcad3176a781a4d0de8f8602</id>
<content type='text'>
The Perform Subsystem Function/Prepare for Read Subsystem Data
command requires 12 bytes of parameter data, but the respective data
structure dasd_psf_prssd_data has a length of 16 bytes.
Current storage servers ignore the obsolete bytes, but older models
fail to execute the command and report an incorrect length error.
This causes the device initilization for these devices to fail.
To fix this problem we need to correct the dasd_psf_prssd_data
structure and shorten it to the correct length.

Reported-by: Ivan Warren &lt;ivan@vmfacility.fr&gt;
Reviewed-by: Ivan Warren &lt;ivan@vmfacility.fr&gt;
Tested-by: Ivan Warren &lt;ivan@vmfacility.fr&gt;
CC: stable &lt;stable@kernel.org&gt;
Signed-off-by: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Perform Subsystem Function/Prepare for Read Subsystem Data
command requires 12 bytes of parameter data, but the respective data
structure dasd_psf_prssd_data has a length of 16 bytes.
Current storage servers ignore the obsolete bytes, but older models
fail to execute the command and report an incorrect length error.
This causes the device initilization for these devices to fail.
To fix this problem we need to correct the dasd_psf_prssd_data
structure and shorten it to the correct length.

Reported-by: Ivan Warren &lt;ivan@vmfacility.fr&gt;
Reviewed-by: Ivan Warren &lt;ivan@vmfacility.fr&gt;
Tested-by: Ivan Warren &lt;ivan@vmfacility.fr&gt;
CC: stable &lt;stable@kernel.org&gt;
Signed-off-by: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] drivers/s390: Use an IS_ERR test rather than a NULL test</title>
<updated>2008-08-21T17:46:39+00:00</updated>
<author>
<name>Julien Brunel</name>
<email>brunel@diku.dk</email>
</author>
<published>2008-08-21T17:46:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0983e56835cbf4796e8f5780c549c32ac1c3afac'/>
<id>0983e56835cbf4796e8f5780c549c32ac1c3afac</id>
<content type='text'>
In case of error, functions dasd_kmalloc_request and idal_buffer_alloc
return an ERR pointer, but never return the NULL pointer. So after a
call to one of these functions, a NULL test should be replaced by an
IS_ERR test.

A simplified version of the semantic patch that makes this change is
as follows:
(http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@correct_null_test@
expression x,E;
statement S1, S2;
@@
x =
(
  dasd_kmalloc_request(...)
|
  idal_buffer_alloc(...)
)
&lt;... when != x = E
if (
(
- x@p2 != NULL
+ ! IS_ERR ( x )
|
- x@p2 == NULL
+ IS_ERR( x )
)
 )
S1
else S2
...&gt;
? x = E;
// &lt;/smpl&gt;

Signed-off-by:  Julien Brunel &lt;brunel@diku.dk&gt;
Signed-off-by:  Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case of error, functions dasd_kmalloc_request and idal_buffer_alloc
return an ERR pointer, but never return the NULL pointer. So after a
call to one of these functions, a NULL test should be replaced by an
IS_ERR test.

A simplified version of the semantic patch that makes this change is
as follows:
(http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@correct_null_test@
expression x,E;
statement S1, S2;
@@
x =
(
  dasd_kmalloc_request(...)
|
  idal_buffer_alloc(...)
)
&lt;... when != x = E
if (
(
- x@p2 != NULL
+ ! IS_ERR ( x )
|
- x@p2 == NULL
+ IS_ERR( x )
)
 )
S1
else S2
...&gt;
? x = E;
// &lt;/smpl&gt;

Signed-off-by:  Julien Brunel &lt;brunel@diku.dk&gt;
Signed-off-by:  Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dasd: Add support for enhanced VM UID</title>
<updated>2008-08-01T14:39:29+00:00</updated>
<author>
<name>Stefan Weinhuber</name>
<email>wein@de.ibm.com</email>
</author>
<published>2008-08-01T14:39:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4abb08c24b5fa7b6ad0807c07077f0f216f6788b'/>
<id>4abb08c24b5fa7b6ad0807c07077f0f216f6788b</id>
<content type='text'>
When z/VM provides two virtual devices (minidisks) that reside on the
same real device, both will receive the configuration data from the
real device and thus get the same uid. To fix this problem, z/VM
provides an additional configuration data record that allows to
distinguish between minidisks.
z/VM APAR VM64273 needs be installed so this fix has an effect.

Signed-off-by: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When z/VM provides two virtual devices (minidisks) that reside on the
same real device, both will receive the configuration data from the
real device and thus get the same uid. To fix this problem, z/VM
provides an additional configuration data record that allows to
distinguish between minidisks.
z/VM APAR VM64273 needs be installed so this fix has an effect.

Signed-off-by: Stefan Weinhuber &lt;wein@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dasd: use -EOPNOTSUPP instead of -ENOTSUPP</title>
<updated>2008-07-17T15:22:10+00:00</updated>
<author>
<name>Stefan Haberland</name>
<email>stefan.haberland@de.ibm.com</email>
</author>
<published>2008-07-17T15:16:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8586cb60ce85f40431cf06fe97512269d3992f03'/>
<id>8586cb60ce85f40431cf06fe97512269d3992f03</id>
<content type='text'>
return value -ENOTSUPP is not valid in userspace context, use
-EOPNOTSUPP instead

Signed-off-by: Stefan Haberland &lt;stefan.haberland@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
return value -ENOTSUPP is not valid in userspace context, use
-EOPNOTSUPP instead

Signed-off-by: Stefan Haberland &lt;stefan.haberland@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dasd: Fix cleanup in dasd_{fba,diag}_check_characteristics().</title>
<updated>2008-07-17T15:22:08+00:00</updated>
<author>
<name>Cornelia Huck</name>
<email>cornelia.huck@de.ibm.com</email>
</author>
<published>2008-07-17T15:16:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7337194f708bac977511c7890d7038ded187041a'/>
<id>7337194f708bac977511c7890d7038ded187041a</id>
<content type='text'>
Signed-off-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] dasd: fix unsolicited SIM handling.</title>
<updated>2008-07-17T15:22:08+00:00</updated>
<author>
<name>Stefan Haberland</name>
<email>stefan.haberland@de.ibm.com</email>
</author>
<published>2008-07-17T15:16:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9d853caf44e6f969a9ad056a9937e8d97bc2c761'/>
<id>9d853caf44e6f969a9ad056a9937e8d97bc2c761</id>
<content type='text'>
Add missing schedule_bh and check that there is 32 bit sense data.

Signed-off-by: Stefan Haberland &lt;stefan.haberland@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add missing schedule_bh and check that there is 32 bit sense data.

Signed-off-by: Stefan Haberland &lt;stefan.haberland@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
