Re: ioperm() / iopl() irritation

H. Peter Anvin (hpa@zytor.com)
28 Feb 2002 15:53:27 -0800


Followup to: <Pine.LNX.4.33.0202282128170.25655-100000@biker.pdb.fsc.net>
By author: Martin Wilck <Martin.Wilck@fujitsu-siemens.com>
In newsgroup: linux.dev.kernel
>
> A short question that may be dumb:
>
> In the docs on i386 IO protection that I know, it is said that
> the processor ANDs the two protection mechanisms offered by the
> IOPL flag and the io permission bitmap. That is, if IO permissions
> are granted through iopl(), but ports are masked in the IO permission
> bitmap, a segmentation fault should arise.
>

Wrong.

> Such a situation should be generated by code like this:
>
> iopl(3);
> ioperm (0,0x1f,1); /* 0x20-0x3ff remain masked */
> c = inb (0x20);
>
> However on my machine this codse is successful! How is that possible?

Because you have misunderstood how IOPL works.

-hpa

-- 
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt	<amsp@zytor.com>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/