|
@@ -4010,8 +4010,13 @@ static int mgsl_alloc_intermediate_txbuffer_memory(struct mgsl_struct *info)
|
|
|
for ( i=0; i<info->num_tx_holding_buffers; ++i) {
|
|
|
info->tx_holding_buffers[i].buffer =
|
|
|
kmalloc(info->max_frame_size, GFP_KERNEL);
|
|
|
- if ( info->tx_holding_buffers[i].buffer == NULL )
|
|
|
+ if (info->tx_holding_buffers[i].buffer == NULL) {
|
|
|
+ for (--i; i >= 0; i--) {
|
|
|
+ kfree(info->tx_holding_buffers[i].buffer);
|
|
|
+ info->tx_holding_buffers[i].buffer = NULL;
|
|
|
+ }
|
|
|
return -ENOMEM;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return 0;
|