Alexander Shishkinlib: Fix ia64 bootloader linkage93048c08 years agoHistory
34 lines · 753 B · C
RawDownload
// SPDX-License-Identifier: GPL-2.0 #include <linux/slab.h> /* * Merge two NULL-terminated pointer arrays into a newly allocated * array, which is also NULL-terminated. Nomenclature is inspired by * memset_p() and memcat() found elsewhere in the kernel source tree. */void **__memcat_p(void **a, void **b){	void **p = a, **new;	int nr; 	/* count the elements in both arrays */	for (nr = 0, p = a; *p; nr++, p++)		;	for (p = b; *p; nr++, p++)		;	/* one for the NULL-terminator */	nr++; 	new = kmalloc_array(nr, sizeof(void *), GFP_KERNEL);	if (!new)		return NULL; 	/* nr -> last index; p points to NULL in b[] */	for (nr--; nr >= 0; nr--, p = p == b ? &a[nr] : p - 1)		new[nr] = *p; 	return new;}EXPORT_SYMBOL_GPL(__memcat_p);