Merge "net: rmnet_data: Unset logical end points in bridge mode"

This commit is contained in:
Linux Build Service Account 2017-05-25 15:52:04 -07:00 committed by Gerrit - the friendly Code Review server
commit f485573f5a
2 changed files with 13 additions and 6 deletions

View file

@ -1165,6 +1165,7 @@ static void rmnet_force_unassociate_device(struct net_device *dev)
{
int i, j;
struct net_device *vndev;
struct rmnet_phys_ep_config *config;
struct rmnet_logical_ep_conf_s *cfg;
struct rmnet_free_vnd_work *vnd_work;
ASSERT_RTNL();
@ -1220,6 +1221,15 @@ static void rmnet_force_unassociate_device(struct net_device *dev)
kfree(vnd_work);
}
config = _rmnet_get_phys_ep_config(dev);
if (config) {
cfg = &config->local_ep;
if (cfg && cfg->refcount)
rmnet_unset_logical_endpoint_config
(cfg->egress_dev, RMNET_LOCAL_LOGICAL_ENDPOINT);
}
/* Clear the mappings on the phys ep */
trace_rmnet_unregister_cb_clear_lepcs(dev);

View file

@ -569,12 +569,9 @@ static int rmnet_map_egress_handler(struct sk_buff *skb,
LOGD("headroom of %d bytes", required_headroom);
if (skb_headroom(skb) < required_headroom) {
if (pskb_expand_head(skb, required_headroom, 0, GFP_KERNEL)) {
LOGD("Failed to add headroom of %d bytes",
required_headroom);
kfree_skb(skb);
return 1;
}
LOGE("Not enough headroom for %d bytes", required_headroom);
kfree_skb(skb);
return 1;
}
if ((config->egress_data_format & RMNET_EGRESS_FORMAT_MAP_CKSUMV3) ||