diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-10 07:19:07 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-10 07:19:07 -0800 |
commit | 909ccdb4cf9b2c3bfb803392e93c6195d2e68799 (patch) | |
tree | d06764ca1a5cb2354b8137dbdb5541ea4efdc669 | |
parent | 2cbd1883881ac490d93514324b947a0267c5ca96 (diff) | |
parent | 7717aefff3290c61e5f9e6aa39e9e1dc63cd4e81 (diff) | |
download | linux-3.10-909ccdb4cf9b2c3bfb803392e93c6195d2e68799.tar.gz linux-3.10-909ccdb4cf9b2c3bfb803392e93c6195d2e68799.tar.bz2 linux-3.10-909ccdb4cf9b2c3bfb803392e93c6195d2e68799.zip |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] Fix struct _lowcore layout.
[S390] qdio: prevent call trace if CHPID is offline
[S390] qdio: continue polling for buffer state ERROR
-rw-r--r-- | arch/s390/include/asm/lowcore.h | 4 | ||||
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index f2ef4b619ce..c25dfac7dd7 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h @@ -293,12 +293,12 @@ struct _lowcore __u64 clock_comparator; /* 0x02d0 */ __u32 machine_flags; /* 0x02d8 */ __u32 ftrace_func; /* 0x02dc */ - __u8 pad_0x02f0[0x0300-0x02f0]; /* 0x02f0 */ + __u8 pad_0x02e0[0x0300-0x02e0]; /* 0x02e0 */ /* Interrupt response block */ __u8 irb[64]; /* 0x0300 */ - __u8 pad_0x0400[0x0e00-0x0400]; /* 0x0400 */ + __u8 pad_0x0340[0x0e00-0x0340]; /* 0x0340 */ /* * 0xe00 contains the address of the IPL Parameter Information diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 999fe80c405..62b654af923 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -531,7 +531,7 @@ static inline int qdio_inbound_q_done(struct qdio_q *q) qdio_siga_sync_q(q); get_buf_state(q, q->first_to_check, &state, 0); - if (state == SLSB_P_INPUT_PRIMED) + if (state == SLSB_P_INPUT_PRIMED || state == SLSB_P_INPUT_ERROR) /* more work coming */ return 0; @@ -960,6 +960,8 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm, qdio_handle_activate_check(cdev, intparm, cstat, dstat); break; + case QDIO_IRQ_STATE_STOPPED: + break; default: WARN_ON(1); } |