Re: 2.6.14 kernels and above copy_to_user stupidity with IRQ disabledcheck
From: Phillip Susi
Date: Fri Jan 27 2006 - 14:29:36 EST
Probably because you aren't allowed to call copy_to_user while holding a
spin lock? The user pages might be non resident and you can't have a
page fault with interrupts disabled. Also you don't want to spend a lot
of time with interrupts disabled, and copy_to_user can take a fair
amount of time for large copies.
Jeff V. Merkey wrote:
Is there a good reason someone set a disabled_irq() check on 2.6.14
and above for copy_to_user to barf out
tons of bogus stack dump messages if the function is called from
within a spinlock:
i.e.
spin_lock_irqsave(®en_lock, regen_flags);
v = regen_head;
while (v)
{
if (i >= count)
return -EFAULT;
err = copy_to_user(&s[i++], v, sizeof(VIRTUAL_SETUP));
if (err)
return err;
v = v->next;
}
spin_unlock_irqrestore(®en_lock, regen_flags);
is now busted and worked in kernels up to this point. The error
message is annoying but non-fatal.
Jeff
-
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/