diff options
Diffstat (limited to 'kernel/resource.c')
| -rw-r--r-- | kernel/resource.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/kernel/resource.c b/kernel/resource.c index 4c5e80b92f2f..82ed54cd1f0d 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -1707,18 +1707,15 @@ static int strict_iomem_checks;   *   * Returns true if exclusive to the kernel, otherwise returns false.   */ -bool iomem_is_exclusive(u64 addr) +bool resource_is_exclusive(struct resource *root, u64 addr, resource_size_t size)  {  	const unsigned int exclusive_system_ram = IORESOURCE_SYSTEM_RAM |  						  IORESOURCE_EXCLUSIVE;  	bool skip_children = false, err = false; -	int size = PAGE_SIZE;  	struct resource *p; -	addr = addr & PAGE_MASK; -  	read_lock(&resource_lock); -	for_each_resource(&iomem_resource, p, skip_children) { +	for_each_resource(root, p, skip_children) {  		if (p->start >= addr + size)  			break;  		if (p->end < addr) { @@ -1757,6 +1754,12 @@ bool iomem_is_exclusive(u64 addr)  	return err;  } +bool iomem_is_exclusive(u64 addr) +{ +	return resource_is_exclusive(&iomem_resource, addr & PAGE_MASK, +				     PAGE_SIZE); +} +  struct resource_entry *resource_list_create_entry(struct resource *res,  						  size_t extra_size)  { |