mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-17 10:27:40 +07:00
ipv4: Optimize flow initialization in fib_validate_source().
Like in commit 44713b67db
("ipv4: Optimize flow initialization in output route lookup."
we can optimize the on-stack flow setup to only initialize
the members which are actually used.
Otherwise we bzero the entire structure, then initialize
explicitly the first half of it.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
67e28ffd86
commit
cc7e17ea04
@ -193,19 +193,21 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif,
|
|||||||
u32 *itag, u32 mark)
|
u32 *itag, u32 mark)
|
||||||
{
|
{
|
||||||
struct in_device *in_dev;
|
struct in_device *in_dev;
|
||||||
struct flowi fl = {
|
struct flowi fl;
|
||||||
.fl4_dst = src,
|
|
||||||
.fl4_src = dst,
|
|
||||||
.fl4_tos = tos,
|
|
||||||
.mark = mark,
|
|
||||||
.iif = oif
|
|
||||||
};
|
|
||||||
struct fib_result res;
|
struct fib_result res;
|
||||||
int no_addr, rpf, accept_local;
|
int no_addr, rpf, accept_local;
|
||||||
bool dev_match;
|
bool dev_match;
|
||||||
int ret;
|
int ret;
|
||||||
struct net *net;
|
struct net *net;
|
||||||
|
|
||||||
|
fl.oif = 0;
|
||||||
|
fl.iif = oif;
|
||||||
|
fl.mark = mark;
|
||||||
|
fl.fl4_dst = src;
|
||||||
|
fl.fl4_src = dst;
|
||||||
|
fl.fl4_tos = tos;
|
||||||
|
fl.fl4_scope = RT_SCOPE_UNIVERSE;
|
||||||
|
|
||||||
no_addr = rpf = accept_local = 0;
|
no_addr = rpf = accept_local = 0;
|
||||||
in_dev = __in_dev_get_rcu(dev);
|
in_dev = __in_dev_get_rcu(dev);
|
||||||
if (in_dev) {
|
if (in_dev) {
|
||||||
|
Loading…
Reference in New Issue
Block a user