Date: Mon, 21 Mar 2011 18:39:42 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r219842 - in projects/altix/sys: amd64/include conf dev/ath/ath_hal/ar5416 dev/ath/ath_rate/sample dev/hptmv i386/include kern modules modules/mlx4 modules/mlx4ib modules/mlxen modules/... Message-ID: <201103211839.p2LIdgSU016948@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marcel Date: Mon Mar 21 18:39:42 2011 New Revision: 219842 URL: http://svn.freebsd.org/changeset/base/219842 Log: Merge svn+ssh://svn.freebsd.org/base/head@219841 Added: projects/altix/sys/modules/mlx4/ - copied from r219841, head/sys/modules/mlx4/ projects/altix/sys/modules/mlx4ib/ - copied from r219841, head/sys/modules/mlx4ib/ projects/altix/sys/modules/mlxen/ - copied from r219841, head/sys/modules/mlxen/ projects/altix/sys/modules/mthca/ - copied from r219841, head/sys/modules/mthca/ projects/altix/sys/ofed/ - copied from r219841, head/sys/ofed/ Modified: projects/altix/sys/amd64/include/endian.h projects/altix/sys/conf/files projects/altix/sys/conf/files.ia64 projects/altix/sys/conf/kern.pre.mk projects/altix/sys/conf/options projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/altix/sys/dev/ath/ath_rate/sample/sample.c projects/altix/sys/dev/hptmv/hptproc.c projects/altix/sys/i386/include/endian.h projects/altix/sys/kern/kern_intr.c projects/altix/sys/kern/kern_jail.c projects/altix/sys/kern/kern_sx.c projects/altix/sys/kern/kern_sysctl.c projects/altix/sys/kern/subr_bus.c projects/altix/sys/modules/Makefile projects/altix/sys/net/if.c projects/altix/sys/net/if_arp.h projects/altix/sys/net/if_llatbl.h projects/altix/sys/net/if_types.h projects/altix/sys/net/if_var.h projects/altix/sys/net/if_vlan.c projects/altix/sys/net/if_vlan_var.h projects/altix/sys/netgraph/ng_base.c projects/altix/sys/netinet/if_ether.c projects/altix/sys/netinet/in.c projects/altix/sys/netinet6/in6.c projects/altix/sys/netinet6/nd6.c projects/altix/sys/netinet6/nd6_nbr.c projects/altix/sys/sys/bus.h projects/altix/sys/sys/file.h projects/altix/sys/sys/interrupt.h projects/altix/sys/sys/jail.h projects/altix/sys/sys/sx.h projects/altix/sys/sys/sysctl.h projects/altix/sys/vm/uma_core.c projects/altix/sys/vm/vm_map.c projects/altix/sys/vm/vm_map.h Directory Properties: projects/altix/lib/libstand/ (props changed) projects/altix/sys/ (props changed) projects/altix/sys/amd64/include/xen/ (props changed) projects/altix/sys/boot/i386/efi/ (props changed) projects/altix/sys/boot/ia64/efi/ (props changed) projects/altix/sys/boot/ia64/ski/ (props changed) projects/altix/sys/boot/powerpc/boot1.chrp/ (props changed) projects/altix/sys/boot/powerpc/ofw/ (props changed) projects/altix/sys/cddl/contrib/opensolaris/ (props changed) projects/altix/sys/conf/ (props changed) projects/altix/sys/contrib/dev/acpica/ (props changed) projects/altix/sys/contrib/octeon-sdk/ (props changed) projects/altix/sys/contrib/pf/ (props changed) projects/altix/sys/contrib/x86emu/ (props changed) projects/altix/sys/kern/subr_busdma.c (props changed) projects/altix/sys/ofed/drivers/ (props changed) projects/altix/sys/ofed/drivers/infiniband/ (props changed) projects/altix/sys/ofed/drivers/infiniband/core/ (props changed) projects/altix/sys/ofed/drivers/infiniband/debug/ (props changed) projects/altix/sys/ofed/drivers/infiniband/hw/ (props changed) projects/altix/sys/ofed/drivers/infiniband/hw/mlx4/ (props changed) projects/altix/sys/ofed/drivers/infiniband/hw/mthca/ (props changed) projects/altix/sys/ofed/drivers/infiniband/ulp/ (props changed) projects/altix/sys/ofed/drivers/infiniband/ulp/ipoib/ (props changed) projects/altix/sys/ofed/drivers/infiniband/ulp/sdp/ (props changed) projects/altix/sys/ofed/drivers/infiniband/util/ (props changed) projects/altix/sys/ofed/drivers/net/ (props changed) projects/altix/sys/ofed/drivers/net/mlx4/ (props changed) projects/altix/sys/ofed/include/ (props changed) projects/altix/sys/ofed/include/asm/ (props changed) projects/altix/sys/ofed/include/linux/ (props changed) projects/altix/sys/ofed/include/linux/mlx4/ (props changed) projects/altix/sys/ofed/include/net/ (props changed) projects/altix/sys/ofed/include/rdma/ (props changed) Modified: projects/altix/sys/amd64/include/endian.h ============================================================================== --- projects/altix/sys/amd64/include/endian.h Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/amd64/include/endian.h Mon Mar 21 18:39:42 2011 (r219842) @@ -69,73 +69,59 @@ extern "C" { #if defined(__GNUCLIKE_ASM) && defined(__GNUCLIKE_BUILTIN_CONSTANT_P) -#define __byte_swap_int_var(x) \ -__extension__ ({ register __uint32_t __X = (x); \ - __asm ("bswap %0" : "+r" (__X)); \ - __X; }) +#define __bswap64_const(_x) \ + (((_x) >> 56) | \ + (((_x) >> 40) & (0xffUL << 8)) | \ + (((_x) >> 24) & (0xffUL << 16)) | \ + (((_x) >> 8) & (0xffUL << 24)) | \ + (((_x) << 8) & (0xffUL << 32)) | \ + (((_x) << 24) & (0xffUL << 40)) | \ + (((_x) << 40) & (0xffUL << 48)) | \ + ((_x) << 56)) + +#define __bswap32_const(_x) \ + (((_x) >> 24) | \ + (((_x) & (0xff << 16)) >> 8) | \ + (((_x) & (0xff << 8)) << 8) | \ + ((_x) << 24)) -#ifdef __OPTIMIZE__ - -#define __byte_swap_int_const(x) \ - ((((x) & 0xff000000) >> 24) | \ - (((x) & 0x00ff0000) >> 8) | \ - (((x) & 0x0000ff00) << 8) | \ - (((x) & 0x000000ff) << 24)) -#define __byte_swap_int(x) (__builtin_constant_p(x) ? \ - __byte_swap_int_const(x) : __byte_swap_int_var(x)) - -#else /* __OPTIMIZE__ */ - -#define __byte_swap_int(x) __byte_swap_int_var(x) - -#endif /* __OPTIMIZE__ */ - -#define __byte_swap_long_var(x) \ -__extension__ ({ register __uint64_t __X = (x); \ - __asm ("bswap %0" : "+r" (__X)); \ - __X; }) - -#ifdef __OPTIMIZE__ - -#define __byte_swap_long_const(x) \ - (((x >> 56) | \ - ((x >> 40) & 0xff00) | \ - ((x >> 24) & 0xff0000) | \ - ((x >> 8) & 0xff000000) | \ - ((x << 8) & (0xfful << 32)) | \ - ((x << 24) & (0xfful << 40)) | \ - ((x << 40) & (0xfful << 48)) | \ - ((x << 56)))) - -#define __byte_swap_long(x) (__builtin_constant_p(x) ? \ - __byte_swap_long_const(x) : __byte_swap_long_var(x)) - -#else /* __OPTIMIZE__ */ - -#define __byte_swap_long(x) __byte_swap_long_var(x) - -#endif /* __OPTIMIZE__ */ +#define __bswap16_const(_x) (__uint16_t)((_x) << 8 | (_x) >> 8) static __inline __uint64_t -__bswap64(__uint64_t _x) +__bswap64_var(__uint64_t _x) { - return (__byte_swap_long(_x)); + __asm ("bswap %0" : "+r" (_x)); + return (_x); } static __inline __uint32_t -__bswap32(__uint32_t _x) +__bswap32_var(__uint32_t _x) { - return (__byte_swap_int(_x)); + __asm ("bswap %0" : "+r" (_x)); + return (_x); } static __inline __uint16_t -__bswap16(__uint16_t _x) +__bswap16_var(__uint16_t _x) { - return (_x << 8 | _x >> 8); + + return (__bswap16_const(_x)); } +#define __bswap64(_x) \ + (__builtin_constant_p(_x) ? \ + __bswap64_const((__uint64_t)(_x)) : __bswap64_var(_x)) + +#define __bswap32(_x) \ + (__builtin_constant_p(_x) ? \ + __bswap32_const((__uint32_t)(_x)) : __bswap32_var(_x)) + +#define __bswap16(_x) \ + (__builtin_constant_p(_x) ? \ + __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)) + #define __htonl(x) __bswap32(x) #define __htons(x) __bswap16(x) #define __ntohl(x) __bswap32(x) Modified: projects/altix/sys/conf/files ============================================================================== --- projects/altix/sys/conf/files Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/conf/files Mon Mar 21 18:39:42 2011 (r219842) @@ -2792,6 +2792,281 @@ nlm/nlm_prot_server.c optional nfslockd nlm/nlm_prot_svc.c optional nfslockd | nfsd nlm/nlm_prot_xdr.c optional nfslockd | nfsd nlm/sm_inter_xdr.c optional nfslockd | nfsd + +# OpenFabrics Enterprise Distribution (Infiniband) +ofed/include/linux/linux_compat.c optional ofed \ + no-depend compile-with "${OFED_C}" +ofed/include/linux/linux_idr.c optional ofed \ + no-depend compile-with "${OFED_C}" +ofed/include/linux/linux_radix.c optional ofed \ + no-depend compile-with "${OFED_C}" +ofed/drivers/infiniband/core/addr.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/agent.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/cache.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +# XXX Mad.c must be ordered before cm.c for sysinit sets to occur in +# the correct order. +ofed/drivers/infiniband/core/mad.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/cm.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/cma.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/device.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/fmr_pool.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/iwcm.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/local_sa.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/mad_rmpp.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/multicast.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/notice.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/packer.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/sa_query.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/smi.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/sysfs.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/ucm.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/ucma.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/ud_header.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/umem.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/user_mad.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/uverbs_cmd.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/uverbs_main.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/uverbs_marshall.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" +ofed/drivers/infiniband/core/verbs.c optional ofed \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/core/" + +ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c optional ipoib \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" +#ofed/drivers/infiniband/ulp/ipoib/ipoib_fs.c optional ipoib \ +# no-depend \ +# compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" +ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c optional ipoib \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" +ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c optional ipoib \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" +ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c optional ipoib \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" +ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c optional ipoib \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" +#ofed/drivers/infiniband/ulp/ipoib/ipoib_vlan.c optional ipoib \ +# no-depend \ +# compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" + +ofed/drivers/infiniband/ulp/sdp/sdp_bcopy.c optional sdp \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" +ofed/drivers/infiniband/ulp/sdp/sdp_main.c optional sdp \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" +ofed/drivers/infiniband/ulp/sdp/sdp_rx.c optional sdp \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" +ofed/drivers/infiniband/ulp/sdp/sdp_cma.c optional sdp \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" +ofed/drivers/infiniband/ulp/sdp/sdp_tx.c optional sdp \ + no-depend \ + compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" + +ofed/drivers/infiniband/hw/mlx4/ah.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/cq.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/doorbell.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/mad.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/main.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/mr.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/qp.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/srq.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" +ofed/drivers/infiniband/hw/mlx4/wc.c optional mlx4ib \ + no-depend obj-prefix "mlx4ib_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/infiniband/hw/mlx4/" + +ofed/drivers/net/mlx4/alloc.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/catas.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/cmd.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/cq.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/eq.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/fw.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/icm.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/intf.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/main.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/mcg.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/mr.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/pd.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/port.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/profile.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/qp.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/reset.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/sense.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/srq.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/xrcd.c optional mlx4ib | mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" + +ofed/drivers/net/mlx4/en_cq.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_frag.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_main.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_netdev.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_port.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_resources.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_rx.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" +ofed/drivers/net/mlx4/en_tx.c optional mlxen \ + no-depend obj-prefix "mlx4_" \ + compile-with "${OFED_C_NOIMP} -I$S/ofed/drivers/net/mlx4/" + +ofed/drivers/infiniband/hw/mthca/mthca_allocator.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_av.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_catas.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_cmd.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_cq.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_eq.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_mad.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_main.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_mcg.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_memfree.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_mr.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_pd.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_profile.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_provider.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_qp.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_reset.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_srq.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" +ofed/drivers/infiniband/hw/mthca/mthca_uar.c optional mthca \ + no-depend compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/mthca/" + # crypto support opencrypto/cast.c optional crypto | ipsec opencrypto/criov.c optional crypto Modified: projects/altix/sys/conf/files.ia64 ============================================================================== --- projects/altix/sys/conf/files.ia64 Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/conf/files.ia64 Mon Mar 21 18:39:42 2011 (r219842) @@ -84,7 +84,6 @@ ia64/ia64/efi.c standard ia64/ia64/elf_machdep.c standard ia64/ia64/emulate.c standard ia64/ia64/exception.S standard -ia64/ia64/physical.S standard ia64/ia64/gdb_machdep.c optional gdb ia64/ia64/highfp.c standard ia64/ia64/in_cksum.c optional inet @@ -97,6 +96,7 @@ ia64/ia64/mem.c optional mem ia64/ia64/mp_machdep.c optional smp ia64/ia64/nexus.c standard ia64/ia64/pal.S standard +ia64/ia64/physical.S standard ia64/ia64/pmap.c standard ia64/ia64/ptrace_machdep.c standard ia64/ia64/sal.c standard Modified: projects/altix/sys/conf/kern.pre.mk ============================================================================== --- projects/altix/sys/conf/kern.pre.mk Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/conf/kern.pre.mk Mon Mar 21 18:39:42 2011 (r219842) @@ -146,6 +146,14 @@ NORMAL_CTFCONVERT= [ -z "${CTFCONVERT}" NORMAL_LINT= ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.IMPSRC} +# Infiniband C flags. Correct include paths and omit errors that linux +# does not honor. +OFEDINCLUDES= -I$S/ofed/include/ +OFEDNOERR= -Wno-cast-qual -Wno-pointer-arith -fms-extensions +OFEDCFLAGS= ${CFLAGS:N-I*} ${OFEDINCLUDES} ${CFLAGS:M-I*} ${OFEDNOERR} +OFED_C_NOIMP= ${CC} -c -o ${.TARGET} ${OFEDCFLAGS} ${WERROR} ${PROF} +OFED_C= ${OFED_C_NOIMP} ${.IMPSRC} + GEN_CFILES= $S/$M/$M/genassym.c ${MFILES:T:S/.m$/.c/} SYSTEM_CFILES= config.c env.c hints.c vnode_if.c SYSTEM_DEP= Makefile ${SYSTEM_OBJS} Modified: projects/altix/sys/conf/options ============================================================================== --- projects/altix/sys/conf/options Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/conf/options Mon Mar 21 18:39:42 2011 (r219842) @@ -862,3 +862,11 @@ X86BIOS # Flattened device tree options FDT opt_platform.h FDT_DTB_STATIC opt_platform.h + +# OFED Infiniband stack +OFED opt_ofed.h +OFED_DEBUG_INIT opt_ofed.h +SDP opt_ofed.h +SDP_DEBUG opt_ofed.h +IPOIB_DEBUG opt_ofed.h +IPOIB_CM opt_ofed.h Modified: projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Mar 21 18:39:42 2011 (r219842) @@ -277,7 +277,8 @@ ar5416Attach(uint16_t devid, HAL_SOFTC s HAL_INI_INIT(&AH5416(ah)->ah_ini_bank7, ar5416Bank7, 2); HAL_INI_INIT(&AH5416(ah)->ah_ini_addac, ar5416Addac, 2); - if (!IS_5416V2_2(ah)) { /* Owl 2.1/2.0 */ + if (! IS_5416V2_2(ah)) { /* Owl 2.1/2.0 */ + ath_hal_printf(ah, "[ath] Enabling CLKDRV workaround for AR5416 < v2.2\n"); struct ini { uint32_t *data; /* NB: !const */ int rows, cols; Modified: projects/altix/sys/dev/ath/ath_rate/sample/sample.c ============================================================================== --- projects/altix/sys/dev/ath/ath_rate/sample/sample.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/dev/ath/ath_rate/sample/sample.c Mon Mar 21 18:39:42 2011 (r219842) @@ -250,6 +250,55 @@ pick_sample_rate(struct sample_softc *ss #undef MCS } +static int +ath_rate_get_static_rix(struct ath_softc *sc, const struct ieee80211_node *ni) +{ +#define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) +#define DOT11RATE(_ix) (rt->info[(_ix)].dot11Rate & IEEE80211_RATE_VAL) +#define MCS(_ix) (ni->ni_htrates.rs_rates[_ix] | IEEE80211_RATE_MCS) + const struct ieee80211_txparam *tp = ni->ni_txparms; + int srate; + + /* Check MCS rates */ + for (srate = ni->ni_htrates.rs_nrates - 1; srate >= 0; srate--) { + if (MCS(srate) == tp->ucastrate) + return sc->sc_rixmap[tp->ucastrate]; + } + + /* Check legacy rates */ + for (srate = ni->ni_rates.rs_nrates - 1; srate >= 0; srate--) { + if (RATE(srate) == tp->ucastrate) + return sc->sc_rixmap[tp->ucastrate]; + } + return -1; +#undef RATE +#undef DOT11RATE +#undef MCS +} + +static void +ath_rate_update_static_rix(struct ath_softc *sc, struct ieee80211_node *ni) +{ + struct ath_node *an = ATH_NODE(ni); + const struct ieee80211_txparam *tp = ni->ni_txparms; + struct sample_node *sn = ATH_NODE_SAMPLE(an); + + if (tp != NULL && tp->ucastrate != IEEE80211_FIXED_RATE_NONE) { + /* + * A fixed rate is to be used; ucastrate is the IEEE code + * for this rate (sans basic bit). Check this against the + * negotiated rate set for the node. Note the fixed rate + * may not be available for various reasons so we only + * setup the static rate index if the lookup is successful. + */ + sn->static_rix = ath_rate_get_static_rix(sc, ni); + } else { + sn->static_rix = -1; + } +} + + + void ath_rate_findrate(struct ath_softc *sc, struct ath_node *an, int shortPreamble, size_t frameLen, @@ -267,6 +316,8 @@ ath_rate_findrate(struct ath_softc *sc, int rix, mrr, best_rix, change_rates; unsigned average_tx_time; + ath_rate_update_static_rix(sc, &an->an_node); + if (sn->static_rix != -1) { rix = sn->static_rix; *try0 = ATH_TXMAXTRY; @@ -560,9 +611,10 @@ ath_rate_tx_complete(struct ath_softc *s * Only one rate was used; optimize work. */ IEEE80211_NOTE(an->an_node.ni_vap, IEEE80211_MSG_RATECTL, - &an->an_node, "%s: size %d %s rate/try %d %s/%d/%d", + &an->an_node, "%s: size %d (%d bytes) %s rate/try %d %s/%d/%d", __func__, bin_to_size(size_to_bin(frame_size)), + frame_size, ts->ts_status ? "FAIL" : "OK", dot11rate(rt, final_rix), dot11rate_label(rt, final_rix), short_tries, long_tries); update_stats(sc, an, frame_size, @@ -587,9 +639,10 @@ ath_rate_tx_complete(struct ath_softc *s IEEE80211_NOTE(an->an_node.ni_vap, IEEE80211_MSG_RATECTL, &an->an_node, -"%s: size %d finaltsidx %d tries %d %s rate/try [%d %s/%d %d %s/%d %d %s/%d %d %s/%d]", +"%s: size %d (%d bytes) finaltsidx %d tries %d %s rate/try [%d %s/%d %d %s/%d %d %s/%d %d %s/%d]", __func__, bin_to_size(size_to_bin(frame_size)), + frame_size, finalTSIdx, long_tries, ts->ts_status ? "FAIL" : "OK", @@ -686,12 +739,10 @@ ath_rate_ctl_reset(struct ath_softc *sc, #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) #define DOT11RATE(_ix) (rt->info[(_ix)].dot11Rate & IEEE80211_RATE_VAL) #define MCS(_ix) (ni->ni_htrates.rs_rates[_ix] | IEEE80211_RATE_MCS) - struct ath_node *an = ATH_NODE(ni); - const struct ieee80211_txparam *tp = ni->ni_txparms; struct sample_node *sn = ATH_NODE_SAMPLE(an); const HAL_RATE_TABLE *rt = sc->sc_currates; - int x, y, srate, rix; + int x, y, rix; KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode)); @@ -702,33 +753,7 @@ ath_rate_ctl_reset(struct ath_softc *sc, ("no mrr schedule for mode %u", sc->sc_curmode)); sn->static_rix = -1; - if (tp != NULL && tp->ucastrate != IEEE80211_FIXED_RATE_NONE) { - /* - * A fixed rate is to be used; ucastrate is the IEEE code - * for this rate (sans basic bit). Check this against the - * negotiated rate set for the node. Note the fixed rate - * may not be available for various reasons so we only - * setup the static rate index if the lookup is successful. - */ - - /* XXX todo: check MCS rates */ - - /* Check legacy rates */ - for (srate = ni->ni_rates.rs_nrates - 1; srate >= 0; srate--) - if (RATE(srate) == tp->ucastrate) { - sn->static_rix = sc->sc_rixmap[tp->ucastrate]; - break; - } -#ifdef IEEE80211_DEBUG - if (sn->static_rix == -1) { - IEEE80211_NOTE(ni->ni_vap, - IEEE80211_MSG_RATECTL, ni, - "%s: ucastrate %u not found, nrates %u", - __func__, tp->ucastrate, - ni->ni_rates.rs_nrates); - } -#endif - } + ath_rate_update_static_rix(sc, ni); /* * Construct a bitmask of usable rates. This has all Modified: projects/altix/sys/dev/hptmv/hptproc.c ============================================================================== --- projects/altix/sys/dev/hptmv/hptproc.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/dev/hptmv/hptproc.c Mon Mar 21 18:39:42 2011 (r219842) @@ -51,8 +51,8 @@ int hpt_rescan_all(void); static char hptproc_buffer[256]; extern char DRIVER_VERSION[]; -#define FORMAL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \ - struct sysctl_req *req +#define FORMAL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, \ + intptr_t arg2, struct sysctl_req *req #define REAL_HANDLER_ARGS oidp, arg1, arg2, req typedef struct sysctl_req HPT_GET_INFO; Modified: projects/altix/sys/i386/include/endian.h ============================================================================== --- projects/altix/sys/i386/include/endian.h Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/i386/include/endian.h Mon Mar 21 18:39:42 2011 (r219842) @@ -69,50 +69,59 @@ extern "C" { #if defined(__GNUCLIKE_ASM) && defined(__GNUCLIKE_BUILTIN_CONSTANT_P) -#define __byte_swap_int_var(x) \ -__extension__ ({ register __uint32_t __X = (x); \ - __asm ("bswap %0" : "+r" (__X)); \ - __X; }) - -#ifdef __OPTIMIZE__ - -#define __byte_swap_int_const(x) \ - ((((x) & 0xff000000) >> 24) | \ - (((x) & 0x00ff0000) >> 8) | \ - (((x) & 0x0000ff00) << 8) | \ - (((x) & 0x000000ff) << 24)) -#define __byte_swap_int(x) (__builtin_constant_p(x) ? \ - __byte_swap_int_const(x) : __byte_swap_int_var(x)) +#define __bswap64_const(_x) \ + (((_x) >> 56) | \ + (((_x) >> 40) & (0xffULL << 8)) | \ + (((_x) >> 24) & (0xffULL << 16)) | \ + (((_x) >> 8) & (0xffULL << 24)) | \ + (((_x) << 8) & (0xffULL << 32)) | \ + (((_x) << 24) & (0xffULL << 40)) | \ + (((_x) << 40) & (0xffULL << 48)) | \ + ((_x) << 56)) + +#define __bswap32_const(_x) \ + (((_x) >> 24) | \ + (((_x) & (0xff << 16)) >> 8) | \ + (((_x) & (0xff << 8)) << 8) | \ + ((_x) << 24)) -#else /* __OPTIMIZE__ */ - -#define __byte_swap_int(x) __byte_swap_int_var(x) - -#endif /* __OPTIMIZE__ */ +#define __bswap16_const(_x) (__uint16_t)((_x) << 8 | (_x) >> 8) static __inline __uint64_t -__bswap64(__uint64_t _x) +__bswap64_var(__uint64_t __x) { - return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) | - ((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) | - ((_x << 24) & ((__uint64_t)0xff << 40)) | - ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56))); + return __bswap64_const(__x); } + static __inline __uint32_t -__bswap32(__uint32_t _x) +__bswap32_var(__uint32_t _x) { - return (__byte_swap_int(_x)); + __asm ("bswap %0" : "+r" (_x)); + return (_x); } static __inline __uint16_t -__bswap16(__uint16_t _x) +__bswap16_var(__uint16_t _x) { - return (_x << 8 | _x >> 8); + + return (__bswap16_const(_x)); } +#define __bswap64(_x) \ + (__builtin_constant_p(_x) ? \ + __bswap64_const((__uint64_t)(_x)) : __bswap64_var(_x)) + +#define __bswap32(_x) \ + (__builtin_constant_p(_x) ? \ + __bswap32_const((__uint32_t)(_x)) : __bswap32_var(_x)) + +#define __bswap16(_x) \ + (__builtin_constant_p(_x) ? \ + __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)) + #define __htonl(x) __bswap32(x) #define __htons(x) __bswap16(x) #define __ntohl(x) __bswap32(x) Modified: projects/altix/sys/kern/kern_intr.c ============================================================================== --- projects/altix/sys/kern/kern_intr.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/kern/kern_intr.c Mon Mar 21 18:39:42 2011 (r219842) @@ -74,6 +74,7 @@ struct intr_thread { /* Interrupt thread flags kept in it_flags */ #define IT_DEAD 0x000001 /* Thread is waiting to exit. */ +#define IT_WAIT 0x000002 /* Thread is waiting for completion. */ struct intr_entropy { struct thread *td; @@ -735,6 +736,39 @@ intr_handler_source(void *cookie) return (ie->ie_source); } +/* + * Sleep until an ithread finishes executing an interrupt handler. + * + * XXX Doesn't currently handle interrupt filters or fast interrupt + * handlers. This is intended for compatibility with linux drivers + * only. Do not use in BSD code. + */ +void +_intr_drain(int irq) +{ + struct mtx *mtx; + struct intr_event *ie; + struct intr_thread *ithd; + struct thread *td; + + ie = intr_lookup(irq); + if (ie == NULL) + return; + if (ie->ie_thread == NULL) + return; + ithd = ie->ie_thread; + td = ithd->it_thread; + thread_lock(td); + mtx = td->td_lock; + if (!TD_AWAITING_INTR(td)) { + ithd->it_flags |= IT_WAIT; + msleep_spin(ithd, mtx, "isync", 0); + } + mtx_unlock_spin(mtx); + return; +} + + #ifndef INTR_FILTER int intr_event_remove_handler(void *cookie) @@ -1271,6 +1305,7 @@ ithread_loop(void *arg) struct intr_event *ie; struct thread *td; struct proc *p; + int wake; td = curthread; p = td->td_proc; @@ -1279,6 +1314,7 @@ ithread_loop(void *arg) ("%s: ithread and proc linkage out of sync", __func__)); ie = ithd->it_event; ie->ie_count = 0; + wake = 0; /* * As long as we have interrupts outstanding, go through the @@ -1319,12 +1355,20 @@ ithread_loop(void *arg) * set again, so we have to check it again. */ thread_lock(td); - if (!ithd->it_need && !(ithd->it_flags & IT_DEAD)) { + if (!ithd->it_need && !(ithd->it_flags & (IT_DEAD | IT_WAIT))) { TD_SET_IWAIT(td); ie->ie_count = 0; mi_switch(SW_VOL | SWT_IWAIT, NULL); } + if (ithd->it_flags & IT_WAIT) { + wake = 1; + ithd->it_flags &= ~IT_WAIT; + } thread_unlock(td); + if (wake) { + wakeup(ithd); + wake = 0; + } } } @@ -1439,6 +1483,7 @@ ithread_loop(void *arg) struct thread *td; struct proc *p; int priv; + int wake; td = curthread; p = td->td_proc; @@ -1449,6 +1494,7 @@ ithread_loop(void *arg) ("%s: ithread and proc linkage out of sync", __func__)); ie = ithd->it_event; ie->ie_count = 0; + wake = 0; /* * As long as we have interrupts outstanding, go through the @@ -1492,12 +1538,20 @@ ithread_loop(void *arg) * set again, so we have to check it again. */ thread_lock(td); - if (!ithd->it_need && !(ithd->it_flags & IT_DEAD)) { + if (!ithd->it_need && !(ithd->it_flags & (IT_DEAD | IT_WAIT))) { TD_SET_IWAIT(td); ie->ie_count = 0; mi_switch(SW_VOL | SWT_IWAIT, NULL); } + if (ithd->it_flags & IT_WAIT) { + wake = 1; + ithd->it_flags &= ~IT_WAIT; + } thread_unlock(td); + if (wake) { + wakeup(ithd); + wake = 0; + } } } Modified: projects/altix/sys/kern/kern_jail.c ============================================================================== --- projects/altix/sys/kern/kern_jail.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/kern/kern_jail.c Mon Mar 21 18:39:42 2011 (r219842) @@ -4182,7 +4182,7 @@ sysctl_jail_param(SYSCTL_HANDLER_ARGS) i = 0; return (SYSCTL_OUT(req, &i, sizeof(i))); case CTLTYPE_STRING: - snprintf(numbuf, sizeof(numbuf), "%d", arg2); + snprintf(numbuf, sizeof(numbuf), "%jd", (intmax_t)arg2); return (sysctl_handle_string(oidp, numbuf, sizeof(numbuf), req)); case CTLTYPE_STRUCT: Modified: projects/altix/sys/kern/kern_sx.c ============================================================================== --- projects/altix/sys/kern/kern_sx.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/kern/kern_sx.c Mon Mar 21 18:39:42 2011 (r219842) @@ -194,7 +194,7 @@ sx_sysinit(void *arg) { struct sx_args *sargs = arg; - sx_init(sargs->sa_sx, sargs->sa_desc); + sx_init_flags(sargs->sa_sx, sargs->sa_desc, sargs->sa_flags); } void Modified: projects/altix/sys/kern/kern_sysctl.c ============================================================================== --- projects/altix/sys/kern/kern_sysctl.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/kern/kern_sysctl.c Mon Mar 21 18:39:42 2011 (r219842) @@ -365,10 +365,31 @@ sysctl_remove_oid(struct sysctl_oid *oid return (error); } +int +sysctl_remove_name(struct sysctl_oid *parent, const char *name, + int del, int recurse) +{ + struct sysctl_oid *p, *tmp; + int error; + + error = ENOENT; + SYSCTL_XLOCK(); + SLIST_FOREACH_SAFE(p, SYSCTL_CHILDREN(parent), oid_link, tmp) { + if (strcmp(p->oid_name, name) == 0) { + error = sysctl_remove_oid_locked(p, del, recurse); + break; + } + } + SYSCTL_XUNLOCK(); + + return (error); +} + + static int sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del, int recurse) { - struct sysctl_oid *p; + struct sysctl_oid *p, *tmp; int error; SYSCTL_ASSERT_XLOCKED(); @@ -387,7 +408,8 @@ sysctl_remove_oid_locked(struct sysctl_o */ if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { if (oidp->oid_refcnt == 1) { - SLIST_FOREACH(p, SYSCTL_CHILDREN(oidp), oid_link) { + SLIST_FOREACH_SAFE(p, + SYSCTL_CHILDREN(oidp), oid_link, tmp) { if (!recurse) return (ENOTEMPTY); error = sysctl_remove_oid_locked(p, del, @@ -428,14 +450,13 @@ sysctl_remove_oid_locked(struct sysctl_o } return (0); } - /* * Create new sysctls at run time. * clist may point to a valid context initialized with sysctl_ctx_init(). */ struct sysctl_oid * sysctl_add_oid(struct sysctl_ctx_list *clist, struct sysctl_oid_list *parent, - int number, const char *name, int kind, void *arg1, int arg2, + int number, const char *name, int kind, void *arg1, intptr_t arg2, int (*handler)(SYSCTL_HANDLER_ARGS), const char *fmt, const char *descr) { struct sysctl_oid *oidp; @@ -479,6 +500,7 @@ sysctl_add_oid(struct sysctl_ctx_list *c SYSCTL_CHILDREN_SET(oidp, malloc(sizeof(struct sysctl_oid_list), M_SYSCTLOID, M_WAITOK)); SLIST_INIT(SYSCTL_CHILDREN(oidp)); + oidp->oid_arg2 = arg2; } else { oidp->oid_arg1 = arg1; oidp->oid_arg2 = arg2; Modified: projects/altix/sys/kern/subr_bus.c ============================================================================== --- projects/altix/sys/kern/subr_bus.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/kern/subr_bus.c Mon Mar 21 18:39:42 2011 (r219842) @@ -1038,7 +1038,7 @@ devclass_driver_added(devclass_t dc, dri * @param dc the devclass to edit * @param driver the driver to register */ -static int +int devclass_add_driver(devclass_t dc, driver_t *driver, int pass, devclass_t *dcp) { driverlink_t dl; @@ -1172,7 +1172,7 @@ devclass_driver_deleted(devclass_t buscl * @param dc the devclass to edit * @param driver the driver to unregister */ -static int +int devclass_delete_driver(devclass_t busclass, driver_t *driver) { devclass_t dc = devclass_find(driver->name); Modified: projects/altix/sys/modules/Makefile ============================================================================== --- projects/altix/sys/modules/Makefile Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/modules/Makefile Mon Mar 21 18:39:42 2011 (r219842) @@ -185,6 +185,9 @@ SUBDIR= ${_3dfx} \ mfi \ mii \ mlx \ + mlx4 \ + mlx4ib \ + mlxen \ ${_mly} \ mmc \ mmcsd \ @@ -195,6 +198,7 @@ SUBDIR= ${_3dfx} \ msdosfs_iconv \ ${_mse} \ msk \ + mthca \ mvs \ mwl \ mwlfw \ Modified: projects/altix/sys/net/if.c ============================================================================== --- projects/altix/sys/net/if.c Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/net/if.c Mon Mar 21 18:39:42 2011 (r219842) @@ -1881,6 +1881,11 @@ if_route(struct ifnet *ifp, int flag, in void (*vlan_link_state_p)(struct ifnet *); /* XXX: private from if_vlan */ void (*vlan_trunk_cap_p)(struct ifnet *); /* XXX: private from if_vlan */ +struct ifnet *(*vlan_trunkdev_p)(struct ifnet *); +struct ifnet *(*vlan_devat_p)(struct ifnet *, uint16_t); +int (*vlan_tag_p)(struct ifnet *, uint16_t *); +int (*vlan_setcookie_p)(struct ifnet *, void *); +void *(*vlan_cookie_p)(struct ifnet *); /* * Handle a change in the interface link state. To avoid LORs @@ -1935,6 +1940,7 @@ do_link_state_change(void *arg, int pend if (log_link_state_change) log(LOG_NOTICE, "%s: link state changed to %s\n", ifp->if_xname, (link_state == LINK_STATE_UP) ? "UP" : "DOWN" ); + EVENTHANDLER_INVOKE(ifnet_link_event, ifp, ifp->if_link_state); CURVNET_RESTORE(); } Modified: projects/altix/sys/net/if_arp.h ============================================================================== --- projects/altix/sys/net/if_arp.h Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/net/if_arp.h Mon Mar 21 18:39:42 2011 (r219842) @@ -50,6 +50,7 @@ struct arphdr { #define ARPHRD_ARCNET 7 /* arcnet hardware format */ #define ARPHRD_FRELAY 15 /* frame relay hardware format */ #define ARPHRD_IEEE1394 24 /* firewire hardware format */ +#define ARPHRD_INFINIBAND 32 /* infiniband hardware format */ u_short ar_pro; /* format of protocol address */ u_char ar_hln; /* length of hardware address */ u_char ar_pln; /* length of protocol address */ Modified: projects/altix/sys/net/if_llatbl.h ============================================================================== --- projects/altix/sys/net/if_llatbl.h Mon Mar 21 18:20:53 2011 (r219841) +++ projects/altix/sys/net/if_llatbl.h Mon Mar 21 18:39:42 2011 (r219842) @@ -30,6 +30,8 @@ __FBSDID("$FreeBSD$"); #ifndef _NET_IF_LLATBL_H_ #define _NET_IF_LLATBL_H_ +#include "opt_ofed.h" + #include <sys/_rwlock.h> #include <netinet/in.h> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103211839.p2LIdgSU016948>