• Stas Sergeev's avatar
    [PATCH] Fix IO bitmap invalidate · 037ebff3
    Stas Sergeev authored
    There is a bug where if any process that obtained an IO access
    permissions via ioperm() does not explicitly "drop" that permissions,
    the IO permissions don't get properly invalidated on process exit.
    
    The cause is that exit_thread() only invalidates the per-thread
    io_bitmap pointer, but doesn't invalidate the per-TSS io_bitmap pointer
    as well. 
    
    As the per-thread pointer is invalidated, __switch_to() doesn't take
    care of that one either, so the per-TSS pointer stays valid as long as
    some other process does ioperm().
    
    This fixes the problem - it invalidates the per-TSS io_bitmap pointer
    and the problem goes away. 
    037ebff3
process.c 19 KB