Messages in this thread Patch in this message | | | Date | Wed, 27 Feb 2002 08:58:05 +0100 (MET) | From | Armin Schindler <> | Subject | Re: [PATCH] 2.4.18 Eicon ISDN driver fix. |
| |
The patch below fixes the race condition with copy_to_user and will not introduce a new race. What can happen is that two reader-processes may get mixed-up messages, but more than one reader isn't allowed here anyway.
Please apply this patch to 2.4 and 2.2, it works for both.
Thanx, Armin
On 26 Feb 2002, petter wahlman wrote: > The following code is calling a possibly blocking operation while > holding a spinlock. > > > Petter Wahlman
--- linux-2.4.18/drivers/isdn/eicon/eicon_mod.c Fri Dec 21 18:41:54 2001 +++ linux-2.4.18-pw/drivers/isdn/eicon/eicon_mod.c Mon Feb 25 23:45:05 2002 @@ -665,8 +665,11 @@ else cnt = skb->len;
- if (user) + if (user) { + spin_unlock_irqrestore(&eicon_lock, flags); copy_to_user(p, skb->data, cnt); + spin_lock_irqsave(&eicon_lock, flags); + } else memcpy(p, skb->data, cnt);
- 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/
| |