s390 lcs incorrect test

From: Greg Smith
Date: Wed Apr 26 2006 - 20:06:19 EST


While debugging why our LCS emulator is having some problems I noticed
the following weirdness in drivers/s390/net/lcs.c routine lcs_irq:

--- lcs.c.orig 2006-04-24 16:20:24.000000000 -0400
+++ lcs.c 2006-04-26 19:56:45.000000000 -0400
@@ -1354,7 +1354,7 @@
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) {

The `if' statement is always true since SCHN_STAT_PCI is defined as
0x80. Don't know if this has anything to do with our LCS problems but
thought I would pass it on.

Greg Smith


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/