mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-19 02:29:40 +00:00
Remove the special _amd64_set_gsbase() code for #ifdef COMPAT_32BIT, now
that the amd64 kernel implements i386_get/set_gsbase(). All the rest of the ldt backwards compat code should go away soon.
This commit is contained in:
parent
8d598c0d01
commit
1ec622fdd6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=145569
@ -78,10 +78,8 @@ _tcb_dtor(struct tcb *tcb)
|
|||||||
struct kcb *
|
struct kcb *
|
||||||
_kcb_ctor(struct kse *kse)
|
_kcb_ctor(struct kse *kse)
|
||||||
{
|
{
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
union descriptor ldt;
|
union descriptor ldt;
|
||||||
void *base;
|
void *base;
|
||||||
#endif
|
|
||||||
struct kcb *kcb;
|
struct kcb *kcb;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
@ -90,7 +88,6 @@ _kcb_ctor(struct kse *kse)
|
|||||||
bzero(kcb, sizeof(struct kcb));
|
bzero(kcb, sizeof(struct kcb));
|
||||||
kcb->kcb_self = kcb;
|
kcb->kcb_self = kcb;
|
||||||
kcb->kcb_kse = kse;
|
kcb->kcb_kse = kse;
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
switch (_thr_using_setbase) {
|
switch (_thr_using_setbase) {
|
||||||
case 1: /* use i386_set_gsbase() in _kcb_set */
|
case 1: /* use i386_set_gsbase() in _kcb_set */
|
||||||
kcb->kcb_ldt = -1;
|
kcb->kcb_ldt = -1;
|
||||||
@ -121,7 +118,6 @@ _kcb_ctor(struct kse *kse)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return (kcb);
|
return (kcb);
|
||||||
}
|
}
|
||||||
@ -129,11 +125,9 @@ _kcb_ctor(struct kse *kse)
|
|||||||
void
|
void
|
||||||
_kcb_dtor(struct kcb *kcb)
|
_kcb_dtor(struct kcb *kcb)
|
||||||
{
|
{
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
if (kcb->kcb_ldt >= 0) {
|
if (kcb->kcb_ldt >= 0) {
|
||||||
i386_set_ldt(kcb->kcb_ldt, NULL, 1);
|
i386_set_ldt(kcb->kcb_ldt, NULL, 1);
|
||||||
kcb->kcb_ldt = -1; /* just in case */
|
kcb->kcb_ldt = -1; /* just in case */
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
free(kcb);
|
free(kcb);
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,6 @@ void _kcb_dtor(struct kcb *);
|
|||||||
static __inline void
|
static __inline void
|
||||||
_kcb_set(struct kcb *kcb)
|
_kcb_set(struct kcb *kcb)
|
||||||
{
|
{
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
if (_thr_using_setbase == 1) {
|
if (_thr_using_setbase == 1) {
|
||||||
@ -163,9 +162,6 @@ _kcb_set(struct kcb *kcb)
|
|||||||
val = (kcb->kcb_ldt << 3) | 7;
|
val = (kcb->kcb_ldt << 3) | 7;
|
||||||
__asm __volatile("movl %0, %%gs" : : "r" (val));
|
__asm __volatile("movl %0, %%gs" : : "r" (val));
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
_amd64_set_gsbase(kcb);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,10 +78,8 @@ _tcb_dtor(struct tcb *tcb)
|
|||||||
struct kcb *
|
struct kcb *
|
||||||
_kcb_ctor(struct kse *kse)
|
_kcb_ctor(struct kse *kse)
|
||||||
{
|
{
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
union descriptor ldt;
|
union descriptor ldt;
|
||||||
void *base;
|
void *base;
|
||||||
#endif
|
|
||||||
struct kcb *kcb;
|
struct kcb *kcb;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
@ -90,7 +88,6 @@ _kcb_ctor(struct kse *kse)
|
|||||||
bzero(kcb, sizeof(struct kcb));
|
bzero(kcb, sizeof(struct kcb));
|
||||||
kcb->kcb_self = kcb;
|
kcb->kcb_self = kcb;
|
||||||
kcb->kcb_kse = kse;
|
kcb->kcb_kse = kse;
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
switch (_thr_using_setbase) {
|
switch (_thr_using_setbase) {
|
||||||
case 1: /* use i386_set_gsbase() in _kcb_set */
|
case 1: /* use i386_set_gsbase() in _kcb_set */
|
||||||
kcb->kcb_ldt = -1;
|
kcb->kcb_ldt = -1;
|
||||||
@ -121,7 +118,6 @@ _kcb_ctor(struct kse *kse)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return (kcb);
|
return (kcb);
|
||||||
}
|
}
|
||||||
@ -129,11 +125,9 @@ _kcb_ctor(struct kse *kse)
|
|||||||
void
|
void
|
||||||
_kcb_dtor(struct kcb *kcb)
|
_kcb_dtor(struct kcb *kcb)
|
||||||
{
|
{
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
if (kcb->kcb_ldt >= 0) {
|
if (kcb->kcb_ldt >= 0) {
|
||||||
i386_set_ldt(kcb->kcb_ldt, NULL, 1);
|
i386_set_ldt(kcb->kcb_ldt, NULL, 1);
|
||||||
kcb->kcb_ldt = -1; /* just in case */
|
kcb->kcb_ldt = -1; /* just in case */
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
free(kcb);
|
free(kcb);
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,6 @@ void _kcb_dtor(struct kcb *);
|
|||||||
static __inline void
|
static __inline void
|
||||||
_kcb_set(struct kcb *kcb)
|
_kcb_set(struct kcb *kcb)
|
||||||
{
|
{
|
||||||
#ifndef COMPAT_32BIT
|
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
if (_thr_using_setbase == 1) {
|
if (_thr_using_setbase == 1) {
|
||||||
@ -163,9 +162,6 @@ _kcb_set(struct kcb *kcb)
|
|||||||
val = (kcb->kcb_ldt << 3) | 7;
|
val = (kcb->kcb_ldt << 3) | 7;
|
||||||
__asm __volatile("movl %0, %%gs" : : "r" (val));
|
__asm __volatile("movl %0, %%gs" : : "r" (val));
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
_amd64_set_gsbase(kcb);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user