Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1fc01703 authored by Sean Tranchetti's avatar Sean Tranchetti
Browse files

net: qualcomm: rmnet: Introduce descriptor framework



Introduces a generic packet descriptor framework to allow RmNet to avoid
allocating intermediate SKBs. Instead, SKBs for the incoming packets will
allocated only when all possible forms of coalescing have been performed
to avoid unnecessary allocs and frees.

Change-Id: Ic3e4c9f174f2129faa2169c3b3f449becd2b5bdf
Signed-off-by: default avatarSean Tranchetti <stranche@codeaurora.org>
parent 11f6911c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9,4 +9,5 @@ rmnet-y += rmnet_vnd.o
rmnet-y		 += rmnet_handlers.o
rmnet-y		 += rmnet_map_data.o
rmnet-y		 += rmnet_map_command.o
rmnet-y		 += rmnet_descriptor.o
obj-$(CONFIG_RMNET) += rmnet.o
+9 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include "rmnet_vnd.h"
#include "rmnet_private.h"
#include "rmnet_map.h"
#include "rmnet_descriptor.h"
#include <soc/qcom/rmnet_qmi.h>
#include <soc/qcom/qmi_rmnet.h>

@@ -81,6 +82,8 @@ static int rmnet_unregister_real_device(struct net_device *real_dev,
	rmnet_map_cmd_exit(port);
	rmnet_map_tx_aggregate_exit(port);

	rmnet_descriptor_deinit(port);

	kfree(port);

	netdev_rx_handler_unregister(real_dev);
@@ -118,6 +121,12 @@ static int rmnet_register_real_device(struct net_device *real_dev)
	for (entry = 0; entry < RMNET_MAX_LOGICAL_EP; entry++)
		INIT_HLIST_HEAD(&port->muxed_ep[entry]);

	rc = rmnet_descriptor_init(port);
	if (rc) {
		rmnet_descriptor_deinit(port);
		return rc;
	}

	rmnet_map_tx_aggregate_init(port);
	rmnet_map_cmd_init(port);

+3 −0
Original line number Diff line number Diff line
@@ -69,6 +69,9 @@ struct rmnet_port {
	struct list_head dl_list;
	struct rmnet_port_priv_stats stats;
	int dl_marker_flush;

	struct rmnet_descriptor *rmnet_desc;
	struct rmnet_frag_descriptor_pool *frag_desc_pool;
};

extern struct rtnl_link_ops rmnet_link_ops;
Loading