* [robh:for-kernelci 3/7] drivers/of/of_reserved_mem.c:51:13: warning: no previous prototype for 'fdt_reserved_mem_save_node'
@ 2021-05-27 17:59 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-05-27 17:59 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 20586 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-kernelci
head: 3fea28f97b265227ad52b5949512f005981b801c
commit: 212db1c162ef8b68c0bdb9e7bb861abd762c6d48 [3/7] of: Move reserved memory private function declarations
config: parisc-randconfig-r036-20210527 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git/commit/?id=212db1c162ef8b68c0bdb9e7bb861abd762c6d48
git remote add robh https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git
git fetch --no-tags robh for-kernelci
git checkout 212db1c162ef8b68c0bdb9e7bb861abd762c6d48
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/of/of_reserved_mem.c:51:13: warning: no previous prototype for 'fdt_reserved_mem_save_node' [-Wmissing-prototypes]
51 | void __init fdt_reserved_mem_save_node(unsigned long node, const char *uname,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/of/of_reserved_mem.c:246:13: warning: no previous prototype for 'fdt_init_reserved_mem' [-Wmissing-prototypes]
246 | void __init fdt_init_reserved_mem(void)
| ^~~~~~~~~~~~~~~~~~~~~
vim +/fdt_reserved_mem_save_node +51 drivers/of/of_reserved_mem.c
3f0c8206644836e Marek Szyprowski 2014-02-28 47
ad1ce1ab061e7d1 Lee Jones 2021-03-18 48 /*
c8813f7ec01c676 chenqiwu 2020-05-11 49 * fdt_reserved_mem_save_node() - save fdt node for second pass initialization
3f0c8206644836e Marek Szyprowski 2014-02-28 50 */
3f0c8206644836e Marek Szyprowski 2014-02-28 @51 void __init fdt_reserved_mem_save_node(unsigned long node, const char *uname,
3f0c8206644836e Marek Szyprowski 2014-02-28 52 phys_addr_t base, phys_addr_t size)
3f0c8206644836e Marek Szyprowski 2014-02-28 53 {
3f0c8206644836e Marek Szyprowski 2014-02-28 54 struct reserved_mem *rmem = &reserved_mem[reserved_mem_count];
3f0c8206644836e Marek Szyprowski 2014-02-28 55
3f0c8206644836e Marek Szyprowski 2014-02-28 56 if (reserved_mem_count == ARRAY_SIZE(reserved_mem)) {
418370ff2231b7d Danny Lin 2020-06-03 57 pr_err("not enough space for all defined regions.\n");
3f0c8206644836e Marek Szyprowski 2014-02-28 58 return;
3f0c8206644836e Marek Szyprowski 2014-02-28 59 }
3f0c8206644836e Marek Szyprowski 2014-02-28 60
3f0c8206644836e Marek Szyprowski 2014-02-28 61 rmem->fdt_node = node;
3f0c8206644836e Marek Szyprowski 2014-02-28 62 rmem->name = uname;
3f0c8206644836e Marek Szyprowski 2014-02-28 63 rmem->base = base;
3f0c8206644836e Marek Szyprowski 2014-02-28 64 rmem->size = size;
3f0c8206644836e Marek Szyprowski 2014-02-28 65
3f0c8206644836e Marek Szyprowski 2014-02-28 66 reserved_mem_count++;
3f0c8206644836e Marek Szyprowski 2014-02-28 67 return;
3f0c8206644836e Marek Szyprowski 2014-02-28 68 }
3f0c8206644836e Marek Szyprowski 2014-02-28 69
ad1ce1ab061e7d1 Lee Jones 2021-03-18 70 /*
c8813f7ec01c676 chenqiwu 2020-05-11 71 * __reserved_mem_alloc_size() - allocate reserved memory described by
6f1188b4ac7577c Yue Hu 2020-07-30 72 * 'size', 'alignment' and 'alloc-ranges' properties.
3f0c8206644836e Marek Szyprowski 2014-02-28 73 */
3f0c8206644836e Marek Szyprowski 2014-02-28 74 static int __init __reserved_mem_alloc_size(unsigned long node,
3f0c8206644836e Marek Szyprowski 2014-02-28 75 const char *uname, phys_addr_t *res_base, phys_addr_t *res_size)
3f0c8206644836e Marek Szyprowski 2014-02-28 76 {
3f0c8206644836e Marek Szyprowski 2014-02-28 77 int t_len = (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32);
3f0c8206644836e Marek Szyprowski 2014-02-28 78 phys_addr_t start = 0, end = 0;
3f0c8206644836e Marek Szyprowski 2014-02-28 79 phys_addr_t base = 0, align = 0, size;
9d0c4dfedd96ee5 Rob Herring 2014-04-01 80 int len;
9d0c4dfedd96ee5 Rob Herring 2014-04-01 81 const __be32 *prop;
6f1188b4ac7577c Yue Hu 2020-07-30 82 bool nomap;
3f0c8206644836e Marek Szyprowski 2014-02-28 83 int ret;
3f0c8206644836e Marek Szyprowski 2014-02-28 84
3f0c8206644836e Marek Szyprowski 2014-02-28 85 prop = of_get_flat_dt_prop(node, "size", &len);
3f0c8206644836e Marek Szyprowski 2014-02-28 86 if (!prop)
3f0c8206644836e Marek Szyprowski 2014-02-28 87 return -EINVAL;
3f0c8206644836e Marek Szyprowski 2014-02-28 88
3f0c8206644836e Marek Szyprowski 2014-02-28 89 if (len != dt_root_size_cells * sizeof(__be32)) {
606ad42aa3b1fe8 Rob Herring 2016-06-15 90 pr_err("invalid size property in '%s' node.\n", uname);
3f0c8206644836e Marek Szyprowski 2014-02-28 91 return -EINVAL;
3f0c8206644836e Marek Szyprowski 2014-02-28 92 }
3f0c8206644836e Marek Szyprowski 2014-02-28 93 size = dt_mem_next_cell(dt_root_size_cells, &prop);
3f0c8206644836e Marek Szyprowski 2014-02-28 94
3f0c8206644836e Marek Szyprowski 2014-02-28 95 prop = of_get_flat_dt_prop(node, "alignment", &len);
3f0c8206644836e Marek Szyprowski 2014-02-28 96 if (prop) {
3f0c8206644836e Marek Szyprowski 2014-02-28 97 if (len != dt_root_addr_cells * sizeof(__be32)) {
606ad42aa3b1fe8 Rob Herring 2016-06-15 98 pr_err("invalid alignment property in '%s' node.\n",
3f0c8206644836e Marek Szyprowski 2014-02-28 99 uname);
3f0c8206644836e Marek Szyprowski 2014-02-28 100 return -EINVAL;
3f0c8206644836e Marek Szyprowski 2014-02-28 101 }
3f0c8206644836e Marek Szyprowski 2014-02-28 102 align = dt_mem_next_cell(dt_root_addr_cells, &prop);
3f0c8206644836e Marek Szyprowski 2014-02-28 103 }
3f0c8206644836e Marek Szyprowski 2014-02-28 104
6f1188b4ac7577c Yue Hu 2020-07-30 105 nomap = of_get_flat_dt_prop(node, "no-map", NULL) != NULL;
6f1188b4ac7577c Yue Hu 2020-07-30 106
1cc8e3458b51102 Jason Liu 2015-11-10 107 /* Need adjust the alignment to satisfy the CMA requirement */
7d482813bb3518c Jaewon 2016-05-25 108 if (IS_ENABLED(CONFIG_CMA)
7d482813bb3518c Jaewon 2016-05-25 109 && of_flat_dt_is_compatible(node, "shared-dma-pool")
7d482813bb3518c Jaewon 2016-05-25 110 && of_get_flat_dt_prop(node, "reusable", NULL)
6f1188b4ac7577c Yue Hu 2020-07-30 111 && !nomap) {
aaaab56dba9af4f Stephen Rothwell 2016-05-31 112 unsigned long order =
aaaab56dba9af4f Stephen Rothwell 2016-05-31 113 max_t(unsigned long, MAX_ORDER - 1, pageblock_order);
aaaab56dba9af4f Stephen Rothwell 2016-05-31 114
aaaab56dba9af4f Stephen Rothwell 2016-05-31 115 align = max(align, (phys_addr_t)PAGE_SIZE << order);
aaaab56dba9af4f Stephen Rothwell 2016-05-31 116 }
1cc8e3458b51102 Jason Liu 2015-11-10 117
3f0c8206644836e Marek Szyprowski 2014-02-28 118 prop = of_get_flat_dt_prop(node, "alloc-ranges", &len);
3f0c8206644836e Marek Szyprowski 2014-02-28 119 if (prop) {
3f0c8206644836e Marek Szyprowski 2014-02-28 120
3f0c8206644836e Marek Szyprowski 2014-02-28 121 if (len % t_len != 0) {
606ad42aa3b1fe8 Rob Herring 2016-06-15 122 pr_err("invalid alloc-ranges property in '%s', skipping node.\n",
3f0c8206644836e Marek Szyprowski 2014-02-28 123 uname);
3f0c8206644836e Marek Szyprowski 2014-02-28 124 return -EINVAL;
3f0c8206644836e Marek Szyprowski 2014-02-28 125 }
3f0c8206644836e Marek Szyprowski 2014-02-28 126
3f0c8206644836e Marek Szyprowski 2014-02-28 127 base = 0;
3f0c8206644836e Marek Szyprowski 2014-02-28 128
3f0c8206644836e Marek Szyprowski 2014-02-28 129 while (len > 0) {
3f0c8206644836e Marek Szyprowski 2014-02-28 130 start = dt_mem_next_cell(dt_root_addr_cells, &prop);
3f0c8206644836e Marek Szyprowski 2014-02-28 131 end = start + dt_mem_next_cell(dt_root_size_cells,
3f0c8206644836e Marek Szyprowski 2014-02-28 132 &prop);
3f0c8206644836e Marek Szyprowski 2014-02-28 133
3f0c8206644836e Marek Szyprowski 2014-02-28 134 ret = early_init_dt_alloc_reserved_memory_arch(size,
3f0c8206644836e Marek Szyprowski 2014-02-28 135 align, start, end, nomap, &base);
3f0c8206644836e Marek Szyprowski 2014-02-28 136 if (ret == 0) {
606ad42aa3b1fe8 Rob Herring 2016-06-15 137 pr_debug("allocated memory for '%s' node: base %pa, size %ld MiB\n",
3f0c8206644836e Marek Szyprowski 2014-02-28 138 uname, &base,
3f0c8206644836e Marek Szyprowski 2014-02-28 139 (unsigned long)size / SZ_1M);
3f0c8206644836e Marek Szyprowski 2014-02-28 140 break;
3f0c8206644836e Marek Szyprowski 2014-02-28 141 }
3f0c8206644836e Marek Szyprowski 2014-02-28 142 len -= t_len;
3f0c8206644836e Marek Szyprowski 2014-02-28 143 }
3f0c8206644836e Marek Szyprowski 2014-02-28 144
3f0c8206644836e Marek Szyprowski 2014-02-28 145 } else {
3f0c8206644836e Marek Szyprowski 2014-02-28 146 ret = early_init_dt_alloc_reserved_memory_arch(size, align,
3f0c8206644836e Marek Szyprowski 2014-02-28 147 0, 0, nomap, &base);
3f0c8206644836e Marek Szyprowski 2014-02-28 148 if (ret == 0)
606ad42aa3b1fe8 Rob Herring 2016-06-15 149 pr_debug("allocated memory for '%s' node: base %pa, size %ld MiB\n",
3f0c8206644836e Marek Szyprowski 2014-02-28 150 uname, &base, (unsigned long)size / SZ_1M);
3f0c8206644836e Marek Szyprowski 2014-02-28 151 }
3f0c8206644836e Marek Szyprowski 2014-02-28 152
3f0c8206644836e Marek Szyprowski 2014-02-28 153 if (base == 0) {
606ad42aa3b1fe8 Rob Herring 2016-06-15 154 pr_info("failed to allocate memory for node '%s'\n", uname);
3f0c8206644836e Marek Szyprowski 2014-02-28 155 return -ENOMEM;
3f0c8206644836e Marek Szyprowski 2014-02-28 156 }
3f0c8206644836e Marek Szyprowski 2014-02-28 157
3f0c8206644836e Marek Szyprowski 2014-02-28 158 *res_base = base;
3f0c8206644836e Marek Szyprowski 2014-02-28 159 *res_size = size;
3f0c8206644836e Marek Szyprowski 2014-02-28 160
3f0c8206644836e Marek Szyprowski 2014-02-28 161 return 0;
3f0c8206644836e Marek Szyprowski 2014-02-28 162 }
3f0c8206644836e Marek Szyprowski 2014-02-28 163
f618c4703a14672 Marek Szyprowski 2014-02-28 164 static const struct of_device_id __rmem_of_table_sentinel
33def8498fdde18 Joe Perches 2020-10-21 165 __used __section("__reservedmem_of_table_end");
f618c4703a14672 Marek Szyprowski 2014-02-28 166
ad1ce1ab061e7d1 Lee Jones 2021-03-18 167 /*
c8813f7ec01c676 chenqiwu 2020-05-11 168 * __reserved_mem_init_node() - call region specific reserved memory init code
f618c4703a14672 Marek Szyprowski 2014-02-28 169 */
f618c4703a14672 Marek Szyprowski 2014-02-28 170 static int __init __reserved_mem_init_node(struct reserved_mem *rmem)
f618c4703a14672 Marek Szyprowski 2014-02-28 171 {
f618c4703a14672 Marek Szyprowski 2014-02-28 172 extern const struct of_device_id __reservedmem_of_table[];
f618c4703a14672 Marek Szyprowski 2014-02-28 173 const struct of_device_id *i;
d0b8ed47e83a225 pierre Kuo 2019-02-19 174 int ret = -ENOENT;
f618c4703a14672 Marek Szyprowski 2014-02-28 175
f618c4703a14672 Marek Szyprowski 2014-02-28 176 for (i = __reservedmem_of_table; i < &__rmem_of_table_sentinel; i++) {
df3ed932394488e Rob Herring 2017-05-11 177 reservedmem_of_init_fn initfn = i->data;
f618c4703a14672 Marek Szyprowski 2014-02-28 178 const char *compat = i->compatible;
f618c4703a14672 Marek Szyprowski 2014-02-28 179
f618c4703a14672 Marek Szyprowski 2014-02-28 180 if (!of_flat_dt_is_compatible(rmem->fdt_node, compat))
f618c4703a14672 Marek Szyprowski 2014-02-28 181 continue;
f618c4703a14672 Marek Szyprowski 2014-02-28 182
d0b8ed47e83a225 pierre Kuo 2019-02-19 183 ret = initfn(rmem);
d0b8ed47e83a225 pierre Kuo 2019-02-19 184 if (ret == 0) {
606ad42aa3b1fe8 Rob Herring 2016-06-15 185 pr_info("initialized node %s, compatible id %s\n",
f618c4703a14672 Marek Szyprowski 2014-02-28 186 rmem->name, compat);
d0b8ed47e83a225 pierre Kuo 2019-02-19 187 break;
f618c4703a14672 Marek Szyprowski 2014-02-28 188 }
f618c4703a14672 Marek Szyprowski 2014-02-28 189 }
d0b8ed47e83a225 pierre Kuo 2019-02-19 190 return ret;
f618c4703a14672 Marek Szyprowski 2014-02-28 191 }
f618c4703a14672 Marek Szyprowski 2014-02-28 192
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 193 static int __init __rmem_cmp(const void *a, const void *b)
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 194 {
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 195 const struct reserved_mem *ra = a, *rb = b;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 196
9eb8cd2b0780bca Michael Ellerman 2015-11-18 197 if (ra->base < rb->base)
9eb8cd2b0780bca Michael Ellerman 2015-11-18 198 return -1;
9eb8cd2b0780bca Michael Ellerman 2015-11-18 199
9eb8cd2b0780bca Michael Ellerman 2015-11-18 200 if (ra->base > rb->base)
9eb8cd2b0780bca Michael Ellerman 2015-11-18 201 return 1;
9eb8cd2b0780bca Michael Ellerman 2015-11-18 202
ca05f33316559a0 Vincent Whitchurch 2020-10-21 203 /*
ca05f33316559a0 Vincent Whitchurch 2020-10-21 204 * Put the dynamic allocations (address == 0, size == 0) before static
ca05f33316559a0 Vincent Whitchurch 2020-10-21 205 * allocations at address 0x0 so that overlap detection works
ca05f33316559a0 Vincent Whitchurch 2020-10-21 206 * correctly.
ca05f33316559a0 Vincent Whitchurch 2020-10-21 207 */
ca05f33316559a0 Vincent Whitchurch 2020-10-21 208 if (ra->size < rb->size)
ca05f33316559a0 Vincent Whitchurch 2020-10-21 209 return -1;
ca05f33316559a0 Vincent Whitchurch 2020-10-21 210 if (ra->size > rb->size)
ca05f33316559a0 Vincent Whitchurch 2020-10-21 211 return 1;
ca05f33316559a0 Vincent Whitchurch 2020-10-21 212
9eb8cd2b0780bca Michael Ellerman 2015-11-18 213 return 0;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 214 }
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 215
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 216 static void __init __rmem_check_for_overlap(void)
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 217 {
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 218 int i;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 219
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 220 if (reserved_mem_count < 2)
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 221 return;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 222
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 223 sort(reserved_mem, reserved_mem_count, sizeof(reserved_mem[0]),
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 224 __rmem_cmp, NULL);
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 225 for (i = 0; i < reserved_mem_count - 1; i++) {
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 226 struct reserved_mem *this, *next;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 227
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 228 this = &reserved_mem[i];
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 229 next = &reserved_mem[i + 1];
ca05f33316559a0 Vincent Whitchurch 2020-10-21 230
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 231 if (this->base + this->size > next->base) {
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 232 phys_addr_t this_end, next_end;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 233
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 234 this_end = this->base + this->size;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 235 next_end = next->base + next->size;
606ad42aa3b1fe8 Rob Herring 2016-06-15 236 pr_err("OVERLAP DETECTED!\n%s (%pa--%pa) overlaps with %s (%pa--%pa)\n",
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 237 this->name, &this->base, &this_end,
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 238 next->name, &next->base, &next_end);
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 239 }
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 240 }
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 241 }
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 242
3f0c8206644836e Marek Szyprowski 2014-02-28 243 /**
c8813f7ec01c676 chenqiwu 2020-05-11 244 * fdt_init_reserved_mem() - allocate and init all saved reserved memory regions
3f0c8206644836e Marek Szyprowski 2014-02-28 245 */
3f0c8206644836e Marek Szyprowski 2014-02-28 @246 void __init fdt_init_reserved_mem(void)
3f0c8206644836e Marek Szyprowski 2014-02-28 247 {
3f0c8206644836e Marek Szyprowski 2014-02-28 248 int i;
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 249
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 250 /* check for overlapping reserved regions */
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 251 __rmem_check_for_overlap();
ae1add247bf8c22 Mitchel Humpherys 2015-09-15 252
3f0c8206644836e Marek Szyprowski 2014-02-28 253 for (i = 0; i < reserved_mem_count; i++) {
3f0c8206644836e Marek Szyprowski 2014-02-28 254 struct reserved_mem *rmem = &reserved_mem[i];
3f0c8206644836e Marek Szyprowski 2014-02-28 255 unsigned long node = rmem->fdt_node;
9dcfee01930e6cc Marek Szyprowski 2014-07-14 256 int len;
9dcfee01930e6cc Marek Szyprowski 2014-07-14 257 const __be32 *prop;
3f0c8206644836e Marek Szyprowski 2014-02-28 258 int err = 0;
6f1188b4ac7577c Yue Hu 2020-07-30 259 bool nomap;
3f0c8206644836e Marek Szyprowski 2014-02-28 260
d0b8ed47e83a225 pierre Kuo 2019-02-19 261 nomap = of_get_flat_dt_prop(node, "no-map", NULL) != NULL;
9dcfee01930e6cc Marek Szyprowski 2014-07-14 262 prop = of_get_flat_dt_prop(node, "phandle", &len);
9dcfee01930e6cc Marek Szyprowski 2014-07-14 263 if (!prop)
9dcfee01930e6cc Marek Szyprowski 2014-07-14 264 prop = of_get_flat_dt_prop(node, "linux,phandle", &len);
9dcfee01930e6cc Marek Szyprowski 2014-07-14 265 if (prop)
9dcfee01930e6cc Marek Szyprowski 2014-07-14 266 rmem->phandle = of_read_number(prop, len/4);
9dcfee01930e6cc Marek Szyprowski 2014-07-14 267
3f0c8206644836e Marek Szyprowski 2014-02-28 268 if (rmem->size == 0)
3f0c8206644836e Marek Szyprowski 2014-02-28 269 err = __reserved_mem_alloc_size(node, rmem->name,
3f0c8206644836e Marek Szyprowski 2014-02-28 270 &rmem->base, &rmem->size);
d0b8ed47e83a225 pierre Kuo 2019-02-19 271 if (err == 0) {
d0b8ed47e83a225 pierre Kuo 2019-02-19 272 err = __reserved_mem_init_node(rmem);
d0b8ed47e83a225 pierre Kuo 2019-02-19 273 if (err != 0 && err != -ENOENT) {
d0b8ed47e83a225 pierre Kuo 2019-02-19 274 pr_info("node %s compatible matching fail\n",
d0b8ed47e83a225 pierre Kuo 2019-02-19 275 rmem->name);
d0b8ed47e83a225 pierre Kuo 2019-02-19 276 memblock_free(rmem->base, rmem->size);
d0b8ed47e83a225 pierre Kuo 2019-02-19 277 if (nomap)
d0b8ed47e83a225 pierre Kuo 2019-02-19 278 memblock_add(rmem->base, rmem->size);
d0b8ed47e83a225 pierre Kuo 2019-02-19 279 }
d0b8ed47e83a225 pierre Kuo 2019-02-19 280 }
3f0c8206644836e Marek Szyprowski 2014-02-28 281 }
3f0c8206644836e Marek Szyprowski 2014-02-28 282 }
9dcfee01930e6cc Marek Szyprowski 2014-07-14 283
:::::: The code at line 51 was first introduced by commit
:::::: 3f0c8206644836e4f10a6b9fc47cda6a9a372f9b drivers: of: add initialization code for dynamic reserved memory
:::::: TO: Marek Szyprowski <m.szyprowski@samsung.com>
:::::: CC: Grant Likely <grant.likely@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 29804 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-05-27 17:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-27 17:59 [robh:for-kernelci 3/7] drivers/of/of_reserved_mem.c:51:13: warning: no previous prototype for 'fdt_reserved_mem_save_node' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.