diff options
Diffstat (limited to 'drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c')
| -rw-r--r-- | drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 29842ccc91a9..08e4afc0ab39 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -126,12 +126,12 @@ static int rmnet_map_egress_handler(struct sk_buff *skb,  	if (skb_headroom(skb) < required_headroom) {  		if (pskb_expand_head(skb, required_headroom, 0, GFP_KERNEL)) -			return RMNET_MAP_CONSUMED; +			goto fail;  	}  	map_header = rmnet_map_add_map_header(skb, additional_header_len, 0);  	if (!map_header) -		return RMNET_MAP_CONSUMED; +		goto fail;  	if (port->egress_data_format & RMNET_EGRESS_FORMAT_MUXING) {  		if (mux_id == 0xff) @@ -143,6 +143,10 @@ static int rmnet_map_egress_handler(struct sk_buff *skb,  	skb->protocol = htons(ETH_P_MAP);  	return RMNET_MAP_SUCCESS; + +fail: +	kfree_skb(skb); +	return RMNET_MAP_CONSUMED;  }  static void |