Up to [cvs.NetBSD.org] / src / sys / dev / pci
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: netbsd-3-1-RC2
Revision 1.101.2.3 / (download) - annotate - [select for diffs], Fri Apr 21 12:03:38 2006 UTC (17 years, 11 months ago) by tron
Branch: netbsd-3
CVS Tags: netbsd-3-1-RELEASE,
netbsd-3-1-RC4,
netbsd-3-1-RC3,
netbsd-3-1-RC2,
netbsd-3-1-RC1,
netbsd-3-1-1-RELEASE,
netbsd-3-1
Changes since 1.101.2.2: +26 -1
lines
Diff to previous 1.101.2.2 (colored) to branchpoint 1.101 (colored) next main 1.102 (colored)
Pull up following revision(s) (requested by pavel in ticket #1280): sys/dev/pci/if_sip.c: revision 1.106 In rev. 1.98, the ioctl method of the (g)sip drivers was optimized for SIOCSIFFLAGS: it compares the new flags with the old flags and avoids reset if there are only certain changes. This was done to fix PR 29126. It does not take into account, though, that there is other state which can change and SIOCSIFFLAGS is called to inform about it. Namely, if_capenable, ec_capenable and ec_nvlans. For all three, the _init method must program the hardware specially. Not doing it resulted in: - VLAN frames getting truncated - hw checksumming not working - outgoing VLAN frames not being tagged when they should - incoming VLAN frames being treated as untagged. Fix by keeping all the old state in the softc and initializing the hardware if any of it changes. Tested on gsip. Also tested by Nino Dehne and Martin J. Laubach on sip, thanks. Fixes PRs 32900 and 33216. Approved by martin@ .