Hi Josef,

Looks like just a mistake from whoever did the original port. All port
accesses are meant to require capabilities to perform.

Thanks for pointing this out, I will push out a fix shortly.

Adrian

On Mon 24-Aug-2015 11:45 PM, Josef M. wrote:
Hi,

I'm experimenting with some x86 code that involves reading from I/O ports.
I noticed--much to my surprise--that I don't have to use seL4_IA32_IOPort_In8()
to read from a port; my program works just as fine using the "in" assembly
statement directly, without any caps.

The TSS segment limit is initialized with 0x67
https://github.com/seL4/seL4/blob/master/src/arch/x86/kernel/vspace.c#L158

and the "I/O Map base address" is initialized with 0 (zero)
https://github.com/seL4/seL4/blob/master/src/arch/x86/kernel/vspace.c#L43

I believe the result is that ring 3 programs can access I/O port addresses
below 0x388 (0x67 * 8) without triggering a protection violation.

So my question is: Shouldn't capabilities be required for all ports? Or what
what is the reason or motivation behind this?

Thanks,
Josef

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel


________________________________

The information in this e-mail may be confidential and subject to legal 
professional privilege and/or copyright. National ICT Australia Limited accepts 
no liability for any damage caused by this email or its attachments.

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to