Commit Graph

16 Commits

Author SHA1 Message Date
ad
88ab7da936 Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
2007-07-09 20:51:58 +00:00
christos
53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
tsutsui
a111aec3cd Apply patches which may fix RX stall problem on nfe(4):
- make DMA descriptors volatile to avoid possible unintended reordering
  which might cause some race conditions
- process interrupts until all NFE_IRQ_WANTED bits are handled

and also put misc fixes:
- return 1 and call nfe_start() in nfe_intr() only if any own interrupts
  are actually handled
- use bus_dmamap_load_mbuf(9) for RX mbufs rather than bus_dmamap_load(9)
  with mtod(9) and MCLBYTES
- check sc->txq.queued to see if TX descriptors are queued or handled
  in nfe_start() and nfe_txeof()
- use proper BUS_DMASYNC_{PRE,POST} ops
- prepare and use NFE_[RT]X_NEXTDESC() macro
- rename NFE_TX_TCP_CSUM to NFE_TX_TCP_UDP_CSUM since it also enables
  hardware udp4csum-tx for UDP4 packets
- some minor optimization
- misc KNF

Tested and confirmed by matthew green by
"to send >25MB/sec to nfe0 for over one hour,"
and also tested by me (with light TRX load on 100baseTX though)
for a month.
2007-02-28 17:40:11 +00:00
tsutsui
e699b95246 Enable hardware checksum support by hardware info taken from FreeBSD.
Tested on nForce3 250 and nForce4 by Chuck Silvers, Cesar Catrian Carreno,
and me.
2007-01-09 10:29:27 +00:00
jmcneill
d9c4129a70 A few changes to make this work on the Microsoft Xbox. Should also help
with other users who have been experiencing watchdog timeouts:
 * Mask all interrupts while servicing a tx or rx interrupt.
 * On init, clear IRQ status registers (workaround for buggy netbooters).
2007-01-05 01:33:57 +00:00
tsutsui
7c3bb7972d Pull a TX timeout fix from OpenBSD:
> Defer setting of the valid bit in the first TX descriptor after
> all descriptors have been setup.  Otherwise, hardware may start
> processing descriptors faster than us and crap out.
> Fixes "watchdog timeout" errors.
>
> Original idea from Matthew Dillon @DragonFly.
2007-01-01 04:13:25 +00:00
tsutsui
3b8f579381 Minor style fixes in nfe_attach:
- print PCI device name and revision
- print interrupt and Ethernet address like other devices

Before:
---
nfe0 at pci0 dev 5 function 0LKLN: Picked IRQ 20 with weight 1
: ioapic0 pin 20 (irq 9), address xx:xx:xx:xx:xx:xx

After:
---
nfe0 at pci0 dev 5 function 0: NVIDIA nForce3 ethernet #4 (rev. 0xa2)
LKLN: Picked IRQ 20 with weight 1
nfe0: interrupting at ioapic0 pin 20 (irq 9)
nfe0: Ethernet address xx:xx:xx:xx:xx:xx

(note "Picked IRQ" message is logged by aprint_verbose(9) in acpi(4))
2007-01-01 03:43:04 +00:00
alc
24803bd1c4 remove the KASSERT() introduced in last commit and use VLAN_OUTPUT_TAG() macro.
tested by martin@
pointed out and ok by pavel@, also ok from christos@
2006-12-27 18:36:09 +00:00
alc
9254207181 CID-3667: check if 'mtag != NULL' before dereferencing it 2006-12-25 23:58:36 +00:00
christos
168cd830d2 __unused removal on arguments; approved by core. 2006-11-16 01:32:37 +00:00
christos
4d595fd7b1 - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
2006-10-12 01:30:41 +00:00
jmcneill
f135e0d607 Add "name" parameter to powerhook_establish, to aid debugging. No objections
on tech-kern@
2006-09-24 03:53:07 +00:00
xtraeme
ea4f30c7b7 Add support for MCP61/65 controllers... from obsd. 2006-09-03 07:42:04 +00:00
chs
c5e2153c1e work around another mbuf leak, the hardware doesn't seem
to work quite the way that the driver expects.
2006-03-26 00:34:14 +00:00
chs
a940d15b3c handle another difference between the BSDs:
free the original mbuf in the jumbo-free callback too.
2006-03-16 17:26:13 +00:00
chs
388c5496c2 add nfe driver and manpage from OpenBSD. 2006-03-12 22:40:42 +00:00