diff options
Diffstat (limited to 'drivers/firmware/memmap.c')
| -rw-r--r-- | drivers/firmware/memmap.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/firmware/memmap.c b/drivers/firmware/memmap.c index 05aa2d406ac..d5ea8a68d33 100644 --- a/drivers/firmware/memmap.c +++ b/drivers/firmware/memmap.c @@ -31,8 +31,12 @@   * information is necessary as for the resource tree.   */  struct firmware_map_entry { -	resource_size_t		start;	/* start of the memory range */ -	resource_size_t		end;	/* end of the memory range (incl.) */ +	/* +	 * start and end must be u64 rather than resource_size_t, because e820 +	 * resources can lie at addresses above 4G. +	 */ +	u64			start;	/* start of the memory range */ +	u64			end;	/* end of the memory range (incl.) */  	const char		*type;	/* type of the memory range */  	struct list_head	list;	/* entry for the linked list */  	struct kobject		kobj;   /* kobject for each entry */ @@ -101,7 +105,7 @@ static LIST_HEAD(map_entries);   * Common implementation of firmware_map_add() and firmware_map_add_early()   * which expects a pre-allocated struct firmware_map_entry.   **/ -static int firmware_map_add_entry(resource_size_t start, resource_size_t end, +static int firmware_map_add_entry(u64 start, u64 end,  				  const char *type,  				  struct firmware_map_entry *entry)  { @@ -132,8 +136,7 @@ static int firmware_map_add_entry(resource_size_t start, resource_size_t end,   *   * Returns 0 on success, or -ENOMEM if no memory could be allocated.   **/ -int firmware_map_add(resource_size_t start, resource_size_t end, -		     const char *type) +int firmware_map_add(u64 start, u64 end, const char *type)  {  	struct firmware_map_entry *entry; @@ -157,8 +160,7 @@ int firmware_map_add(resource_size_t start, resource_size_t end,   *   * Returns 0 on success, or -ENOMEM if no memory could be allocated.   **/ -int __init firmware_map_add_early(resource_size_t start, resource_size_t end, -				  const char *type) +int __init firmware_map_add_early(u64 start, u64 end, const char *type)  {  	struct firmware_map_entry *entry;  |