Re: [PATCH] use mutex instead of semaphore in RocketPort driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matthias Kaehlcke wrote:
El Tue, Apr 24, 2007 at 07:53:04PM +0200 Oliver Neukum ha dit:

Am Dienstag, 24. April 2007 19:49 schrieb Matthias Kaehlcke:
@@ -1706,7 +1706,7 @@ static int rp_write(struct tty_struct *tty,
        if (count <= 0 || rocket_paranoia_check(info, "rp_write"))
                return 0;
- down_interruptible(&info->write_sem);
+       mutex_lock_interruptible(&info->write_mtx);
This is a bug. It is also present in the current code, but nevertheless
it is a bug. If you use an interruptible lock, you must be ready to deal
with interrupts, which are ignored by this code.

i fear i don't have the experience/knowledge to fix this bug, thanks
for your remark.
i'm a bit confused now about the interruptible locks, i thought using
them means that the process will be waked up when receiving a
signal. what role are playing interrupts when using interruptible locks?

You are correct, interrupts aren't involved. However if the wait is interrupted by a signal, mutex_lock_interruptible will return a nonzero return code which needs to be checked for (and likely -ERESTARTSYS or -EINTR returned), otherwise the code will blindly continue as though it has locked the mutex even though it has not.

--
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from [email protected]
Home Page: http://www.roberthancock.com/

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux