projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux...
[firefly-linux-kernel-4.4.55.git]
/
kernel
/
memremap.c
diff --git
a/kernel/memremap.c
b/kernel/memremap.c
index 7658d32c5c78aa6343ac8cd669070084d1cd3805..f719c925cb543487598558fbbfcdbe1b078203c1 100644
(file)
--- a/
kernel/memremap.c
+++ b/
kernel/memremap.c
@@
-111,7
+111,7
@@
EXPORT_SYMBOL(memunmap);
static void devm_memremap_release(struct device *dev, void *res)
{
static void devm_memremap_release(struct device *dev, void *res)
{
- memunmap(res);
+ memunmap(
*(void **)
res);
}
static int devm_memremap_match(struct device *dev, void *res, void *match_data)
}
static int devm_memremap_match(struct device *dev, void *res, void *match_data)
@@
-133,8
+133,10
@@
void *devm_memremap(struct device *dev, resource_size_t offset,
if (addr) {
*ptr = addr;
devres_add(dev, ptr);
if (addr) {
*ptr = addr;
devres_add(dev, ptr);
- } else
+ } else
{
devres_free(ptr);
devres_free(ptr);
+ return ERR_PTR(-ENXIO);
+ }
return addr;
}
return addr;
}
@@
-157,7
+159,9
@@
static void devm_memremap_pages_release(struct device *dev, void *res)
struct page_map *page_map = res;
/* pages are dead and unused, undo the arch mapping */
struct page_map *page_map = res;
/* pages are dead and unused, undo the arch mapping */
+ mem_hotplug_begin();
arch_remove_memory(page_map->res.start, resource_size(&page_map->res));
arch_remove_memory(page_map->res.start, resource_size(&page_map->res));
+ mem_hotplug_done();
}
void *devm_memremap_pages(struct device *dev, struct resource *res)
}
void *devm_memremap_pages(struct device *dev, struct resource *res)
@@
-187,7
+191,9
@@
void *devm_memremap_pages(struct device *dev, struct resource *res)
if (nid < 0)
nid = numa_mem_id();
if (nid < 0)
nid = numa_mem_id();
+ mem_hotplug_begin();
error = arch_add_memory(nid, res->start, resource_size(res), true);
error = arch_add_memory(nid, res->start, resource_size(res), true);
+ mem_hotplug_done();
if (error) {
devres_free(page_map);
return ERR_PTR(error);
if (error) {
devres_free(page_map);
return ERR_PTR(error);