lkml.org 
[lkml]   [2004]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectset_fs() preemption safety? [was sys_fs() safety oops !]
is the following block safe to be used in preemptible kernels?

old_fs = get_fs();
set_fs(KERNEL_DS);

do_your_things here; (usually call sys calls stuff from kernel space)

set_fs(old_fs);

i will explain my doubt further,
in nonpreempt kernels this changes the fs segment only on current cpu
and is restored before other code is run on that cpu, you are strictly
_not_ suppose to call schedule without restoring fs first.

but what about when preempt is enabled

even if i don't call schedule other code might start running on this
current cpu without me restoring the fs first?

this code block appears in many places.. even in 2.6 kernels without
disabling the preemption or holding spinlocks. so i am confused...

ne explanations are welcome, thanks in advance

and if this sound a lot funny please laugh your hearts out, a favour
of explaining the joke to this newbee is always welcome
--
BAIN
-
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 14:04    [W:0.052 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site