From: Greg Smith While debugging why our LCS emulator is having some problems I noticed the following weirdness in drivers/s390/net/lcs.c routine lcs_irq. The `if' statement is always true since SCHN_STAT_PCI is defined as 0x80. Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Andrew Morton --- drivers/s390/net/lcs.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/s390/net/lcs.c~s390-lcs-incorrect-test drivers/s390/net/lcs.c --- devel/drivers/s390/net/lcs.c~s390-lcs-incorrect-test 2006-05-08 10:34:59.000000000 -0700 +++ devel-akpm/drivers/s390/net/lcs.c 2006-05-08 10:34:59.000000000 -0700 @@ -1348,7 +1348,7 @@ lcs_irq(struct ccw_device *cdev, unsigne index = (struct ccw1 *) __va((addr_t) irb->scsw.cpa) - channel->ccws; if ((irb->scsw.actl & SCSW_ACTL_SUSPENDED) || - (irb->scsw.cstat | SCHN_STAT_PCI)) + (irb->scsw.cstat & SCHN_STAT_PCI)) /* Bloody io subsystem tells us lies about cpa... */ index = (index - 1) & (LCS_NUM_BUFFS - 1); while (channel->io_idx != index) { _