From: Eric Farman <farman@linux.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>, Farhan Ali <alifm@linux.ibm.com>
Cc: Halil Pasic <pasic@linux.ibm.com>,
linux-s390@vger.kernel.org, kvm@vger.kernel.org,
Eric Farman <farman@linux.ibm.com>
Subject: [PATCH v2 3/9] s390/cio: Generalize the TIC handler
Date: Thu, 6 Jun 2019 22:28:25 +0200 [thread overview]
Message-ID: <20190606202831.44135-4-farman@linux.ibm.com> (raw)
In-Reply-To: <20190606202831.44135-1-farman@linux.ibm.com>
Refactor ccwchain_handle_tic() into a routine that handles a channel
program address (which itself is a CCW pointer), rather than a CCW pointer
that is only a TIC CCW. This will make it easier to reuse this code for
other CCW commands.
Signed-off-by: Eric Farman <farman@linux.ibm.com>
---
drivers/s390/cio/vfio_ccw_cp.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/s390/cio/vfio_ccw_cp.c b/drivers/s390/cio/vfio_ccw_cp.c
index 628daf1a8f9a..52735cdb0270 100644
--- a/drivers/s390/cio/vfio_ccw_cp.c
+++ b/drivers/s390/cio/vfio_ccw_cp.c
@@ -497,13 +497,13 @@ static int tic_target_chain_exists(struct ccw1 *tic, struct channel_program *cp)
static int ccwchain_loop_tic(struct ccwchain *chain,
struct channel_program *cp);
-static int ccwchain_handle_tic(struct ccw1 *tic, struct channel_program *cp)
+static int ccwchain_handle_ccw(u32 cda, struct channel_program *cp)
{
struct ccwchain *chain;
int len, ret;
/* Get chain length. */
- len = ccwchain_calc_length(tic->cda, cp);
+ len = ccwchain_calc_length(cda, cp);
if (len < 0)
return len;
@@ -511,10 +511,10 @@ static int ccwchain_handle_tic(struct ccw1 *tic, struct channel_program *cp)
chain = ccwchain_alloc(cp, len);
if (!chain)
return -ENOMEM;
- chain->ch_iova = tic->cda;
+ chain->ch_iova = cda;
/* Copy the new chain from user. */
- ret = copy_ccw_from_iova(cp, chain->ch_ccw, tic->cda, len);
+ ret = copy_ccw_from_iova(cp, chain->ch_ccw, cda, len);
if (ret) {
ccwchain_free(chain);
return ret;
@@ -540,7 +540,8 @@ static int ccwchain_loop_tic(struct ccwchain *chain, struct channel_program *cp)
if (tic_target_chain_exists(tic, cp))
continue;
- ret = ccwchain_handle_tic(tic, cp);
+ /* Build a ccwchain for the next segment */
+ ret = ccwchain_handle_ccw(tic->cda, cp);
if (ret)
return ret;
}
--
2.17.1
next prev parent reply other threads:[~2019-06-06 20:28 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-06 20:28 [PATCH v2 0/9] s390: vfio-ccw code rework Eric Farman
2019-06-06 20:28 ` [PATCH v2 1/9] s390/cio: Squash cp_free() and cp_unpin_free() Eric Farman
2019-06-12 11:07 ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 2/9] s390/cio: Refactor the routine that handles TIC CCWs Eric Farman
2019-06-12 11:17 ` Cornelia Huck
2019-06-06 20:28 ` Eric Farman [this message]
2019-06-12 11:18 ` [PATCH v2 3/9] s390/cio: Generalize the TIC handler Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 4/9] s390/cio: Use generalized CCW handler in cp_init() Eric Farman
2019-06-12 11:18 ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 5/9] vfio-ccw: Rearrange pfn_array and pfn_array_table arrays Eric Farman
2019-06-13 16:02 ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 6/9] vfio-ccw: Adjust the first IDAW outside of the nested loops Eric Farman
2019-06-13 16:02 ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 7/9] vfio-ccw: Remove pfn_array_table Eric Farman
2019-06-13 16:03 ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 8/9] vfio-ccw: Rearrange IDAL allocation in direct CCW Eric Farman
2019-06-14 9:42 ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 9/9] s390/cio: Combine direct and indirect CCW paths Eric Farman
2019-06-14 10:01 ` Cornelia Huck
2019-06-14 10:30 ` Eric Farman
2019-06-14 10:03 ` [PATCH v2 0/9] s390: vfio-ccw code rework Cornelia Huck
2019-06-17 13:32 ` 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=20190606202831.44135-4-farman@linux.ibm.com \
--to=farman@linux.ibm.com \
--cc=alifm@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.