summaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio_main.c
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2021-07-23 08:06:50 +0200
committerVasily Gorbik <gor@linux.ibm.com>2021-08-18 10:01:28 +0200
commit10376b53502ef14661274c40a78cb860b54455fa (patch)
tree94d89dc3af7a109d8ad1c335daf12b3b7061f62a /drivers/s390/cio/qdio_main.c
parents390/qdio: remove unused sync-after-IRQ infrastructure (diff)
downloadlinux-10376b53502ef14661274c40a78cb860b54455fa.tar.xz
linux-10376b53502ef14661274c40a78cb860b54455fa.zip
s390/qdio: clean up SIGA capability tracking
Don't bother with translating the SIGA-related capability bits into our own internal format, just cache the full qdioac1 field instead. Also adjust the helper macros so that they take a qdio_irq argument and can be used everywhere, instead of taking a qdio_q and then internally dereferencing the parent pointer. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Benjamin Block <bblock@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
-rw-r--r--drivers/s390/cio/qdio_main.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 4e861a9e825c..86ee3a490e8a 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -375,7 +375,7 @@ static inline int qdio_siga_input(struct qdio_q *q)
int debug_get_buf_state(struct qdio_q *q, unsigned int bufnr,
unsigned char *state)
{
- if (need_siga_sync(q))
+ if (qdio_need_siga_sync(q->irq_ptr))
qdio_siga_sync_q(q);
return get_buf_state(q, bufnr, state, 0);
}
@@ -497,7 +497,7 @@ static inline int qdio_inbound_q_done(struct qdio_q *q, unsigned int start)
if (!atomic_read(&q->nr_buf_used))
return 1;
- if (need_siga_sync(q))
+ if (qdio_need_siga_sync(q->irq_ptr))
qdio_siga_sync_q(q);
get_buf_state(q, start, &state, 0);
@@ -572,7 +572,7 @@ static int qdio_kick_outbound_q(struct qdio_q *q, unsigned int count,
int retries = 0, cc;
unsigned int busy_bit;
- if (!need_siga_out(q))
+ if (!qdio_need_siga_out(q->irq_ptr))
return 0;
DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w:%1d", q->nr);
@@ -1127,7 +1127,7 @@ static int handle_inbound(struct qdio_q *q, int bufnr, int count)
count = set_buf_states(q, bufnr, SLSB_CU_INPUT_EMPTY, count);
atomic_add(count, &q->nr_buf_used);
- if (need_siga_in(q))
+ if (qdio_need_siga_in(q->irq_ptr))
return qdio_siga_input(q);
return 0;
@@ -1159,7 +1159,7 @@ static int handle_outbound(struct qdio_q *q, unsigned int bufnr, unsigned int co
WARN_ON_ONCE(!IS_ALIGNED(phys_aob, 256));
rc = qdio_kick_outbound_q(q, count, phys_aob);
- } else if (need_siga_sync(q)) {
+ } else if (qdio_need_siga_sync(q->irq_ptr)) {
rc = qdio_siga_sync_q(q);
} else if (count < QDIO_MAX_BUFFERS_PER_Q &&
get_buf_state(q, prev_buf(bufnr), &state, 0) > 0 &&
@@ -1283,7 +1283,7 @@ int qdio_inspect_queue(struct ccw_device *cdev, unsigned int nr, bool is_input,
return -ENODEV;
q = is_input ? irq_ptr->input_qs[nr] : irq_ptr->output_qs[nr];
- if (need_siga_sync(q))
+ if (qdio_need_siga_sync(irq_ptr))
qdio_siga_sync_q(q);
return __qdio_inspect_queue(q, bufnr, error);