break;
if (p->end < addr)
continue;
- /*
- * A resource is exclusive if IORESOURCE_EXCLUSIVE is set
- * or CONFIG_IO_STRICT_DEVMEM is enabled and the
- * resource is busy.
- */
- if ((p->flags & IORESOURCE_BUSY) == 0)
- continue;
- if (IS_ENABLED(CONFIG_IO_STRICT_DEVMEM)
- || p->flags & IORESOURCE_EXCLUSIVE) {
+ if (p->flags & IORESOURCE_BUSY &&
+ p->flags & IORESOURCE_EXCLUSIVE) {
err = 1;
break;
}
enabled, even in this case there are restrictions on /dev/mem
use due to the cache aliasing requirements.
- If this option is switched on, and IO_STRICT_DEVMEM=n, the /dev/mem
- file only allows userspace access to PCI space and the BIOS code and
- data regions. This is sufficient for dosemu and X and all common
- users of /dev/mem.
-
- If in doubt, say Y.
-
-config IO_STRICT_DEVMEM
- bool "Filter I/O access to /dev/mem"
- depends on STRICT_DEVMEM
- default STRICT_DEVMEM
- ---help---
- If this option is disabled, you allow userspace (root) access to all
- io-memory regardless of whether a driver is actively using that
- range. Accidental access to this is obviously disastrous, but
- specific access can be used by people debugging kernel drivers.
-
If this option is switched on, the /dev/mem file only allows
- userspace access to *idle* io-memory ranges (see /proc/iomem) This
- may break traditional users of /dev/mem (dosemu, legacy X, etc...)
- if the driver using a given range cannot be disabled.
+ userspace access to PCI space and the BIOS code and data regions.
+ This is sufficient for dosemu and X and all common users of
+ /dev/mem.
If in doubt, say Y.