Re: [patch 6/11] s390: in_interrupt vs. in_atomic.

From: Andrew Morton
Date: Fri Jun 03 2005 - 03:16:56 EST


Martin Schwidefsky <schwidefsky@xxxxxxxxxx> wrote:
>
> > > The condition for no context in do_exception checks for hard and
> > > soft interrupts by using in_interrupt() but not for preemption.
> > > This is bad for the users of __copy_from/to_user_inatomic because
> > > the fault handler might call schedule although the preemption
> > > count is != 0. Use in_atomic() instead in_interrupt().
> > >
> >
> > hm. Under what circumstances do you expect this test to trigger?
>
> e.g. by the following:
>
> static inline int get_futex_value_locked(int *dest, int __user *from)
> {
> int ret;
>
> inc_preempt_count();
> ret = __copy_from_user_inatomic(dest, from, sizeof(int));
> dec_preempt_count();
> preempt_check_resched();
>
> return ret ? -EFAULT : 0;
> }
>

OK, that's what it's designed for. Just checking ;)
-
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/