cxgbe(4): validate largest_rx_cluster and safest_rx_cluster.
These tunables can only be set to a valid cluster size (2K, 4K, 9K, or 16K) as documented in the man page. Anything else could lead to a panic on interface up. Reported by: mav@ MFC after: 1 week Sponsored by: Chelsio Communications
This commit is contained in:
parent
a3bbb67b61
commit
c06489b833
@ -542,6 +542,28 @@ t4_sge_modload(void)
|
||||
tscale = 1;
|
||||
}
|
||||
|
||||
if (largest_rx_cluster != MCLBYTES &&
|
||||
#if MJUMPAGESIZE != MCLBYTES
|
||||
largest_rx_cluster != MJUMPAGESIZE &&
|
||||
#endif
|
||||
largest_rx_cluster != MJUM9BYTES &&
|
||||
largest_rx_cluster != MJUM16BYTES) {
|
||||
printf("Invalid hw.cxgbe.largest_rx_cluster value (%d),"
|
||||
" using %d instead.\n", largest_rx_cluster, MJUM16BYTES);
|
||||
largest_rx_cluster = MJUM16BYTES;
|
||||
}
|
||||
|
||||
if (safest_rx_cluster != MCLBYTES &&
|
||||
#if MJUMPAGESIZE != MCLBYTES
|
||||
safest_rx_cluster != MJUMPAGESIZE &&
|
||||
#endif
|
||||
safest_rx_cluster != MJUM9BYTES &&
|
||||
safest_rx_cluster != MJUM16BYTES) {
|
||||
printf("Invalid hw.cxgbe.safest_rx_cluster value (%d),"
|
||||
" using %d instead.\n", safest_rx_cluster, MJUMPAGESIZE);
|
||||
safest_rx_cluster = MJUMPAGESIZE;
|
||||
}
|
||||
|
||||
extfree_refs = counter_u64_alloc(M_WAITOK);
|
||||
extfree_rels = counter_u64_alloc(M_WAITOK);
|
||||
pullups = counter_u64_alloc(M_WAITOK);
|
||||
|
Loading…
Reference in New Issue
Block a user