Messages in this thread | ![/](/images/icornerl.gif) | | Date | Tue, 19 Jun 2007 09:42:08 +0200 | From | Jiri Slaby <> | Subject | Re: [PATCH 1/1] Char: istallion, init+locking fixes |
| |
Ingo Korb napsal(a): > Move brdp->iosize assignment in stli_initecp up a few lines to stop the > driver from requesting an I/O region of length 0. > > Remove spin_lock_irqsave/spin_unlock_irqrestore from __stli_sendcmd as > all users of that function take the lock already. > > Signed-off-by: Ingo Korb <ml@akana.de> > --- > One thing I dislike about this driver: It polls its cards every jiffy to > look for new data. The cards are able to use interrupts (some of the > drivers for other OSes use them), but as far as I know there is no open > documentation. Unfortunately the DOS driver (probably easiest to > analyze) also uses polling. =( > > > diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c > index 7b279d1..0bc1c37 100644 > --- a/drivers/char/istallion.c > +++ b/drivers/char/istallion.c > @@ -2168,8 +2168,6 @@ static void __stli_sendcmd(struct stlibrd *brdp, struct stliport *portp, unsigne > unsigned char __iomem *bits; > unsigned long flags;
Remove the flags and you will see the bug, you introduced ;).
> - spin_lock_irqsave(&brd_lock, flags); > - > if (test_bit(ST_CMDING, &portp->state)) { > printk(KERN_ERR "STALLION: command already busy, cmd=%x!\n", > (int) cmd); > @@ -2194,7 +2192,6 @@ static void __stli_sendcmd(struct stlibrd *brdp, struct stliport *portp, unsigne > writeb(readb(bits) | portp->portbit, bits); > set_bit(ST_CMDING, &portp->state); > EBRDDISABLE(brdp); > - spin_unlock_irqrestore(&brd_lock, flags); > }
regards, -- http://www.fi.muni.cz/~xslaby/ Jiri Slaby faculty of informatics, masaryk university, brno, cz e-mail: jirislaby gmail com, gpg pubkey fingerprint: B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |