diff options
author | Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 2017-09-29 17:19:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-01 04:15:07 +0100 |
commit | 3e41f93b358a8800194b87995ad076fc50919719 (patch) | |
tree | e52fda006ba52faba0bed468dbc275799b1d30cb /net/dsa/legacy.c | |
parent | 152402483ed75b167d5628d414e876ffa7a6d4c4 (diff) | |
download | op-kernel-dev-3e41f93b358a8800194b87995ad076fc50919719.zip op-kernel-dev-3e41f93b358a8800194b87995ad076fc50919719.tar.gz |
net: dsa: prepare master receive hot path
In preparation to make DSA master devices point to their corresponding
CPU port instead of the whole tree, add copies of dst and rcv in the
dsa_port structure so that we keep fast access in the receive hot path.
Also keep the copies at the beginning of the dsa_port structure in order
to ensure they are available in cacheline 1.
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/legacy.c')
-rw-r--r-- | net/dsa/legacy.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/dsa/legacy.c b/net/dsa/legacy.c index 4d37454..96c7e3f 100644 --- a/net/dsa/legacy.c +++ b/net/dsa/legacy.c @@ -154,7 +154,11 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, dst->cpu_dp->tag_ops = tag_ops; dst->tag_ops = tag_ops; + + /* Few copies for faster access in master receive hot path */ + dst->cpu_dp->rcv = dst->cpu_dp->tag_ops->rcv; dst->rcv = dst->tag_ops->rcv; + dst->cpu_dp->dst = dst; } memcpy(ds->rtable, cd->rtable, sizeof(ds->rtable)); |