lkml.org 
[lkml]   [2002]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: might_sleep() in copy_{from,to}_user and friends?
On Fri, 1 Nov 2002, Arnd Bergmann wrote:

> I have been looking for more places in 2.5 that can be marked
> might_sleep() and noticed that all the functions in asm/uaccess.h
> are not marked although they sleep if the memory they access
> has to be paged in.
>
> After adding might_sleep() in ten places in asm-i386/uaccess.h
> and arch/i386/lib/usercopy.c, I have been running this kernel
> for about two weeks. So far, I have found only one place where
> the kernel actually hits this and that one is trivially
> fixable (maintainer cc'd, fix see below).
>
> The question is if we can expect to find more bugs like
> that if we have might_sleep() in uaccess.h or if the
> extra cycles and the work of changing ~100 places (for all
> architectures) are just not worth it.
>
> Arnd <><
>
> ===== sound/core/pcm_native.c 1.17 vs edited =====
> --- 1.17/sound/core/pcm_native.c Sun Oct 13 21:19:17 2002
> +++ edited/sound/core/pcm_native.c Fri Nov 1 12:43:38 2002
> @@ -2014,8 +2014,6 @@
> n = snd_pcm_playback_hw_avail(runtime);
> else
> n = snd_pcm_capture_avail(runtime);
> - if (put_user(n, res))
> - err = -EFAULT;
> break;
> case SNDRV_PCM_STATE_XRUN:
> err = -EPIPE;
> @@ -2026,6 +2024,9 @@
> break;
> }
> spin_unlock_irq(&runtime->lock);
> + if (!ret)
^^^^^^^^^

Shouldn't be here 'if (!err)' ? The fix is in our CVS. Thanks.

> + if (put_user(n, res))
> + err = -EFAULT;
> return err;
> }

Jaroslav

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project http://www.alsa-project.org
SuSE Linux http://www.suse.com

-
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/

\
 
 \ /
  Last update: 2005-03-22 13:30    [W:0.853 / U:0.156 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site