<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/s390/cio, branch linux-3.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-03-13T20:40:45Z</updated>
<entry>
<title>s390/qdio: clear DSCI prior to scanning multiple input queues</title>
<updated>2017-03-13T20:40:45Z</updated>
<author>
<name>Julian Wiedmann</name>
</author>
<published>2016-11-21T12:37:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d7689d508b0bcc2c16ba42a9b7e221f694692df7'/>
<id>urn:sha1:d7689d508b0bcc2c16ba42a9b7e221f694692df7</id>
<content type='text'>
commit 1e4a382fdc0ba8d1a85b758c0811de3a3631085e upstream.

For devices with multiple input queues, tiqdio_call_inq_handlers()
iterates over all input queues and clears the device's DSCI
during each iteration. If the DSCI is re-armed during one
of the later iterations, we therefore do not scan the previous
queues again.
The re-arming also raises a new adapter interrupt. But its
handler does not trigger a rescan for the device, as the DSCI
has already been erroneously cleared.
This can result in queue stalls on devices with multiple
input queues.

Fix it by clearing the DSCI just once, prior to scanning the queues.

As the code is moved in front of the loop, we also need to access
the DSCI directly (ie irq-&gt;dsci) instead of going via each queue's
parent pointer to the same irq. This is not a functional change,
and a follow-up patch will clean up the other users.

In practice, this bug only affects CQ-enabled HiperSockets devices,
ie. devices with sysfs-attribute "hsuid" set. Setting a hsuid is
needed for AF_IUCV socket applications that use HiperSockets
communication.

Fixes: 104ea556ee7f ("qdio: support asynchronous delivery of storage blocks")
Reviewed-by: Ursula Braun &lt;ubraun@linux.vnet.ibm.com&gt;
Signed-off-by: Julian Wiedmann &lt;jwi@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
</entry>
<entry>
<title>s390/chsc: fix SEI usage on old FW levels</title>
<updated>2014-05-15T07:55:54Z</updated>
<author>
<name>Sebastian Ott</name>
</author>
<published>2014-04-15T18:08:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1671b4e1a3b308a3bdc8b3cc4b0d9f1abbed1c47'/>
<id>urn:sha1:1671b4e1a3b308a3bdc8b3cc4b0d9f1abbed1c47</id>
<content type='text'>
commit 06cd7a874ec6e09d151aeb1fa8600e14f1ff89f6 upstream.

Using a notification type mask for the store event information chsc
is unsupported on some firmware levels. Retry SEI with that mask set
to zero (which is the old way of requesting only channel subsystem
related events).

Reported-and-tested-by: Stefan Haberland &lt;stefan.haberland@de.ibm.com&gt;
Reviewed-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>s390/cio: fix driver callback initialization for ccw consoles</title>
<updated>2014-05-15T07:54:50Z</updated>
<author>
<name>Sebastian Ott</name>
</author>
<published>2014-01-27T12:26:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=afff7621bd106a71610f6c390b26c5ae21e2e2c6'/>
<id>urn:sha1:afff7621bd106a71610f6c390b26c5ae21e2e2c6</id>
<content type='text'>
commit 2253e8d79237c69086ded391e6767afe16972527 upstream.

ccw consoles are in use before they can be properly registered with
the driver core. For devices which are in use by a device driver we
rely on the ccw_device's pointer to the driver callbacks to be valid.
For ccw consoles this pointer is NULL until they are registered later
during boot and we dereferenced this pointer. This worked by
chance on 64 bit builds (cdev-&gt;drv was NULL but the optional callback
cdev-&gt;drv-&gt;path_event was also NULL by coincidence) and was unnoticed
until we received reports about boot failures on 31 bit systems.
Fix it by initializing the driver pointer for ccw consoles.

Reported-by: Mike Frysinger &lt;vapier@gentoo.org&gt;
Reported-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Reviewed-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>s390/time: correct use of store clock fast</title>
<updated>2013-10-22T07:16:40Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2013-10-17T10:38:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8c071b0f19dfa230335d22ce56a8fab5bd20cedc'/>
<id>urn:sha1:8c071b0f19dfa230335d22ce56a8fab5bd20cedc</id>
<content type='text'>
The result of the store-clock-fast (STCKF) instruction is a bit fuzzy.
It can happen that the value stored on one CPU is smaller than the value
stored on another CPU, although the order of the stores is the other
way around. This can cause deltas of get_tod_clock() values to become
negative when they should not be.

We need to be more careful with store-clock-fast, this patch partially
reverts git commit e4b7b4238e666682555461fa52eecd74652f36bb "time:
always use stckf instead of stck if available". The get_tod_clock()
function now uses the store-clock-extended (STCKE) instruction.
get_tod_clock_fast() can be used if the fuzziness of store-clock-fast
is acceptable e.g. for wait loops local to a CPU.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/cio: fix unlocked access of global bitmap</title>
<updated>2013-08-30T06:57:22Z</updated>
<author>
<name>Sebastian Ott</name>
</author>
<published>2013-08-29T18:31:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eb072a7996467937a1582d0188ed082768902a5a'/>
<id>urn:sha1:eb072a7996467937a1582d0188ed082768902a5a</id>
<content type='text'>
Access to the slow_subchannel_set has to be secured via the
slow_subchannel_lock.

Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/hibernate: add early resume function</title>
<updated>2013-08-30T06:57:15Z</updated>
<author>
<name>Sebastian Ott</name>
</author>
<published>2013-08-29T17:36:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77e844b9644026c11c5883144540155de39af767'/>
<id>urn:sha1:77e844b9644026c11c5883144540155de39af767</id>
<content type='text'>
Some functions that do arch specific resume actions are called
directly from swsusp_asm64.S . Before we add another function call
provide a generic s390_early_resume function which can be used
for this purpose.

Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390: convert interrupt handling to use generic hardirq</title>
<updated>2013-08-22T10:20:04Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2013-06-27T07:01:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f44a225777e40fd9a945b09f958052c47494e1e'/>
<id>urn:sha1:1f44a225777e40fd9a945b09f958052c47494e1e</id>
<content type='text'>
With the introduction of PCI it became apparent that s390 should
convert to generic hardirqs as too many drivers do not have the
correct dependency for GENERIC_HARDIRQS. On the architecture
level s390 does not have irq lines. It has external interrupts,
I/O interrupts and adapter interrupts. This patch hard-codes all
external interrupts as irq #1, all I/O interrupts as irq #2 and
all adapter interrupts as irq #3. The additional information from
the lowcore associated with the interrupt is stored in the
pt_regs of the interrupt frame, where the interrupt handler can
pick it up. For PCI/MSI interrupts the adapter interrupt handler
scans the relevant bit fields and calls generic_handle_irq with
the virtual irq number for the MSI interrupt.

Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/airq: introduce adapter interrupt vector helper</title>
<updated>2013-08-22T10:20:02Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2013-06-25T12:17:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a9a6f0341df9a634a98aaf252c89962af77d1376'/>
<id>urn:sha1:a9a6f0341df9a634a98aaf252c89962af77d1376</id>
<content type='text'>
The PCI code is the first user of adapter interrupts vectors.
Add a set of helpers to airq.c to separate the adatper interrupt
code from the PCI bits. The helpers allow for adapter interrupt
vectors of any size.

Reviewed-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390: replace strict_strtoul() with kstrtoul()</title>
<updated>2013-08-22T10:20:00Z</updated>
<author>
<name>Jingoo Han</name>
</author>
<published>2013-07-22T01:18:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0178722be9ed575d1724f6b815b7a1eb74b1ccb7'/>
<id>urn:sha1:0178722be9ed575d1724f6b815b7a1eb74b1ccb7</id>
<content type='text'>
The usage of strict_strtoul() is not preferred, because
strict_strtoul() is obsolete. Thus, kstrtoul() should be
used.

Signed-off-by: Jingoo Han &lt;jg1.han@samsung.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>
</entry>
<entry>
<title>s390/qdio: remove unused variable</title>
<updated>2013-07-16T10:21:57Z</updated>
<author>
<name>Sebastian Ott</name>
</author>
<published>2013-07-05T07:22:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dae7fd42961e9ae9386f527b6d0e14f6e3da2317'/>
<id>urn:sha1:dae7fd42961e9ae9386f527b6d0e14f6e3da2317</id>
<content type='text'>
Fix a "set but not used" warning found via make W=1.

Signed-off-by: Sebastian Ott &lt;sebott@linux.vnet.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
