diff options
Diffstat (limited to 'arch/s390/mm/dump_pagetables.c')
| -rw-r--r-- | arch/s390/mm/dump_pagetables.c | 21 | 
1 files changed, 8 insertions, 13 deletions
diff --git a/arch/s390/mm/dump_pagetables.c b/arch/s390/mm/dump_pagetables.c index 9af2aae0a515..528d7c70979f 100644 --- a/arch/s390/mm/dump_pagetables.c +++ b/arch/s390/mm/dump_pagetables.c @@ -291,16 +291,14 @@ static int ptdump_cmp(const void *a, const void *b)  static int add_marker(unsigned long start, unsigned long end, const char *name)  { -	size_t oldsize, newsize; - -	oldsize = markers_cnt * sizeof(*markers); -	newsize = oldsize + 2 * sizeof(*markers); -	if (!oldsize) -		markers = kvmalloc(newsize, GFP_KERNEL); -	else -		markers = kvrealloc(markers, newsize, GFP_KERNEL); -	if (!markers) -		goto error; +	struct addr_marker *new; +	size_t newsize; + +	newsize = (markers_cnt + 2) * sizeof(*markers); +	new = kvrealloc(markers, newsize, GFP_KERNEL); +	if (!new) +		return -ENOMEM; +	markers = new;  	markers[markers_cnt].is_start = 1;  	markers[markers_cnt].start_address = start;  	markers[markers_cnt].size = end - start; @@ -312,9 +310,6 @@ static int add_marker(unsigned long start, unsigned long end, const char *name)  	markers[markers_cnt].name = name;  	markers_cnt++;  	return 0; -error: -	markers_cnt = 0; -	return -ENOMEM;  }  static int pt_dump_init(void)  | 
