|
@@ -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;
|
|
|
|