allow i386 __set_thread_area to be called more than once
authorRich Felker <dalias@aerifal.cx>
Mon, 13 Apr 2015 21:26:08 +0000 (17:26 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 13 Apr 2015 21:26:08 +0000 (17:26 -0400)
commitf630df09b1fd954eda16e2f779da0b5ecc9d80d3
treeffd7214107c40ed9ab6d321a72184efc4b4b8533
parentf3ddd173806fd5c60b3f034528ca24542aecc5b9
allow i386 __set_thread_area to be called more than once

previously a new GDT slot was requested, even if one had already been
obtained by a previous call. instead extract the old slot number from
GS and reuse it if it was already set. the formula (GS-3)/8 for the
slot number automatically yields -1 (request for new slot) if GS is
zero (unset).
src/thread/i386/__set_thread_area.s