diff options
author | Mao Wenan <maowenan@huawei.com> | 2019-12-23 18:42:57 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-12-26 15:19:59 -0800 |
commit | 0914d2bb11cc182039084ac3b961dc359b647468 (patch) | |
tree | 91384b24bde79137393de9231c976c4b24795d33 /net/packet | |
parent | 9476654bd5e8ad42abe8ee9f9e90069ff8e60c17 (diff) | |
download | linux-0914d2bb11cc182039084ac3b961dc359b647468.tar.gz linux-0914d2bb11cc182039084ac3b961dc359b647468.tar.bz2 linux-0914d2bb11cc182039084ac3b961dc359b647468.zip |
af_packet: refactoring code for prb_calc_retire_blk_tmo
If __ethtool_get_link_ksettings() is failed and with
non-zero value, prb_calc_retire_blk_tmo() should return
DEFAULT_PRB_RETIRE_TOV firstly.
This patch is to refactory code and make it more readable.
Signed-off-by: Mao Wenan <maowenan@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet')
-rw-r--r-- | net/packet/af_packet.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 118cd66b7516..3bec515ccde3 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -520,7 +520,7 @@ static int prb_calc_retire_blk_tmo(struct packet_sock *po, int blk_size_in_bytes) { struct net_device *dev; - unsigned int mbits = 0, msec = 0, div = 0, tmo = 0; + unsigned int mbits, div; struct ethtool_link_ksettings ecmd; int err; @@ -532,31 +532,25 @@ static int prb_calc_retire_blk_tmo(struct packet_sock *po, } err = __ethtool_get_link_ksettings(dev, &ecmd); rtnl_unlock(); - if (!err) { - /* - * If the link speed is so slow you don't really - * need to worry about perf anyways - */ - if (ecmd.base.speed < SPEED_1000 || - ecmd.base.speed == SPEED_UNKNOWN) { - return DEFAULT_PRB_RETIRE_TOV; - } else { - msec = 1; - div = ecmd.base.speed / 1000; - } - } else + if (err) return DEFAULT_PRB_RETIRE_TOV; + /* If the link speed is so slow you don't really + * need to worry about perf anyways + */ + if (ecmd.base.speed < SPEED_1000 || + ecmd.base.speed == SPEED_UNKNOWN) + return DEFAULT_PRB_RETIRE_TOV; + + div = ecmd.base.speed / 1000; mbits = (blk_size_in_bytes * 8) / (1024 * 1024); if (div) mbits /= div; - tmo = mbits * msec; - if (div) - return tmo+1; - return tmo; + return mbits + 1; + return mbits; } static void prb_init_ft_ops(struct tpacket_kbdq_core *p1, |