Follow-up Comment #2, bug #15295 (project hurd):

Trying to apply patch #3216 , patch #3219 , and patch #4737 does work as
expected for single-threaded programs like ioport/ioport2/ioport3.  I patched
my Hurd console to use i386_io_port_add, it now works.

However, some illegal instructions still happen because for now, gnumach's io
permissions are thread-specific, so that only the thread that called
i386_io_port_all has i/o access.  I guess this will be a problem for almost
every program: people usually expect i/o permissions to be for the whole
task, not for a single thread.  Some libraries will even create threads and
call some callbacks within them, and these callbacks could potentially need
i/o permissions (this is what happens with the Hurd console).

So I'd say we should turn gnumach to handle io permissions per task.  This
doesn't pose any technical problem, since until now every task/thread was
using the kernel tss ; it's just a matter of storing the tss per task, not
per thread.


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=15295>

_______________________________________________
  Message posté via/par Savannah
  http://savannah.gnu.org/



_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to