diff options
author | Edward Shu <Edward.Shu@Sun.COM> | 2008-09-27 08:09:48 +0800 |
---|---|---|
committer | Edward Shu <Edward.Shu@Sun.COM> | 2008-09-27 08:09:48 +0800 |
commit | 907f0cacfc5d8be3ad3eca7cc7f37f103567f321 (patch) | |
tree | 2f6ff0172da219c37cf8c2c1083559e88daa431d | |
parent | 3f4df6d3f6e40b6234f63f6aa7212364ab9f0016 (diff) | |
download | illumos-joyent-907f0cacfc5d8be3ad3eca7cc7f37f103567f321.tar.gz |
PSARC 2008/610 Amendment to PSARC 2004/151
6739533 Suspend / Resume on intel_igd_965gm doesn't work properly
-rw-r--r-- | usr/src/uts/intel/io/agpgart/agpgart.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/usr/src/uts/intel/io/agpgart/agpgart.c b/usr/src/uts/intel/io/agpgart/agpgart.c index 1eeb4c247c..005dc57ac0 100644 --- a/usr/src/uts/intel/io/agpgart/agpgart.c +++ b/usr/src/uts/intel/io/agpgart/agpgart.c @@ -2558,11 +2558,16 @@ agpgart_open(dev_t *dev, int openflags, int otyp, cred_t *credp) agpgart_softstate_t *softstate; int rc = 0; + if (secpolicy_gart_access(credp)) { + AGPDB_PRINT2((CE_WARN, "agpgart_open: permission denied")); + return (EPERM); + } softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); if (softstate == NULL) { AGPDB_PRINT2((CE_WARN, "agpgart_open: get soft state err")); return (ENXIO); } + mutex_enter(&softstate->asoft_instmutex); if (softstate->asoft_opened) { @@ -3033,11 +3038,6 @@ agpgart_ioctl(dev_t dev, int cmd, intptr_t intarg, int flags, return (ENXIO); } - if ((cmd != AGPIOC_INFO) && secpolicy_gart_access(credp)) { - AGPDB_PRINT2((CE_WARN, "agpgart_ioctl: permission denied")); - return (EPERM); - } - mutex_enter(&softstate->asoft_instmutex); switch (cmd) { @@ -3096,16 +3096,6 @@ agpgart_segmap(dev_t dev, off_t off, struct as *asp, mutex_enter(&softstate->asoft_instmutex); - /* - * Process must have gart map privilege or gart access privilege - * to map agp memory. - */ - if (secpolicy_gart_map(credp)) { - mutex_exit(&softstate->asoft_instmutex); - AGPDB_PRINT2((CE_WARN, "agpgart_segmap: permission denied")); - return (EPERM); - } - rc = devmap_setup(dev, (offset_t)off, asp, addrp, (size_t)len, prot, maxprot, flags, credp); |