Yong Chi wrote:
> Hopefully this will do for SMP locks. =)
You must not hold a spinlock across put_user - instead you must copy the
get_queued_event(user) into a local variable, spinunlock and then copy
it to userspace.
Compare drivers/sbus/char/sunkbd.c, function kbd_read from 2.2 and 2.4:
2.2
Take 2 based on semaphore -)
Jan-Simon Pendry wrote:
> holding a spin lock across a (potential) sleep is a bug - it can
> lead to deadlock.
>
> jan-simon.
>
> Jakub Jelinek wrote:
> >
> > On Thu, Oct 12, 2000 at 11:38:11AM -0400, Yong Chi wrote:
> > > Hopefully this will do for SMP locks. =)
>
holding a spin lock across a (potential) sleep is a bug - it can
lead to deadlock.
jan-simon.
Jakub Jelinek wrote:
>
> On Thu, Oct 12, 2000 at 11:38:11AM -0400, Yong Chi wrote:
> > Hopefully this will do for SMP locks. =)
>
> Holding a spinlock for this long (especially when you might sleep t
On Thu, Oct 12, 2000 at 11:38:11AM -0400, Yong Chi wrote:
> Hopefully this will do for SMP locks. =)
Holding a spinlock for this long (especially when you might sleep there in two
places (interruptible_sleep_on, put_user)) is basically a bad idea.
spinlocks are designed to be holded only for sho
4 matches
Mail list logo