Skip to content

Commit

Permalink
net: qualcomm: rmnet: Move rmnet_mode to rmnet_port
Browse files Browse the repository at this point in the history
Mode information on the real device makes it easier to route packets
to rmnet device or bridged device based on the configuration.

Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Subash Abhinov Kasiviswanathan authored and David S. Miller committed Oct 12, 2017
1 parent 1281726 commit 9148963
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 10 deletions.
12 changes: 5 additions & 7 deletions drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,20 +124,17 @@ static int rmnet_register_real_device(struct net_device *real_dev)
}

static void rmnet_set_endpoint_config(struct net_device *dev,
u8 mux_id, u8 rmnet_mode,
struct net_device *egress_dev)
u8 mux_id, struct net_device *egress_dev)
{
struct rmnet_endpoint *ep;

netdev_dbg(dev, "id %d mode %d dev %s\n",
mux_id, rmnet_mode, egress_dev->name);
netdev_dbg(dev, "id %d dev %s\n", mux_id, egress_dev->name);

ep = rmnet_get_endpoint(dev, mux_id);
/* This config is cleared on every set, so its ok to not
* clear it on a device delete.
*/
memset(ep, 0, sizeof(struct rmnet_endpoint));
ep->rmnet_mode = rmnet_mode;
ep->egress_dev = egress_dev;
ep->mux_id = mux_id;
}
Expand Down Expand Up @@ -183,9 +180,10 @@ static int rmnet_newlink(struct net *src_net, struct net_device *dev,
ingress_format, egress_format);
port->egress_data_format = egress_format;
port->ingress_data_format = ingress_format;
port->rmnet_mode = mode;

rmnet_set_endpoint_config(real_dev, mux_id, mode, dev);
rmnet_set_endpoint_config(dev, mux_id, mode, real_dev);
rmnet_set_endpoint_config(real_dev, mux_id, dev);
rmnet_set_endpoint_config(dev, mux_id, real_dev);
return 0;

err2:
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
* Exact usage of this parameter depends on the rmnet_mode.
*/
struct rmnet_endpoint {
u8 rmnet_mode;
u8 mux_id;
struct net_device *egress_dev;
};
Expand All @@ -39,6 +38,7 @@ struct rmnet_port {
u32 egress_data_format;
struct net_device *rmnet_devices[RMNET_MAX_LOGICAL_EP];
u8 nr_rmnet_devs;
u8 rmnet_mode;
};

extern struct rtnl_link_ops rmnet_link_ops;
Expand Down
3 changes: 1 addition & 2 deletions drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,7 @@ void rmnet_egress_handler(struct sk_buff *skb,
}
}

if (ep->rmnet_mode == RMNET_EPMODE_VND)
rmnet_vnd_tx_fixup(skb, orig_dev);
rmnet_vnd_tx_fixup(skb, orig_dev);

dev_queue_xmit(skb);
}

0 comments on commit 9148963

Please sign in to comment.