summaryrefslogtreecommitdiff
path: root/drivers/rmnet/shs/rmnet_shs_wq.c
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2019-10-02 00:04:23 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-10-02 00:04:23 -0700
commit603cd845c047dd3bd53b6ac73e191351c4ce43ee (patch)
tree62e3a32f086d3cbef204f5bf6f2ec7a68ab15c52 /drivers/rmnet/shs/rmnet_shs_wq.c
parent8fe6c879a80decde1253d48411f7b8da57e202e1 (diff)
parent4d10bfccf039244bcc3a02c7fafacad498b4c6d3 (diff)
downloaddata-kernel-603cd845c047dd3bd53b6ac73e191351c4ce43ee.tar.gz
Merge "drivers: rmnet_shs: Remove netdev dereference"
Diffstat (limited to 'drivers/rmnet/shs/rmnet_shs_wq.c')
-rw-r--r--drivers/rmnet/shs/rmnet_shs_wq.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/rmnet/shs/rmnet_shs_wq.c b/drivers/rmnet/shs/rmnet_shs_wq.c
index 31bcaca..1321d31 100644
--- a/drivers/rmnet/shs/rmnet_shs_wq.c
+++ b/drivers/rmnet/shs/rmnet_shs_wq.c
@@ -669,32 +669,24 @@ static void rmnet_shs_wq_refresh_all_cpu_stats(void)
void rmnet_shs_wq_update_cpu_rx_tbl(struct rmnet_shs_wq_hstat_s *hstat_p)
{
- struct rps_map *map;
+ struct rmnet_shs_wq_rx_flow_s *tbl_p = &rmnet_shs_rx_flow_tbl;
struct rmnet_shs_skbn_s *node_p;
- int cpu_num;
- u16 map_idx;
u64 skb_diff, byte_diff;
- struct rmnet_shs_wq_rx_flow_s *tbl_p = &rmnet_shs_rx_flow_tbl;
+ u16 cpu_num;
node_p = hstat_p->node;
if (hstat_p->inactive_duration > 0)
return;
- rcu_read_lock();
- map = rcu_dereference(node_p->dev->_rx->rps_map);
+ cpu_num = node_p->map_cpu;
- if (!map || node_p->map_index > map->len || !map->len) {
- rcu_read_unlock();
+ if (cpu_num >= MAX_CPUS) {
+ rmnet_shs_crit_err[RMNET_SHS_INVALID_CPU_ERR]++;
return;
}
-
- map_idx = node_p->map_index;
- cpu_num = map->cpus[map_idx];
-
skb_diff = hstat_p->rx_skb - hstat_p->last_rx_skb;
byte_diff = hstat_p->rx_bytes - hstat_p->last_rx_bytes;
- rcu_read_unlock();
if (hstat_p->is_new_flow) {
rmnet_shs_wq_cpu_list_add(hstat_p,