Introduce a tunable that disables use of MSI.
Non-zero value will use INTx.
This commit is contained in:
parent
581f58e7a3
commit
5c952e8d1b
@ -2745,6 +2745,9 @@ bge_can_use_msi(struct bge_softc *sc)
|
||||
{
|
||||
int can_use_msi = 0;
|
||||
|
||||
if (sc->bge_msi_disable != 0)
|
||||
return (0);
|
||||
|
||||
/* Disable MSI for polling(4). */
|
||||
#ifdef DEVICE_POLLING
|
||||
return (0);
|
||||
@ -5627,6 +5630,12 @@ bge_add_sysctls(struct bge_softc *sc)
|
||||
"Number of fragmented TX buffers of a frame allowed before "
|
||||
"forced collapsing");
|
||||
|
||||
sc->bge_msi_disable = 0;
|
||||
snprintf(tn, sizeof(tn), "dev.bge.%d.msi_disable", unit);
|
||||
TUNABLE_INT_FETCH(tn, &sc->bge_msi_disable);
|
||||
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "msi_disable",
|
||||
CTLFLAG_RD, &sc->bge_msi_disable, 0, "Disable MSI");
|
||||
|
||||
/*
|
||||
* It seems all Broadcom controllers have a bug that can generate UDP
|
||||
* datagrams with checksum value 0 when TX UDP checksum offloading is
|
||||
|
@ -2864,6 +2864,7 @@ struct bge_softc {
|
||||
int bge_timer;
|
||||
int bge_forced_collapse;
|
||||
int bge_forced_udpcsum;
|
||||
int bge_msi_disable;
|
||||
int bge_csum_features;
|
||||
struct callout bge_stat_ch;
|
||||
uint32_t bge_rx_discards;
|
||||
|
Loading…
x
Reference in New Issue
Block a user