Skip to content

Commit 9cb7284

Browse files
frank.blaschka@de.ibm.comdavem330
authored andcommitted
qdio: support forced signal adapter indications
This patch ensures that signal adapter commands are issued if they are indicated to be required. Signed-off-by: Einar Lueck <[email protected]> Signed-off-by: Jan Glauber <[email protected]> Signed-off-by: Frank Blaschka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 104ea55 commit 9cb7284

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

arch/s390/include/asm/qdio.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,16 @@ struct qdio_outbuf_state {
279279

280280
#define CHSC_AC1_INITIATE_INPUTQ 0x80
281281

282+
283+
/* qdio adapter-characteristics-1 flag */
284+
#define AC1_SIGA_INPUT_NEEDED 0x40 /* process input queues */
285+
#define AC1_SIGA_OUTPUT_NEEDED 0x20 /* process output queues */
286+
#define AC1_SIGA_SYNC_NEEDED 0x10 /* ask hypervisor to sync */
287+
#define AC1_AUTOMATIC_SYNC_ON_THININT 0x08 /* set by hypervisor */
288+
#define AC1_AUTOMATIC_SYNC_ON_OUT_PCI 0x04 /* set by hypervisor */
289+
#define AC1_SC_QEBSM_AVAILABLE 0x02 /* available for subchannel */
290+
#define AC1_SC_QEBSM_ENABLED 0x01 /* enabled for subchannel */
291+
282292
#define CHSC_AC2_DATA_DIV_AVAILABLE 0x0010
283293
#define CHSC_AC2_DATA_DIV_ENABLED 0x0002
284294

drivers/s390/cio/qdio.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,6 @@ enum qdio_irq_states {
8787
#define CHSC_FLAG_QDIO_CAPABILITY 0x80
8888
#define CHSC_FLAG_VALIDITY 0x40
8989

90-
/* qdio adapter-characteristics-1 flag */
91-
#define AC1_SIGA_INPUT_NEEDED 0x40 /* process input queues */
92-
#define AC1_SIGA_OUTPUT_NEEDED 0x20 /* process output queues */
93-
#define AC1_SIGA_SYNC_NEEDED 0x10 /* ask hypervisor to sync */
94-
#define AC1_AUTOMATIC_SYNC_ON_THININT 0x08 /* set by hypervisor */
95-
#define AC1_AUTOMATIC_SYNC_ON_OUT_PCI 0x04 /* set by hypervisor */
96-
#define AC1_SC_QEBSM_AVAILABLE 0x02 /* available for subchannel */
97-
#define AC1_SC_QEBSM_ENABLED 0x01 /* enabled for subchannel */
98-
9990
/* SIGA flags */
10091
#define QDIO_SIGA_WRITE 0x00
10192
#define QDIO_SIGA_READ 0x01

drivers/s390/cio/qdio_main.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1592,12 +1592,9 @@ static int handle_inbound(struct qdio_q *q, unsigned int callflags,
15921592
used = atomic_add_return(count, &q->nr_buf_used) - count;
15931593
BUG_ON(used + count > QDIO_MAX_BUFFERS_PER_Q);
15941594

1595-
/* no need to signal as long as the adapter had free buffers */
1596-
if (used)
1597-
return 0;
1598-
15991595
if (need_siga_in(q))
16001596
return qdio_siga_input(q);
1597+
16011598
return 0;
16021599
}
16031600

0 commit comments

Comments
 (0)