Date: Mon, 18 May 1998 08:53:53 +0100 From: Mark Blackman <tmb@rcru.rl.ac.uk> To: hackers@FreeBSD.ORG Cc: tmb@rcru.rl.ac.uk Subject: /dev/io access. Message-ID: <199805180753.IAA22480@bird.te.rl.ac.uk>
next in thread | raw e-mail | index | archive | help
Hello all,
I've noticed that there is a small discrepancy between what
the io(4) man page says and what the source for 2.2.6 does.
In the course of doing some preliminary userland communication with a
custom bit of hardware (10MHz A/D PCI card), I find that my code cannot
write to an I/O port address unless it's run with uid=0.
The man page io(4) says ...
"
The entire access control is handled by the file access permissions of
/dev/io, so care should be taken in granting rights for this device.
Note that even read/only access will grant the full I/O privileges.
"
The source code (/usr/src/sys/i386/i386/mem.c) says..
in "mmopen", case 14 being the "io" device I believe.
case 14:
error = suser(p->p_ucred, &p->p_acflag);
if (error != 0)
return (error);
if (securelevel > 0)
return (EPERM);
fp = (struct trapframe *)curproc->p_md.md_regs;
fp->tf_eflags |= PSL_IOPL;
break;
The "suser" call appears to enforce a root-only access policy to the
I/O port addresses. I assume there was a change of philosophy between
the man page being written and 2.2.6?
There are two trivial work-arounds, i.e. run uid=0 or change my
version of the system. However, I would like to be briefly acquainted
with the reasoning for this change though if anyone is feeling
generous with their time. Note that pciconf.c is similarly
restricted.
Regards,
*************************************************************************
* Mark Blackman *
* Radar Group *
* Radio Communications Research Unit *
* Rutherford Appleton Laboratory E-mail: tmb@rcru.rl.ac.uk *
* Chilton, Didcot Tel: +44-1235-446126 *
* Oxon OX11 0QX, United Kingdom Fax: +44-1235-446140 *
*************************************************************************
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805180753.IAA22480>
