1584 |
|
|
1585 |
if (!(e2 & DESC_CS_MASK) || !(e2 & DESC_C_MASK)) { |
if (!(e2 & DESC_CS_MASK) || !(e2 & DESC_C_MASK)) { |
1586 |
/* if not conforming code, test rights */ |
/* if not conforming code, test rights */ |
1587 |
if (dpl < cpl || dpl < rpl) |
if (dpl < cpl || dpl < rpl) |
1588 |
raise_exception_err(EXCP0D_GPF, selector & 0xfffc); |
raise_exception_err(EXCP0D_GPF, selector & 0xfffc); |
1589 |
} |
} |
1590 |
} |
} |
2152 |
sp_mask = get_sp_mask(ss_e2); |
sp_mask = get_sp_mask(ss_e2); |
2153 |
|
|
2154 |
/* validate data segments */ |
/* validate data segments */ |
2155 |
validate_seg(R_ES, cpl); |
validate_seg(R_ES, rpl); |
2156 |
validate_seg(R_DS, cpl); |
validate_seg(R_DS, rpl); |
2157 |
validate_seg(R_FS, cpl); |
validate_seg(R_FS, rpl); |
2158 |
validate_seg(R_GS, cpl); |
validate_seg(R_GS, rpl); |
2159 |
|
|
2160 |
sp += addend; |
sp += addend; |
2161 |
} |
} |