Revert "pci: use security_capable() when checking capablities during config space...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 13 Feb 2011 15:50:50 +0000 (07:50 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 13 Feb 2011 15:50:50 +0000 (07:50 -0800)
This reverts commit 47970b1b2aa64464bc0a9543e86361a622ae7c03.

It turns out it breaks several distributions.  Looks like the stricter
selinux checks fail due to selinux policies not being set to allow the
access - breaking X, but also lspci.

So while the change was clearly the RightThing(tm) to do in theory, in
practice we have backwards compatibility issues making it not work.

Reported-by: Dave Young <hidave.darkstar@gmail.com>
Acked-by: David Airlie <airlied@linux.ie>
Acked-by: Alex Riesen <raa.lkml@gmail.com>
Cc: Eric Paris <eparis@redhat.com>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: James Morris <jmorris@namei.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/pci/pci-sysfs.c

index f7771f336b7d0ccbdb0f5b695ed6f7ae9a6163ab..8ecaac983923d9c6b22c2e0246907db089b5e43a 100644 (file)
@@ -23,7 +23,6 @@
 #include <linux/mm.h>
 #include <linux/fs.h>
 #include <linux/capability.h>
-#include <linux/security.h>
 #include <linux/pci-aspm.h>
 #include <linux/slab.h>
 #include "pci.h"
@@ -369,7 +368,7 @@ pci_read_config(struct file *filp, struct kobject *kobj,
        u8 *data = (u8*) buf;
 
        /* Several chips lock up trying to read undefined config space */
-       if (security_capable(filp->f_cred, CAP_SYS_ADMIN)) {
+       if (cap_raised(filp->f_cred->cap_effective, CAP_SYS_ADMIN)) {
                size = dev->cfg_size;
        } else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) {
                size = 128;