hme(4) broken on non-sparc64 systems in -current
Pyun YongHyeon
pyunyh at gmail.com
Mon Mar 20 23:57:30 UTC 2006
On Mon, Mar 20, 2006 at 10:17:21PM +0100, Joerg Wunsch wrote:
> Even though this problem is not related to sparc64 system (I hope, the
> least), I think all those who know about hme(4) are listening here.
>
> I used to run a PCI QFE card in my (i386) scratch machine at home, for
> various experiments. After upgrading the machine from a 6-stable of
> about a year ago to -current, the QFE ceased to work. The symptoms
> were that I could still ping anyone (even with large packets), but all
> TCP and UDP traffic seemingly didn't ``arrive'' at the IP stack, even
> though the packets made it into the NIC at the lowest level (so
> tcpdump could still display them).
>
> This made me suspect the TCP/UDP checksum offloading, and indeed,
> after uncommenting the checksum capability:
>
> Index: if_hme.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/hme/if_hme.c,v
> retrieving revision 1.46
> diff -u -r1.46 if_hme.c
> --- if_hme.c 17 Jan 2006 06:02:22 -0000 1.46
> +++ if_hme.c 20 Mar 2006 20:56:54 -0000
> @@ -340,9 +340,9 @@
> * Tell the upper layer(s) we support long frames/checksum offloads.
> */
> ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
> - ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_HWCSUM;
> + ifp->if_capabilities |= IFCAP_VLAN_MTU /* | IFCAP_HWCSUM */;
> ifp->if_hwassist |= sc->sc_csum_features;
> - ifp->if_capenable |= IFCAP_VLAN_MTU | IFCAP_HWCSUM;
> + ifp->if_capenable |= IFCAP_VLAN_MTU /* | IFCAP_HWCSUM */;
> return (0);
>
> fail_txdesc:
>
> everything works again. If anyone has any further ideas what might
> have broken this, I'm all ears, otherwise I might start digging down
> into the code myself.
>
> (I don't have a FreeBSD-sparc64 machine running -current around, so I
> cannot test right now whether it would work there.)
>
How about backing out rev. 1.46(if_hme.c)?
For the same patch sent to bard at OpenBSD I got a positive report
so it's strange to me though.(brad at OpenBSD reported Rx checksum
offload breakage on little endian systems.)
Since I don't have PCI HME NIC I can't test it on little endian
systems. :-(
--
Regards,
Pyun YongHyeon
More information about the freebsd-sparc64
mailing list