diff options
Diffstat (limited to 'drivers/net/can/softing/softing_fw.c')
| -rw-r--r-- | drivers/net/can/softing/softing_fw.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/can/softing/softing_fw.c b/drivers/net/can/softing/softing_fw.c index 31059617567..b595d3422b9 100644 --- a/drivers/net/can/softing/softing_fw.c +++ b/drivers/net/can/softing/softing_fw.c @@ -150,7 +150,7 @@ int softing_load_fw(const char *file, struct softing *card,  	const uint8_t *mem, *end, *dat;  	uint16_t type, len;  	uint32_t addr; -	uint8_t *buf = NULL; +	uint8_t *buf = NULL, *new_buf;  	int buflen = 0;  	int8_t type_end = 0; @@ -199,11 +199,12 @@ int softing_load_fw(const char *file, struct softing *card,  		if (len > buflen) {  			/* align buflen */  			buflen = (len + (1024-1)) & ~(1024-1); -			buf = krealloc(buf, buflen, GFP_KERNEL); -			if (!buf) { +			new_buf = krealloc(buf, buflen, GFP_KERNEL); +			if (!new_buf) {  				ret = -ENOMEM;  				goto failed;  			} +			buf = new_buf;  		}  		/* verify record data */  		memcpy_fromio(buf, &dpram[addr + offset], len);  |