kern/136409: [xl] doesn't compile with TX checksumming enabled

Anonymous swell.k at gmail.com
Tue Jul 7 08:50:01 UTC 2009


>Number:         136409
>Category:       kern
>Synopsis:       [xl] doesn't compile with TX checksumming enabled
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 07 08:50:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Anonymous
>Release:        FreeBSD 8.0-CURRENT amd64
>Organization:
>Environment:
System: FreeBSD luffy 8.0-CURRENT FreeBSD 8.0-CURRENT #0 r195403M: Sun Jul  5 09:49:17 UTC 2009     root at luffy:/usr/obj/usr/src/sys/PHOENIX  amd64
>Description:
sys/dev/xl/if_xl.c have this

--- begin if_xl.c
/*
 * TX Checksumming is disabled by default for two reasons:
 * - TX Checksumming will occasionally produce corrupt packets
 * - TX Checksumming seems to reduce performance
 *
 * Only 905B/C cards were reported to have this problem, it is possible
 * that later chips _may_ be immune.
 */
#define	XL905B_TXCSUM_BROKEN	1

#ifdef XL905B_TXCSUM_BROKEN
#define XL905B_CSUM_FEATURES	0
#else
#define XL905B_CSUM_FEATURES	(CSUM_IP | CSUM_TCP | CSUM_UDP)
#endif
--- end if_xl.c

According to above comment to enable TX checksumming one should just
remove line `#define XL905B_TXCSUM_BROKEN 1'. But doing so breaks
compilation.
>How-To-Repeat:
$ sed -i '.bak' '/define[[:space:]]*XL905B_TXCSUM_BROKEN/d' /sys/dev/xl/if_xl.c
$ make depend all -C/sys/modules/xl
@ -> /usr/src/sys
machine -> /usr/src/sys/amd64/include
awk -f @/tools/makeobjops.awk @/kern/device_if.m -h
awk -f @/tools/makeobjops.awk @/kern/bus_if.m -h
awk -f @/tools/makeobjops.awk @/dev/pci/pci_if.m -h
awk -f @/tools/makeobjops.awk @/dev/mii/miibus_if.m -h
rm -f .depend
mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -I. -I@ -I@/contrib/altq /usr/src/sys/modules/xl/../../dev/xl/if_xl.c
Warning: Object directory not changed from original /usr/src/sys/modules/xl
cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc   -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common  -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/xl/../../dev/xl/if_xl.c
/usr/src/sys/modules/xl/../../dev/xl/if_xl.c: In function 'xl_encap':
/usr/src/sys/modules/xl/../../dev/xl/if_xl.c:2473: error: request for member 'M_dat' in something not a structure or union
/usr/src/sys/modules/xl/../../dev/xl/if_xl.c:2474: error: request for member 'M_dat' in something not a structure or union
/usr/src/sys/modules/xl/../../dev/xl/if_xl.c:2476: error: request for member 'M_dat' in something not a structure or union
/usr/src/sys/modules/xl/../../dev/xl/if_xl.c:2478: error: request for member 'M_dat' in something not a structure or union
*** Error code 1

Stop in /usr/src/sys/modules/xl.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list