mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
Deorbit the fxp tuning hint (hint.fxp.UNIT_NUMBER.ipcbxmit_disable)
introduced in if_fxp.c revision 1.180. The bug fix committed in revision 1.180 fixed the packet truncation problem.
This commit is contained in:
parent
aaea4b16e1
commit
414ce15cb3
1 changed files with 2 additions and 24 deletions
|
|
@ -370,7 +370,7 @@ fxp_attach(device_t dev)
|
|||
u_int32_t val;
|
||||
u_int16_t data, myea[ETHER_ADDR_LEN / 2];
|
||||
int i, rid, m1, m2, prefer_iomap, maxtxseg;
|
||||
int s, ipcbxmit_disable;
|
||||
int s;
|
||||
|
||||
sc->dev = dev;
|
||||
callout_init(&sc->stat_ch, CALLOUT_MPSAFE);
|
||||
|
|
@ -572,31 +572,9 @@ fxp_attach(device_t dev)
|
|||
* and later chips. Note: we need extended TXCB support
|
||||
* too, but that's already enabled by the code above.
|
||||
* Be careful to do this only on the right devices.
|
||||
*
|
||||
* At least some 82550 cards probed as "chip=0x12298086 rev=0x0d"
|
||||
* truncate packets that end with an mbuf containing 1 to 3 bytes
|
||||
* when used with this feature enabled in the previous version of the
|
||||
* driver. This problem appears to be fixed now that the driver
|
||||
* always sets the hardware parse bit in the IPCB structure, which
|
||||
* the "Intel 8255x 10/100 Mbps Ethernet Controller Family Open
|
||||
* Source Software Developer Manual" says is necessary in the
|
||||
* cases where packet truncation was observed.
|
||||
*
|
||||
* The device hint "hint.fxp.UNIT_NUMBER.ipcbxmit_disable"
|
||||
* allows this feature to be disabled at boot time.
|
||||
*
|
||||
* If fxp is not compiled into the kernel, this feature may also
|
||||
* be disabled at run time:
|
||||
* # kldunload fxp
|
||||
* # kenv hint.fxp.0.ipcbxmit_disable=1
|
||||
* # kldload fxp
|
||||
*/
|
||||
|
||||
if (resource_int_value("fxp", device_get_unit(dev), "ipcbxmit_disable",
|
||||
&ipcbxmit_disable) != 0)
|
||||
ipcbxmit_disable = 0;
|
||||
if (ipcbxmit_disable == 0 && (sc->revision == FXP_REV_82550 ||
|
||||
sc->revision == FXP_REV_82550_C)) {
|
||||
if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) {
|
||||
sc->rfa_size = sizeof (struct fxp_rfa);
|
||||
sc->tx_cmd = FXP_CB_COMMAND_IPCBXMIT;
|
||||
sc->flags |= FXP_FLAG_EXT_RFA;
|
||||
|
|
|
|||
Loading…
Reference in a new issue