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:
Don Lewis 2004-08-11 21:41:25 +00:00
parent aaea4b16e1
commit 414ce15cb3

View file

@ -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;