Eric W. Biederman wrote: > Auke Kok writes: > >> maybe I've been unclear, but here's how e1000 detects link changes: >> >> 1) by checking every 2 seconds in the watchdog by reading PHY >> registers 2) by receiving an interrupt from the NIC with the LSI bit >> in the interrupt control register >> >> if the link is down to start with, the watchdog will obviously spot >> a 'link up' change since it doesn't use any interrupts. >> >> The link interrupt (LSI) is a generic interrupt that comes over the >> same vector (be it MSI or not) as RX interrupts, and in your case >> doesn't arrive at all, which should be demonstrateable if you set >> e.g. the watchdog interval to 30 seconds and unplug the cable - the >> driver won't spot the link change until the watchdog fires a lot >> later than you unplugged the cable. >> >>> The behavior I observe on 2.6.19 is better than 2.6.20-rc7. Link >>> status interrupts seem to work but rx/tx does not. A few more >>> details here: >>> >> > > Can I get the corresponding lspci -xxx output. I suspect the BIOS > did not program the hypertransport MSI mapping capabilities correctly. > All it has to do is set the enable but still, occasionally BIOS > writers miss the most amazing things. Here you go. This is from 2.6.20-rc7. --Adam