mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
Fastforwarding datarmnet code to data-kernel.lnx.1.1
Change-Id: Iaa23d64a4b93e87bcd8c42923ba398471834e0e8
This commit is contained in:
commit
b7cf580e81
5 changed files with 67 additions and 23 deletions
|
|
@ -360,7 +360,7 @@ static int rmnet_rtnl_validate(struct nlattr *tb[], struct nlattr *data[],
|
|||
|
||||
if (data[IFLA_RMNET_UL_AGG_PARAMS]) {
|
||||
agg_params = nla_data(data[IFLA_RMNET_UL_AGG_PARAMS]);
|
||||
if (agg_params->agg_time < 3000000)
|
||||
if (agg_params->agg_time < 1000000)
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ struct rmnet_ctl_ipa_dev {
|
|||
};
|
||||
|
||||
static struct rmnet_ctl_ipa_dev ctl_ipa_dev;
|
||||
static bool rmnet_ctl_ipa_registered;
|
||||
|
||||
static int rmnet_ctl_send_ipa(struct rmnet_ctl_dev *dev, struct sk_buff *skb)
|
||||
{
|
||||
|
|
@ -78,33 +79,31 @@ static void rmnet_ctl_ipa_ready(void *user_data)
|
|||
rmnet_ctl_dl_callback,
|
||||
&ctl_ipa_dev);
|
||||
|
||||
pr_info("%s: %d\n", __func__, rc);
|
||||
if (rc)
|
||||
pr_err("%s: %d\n", __func__, rc);
|
||||
else
|
||||
rmnet_ctl_ipa_registered = true;
|
||||
}
|
||||
|
||||
static int __init rmnet_ctl_init(void)
|
||||
{
|
||||
int rc;
|
||||
|
||||
rc = ipa_register_rmnet_ctl_cb(
|
||||
rmnet_ctl_probe,
|
||||
&ctl_ipa_dev,
|
||||
rmnet_ctl_remove,
|
||||
&ctl_ipa_dev,
|
||||
rmnet_ctl_dl_callback,
|
||||
&ctl_ipa_dev);
|
||||
|
||||
if (rc == -EAGAIN)
|
||||
rc = ipa_register_ipa_ready_cb(
|
||||
rmnet_ctl_ipa_ready, NULL);
|
||||
|
||||
pr_info("%s: %d\n", __func__, rc);
|
||||
rc = ipa_register_ipa_ready_cb(rmnet_ctl_ipa_ready, NULL);
|
||||
if (rc == -EEXIST)
|
||||
rmnet_ctl_ipa_ready(NULL);
|
||||
else if (rc)
|
||||
pr_err("%s: %d\n", __func__, rc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit rmnet_ctl_exit(void)
|
||||
{
|
||||
ipa_unregister_rmnet_ctl_cb();
|
||||
if (rmnet_ctl_ipa_registered) {
|
||||
ipa_unregister_rmnet_ctl_cb();
|
||||
rmnet_ctl_ipa_registered = false;
|
||||
}
|
||||
}
|
||||
|
||||
module_init(rmnet_ctl_init)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* RMNET Data Generic Netlink
|
||||
*
|
||||
|
|
@ -190,11 +190,8 @@ static void rmnet_create_pid_bps_resp(struct rmnet_core_pid_bps_resp
|
|||
tx_bytes_cur = node_p->tx_bytes;
|
||||
if (tx_bytes_cur <= node_p->tx_bytes_last_query) {
|
||||
/* Dont send inactive pids to userspace */
|
||||
/* TODO: can remove from hash table probably */
|
||||
node_p->tx_bps = 0;
|
||||
node_p->timstamp_last_query =
|
||||
pid_bps_resp_ptr->timestamp;
|
||||
node_p->sched_boost_remaining_ms = 0;
|
||||
hash_del(&node_p->list);
|
||||
kfree(node_p);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
|
|
@ -101,6 +101,33 @@ DEFINE_EVENT
|
|||
|
||||
);
|
||||
|
||||
TRACE_EVENT(print_skb_gso,
|
||||
|
||||
TP_PROTO(struct sk_buff *skb, __be16 src, __be16 dest),
|
||||
|
||||
TP_ARGS(skb, src, dest),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(void *, skbaddr)
|
||||
__field(int, len)
|
||||
__field(int, data_len)
|
||||
__field(__be16, src)
|
||||
__field(__be16, dest)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->skbaddr = skb;
|
||||
__entry->len = skb->len;
|
||||
__entry->data_len = skb->data_len;
|
||||
__entry->src = src;
|
||||
__entry->dest = dest;
|
||||
),
|
||||
|
||||
TP_printk("GSO: skbaddr=%pK, len=%d, data_len=%d, src=%u, dest=%u",
|
||||
__entry->skbaddr, __entry->len, __entry->data_len,
|
||||
be16_to_cpu(__entry->src), be16_to_cpu(__entry->dest))
|
||||
);
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Trace events for rmnet_perf module */
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
#include <linux/etherdevice.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/ipv6.h>
|
||||
#include <linux/tcp.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include "rmnet_config.h"
|
||||
#include "rmnet_handlers.h"
|
||||
|
|
@ -171,6 +173,25 @@ static u16 rmnet_vnd_select_queue(struct net_device *dev,
|
|||
int boost_trigger = 0;
|
||||
int txq = 0;
|
||||
|
||||
if (trace_print_skb_gso_enabled()) {
|
||||
if (!skb_shinfo(skb)->gso_size)
|
||||
goto skip_trace;
|
||||
|
||||
if (skb->protocol == htons(ETH_P_IP)) {
|
||||
if (ip_hdr(skb)->protocol != IPPROTO_TCP)
|
||||
goto skip_trace;
|
||||
}
|
||||
|
||||
if (skb->protocol == htons(ETH_P_IPV6)) {
|
||||
if (ipv6_hdr(skb)->nexthdr != IPPROTO_TCP)
|
||||
goto skip_trace;
|
||||
}
|
||||
|
||||
trace_print_skb_gso(skb, tcp_hdr(skb)->source,
|
||||
tcp_hdr(skb)->dest);
|
||||
}
|
||||
|
||||
skip_trace:
|
||||
if (priv->real_dev)
|
||||
txq = qmi_rmnet_get_queue(dev, skb);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue