freebsd-nq/sys/pci
Bill Paul 0fc4974f79 Another small update to the re(4) driver:
- Change the workaround for the autopad/checksum offload bug so that
  instead of lying about the map size, we actually create a properly
  padded mbuf and map it as usual. The other trick works, but is ugly.
  This approach also gives us a chance to zero the pad space to avoid
  possibly leaking data.

- With the PCIe devices, it looks issuing a TX command while there's
  already a transmission in progress doesn't have any effect. In other
  words, if you send two packets in rapid succession, the second one may
  end up sitting in the TX DMA ring until another transmit command is
  issued later in the future. Basically, if re_txeof() sees that there
  are still descriptors outstanding, it needs to manually resume the
  TX DMA channel by issuing another TX command to make sure all
  transmissions are flushed out. (The PCI devices seem to keep the
  TX channel moving until all descriptors have been consumed. I'm not
  sure why the PCIe devices behave differently.)

  (You can see this issue if you do the following test: plug an re(4)
  interface into another host via crossover cable, and from the other
  host do 'ping -c 2 <host with re(4) NIC>' to prime the ARP cache,
  then do 'ping -c 1 -s 1473 <host with re(4) NIC>'. You're supposed
  to see two packets sent in response, but you may only see one. If
  you do 'ping -c 1 -s 1473 <host with re(4) NIC>' again, you'll
  see two packets, but one will be the missing fragment from the last
  ping, followed by one of the fragments from this ping.)

- Add the PCI ID for the US Robotics 997902 NIC, which is based on
  the RTL8169S.

- Add a tsleep() of 1 second in re_detach() after the interrupt handler
  is disconnected. This should allow any tasks queued up by the ISR
  to drain. Now, I know you're supposed to use taskqueue_drain() for
  this, but something about the way taskqueue_drain() works with
  taskqueue_fast queues doesn't seem quite right, and I refuse to be
  tricked into fixing it.
2006-08-01 17:18:25 +00:00
..
agp_ali.c Change the various AGP drivers that attach to the Host-PCI bridge device to 2005-12-20 21:12:26 +00:00
agp_amd64.c Move SiS 760 to where it belongs. 2006-05-30 18:41:26 +00:00
agp_amd.c Change the various AGP drivers that attach to the Host-PCI bridge device to 2005-12-20 21:12:26 +00:00
agp_ati.c Change the various AGP drivers that attach to the Host-PCI bridge device to 2005-12-20 21:12:26 +00:00
agp_i810.c Fix breakage of CHIP_I855 in the last revision. 2006-06-27 14:05:11 +00:00
agp_if.m /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
agp_intel.c Add support for the Intel E7205 chipset. 2006-02-17 01:40:46 +00:00
agp_nvidia.c Change the various AGP drivers that attach to the Host-PCI bridge device to 2005-12-20 21:12:26 +00:00
agp_sis.c Move SiS 760 to where it belongs. 2006-05-30 18:41:26 +00:00
agp_via.c Change the various AGP drivers that attach to the Host-PCI bridge device to 2005-12-20 21:12:26 +00:00
agp.c Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
agppriv.h
agpreg.h - Use PCIR_BAR() macro for the BAR for the aperture. 2005-12-20 22:45:24 +00:00
agpvar.h Don't map the AGP aperture into contiguous KVA. The various graphics 2005-12-20 20:05:21 +00:00
alpm.c Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
amdpm.c Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
amdsmb.c Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
if_mn.c Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_pcn.c Replace references to lnc(4) with references to le(4) (so far the notes 2006-05-15 20:07:24 +00:00
if_pcnreg.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_rl.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_rlreg.h Another small update to the re(4) driver: 2006-08-01 17:18:25 +00:00
if_sf.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_sfreg.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_sis.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_sisreg.h Small fixes to sis(4): 2005-09-26 18:42:27 +00:00
if_ste.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_stereg.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_tl.c Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_tlreg.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_vr.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_vrreg.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_wb.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_wbreg.h Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
if_xl.c Do not touch ifp->if_baudrate in miibus aware drivers. 2006-02-14 12:44:56 +00:00
if_xlreg.h Various fixups to locking: 2005-08-18 19:24:30 +00:00
intpm.c Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
intpmreg.h
locate.pl
ncr.c Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
ncrreg.h Fix typos from previous commit. 2005-01-07 05:01:24 +00:00
nfsmb.c Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
viapm.c Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
xrpu.c Return BUS_PROBE_DEFAULT instead of 0. 2005-02-24 21:32:56 +00:00