From: Cornelia Huck <cohuck@redhat.com>
To: Halil Pasic <pasic@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Farhan Ali <alifm@linux.ibm.com>,
Pierre Morel <pmorel@linux.ibm.com>
Cc: linux-s390@vger.kernel.org, kvm@vger.kernel.org,
qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
Alex Williamson <alex.williamson@redhat.com>,
Cornelia Huck <cohuck@redhat.com>
Subject: [Qemu-devel] [PATCH v2 1/5] vfio-ccw: make it safe to access channel programs
Date: Mon, 21 Jan 2019 12:03:50 +0100 [thread overview]
Message-ID: <20190121110354.2247-2-cohuck@redhat.com> (raw)
In-Reply-To: <20190121110354.2247-1-cohuck@redhat.com>
When we get a solicited interrupt, the start function may have
been cleared by a csch, but we still have a channel program
structure allocated. Make it safe to call the cp accessors in
any case, so we can call them unconditionally.
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
drivers/s390/cio/vfio_ccw_cp.c | 3 +++
drivers/s390/cio/vfio_ccw_cp.h | 2 ++
2 files changed, 5 insertions(+)
diff --git a/drivers/s390/cio/vfio_ccw_cp.c b/drivers/s390/cio/vfio_ccw_cp.c
index 70a006ba4d05..714987ceea9a 100644
--- a/drivers/s390/cio/vfio_ccw_cp.c
+++ b/drivers/s390/cio/vfio_ccw_cp.c
@@ -335,6 +335,7 @@ static void cp_unpin_free(struct channel_program *cp)
struct ccwchain *chain, *temp;
int i;
+ cp->initialized = false;
list_for_each_entry_safe(chain, temp, &cp->ccwchain_list, next) {
for (i = 0; i < chain->ch_len; i++) {
pfn_array_table_unpin_free(chain->ch_pat + i,
@@ -701,6 +702,8 @@ int cp_init(struct channel_program *cp, struct device *mdev, union orb *orb)
*/
cp->orb.cmd.c64 = 1;
+ cp->initialized = true;
+
return ret;
}
diff --git a/drivers/s390/cio/vfio_ccw_cp.h b/drivers/s390/cio/vfio_ccw_cp.h
index a4b74fb1aa57..3c20cd208da5 100644
--- a/drivers/s390/cio/vfio_ccw_cp.h
+++ b/drivers/s390/cio/vfio_ccw_cp.h
@@ -21,6 +21,7 @@
* @ccwchain_list: list head of ccwchains
* @orb: orb for the currently processed ssch request
* @mdev: the mediated device to perform page pinning/unpinning
+ * @initialized: whether this instance is actually initialized
*
* @ccwchain_list is the head of a ccwchain list, that contents the
* translated result of the guest channel program that pointed out by
@@ -30,6 +31,7 @@ struct channel_program {
struct list_head ccwchain_list;
union orb orb;
struct device *mdev;
+ bool initialized;
};
extern int cp_init(struct channel_program *cp, struct device *mdev,
--
2.17.2
next prev parent reply other threads:[~2019-01-21 11:04 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-21 11:03 [Qemu-devel] [PATCH v2 0/5] vfio-ccw: support hsch/csch (kernel part) Cornelia Huck
2019-01-21 11:03 ` Cornelia Huck [this message]
2019-01-22 14:56 ` [Qemu-devel] [PATCH v2 1/5] vfio-ccw: make it safe to access channel programs Halil Pasic
2019-01-22 15:19 ` Cornelia Huck
2019-01-21 11:03 ` [Qemu-devel] [PATCH v2 2/5] vfio-ccw: concurrent I/O handling Cornelia Huck
2019-01-21 20:20 ` Halil Pasic
2019-01-22 10:29 ` Cornelia Huck
2019-01-22 11:17 ` Halil Pasic
2019-01-22 11:53 ` Cornelia Huck
2019-01-22 12:46 ` Halil Pasic
2019-01-22 17:26 ` Cornelia Huck
2019-01-22 19:03 ` Halil Pasic
2019-01-23 10:34 ` Cornelia Huck
2019-01-23 13:06 ` Halil Pasic
2019-01-23 13:34 ` Cornelia Huck
2019-01-24 19:16 ` Eric Farman
2019-01-25 10:13 ` Cornelia Huck
2019-01-22 18:33 ` Halil Pasic
2019-01-23 10:21 ` Cornelia Huck
2019-01-23 13:30 ` Halil Pasic
2019-01-24 10:05 ` Cornelia Huck
2019-01-24 10:08 ` Pierre Morel
2019-01-24 10:19 ` Cornelia Huck
2019-01-24 11:18 ` Pierre Morel
2019-01-24 11:45 ` Halil Pasic
2019-01-24 19:14 ` Eric Farman
2019-01-25 2:25 ` Eric Farman
2019-01-25 2:37 ` Eric Farman
2019-01-25 10:24 ` Cornelia Huck
2019-01-25 12:58 ` Cornelia Huck
2019-01-25 14:01 ` Halil Pasic
2019-01-25 14:21 ` Cornelia Huck
2019-01-25 16:04 ` Halil Pasic
2019-01-28 17:13 ` Cornelia Huck
2019-01-28 19:30 ` Halil Pasic
2019-01-29 9:58 ` Cornelia Huck
2019-01-29 19:39 ` Halil Pasic
2019-01-30 13:29 ` Cornelia Huck
2019-01-30 14:32 ` Farhan Ali
2019-01-28 17:09 ` Cornelia Huck
2019-01-28 19:15 ` Halil Pasic
2019-01-28 21:48 ` Eric Farman
2019-01-29 10:20 ` Cornelia Huck
2019-01-29 14:14 ` Eric Farman
2019-01-29 18:53 ` Cornelia Huck
2019-01-29 10:10 ` Cornelia Huck
2019-01-25 15:57 ` Eric Farman
2019-01-28 17:24 ` Cornelia Huck
2019-01-28 21:50 ` Eric Farman
2019-01-25 20:22 ` Eric Farman
2019-01-28 17:31 ` Cornelia Huck
2019-01-25 13:09 ` Halil Pasic
2019-01-25 12:58 ` Halil Pasic
2019-01-25 20:21 ` Eric Farman
2019-01-21 11:03 ` [Qemu-devel] [PATCH v2 3/5] vfio-ccw: add capabilities chain Cornelia Huck
2019-01-23 15:57 ` [Qemu-devel] [qemu-s390x] " Halil Pasic
2019-01-25 16:19 ` [Qemu-devel] " Eric Farman
2019-01-25 21:00 ` Eric Farman
2019-01-28 17:34 ` Cornelia Huck
2019-01-21 11:03 ` [Qemu-devel] [PATCH v2 4/5] s390/cio: export hsch to modules Cornelia Huck
2019-01-22 15:21 ` [Qemu-devel] [qemu-s390x] " Halil Pasic
2019-01-21 11:03 ` [Qemu-devel] [PATCH v2 5/5] vfio-ccw: add handling for async channel instructions Cornelia Huck
2019-01-23 15:51 ` Halil Pasic
2019-01-24 10:06 ` Cornelia Huck
2019-01-24 10:37 ` Halil Pasic
2019-01-25 21:00 ` Eric Farman
2019-01-28 17:40 ` Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190121110354.2247-2-cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=alifm@linux.ibm.com \
--cc=farman@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.ibm.com \
--cc=pmorel@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).