File tree 2 files changed +14
-12
lines changed
2 files changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -1153,6 +1153,10 @@ struct ethtool_ops {
1153
1153
#define SUPPORTED_10000baseR_FEC (1 << 20)
1154
1154
#define SUPPORTED_20000baseMLD2_Full (1 << 21)
1155
1155
#define SUPPORTED_20000baseKR2_Full (1 << 22)
1156
+ #define SUPPORTED_40000baseKR4_Full (1 << 23)
1157
+ #define SUPPORTED_40000baseCR4_Full (1 << 24)
1158
+ #define SUPPORTED_40000baseSR4_Full (1 << 25)
1159
+ #define SUPPORTED_40000baseLR4_Full (1 << 26)
1156
1160
1157
1161
/* Indicates what features are advertised by the interface. */
1158
1162
#define ADVERTISED_10baseT_Half (1 << 0)
@@ -1178,6 +1182,10 @@ struct ethtool_ops {
1178
1182
#define ADVERTISED_10000baseR_FEC (1 << 20)
1179
1183
#define ADVERTISED_20000baseMLD2_Full (1 << 21)
1180
1184
#define ADVERTISED_20000baseKR2_Full (1 << 22)
1185
+ #define ADVERTISED_40000baseKR4_Full (1 << 23)
1186
+ #define ADVERTISED_40000baseCR4_Full (1 << 24)
1187
+ #define ADVERTISED_40000baseSR4_Full (1 << 25)
1188
+ #define ADVERTISED_40000baseLR4_Full (1 << 26)
1181
1189
1182
1190
/* The following are all involved in forcing a particular link
1183
1191
* mode for the device for setting things. When getting the
Original file line number Diff line number Diff line change @@ -531,6 +531,7 @@ static int prb_calc_retire_blk_tmo(struct packet_sock *po,
531
531
unsigned int mbits = 0 , msec = 0 , div = 0 , tmo = 0 ;
532
532
struct ethtool_cmd ecmd ;
533
533
int err ;
534
+ u32 speed ;
534
535
535
536
rtnl_lock ();
536
537
dev = __dev_get_by_index (sock_net (& po -> sk ), po -> ifindex );
@@ -539,25 +540,18 @@ static int prb_calc_retire_blk_tmo(struct packet_sock *po,
539
540
return DEFAULT_PRB_RETIRE_TOV ;
540
541
}
541
542
err = __ethtool_get_settings (dev , & ecmd );
543
+ speed = ethtool_cmd_speed (& ecmd );
542
544
rtnl_unlock ();
543
545
if (!err ) {
544
- switch (ecmd .speed ) {
545
- case SPEED_10000 :
546
- msec = 1 ;
547
- div = 10000 /1000 ;
548
- break ;
549
- case SPEED_1000 :
550
- msec = 1 ;
551
- div = 1000 /1000 ;
552
- break ;
553
546
/*
554
547
* If the link speed is so slow you don't really
555
548
* need to worry about perf anyways
556
549
*/
557
- case SPEED_100 :
558
- case SPEED_10 :
559
- default :
550
+ if (speed < SPEED_1000 || speed == SPEED_UNKNOWN ) {
560
551
return DEFAULT_PRB_RETIRE_TOV ;
552
+ } else {
553
+ msec = 1 ;
554
+ div = speed / 1000 ;
561
555
}
562
556
}
563
557
You can’t perform that action at this time.
0 commit comments