From owner-p4-projects@FreeBSD.ORG Sun Apr 22 03:39:12 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 11C9416A4D8; Sun, 22 Apr 2007 03:39:12 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C179216A400 for ; Sun, 22 Apr 2007 03:39:11 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id AF5A513C469 for ; Sun, 22 Apr 2007 03:39:11 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M3dBfn097362 for ; Sun, 22 Apr 2007 03:39:11 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M3d09V097355 for perforce@freebsd.org; Sun, 22 Apr 2007 03:39:00 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 03:39:00 GMT Message-Id: <200704220339.l3M3d09V097355@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118555 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 03:39:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=118555 Change 118555 by sam@sam_ebb on 2007/04/22 03:37:58 IFC @ ~118554 Affected files ... .. //depot/projects/wifi/Makefile.inc1#33 integrate .. //depot/projects/wifi/ObsoleteFiles.inc#13 integrate .. //depot/projects/wifi/UPDATING#27 integrate .. //depot/projects/wifi/cddl/Makefile#2 integrate .. //depot/projects/wifi/cddl/Makefile.inc#2 integrate .. //depot/projects/wifi/cddl/lib/Makefile#2 integrate .. //depot/projects/wifi/cddl/lib/Makefile.inc#2 integrate .. //depot/projects/wifi/cddl/lib/libavl/Makefile#2 integrate .. //depot/projects/wifi/cddl/lib/libnvpair/Makefile#2 integrate .. //depot/projects/wifi/cddl/lib/libumem/Makefile#2 integrate .. //depot/projects/wifi/cddl/lib/libuutil/Makefile#2 integrate .. //depot/projects/wifi/cddl/lib/libzfs/Makefile#2 integrate .. //depot/projects/wifi/cddl/lib/libzpool/Makefile#2 integrate .. //depot/projects/wifi/cddl/sbin/Makefile#2 integrate .. //depot/projects/wifi/cddl/sbin/zfs/Makefile#2 integrate .. //depot/projects/wifi/cddl/sbin/zpool/Makefile#2 integrate .. //depot/projects/wifi/cddl/usr.bin/Makefile#2 integrate .. //depot/projects/wifi/cddl/usr.bin/ztest/Makefile#2 integrate .. //depot/projects/wifi/cddl/usr.sbin/Makefile#2 integrate .. //depot/projects/wifi/cddl/usr.sbin/zdb/Makefile#2 integrate .. //depot/projects/wifi/contrib/libreadline/FREEBSD-upgrade#4 integrate .. //depot/projects/wifi/contrib/libreadline/display.c#4 integrate .. //depot/projects/wifi/contrib/openbsm/HISTORY#3 integrate .. //depot/projects/wifi/contrib/openbsm/README#3 integrate .. //depot/projects/wifi/contrib/openbsm/TODO#3 integrate .. //depot/projects/wifi/contrib/openbsm/VERSION#3 integrate .. //depot/projects/wifi/contrib/openbsm/bin/audit/audit.8#2 integrate .. //depot/projects/wifi/contrib/openbsm/bin/auditd/auditd.8#3 integrate .. //depot/projects/wifi/contrib/openbsm/bin/auditd/auditd.c#3 integrate .. //depot/projects/wifi/contrib/openbsm/bin/auditfilterd/auditfilterd.8#2 integrate .. //depot/projects/wifi/contrib/openbsm/bin/auditfilterd/auditfilterd.c#3 integrate .. //depot/projects/wifi/contrib/openbsm/bin/auditreduce/auditreduce.1#3 integrate .. //depot/projects/wifi/contrib/openbsm/bin/praudit/praudit.1#2 integrate .. //depot/projects/wifi/contrib/openbsm/bin/praudit/praudit.c#2 integrate .. //depot/projects/wifi/contrib/openbsm/bsm/libbsm.h#3 integrate .. //depot/projects/wifi/contrib/openbsm/compat/clock_gettime.h#1 branch .. //depot/projects/wifi/contrib/openbsm/config/config.h#3 integrate .. //depot/projects/wifi/contrib/openbsm/configure#3 integrate .. //depot/projects/wifi/contrib/openbsm/configure.ac#3 integrate .. //depot/projects/wifi/contrib/openbsm/etc/audit_event#3 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_class.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_control.3#3 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_event.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_free_token.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_io.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_mask.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_open.3#3 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_token.3#3 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/au_user.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/audit_submit.3#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/bsm_io.c#3 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/bsm_notify.c#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/bsm_token.c#3 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/bsm_wrappers.c#2 integrate .. //depot/projects/wifi/contrib/openbsm/libbsm/libbsm.3#3 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit.2#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit.log.5#3 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit_class.5#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit_control.5#3 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit_event.5#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit_user.5#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/audit_warn.5#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/auditctl.2#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/auditon.2#3 integrate .. //depot/projects/wifi/contrib/openbsm/man/getaudit.2#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/getauid.2#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/setaudit.2#2 integrate .. //depot/projects/wifi/contrib/openbsm/man/setauid.2#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/bsm/generate.c#3 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/arg32_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/data_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/file_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/in_addr_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/ip_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/ipc_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/iport_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/opaque_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/path_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/process32_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/process32ex_record#2 delete .. //depot/projects/wifi/contrib/openbsm/test/reference/process32ex_record-IPv4#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process32ex_record-IPv6#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process32ex_token#2 delete .. //depot/projects/wifi/contrib/openbsm/test/reference/process32ex_token-IPv4#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process32ex_token-IPv6#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process64_record#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process64_token#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process64ex_record-IPv4#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process64ex_record-IPv6#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process64ex_token-IPv4#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/process64ex_token-IPv6#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/return32_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/seq_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/subject32_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/subject32ex_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/subject32ex_token-IPv4#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/subject32ex_token-IPv6#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/text_record#2 integrate .. //depot/projects/wifi/contrib/openbsm/test/reference/zonename_record#1 branch .. //depot/projects/wifi/contrib/openbsm/test/reference/zonename_token#1 branch .. //depot/projects/wifi/contrib/openbsm/tools/audump.c#3 integrate .. //depot/projects/wifi/contrib/opensolaris/cmd/zdb/zdb.8#2 integrate .. //depot/projects/wifi/contrib/opensolaris/cmd/zfs/zfs.8#2 integrate .. //depot/projects/wifi/contrib/opensolaris/cmd/zfs/zfs_main.c#2 integrate .. //depot/projects/wifi/contrib/opensolaris/cmd/zpool/zpool.8#2 integrate .. //depot/projects/wifi/contrib/opensolaris/cmd/ztest/ztest.c#2 integrate .. //depot/projects/wifi/contrib/opensolaris/lib/libzfs/common/libzfs.h#2 integrate .. //depot/projects/wifi/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#2 integrate .. //depot/projects/wifi/contrib/opensolaris/lib/libzpool/common/kernel.c#2 integrate .. //depot/projects/wifi/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#2 integrate .. //depot/projects/wifi/contrib/sendmail/FREEBSD-upgrade#6 integrate .. //depot/projects/wifi/contrib/sendmail/KNOWNBUGS#3 integrate .. //depot/projects/wifi/contrib/sendmail/PGPKEYS#4 integrate .. //depot/projects/wifi/contrib/sendmail/RELEASE_NOTES#6 integrate .. //depot/projects/wifi/contrib/sendmail/cf/README#4 integrate .. //depot/projects/wifi/contrib/sendmail/cf/cf/knecht.mc#3 integrate .. //depot/projects/wifi/contrib/sendmail/cf/cf/submit.cf#6 integrate .. //depot/projects/wifi/contrib/sendmail/cf/feature/access_db.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/cf/feature/badmx.m4#1 branch .. //depot/projects/wifi/contrib/sendmail/cf/feature/block_bad_helo.m4#1 branch .. //depot/projects/wifi/contrib/sendmail/cf/feature/dnsbl.m4#3 integrate .. //depot/projects/wifi/contrib/sendmail/cf/feature/enhdnsbl.m4#3 integrate .. //depot/projects/wifi/contrib/sendmail/cf/feature/require_rdns.m4#1 branch .. //depot/projects/wifi/contrib/sendmail/cf/m4/proto.m4#4 integrate .. //depot/projects/wifi/contrib/sendmail/cf/m4/version.m4#6 integrate .. //depot/projects/wifi/contrib/sendmail/cf/mailer/smtp.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/contrib/cidrexpand#3 integrate .. //depot/projects/wifi/contrib/sendmail/contrib/qtool.pl#2 integrate .. //depot/projects/wifi/contrib/sendmail/doc/op/op.me#4 integrate .. //depot/projects/wifi/contrib/sendmail/editmap/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/include/libmilter/mfapi.h#4 integrate .. //depot/projects/wifi/contrib/sendmail/include/libmilter/mfdef.h#3 integrate .. //depot/projects/wifi/contrib/sendmail/include/libmilter/milter.h#2 integrate .. //depot/projects/wifi/contrib/sendmail/include/sm/conf.h#5 integrate .. //depot/projects/wifi/contrib/sendmail/include/sm/errstring.h#2 integrate .. //depot/projects/wifi/contrib/sendmail/include/sm/heap.h#2 integrate .. //depot/projects/wifi/contrib/sendmail/include/sm/ldap.h#3 integrate .. //depot/projects/wifi/contrib/sendmail/include/sm/misc.h#1 branch .. //depot/projects/wifi/contrib/sendmail/include/sm/os/sm_os_qnx.h#1 branch .. //depot/projects/wifi/contrib/sendmail/include/sm/sendmail.h#1 branch .. //depot/projects/wifi/contrib/sendmail/include/sm/tailq.h#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/Makefile#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/README#3 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/comm.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/api.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/design.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/index.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/installation.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/other.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/overview.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/sample.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_addheader.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_addrcpt.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_addrcpt_par.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_chgfrom.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_chgheader.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_delrcpt.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_getpriv.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_getsymval.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_insheader.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_main.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_opensocket.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_progress.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_quarantine.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_register.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_replacebody.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setbacklog.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setconn.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setdbg.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setmlreply.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setpriv.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setreply.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_setsymlist.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_settimeout.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_stop.html#3 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/smfi_version.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_abort.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_body.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_close.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_connect.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_data.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_envfrom.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_envrcpt.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_eoh.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_eom.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_header.html#3 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_helo.html#3 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_negotiate.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/docs/xxfi_unknown.html#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/engine.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/example.c#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/handler.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/libmilter.h#3 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/listener.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/main.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/monitor.c#1 branch .. //depot/projects/wifi/contrib/sendmail/libmilter/smfi.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/libmilter/worker.c#1 branch .. //depot/projects/wifi/contrib/sendmail/libsm/Makefile#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/Makefile.m4#5 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/config.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/exc.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/exc.html#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/findfp.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/flags.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/ldap.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/local.h#3 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/memstat.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/snprintf.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/t-memstat.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/t-qic.c#1 branch .. //depot/projects/wifi/contrib/sendmail/libsm/t-sem.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/libsm/util.c#1 branch .. //depot/projects/wifi/contrib/sendmail/libsm/vfscanf.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/libsmdb/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/libsmutil/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/mail.local/Makefile.m4#3 integrate .. //depot/projects/wifi/contrib/sendmail/mail.local/mail.local.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/mailstats/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/makemap/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/praliases/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/rmail/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/smrsh/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/Makefile#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/README#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/TRACEFLAGS#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/TUNING#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/alias.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/arpadate.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/collect.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/conf.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/conf.h#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/control.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/daemon.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/daemon.h#1 branch .. //depot/projects/wifi/contrib/sendmail/src/deliver.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/domain.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/envelope.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/err.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/headers.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/helpfile#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/macro.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/mailq.1#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/main.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/map.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/map.h#1 branch .. //depot/projects/wifi/contrib/sendmail/src/mci.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/milter.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/mime.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/parseaddr.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/queue.c#6 integrate .. //depot/projects/wifi/contrib/sendmail/src/ratectrl.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/readcf.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/recipient.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/sasl.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/savemail.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/sendmail.h#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/sm_resolve.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/srvrsmtp.c#6 integrate .. //depot/projects/wifi/contrib/sendmail/src/stab.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/stats.c#2 integrate .. //depot/projects/wifi/contrib/sendmail/src/timers.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/tls.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/udb.c#3 integrate .. //depot/projects/wifi/contrib/sendmail/src/usersmtp.c#5 integrate .. //depot/projects/wifi/contrib/sendmail/src/util.c#4 integrate .. //depot/projects/wifi/contrib/sendmail/src/version.c#6 integrate .. //depot/projects/wifi/contrib/sendmail/test/Makefile#2 integrate .. //depot/projects/wifi/contrib/sendmail/vacation/Makefile.m4#2 integrate .. //depot/projects/wifi/contrib/sendmail/vacation/vacation.c#3 integrate .. //depot/projects/wifi/contrib/top/commands.c#4 integrate .. //depot/projects/wifi/contrib/top/machine.h#3 integrate .. //depot/projects/wifi/contrib/top/top.X#5 integrate .. //depot/projects/wifi/contrib/top/top.c#5 integrate .. //depot/projects/wifi/contrib/top/top.h#2 integrate .. //depot/projects/wifi/etc/defaults/rc.conf#29 integrate .. //depot/projects/wifi/etc/mtree/BSD.include.dist#15 integrate .. //depot/projects/wifi/etc/mtree/BSD.root.dist#6 integrate .. //depot/projects/wifi/etc/rc.d/FILESYSTEMS#2 integrate .. //depot/projects/wifi/etc/rc.d/Makefile#19 integrate .. //depot/projects/wifi/etc/rc.d/NETWORKING#4 integrate .. //depot/projects/wifi/etc/rc.d/hostid#1 branch .. //depot/projects/wifi/etc/rc.d/ipfilter#6 integrate .. //depot/projects/wifi/etc/rc.d/ipsec#5 integrate .. //depot/projects/wifi/etc/rc.d/kldxref#3 integrate .. //depot/projects/wifi/etc/rc.d/mountcritremote#7 integrate .. //depot/projects/wifi/etc/rc.d/mountd#4 integrate .. //depot/projects/wifi/etc/rc.d/netoptions#2 integrate .. //depot/projects/wifi/etc/rc.d/pf#9 integrate .. //depot/projects/wifi/etc/rc.d/pflog#7 integrate .. //depot/projects/wifi/etc/rc.d/pfsync#4 integrate .. //depot/projects/wifi/etc/rc.d/zfs#2 integrate .. //depot/projects/wifi/etc/services#3 integrate .. //depot/projects/wifi/include/Makefile#24 integrate .. //depot/projects/wifi/include/rpc/Makefile#2 integrate .. //depot/projects/wifi/include/rpc/types.h#2 delete .. //depot/projects/wifi/lib/libarchive/Makefile#23 integrate .. //depot/projects/wifi/lib/libarchive/archive.h.in#15 integrate .. //depot/projects/wifi/lib/libarchive/archive_entry.c#15 integrate .. //depot/projects/wifi/lib/libarchive/archive_platform.h#12 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_extract.c#15 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_support_format_ar.c#2 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_support_format_cpio.c#10 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_support_format_tar.c#16 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_support_format_zip.c#8 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_disk.c#4 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_set_compression_none.c#8 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_set_format_ar.c#2 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_set_format_by_name.c#4 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_set_format_pax.c#17 integrate .. //depot/projects/wifi/lib/libarchive/archive_write_set_format_ustar.c#9 integrate .. //depot/projects/wifi/lib/libarchive/config_freebsd.h#3 integrate .. //depot/projects/wifi/lib/libarchive/test/Makefile#4 integrate .. //depot/projects/wifi/lib/libarchive/test/main.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_acl_basic.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_acl_pax.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_read_data_large.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_read_extract.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_read_format_ar.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_read_large.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_read_position.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_read_truncated.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_tar_filenames.c#1 branch .. //depot/projects/wifi/lib/libarchive/test/test_write_disk_perms.c#3 integrate .. //depot/projects/wifi/lib/libarchive/test/test_write_disk_secure.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_write_format_ar.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_write_format_tar.c#2 integrate .. //depot/projects/wifi/lib/libarchive/test/test_write_open_memory.c#2 integrate .. //depot/projects/wifi/lib/libc/gen/Symbol.map#4 integrate .. //depot/projects/wifi/lib/libc/gen/sysconf.c#4 integrate .. //depot/projects/wifi/lib/libc/gen/sysctl.3#6 integrate .. //depot/projects/wifi/lib/libc/i386/Symbol.map#2 integrate .. //depot/projects/wifi/lib/libc/net/rthdr.c#3 integrate .. //depot/projects/wifi/lib/libc/stdio/fputs.3#3 integrate .. //depot/projects/wifi/lib/libc/stdlib/strtol.3#5 integrate .. //depot/projects/wifi/lib/libc/sys/ptrace.2#5 integrate .. //depot/projects/wifi/lib/libmilter/Makefile#4 integrate .. //depot/projects/wifi/lib/libpmc/libpmc.c#7 integrate .. //depot/projects/wifi/lib/libpmc/pmc.3#10 integrate .. //depot/projects/wifi/lib/libsm/Makefile#7 integrate .. //depot/projects/wifi/lib/ncurses/ncurses/Makefile#4 integrate .. //depot/projects/wifi/libexec/ftpd/ftpcmd.y#5 integrate .. //depot/projects/wifi/libexec/ftpd/ftpd.8#5 integrate .. //depot/projects/wifi/libexec/ftpd/ftpd.c#15 integrate .. //depot/projects/wifi/libexec/rtld-elf/Makefile#6 integrate .. //depot/projects/wifi/libexec/rtld-elf/Symbol.map#2 integrate .. //depot/projects/wifi/libexec/rtld-elf/Versions.def#2 integrate .. //depot/projects/wifi/release/Makefile.inc.docports#2 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 integrate .. //depot/projects/wifi/sbin/atm/atmconfig/diag.c#3 integrate .. //depot/projects/wifi/sbin/dhclient/dhclient-script#11 integrate .. //depot/projects/wifi/sbin/ifconfig/Makefile#9 integrate .. //depot/projects/wifi/sbin/ifconfig/ifconfig.8#22 integrate .. //depot/projects/wifi/sbin/ifconfig/iflagg.c#1 branch .. //depot/projects/wifi/sbin/ipfw/ipfw2.c#17 integrate .. //depot/projects/wifi/sbin/mount/mount.c#12 integrate .. //depot/projects/wifi/sbin/ping6/ping6.c#4 integrate .. //depot/projects/wifi/share/examples/cvsup/cvs-supfile#2 integrate .. //depot/projects/wifi/share/examples/cvsup/stable-supfile#4 integrate .. //depot/projects/wifi/share/examples/cvsup/standard-supfile#2 integrate .. //depot/projects/wifi/share/man/man4/Makefile#33 integrate .. //depot/projects/wifi/share/man/man4/lagg.4#1 branch .. //depot/projects/wifi/share/man/man4/sbsh.4#3 integrate .. //depot/projects/wifi/share/man/man4/uftdi.4#5 integrate .. //depot/projects/wifi/share/man/man4/worm.4#4 delete .. //depot/projects/wifi/share/man/man5/rc.conf.5#29 integrate .. //depot/projects/wifi/share/man/man7/hier.7#10 integrate .. //depot/projects/wifi/share/man/man8/nanobsd.8#2 integrate .. //depot/projects/wifi/share/man/man9/hash.9#3 integrate .. //depot/projects/wifi/share/man/man9/pseudofs.9#2 integrate .. //depot/projects/wifi/share/misc/committers-ports.dot#3 integrate .. //depot/projects/wifi/share/misc/committers-src.dot#3 integrate .. //depot/projects/wifi/share/misc/organization.dot#1 branch .. //depot/projects/wifi/sys/Makefile#8 integrate .. //depot/projects/wifi/sys/amd64/amd64/busdma_machdep.c#12 integrate .. //depot/projects/wifi/sys/amd64/amd64/pmap.c#17 integrate .. //depot/projects/wifi/sys/amd64/conf/GENERIC#18 integrate .. //depot/projects/wifi/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/wifi/sys/amd64/linux32/linux32_dummy.c#6 integrate .. //depot/projects/wifi/sys/amd64/linux32/linux32_machdep.c#12 integrate .. //depot/projects/wifi/sys/boot/forth/loader.conf#16 integrate .. //depot/projects/wifi/sys/bsm/audit.h#5 integrate .. //depot/projects/wifi/sys/bsm/audit_internal.h#4 integrate .. //depot/projects/wifi/sys/bsm/audit_kevents.h#6 integrate .. //depot/projects/wifi/sys/bsm/audit_record.h#4 integrate .. //depot/projects/wifi/sys/cam/cam_ccb.h#6 integrate .. //depot/projects/wifi/sys/cam/cam_periph.c#8 integrate .. //depot/projects/wifi/sys/cam/cam_periph.h#3 integrate .. //depot/projects/wifi/sys/cam/cam_sim.c#4 integrate .. //depot/projects/wifi/sys/cam/cam_sim.h#3 integrate .. //depot/projects/wifi/sys/cam/cam_xpt.c#18 integrate .. //depot/projects/wifi/sys/cam/cam_xpt.h#5 integrate .. //depot/projects/wifi/sys/cam/cam_xpt_periph.h#4 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_cd.c#8 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_ch.c#5 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_da.c#12 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_low.c#6 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_pass.c#5 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_pt.c#4 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_sa.c#8 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_ses.c#6 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_sg.c#2 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_sg.h#2 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_targ_bh.c#5 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_target.c#10 integrate .. //depot/projects/wifi/sys/compat/linprocfs/linprocfs.c#15 integrate .. //depot/projects/wifi/sys/compat/linux/linux_ioctl.h#6 integrate .. //depot/projects/wifi/sys/compat/linux/linux_socket.c#11 integrate .. //depot/projects/wifi/sys/compat/opensolaris/kern/opensolaris_kmem.c#2 integrate .. //depot/projects/wifi/sys/compat/opensolaris/kern/opensolaris_string.c#2 integrate .. //depot/projects/wifi/sys/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate .. //depot/projects/wifi/sys/compat/opensolaris/sys/kmem.h#2 integrate .. //depot/projects/wifi/sys/compat/opensolaris/sys/string.h#2 integrate .. //depot/projects/wifi/sys/conf/NOTES#36 integrate .. //depot/projects/wifi/sys/conf/files#44 integrate .. //depot/projects/wifi/sys/conf/options#30 integrate .. //depot/projects/wifi/sys/contrib/dev/acpica/utmisc.c#5 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/common/atomic/i386/atomic.S#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/wifi/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/wifi/sys/contrib/pf/net/if_pfsync.c#15 integrate .. //depot/projects/wifi/sys/dev/aac/aac_cam.c#10 integrate .. //depot/projects/wifi/sys/dev/advansys/advansys.c#6 integrate .. //depot/projects/wifi/sys/dev/advansys/adwcam.c#8 integrate .. //depot/projects/wifi/sys/dev/aha/aha.c#5 integrate .. //depot/projects/wifi/sys/dev/ahb/ahb.c#8 integrate .. //depot/projects/wifi/sys/dev/aic/aic.c#4 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7770.c#3 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic79xx.c#7 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic79xx.h#5 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic79xx_osm.c#9 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic79xx_osm.h#7 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic79xx_pci.c#6 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx.c#6 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx.h#3 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx_inline.h#3 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx_osm.c#7 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx_osm.h#7 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic7xxx_pci.c#4 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic_osm_lib.c#3 integrate .. //depot/projects/wifi/sys/dev/aic7xxx/aic_osm_lib.h#4 integrate .. //depot/projects/wifi/sys/dev/amd/amd.c#7 integrate .. //depot/projects/wifi/sys/dev/amr/amr_cam.c#10 integrate .. //depot/projects/wifi/sys/dev/arcmsr/arcmsr.c#11 integrate .. //depot/projects/wifi/sys/dev/asr/asr.c#10 integrate .. //depot/projects/wifi/sys/dev/ata/atapi-cam.c#11 integrate .. //depot/projects/wifi/sys/dev/ath/ah_osdep.c#2 integrate .. //depot/projects/wifi/sys/dev/ath/if_ath.c#138 integrate .. //depot/projects/wifi/sys/dev/buslogic/bt.c#6 integrate .. //depot/projects/wifi/sys/dev/ciss/ciss.c#16 integrate .. //depot/projects/wifi/sys/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/wifi/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/wifi/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/wifi/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/wifi/sys/dev/dpt/dpt_scsi.c#7 integrate .. //depot/projects/wifi/sys/dev/esp/ncr53c9x.c#9 integrate .. //depot/projects/wifi/sys/dev/ex/if_exvar.h#3 integrate .. //depot/projects/wifi/sys/dev/firewire/fwdma.c#3 integrate .. //depot/projects/wifi/sys/dev/firewire/sbp.c#7 integrate .. //depot/projects/wifi/sys/dev/firewire/sbp_targ.c#4 integrate .. //depot/projects/wifi/sys/dev/hptmv/entry.c#12 integrate .. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_logging.c#4 integrate .. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_mod.c#11 integrate .. //depot/projects/wifi/sys/dev/hwpmc/hwpmc_piv.c#7 integrate .. //depot/projects/wifi/sys/dev/iicbus/icee.c#2 integrate .. //depot/projects/wifi/sys/dev/iir/iir.c#6 integrate .. //depot/projects/wifi/sys/dev/isp/isp_freebsd.c#12 integrate .. //depot/projects/wifi/sys/dev/mii/brgphy.c#13 integrate .. //depot/projects/wifi/sys/dev/mii/miidevs#8 integrate .. //depot/projects/wifi/sys/dev/mly/mly.c#7 integrate .. //depot/projects/wifi/sys/dev/mpt/mpt_cam.c#11 integrate .. //depot/projects/wifi/sys/dev/msk/if_msk.c#5 integrate .. //depot/projects/wifi/sys/dev/ppbus/vpo.c#3 integrate .. //depot/projects/wifi/sys/dev/ral/rt2560.c#19 integrate .. //depot/projects/wifi/sys/dev/re/if_re.c#20 integrate .. //depot/projects/wifi/sys/dev/rr232x/osm_bsd.c#3 integrate .. //depot/projects/wifi/sys/dev/sound/isa/ad1816.c#9 integrate .. //depot/projects/wifi/sys/dev/sound/isa/ess.c#7 integrate .. //depot/projects/wifi/sys/dev/sound/isa/mss.c#12 integrate .. //depot/projects/wifi/sys/dev/sound/isa/sb16.c#7 integrate .. //depot/projects/wifi/sys/dev/sound/isa/sb8.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pci/als4000.c#9 integrate .. //depot/projects/wifi/sys/dev/sound/pci/atiixp.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pci/au88x0.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pci/aureal.c#5 integrate .. //depot/projects/wifi/sys/dev/sound/pci/cmi.c#12 integrate .. //depot/projects/wifi/sys/dev/sound/pci/cs4281.c#5 integrate .. //depot/projects/wifi/sys/dev/sound/pci/csapcm.c#7 integrate .. //depot/projects/wifi/sys/dev/sound/pci/ds1.c#7 integrate .. //depot/projects/wifi/sys/dev/sound/pci/emu10k1.c#9 integrate .. //depot/projects/wifi/sys/dev/sound/pci/emu10kx-pcm.c#5 integrate .. //depot/projects/wifi/sys/dev/sound/pci/envy24.c#5 integrate .. //depot/projects/wifi/sys/dev/sound/pci/envy24ht.c#4 integrate .. //depot/projects/wifi/sys/dev/sound/pci/es137x.c#13 integrate .. //depot/projects/wifi/sys/dev/sound/pci/fm801.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pci/hda/hdac.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pci/ich.c#13 integrate .. //depot/projects/wifi/sys/dev/sound/pci/maestro3.c#7 integrate .. //depot/projects/wifi/sys/dev/sound/pci/solo.c#8 integrate .. //depot/projects/wifi/sys/dev/sound/pci/t4dwave.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pci/via8233.c#12 integrate .. //depot/projects/wifi/sys/dev/sound/pci/via82c686.c#8 integrate .. //depot/projects/wifi/sys/dev/sound/pci/vibes.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/ac97.c#11 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/ac97.h#6 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/ac97_patch.c#6 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/ac97_patch.h#6 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/buffer.c#8 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/buffer.h#6 integrate .. //depot/projects/wifi/sys/dev/sound/pcm/sound.h#10 integrate .. //depot/projects/wifi/sys/dev/sound/sbus/cs4231.c#8 integrate .. //depot/projects/wifi/sys/dev/sym/sym_hipd.c#11 integrate .. //depot/projects/wifi/sys/dev/trm/trm.c#8 integrate .. //depot/projects/wifi/sys/dev/twa/tw_osl_cam.c#8 integrate .. //depot/projects/wifi/sys/dev/usb/if_ural.c#19 integrate .. //depot/projects/wifi/sys/dev/usb/umass.c#12 integrate .. //depot/projects/wifi/sys/dev/usb/usbdevs#23 integrate .. //depot/projects/wifi/sys/dev/wds/wd7000.c#6 integrate .. //depot/projects/wifi/sys/dev/wi/if_wi.c#33 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#32 integrate .. //depot/projects/wifi/sys/fs/procfs/procfs_dbregs.c#3 integrate .. //depot/projects/wifi/sys/fs/procfs/procfs_fpregs.c#3 integrate .. //depot/projects/wifi/sys/fs/procfs/procfs_map.c#4 integrate .. //depot/projects/wifi/sys/fs/procfs/procfs_regs.c#3 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs.c#7 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs.h#6 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_fileno.c#3 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_internal.h#3 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_vncache.c#9 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_vnops.c#11 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum.h#6 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_rm.c#6 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_share.c#3 integrate .. //depot/projects/wifi/sys/geom/vinum/geom_vinum_subr.c#6 integrate .. //depot/projects/wifi/sys/i386/conf/GENERIC#16 integrate .. //depot/projects/wifi/sys/i386/i386/bios.c#5 integrate .. //depot/projects/wifi/sys/i386/i386/busdma_machdep.c#11 integrate .. //depot/projects/wifi/sys/i386/i386/identcpu.c#14 integrate .. //depot/projects/wifi/sys/i386/i386/mp_machdep.c#22 integrate .. //depot/projects/wifi/sys/i386/i386/pmap.c#21 integrate .. //depot/projects/wifi/sys/i386/include/pmap.h#9 integrate .. //depot/projects/wifi/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/wifi/sys/ia64/conf/GENERIC#10 integrate .. //depot/projects/wifi/sys/ia64/include/vmparam.h#5 integrate .. //depot/projects/wifi/sys/isa/isa_common.c#7 integrate .. //depot/projects/wifi/sys/kern/kern_intr.c#16 integrate .. //depot/projects/wifi/sys/kern/kern_jail.c#12 integrate .. //depot/projects/wifi/sys/kern/kern_malloc.c#12 integrate .. //depot/projects/wifi/sys/kern/kern_mib.c#6 integrate .. //depot/projects/wifi/sys/kern/sched_ule.c#24 integrate .. //depot/projects/wifi/sys/kern/subr_rman.c#11 integrate .. //depot/projects/wifi/sys/kern/subr_witness.c#26 integrate .. //depot/projects/wifi/sys/kern/uipc_mbuf.c#19 integrate .. //depot/projects/wifi/sys/kern/uipc_mqueue.c#6 integrate .. //depot/projects/wifi/sys/kern/uipc_syscalls.c#22 integrate .. //depot/projects/wifi/sys/kern/vfs_mount.c#30 integrate .. //depot/projects/wifi/sys/kern/vfs_subr.c#38 integrate .. //depot/projects/wifi/sys/libkern/index.c#2 integrate .. //depot/projects/wifi/sys/libkern/rindex.c#3 integrate .. //depot/projects/wifi/sys/modules/Makefile#37 integrate .. //depot/projects/wifi/sys/modules/dpt/Makefile#2 integrate .. //depot/projects/wifi/sys/modules/if_lagg/Makefile#1 branch .. //depot/projects/wifi/sys/modules/libalias/libalias/Makefile#2 integrate .. //depot/projects/wifi/sys/net/ieee8023ad_lacp.c#1 branch .. //depot/projects/wifi/sys/net/ieee8023ad_lacp.h#1 branch .. //depot/projects/wifi/sys/net/if.c#27 integrate .. //depot/projects/wifi/sys/net/if_ethersubr.c#20 integrate .. //depot/projects/wifi/sys/net/if_lagg.c#1 branch .. //depot/projects/wifi/sys/net/if_lagg.h#1 branch .. //depot/projects/wifi/sys/net/if_var.h#22 integrate .. //depot/projects/wifi/sys/netgraph/ng_ppp.c#9 integrate .. //depot/projects/wifi/sys/netinet/in_pcb.c#13 integrate .. //depot/projects/wifi/sys/netinet/ip_fw2.c#24 integrate .. //depot/projects/wifi/sys/netinet/sctp_constants.h#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_crc32.c#4 integrate .. //depot/projects/wifi/sys/netinet/sctp_indata.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_input.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_lock_bsd.h#3 integrate .. //depot/projects/wifi/sys/netinet/sctp_output.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_pcb.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_peeloff.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_structs.h#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_timer.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_uio.h#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_usrreq.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctp_var.h#5 integrate .. //depot/projects/wifi/sys/netinet/sctputil.c#5 integrate .. //depot/projects/wifi/sys/netinet/sctputil.h#5 integrate .. //depot/projects/wifi/sys/netinet/tcp.h#11 integrate .. //depot/projects/wifi/sys/netinet/tcp_input.c#22 integrate .. //depot/projects/wifi/sys/netinet/tcp_output.c#14 integrate .. //depot/projects/wifi/sys/netinet/tcp_sack.c#17 integrate .. //depot/projects/wifi/sys/netinet/tcp_subr.c#26 integrate .. //depot/projects/wifi/sys/netinet/tcp_syncache.c#15 integrate .. //depot/projects/wifi/sys/netinet/tcp_timer.c#13 integrate .. //depot/projects/wifi/sys/netinet/tcp_timer.h#6 integrate .. //depot/projects/wifi/sys/netinet/tcp_usrreq.c#23 integrate .. //depot/projects/wifi/sys/netinet/tcp_var.h#17 integrate .. //depot/projects/wifi/sys/netinet6/in6_pcb.c#7 integrate .. //depot/projects/wifi/sys/netinet6/ipsec.c#9 integrate .. //depot/projects/wifi/sys/netinet6/sctp6_usrreq.c#5 integrate .. //depot/projects/wifi/sys/netipsec/ipsec_osdep.h#5 integrate .. //depot/projects/wifi/sys/netnatm/natm.h#5 integrate .. //depot/projects/wifi/sys/nfsclient/nfs_lock.c#6 integrate .. //depot/projects/wifi/sys/nfsserver/nfs_srvsock.c#9 integrate .. //depot/projects/wifi/sys/nfsserver/nfs_syscalls.c#9 integrate .. //depot/projects/wifi/sys/pc98/conf/GENERIC#16 integrate .. //depot/projects/wifi/sys/pci/if_rlreg.h#11 integrate .. //depot/projects/wifi/sys/pci/if_vr.c#13 integrate .. //depot/projects/wifi/sys/pci/if_vrreg.h#7 integrate .. //depot/projects/wifi/sys/pci/intpm.c#7 integrate .. //depot/projects/wifi/sys/pci/ncr.c#7 integrate .. //depot/projects/wifi/sys/powerpc/conf/GENERIC#12 integrate .. //depot/projects/wifi/sys/powerpc/powerpc/nexus.c#4 integrate .. //depot/projects/wifi/sys/rpc/types.h#1 branch .. //depot/projects/wifi/sys/security/audit/audit.c#4 integrate .. //depot/projects/wifi/sys/security/audit/audit.h#3 integrate .. //depot/projects/wifi/sys/security/audit/audit_arg.c#5 integrate .. //depot/projects/wifi/sys/security/audit/audit_bsm.c#3 integrate .. //depot/projects/wifi/sys/security/audit/audit_bsm_token.c#3 integrate .. //depot/projects/wifi/sys/security/audit/audit_private.h#3 integrate .. //depot/projects/wifi/sys/security/audit/audit_syscalls.c#5 integrate .. //depot/projects/wifi/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/wifi/sys/security/mac/mac_framework.h#3 integrate .. //depot/projects/wifi/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/wifi/sys/security/mac_biba/mac_biba.c#12 integrate .. //depot/projects/wifi/sys/security/mac_bsdextended/mac_bsdextended.c#8 integrate .. //depot/projects/wifi/sys/security/mac_lomac/mac_lomac.c#9 integrate .. //depot/projects/wifi/sys/security/mac_mls/mac_mls.c#10 integrate .. //depot/projects/wifi/sys/security/mac_stub/mac_stub.c#12 integrate .. //depot/projects/wifi/sys/security/mac_test/mac_test.c#11 integrate .. //depot/projects/wifi/sys/sparc64/conf/GENERIC#16 integrate .. //depot/projects/wifi/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/wifi/sys/sun4v/conf/GENERIC#3 integrate .. //depot/projects/wifi/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/wifi/sys/sys/eventhandler.h#6 integrate .. //depot/projects/wifi/sys/sys/hash.h#2 integrate .. //depot/projects/wifi/sys/sys/interrupt.h#7 integrate .. //depot/projects/wifi/sys/sys/kernel.h#12 integrate .. //depot/projects/wifi/sys/sys/libkern.h#8 integrate .. //depot/projects/wifi/sys/sys/mbuf.h#23 integrate .. //depot/projects/wifi/sys/sys/mount.h#20 integrate .. //depot/projects/wifi/sys/sys/mutex.h#14 integrate .. //depot/projects/wifi/sys/sys/priv.h#4 integrate .. //depot/projects/wifi/sys/sys/proc.h#27 integrate .. //depot/projects/wifi/sys/sys/socket.h#9 integrate .. //depot/projects/wifi/sys/sys/sysctl.h#9 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_snapshot.c#21 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_softdep.c#19 integrate .. //depot/projects/wifi/sys/vm/phys_pager.c#5 integrate .. //depot/projects/wifi/sys/vm/vm_contig.c#12 integrate .. //depot/projects/wifi/sys/vm/vm_param.h#4 integrate .. //depot/projects/wifi/tools/regression/lib/libc/nss/Makefile#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/README#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/mach#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getaddr.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getaddr.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getgr.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getgr.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-gethostby.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-gethostby.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getproto.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getproto.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getpw.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getpw.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getrpc.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getrpc.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getserv.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getserv.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getusershell.c#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/test-getusershell.t#1 branch .. //depot/projects/wifi/tools/regression/lib/libc/nss/testutil.h#1 branch .. //depot/projects/wifi/tools/regression/netinet/ipblock/Makefile#2 delete .. //depot/projects/wifi/tools/regression/netinet/ipblock/ipblock.c#2 delete .. //depot/projects/wifi/tools/regression/netinet/ipsockopt/ipsockopt.c#5 integrate .. //depot/projects/wifi/tools/regression/sockets/sendfile/Makefile#2 integrate .. //depot/projects/wifi/tools/regression/sockets/sendfile/sendfile.c#2 integrate .. //depot/projects/wifi/tools/regression/usr.bin/sed/regress.sh#4 integrate .. //depot/projects/wifi/tools/tools/nanobsd/nanobsd.sh#8 integrate .. //depot/projects/wifi/tools/tools/net80211/wesside/wesside/Makefile#2 integrate .. //depot/projects/wifi/tools/tools/net80211/wesside/wesside/aircrack-ptw-lib.c#1 branch .. //depot/projects/wifi/tools/tools/net80211/wesside/wesside/aircrack-ptw-lib.h#1 branch .. //depot/projects/wifi/tools/tools/net80211/wesside/wesside/wesside.c#2 integrate .. //depot/projects/wifi/usr.bin/finger/extern.h#3 integrate .. //depot/projects/wifi/usr.bin/finger/finger.1#3 integrate .. //depot/projects/wifi/usr.bin/finger/finger.c#4 integrate .. //depot/projects/wifi/usr.bin/finger/net.c#2 integrate .. //depot/projects/wifi/usr.bin/gcore/elfcore.c#3 integrate .. //depot/projects/wifi/usr.bin/kdump/kdump.c#5 integrate .. //depot/projects/wifi/usr.bin/kdump/kdump_subr.h#3 integrate .. //depot/projects/wifi/usr.bin/kdump/mksubr#4 integrate .. //depot/projects/wifi/usr.bin/lastcomm/lastcomm.1#3 integrate .. //depot/projects/wifi/usr.bin/lastcomm/lastcomm.c#4 integrate .. //depot/projects/wifi/usr.bin/make/GNode.h#4 integrate .. //depot/projects/wifi/usr.bin/make/main.c#25 integrate .. //depot/projects/wifi/usr.bin/make/make.c#12 integrate .. //depot/projects/wifi/usr.bin/make/parse.c#21 integrate .. //depot/projects/wifi/usr.bin/make/targ.c#12 integrate .. //depot/projects/wifi/usr.bin/netstat/mcast.c#4 integrate .. //depot/projects/wifi/usr.bin/sed/extern.h#2 integrate .. //depot/projects/wifi/usr.bin/sed/main.c#5 integrate .. //depot/projects/wifi/usr.bin/sed/process.c#5 integrate .. //depot/projects/wifi/usr.bin/sed/sed.1#7 integrate .. //depot/projects/wifi/usr.bin/tar/Makefile#11 integrate .. //depot/projects/wifi/usr.bin/tar/bsdtar_platform.h#11 integrate .. //depot/projects/wifi/usr.bin/tar/read.c#9 integrate .. //depot/projects/wifi/usr.bin/tar/test/test-basic.sh#2 integrate .. //depot/projects/wifi/usr.bin/tar/util.c#6 integrate .. //depot/projects/wifi/usr.bin/tar/write.c#14 integrate .. //depot/projects/wifi/usr.bin/top/machine.c#7 integrate .. //depot/projects/wifi/usr.bin/touch/touch.1#4 integrate .. //depot/projects/wifi/usr.bin/touch/touch.c#3 integrate .. //depot/projects/wifi/usr.bin/truss/Makefile#3 integrate .. //depot/projects/wifi/usr.bin/truss/amd64-fbsd.c#4 integrate .. //depot/projects/wifi/usr.bin/truss/extern.h#4 integrate .. //depot/projects/wifi/usr.bin/truss/i386-fbsd.c#4 integrate .. //depot/projects/wifi/usr.bin/truss/i386-linux.c#4 integrate .. //depot/projects/wifi/usr.bin/truss/ia64-fbsd.c#4 integrate .. //depot/projects/wifi/usr.bin/truss/main.c#5 integrate .. //depot/projects/wifi/usr.bin/truss/powerpc-fbsd.c#2 integrate .. //depot/projects/wifi/usr.bin/truss/setup.c#4 integrate .. //depot/projects/wifi/usr.bin/truss/sparc64-fbsd.c#4 integrate .. //depot/projects/wifi/usr.bin/truss/syscall.h#4 integrate .. //depot/projects/wifi/usr.bin/truss/syscalls.c#8 integrate .. //depot/projects/wifi/usr.bin/truss/truss.1#5 integrate .. //depot/projects/wifi/usr.bin/truss/truss.h#4 integrate .. //depot/projects/wifi/usr.bin/uuidgen/Makefile#2 integrate .. //depot/projects/wifi/usr.bin/whois/whois.c#6 integrate .. //depot/projects/wifi/usr.sbin/adduser/adduser.conf.5#2 integrate .. //depot/projects/wifi/usr.sbin/adduser/adduser.sh#5 integrate .. //depot/projects/wifi/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3#2 integrate .. //depot/projects/wifi/usr.sbin/daemon/daemon.c#4 integrate .. //depot/projects/wifi/usr.sbin/ifmcstat/Makefile#3 integrate .. //depot/projects/wifi/usr.sbin/ifmcstat/ifmcstat.8#4 integrate .. //depot/projects/wifi/usr.sbin/ifmcstat/ifmcstat.c#3 integrate .. //depot/projects/wifi/usr.sbin/mountd/mountd.c#10 integrate .. //depot/projects/wifi/usr.sbin/rpc.lockd/lockd_lock.c#5 integrate .. //depot/projects/wifi/usr.sbin/sendmail/Makefile#9 integrate Differences ... ==== //depot/projects/wifi/Makefile.inc1#33 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.571 2007/04/06 02:13:29 pjd Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.572 2007/04/17 15:52:36 pjd Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -1016,11 +1016,11 @@ ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ - lib/libopie lib/libpam \ + lib/libopie lib/libpam lib/libpthread \ lib/libradius lib/libsbuf lib/libtacplus lib/libutil \ ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ - ${_secure_lib_libssl} lib/libthr + ${_secure_lib_libssl} _generic_libs= ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ==== //depot/projects/wifi/ObsoleteFiles.inc#13 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.77 2007/03/28 07:49:57 delphij Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070421: worm.4 removed +OLD_FILES+=usr/share/man/man4/worm.4.gz +# 20070417: trunk(4) renamed to lagg(4) +OLD_FILES+=usr/include/net/if_trunk.h +# 20070409: uuidgen moved to /bin/ +OLD_FILES+=usr/bin/uuidgen # 20070328: bzip2 1.0.4 OLD_FILES+=usr/share/info/bzip2.info.gz # 20070303: libarchive 2.0 ==== //depot/projects/wifi/UPDATING#27 (text+ko) ==== @@ -21,6 +21,15 @@ developers choose to disable these features on build machines to maximize performance. +20070417: + The new trunk(4) driver has been renamed to lagg(4) as it better + reflects its purpose. ifconfig will need to be recompiled. + +20070408: + sendmail(8) has been updated to version 8.14.1. Mail filters + (aka, milters) compiled against the libmilter included in the + base operating system should be recompiled. + 20070302: Firmwares for ipw(4) and iwi(4) are now included in the base tree. In order to use them one must agree to the respective LICENSE in @@ -758,4 +767,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.484 2007/04/03 10:04:54 brueffer Exp $ +$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ ==== //depot/projects/wifi/cddl/Makefile#2 (text+ko) ==== @@ -1,8 +1,5 @@ -# $FreeBSD: src/cddl/Makefile,v 1.1 2007/04/06 01:08:56 pjd Exp $ +# $FreeBSD: src/cddl/Makefile,v 1.2 2007/04/16 21:20:24 ru Exp $ -SUBDIR= lib -SUBDIR+=sbin -SUBDIR+=usr.bin -SUBDIR+=usr.sbin +SUBDIR= lib sbin usr.bin usr.sbin .include ==== //depot/projects/wifi/cddl/Makefile.inc#2 (text+ko) ==== @@ -1,3 +1,3 @@ -# $FreeBSD: src/cddl/Makefile.inc,v 1.1 2007/04/06 01:08:56 pjd Exp $ +# $FreeBSD: src/cddl/Makefile.inc,v 1.2 2007/04/16 21:20:24 ru Exp $ -CFLAGS+=-D_SOLARIS_C_SOURCE +CFLAGS+= -D_SOLARIS_C_SOURCE ==== //depot/projects/wifi/cddl/lib/Makefile#2 (text+ko) ==== @@ -1,18 +1,19 @@ -# $FreeBSD: src/cddl/lib/Makefile,v 1.2 2007/04/07 19:12:09 des Exp $ +# $FreeBSD: src/cddl/lib/Makefile,v 1.3 2007/04/16 21:20:24 ru Exp $ .include -SUBDIR= libavl -SUBDIR+=libnvpair -SUBDIR+=libumem -SUBDIR+=libuutil -.if ${MK_CDDL} != "no" -SUBDIR+=libzfs -SUBDIR+=${_libzpool} -.endif +SUBDIR= libavl \ + libnvpair \ + libumem \ + libuutil \ + ${_libzfs} \ + ${_libzpool} -.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" +.if ${MK_ZFS} != "no" +_libzfs= libzfs +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" _libzpool= libzpool .endif +.endif .include ==== //depot/projects/wifi/cddl/lib/Makefile.inc#2 (text+ko) ==== @@ -1,5 +1,6 @@ -# $FreeBSD: src/cddl/lib/Makefile.inc,v 1.1 2007/04/06 01:08:56 pjd Exp $ +# $FreeBSD: src/cddl/lib/Makefile.inc,v 1.2 2007/04/16 21:20:24 ru Exp $ SHLIBDIR?= /lib +SHLIB_MAJOR?= 1 .include "../Makefile.inc" ==== //depot/projects/wifi/cddl/lib/libavl/Makefile#2 (text+ko) ==== @@ -1,13 +1,10 @@ -# $FreeBSD: src/cddl/lib/libavl/Makefile,v 1.1 2007/04/06 01:08:56 pjd Exp $ +# $FreeBSD: src/cddl/lib/libavl/Makefile,v 1.2 2007/04/16 21:20:24 ru Exp $ -.PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/avl +.PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/avl LIB= avl -SHLIB_MAJOR?=1 - SRCS= avl.c - -CFLAGS+=-I${.CURDIR}/../../../sys/compat/opensolaris -CFLAGS+=-I${.CURDIR}/../../../sys/contrib/opensolaris/uts/common +CFLAGS+= -I${.CURDIR}/../../../sys/compat/opensolaris +CFLAGS+= -I${.CURDIR}/../../../sys/contrib/opensolaris/uts/common .include ==== //depot/projects/wifi/cddl/lib/libnvpair/Makefile#2 (text+ko) ==== @@ -1,18 +1,17 @@ -# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.1 2007/04/06 01:08:56 pjd Exp $ +# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.2 2007/04/16 21:20:25 ru Exp $ -.PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libnvpair -.PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/nvpair +.PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libnvpair +.PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/nvpair LIB= nvpair -SHLIB_MAJOR?=1 -SRCS= libnvpair.c -SRCS+= nvpair_alloc_system.c -SRCS+= nvpair_alloc_fixed.c -SRCS+= nvpair.c +SRCS= libnvpair.c \ + nvpair_alloc_system.c \ + nvpair_alloc_fixed.c \ + nvpair.c -CFLAGS+=-I${.CURDIR}/../../../sys/compat/opensolaris -CFLAGS+=-I${.CURDIR}/../../../include -CFLAGS+=-I${.CURDIR}/../../../sys/contrib/opensolaris/uts/common +CFLAGS+= -I${.CURDIR}/../../../sys/compat/opensolaris +CFLAGS+= -I${.CURDIR}/../../../include # XXX +CFLAGS+= -I${.CURDIR}/../../../sys/contrib/opensolaris/uts/common .include ==== //depot/projects/wifi/cddl/lib/libumem/Makefile#2 (text+ko) ==== @@ -1,12 +1,9 @@ -# $FreeBSD: src/cddl/lib/libumem/Makefile,v 1.1 2007/04/06 01:08:56 pjd Exp $ +# $FreeBSD: src/cddl/lib/libumem/Makefile,v 1.2 2007/04/16 21:20:25 ru Exp $ -.PATH: ${.CURDIR}/../../../compat/opensolaris/lib/libumem +.PATH: ${.CURDIR}/../../../compat/opensolaris/lib/libumem LIB= umem -SHLIB_MAJOR?=1 - SRCS= umem.c - -CFLAGS+=-I${.CURDIR}/../../../compat/opensolaris/lib/libumem +CFLAGS+= -I${.CURDIR}/../../../compat/opensolaris/lib/libumem .include ==== //depot/projects/wifi/cddl/lib/libuutil/Makefile#2 (text+ko) ==== @@ -1,27 +1,25 @@ -# $FreeBSD: src/cddl/lib/libuutil/Makefile,v 1.1 2007/04/06 01:08:57 pjd Exp $ +# $FreeBSD: src/cddl/lib/libuutil/Makefile,v 1.2 2007/04/16 21:20:25 ru Exp $ -.PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libuutil/common -.PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/avl +.PATH: ${.CURDIR}/../../../contrib/opensolaris/lib/libuutil/common +.PATH: ${.CURDIR}/../../../sys/contrib/opensolaris/common/avl LIB= uutil -SHLIB_MAJOR?=1 +SRCS= avl.c \ + uu_alloc.c \ + uu_avl.c \ + uu_dprintf.c \ + uu_ident.c \ + uu_list.c \ + uu_misc.c \ + uu_open.c \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Apr 22 05:15:12 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E32D616A403; Sun, 22 Apr 2007 05:15:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id ABF0116A401 for ; Sun, 22 Apr 2007 05:15:11 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9C2C513C45D for ; Sun, 22 Apr 2007 05:15:11 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M5FBPp023451 for ; Sun, 22 Apr 2007 05:15:11 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M5FBlP023439 for perforce@freebsd.org; Sun, 22 Apr 2007 05:15:11 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 05:15:11 GMT Message-Id: <200704220515.l3M5FBlP023439@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118558 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 05:15:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=118558 Change 118558 by sam@sam_ebb on 2007/04/22 05:14:30 Minor sync w/ 11n work: o add some sequence # defs needed for 11n o add defines for QoS ack policies o correct HT SMPS defs (use D1.10/2.0 values) o sort IEEE80211_ELEMID_HTCAP o add Broadcom OUI stuff needed for compatibility support Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211.h#19 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211.h#19 (text+ko) ==== @@ -167,7 +167,14 @@ #define IEEE80211_SEQ_FRAG_SHIFT 0 #define IEEE80211_SEQ_SEQ_MASK 0xfff0 #define IEEE80211_SEQ_SEQ_SHIFT 4 +#define IEEE80211_SEQ_RANGE 4096 +#define IEEE80211_SEQ_ADD(seq, incr) \ + (((seq) + (incr)) & (IEEE80211_SEQ_RANGE-1)) +#define IEEE80211_SEQ_INC(seq) IEEE80211_SEQ_ADD(seq,1) +#define IEEE80211_SEQ_SUB(a, b) \ + (((a) + IEEE80211_SEQ_RANGE - (b)) & (IEEE80211_SEQ_RANGE-1)) + #define IEEE80211_NWID_LEN 32 #define IEEE80211_QOS_TXOP 0x00ff @@ -176,6 +183,8 @@ #define IEEE80211_QOS_AMSDU_S 7 #define IEEE80211_QOS_ACKPOLICY 0x60 #define IEEE80211_QOS_ACKPOLICY_S 5 +#define IEEE80211_QOS_ACKPOLICY_NOACK 0x20 /* No ACK required */ +#define IEEE80211_QOS_ACKPOLICY_BA 0x60 /* Block ACK */ #define IEEE80211_QOS_ESOP 0x10 #define IEEE80211_QOS_ESOP_S 4 #define IEEE80211_QOS_TID 0x0f @@ -521,8 +530,8 @@ #define IEEE80211_HTCAP_SMPS 0x000c /* SM Power Save mode */ #define IEEE80211_HTCAP_SMPS_OFF 0x0000 /* none (static mode) */ #define IEEE80211_HTCAP_SMPS_DYNAMIC 0x0004 /* send RTS first */ -#define IEEE80211_HTCAP_SMPS_NA 0x0008 /* not applicable */ -#define IEEE80211_HTCAP_SMPS_ALL 0x000c /* no limitation */ +/* NB: SMPS value 2 is reserved */ +#define IEEE80211_HTCAP_SMPS_ENA 0x000c /* enabled */ #define IEEE80211_HTCAP_GREENFIELD 0x0010 /* Greenfield supported */ #define IEEE80211_HTCAP_SHORTGI20 0x0020 /* Short GI in 20MHz */ #define IEEE80211_HTCAP_SHORTGI40 0x0040 /* Short GI in 40MHz */ @@ -657,9 +666,9 @@ IEEE80211_ELEMID_QUIET = 40, IEEE80211_ELEMID_IBSSDFS = 41, IEEE80211_ELEMID_ERP = 42, + IEEE80211_ELEMID_HTCAP = 45, IEEE80211_ELEMID_RSN = 48, IEEE80211_ELEMID_XRATES = 50, - IEEE80211_ELEMID_HTCAP = 45, IEEE80211_ELEMID_HTINFO = 61, IEEE80211_ELEMID_TPC = 150, IEEE80211_ELEMID_CCKM = 156, @@ -718,11 +727,15 @@ #define IEEE80211_ERP_USE_PROTECTION 0x02 #define IEEE80211_ERP_LONG_PREAMBLE 0x04 -#define ATH_OUI 0x7f0300 /* Atheros OUI */ +#define ATH_OUI 0x7f0300 /* Atheros OUI */ #define ATH_OUI_TYPE 0x01 #define ATH_OUI_SUBTYPE 0x01 #define ATH_OUI_VERSION 0x00 +#define BCM_OUI 0x4c9000 /* Broadcom OUI */ +#define BCM_OUI_HTCAP 51 /* pre-draft HTCAP ie */ +#define BCM_OUI_HTINFO 52 /* pre-draft HTINFO ie */ + #define WPA_OUI 0xf25000 #define WPA_OUI_TYPE 0x01 #define WPA_VERSION 1 /* current supported version */ From owner-p4-projects@FreeBSD.ORG Sun Apr 22 05:16:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 74A1816A404; Sun, 22 Apr 2007 05:16:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3780B16A400 for ; Sun, 22 Apr 2007 05:16:15 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2797613C43E for ; Sun, 22 Apr 2007 05:16:15 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M5GFcj023494 for ; Sun, 22 Apr 2007 05:16:15 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M5GEMk023489 for perforce@freebsd.org; Sun, 22 Apr 2007 05:16:14 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 05:16:14 GMT Message-Id: <200704220516.l3M5GEMk023489@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118559 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 05:16:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=118559 Change 118559 by sam@sam_ebb on 2007/04/22 05:15:31 o treat QoS null data frame identically to non-QoS o replace variable use with known constant o correct typo in debug msg Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_input.c#100 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#100 (text+ko) ==== @@ -404,7 +404,8 @@ m = ieee80211_decap(ic, m, hdrspace); if (m == NULL) { /* don't count Null data frames as errors */ - if (subtype == IEEE80211_FC0_SUBTYPE_NODATA) + if (subtype == IEEE80211_FC0_SUBTYPE_NODATA || + subtype == IEEE80211_FC0_SUBTYPE_QOS_NULL) goto out; IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_INPUT, ni->ni_macaddr, "data", "%s", "decap error"); @@ -461,7 +462,7 @@ ni->ni_macaddr, "fast-frame", "%s", "m_pullup(llc) failed"); ic->ic_stats.is_rx_tooshort++; - return type; + return IEEE80211_FC0_TYPE_DATA; } llc = (struct llc *)(mtod(m, u_int8_t *) + sizeof(struct ether_header)); @@ -469,7 +470,7 @@ m_adj(m, FF_LLC_SIZE); m = ieee80211_decap_fastframe(ic, ni, m); if (m == NULL) - return type; + return IEEE80211_FC0_TYPE_DATA; } } #undef FF_LLC_SIZE @@ -536,7 +537,7 @@ bpf_mtap(ic->ic_rawbpf, m); (*ic->ic_recv_mgmt)(ic, m, ni, subtype, rssi, noise, rstamp); m_freem(m); - return type; + return IEEE80211_FC0_TYPE_MGT; case IEEE80211_FC0_TYPE_CTL: ic->ic_stats.is_rx_ctl++; @@ -1953,7 +1954,7 @@ struct ieee80211com *ic = ni->ni_ic; IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY, - "[%s] deny %s request, %srate set mismatch, rate 0x%x\n", + "[%s] deny %s request, %s rate set mismatch, rate 0x%x\n", ether_sprintf(wh->i_addr2), reassoc ? "reassoc" : "assoc", tag, rate); IEEE80211_SEND_MGMT(ic, ni, resp, IEEE80211_STATUS_BASIC_RATE); From owner-p4-projects@FreeBSD.ORG Sun Apr 22 05:17:17 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 96E8C16A407; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3EFB016A403 for ; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2EE8213C44B for ; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M5HHk2023583 for ; Sun, 22 Apr 2007 05:17:17 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M5HHGZ023580 for perforce@freebsd.org; Sun, 22 Apr 2007 05:17:17 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 05:17:17 GMT Message-Id: <200704220517.l3M5HHGZ023580@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118560 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 05:17:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=118560 Change 118560 by sam@sam_ebb on 2007/04/22 05:16:15 add missing array entry for static turbo mode; while here leave some asserts so it doesn't happen again Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#75 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#75 (text+ko) ==== @@ -1605,11 +1605,15 @@ IEEE80211_CHAN_FHSS, /* IEEE80211_MODE_FH */ IEEE80211_CHAN_108A, /* IEEE80211_MODE_TURBO_A */ IEEE80211_CHAN_108G, /* IEEE80211_MODE_TURBO_G */ + IEEE80211_CHAN_STURBO, /* IEEE80211_MODE_STURBO_A */ }; u_int modeflags; int i; + KASSERT(mode < IEEE80211_MODE_MAX, ("bad mode %u", mode)); modeflags = chanflags[mode]; + KASSERT(modeflags != 0 || mode == IEEE80211_MODE_AUTO, + ("no chanflags for mode %u", mode)); for (i = 0; i < ic->ic_nchans; i++) { struct ieee80211_channel *c = &ic->ic_channels[i]; From owner-p4-projects@FreeBSD.ORG Sun Apr 22 05:17:18 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BBDBE16A4D1; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 953C016A404 for ; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 85A2B13C44C for ; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M5HHYB023590 for ; Sun, 22 Apr 2007 05:17:17 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M5HHTK023586 for perforce@freebsd.org; Sun, 22 Apr 2007 05:17:17 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 05:17:17 GMT Message-Id: <200704220517.l3M5HHTK023586@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118561 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 05:17:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=118561 Change 118561 by sam@sam_ebb on 2007/04/22 05:16:42 user IEEE80211_QOS_ACKPOLICY_NOACK instead of hand-rolled value Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_output.c#72 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#72 (text+ko) ==== @@ -803,7 +803,7 @@ tid = WME_AC_TO_TID(ac); qwh->i_qos[0] = tid & IEEE80211_QOS_TID; if (ic->ic_wme.wme_wmeChanParams.cap_wmeParams[ac].wmep_noackPolicy) - qwh->i_qos[0] |= 1 << IEEE80211_QOS_ACKPOLICY_S; + qwh->i_qos[0] |= IEEE80211_QOS_ACKPOLICY_NOACK; qwh->i_qos[1] = 0; qwh->i_fc[0] |= IEEE80211_FC0_SUBTYPE_QOS; From owner-p4-projects@FreeBSD.ORG Sun Apr 22 05:17:18 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 927A616A5C7; Sun, 22 Apr 2007 05:17:18 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3495116A558 for ; Sun, 22 Apr 2007 05:17:18 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D977F13C455 for ; Sun, 22 Apr 2007 05:17:17 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M5HH8S023597 for ; Sun, 22 Apr 2007 05:17:17 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M5HHY1023593 for perforce@freebsd.org; Sun, 22 Apr 2007 05:17:17 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 05:17:17 GMT Message-Id: <200704220517.l3M5HHY1023593@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118562 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 05:17:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=118562 Change 118562 by sam@sam_ebb on 2007/04/22 05:17:02 add missing array entries for static turbo mode Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#53 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#53 (text+ko) ==== @@ -561,6 +561,7 @@ { 3, 5, 7, 0, 0 }, /* IEEE80211_MODE_FH */ { 2, 3, 5, 0, 0 }, /* IEEE80211_MODE_TURBO_A */ { 2, 3, 5, 0, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 2, 3, 5, 0, 0 }, /* IEEE80211_MODE_STURBO_A */ }; static const struct phyParamType phyParamForAC_BK[IEEE80211_MODE_MAX] = { { 7, 4, 10, 0, 0 }, /* IEEE80211_MODE_AUTO */ @@ -570,6 +571,7 @@ { 7, 5, 10, 0, 0 }, /* IEEE80211_MODE_FH */ { 7, 3, 10, 0, 0 }, /* IEEE80211_MODE_TURBO_A */ { 7, 3, 10, 0, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 7, 3, 10, 0, 0 }, /* IEEE80211_MODE_STURBO_A */ }; static const struct phyParamType phyParamForAC_VI[IEEE80211_MODE_MAX] = { { 1, 3, 4, 94, 0 }, /* IEEE80211_MODE_AUTO */ @@ -579,6 +581,7 @@ { 1, 4, 5, 188, 0 }, /* IEEE80211_MODE_FH */ { 1, 2, 3, 94, 0 }, /* IEEE80211_MODE_TURBO_A */ { 1, 2, 3, 94, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 1, 2, 3, 94, 0 }, /* IEEE80211_MODE_STURBO_A */ }; static const struct phyParamType phyParamForAC_VO[IEEE80211_MODE_MAX] = { { 1, 2, 3, 47, 0 }, /* IEEE80211_MODE_AUTO */ @@ -588,6 +591,7 @@ { 1, 3, 4, 102, 0 }, /* IEEE80211_MODE_FH */ { 1, 2, 2, 47, 0 }, /* IEEE80211_MODE_TURBO_A */ { 1, 2, 2, 47, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 1, 2, 2, 47, 0 }, /* IEEE80211_MODE_STURBO_A */ }; static const struct phyParamType bssPhyParamForAC_BE[IEEE80211_MODE_MAX] = { @@ -598,6 +602,7 @@ { 3, 5, 10, 0, 0 }, /* IEEE80211_MODE_FH */ { 2, 3, 10, 0, 0 }, /* IEEE80211_MODE_TURBO_A */ { 2, 3, 10, 0, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 2, 3, 10, 0, 0 }, /* IEEE80211_MODE_STURBO_A */ }; static const struct phyParamType bssPhyParamForAC_VI[IEEE80211_MODE_MAX] = { { 2, 3, 4, 94, 0 }, /* IEEE80211_MODE_AUTO */ @@ -607,6 +612,7 @@ { 2, 4, 5, 188, 0 }, /* IEEE80211_MODE_FH */ { 2, 2, 3, 94, 0 }, /* IEEE80211_MODE_TURBO_A */ { 2, 2, 3, 94, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 2, 2, 3, 94, 0 }, /* IEEE80211_MODE_STURBO_A */ }; static const struct phyParamType bssPhyParamForAC_VO[IEEE80211_MODE_MAX] = { { 2, 2, 3, 47, 0 }, /* IEEE80211_MODE_AUTO */ @@ -616,6 +622,7 @@ { 2, 3, 4, 102, 0 }, /* IEEE80211_MODE_FH */ { 1, 2, 2, 47, 0 }, /* IEEE80211_MODE_TURBO_A */ { 1, 2, 2, 47, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 1, 2, 2, 47, 0 }, /* IEEE80211_MODE_STURBO_A */ }; void @@ -732,6 +739,7 @@ { 2, 5, 10, 64, 0 }, /* IEEE80211_MODE_FH */ { 1, 3, 10, 64, 0 }, /* IEEE80211_MODE_TURBO_A */ { 1, 3, 10, 64, 0 }, /* IEEE80211_MODE_TURBO_G */ + { 1, 3, 10, 64, 0 }, /* IEEE80211_MODE_STURBO_A */ }; struct ieee80211_wme_state *wme = &ic->ic_wme; const struct wmeParams *wmep; @@ -813,6 +821,7 @@ 4, /* IEEE80211_MODE_FH */ 3, /* IEEE80211_MODE_TURBO_A */ 3, /* IEEE80211_MODE_TURBO_G */ + 3, /* IEEE80211_MODE_STURBO_A */ }; chanp = &wme->wme_chanParams.cap_wmeParams[WME_AC_BE]; bssp = &wme->wme_bssChanParams.cap_wmeParams[WME_AC_BE]; From owner-p4-projects@FreeBSD.ORG Sun Apr 22 06:17:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 376A116A404; Sun, 22 Apr 2007 06:17:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A865716A402 for ; Sun, 22 Apr 2007 06:17:31 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9876513C43E for ; Sun, 22 Apr 2007 06:17:31 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M6HVWY033912 for ; Sun, 22 Apr 2007 06:17:31 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M6HVJt033909 for perforce@freebsd.org; Sun, 22 Apr 2007 06:17:31 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 06:17:31 GMT Message-Id: <200704220617.l3M6HVJt033909@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118563 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 06:17:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=118563 Change 118563 by sam@sam_ebb on 2007/04/22 06:17:22 add missing array entry for static turb mode; while here add assertions so it doesn't happen in the future Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211.c#50 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211.c#50 (text+ko) ==== @@ -426,21 +426,27 @@ static void addmedia(struct ieee80211com *ic, int mode, int mword) { +#define TURBO(m) ((m) | IFM_IEEE80211_TURBO) #define ADD(_ic, _s, _o) \ ifmedia_add(&(_ic)->ic_media, \ IFM_MAKEWORD(IFM_IEEE80211, (_s), (_o), 0), 0, NULL) static const u_int mopts[IEEE80211_MODE_MAX] = { - IFM_AUTO, - IFM_IEEE80211_11A, - IFM_IEEE80211_11B, - IFM_IEEE80211_11G, - IFM_IEEE80211_FH, - IFM_IEEE80211_11A | IFM_IEEE80211_TURBO, - IFM_IEEE80211_11G | IFM_IEEE80211_TURBO, + IFM_AUTO, /* IEEE80211_MODE_AUTO */ + IFM_IEEE80211_11A, /* IEEE80211_MODE_11A */ + IFM_IEEE80211_11B, /* IEEE80211_MODE_11B */ + IFM_IEEE80211_11G, /* IEEE80211_MODE_11G */ + IFM_IEEE80211_FH, /* IEEE80211_MODE_FH */ + TURBO(IFM_IEEE80211_11A), /* IEEE80211_MODE_TURBO_A */ + TURBO(IFM_IEEE80211_11G), /* IEEE80211_MODE_TURBO_G */ + TURBO(IFM_IEEE80211_11A), /* IEEE80211_MODE_STURBO_A */ }; u_int mopt; + KASSERT(mode < IEEE80211_MODE_MAX, ("bad mode %u", mode)); mopt = mopts[mode]; + KASSERT(mopts != 0 || mode == IEEE80211_MODE_AUTO, + ("no media mapping for mode %u", mode)); + ADD(ic, mword, mopt); /* e.g. 11a auto */ if (ic->ic_caps & IEEE80211_C_IBSS) ADD(ic, mword, mopt | IFM_IEEE80211_ADHOC); @@ -451,6 +457,7 @@ if (ic->ic_caps & IEEE80211_C_MONITOR) ADD(ic, mword, mopt | IFM_IEEE80211_MONITOR); #undef ADD +#undef TURBO } /* From owner-p4-projects@FreeBSD.ORG Sun Apr 22 06:18:33 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C032716A403; Sun, 22 Apr 2007 06:18:33 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 863D516A401 for ; Sun, 22 Apr 2007 06:18:33 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7642013C46A for ; Sun, 22 Apr 2007 06:18:33 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M6IXW0033956 for ; Sun, 22 Apr 2007 06:18:33 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M6IX9Y033953 for perforce@freebsd.org; Sun, 22 Apr 2007 06:18:33 GMT (envelope-from sam@freebsd.org) Date: Sun, 22 Apr 2007 06:18:33 GMT Message-Id: <200704220618.l3M6IX9Y033953@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118564 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 06:18:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=118564 Change 118564 by sam@sam_ebb on 2007/04/22 06:18:23 give IEEE80211_VERIFY_LENGTH and action parameter so it can be do something other than return on failure; will be used for 11n support Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_input.c#101 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#101 (text+ko) ==== @@ -1347,7 +1347,7 @@ } \ } while (0) -#define IEEE80211_VERIFY_LENGTH(_len, _minlen) do { \ +#define IEEE80211_VERIFY_LENGTH(_len, _minlen, _action) do { \ if ((_len) < (_minlen)) { \ IEEE80211_DISCARD(ic, IEEE80211_MSG_ELEMID, \ wh, ieee80211_mgt_subtype_name[subtype >> \ @@ -1355,7 +1355,7 @@ "ie too short, got %d, expected %d", \ (_len), (_minlen)); \ ic->ic_stats.is_rx_elem_toosmall++; \ - return; \ + _action; \ } \ } while (0) @@ -2027,7 +2027,7 @@ * [tlv] WPA or RSN * [tlv] Atheros capabilities */ - IEEE80211_VERIFY_LENGTH(efrm - frm, 12); + IEEE80211_VERIFY_LENGTH(efrm - frm, 12, return); memset(&scan, 0, sizeof(scan)); scan.tstamp = frm; frm += 8; scan.bintval = le16toh(*(u_int16_t *)frm); frm += 2; @@ -2036,7 +2036,7 @@ scan.chan = scan.bchan; while (efrm - frm > 1) { - IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2); + IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); switch (*frm) { case IEEE80211_ELEMID_SSID: scan.ssid = frm; @@ -2327,7 +2327,7 @@ */ ssid = rates = xrates = ath = NULL; while (efrm - frm > 1) { - IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2); + IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); switch (*frm) { case IEEE80211_ELEMID_SSID: ssid = frm; @@ -2413,7 +2413,7 @@ * [2] status * [tlv*] challenge */ - IEEE80211_VERIFY_LENGTH(efrm - frm, 6); + IEEE80211_VERIFY_LENGTH(efrm - frm, 6, return); algo = le16toh(*(u_int16_t *)frm); seq = le16toh(*(u_int16_t *)(frm + 2)); status = le16toh(*(u_int16_t *)(frm + 4)); @@ -2499,7 +2499,7 @@ * [tlv] WPA or RSN * [tlv] Atheros capabilities */ - IEEE80211_VERIFY_LENGTH(efrm - frm, (reassoc ? 10 : 4)); + IEEE80211_VERIFY_LENGTH(efrm - frm, (reassoc ? 10 : 4), return); if (!IEEE80211_ADDR_EQ(wh->i_addr3, ic->ic_bss->ni_bssid)) { IEEE80211_DISCARD(ic, IEEE80211_MSG_ANY, wh, ieee80211_mgt_subtype_name[subtype >> @@ -2514,7 +2514,7 @@ frm += 6; /* ignore current AP info */ ssid = rates = xrates = wpa = rsn = wme = ath = NULL; while (efrm - frm > 1) { - IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2); + IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); switch (*frm) { case IEEE80211_ELEMID_SSID: ssid = frm; @@ -2749,7 +2749,7 @@ * [tlv] extended supported rates * [tlv] WME */ - IEEE80211_VERIFY_LENGTH(efrm - frm, 6); + IEEE80211_VERIFY_LENGTH(efrm - frm, 6, return); ni = ic->ic_bss; capinfo = le16toh(*(u_int16_t *)frm); frm += 2; @@ -2770,7 +2770,7 @@ rates = xrates = wme = NULL; while (efrm - frm > 1) { - IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2); + IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2, return); switch (*frm) { case IEEE80211_ELEMID_RATES: rates = frm; @@ -2870,7 +2870,7 @@ * deauth frame format * [2] reason */ - IEEE80211_VERIFY_LENGTH(efrm - frm, 2); + IEEE80211_VERIFY_LENGTH(efrm - frm, 2, return); reason = le16toh(*(u_int16_t *)frm); ic->ic_stats.is_rx_deauth++; IEEE80211_NODE_STAT(ni, rx_deauth); @@ -2912,7 +2912,7 @@ * disassoc frame format * [2] reason */ - IEEE80211_VERIFY_LENGTH(efrm - frm, 2); + IEEE80211_VERIFY_LENGTH(efrm - frm, 2, return); reason = le16toh(*(u_int16_t *)frm); ic->ic_stats.is_rx_disassoc++; IEEE80211_NODE_STAT(ni, rx_disassoc); From owner-p4-projects@FreeBSD.ORG Sun Apr 22 06:59:24 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7234C16A40E; Sun, 22 Apr 2007 06:59:24 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C03AD16A40A for ; Sun, 22 Apr 2007 06:59:23 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id AF37013C457 for ; Sun, 22 Apr 2007 06:59:23 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M6xNOf040099 for ; Sun, 22 Apr 2007 06:59:23 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M6xNXl040096 for perforce@freebsd.org; Sun, 22 Apr 2007 06:59:23 GMT (envelope-from mjacob@freebsd.org) Date: Sun, 22 Apr 2007 06:59:23 GMT Message-Id: <200704220659.l3M6xNXl040096@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118565 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 06:59:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=118565 Change 118565 by mjacob@mjexp on 2007/04/22 06:58:34 Strip all previous locking out/down to the bare bones in preparation for rethinking based upon the new CAM locking model. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#18 edit .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#12 edit .. //depot/projects/mjexp/sys/dev/isp/isp_pci.c#22 edit .. //depot/projects/mjexp/sys/dev/isp/isp_sbus.c#11 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#18 (text+ko) ==== @@ -135,22 +135,17 @@ /* * Construct our SIM entry. */ - ISPLOCK_2_CAMLOCK(isp); - sim = cam_sim_alloc(isp_action, isp_poll, "isp", isp, - device_get_unit(isp->isp_dev), &Giant, 1, isp->isp_maxcmds, devq); + sim = isp_sim_alloc(isp_action, isp_poll, "isp", isp, + device_get_unit(isp->isp_dev), 1, isp->isp_maxcmds, devq); if (sim == NULL) { cam_simq_free(devq); - CAMLOCK_2_ISPLOCK(isp); return; } - CAMLOCK_2_ISPLOCK(isp); isp->isp_osinfo.ehook.ich_func = isp_intr_enable; isp->isp_osinfo.ehook.ich_arg = isp; - ISPLOCK_2_CAMLOCK(isp); if (config_intrhook_establish(&isp->isp_osinfo.ehook) != 0) { cam_sim_free(sim, TRUE); - CAMLOCK_2_ISPLOCK(isp); isp_prt(isp, ISP_LOGERR, "could not establish interrupt enable hook"); return; @@ -158,7 +153,6 @@ if (xpt_bus_register(sim, primary) != CAM_SUCCESS) { cam_sim_free(sim, TRUE); - CAMLOCK_2_ISPLOCK(isp); return; } @@ -167,7 +161,6 @@ xpt_bus_deregister(cam_sim_path(sim)); cam_sim_free(sim, TRUE); config_intrhook_disestablish(&isp->isp_osinfo.ehook); - CAMLOCK_2_ISPLOCK(isp); return; } @@ -177,7 +170,6 @@ csa.callback = isp_cam_async; csa.callback_arg = sim; xpt_action((union ccb *)&csa); - CAMLOCK_2_ISPLOCK(isp); isp->isp_sim = sim; isp->isp_path = path; /* @@ -185,9 +177,7 @@ * don't have dual channel FC cards. */ if (IS_FC(isp)) { - ISPLOCK_2_CAMLOCK(isp); #if __FreeBSD_version >= 500000 - cv_init(&isp->isp_osinfo.kthread_cv, "isp_kthread_cv"); if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, RFHIGHPID, 0, "%s: fc_thrd", device_get_nameunit(isp->isp_dev))) @@ -199,11 +189,9 @@ xpt_bus_deregister(cam_sim_path(sim)); cam_sim_free(sim, TRUE); config_intrhook_disestablish(&isp->isp_osinfo.ehook); - CAMLOCK_2_ISPLOCK(isp); isp_prt(isp, ISP_LOGERR, "could not create kthread"); return; } - CAMLOCK_2_ISPLOCK(isp); /* * We start by being "loop down" if we have an initiator role */ @@ -222,10 +210,8 @@ * If we have a second channel, construct SIM entry for that. */ if (IS_DUALBUS(isp)) { - ISPLOCK_2_CAMLOCK(isp); - sim = cam_sim_alloc(isp_action, isp_poll, "isp", isp, - device_get_unit(isp->isp_dev), &Giant, 1, - isp->isp_maxcmds, devq); + sim = isp_sim_alloc(isp_action, isp_poll, "isp", isp, + device_get_unit(isp->isp_dev), 1, isp->isp_maxcmds, devq); if (sim == NULL) { xpt_bus_deregister(cam_sim_path(isp->isp_sim)); xpt_free_path(isp->isp_path); @@ -238,7 +224,6 @@ xpt_free_path(isp->isp_path); cam_sim_free(sim, TRUE); config_intrhook_disestablish(&isp->isp_osinfo.ehook); - CAMLOCK_2_ISPLOCK(isp); return; } @@ -249,7 +234,6 @@ xpt_bus_deregister(cam_sim_path(sim)); cam_sim_free(sim, TRUE); config_intrhook_disestablish(&isp->isp_osinfo.ehook); - CAMLOCK_2_ISPLOCK(isp); return; } @@ -259,7 +243,6 @@ csa.callback = isp_cam_async; csa.callback_arg = sim; xpt_action((union ccb *)&csa); - CAMLOCK_2_ISPLOCK(isp); isp->isp_sim2 = sim; isp->isp_path2 = path; } @@ -292,9 +275,7 @@ if (isp->isp_osinfo.simqfrozen == 0) { isp_prt(isp, ISP_LOGDEBUG0, "%s: freeze simq (loopdown)", msg); isp->isp_osinfo.simqfrozen |= SIMQFRZ_LOOPDOWN; - ISPLOCK_2_CAMLOCK(isp); xpt_freeze_simq(isp->isp_sim, 1); - CAMLOCK_2_ISPLOCK(isp); } else { isp_prt(isp, ISP_LOGDEBUG0, "%s: mark frozen (loopdown)", msg); isp->isp_osinfo.simqfrozen |= SIMQFRZ_LOOPDOWN; @@ -315,6 +296,11 @@ { ispsoftc_t *isp; int nr, retval = ENOTTY; +#if __FreeBSD_version < 500000 + int s = splcam(); +#else + GIANT_REQUIRED; +#endif isp = isplist; while (isp) { @@ -323,8 +309,12 @@ } isp = isp->isp_osinfo.next; } - if (isp == NULL) + if (isp == NULL) { +#if __FreeBSD_version < 500000 + splx(s); +#endif return (ENXIO); + } switch (c) { #ifdef ISP_FW_CRASH_DUMP @@ -339,7 +329,6 @@ } else { sz = QLA2300_RISC_IMAGE_DUMP_SIZE; } - ISP_LOCK(isp); if (ptr && *ptr) { void *uaddr = *((void **) addr); if (copyout(ptr, uaddr, sz)) { @@ -350,17 +339,14 @@ } else { retval = ENXIO; } - ISP_UNLOCK(isp); } break; case ISP_FORCE_CRASH_DUMP: if (IS_FC(isp)) { - ISP_LOCK(isp); isp_freeze_loopdown(isp, "ispioctl(ISP_FORCE_CRASH_DUMP)"); isp_fw_dump(isp); isp_reinit(isp); - ISP_UNLOCK(isp); retval = 0; } break; @@ -395,31 +381,25 @@ isp->isp_role = nr; /* FALLTHROUGH */ case ISP_RESETHBA: - ISP_LOCK(isp); isp_reinit(isp); - ISP_UNLOCK(isp); retval = 0; break; case ISP_RESCAN: if (IS_FC(isp)) { - ISP_LOCK(isp); if (isp_fc_runstate(isp, 5 * 1000000)) { retval = EIO; } else { retval = 0; } - ISP_UNLOCK(isp); } break; case ISP_FC_LIP: if (IS_FC(isp)) { - ISP_LOCK(isp); if (isp_control(isp, ISPCTL_SEND_LIP, 0)) { retval = EIO; } else { retval = 0; } - ISP_UNLOCK(isp); } break; case ISP_FC_GETDINFO: @@ -434,7 +414,6 @@ retval = EINVAL; break; } - ISP_LOCK(isp); lp = &FCPARAM(isp)->portdb[ifc->loopid]; if (lp->state == FC_PORTDB_STATE_VALID) { ifc->role = lp->roles; @@ -446,7 +425,6 @@ } else { retval = ENODEV; } - ISP_UNLOCK(isp); break; } case ISP_GET_STATS: @@ -457,7 +435,6 @@ sp->isp_stat_version = ISP_STATS_VERSION; sp->isp_type = isp->isp_type; sp->isp_revision = isp->isp_revision; - ISP_LOCK(isp); sp->isp_stats[ISP_INTCNT] = isp->isp_intcnt; sp->isp_stats[ISP_INTBOGUS] = isp->isp_intbogus; sp->isp_stats[ISP_INTMBOXC] = isp->isp_intmboxc; @@ -466,12 +443,10 @@ sp->isp_stats[ISP_FPHCCMCPLT] = isp->isp_fphccmplt; sp->isp_stats[ISP_RSCCHIWAT] = isp->isp_rscchiwater; sp->isp_stats[ISP_FPCCHIWAT] = isp->isp_fpcchiwater; - ISP_UNLOCK(isp); retval = 0; break; } case ISP_CLR_STATS: - ISP_LOCK(isp); isp->isp_intcnt = 0; isp->isp_intbogus = 0; isp->isp_intmboxc = 0; @@ -480,7 +455,6 @@ isp->isp_fphccmplt = 0; isp->isp_rscchiwater = 0; isp->isp_fpcchiwater = 0; - ISP_UNLOCK(isp); retval = 0; break; case ISP_FC_GETHINFO: @@ -641,12 +615,10 @@ break; } if (retval == 0) { - ISP_LOCK(isp); if (needmarker) { isp->isp_sendmarker |= 1; } retval = isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); - ISP_UNLOCK(isp); if (retval) retval = EIO; } @@ -655,6 +627,9 @@ default: break; } +#if __FreeBSD_version < 500000 + splx(s); +#endif return (retval); } @@ -1176,9 +1151,7 @@ ccb->ccb_h.status = CAM_REQ_CMP_ERR; rls_lun_statep(isp, tptr); isp->isp_osinfo.leact[seq] = 0; - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); - CAMLOCK_2_ISPLOCK(isp); return; } else { isp_prt(isp, ISP_LOGTDEBUG0, @@ -1191,9 +1164,7 @@ xpt_print(ccb->ccb_h.path, lfmt, "en"); rls_lun_statep(isp, tptr); isp->isp_osinfo.leact[seq] = 0; - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); - CAMLOCK_2_ISPLOCK(isp); return; } @@ -1213,9 +1184,7 @@ destroy_lun_state(isp, tptr); ccb->ccb_h.status = CAM_REQ_CMP; isp->isp_osinfo.leact[seq] = 0; - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); - CAMLOCK_2_ISPLOCK(isp); if (are_any_luns_enabled(isp, XS_CHANNEL(ccb)) == 0) { int bus = XS_CHANNEL(ccb); av = bus << 31; @@ -1494,9 +1463,7 @@ isp_destroy_tgt_handle(isp, handle); out: - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); - CAMLOCK_2_ISPLOCK(isp); } static void @@ -1561,13 +1528,11 @@ static void isp_complete_ctio(union ccb *ccb) { - ISPLOCK_2_CAMLOCK(isp); if ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_INPROG) { ccb->ccb_h.status |= CAM_REQ_CMP; } ccb->ccb_h.status &= ~CAM_SIM_QUEUED; xpt_done(ccb); - CAMLOCK_2_ISPLOCK(isp); } /* @@ -1800,7 +1765,6 @@ atp->last_xframt = 0; atp->bytes_xfered = 0; atp->state = ATPD_STATE_CAM; - ISPLOCK_2_CAMLOCK(siP); xpt_done((union ccb*)atiop); isp_prt(isp, ISP_LOGTDEBUG0, @@ -2004,7 +1968,6 @@ tgt = xpt_path_target_id(path); if (tgt >= 0) { sdp += cam_sim_bus(sim); - ISP_LOCK(isp); nflags = sdp->isp_devparam[tgt].nvrm_flags; #ifndef ISP_TARGET_MODE nflags &= DPARM_SAFE_DFLT; @@ -2021,7 +1984,6 @@ (void) isp_control(isp, ISPCTL_UPDATE_PARAMS, NULL); sdp->isp_devparam[tgt].goal_flags = oflags; - ISP_UNLOCK(isp); } } break; @@ -2038,11 +2000,9 @@ uint32_t isr; uint16_t sema, mbox; - ISP_LOCK(isp); if (ISP_READ_ISR(isp, &isr, &sema, &mbox)) { isp_intr(isp, isr, sema, mbox); } - ISP_UNLOCK(isp); } @@ -2058,7 +2018,6 @@ * to kill a command that's already dead by getting it's handle and * and seeing whether it's still alive. */ - ISP_LOCK(isp); handle = isp_find_handle(isp, xs); if (handle) { uint32_t isr; @@ -2067,14 +2026,12 @@ if (XS_CMD_DONE_P(xs)) { isp_prt(isp, ISP_LOGDEBUG1, "watchdog found done cmd (handle 0x%x)", handle); - ISP_UNLOCK(isp); return (1);; } if (XS_CMD_WDOG_P(xs)) { isp_prt(isp, ISP_LOGDEBUG2, "recursive watchdog (handle 0x%x)", handle); - ISP_UNLOCK(isp); return (1); } @@ -2085,9 +2042,7 @@ if (XS_CMD_DONE_P(xs)) { isp_prt(isp, ISP_LOGDEBUG2, "watchdog cleanup for handle 0x%x", handle); - ISPLOCK_2_CAMLOCK(isp); xpt_done((union ccb *) xs); - CAMLOCK_2_ISPLOCK(isp); } else if (XS_CMD_GRACE_P(xs)) { /* * Make sure the command is *really* dead before we @@ -2106,19 +2061,15 @@ "watchdog timeout for handle 0x%x\n", handle); XS_SETERR(xs, CAM_CMD_TIMEOUT); XS_CMD_C_WDOG(xs); - ISPLOCK_2_CAMLOCK(isp); isp_done(xs); - CAMLOCK_2_ISPLOCK(isp); } else { XS_CMD_C_WDOG(xs); xs->ccb_h.timeout_ch = timeout(isp_watchdog, xs, hz); XS_CMD_S_GRACE(xs); isp->isp_sendmarker |= 1 << XS_CHANNEL(xs); } - ISP_UNLOCK(isp); return (1); } - ISP_UNLOCK(isp); return (0); } @@ -2143,7 +2094,6 @@ isp_make_here(ispsoftc_t *isp, int tgt) { union ccb *ccb; - ISPLOCK_2_CAMLOCK(mpt); /* * Allocate a CCB, create a wildcard path for this bus, * and schedule a rescan. @@ -2151,31 +2101,26 @@ ccb = xpt_alloc_ccb_nowait(); if (ccb == NULL) { isp_prt(isp, ISP_LOGWARN, "unable to alloc CCB for rescan"); - CAMLOCK_2_ISPLOCK(mpt); return; } if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(isp->isp_sim), tgt, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { - CAMLOCK_2_ISPLOCK(mpt); isp_prt(isp, ISP_LOGWARN, "unable to create path for rescan"); xpt_free_ccb(ccb); return; } xpt_rescan(ccb); - CAMLOCK_2_ISPLOCK(mpt); } static void isp_make_gone(ispsoftc_t *isp, int tgt) { struct cam_path *tp; - ISPLOCK_2_CAMLOCK(isp); if (xpt_create_path(&tp, NULL, cam_sim_path(isp->isp_sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { xpt_async(AC_LOST_DEVICE, tp, NULL); xpt_free_path(tp); } - CAMLOCK_2_ISPLOCK(isp); } #else #define isp_make_here(isp, tgt) do { ; } while (0) @@ -2201,7 +2146,6 @@ int dbidx, tgt, more_to_do = 0; isp_prt(isp, ISP_LOGDEBUG0, "GDT timer expired"); - ISP_LOCK(isp); for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) { lp = &FCPARAM(isp)->portdb[dbidx]; @@ -2234,7 +2178,6 @@ "stopping Gone Device Timer"); isp->isp_osinfo.gdt_running = 0; } - ISP_UNLOCK(isp); } /* @@ -2254,7 +2197,6 @@ int dbidx, tgt; isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Loop Down Timer expired"); - ISP_LOCK(isp); /* * Notify to the OS all targets who we now consider have departed. @@ -2298,16 +2240,7 @@ * to notice that fact (or make it false). */ isp->isp_osinfo.loop_down_time = isp->isp_osinfo.loop_down_limit+1; -#if __FreeBSD_version < 500000 wakeup(&isp->isp_osinfo.kproc); -#else -#ifdef ISP_SMPLOCK - cv_signal(&isp->isp_osinfo.kthread_cv); -#else - wakeup(&isp->isp_osinfo.kthread_cv); -#endif -#endif - ISP_UNLOCK(isp); } static void @@ -2316,16 +2249,10 @@ ispsoftc_t *isp = arg; int slp = 0; #if __FreeBSD_version < 500000 - int s; - - s = splcam(); + int s = splcam(); #else -#ifdef ISP_SMPLOCK - mtx_lock(&isp->isp_lock); -#else mtx_lock(&Giant); #endif -#endif /* * The first loop is for our usage where we have yet to have * gotten good fibre channel state. @@ -2399,24 +2326,11 @@ if (wasfrozen && isp->isp_osinfo.simqfrozen == 0) { isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "isp_kthread: releasing simq"); - ISPLOCK_2_CAMLOCK(isp); xpt_release_simq(isp->isp_sim, 1); - CAMLOCK_2_ISPLOCK(isp); } isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "isp_kthread: sleep time %d", slp); -#if __FreeBSD_version < 500000 - tsleep(&isp->isp_osinfo.kproc, PRIBIO, "ispf", - slp * hz); -#else -#ifdef ISP_SMPLOCK - cv_timed_wait(&isp->isp_osinfo.kthread_cv, &isp->isp_lock, - slp * hz); -#else - (void) tsleep(&isp->isp_osinfo.kthread_cv, PRIBIO, "ispf", - slp * hz); -#endif -#endif + tsleep(&isp->isp_osinfo.kproc, PRIBIO, "ispf", slp * hz); /* * If slp is zero, we're waking up for the first time after * things have been okay. In this case, we set a deferral state @@ -2432,6 +2346,11 @@ (isp->isp_osinfo.hysteresis * hz)); } } +#if __FreeBSD_version < 500000 + splx(s); +#else + mtx_unlock(&Giant); +#endif } static void @@ -2448,10 +2367,8 @@ ccb->ccb_h.sim_priv.entries[1].ptr = isp; if (isp->isp_state != ISP_RUNSTATE && ccb->ccb_h.func_code == XPT_SCSI_IO) { - CAMLOCK_2_ISPLOCK(isp); isp_init(isp); if (isp->isp_state != ISP_INITSTATE) { - ISP_UNLOCK(isp); /* * Lie. Say it was a selection timeout. */ @@ -2461,7 +2378,6 @@ return; } isp->isp_state = ISP_RUNSTATE; - ISPLOCK_2_CAMLOCK(isp); } isp_prt(isp, ISP_LOGDEBUG2, "isp_action code %x", ccb->ccb_h.func_code); @@ -2492,12 +2408,10 @@ } #endif ((struct ccb_scsiio *) ccb)->scsi_status = SCSI_STATUS_OK; - CAMLOCK_2_ISPLOCK(isp); error = isp_start((XS_T *) ccb); switch (error) { case CMD_QUEUED: XS_CMD_S_CLEAR(ccb); - ISPLOCK_2_CAMLOCK(isp); ccb->ccb_h.status |= CAM_SIM_QUEUED; if (ccb->ccb_h.timeout != CAM_TIME_INFINITY) { int ms = ccb->ccb_h.timeout; @@ -2532,7 +2446,6 @@ ccb->ccb_h.status = CAM_SEL_TIMEOUT|CAM_DEV_QFRZN; xpt_freeze_devq(ccb->ccb_h.path, 1); - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); break; } @@ -2541,7 +2454,6 @@ /* * Otherwise, retry in a while. */ - ISPLOCK_2_CAMLOCK(isp); cam_freeze_devq(ccb->ccb_h.path); cam_release_devq(ccb->ccb_h.path, RELSIM_RELEASE_AFTER_TIMEOUT, 0, 1000, 0); @@ -2549,7 +2461,6 @@ xpt_done(ccb); break; case CMD_EAGAIN: - ISPLOCK_2_CAMLOCK(isp); cam_freeze_devq(ccb->ccb_h.path); cam_release_devq(ccb->ccb_h.path, RELSIM_RELEASE_AFTER_TIMEOUT, 0, 250, 0); @@ -2557,10 +2468,8 @@ break; case CMD_COMPLETE: isp_done((struct ccb_scsiio *) ccb); - ISPLOCK_2_CAMLOCK(isp); break; default: - ISPLOCK_2_CAMLOCK(isp); isp_prt(isp, ISP_LOGERR, "What's this? 0x%x at %d in file %s", error, __LINE__, __FILE__); @@ -2573,10 +2482,8 @@ case XPT_EN_LUN: /* Enable LUN as a target */ { int seq, i; - CAMLOCK_2_ISPLOCK(isp); seq = isp_en_lun(isp, ccb); if (seq < 0) { - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); break; } @@ -2588,7 +2495,6 @@ } DELAY(1000); } - ISPLOCK_2_CAMLOCK(isp); break; } case XPT_NOTIFY_ACK: /* recycle notify ack */ @@ -2606,7 +2512,6 @@ ccb->ccb_h.sim_priv.entries[1].ptr = isp; ccb->ccb_h.flags = 0; - CAMLOCK_2_ISPLOCK(isp); if (ccb->ccb_h.func_code == XPT_ACCEPT_TARGET_IO) { /* * Note that the command itself may not be done- @@ -2630,14 +2535,11 @@ } rls_lun_statep(isp, tptr); ccb->ccb_h.status = CAM_REQ_INPROG; - ISPLOCK_2_CAMLOCK(isp); break; } case XPT_CONT_TARGET_IO: { - CAMLOCK_2_ISPLOCK(isp); isp_target_start_ctio(isp, ccb); - ISPLOCK_2_CAMLOCK(isp); break; } #endif @@ -2647,9 +2549,7 @@ tgt = ccb->ccb_h.target_id; tgt |= (bus << 16); - CAMLOCK_2_ISPLOCK(isp); error = isp_control(isp, ISPCTL_RESET_DEV, &tgt); - ISPLOCK_2_CAMLOCK(isp); if (error) { ccb->ccb_h.status = CAM_REQ_CMP_ERR; } else { @@ -2660,7 +2560,6 @@ case XPT_ABORT: /* Abort the specified CCB */ { union ccb *accb = ccb->cab.abort_ccb; - CAMLOCK_2_ISPLOCK(isp); switch (accb->ccb_h.func_code) { #ifdef ISP_TARGET_MODE case XPT_ACCEPT_TARGET_IO: @@ -2684,7 +2583,6 @@ ccb->ccb_h.status = CAM_REQ_INVALID; break; } - ISPLOCK_2_CAMLOCK(isp); xpt_done(ccb); break; } @@ -2701,7 +2599,6 @@ break; } tgt = cts->ccb_h.target_id; - CAMLOCK_2_ISPLOCK(isp); if (IS_SCSI(isp)) { #ifndef CAM_NEW_TRAN_CODE sdparam *sdp = isp->isp_param; @@ -2771,7 +2668,6 @@ uint16_t *dptr; if (spi->valid == 0 && scsi->valid == 0) { - ISPLOCK_2_CAMLOCK(isp); ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); break; @@ -2834,14 +2730,12 @@ sdp->isp_devparam[tgt].dev_update = 1; isp->isp_update |= (1 << bus); } - ISPLOCK_2_CAMLOCK(isp); ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); break; case XPT_GET_TRAN_SETTINGS: cts = &ccb->cts; tgt = cts->ccb_h.target_id; - CAMLOCK_2_ISPLOCK(isp); if (IS_FC(isp)) { #ifndef CAM_NEW_TRAN_CODE /* @@ -2978,7 +2872,6 @@ IS_CURRENT_SETTINGS(cts)? "ACTIVE" : "NVRAM", bus, tgt, cts->ccb_h.target_lun, dval, oval, pval); } - ISPLOCK_2_CAMLOCK(isp); ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); break; @@ -3019,9 +2912,7 @@ #endif case XPT_RESET_BUS: /* Reset the specified bus */ bus = cam_sim_bus(sim); - CAMLOCK_2_ISPLOCK(isp); error = isp_control(isp, ISPCTL_RESET_BUS, &bus); - ISPLOCK_2_CAMLOCK(isp); if (error) ccb->ccb_h.status = CAM_REQ_CMP_ERR; else { @@ -3154,9 +3045,7 @@ "finished command on borrowed time"); } XS_CMD_S_CLEAR(sccb); - ISPLOCK_2_CAMLOCK(isp); xpt_done((union ccb *) sccb); - CAMLOCK_2_ISPLOCK(isp); } } @@ -3192,18 +3081,15 @@ bus = (tgt >> 16) & 0xffff; tgt &= 0xffff; sdp += bus; - ISPLOCK_2_CAMLOCK(isp); if (xpt_create_path(&tmppath, NULL, cam_sim_path(bus? isp->isp_sim2 : isp->isp_sim), tgt, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { - CAMLOCK_2_ISPLOCK(isp); isp_prt(isp, ISP_LOGWARN, "isp_async cannot make temp path for %d.%d", tgt, bus); rv = -1; break; } - CAMLOCK_2_ISPLOCK(isp); flags = sdp->isp_devparam[tgt].actv_flags; #ifdef CAM_NEW_TRAN_CODE cts.type = CTS_TYPE_CURRENT_SETTINGS; @@ -3259,10 +3145,8 @@ bus, tgt, sdp->isp_devparam[tgt].actv_period, sdp->isp_devparam[tgt].actv_offset, flags); xpt_setup_ccb(&cts.ccb_h, tmppath, 1); - ISPLOCK_2_CAMLOCK(isp); xpt_async(AC_TRANSFER_NEG, tmppath, &cts); xpt_free_path(tmppath); - CAMLOCK_2_ISPLOCK(isp); break; } case ISPASYNC_BUS_RESET: @@ -3270,13 +3154,9 @@ isp_prt(isp, ISP_LOGINFO, "SCSI bus reset on bus %d detected", bus); if (bus > 0 && isp->isp_path2) { - ISPLOCK_2_CAMLOCK(isp); xpt_async(AC_BUS_RESET, isp->isp_path2, NULL); - CAMLOCK_2_ISPLOCK(isp); } else if (isp->isp_path) { - ISPLOCK_2_CAMLOCK(isp); xpt_async(AC_BUS_RESET, isp->isp_path, NULL); - CAMLOCK_2_ISPLOCK(isp); } break; case ISPASYNC_LIP: @@ -3486,15 +3366,7 @@ } isp_prt(isp, ISP_LOGINFO, msg); isp_freeze_loopdown(isp, msg); -#if __FreeBSD_version < 500000 wakeup(&isp->isp_osinfo.kproc); -#else -#ifdef ISP_SMPLOCK - cv_signal(&isp->isp_osinfo.kthread_cv); -#else - wakeup(&isp->isp_osinfo.kthread_cv); -#endif -#endif break; } #ifdef ISP_TARGET_MODE ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#12 (text+ko) ==== @@ -84,18 +84,12 @@ #define ISP_SBUS_SUPPORTED 0 #endif -#define HANDLE_LOOPSTATE_IN_OUTER_LAYERS 1 -/* #define ISP_SMPLOCK 1 */ #if __FreeBSD_version < 500000 #define ISP_IFLAGS INTR_TYPE_CAM #else -#ifdef ISP_SMPLOCK -#define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY | INTR_MPSAFE -#else #define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY #endif -#endif #if __FreeBSD_version < 700000 typedef void ispfwfunc(int, int, int, void **); @@ -170,7 +164,6 @@ #if __FreeBSD_version >= 500000 const struct firmware * fw; struct mtx lock; - struct cv kthread_cv; union { struct { char wwnn[17]; @@ -203,27 +196,6 @@ * Locking macros... */ -#ifdef ISP_SMPLOCK -#define ISP_LOCK(x) mtx_lock(&(x)->isp_lock) -#define ISP_UNLOCK(x) mtx_unlock(&(x)->isp_lock) -#define ISPLOCK_2_CAMLOCK(isp) \ - mtx_unlock(&(isp)->isp_lock); mtx_lock(&Giant) -#define CAMLOCK_2_ISPLOCK(isp) \ - mtx_unlock(&Giant); mtx_lock(&(isp)->isp_lock) -#else -#if __FreeBSD_version < 500000 -#define ISP_LOCK(x) do { } while (0) -#define ISP_UNLOCK(x) do { } while (0) -#define ISPLOCK_2_CAMLOCK(isp) do { } while (0) -#define CAMLOCK_2_ISPLOCK(isp) do { } while (0) -#else -#define ISP_LOCK(x) GIANT_REQUIRED -#define ISP_UNLOCK(x) do { } while (0) -#define ISPLOCK_2_CAMLOCK(isp) do { } while (0) -#define CAMLOCK_2_ISPLOCK(isp) GIANT_REQUIRED -#endif -#endif - /* * Required Macros/Defines */ @@ -495,7 +467,7 @@ int isp_mstohz(int); /* - * Platform specific defines + * Platform Version specific defines */ #if __FreeBSD_version < 500000 #define BUS_DMA_ROOTARG(x) NULL @@ -512,6 +484,7 @@ bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \ busdma_lock_mutex, &Giant, z) #endif + #if __FreeBSD_version < 700031 #define isp_setup_intr(d, i, f, U, if, ifa, hp) \ bus_setup_intr(d, i, f, if, ifa, hp) @@ -519,6 +492,15 @@ #define isp_setup_intr bus_setup_intr #endif +#if __FreeBSD_version < 500000 +#define isp_sim_alloc cam_sim_alloc +#elif __FreeBSD_version < 700037 +#define isp_sim_alloc cam_sim_alloc +#else +#define isp_sim_alloc(a, b, c, d, e, f, g, h) \ + cam_sim_alloc(a, b, c, d, e, &Giant, f, g, h) +#endif + /* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */ #define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1) ==== //depot/projects/mjexp/sys/dev/isp/isp_pci.c#22 (text+ko) ==== @@ -1203,29 +1203,24 @@ /* * Make sure we're in reset state. */ - ISP_LOCK(isp); isp_reset(isp); if (isp->isp_state != ISP_RESETSTATE) { - ISP_UNLOCK(isp); goto bad; } isp_init(isp); if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_INITSTATE) { isp_uninit(isp); - ISP_UNLOCK(isp); goto bad; } isp_attach(isp); if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_RUNSTATE) { isp_uninit(isp); - ISP_UNLOCK(isp); goto bad; } /* * XXXX: Here is where we might unload the f/w module * XXXX: (or decrease the reference count to it). */ - ISP_UNLOCK(isp); return (0); @@ -1295,14 +1290,12 @@ uint32_t isr; uint16_t sema, mbox; - ISP_LOCK(isp); isp->isp_intcnt++; if (ISP_READ_ISR(isp, &isr, &sema, &mbox) == 0) { isp->isp_intbogus++; } else { isp_intr(isp, isr, sema, mbox); } - ISP_UNLOCK(isp); } @@ -1771,12 +1764,10 @@ } #endif - ISP_UNLOCK(isp); if (isp_dma_tag_create(BUS_DMA_ROOTARG(pcs->pci_dev), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, &pcs->dmat)) { isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); - ISP_LOCK(isp); return (1); } @@ -1785,7 +1776,6 @@ isp->isp_xflist = (XS_T **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); if (isp->isp_xflist == NULL) { isp_prt(isp, ISP_LOGERR, "cannot alloc xflist array"); - ISP_LOCK(isp); return (1); } #ifdef ISP_TARGET_MODE @@ -1793,7 +1783,6 @@ isp->isp_tgtlist = (void **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); if (isp->isp_tgtlist == NULL) { isp_prt(isp, ISP_LOGERR, "cannot alloc tgtlist array"); - ISP_LOCK(isp); return (1); } #endif @@ -1805,7 +1794,6 @@ #ifdef ISP_TARGET_MODE free(isp->isp_tgtlist, M_DEVBUF); #endif - ISP_LOCK(isp); return (1); } @@ -1832,7 +1820,6 @@ #ifdef ISP_TARGET_MODE free(isp->isp_tgtlist, M_DEVBUF); #endif >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Apr 22 07:02:28 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4A5F016A408; Sun, 22 Apr 2007 07:02:28 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0BBA716A404 for ; Sun, 22 Apr 2007 07:02:28 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id EFF4013C465 for ; Sun, 22 Apr 2007 07:02:27 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3M72RWY040995 for ; Sun, 22 Apr 2007 07:02:27 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3M72RP3040991 for perforce@freebsd.org; Sun, 22 Apr 2007 07:02:27 GMT (envelope-from mjacob@freebsd.org) Date: Sun, 22 Apr 2007 07:02:27 GMT Message-Id: <200704220702.l3M72RP3040991@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118566 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 07:02:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=118566 Change 118566 by mjacob@mjexp on 2007/04/22 07:01:29 Missed a hanging chad from previous rip out of older locking. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#19 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#19 (text+ko) ==== @@ -3517,13 +3517,8 @@ isp->isp_osinfo.mbox_sleep_ok = 0; isp->isp_osinfo.mbox_sleeping = 1; for (olim = 0; olim < max; olim++) { -#if __FreeBSD_version < 500000 || !defined(ISP_SMPLOCK) tsleep(&isp->isp_mbxworkp, PRIBIO, "ispmbx_sleep", isp_mstohz(ms)); -#else - msleep(&isp->isp_mbxworkp, &isp->isp_mtx, PRIBIO, - "ispmbx_sleep", isp_mstohz(ms)); -#endif if (isp->isp_osinfo.mboxcmd_done) { break; } From owner-p4-projects@FreeBSD.ORG Sun Apr 22 12:18:06 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68FCD16A403; Sun, 22 Apr 2007 12:18:06 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3F32916A401 for ; Sun, 22 Apr 2007 12:18:06 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2EFC113C455 for ; Sun, 22 Apr 2007 12:18:06 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MCI6mL004770 for ; Sun, 22 Apr 2007 12:18:06 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MCI5Ib004767 for perforce@freebsd.org; Sun, 22 Apr 2007 12:18:05 GMT (envelope-from lulf@FreeBSD.org) Date: Sun, 22 Apr 2007 12:18:05 GMT Message-Id: <200704221218.l3MCI5Ib004767@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 118578 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 12:18:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=118578 Change 118578 by lulf@lulf_carrot on 2007/04/22 12:17:39 - Integrate from Lukas. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/Makefile.inc1#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/NOTES#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/files#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_raid5.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_raid5.h#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/bios.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/busdma_machdep.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/identcpu.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/include/vmparam.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_intr.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_malloc.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/sched_ule.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_rman.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_witness.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_syscalls.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vfs_mount.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/modules/Makefile#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/interrupt.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/mount.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/priv.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/socket.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_contig.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_param.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sbin/gvinum/gvinum.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_events.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_plex.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_raid5.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_rm.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_state.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/sys/geom/vinum/geom_vinum_var.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_drive.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_init.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_list.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_move.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_plex.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_raid5.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_raid5.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_rename.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_rm.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_share.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_share.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_state.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_subr.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_var.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_kernel/geom_vinum_volume.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/Makefile#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_drive.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_init.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_list.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_move.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_plex.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_raid5.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_raid5.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_rename.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_rm.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_share.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_share.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_state.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_subr.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_var.h#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/geom_vinum_volume.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/gvinum.8#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/gvinum.c#2 delete .. //depot/projects/soc2007/lulf/gvinum_main/vinum_user/gvinum.h#2 delete Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/Makefile.inc1#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.571 2007/04/06 02:13:29 pjd Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.572 2007/04/17 15:52:36 pjd Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -1016,11 +1016,11 @@ ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ - lib/libopie lib/libpam \ + lib/libopie lib/libpam lib/libpthread \ lib/libradius lib/libsbuf lib/libtacplus lib/libutil \ ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ - ${_secure_lib_libssl} lib/libthr + ${_secure_lib_libssl} _generic_libs= ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/NOTES#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1421 2007/04/10 03:09:38 thompsa Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1422 2007/04/17 00:35:10 thompsa Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -813,7 +813,7 @@ options PPP_BSDCOMP #PPP BSD-compress support options PPP_DEFLATE #PPP zlib/deflate/gzip support options PPP_FILTER #enable bpf filtering (needs bpf) -device trunk #Trunk aggregation interface +device lagg #Link aggregation interface device ef # Multiple ethernet frames support options ETHER_II # enable Ethernet_II frame ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/files#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1195 2007/04/10 00:35:31 thompsa Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1196 2007/04/17 00:35:10 thompsa Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1527,7 +1527,7 @@ net/bpf_filter.c optional bpf | netgraph_bpf net/bridgestp.c optional if_bridge net/bsd_comp.c optional ppp_bsdcomp -net/ieee8023ad_lacp.c optional trunk +net/ieee8023ad_lacp.c optional lagg net/if.c standard net/if_arcsubr.c optional arcnet net/if_atmsubr.c optional atm @@ -1544,6 +1544,7 @@ net/if_gif.c optional gif net/if_gre.c optional gre net/if_iso88025subr.c optional token +net/if_lagg.c optional lagg net/if_loop.c optional loop net/if_media.c standard net/if_mib.c standard @@ -1554,7 +1555,6 @@ net/if_stf.c optional stf net/if_tun.c optional tun net/if_tap.c optional tap -net/if_trunk.c optional trunk net/if_vlan.c optional vlan net/netisr.c standard net/ppp_deflate.c optional ppp_deflate ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#3 (text+ko) ==== @@ -45,18 +45,17 @@ struct gv_raid5_packet *); static int gv_normal_parity(struct gv_plex *, struct bio *, struct gv_raid5_packet *); -struct bio * gv_plexbuffer(struct gv_plex *, struct bio *, caddr_t, - off_t, off_t, int *); +static struct bio * gv_plexbuffer(struct gv_plex *, struct bio *, caddr_t, + off_t, off_t, int *); void gv_plex_start(struct gv_plex *p, struct bio *bp) { struct bio *cbp; struct gv_sd *s; - struct gv_raid5_packet *wp, *wp2; - struct gv_bioq *bq, *bq2; + struct gv_raid5_packet *wp; caddr_t addr; - off_t bcount, boff; + off_t bcount, boff, len; int err; bcount = bp->bio_length; @@ -72,75 +71,11 @@ * might involve several read/write sub-requests. */ if (p->org == GV_PLEX_RAID5) { - wp = g_malloc(sizeof(*wp), M_WAITOK | M_ZERO); - wp->bio = bp; - TAILQ_INIT(&wp->bits); - - if (bp->bio_cflags & GV_BIO_REBUILD) - err = gv_rebuild_raid5(p, wp, bp, addr, - boff, bcount); - else if (bp->bio_cflags & GV_BIO_CHECK) - err = gv_check_raid5(p, wp, bp, addr, - boff, bcount); - else - err = gv_raid5_request(p, wp, bp, addr, - boff, bcount); - - /* - * Building the sub-request failed, we probably need to - * clean up a lot. - */ - if (err) { - printf("VINUM: plex request failed for "); - g_print_bio(bp); - printf("\n"); - TAILQ_FOREACH_SAFE(bq, &wp->bits, queue, bq2) { - TAILQ_REMOVE(&wp->bits, bq, queue); - g_free(bq); - } - if (wp->waiting != NULL) { - if (wp->waiting->bio_cflags & - GV_BIO_MALLOC) - g_free(wp->waiting->bio_data); - g_destroy_bio(wp->waiting); - } - if (wp->parity != NULL) { - if (wp->parity->bio_cflags & - GV_BIO_MALLOC) - g_free(wp->parity->bio_data); - g_destroy_bio(wp->parity); - } - g_free(wp); - - TAILQ_FOREACH_SAFE(wp, &p->packets, list, wp2) { - if (wp->bio == bp) { - TAILQ_REMOVE(&p->packets, wp, - list); - TAILQ_FOREACH_SAFE(bq, - &wp->bits, queue, bq2) { - TAILQ_REMOVE(&wp->bits, - bq, queue); - g_free(bq); - } - g_free(wp); - } - } - - cbp = bioq_takefirst(p->bqueue); - while (cbp != NULL) { - if (cbp->bio_cflags & GV_BIO_MALLOC) - g_free(cbp->bio_data); - g_destroy_bio(cbp); - cbp = bioq_takefirst(p->bqueue); - } - - g_io_deliver(bp, err); + wp = gv_raid5_start(p, bp, addr, boff, bcount); + if (wp == NULL) return; - } - bcount -= wp->length; - addr += wp->length; - boff += wp->length; + len = wp->length; if (TAILQ_EMPTY(&wp->bits)) g_free(wp); @@ -163,15 +98,17 @@ return; } + len = cbp->bio_length; + /* * Store the sub-requests now and send them down later. */ bioq_insert_tail(p->bqueue, cbp); + } - bcount -= cbp->bio_length; - addr += cbp->bio_length; - boff += cbp->bio_length; - } + bcount -= len; + addr += len; + boff += len; } /* @@ -199,7 +136,7 @@ } } -struct bio * +static struct bio * gv_plexbuffer(struct gv_plex *p, struct bio *bp, caddr_t addr, off_t boff, off_t bcount, int *err) { struct gv_sd *s; @@ -345,13 +282,13 @@ } TAILQ_FOREACH_SAFE(bq, &wp->bits, queue, bq2) { - if (bq->bp == bp) { - TAILQ_REMOVE(&wp->bits, bq, queue); - g_free(bq); - for (i = 0; i < wp->length; i++) - wp->data[i] ^= bp->bio_data[i]; - break; - } + if (bq->bp != bp) + continue; + TAILQ_REMOVE(&wp->bits, bq, queue); + g_free(bq); + for (i = 0; i < wp->length; i++) + wp->data[i] ^= bp->bio_data[i]; + break; } if (TAILQ_EMPTY(&wp->bits)) { completed = wp->length; @@ -380,17 +317,16 @@ /* Check if we need to handle parity data. */ TAILQ_FOREACH_SAFE(bq, &wp->bits, queue, bq2) { - if (bq->bp == bp) { - TAILQ_REMOVE(&wp->bits, bq, queue); - g_free(bq); - cbp = wp->parity; - if (cbp != NULL) { - for (i = 0; i < wp->length; i++) - cbp->bio_data[i] ^= - bp->bio_data[i]; - } - break; + if (bq->bp != bp) + continue; + TAILQ_REMOVE(&wp->bits, bq, queue); + g_free(bq); + cbp = wp->parity; + if (cbp != NULL) { + for (i = 0; i < wp->length; i++) + cbp->bio_data[i] ^= bp->bio_data[i]; } + break; } /* Handle parity data. */ ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_raid5.c#2 (text+ko) ==== @@ -47,7 +47,83 @@ off_t *, off_t *, int *, int *); static struct bio * gv_raid5_clone_bio(struct bio *, struct gv_sd *, struct gv_raid5_packet *, caddr_t, int); +static int gv_raid5_request(struct gv_plex *, struct gv_raid5_packet *, + struct bio *, caddr_t, off_t, off_t); +static int gv_raid5_check(struct gv_plex *, struct gv_raid5_packet *, + struct bio *, caddr_t, off_t, off_t); +static int gv_raid5_rebuild(struct gv_plex *, struct gv_raid5_packet *, + struct bio *, caddr_t, off_t, off_t); + +struct gv_raid5_packet * +gv_raid5_start(struct gv_plex *p, struct bio *bp, caddr_t addr, off_t boff, + off_t bcount) +{ + struct bio *cbp; + struct gv_raid5_packet *wp, *wp2; + struct gv_bioq *bq, *bq2; + int err; + + wp = g_malloc(sizeof(*wp), M_WAITOK | M_ZERO); + wp->bio = bp; + TAILQ_INIT(&wp->bits); + + if (bp->bio_cflags & GV_BIO_REBUILD) + err = gv_raid5_rebuild(p, wp, bp, addr, boff, bcount); + else if (bp->bio_cflags & GV_BIO_CHECK) + err = gv_raid5_check(p, wp, bp, addr, boff, bcount); + else + err = gv_raid5_request(p, wp, bp, addr, boff, bcount); + + /* + * Building the sub-request failed, we probably need to clean up a lot. + */ + if (err) { + printf("VINUM: plex request failed for "); + g_print_bio(bp); + printf("\n"); + TAILQ_FOREACH_SAFE(bq, &wp->bits, queue, bq2) { + TAILQ_REMOVE(&wp->bits, bq, queue); + g_free(bq); + } + if (wp->waiting != NULL) { + if (wp->waiting->bio_cflags & GV_BIO_MALLOC) + g_free(wp->waiting->bio_data); + g_destroy_bio(wp->waiting); + } + if (wp->parity != NULL) { + if (wp->parity->bio_cflags & GV_BIO_MALLOC) + g_free(wp->parity->bio_data); + g_destroy_bio(wp->parity); + } + g_free(wp); + + TAILQ_FOREACH_SAFE(wp, &p->packets, list, wp2) { + if (wp->bio != bp) + continue; + + TAILQ_REMOVE(&p->packets, wp, list); + TAILQ_FOREACH_SAFE(bq, &wp->bits, queue, bq2) { + TAILQ_REMOVE(&wp->bits, bq, queue); + g_free(bq); + } + g_free(wp); + } + cbp = bioq_takefirst(p->bqueue); + while (cbp != NULL) { + if (cbp->bio_cflags & GV_BIO_MALLOC) + g_free(cbp->bio_data); + g_destroy_bio(cbp); + cbp = bioq_takefirst(p->bqueue); + } + + g_io_deliver(bp, err); + return (NULL); + } + + return (wp); +} + /* * Check if the stripe that the work packet wants is already being used by * some other work packet. @@ -81,8 +157,8 @@ return (overlap); } -int -gv_check_raid5(struct gv_plex *p, struct gv_raid5_packet *wp, struct bio *bp, +static int +gv_raid5_check(struct gv_plex *p, struct gv_raid5_packet *wp, struct bio *bp, caddr_t addr, off_t boff, off_t bcount) { struct gv_sd *parity, *s; @@ -156,8 +232,8 @@ } /* Rebuild a degraded RAID5 plex. */ -int -gv_rebuild_raid5(struct gv_plex *p, struct gv_raid5_packet *wp, struct bio *bp, +static int +gv_raid5_rebuild(struct gv_plex *p, struct gv_raid5_packet *wp, struct bio *bp, caddr_t addr, off_t boff, off_t bcount) { struct gv_sd *broken, *s; @@ -238,7 +314,7 @@ } /* Build a request group to perform (part of) a RAID5 request. */ -int +static int gv_raid5_request(struct gv_plex *p, struct gv_raid5_packet *wp, struct bio *bp, caddr_t addr, off_t boff, off_t bcount) { ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_raid5.h#3 (text+ko) ==== @@ -39,10 +39,6 @@ caddr_t data; /* Data buffer of this sub-request- */ off_t length; /* Size of data buffer. */ off_t lockbase; /* Deny access to our plex offset. */ - off_t offset; /* The drive offset of the subdisk. */ - int bufmalloc; /* Flag if data buffer was malloced. */ - int active; /* Count of active subrequests. */ - int rqcount; /* Count of subrequests. */ struct bio *bio; /* Pointer to the original bio. */ struct bio *parity; /* The bio containing the parity data. */ @@ -52,11 +48,7 @@ TAILQ_ENTRY(gv_raid5_packet) list; /* Entry in plex's packet list. */ }; -int gv_raid5_request(struct gv_plex *, struct gv_raid5_packet *, - struct bio *, caddr_t, off_t, off_t); -int gv_check_raid5(struct gv_plex *, struct gv_raid5_packet *, - struct bio *, caddr_t, off_t, off_t); -int gv_rebuild_raid5(struct gv_plex *, struct gv_raid5_packet *, - struct bio *, caddr_t, off_t, off_t); +struct gv_raid5_packet * gv_raid5_start(struct gv_plex *, struct bio *, + caddr_t, off_t, off_t); #endif /* !_GEOM_VINUM_RAID5_H_ */ ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/bios.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/bios.c,v 1.73 2005/07/21 09:48:36 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/bios.c,v 1.74 2007/04/19 09:18:51 phk Exp $"); /* * Code for dealing with the BIOS in x86 PC systems. @@ -475,7 +475,8 @@ return (i); } -int bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen) +int +bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen) { size_t idx = 0; struct bios_oem_signature *sig; ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/busdma_machdep.c,v 1.85 2007/03/06 18:28:42 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/busdma_machdep.c,v 1.86 2007/04/17 21:05:34 jhb Exp $"); #include #include @@ -51,6 +51,7 @@ #include #include #include +#include #define MAX_BPAGES 512 #define BUS_DMA_COULD_BOUNCE BUS_DMA_BUS3 @@ -530,6 +531,9 @@ } else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) { printf("bus_dmamem_alloc failed to align memory properly.\n"); } + if (flags & BUS_DMA_NOCACHE) + pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, + PAT_UNCACHEABLE); CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (0); @@ -548,6 +552,7 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); + pmap_change_attr((vm_offset_t)vaddr, dmat->maxsize, PAT_WRITE_BACK); if ((dmat->maxsize <= PAGE_SIZE) && (dmat->alignment < dmat->maxsize) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/identcpu.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.176 2007/04/06 18:15:02 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.177 2007/04/18 10:08:24 phk Exp $"); #include "opt_cpu.h" @@ -386,6 +386,14 @@ case 0x590: strcat(cpu_model, "K6-III"); break; + case 0x5a0: + strcat(cpu_model, "Geode LX"); + /* + * Make sure the TSC runs through suspension, + * otherwise we can't use it as timecounter + */ + wrmsr(0x1900, rdmsr(0x1900) | 0x20ULL); + break; default: strcat(cpu_model, "Unknown"); break; ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/include/vmparam.h#2 (text+ko) ==== @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/i386/include/vmparam.h,v 1.40 2007/04/06 18:15:03 ru Exp $ + * $FreeBSD: src/sys/i386/include/vmparam.h,v 1.41 2007/04/21 01:14:48 sepotvin Exp $ */ @@ -117,7 +117,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_intr.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.142 2007/03/02 17:01:45 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.143 2007/04/19 01:24:32 njl Exp $"); #include "opt_ddb.h" @@ -83,7 +83,7 @@ static MALLOC_DEFINE(M_ITHREAD, "ithread", "Interrupt Threads"); -static int intr_storm_threshold = 500; +static int intr_storm_threshold = 1000; TUNABLE_INT("hw.intr_storm_threshold", &intr_storm_threshold); SYSCTL_INT(_hw, OID_AUTO, intr_storm_threshold, CTLFLAG_RW, &intr_storm_threshold, 0, @@ -698,11 +698,11 @@ */ if (intr_storm_threshold != 0 && ie->ie_count >= intr_storm_threshold && !(ie->ie_flags & IE_SOFT)) { - if (ie->ie_warned == 0) { + /* Report the message only once every second. */ + if (ppsratecheck(&ie->ie_warntm, &ie->ie_warncnt, 1)) { printf( - "Interrupt storm detected on \"%s\"; throttling interrupt source\n", + "interrupt storm detected on \"%s\"; throttling interrupt source\n", ie->ie_name); - ie->ie_warned = 1; } pause("istorm", 1); } else ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_malloc.c#2 (text+ko) ==== @@ -43,7 +43,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_malloc.c,v 1.156 2006/10/26 10:17:13 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_malloc.c,v 1.157 2007/04/21 01:14:48 sepotvin Exp $"); #include "opt_ddb.h" #include "opt_vm.h" @@ -178,6 +178,10 @@ SYSCTL_UINT(_vm, OID_AUTO, kmem_size, CTLFLAG_RD, &vm_kmem_size, 0, "Size of kernel memory"); +u_int vm_kmem_size_min; +SYSCTL_UINT(_vm, OID_AUTO, kmem_size_min, CTLFLAG_RD, &vm_kmem_size_min, 0, + "Minimum size of kernel memory"); + u_int vm_kmem_size_max; SYSCTL_UINT(_vm, OID_AUTO, kmem_size_max, CTLFLAG_RD, &vm_kmem_size_max, 0, "Maximum size of kernel memory"); @@ -557,6 +561,14 @@ (mem_size / vm_kmem_size_scale) > (vm_kmem_size / PAGE_SIZE)) vm_kmem_size = (mem_size / vm_kmem_size_scale) * PAGE_SIZE; +#if defined(VM_KMEM_SIZE_MIN) + vm_kmem_size_min = VM_KMEM_SIZE_MIN; +#endif + TUNABLE_INT_FETCH("vm.kmem_size_min", &vm_kmem_size_min); + if (vm_kmem_size_min > 0 && vm_kmem_size < vm_kmem_size_min) { + vm_kmem_size = vm_kmem_size_min; + } + #if defined(VM_KMEM_SIZE_MAX) vm_kmem_size_max = VM_KMEM_SIZE_MAX; #endif ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/sched_ule.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.191 2007/03/17 23:32:48 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_ule.c,v 1.192 2007/04/20 05:45:46 kmacy Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h" @@ -1859,8 +1859,7 @@ CTR2(KTR_ULE, "ithd %d < %d", td->td_priority, PRI_MAX_ITHD); ts->ts_cpu = cpuid; - } - if (pick_pri) + } else if (pick_pri) ts->ts_cpu = tdq_pickpri(tdq, ts, flags); else ts->ts_cpu = tdq_pickidle(tdq, ts); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_rman.c#2 (text+ko) ==== @@ -55,8 +55,10 @@ * permitted. */ +#include "opt_ddb.h" + #include -__FBSDID("$FreeBSD: src/sys/kern/subr_rman.c,v 1.55 2007/02/23 22:53:56 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_rman.c,v 1.56 2007/04/16 21:09:03 jhb Exp $"); #include #include @@ -70,6 +72,10 @@ #include #include +#ifdef DDB +#include +#endif + /* * We use a linked list rather than a bitmap because we need to be able to * represent potentially huge objects (like all of a processor's physical @@ -911,3 +917,47 @@ SYSCTL_NODE(_hw_bus, OID_AUTO, rman, CTLFLAG_RD, sysctl_rman, "kernel resource manager"); + +#ifdef DDB +static void +dump_rman(struct rman *rm) +{ + struct resource_i *r; + const char *devname; + + if (db_pager_quit) + return; + db_printf("rman: %s\n", rm->rm_descr); + db_printf(" 0x%lx-0x%lx (full range)\n", rm->rm_start, rm->rm_end); + TAILQ_FOREACH(r, &rm->rm_list, r_link) { + if (r->r_dev != NULL) { + devname = device_get_nameunit(r->r_dev); + if (devname == NULL) + devname = "nomatch"; + } else + devname = NULL; + db_printf(" 0x%lx-0x%lx ", r->r_start, r->r_end); + if (devname != NULL) + db_printf("(%s)\n", devname); + else + db_printf("----\n"); + if (db_pager_quit) + return; + } +} + +DB_SHOW_COMMAND(rman, db_show_rman) +{ + + if (have_addr) + dump_rman((struct rman *)addr); +} + +DB_SHOW_COMMAND(allrman, db_show_all_rman) +{ + struct rman *rm; + + TAILQ_FOREACH(rm, &rman_head, rm_link) + dump_rman(rm); +} +#endif ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_witness.c#2 (text+ko) ==== @@ -82,9 +82,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.229 2007/04/05 23:32:32 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.230 2007/04/19 08:02:51 jkoshy Exp $"); #include "opt_ddb.h" +#include "opt_hwpmc_hooks.h" #include "opt_witness.h" #include @@ -289,6 +290,9 @@ { "session", &lock_class_mtx_sleep }, { "uidinfo hash", &lock_class_mtx_sleep }, { "uidinfo struct", &lock_class_mtx_sleep }, +#ifdef HWPMC_HOOKS + { "pmc-sleep", &lock_class_mtx_sleep }, +#endif { NULL, NULL }, /* * Sockets @@ -396,6 +400,9 @@ { "zstty", &lock_class_mtx_spin }, { "fast_taskqueue", &lock_class_mtx_spin }, { "intr table", &lock_class_mtx_spin }, +#ifdef HWPMC_HOOKS + { "pmc-per-proc", &lock_class_mtx_spin }, +#endif { "sleepq chain", &lock_class_mtx_spin }, { "sched lock", &lock_class_mtx_spin }, { "turnstile chain", &lock_class_mtx_spin }, @@ -434,6 +441,9 @@ { "tw_cl_io_lock", &lock_class_mtx_spin }, { "tw_cl_intr_lock", &lock_class_mtx_spin }, { "tw_cl_gen_lock", &lock_class_mtx_spin }, +#ifdef HWPMC_HOOKS + { "pmc-leaf", &lock_class_mtx_spin }, +#endif { NULL, NULL }, { NULL, NULL } }; ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_syscalls.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.251 2007/04/06 23:31:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.253 2007/04/20 19:49:20 pjd Exp $"); #include "opt_sctp.h" #include "opt_compat.h" @@ -2016,12 +2016,12 @@ */ pgoff = (vm_offset_t)(off & PAGE_MASK); xfsize = omin(PAGE_SIZE - pgoff, - obj->un_pager.vnp.vnp_size - off - + obj->un_pager.vnp.vnp_size - uap->offset - sbytes - loopbytes); if (uap->nbytes) rem = (uap->nbytes - sbytes - loopbytes); else - rem = obj->un_pager.vnp.vnp_size - off - + rem = obj->un_pager.vnp.vnp_size - uap->offset - sbytes - loopbytes; xfsize = omin(rem, xfsize); if (xfsize <= 0) { @@ -2038,35 +2038,15 @@ VM_OBJECT_UNLOCK(obj); break; } -retry_lookup: + /* * Attempt to look up the page. * Allocate if not found or * wait and loop if busy. */ pindex = OFF_TO_IDX(off); - pg = vm_page_lookup(obj, pindex); - if (pg == NULL) { - pg = vm_page_alloc(obj, pindex, - VM_ALLOC_NOBUSY | VM_ALLOC_NORMAL | - VM_ALLOC_WIRED); - if (pg == NULL) { - VM_OBJECT_UNLOCK(obj); - VM_WAIT; - VM_OBJECT_LOCK(obj); - goto retry_lookup; - } - } else if (vm_page_sleep_if_busy(pg, TRUE, "sfpbsy")) - goto retry_lookup; - else { - /* - * Wire the page so it does not get - * ripped out from under us. - */ - vm_page_lock_queues(); - vm_page_wire(pg); - vm_page_unlock_queues(); - } + pg = vm_page_grab(obj, pindex, VM_ALLOC_NOBUSY | + VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_RETRY); /* * Check if page is valid for what we need, ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vfs_mount.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.257 2007/04/13 23:54:22 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.258 2007/04/17 21:14:06 pjd Exp $"); #include #include @@ -80,8 +80,6 @@ static int vfs_domount(struct thread *td, const char *fstype, char *fspath, int fsflags, void *fsdata); -static struct mount *vfs_mount_alloc(struct vnode *dvp, struct vfsconf *vfsp, - const char *fspath, struct thread *td); static int vfs_mountroot_ask(void); static int vfs_mountroot_try(const char *mountfrom); static int vfs_donmount(struct thread *td, int fsflags, @@ -465,7 +463,7 @@ /* * Allocate and initialize the mount point struct. */ -static struct mount * +struct mount * vfs_mount_alloc(struct vnode *vp, struct vfsconf *vfsp, const char *fspath, struct thread *td) { ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/modules/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/modules/Makefile,v 1.527 2007/04/10 00:41:31 thompsa Exp $ +# $FreeBSD: src/sys/modules/Makefile,v 1.528 2007/04/17 00:35:10 thompsa Exp $ .include @@ -108,12 +108,12 @@ if_faith \ if_gif \ if_gre \ + if_lagg \ ${_if_ndis} \ if_ppp \ if_sl \ if_stf \ if_tap \ - if_trunk \ if_tun \ if_vlan \ ${_iir} \ ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/interrupt.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/interrupt.h,v 1.35 2007/02/23 12:19:07 piso Exp $ + * $FreeBSD: src/sys/sys/interrupt.h,v 1.36 2007/04/19 01:24:32 njl Exp $ */ #ifndef _SYS_INTERRUPT_H_ @@ -74,7 +74,8 @@ void (*ie_enable)(void *); int ie_flags; int ie_count; /* Loop counter. */ - int ie_warned; /* Warned about interrupt storm. */ + int ie_warncnt; /* Rate-check interrupt storm warns. */ + struct timeval ie_warntm; }; /* Interrupt event flags kept in ie_flags. */ ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/mount.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)mount.h 8.21 (Berkeley) 5/20/95 - * $FreeBSD: src/sys/sys/mount.h,v 1.224 2007/04/05 21:03:05 pjd Exp $ + * $FreeBSD: src/sys/sys/mount.h,v 1.225 2007/04/17 21:14:05 pjd Exp $ */ #ifndef _SYS_MOUNT_H_ @@ -682,6 +682,8 @@ void vfs_mountedfrom(struct mount *, const char *from); void vfs_ref(struct mount *); void vfs_rel(struct mount *); +struct mount *vfs_mount_alloc(struct vnode *, struct vfsconf *, const char *, + struct thread *); int vfs_suser(struct mount *, struct thread *); void vfs_unbusy(struct mount *, struct thread *); void vfs_unmountall(void); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/priv.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/priv.h,v 1.10 2007/04/10 15:58:38 rwatson Exp $ + * $FreeBSD: src/sys/sys/priv.h,v 1.11 2007/04/17 00:35:10 thompsa Exp $ */ /* @@ -319,7 +319,7 @@ #define PRIV_NET_IFDESTROY 412 /* Destroy cloned interface. */ #define PRIV_NET_ADDIFADDR 413 /* Add protocol addr to interface. */ #define PRIV_NET_DELIFADDR 414 /* Delete protocol addr on interface. */ -#define PRIV_NET_TRUNK 415 /* Administer trunk. */ +#define PRIV_NET_LAGG 415 /* Administer lagg interface. */ /* * 802.11-related privileges. ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/socket.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)socket.h 8.4 (Berkeley) 2/21/94 - * $FreeBSD: src/sys/sys/socket.h,v 1.92 2006/11/03 15:23:16 rrs Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Apr 22 14:53:42 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68C4416A414; Sun, 22 Apr 2007 14:53:42 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2572616A412 for ; Sun, 22 Apr 2007 14:53:42 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1466B13C4C1 for ; Sun, 22 Apr 2007 14:53:42 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MErfKJ043312 for ; Sun, 22 Apr 2007 14:53:41 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MErdaj043307 for perforce@freebsd.org; Sun, 22 Apr 2007 14:53:39 GMT (envelope-from gonzo@FreeBSD.org) Date: Sun, 22 Apr 2007 14:53:39 GMT Message-Id: <200704221453.l3MErdaj043307@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 118588 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 14:53:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=118588 Change 118588 by gonzo@gonzo_jeeves on 2007/04/22 14:52:59 IFC Affected files ... .. //depot/projects/mips2/src/ObsoleteFiles.inc#5 integrate .. //depot/projects/mips2/src/UPDATING#5 integrate .. //depot/projects/mips2/src/compat/opensolaris/misc/fsshare.c#2 integrate .. //depot/projects/mips2/src/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/mips2/src/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 integrate .. //depot/projects/mips2/src/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 integrate .. //depot/projects/mips2/src/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#2 integrate .. //depot/projects/mips2/src/contrib/top/top.c#3 integrate .. //depot/projects/mips2/src/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 integrate .. //depot/projects/mips2/src/lib/libc/net/rthdr.c#2 integrate .. //depot/projects/mips2/src/lib/libc/stdio/fputs.3#3 integrate .. //depot/projects/mips2/src/libexec/ftpd/ftpd.8#3 integrate .. //depot/projects/mips2/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#3 integrate .. //depot/projects/mips2/src/sbin/fdisk_pc98/fdisk.8#3 integrate .. //depot/projects/mips2/src/sbin/fdisk_pc98/fdisk.c#2 integrate .. //depot/projects/mips2/src/sbin/ping6/ping6.c#2 integrate .. //depot/projects/mips2/src/share/man/man4/Makefile#5 integrate .. //depot/projects/mips2/src/share/man/man4/sbsh.4#2 integrate .. //depot/projects/mips2/src/share/man/man4/worm.4#2 delete .. //depot/projects/mips2/src/share/man/man8/nanobsd.8#2 integrate .. //depot/projects/mips2/src/share/man/man9/pseudofs.9#2 integrate .. //depot/projects/mips2/src/share/misc/committers-ports.dot#3 integrate .. //depot/projects/mips2/src/share/misc/committers-src.dot#3 integrate .. //depot/projects/mips2/src/sys/amd64/amd64/pmap.c#7 integrate .. //depot/projects/mips2/src/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/mips2/src/sys/bsm/audit.h#3 integrate .. //depot/projects/mips2/src/sys/bsm/audit_internal.h#3 integrate .. //depot/projects/mips2/src/sys/bsm/audit_kevents.h#4 integrate .. //depot/projects/mips2/src/sys/bsm/audit_record.h#4 integrate .. //depot/projects/mips2/src/sys/cam/cam_periph.c#4 integrate .. //depot/projects/mips2/src/sys/cam/cam_periph.h#3 integrate .. //depot/projects/mips2/src/sys/cam/cam_sim.c#3 integrate .. //depot/projects/mips2/src/sys/cam/cam_sim.h#3 integrate .. //depot/projects/mips2/src/sys/cam/cam_xpt.c#4 integrate .. //depot/projects/mips2/src/sys/cam/scsi/scsi_da.c#5 integrate .. //depot/projects/mips2/src/sys/cam/scsi/scsi_pt.c#4 integrate .. //depot/projects/mips2/src/sys/cam/scsi/scsi_sa.c#4 integrate .. //depot/projects/mips2/src/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/mips2/src/sys/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate .. //depot/projects/mips2/src/sys/conf/files#5 integrate .. //depot/projects/mips2/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate .. //depot/projects/mips2/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/mips2/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/mips2/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic79xx.c#3 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic79xx.h#4 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic7xxx.c#3 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic7xxx.h#3 integrate .. //depot/projects/mips2/src/sys/dev/aic7xxx/aic7xxx_inline.h#2 integrate .. //depot/projects/mips2/src/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/mips2/src/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/mips2/src/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/mips2/src/sys/dev/ral/rt2560.c#4 integrate .. //depot/projects/mips2/src/sys/dev/sound/pci/envy24.c#3 integrate .. //depot/projects/mips2/src/sys/dev/sound/pci/envy24ht.c#2 integrate .. //depot/projects/mips2/src/sys/dev/sound/pcm/ac97.c#3 integrate .. //depot/projects/mips2/src/sys/dev/sound/pcm/ac97.h#3 integrate .. //depot/projects/mips2/src/sys/dev/sound/pcm/ac97_patch.c#3 integrate .. //depot/projects/mips2/src/sys/dev/sound/pcm/ac97_patch.h#3 integrate .. //depot/projects/mips2/src/sys/dev/usb/if_ural.c#4 integrate .. //depot/projects/mips2/src/sys/dev/wi/if_wi.c#3 integrate .. //depot/projects/mips2/src/sys/fs/devfs/devfs_vnops.c#5 integrate .. //depot/projects/mips2/src/sys/i386/i386/pmap.c#6 integrate .. //depot/projects/mips2/src/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/mips2/src/sys/ia64/include/vmparam.h#3 integrate .. //depot/projects/mips2/src/sys/kern/kern_malloc.c#4 integrate .. //depot/projects/mips2/src/sys/kern/sched_ule.c#3 integrate .. //depot/projects/mips2/src/sys/kern/uipc_syscalls.c#5 integrate .. //depot/projects/mips2/src/sys/netgraph/ng_ppp.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp.h#2 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_indata.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_indata.h#2 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_input.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_lock_bsd.h#2 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_output.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_pcb.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_pcb.h#2 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_structs.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_uio.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_usrreq.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctp_var.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctputil.c#3 integrate .. //depot/projects/mips2/src/sys/netinet/sctputil.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/tcp.h#3 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_input.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_output.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_syncache.c#4 integrate .. //depot/projects/mips2/src/sys/netinet/tcp_var.h#4 integrate .. //depot/projects/mips2/src/sys/netinet6/in6_pcb.c#4 integrate .. //depot/projects/mips2/src/sys/nfsclient/nfs_lock.c#3 integrate .. //depot/projects/mips2/src/sys/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/mips2/src/sys/pci/if_vr.c#4 integrate .. //depot/projects/mips2/src/sys/pci/if_vrreg.h#4 integrate .. //depot/projects/mips2/src/sys/pci/intpm.c#3 integrate .. //depot/projects/mips2/src/sys/powerpc/powerpc/nexus.c#3 integrate .. //depot/projects/mips2/src/sys/security/audit/audit_syscalls.c#4 integrate .. //depot/projects/mips2/src/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/mips2/src/sys/security/mac/mac_framework.h#2 integrate .. //depot/projects/mips2/src/sys/security/mac/mac_policy.h#2 integrate .. //depot/projects/mips2/src/sys/security/mac_biba/mac_biba.c#4 integrate .. //depot/projects/mips2/src/sys/security/mac_bsdextended/mac_bsdextended.c#3 integrate .. //depot/projects/mips2/src/sys/security/mac_lomac/mac_lomac.c#3 integrate .. //depot/projects/mips2/src/sys/security/mac_mls/mac_mls.c#3 integrate .. //depot/projects/mips2/src/sys/security/mac_stub/mac_stub.c#3 integrate .. //depot/projects/mips2/src/sys/security/mac_test/mac_test.c#3 integrate .. //depot/projects/mips2/src/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/mips2/src/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/mips2/src/sys/sys/priv.h#3 integrate .. //depot/projects/mips2/src/sys/sys/socket.h#4 integrate .. //depot/projects/mips2/src/tools/regression/netinet6/inet6_rth/Makefile#1 branch .. //depot/projects/mips2/src/tools/regression/netinet6/inet6_rth/inet6_rth-segments.c#1 branch .. //depot/projects/mips2/src/tools/regression/netinet6/inet6_rth/test_subr.c#1 branch .. //depot/projects/mips2/src/tools/regression/netinet6/inet6_rth/test_subr.h#1 branch .. //depot/projects/mips2/src/tools/regression/sockets/sendfile/Makefile#3 integrate .. //depot/projects/mips2/src/tools/regression/sockets/sendfile/sendfile.c#3 integrate .. //depot/projects/mips2/src/tools/regression/usr.bin/sed/regress.sh#3 integrate .. //depot/projects/mips2/src/tools/sched/schedgraph.py#3 integrate .. //depot/projects/mips2/src/tools/tools/nanobsd/nanobsd.sh#4 integrate .. //depot/projects/mips2/src/usr.bin/make/GNode.h#2 integrate .. //depot/projects/mips2/src/usr.bin/make/main.c#4 integrate .. //depot/projects/mips2/src/usr.bin/make/make.c#2 integrate .. //depot/projects/mips2/src/usr.bin/make/targ.c#2 integrate .. //depot/projects/mips2/src/usr.bin/sed/extern.h#2 integrate .. //depot/projects/mips2/src/usr.bin/sed/main.c#2 integrate .. //depot/projects/mips2/src/usr.bin/sed/process.c#3 integrate .. //depot/projects/mips2/src/usr.bin/sed/sed.1#2 integrate .. //depot/projects/mips2/src/usr.sbin/daemon/daemon.c#3 integrate .. //depot/projects/mips2/src/usr.sbin/pmcstat/pmcstat.c#3 integrate Differences ... ==== //depot/projects/mips2/src/ObsoleteFiles.inc#5 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.79 2007/04/17 01:02:55 thompsa Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070421: worm.4 removed +OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) OLD_FILES+=usr/include/net/if_trunk.h # 20070409: uuidgen moved to /bin/ ==== //depot/projects/mips2/src/UPDATING#5 (text+ko) ==== @@ -21,17 +21,6 @@ developers choose to disable these features on build machines to maximize performance. -20070418: - A new acct(5) format is imminent. If you want to maintain access - to your accounting files, use the new lastcomm(1) -X functionality to - export them into text format, and keep around a copy of the lastcomm - binary. An updated lastcomm(1) program will allow you to import - the text files into the new acct(5) format. The change will also - invalidate the condensed summary files /var/account/savacct and - /var/account/usracct. If your process accounting system relies - on them, you will need to save their contents in a readable format - before the switch. - 20070417: The new trunk(4) driver has been renamed to lagg(4) as it better reflects its purpose. ifconfig will need to be recompiled. @@ -778,4 +767,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.487 2007/04/18 17:34:59 dds Exp $ +$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ ==== //depot/projects/mips2/src/compat/opensolaris/misc/fsshare.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.1 2007/04/06 01:08:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.2 2007/04/21 13:17:23 pjd Exp $"); #include #include @@ -99,21 +99,30 @@ /* * Function translate options to a format acceptable by exports(5), eg. * - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org 69.147.83.54 * * Accepted input formats: * - * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0 - * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 - * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0 - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org + * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org + * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org + * + * Recognized keywords: + * + * ro, maproot, mapall, mask, network, alldirs, public, webnfs, index, quiet + * */ +static const char *known_opts[] = { "ro", "maproot", "mapall", "mask", + "network", "alldirs", "public", "webnfs", "index", "quiet", NULL }; static char * translate_opts(const char *shareopts) { static char newopts[OPTSSIZE]; - char oldopts[OPTSSIZE], opt[64]; + char oldopts[OPTSSIZE]; char *o, *s = NULL; + unsigned int i; + size_t len; strlcpy(oldopts, shareopts, sizeof(oldopts)); newopts[0] = '\0'; @@ -121,8 +130,16 @@ while ((o = strsep(&s, "-, ")) != NULL) { if (o[0] == '\0') continue; - snprintf(opt, sizeof(opt), "-%s ", o); - strlcat(newopts, opt, sizeof(newopts)); + for (i = 0; known_opts[i] != NULL; i++) { + len = strlen(known_opts[i]); + if (strncmp(known_opts[i], o, len) == 0 && + (o[len] == '\0' || o[len] == '=')) { + strlcat(newopts, "-", sizeof(newopts)); + break; + } + } + strlcat(newopts, o, sizeof(newopts)); + strlcat(newopts, " ", sizeof(newopts)); } return (newopts); } ==== //depot/projects/mips2/src/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -932,11 +932,11 @@ if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (K=%s)", - zio_checksum_table[doi.doi_checksum].ci_name); + zio_checksum_table[doi.doi_checksum].ci_name); if (doi.doi_compress != ZIO_COMPRESS_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (Z=%s)", - zio_compress_table[doi.doi_compress].ci_name); + zio_compress_table[doi.doi_compress].ci_name); (void) printf("%10lld %3u %5s %5s %5s %5s %s%s\n", (u_longlong_t)object, doi.doi_indirection, iblk, dblk, lsize, @@ -1441,7 +1441,7 @@ (u_longlong_t)zb->zb_objset, (u_longlong_t)zb->zb_object, (u_longlong_t)blkid2offset(bc->bc_dnode, - zb->zb_level, zb->zb_blkid), + zb->zb_level, zb->zb_blkid), blkbuf); } @@ -1951,8 +1951,8 @@ spa_close(spa, (void *)zdb_read_block); error = spa_open(spa_name, spap, (void *)zdb_read_block); if (error) - fatal("Failed to open pool '%s': errno = %d\n", - spa_name, error); + fatal("Failed to open pool '%s': %s", + spa_name, strerror(error)); spa = *spap; } @@ -2156,7 +2156,7 @@ } if (error) - fatal("can't open %s: error %d", argv[0], error); + fatal("can't open %s: %s", argv[0], strerror(error)); argv++; if (--argc > 0) { ==== //depot/projects/mips2/src/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 (text+ko) ==== @@ -339,22 +339,15 @@ changelist_free(prop_changelist_t *clp) { prop_changenode_t *cn; - uu_list_walk_t *walk; + void *cookie; if (clp->cl_list) { - verify((walk = uu_list_walk_start(clp->cl_list, - UU_WALK_ROBUST)) != NULL); - - while ((cn = uu_list_walk_next(walk)) != NULL) { - - uu_list_remove(clp->cl_list, cn); - + cookie = NULL; + while ((cn = uu_list_teardown(clp->cl_list, &cookie)) != NULL) { zfs_close(cn->cn_handle); free(cn); } - uu_list_walk_end(walk); - uu_list_destroy(clp->cl_list); } if (clp->cl_pool) @@ -418,7 +411,7 @@ } else { ASSERT(!clp->cl_alldependents); verify(uu_list_insert_before(clp->cl_list, - uu_list_first(clp->cl_list), cn) == 0); + uu_list_first(clp->cl_list), cn) == 0); } if (!clp->cl_alldependents) ==== //depot/projects/mips2/src/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 (text+ko) ==== @@ -74,22 +74,16 @@ namespace_clear(libzfs_handle_t *hdl) { if (hdl->libzfs_ns_avl) { - uu_avl_walk_t *walk; config_node_t *cn; + void *cookie = NULL; - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) - return; - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, + &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - uu_avl_destroy(hdl->libzfs_ns_avl); hdl->libzfs_ns_avl = NULL; } @@ -110,7 +104,7 @@ config_node_t *cn; nvpair_t *elem; zfs_cmd_t zc = { 0 }; - uu_avl_walk_t *walk; + void *cookie; if (hdl->libzfs_ns_gen == 0) { /* @@ -172,21 +166,13 @@ /* * Clear out any existing configuration information. */ - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) { - nvlist_free(config); - return (no_memory(hdl)); - } - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + cookie = NULL; + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - elem = NULL; while ((elem = nvlist_next_nvpair(config, elem)) != NULL) { nvlist_t *child; @@ -222,7 +208,7 @@ } /* - * Retrive the configuration for the given pool. The configuration is a nvlist + * Retrieve the configuration for the given pool. The configuration is a nvlist * describing the vdevs, as well as the statistics associated with each one. */ nvlist_t * ==== //depot/projects/mips2/src/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#2 (text+ko) ==== @@ -220,7 +220,7 @@ &state) == 0 && state == POOL_STATE_SPARE && nvlist_lookup_uint64(config, ZPOOL_CONFIG_GUID, &vdev_guid) == 0) { if ((ne = zfs_alloc(hdl, sizeof (name_entry_t))) == NULL) - return (-1); + return (-1); if ((ne->ne_name = zfs_strdup(hdl, path)) == NULL) { free(ne); @@ -748,7 +748,6 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv) { int i; - DIR *dirp; char path[MAXPATHLEN]; nvlist_t *ret = NULL, *config; int fd; @@ -824,7 +823,6 @@ free(ne); } - return (ret); } ==== //depot/projects/mips2/src/contrib/top/top.c#3 (text+ko) ==== @@ -13,7 +13,7 @@ * Copyright (c) 1994, 1995, William LeFebvre, Argonne National Laboratory * Copyright (c) 1996, William LeFebvre, Group sys Consulting * - * $FreeBSD: src/contrib/top/top.c,v 1.21 2007/04/17 03:12:39 rafan Exp $ + * $FreeBSD: src/contrib/top/top.c,v 1.22 2007/04/19 14:24:54 rafan Exp $ */ /* @@ -410,7 +410,7 @@ default: fprintf(stderr, "Top version %s\n" -"Usage: %s [-bCHIinqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" +"Usage: %s [-abCHIijnqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" " [-U username] [number]\n", version_string(), myname); exit(1); ==== //depot/projects/mips2/src/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.1 2007/03/03 07:37:36 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.2 2007/04/20 15:32:13 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include @@ -72,6 +72,7 @@ id_t id; }; +static const size_t cache_size = 127; static unsigned int hash(const char *); static gid_t lookup_gid(void *, const char *uname, gid_t); static uid_t lookup_uid(void *, const char *uname, uid_t); @@ -99,10 +100,10 @@ int archive_write_disk_set_standard_lookup(struct archive *a) { - struct bucket *ucache = malloc(sizeof(struct bucket[127])); - struct bucket *gcache = malloc(sizeof(struct bucket[127])); - memset(ucache, 0, sizeof(struct bucket[127])); - memset(gcache, 0, sizeof(struct bucket[127])); + struct bucket *ucache = malloc(sizeof(struct bucket[cache_size])); + struct bucket *gcache = malloc(sizeof(struct bucket[cache_size])); + memset(ucache, 0, sizeof(struct bucket[cache_size])); + memset(gcache, 0, sizeof(struct bucket[cache_size])); archive_write_disk_set_group_lookup(a, gcache, lookup_gid, cleanup); archive_write_disk_set_user_lookup(a, ucache, lookup_uid, cleanup); return (ARCHIVE_OK); @@ -113,11 +114,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *gcache = (struct bucket *)private_data; - cache_size = 127; - /* If no gname, just use the gid provided. */ if (gname == NULL || *gname == '\0') return (gid); @@ -153,11 +151,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *ucache = (struct bucket *)private_data; - cache_size = 127; - /* If no uname, just use the uid provided. */ if (uname == NULL || *uname == '\0') return (uid); @@ -191,7 +186,12 @@ static void cleanup(void *private) { - free(private); + size_t i; + struct bucket *cache = (struct bucket *)private; + + for (i = 0; i < cache_size; i++) + free(cache[i].name); + free(cache); } ==== //depot/projects/mips2/src/lib/libc/net/rthdr.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.8 2005/07/19 18:13:58 ume Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.9 2007/04/19 15:48:16 mtm Exp $"); #include #include @@ -292,7 +292,9 @@ { switch (type) { case IPV6_RTHDR_TYPE_0: - return (((segments * 2) + 1) << 3); + if ((segments >= 0) && (segments <= 127)) + return (((segments * 2) + 1) << 3); + /* FALLTHROUGH */ default: return (0); /* type not suppported */ } @@ -309,6 +311,9 @@ /* length validation */ if (bp_len < inet6_rth_space(IPV6_RTHDR_TYPE_0, segments)) return (NULL); + /* segment validation */ + if ((segments < 0) || (segments > 127)) + return (NULL); memset(bp, 0, bp_len); rth0 = (struct ip6_rthdr0 *)rth; @@ -334,6 +339,9 @@ switch (rth->ip6r_type) { case IPV6_RTHDR_TYPE_0: rth0 = (struct ip6_rthdr0 *)rth; + /* Don't exceed the number of stated segments */ + if (rth0->ip6r0_segleft == (rth0->ip6r0_len / 2)) + return (-1); nextaddr = (struct in6_addr *)(rth0 + 1) + rth0->ip6r0_segleft; *nextaddr = *addr; rth0->ip6r0_segleft++; ==== //depot/projects/mips2/src/lib/libc/stdio/fputs.3#3 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)fputs.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.12 2007/01/09 00:28:06 imp Exp $ +.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.14 2007/04/19 14:01:04 phk Exp $ .\" .Dd June 4, 1993 .Dt FPUTS 3 @@ -66,14 +66,11 @@ to the stream .Dv stdout . .Sh RETURN VALUES -The +The functions .Fn fputs -function -returns 0 on success and -.Dv EOF -on error; +and .Fn puts -returns a nonnegative integer on success and +return a nonnegative integer on success and .Dv EOF on error. .Sh ERRORS ==== //depot/projects/mips2/src/libexec/ftpd/ftpd.8#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 -.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.72 2007/04/18 22:43:39 yar Exp $ +.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.74 2007/04/20 09:08:20 trhodes Exp $ .\" -.Dd January 21, 2006 +.Dd April 20, 2007 .Dt FTPD 8 .Os .Sh NAME @@ -79,20 +79,19 @@ .Dv AF_INET6 socket. .It Fl 8 -The server is running in transparent UTF-8 mode. -That is, it just encourages RFC\ 2640 compliant clients to send -paths encoded in UTF-8 in their commands. -In particular, the names of files uploaded by such clients will -have UTF-8 encoding. -The clients will also assume that server replies and existing file -names have UTF-8 encoding, too. -The names of files preloaded to the server should meet this expectation -for the clients to present the correct file names to their users. -Own messages of +Enable transparent UTF-8 mode. +RFC\ 2640 compliant clients will be told that the character encoding +used by the server is UTF-8, which is the only effect of the option. +.Pp +This option does not enable any encoding conversion for server file names; +it implies instead that the names of files on the server are encoded +in UTF-8. +As for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant +client to convert their names from the client's local encoding to UTF-8. +FTP command names and own .Nm -are always encoded in ASCII, which in fact is a subset of UTF-8. -.Pp -Note that this option does not make the server do any encoding conversion. +messages are always encoded in ASCII, which is a subset of UTF-8. +Hence no need for server-side conversion at all. .It Fl A Allow only anonymous ftp access. .It Fl a @@ -356,16 +355,15 @@ and not have a null password. In this case a password must be provided by the client before any file operations may be performed. -If the user has an S/Key key, the response from a successful USER -command will include an S/Key challenge. +If the user has an OPIE key, the response from a successful USER +command will include an OPIE challenge. The client may choose to respond with a PASS command giving either -a standard password or an S/Key one-time password. +a standard password or an OPIE one-time password. The server will automatically determine which type of password it has been given and attempt to authenticate accordingly. See -.Xr key 1 -for more information on S/Key authentication. -S/Key is a Trademark of Bellcore. +.Xr opie 4 +for more information on OPIE authentication. .It The login name must not appear in the file .Pa /etc/ftpusers . @@ -559,9 +557,9 @@ .El .Sh SEE ALSO .Xr ftp 1 , -.Xr key 1 , .Xr umask 2 , .Xr getusershell 3 , +.Xr opie 4 , .Xr ftpchroot 5 , .Xr login.conf 5 , .Xr inetd 8 , ==== //depot/projects/mips2/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#3 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1018 2007/04/17 07:01:45 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1021 2007/04/21 03:45:18 hrs Exp $ 2000 @@ -438,14 +438,19 @@ statistics via a binary structure stream. The sysctl variable hw.pci.do_powerstate - has been changed from a boolean to a range. + has been split into two sysctl variables + hw.pci.do_powerstate_nodriver + and hw.pci.do_powerstate_resume. + Also, these variables have been changed from a boolean to a range. 0 means no power management, 1 means conservative power management which any device class that has caused problems is added to the watch list, 2 means aggressive power management where any device class that is not fundamental to the system is added to the list, and 3 means power them all down unconditionally. - The default is 1. + The default values are 0 for + hw.pci.do_powerstate_nodriver and + 1 for hw.pci.do_powerstate_resume. [&arch.ia64;] The GENERIC kernel now enables SMP support by default. @@ -499,6 +504,9 @@ [&arch.pc98;] A bootable CDROM loader has been implemented for the pc98 platform. &merged; + [&arch.pc98;] The IPLware support + in boot0.5 has been enhanced to support version 3.33. + [&arch.i386;] A bug in the i386 boot loader, which could cause file system corruption if a nextboot.conf file was used and landed @@ -978,6 +986,10 @@ IPv6 support, it should be used instead. Please note that some rules might need to be adjusted. + The &man.lagg.4; driver, ported from OpenBSD and NetBSD, + has been added to support a variety of protocols and algorithms + for link aggregation, failover, and fault tolerance. + The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE. A new &man.ng.deflate.4; Netgraph node type has been @@ -1103,10 +1115,6 @@ devices will marked up upon creation. &merged; - The &man.lagg.4; driver, ported from OpenBSD and NetBSD, - has been added to support a variety of protocols and algorithms - for link aggregation, failover, and fault tolerance. - Support for &man.kqueue.2; operations has been added to the &man.tun.4; driver. &merged; @@ -1133,6 +1141,10 @@ The &man.arcmsr.4; driver has been updated to version 1.20.00.13. &merged; + The &man.ahc.4; driver is now MPSAFE. + + The &man.ahd.4; driver is now MPSAFE. + The &man.ata.4; driver now supports a workaround for some controllers whose DMA does not work properly in 48bit mode. For affected controllers, @@ -1158,6 +1170,8 @@ The &man.ataraid.4; driver now supports JMicron ATA RAID metadata. &merged; + The CAM subsystem is now MPSAFE. + The GEOM_LABEL class now supports Ext2FS, NTFS, and ReiserFS. &merged; @@ -1295,8 +1309,9 @@ A part of the FreeBSD NFS subsystem (the interface with the protocol stack and callouts, the NFS client side) is now MPSAFE. - Initial (read-only) support for SGI's XFS file system has been - added. + The &man.pseudofs.9; pseudo file system construction kit and + all of its consumers (&man.procfs.5;, &man.linprocfs.5; and + &man.linsysfs.5;), are now MPSAFE. The unionfs file system has been re-implemented. This version solves many crashing and locking issues compared to @@ -1312,6 +1327,8 @@ on the OpenSolaris ZFS page. + Initial (read-only) support for SGI's XFS file system has been + added. @@ -1424,6 +1441,12 @@ /var/run/ftpd.pid even when no option is specified. &merged; + The &man.ftpd.8; utility now has support for RFC2389 (FEAT) + and rudimentary support for RFC2640 (UTF8). The RFC2640 support + is optional and can be enabled using the new + flag. More information can be found in the &man.ftpd.8; manual + page. + The &man.gbde.8; utility now supports and options to specify a key file in addition to a passphrase. @@ -1520,6 +1543,9 @@ This allows one to use kgdb on /dev/mem and be able to patch memory on a live system. + The &man.lastcomm.1; utility now supports a + flag to export accounting data in a text format. + The &man.libarchive.3; library now supports POSIX.1e-style Extended Attributes. @@ -1992,7 +2018,7 @@ 0.9.7e to 0.9.8e. ncurses has been updated from - 5.2-20010512 to 5.6-20061217. ncurses now also has wide + 5.2-20020615 to 5.6-20061217. ncurses now also has wide character support. &merged; hostapd @@ -2000,7 +2026,9 @@ &merged; sendmail has been updated from - 8.13.4 to 8.14.1. &merged; + 8.13.4 to 8.14.1. This upgrade includes a new libmilter + library which requires all dynamically linked milters to be + recompiled. &merged; tcpdump has been updated from 3.9.1 to 3.9.4. &merged; @@ -2013,12 +2041,12 @@ snapshot from OpenBSD as of 20060831. TrustedBSD OpenBSM, - version 1.0 alpha 12, an implementation of the documented Sun Basic + version 1.0 alpha 14, an implementation of the documented Sun Basic Security Module (BSM) Audit API and file format, as well as local extensions to support the Mac OS X and &os; operating systems has been added. This also includes command line tools for audit - trail reduction and conversion to text, as well as documentation - of the commands, file format, and APIs. + trail reduction and conversion to text and XML, as well as + documentation of the commands, file format, and APIs. For this functionality, the AUDIT kernel option, /var/audit directory, and audit group have been added. &merged; ==== //depot/projects/mips2/src/sbin/fdisk_pc98/fdisk.8#3 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $FreeBSD: src/sbin/fdisk_pc98/fdisk.8,v 1.18 2006/09/18 11:55:09 ru Exp $ +.\" $FreeBSD: src/sbin/fdisk_pc98/fdisk.8,v 1.19 2007/04/21 22:47:35 imp Exp $ .\" .Dd February 26, 2006 .Dt FDISK 8 @@ -122,6 +122,7 @@ is given. .It Fl v Be verbose. +Partitions that are unused are suppressed unless this flag is specified. When .Fl f is used, ==== //depot/projects/mips2/src/sbin/fdisk_pc98/fdisk.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/fdisk_pc98/fdisk.c,v 1.20 2006/02/26 07:37:10 imp Exp $"); +__FBSDID("$FreeBSD: src/sbin/fdisk_pc98/fdisk.c,v 1.21 2007/04/21 22:47:35 imp Exp $"); #include #include @@ -153,7 +153,7 @@ static void print_part(int i); static void init_sector0(unsigned long start); static void init_boot(void); -static void change_part(int i); +static void change_part(int i, int force); static void print_params(void); static void change_active(int which); static void change_code(void); @@ -254,16 +254,16 @@ err(1, "read_s0"); printf("%s: %d cyl %d hd %d sec\n", disk, dos_cyls, dos_heads, dos_sectors); - printf("Part %11s %11s %4s %4s\n", "Start", "Size", "MID", - "SID"); + printf("Part %11s %11s %4s %4s %-16s\n", "Start", "Size", "MID", + "SID", "Name"); for (i = 0; i < NDOSPART; i++) { partp = ((struct pc98_partition *) &mboot.parts) + i; if (partp->dp_sid == 0) continue; - printf("%4d: %11u %11u 0x%02x 0x%02x\n", i + 1, + printf("%4d: %11u %11u 0x%02x 0x%02x %-16.16s\n", i + 1, partp->dp_scyl * cylsecs, (partp->dp_ecyl - partp->dp_scyl + 1) * cylsecs, - partp->dp_mid, partp->dp_sid); + partp->dp_mid, partp->dp_sid, partp->dp_name); } exit(0); } @@ -276,6 +276,7 @@ partp = (struct pc98_partition *) (&mboot.parts[0]); partp->dp_mid = DOSMID_386BSD; partp->dp_sid = DOSSID_386BSD; + strncpy(partp->dp_name, "FreeBSD", sizeof(partp->dp_name)); /* Start c/h/s. */ partp->dp_scyl = partp->dp_ipl_cyl = 1; partp->dp_shd = partp->dp_ipl_head = 1; @@ -312,9 +313,9 @@ printf("Information from DOS bootblock is:\n"); if (partition == -1) for (i = 1; i <= NDOSPART; i++) - change_part(i); + change_part(i, v_flag); else - change_part(partition); + change_part(partition, 1); if (u_flag || a_flag) change_active(partition); @@ -349,6 +350,17 @@ exit(1); } +static struct pc98_partition mtpart; + +static int +part_unused(int i) +{ + struct pc98_partition *partp; + + partp = ((struct pc98_partition *) &mboot.parts) + i - 1; + return (bcmp(partp, &mtpart, sizeof (struct pc98_partition)) == 0); +} + static void print_s0(int which) { @@ -356,30 +368,31 @@ print_params(); printf("Information from DOS bootblock is:\n"); - if (which == -1) + if (which == -1) { for (i = 1; i <= NDOSPART; i++) - printf("%d: ", i), print_part(i); + if (v_flag || !part_unused(i)) { + printf("%d: ", i); + print_part(i); + } + } else print_part(which); } -static struct pc98_partition mtpart; - static void print_part(int i) { struct pc98_partition *partp; u_int64_t part_sz, part_mb; - partp = ((struct pc98_partition *) &mboot.parts) + i - 1; - - if (!bcmp(partp, &mtpart, sizeof (struct pc98_partition))) { + if (part_unused(i)) { printf("\n"); return; } /* * Be careful not to overflow. */ + partp = ((struct pc98_partition *) &mboot.parts) + i - 1; part_sz = (partp->dp_ecyl - partp->dp_scyl + 1) * cylsecs; part_mb = part_sz * secsize; part_mb /= (1024 * 1024); @@ -422,66 +435,68 @@ } static void -change_part(int i) +change_part(int i, int force) { struct pc98_partition *partp = ((struct pc98_partition *) &mboot.parts) + i - 1; - printf("The data for partition %d is:\n", i); - print_part(i); + if (!force && part_unused(i)) + return; + + printf("The data for partition %d is:\n", i); + print_part(i); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Apr 22 19:34:34 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E6DDF16A404; Sun, 22 Apr 2007 19:34:33 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AF3F916A401 for ; Sun, 22 Apr 2007 19:34:33 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A00BF13C448 for ; Sun, 22 Apr 2007 19:34:33 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MJYXnL005303 for ; Sun, 22 Apr 2007 19:34:33 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MJYXBv005300 for perforce@freebsd.org; Sun, 22 Apr 2007 19:34:33 GMT (envelope-from zec@FreeBSD.org) Date: Sun, 22 Apr 2007 19:34:33 GMT Message-Id: <200704221934.l3MJYXBv005300@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118598 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 19:34:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=118598 Change 118598 by zec@zec_tca51 on 2007/04/22 19:34:14 Implement vnet detachment routine for lo0. Affected files ... .. //depot/projects/vimage/src/sys/net/if_loop.c#10 edit Differences ... ==== //depot/projects/vimage/src/sys/net/if_loop.c#10 (text+ko) ==== @@ -107,8 +107,10 @@ static int lo_clone_create(struct if_clone *, int, caddr_t); static void lo_clone_destroy(struct ifnet *); static int vnet_loif_iattach(void); +#ifdef VIMAGE +static int vnet_loif_idetach(void); +#endif - #ifndef VIMAGE struct ifnet *loif = NULL; /* Used externally */ static LIST_HEAD(lo_list, lo_softc) lo_list; @@ -188,7 +190,7 @@ .name = "loif", .symmap = NULL, .i_attach = vnet_loif_iattach, - .i_detach = NULL, + .i_detach = vnet_loif_idetach }; #endif @@ -208,6 +210,21 @@ return 0; } +#ifdef VIMAGE +static int vnet_loif_idetach(void) +{ + INIT_VNET_NET(curvnet); + struct lo_softc *lop, *nlop; + + LIST_FOREACH_SAFE(lop, &V_lo_list, sc_next, nlop) { + if (lop->sc_ifp == V_loif) + V_loif = NULL; + lo_clone_destroy(lop->sc_ifp); + } + return 0; +} +#endif + static int loop_modevent(module_t mod, int type, void *data) { From owner-p4-projects@FreeBSD.ORG Sun Apr 22 19:43:46 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F10B816A402; Sun, 22 Apr 2007 19:43:45 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9C7A816A400 for ; Sun, 22 Apr 2007 19:43:45 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7536613C459 for ; Sun, 22 Apr 2007 19:43:45 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MJhjcF006818 for ; Sun, 22 Apr 2007 19:43:45 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MJhjQV006815 for perforce@freebsd.org; Sun, 22 Apr 2007 19:43:45 GMT (envelope-from zec@FreeBSD.org) Date: Sun, 22 Apr 2007 19:43:45 GMT Message-Id: <200704221943.l3MJhjQV006815@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118599 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 19:43:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=118599 Change 118599 by zec@zec_tca51 on 2007/04/22 19:43:24 The standard place where ifnet -> vnet affinity is automatically set is in if_attach(), so don't do this for loif ifnets in if_loop.c since this is redundant. Affected files ... .. //depot/projects/vimage/src/sys/net/if_loop.c#11 edit Differences ... ==== //depot/projects/vimage/src/sys/net/if_loop.c#11 (text+ko) ==== @@ -161,9 +161,6 @@ free(sc, M_LO); return (ENOSPC); } -#ifdef VIMAGE - ifp->if_vnet = curvnet; -#endif if (V_loif == NULL) V_loif = ifp; From owner-p4-projects@FreeBSD.ORG Sun Apr 22 20:07:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8FC5E16A404; Sun, 22 Apr 2007 20:07:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6157216A402 for ; Sun, 22 Apr 2007 20:07:15 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5252B13C48A for ; Sun, 22 Apr 2007 20:07:15 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MK7FEJ011346 for ; Sun, 22 Apr 2007 20:07:15 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MK7F4q011343 for perforce@freebsd.org; Sun, 22 Apr 2007 20:07:15 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 22 Apr 2007 20:07:15 GMT Message-Id: <200704222007.l3MK7F4q011343@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118601 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 20:07:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=118601 Change 118601 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/22 20:06:37 add m_priority field for tracking packet type and which queue it belongs to Affected files ... .. //depot/projects/opentoe/sys/sys/mbuf.h#6 edit Differences ... ==== //depot/projects/opentoe/sys/sys/mbuf.h#6 (text+ko) ==== @@ -79,9 +79,9 @@ #endif /* _KERNEL */ #if defined(__LP64__) -#define M_HDR_PAD 6 +#define M_HDR_PAD 4 #else -#define M_HDR_PAD 2 +#define M_HDR_PAD 0 #endif /* @@ -94,6 +94,7 @@ int mh_len; /* amount of data in this mbuf */ int mh_flags; /* flags; see below */ short mh_type; /* type of data in this mbuf */ + uint16_t mh_priority; /* general priority field for this packet */ uint8_t pad[M_HDR_PAD];/* word align */ }; @@ -159,6 +160,7 @@ #define m_len m_hdr.mh_len #define m_data m_hdr.mh_data #define m_type m_hdr.mh_type +#define m_priority m_hdr.mh_priority #define m_flags m_hdr.mh_flags #define m_nextpkt m_hdr.mh_nextpkt #define m_act m_nextpkt From owner-p4-projects@FreeBSD.ORG Sun Apr 22 20:08:17 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E90816A408; Sun, 22 Apr 2007 20:08:17 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5C53C16A406 for ; Sun, 22 Apr 2007 20:08:17 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4C50713C4D9 for ; Sun, 22 Apr 2007 20:08:17 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MK8HPK011424 for ; Sun, 22 Apr 2007 20:08:17 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MK8GAw011421 for perforce@freebsd.org; Sun, 22 Apr 2007 20:08:16 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 22 Apr 2007 20:08:16 GMT Message-Id: <200704222008.l3MK8GAw011421@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118602 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 20:08:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=118602 Change 118602 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/22 20:07:53 Pull in changes to common files and latest firmware revision Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_common.h#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_mc5.c#2 edit .. //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 edit .. //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_t3_hw.c#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_version.h#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_xgmac.c#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/t3fw-4.0.0.bin.gz#1 add .. //depot/projects/opentoe/sys/modules/cxgb/Makefile#5 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_common.h#3 (text+ko) ==== @@ -46,6 +46,7 @@ NMTUS = 16, /* size of MTU table */ NCCTRL_WIN = 32, /* # of congestion control windows */ NTX_SCHED = 8, /* # of HW Tx scheduling queues */ + TP_TMR_RES = 200, /* TP timer resolution in usec */ }; #define MAX_RX_COALESCING_LEN 16224U @@ -57,7 +58,6 @@ }; enum { - SUPPORTED_OFFLOAD = 1 << 24, SUPPORTED_IRQ = 1 << 25 }; @@ -70,8 +70,8 @@ }; enum { - FW_VERSION_MAJOR = 3, - FW_VERSION_MINOR = 2, + FW_VERSION_MAJOR = 4, + FW_VERSION_MINOR = 0, FW_VERSION_MICRO = 0 }; @@ -309,6 +309,9 @@ MC5_MODE_72_BIT = 2 }; +/* MC5 min active region size */ +enum { MC5_MIN_TIDS = 16 }; + struct vpd_params { unsigned int cclk; unsigned int mclk; @@ -354,6 +357,7 @@ unsigned int stats_update_period; /* MAC stats accumulation period */ unsigned int linkpoll_period; /* link poll period in 0.1s */ unsigned int rev; /* chip revision */ + unsigned int offload; }; enum { /* chip revisions */ @@ -427,8 +431,11 @@ adapter_t *adapter; unsigned int offset; unsigned int nucast; /* # of address filters for unicast MACs */ - unsigned int tcnt; - unsigned int xcnt; + unsigned int tx_tcnt; + unsigned int tx_xcnt; + u64 tx_mcnt; + unsigned int rx_xcnt; + u64 rx_mcnt; unsigned int toggle_cnt; unsigned int txen; struct mac_stats stats; @@ -555,7 +562,7 @@ static inline int is_offload(const adapter_t *adap) { #ifdef CONFIG_CHELSIO_T3_CORE - return adapter_info(adap)->caps & SUPPORTED_OFFLOAD; + return adap->params.offload; #else return 0; #endif ==== //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_mc5.c#2 (text+ko) ==== @@ -329,6 +329,9 @@ unsigned int tcam_size = mc5->tcam_size; adapter_t *adap = mc5->adapter; + if (tcam_size == 0) + return 0; + if (nroutes > MAX_ROUTES || nroutes + nservers + nfilters > tcam_size) return -EINVAL; ==== //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 (text+ko) ==== @@ -260,6 +260,20 @@ #define V_WR_BCNTLFLT(x) ((x) << S_WR_BCNTLFLT) #define G_WR_BCNTLFLT(x) (((x) >> S_WR_BCNTLFLT) & M_WR_BCNTLFLT) +/* Applicable to BYPASS WRs only: the uP will added a CPL_BARRIER before + * and after the BYPASS WR if the ATOMIC bit is set. + */ +#define S_WR_ATOMIC 16 +#define V_WR_ATOMIC(x) ((x) << S_WR_ATOMIC) +#define F_WR_ATOMIC V_WR_ATOMIC(1U) + +/* Applicable to BYPASS WRs only: the uP will flush buffered non abort + * related WRs. + */ +#define S_WR_FLUSH 17 +#define V_WR_FLUSH(x) ((x) << S_WR_FLUSH) +#define F_WR_FLUSH V_WR_FLUSH(1U) + #define S_WR_DATATYPE 20 #define V_WR_DATATYPE(x) ((x) << S_WR_DATATYPE) #define F_WR_DATATYPE V_WR_DATATYPE(1U) @@ -1487,4 +1501,46 @@ #define M_TERM_TID 0xFFFFF #define V_TERM_TID(x) ((x) << S_TERM_TID) #define G_TERM_TID(x) (((x) >> S_TERM_TID) & M_TERM_TID) + +/* ULP_TX opcodes */ +enum { ULP_MEM_READ = 2, ULP_MEM_WRITE = 3, ULP_TXPKT = 4 }; + +#define S_ULPTX_CMD 28 +#define M_ULPTX_CMD 0xF +#define V_ULPTX_CMD(x) ((x) << S_ULPTX_CMD) + +#define S_ULPTX_NFLITS 0 +#define M_ULPTX_NFLITS 0xFF +#define V_ULPTX_NFLITS(x) ((x) << S_ULPTX_NFLITS) + +struct ulp_mem_io { + WR_HDR; + __be32 cmd_lock_addr; + __be32 len; +}; + + /* ulp_mem_io.cmd_lock_addr fields */ +#define S_ULP_MEMIO_ADDR 0 +#define M_ULP_MEMIO_ADDR 0x7FFFFFF +#define V_ULP_MEMIO_ADDR(x) ((x) << S_ULP_MEMIO_ADDR) + +#define S_ULP_MEMIO_LOCK 27 +#define V_ULP_MEMIO_LOCK(x) ((x) << S_ULP_MEMIO_LOCK) +#define F_ULP_MEMIO_LOCK V_ULP_MEMIO_LOCK(1U) + + /* ulp_mem_io.len fields */ +#define S_ULP_MEMIO_DATA_LEN 28 +#define M_ULP_MEMIO_DATA_LEN 0xF +#define V_ULP_MEMIO_DATA_LEN(x) ((x) << S_ULP_MEMIO_DATA_LEN) + +struct ulp_txpkt { + __be32 cmd_dest; + __be32 len; +}; + + /* ulp_txpkt.cmd_dest fields */ +#define S_ULP_TXPKT_DEST 24 +#define M_ULP_TXPKT_DEST 0xF +#define V_ULP_TXPKT_DEST(x) ((x) << S_ULP_TXPKT_DEST) + #endif /* T3_CPL_H */ ==== //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_t3_hw.c#3 (text+ko) ==== @@ -441,23 +441,23 @@ { 2, 0, 0, 0, F_GPIO2_OEN | F_GPIO4_OEN | F_GPIO2_OUT_VAL | F_GPIO4_OUT_VAL, F_GPIO3 | F_GPIO5, - SUPPORTED_OFFLOAD, + 0, &mi1_mdio_ops, "Chelsio PE9000" }, { 2, 0, 0, 0, F_GPIO2_OEN | F_GPIO4_OEN | F_GPIO2_OUT_VAL | F_GPIO4_OUT_VAL, F_GPIO3 | F_GPIO5, - SUPPORTED_OFFLOAD, + 0, &mi1_mdio_ops, "Chelsio T302" }, { 1, 0, 0, 0, F_GPIO1_OEN | F_GPIO6_OEN | F_GPIO7_OEN | F_GPIO10_OEN | F_GPIO1_OUT_VAL | F_GPIO6_OUT_VAL | F_GPIO10_OUT_VAL, 0, - SUPPORTED_10000baseT_Full | SUPPORTED_AUI | SUPPORTED_OFFLOAD, + SUPPORTED_10000baseT_Full | SUPPORTED_AUI, &mi1_mdio_ext_ops, "Chelsio T310" }, { 2, 0, 0, 0, F_GPIO1_OEN | F_GPIO2_OEN | F_GPIO4_OEN | F_GPIO5_OEN | F_GPIO6_OEN | F_GPIO7_OEN | F_GPIO10_OEN | F_GPIO11_OEN | F_GPIO1_OUT_VAL | F_GPIO5_OUT_VAL | F_GPIO6_OUT_VAL | F_GPIO10_OUT_VAL, 0, - SUPPORTED_10000baseT_Full | SUPPORTED_AUI | SUPPORTED_OFFLOAD, + SUPPORTED_10000baseT_Full | SUPPORTED_AUI, &mi1_mdio_ext_ops, "Chelsio T320" }, }; @@ -2387,9 +2387,6 @@ t3_write_reg(adap, A_TP_MOD_RATE_LIMIT, 0); } -/* Desired TP timer resolution in usec */ -#define TP_TMR_RES 200 - /* TCP timer values in ms */ #define TP_DACK_TIMER 50 #define TP_RTO_MIN 250 @@ -3005,6 +3002,9 @@ adapter_t *adapter = mc7->adapter; const struct mc7_timing_params *p = &mc7_timings[mem_type]; + if (mc7->size == 0) + return 0; + val = t3_read_reg(adapter, mc7->offset + A_MC7_CFG); slow = val & F_SLOW; width = G_WIDTH(val); @@ -3209,9 +3209,10 @@ do { /* wait for uP to initialize */ t3_os_sleep(20); } while (t3_read_reg(adapter, A_CIM_HOST_ACC_DATA) && --attempts); - if (!attempts) + if (!attempts) { + CH_ERR(adapter, "uP initialization timed out\n"); goto out_err; - + } err = 0; out_err: return err; @@ -3309,7 +3310,7 @@ mc7->name = name; mc7->offset = base_addr - MC7_PMRX_BASE_ADDR; cfg = t3_read_reg(adapter, mc7->offset + A_MC7_CFG); - mc7->size = mc7_calc_size(cfg); + mc7->size = G_DEN(cfg) == M_DEN ? 0 : mc7_calc_size(cfg); mc7->width = G_WIDTH(cfg); } @@ -3336,7 +3337,8 @@ V_I2C_CLKDIV(adapter->params.vpd.cclk / 80 - 1)); t3_write_reg(adapter, A_T3DBG_GPIO_EN, ai->gpio_out | F_GPIO0_OEN | F_GPIO0_OUT_VAL); - + t3_write_reg(adapter, A_MC5_DB_SERVER_INDEX, 0); + if (adapter->params.rev == 0 || !uses_xaui(adapter)) val |= F_ENRGMII; @@ -3435,7 +3437,12 @@ p->ntimer_qs = p->cm_size >= (128 << 20) || adapter->params.rev > 0 ? 12 : 6; p->dack_re = fls(adapter->params.vpd.cclk / 10) - 1; /* 100us */ + } + adapter->params.offload = t3_mc7_size(&adapter->pmrx) && + t3_mc7_size(&adapter->pmtx) && + t3_mc7_size(&adapter->cm); + if (is_offload(adapter)) { adapter->params.mc5.nservers = DEFAULT_NSERVERS; adapter->params.mc5.nfilters = adapter->params.rev > 0 ? DEFAULT_NFILTERS : 0; ==== //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_version.h#3 (text+ko) ==== @@ -41,5 +41,5 @@ #define __CHELSIO_VERSION_H #define DRV_DESC "Chelsio T3 Network Driver" #define DRV_NAME "cxgb" -#define DRV_VERSION "1.0.071" -#endif +#define DRV_VERSION "1.0.086" +#endif ==== //depot/projects/opentoe/sys/dev/cxgb/common/cxgb_xgmac.c#3 (text+ko) ==== @@ -329,8 +329,8 @@ thres = mtu > thres ? (mtu - thres + 7) / 8 : 0; thres = max(thres, 8U); /* need at least 8 */ t3_set_reg_field(adap, A_XGM_TXFIFO_CFG + mac->offset, - V_TXFIFOTHRESH(M_TXFIFOTHRESH) | V_TXIPG(M_TXIPG), - V_TXFIFOTHRESH(thres) | V_TXIPG(1)); + V_TXFIFOTHRESH(M_TXFIFOTHRESH) | V_TXIPG(M_TXIPG), + V_TXFIFOTHRESH(thres) | V_TXIPG(1)); /* Assuming a minimum drain rate of 2.5Gbps... */ @@ -365,7 +365,7 @@ t3_set_reg_field(adap, A_XGM_PORT_CFG + oft, V_PORTSPEED(M_PORTSPEED), val); } -#if 0 +#if 0 val = t3_read_reg(adap, A_XGM_RXFIFO_CFG + oft); val &= ~V_RXFIFOPAUSEHWM(M_RXFIFOPAUSEHWM); if (fc & PAUSE_TX) @@ -382,6 +382,7 @@ int idx = macidx(mac); adapter_t *adap = mac->adapter; unsigned int oft = mac->offset; + struct mac_stats *s = &mac->stats; if (which & MAC_DIRECTION_TX) { t3_write_reg(adap, A_XGM_TX_CTRL + oft, F_TXEN); @@ -391,12 +392,20 @@ t3_set_reg_field(adap, A_TP_PIO_DATA, 1 << idx, 1 << idx); t3_write_reg(adap, A_TP_PIO_ADDR, A_TP_TX_DROP_CNT_CH0 + idx); - mac->tcnt = (G_TXDROPCNTCH0RCVD(t3_read_reg(adap, A_TP_PIO_DATA))); - mac->xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap, A_XGM_TX_SPI4_SOP_EOP_CNT))); + mac->tx_mcnt = s->tx_frames; + mac->tx_tcnt = (G_TXDROPCNTCH0RCVD(t3_read_reg(adap, + A_TP_PIO_DATA))); + mac->tx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap, + A_XGM_TX_SPI4_SOP_EOP_CNT + + oft))); + mac->rx_mcnt = s->rx_frames; + mac->rx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap, + A_XGM_RX_SPI4_SOP_EOP_CNT + + oft))); mac->txen = F_TXEN; mac->toggle_cnt = 0; } - if (which & MAC_DIRECTION_RX) + if (which & MAC_DIRECTION_RX) t3_write_reg(adap, A_XGM_RX_CTRL + oft, F_RXEN); return 0; } @@ -405,6 +414,7 @@ { int idx = macidx(mac); adapter_t *adap = mac->adapter; + int val; if (which & MAC_DIRECTION_TX) { t3_write_reg(adap, A_XGM_TX_CTRL + mac->offset, 0); @@ -414,39 +424,99 @@ t3_set_reg_field(adap, A_TP_PIO_DATA, 1 << idx, 1 << idx); mac->txen = 0; } - if (which & MAC_DIRECTION_RX) + if (which & MAC_DIRECTION_RX) { + t3_set_reg_field(mac->adapter, A_XGM_RESET_CTRL + mac->offset, + F_PCS_RESET_, 0); + t3_os_sleep(100); t3_write_reg(adap, A_XGM_RX_CTRL + mac->offset, 0); + val = F_MAC_RESET_; + if (is_10G(adap)) + val |= F_PCS_RESET_; + else if (uses_xaui(adap)) + val |= F_PCS_RESET_ | F_XG2G_RESET_; + else + val |= F_RGMII_RESET_ | F_XG2G_RESET_; + t3_write_reg(mac->adapter, A_XGM_RESET_CTRL + mac->offset, val); + } return 0; } int t3b2_mac_watchdog_task(struct cmac *mac) { int status; - unsigned int tcnt, xcnt; + unsigned int tx_tcnt, tx_xcnt; adapter_t *adap = mac->adapter; - t3_write_reg(adap, A_TP_PIO_ADDR, A_TP_TX_DROP_CNT_CH0 + macidx(mac)); - tcnt = (G_TXDROPCNTCH0RCVD(t3_read_reg(adap, A_TP_PIO_DATA))); - xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap, A_XGM_TX_SPI4_SOP_EOP_CNT + mac->offset))); + struct mac_stats *s = &mac->stats; + unsigned int tx_mcnt = (unsigned int)s->tx_frames; + unsigned int rx_mcnt = (unsigned int)s->rx_frames; + unsigned int rx_xcnt; + + status = 0; + tx_xcnt = 1; /* By default tx_xcnt is making progress*/ + tx_tcnt = mac->tx_tcnt; /* If tx_mcnt is progressing ignore tx_tcnt*/ + rx_xcnt = 1; /* By default rx_xcnt is making progress*/ + if (tx_mcnt == mac->tx_mcnt) { + tx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap, + A_XGM_TX_SPI4_SOP_EOP_CNT + + mac->offset))); + if (tx_xcnt == 0) { + t3_write_reg(adap, A_TP_PIO_ADDR, + A_TP_TX_DROP_CNT_CH0 + macidx(mac)); + tx_tcnt = (G_TXDROPCNTCH0RCVD(t3_read_reg(adap, + A_TP_PIO_DATA))); + } else { + goto rxcheck; + } + } else { + mac->toggle_cnt = 0; + goto rxcheck; + } - if ((tcnt != mac->tcnt) && (xcnt == 0) && (mac->xcnt == 0)) { + if (((tx_tcnt != mac->tx_tcnt) && + (tx_xcnt == 0) && (mac->tx_xcnt == 0)) || + ((mac->tx_mcnt == tx_mcnt) && + (tx_xcnt != 0) && (mac->tx_xcnt != 0))) { if (mac->toggle_cnt > 4) { - t3b2_mac_reset(mac); - mac->toggle_cnt = 0; status = 2; + goto out; } else { - t3_write_reg(adap, A_XGM_TX_CTRL + mac->offset, 0); - t3_read_reg(adap, A_XGM_TX_CTRL + mac->offset); /* flush */ - t3_write_reg(adap, A_XGM_TX_CTRL + mac->offset, mac->txen); - t3_read_reg(adap, A_XGM_TX_CTRL + mac->offset); /* flush */ - mac->toggle_cnt++; status = 1; - } + goto out; + } } else { mac->toggle_cnt = 0; - status = 0; + goto rxcheck; + } + +rxcheck: + if (rx_mcnt != mac->rx_mcnt) + rx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap, + A_XGM_RX_SPI4_SOP_EOP_CNT + + mac->offset))); + else + goto out; + + if (mac->rx_mcnt != s->rx_frames && rx_xcnt == 0 && mac->rx_xcnt == 0) { + status = 2; + goto out; + } + +out: + mac->tx_tcnt = tx_tcnt; + mac->tx_xcnt = tx_xcnt; + mac->tx_mcnt = s->tx_frames; + mac->rx_xcnt = rx_xcnt; + mac->rx_mcnt = s->rx_frames; + if (status == 1) { + t3_write_reg(adap, A_XGM_TX_CTRL + mac->offset, 0); + t3_read_reg(adap, A_XGM_TX_CTRL + mac->offset); /* flush */ + t3_write_reg(adap, A_XGM_TX_CTRL + mac->offset, mac->txen); + t3_read_reg(adap, A_XGM_TX_CTRL + mac->offset); /* flush */ + mac->toggle_cnt++; + } else if (status == 2) { + t3b2_mac_reset(mac); + mac->toggle_cnt = 0; } - mac->tcnt = tcnt; - mac->xcnt = xcnt; return status; } ==== //depot/projects/opentoe/sys/modules/cxgb/Makefile#5 (text+ko) ==== @@ -14,12 +14,12 @@ .if ${MACHINE_ARCH} != "ia64" # ld is broken on ia64 -t3fw-3.2.bin: ${CXGB}/t3fw-3.2.bin.gz.uu - uudecode -p < ${CXGB}/t3fw-3.2.bin.gz.uu \ +t3fw-4.0.0.bin: ${CXGB}/t3fw-4.0.0.bin.gz.uu + uudecode -p < ${CXGB}/t3fw-4.0.0.bin.gz.uu \ | gzip -dc > ${.TARGET} -FIRMWS= t3fw-3.2.bin:t3fw32 -CLEANFILES+= t3fw-3.2.bin +FIRMWS= t3fw-4.0.0.bin:t3fw400 +CLEANFILES+= t3fw-4.0.0.bin .endif From owner-p4-projects@FreeBSD.ORG Sun Apr 22 20:09:19 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6B66616A406; Sun, 22 Apr 2007 20:09:19 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4032316A403 for ; Sun, 22 Apr 2007 20:09:19 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 18E6213C448 for ; Sun, 22 Apr 2007 20:09:19 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MK9ISe011480 for ; Sun, 22 Apr 2007 20:09:18 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MK9IeA011477 for perforce@freebsd.org; Sun, 22 Apr 2007 20:09:18 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 22 Apr 2007 20:09:18 GMT Message-Id: <200704222009.l3MK9IeA011477@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118603 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 20:09:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=118603 Change 118603 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/22 20:08:53 build minimal modules Affected files ... .. //depot/projects/opentoe/sys/amd64/conf/GENERIC#4 edit Differences ... ==== //depot/projects/opentoe/sys/amd64/conf/GENERIC#4 (text+ko) ==== @@ -25,6 +25,7 @@ #hints "GENERIC.hints" # Default places to look for devices. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +makeoptions MODULES_OVERRIDE="cxgb if_vlan" #options SCHED_4BSD # 4BSD scheduler options SCHED_ULE # ULE scheduler From owner-p4-projects@FreeBSD.ORG Sun Apr 22 20:29:47 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6325A16A406; Sun, 22 Apr 2007 20:29:47 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4137516A403 for ; Sun, 22 Apr 2007 20:29:47 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0476C13C45A for ; Sun, 22 Apr 2007 20:29:47 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MKTkDZ014765 for ; Sun, 22 Apr 2007 20:29:46 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MKTkcl014762 for perforce@freebsd.org; Sun, 22 Apr 2007 20:29:46 GMT (envelope-from kmacy@freebsd.org) Date: Sun, 22 Apr 2007 20:29:46 GMT Message-Id: <200704222029.l3MKTkcl014762@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118607 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 20:29:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=118607 Change 118607 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/22 20:28:44 remove old and unused firmware files, add latest Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/t3fw-3.2.bin.gz.uu#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/t3fw-4.0.0.bin.gz#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/t3fw-4.0.0.bin.gz.uu#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Apr 22 21:40:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3211E16A401; Sun, 22 Apr 2007 21:40:14 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B426516A404 for ; Sun, 22 Apr 2007 21:40:14 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A501213C45B for ; Sun, 22 Apr 2007 21:40:14 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3MLeEIc035307 for ; Sun, 22 Apr 2007 21:40:14 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3MLeE6b035304 for perforce@freebsd.org; Sun, 22 Apr 2007 21:40:14 GMT (envelope-from zec@FreeBSD.org) Date: Sun, 22 Apr 2007 21:40:14 GMT Message-Id: <200704222140.l3MLeE6b035304@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118611 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2007 21:40:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=118611 Change 118611 by zec@zec_tca51 on 2007/04/22 21:39:58 Introduce the notion of home_vnet for an ifnet, indicating the vnet instance where the ifnet was attached for the first time. Implement an idetach() routine for cleaning up the container holding virtualized state from sys/net stuff. Affected files ... .. //depot/projects/vimage/src/sys/net/if.c#11 edit .. //depot/projects/vimage/src/sys/net/if_var.h#8 edit Differences ... ==== //depot/projects/vimage/src/sys/net/if.c#11 (text+ko) ==== @@ -138,6 +138,9 @@ #endif static int vnet_net_iattach(void); +#ifdef VIMAGE +static int vnet_net_idetach(void); +#endif int ifqmaxlen = IFQ_MAXLEN; struct mtx ifnet_lock; @@ -176,7 +179,7 @@ .name = "net", .symmap = vnet_net_symmap, .i_attach = vnet_net_iattach, - .i_detach = NULL, + .i_detach = vnet_net_idetach }; MALLOC_DEFINE(M_NET, "net", "NET instance"); @@ -370,6 +373,27 @@ return 0; } +#ifdef VIMAGE +static int +vnet_net_idetach() +{ + INIT_VNET_NET(curvnet); + + VNET_ASSERT(TAILQ_EMPTY(&V_ifnet)); +#ifdef NOTYET + VNET_ASSERT(TAILQ_EMPTY(&V_ifg_head)); +#endif + VNET_ASSERT(SLIST_EMPTY(&V_ifklist.kl_list)); + + free((caddr_t)V_ifindex_table, M_IFNET); + + curvnet->mod_data[vnet_net_modinfo.id] = NULL; + free((caddr_t)vnet_net, M_NET); + + return 0; +} +#endif + void if_grow(void) { @@ -517,8 +541,9 @@ ifp->if_xname); #ifdef VIMAGE - ifp->if_vnet = vnet_net->parent_vnet; - ifp->if_vnet->ifccnt++; /* XXX locking? */ + ifp->if_vnet = curvnet; + if (ifp->if_home_vnet == NULL) + ifp->if_home_vnet = curvnet; #endif TASK_INIT(&ifp->if_starttask, 0, if_start_deferred, ifp); TASK_INIT(&ifp->if_linktask, 0, do_link_state_change, ifp); @@ -606,6 +631,9 @@ IFNET_WLOCK(); TAILQ_INSERT_TAIL(&V_ifnet, ifp, if_link); +#ifdef VIMAGE + curvnet->ifccnt++; +#endif IFNET_WUNLOCK(); if (domain_init_status >= 2) @@ -752,16 +780,14 @@ found = 1; break; } +#ifdef VIMAGE + if (found) + curvnet->ifccnt--; +#endif IFNET_WUNLOCK(); if (!found) return; -#ifdef VIMAGE - IFNET_WLOCK(); - ifp->if_vnet->ifccnt--; - IFNET_WUNLOCK(); -#endif - /* * Remove/wait for pending events. */ ==== //depot/projects/vimage/src/sys/net/if_var.h#8 (text+ko) ==== @@ -187,7 +187,9 @@ /* protected by if_addr_mtx */ void *if_pf_kif; void *if_lagg; /* lagg glue */ + struct vnet *if_vnet; /* network stack instance */ + struct vnet *if_home_vnet; /* where this ifnet originates from */ }; typedef void if_init_f_t(void *); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 00:49:31 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5A5B016A40A; Mon, 23 Apr 2007 00:49:31 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2699716A408 for ; Mon, 23 Apr 2007 00:49:31 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F365413C4C5 for ; Mon, 23 Apr 2007 00:49:30 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N0nUhI077052 for ; Mon, 23 Apr 2007 00:49:30 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N0nUbh077049 for perforce@freebsd.org; Mon, 23 Apr 2007 00:49:30 GMT (envelope-from taleks@FreeBSD.org) Date: Mon, 23 Apr 2007 00:49:30 GMT Message-Id: <200704230049.l3N0nUbh077049@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 118621 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 00:49:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=118621 Change 118621 by taleks@taleks_th on 2007/04/23 00:49:26 This is a first submit, to test settings of perforce on my side. README file contains some notes about project. Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/README#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Mon Apr 23 01:00:47 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EB42E16A407; Mon, 23 Apr 2007 01:00:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B9C8716A401 for ; Mon, 23 Apr 2007 01:00:46 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id AA4DD13C457 for ; Mon, 23 Apr 2007 01:00:46 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N10kPA078921 for ; Mon, 23 Apr 2007 01:00:46 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N10k8F078918 for perforce@freebsd.org; Mon, 23 Apr 2007 01:00:46 GMT (envelope-from scottl@freebsd.org) Date: Mon, 23 Apr 2007 01:00:46 GMT Message-Id: <200704230100.l3N10k8F078918@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 118625 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 01:00:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=118625 Change 118625 by scottl@scottl-x64 on 2007/04/23 01:00:17 Remmove some unused fields from the cam_ed and cam_et structures. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#61 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#61 (text+ko) ==== @@ -131,7 +131,6 @@ struct async_list asyncs; /* Async callback info for this B/T/L */ struct periph_list periphs; /* All attached devices */ u_int generation; /* Generation number */ - struct cam_periph *owner; /* Peripheral driver's ownership tag */ struct xpt_quirk_entry *quirk; /* Oddities about this device */ /* Storage for the inquiry data */ cam_proto protocol; @@ -193,8 +192,6 @@ path_id_t path_id; struct cam_sim *sim; struct timeval last_reset; - u_int32_t flags; -#define CAM_EB_RUNQ_SCHEDULED 0x01 u_int32_t refcount; u_int generation; }; @@ -4346,7 +4343,6 @@ new_bus->path_id = sim->path_id; new_bus->sim = sim; timevalclear(&new_bus->last_reset); - new_bus->flags = 0; new_bus->refcount = 1; /* Held until a bus_deregister event */ new_bus->generation = 0; mtx_lock(&xsoftc.xpt_topo_lock); @@ -5028,7 +5024,6 @@ SLIST_INIT(&device->asyncs); SLIST_INIT(&device->periphs); device->generation = 0; - device->owner = NULL; /* * Take the default quirk entry until we have inquiry * data and can determine a better quirk to use. From owner-p4-projects@FreeBSD.ORG Mon Apr 23 02:52:04 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E614616A406; Mon, 23 Apr 2007 02:52:03 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A1AC316A403 for ; Mon, 23 Apr 2007 02:52:03 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 90CEE13C4B7 for ; Mon, 23 Apr 2007 02:52:03 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N2q3Fi001252 for ; Mon, 23 Apr 2007 02:52:03 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N2q3ap001249 for perforce@freebsd.org; Mon, 23 Apr 2007 02:52:03 GMT (envelope-from mjacob@freebsd.org) Date: Mon, 23 Apr 2007 02:52:03 GMT Message-Id: <200704230252.l3N2q3ap001249@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118630 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 02:52:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=118630 Change 118630 by mjacob@mjexp on 2007/04/23 02:51:22 First blush at MPSAFE isp. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#20 edit .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#13 edit .. //depot/projects/mjexp/sys/dev/isp/isp_pci.c#23 edit .. //depot/projects/mjexp/sys/dev/isp/isp_sbus.c#12 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#20 (text+ko) ==== @@ -99,7 +99,9 @@ #else static struct cdevsw isp_cdevsw = { .d_version = D_VERSION, +#if __FreeBSD_version < 700037 .d_flags = D_NEEDGIANT, +#endif .d_ioctl = ispioctl, .d_name = "isp", }; @@ -172,39 +174,6 @@ xpt_action((union ccb *)&csa); isp->isp_sim = sim; isp->isp_path = path; - /* - * Create a kernel thread for fibre channel instances. We - * don't have dual channel FC cards. - */ - if (IS_FC(isp)) { -#if __FreeBSD_version >= 500000 - if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, - RFHIGHPID, 0, "%s: fc_thrd", - device_get_nameunit(isp->isp_dev))) -#else - if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, - "%s: fc_thrd", device_get_nameunit(isp->isp_dev))) -#endif - { - xpt_bus_deregister(cam_sim_path(sim)); - cam_sim_free(sim, TRUE); - config_intrhook_disestablish(&isp->isp_osinfo.ehook); - isp_prt(isp, ISP_LOGERR, "could not create kthread"); - return; - } - /* - * We start by being "loop down" if we have an initiator role - */ - if (isp->isp_role & ISP_ROLE_INITIATOR) { - isp_freeze_loopdown(isp, "isp_attach"); - isp->isp_osinfo.ldt = - timeout(isp_ldt, isp, isp_quickboot_time * hz); - isp->isp_osinfo.ldt_running = 1; - isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, - "Starting Initial Loop Down Timer"); - } - } - /* * If we have a second channel, construct SIM entry for that. @@ -266,7 +235,46 @@ } tmp->isp_osinfo.next = isp; } + ISP_UNLOCK(isp); isp_sysctl_update(isp); + ISP_LOCK(isp); + + /* + * Create a kernel thread for fibre channel instances. + */ + if (IS_FC(isp)) { + isp_callout_init(&isp->isp_osinfo.ldt); + isp_callout_init(&isp->isp_osinfo.gdt); + ISP_UNLOCK(isp); +#if __FreeBSD_version >= 500000 + if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, + RFHIGHPID, 0, "%s: fc_thrd", + device_get_nameunit(isp->isp_dev))) +#else + if (kthread_create(isp_kthread, isp, &isp->isp_osinfo.kproc, + "%s: fc_thrd", device_get_nameunit(isp->isp_dev))) +#endif + { + ISP_LOCK(isp); + xpt_bus_deregister(cam_sim_path(sim)); + cam_sim_free(sim, TRUE); + config_intrhook_disestablish(&isp->isp_osinfo.ehook); + isp_prt(isp, ISP_LOGERR, "could not create kthread"); + return; + } + ISP_LOCK(isp); + /* + * We start by being "loop down" if we have an initiator role + */ + if (isp->isp_role & ISP_ROLE_INITIATOR) { + isp_freeze_loopdown(isp, "isp_attach"); + isp->isp_osinfo.ldt_running = 1; + callout_reset(&isp->isp_osinfo.ldt, + isp_quickboot_time * hz, isp_ldt, isp); + isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, + "Starting Initial Loop Down Timer"); + } + } } static void @@ -677,9 +685,11 @@ isp_intr_enable(void *arg) { ispsoftc_t *isp = arg; + ISP_LOCK(isp); if (isp->isp_role != ISP_ROLE_NONE) { ISP_ENABLE_INTS(isp); } + ISP_UNLOCK(isp); /* Release our hook so that the boot can continue. */ config_intrhook_disestablish(&isp->isp_osinfo.ehook); } @@ -2078,10 +2088,12 @@ { ispsoftc_t *isp; XS_T *xs = arg; - for (isp = isplist; isp != NULL; isp = isp->isp_osinfo.next) { - if (isp_watchdog_work(isp, xs)) { - break; - } + int r; + + for (r = 0, isp = isplist; r && isp; isp = isp->isp_osinfo.next) { + ISP_LOCK(isp); + r = isp_watchdog_work(isp, xs); + ISP_UNLOCK(isp); } if (isp == NULL) { printf("isp_watchdog: nobody had %p active\n", arg); @@ -2145,6 +2157,7 @@ fcportdb_t *lp; int dbidx, tgt, more_to_do = 0; + ISP_LOCK(isp); isp_prt(isp, ISP_LOGDEBUG0, "GDT timer expired"); for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) { lp = &FCPARAM(isp)->portdb[dbidx]; @@ -2172,12 +2185,14 @@ isp_make_gone(isp, tgt); } if (more_to_do) { - isp->isp_osinfo.gdt = timeout(isp_gdt, isp, hz); + isp->isp_osinfo.gdt_running = 1; + callout_reset(&isp->isp_osinfo.gdt, hz, isp_gdt, isp); } else { isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "stopping Gone Device Timer"); isp->isp_osinfo.gdt_running = 0; } + ISP_UNLOCK(isp); } /* @@ -2196,6 +2211,8 @@ fcportdb_t *lp; int dbidx, tgt; + ISP_LOCK(isp); + isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Loop Down Timer expired"); /* @@ -2240,7 +2257,8 @@ * to notice that fact (or make it false). */ isp->isp_osinfo.loop_down_time = isp->isp_osinfo.loop_down_limit+1; - wakeup(&isp->isp_osinfo.kproc); + wakeup(ISP_KT_WCHAN(isp)); + ISP_UNLOCK(isp); } static void @@ -2250,8 +2268,10 @@ int slp = 0; #if __FreeBSD_version < 500000 int s = splcam(); +#elif __FreeBSD_version < 700037 + mtx_lock(&Giant); #else - mtx_lock(&Giant); + mtx_lock(&isp->isp_osinfo.lock); #endif /* * The first loop is for our usage where we have yet to have @@ -2330,7 +2350,12 @@ } isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "isp_kthread: sleep time %d", slp); - tsleep(&isp->isp_osinfo.kproc, PRIBIO, "ispf", slp * hz); +#if __FreeBSD_version < 700037 + tsleep(ISP_KT_WCHAN(isp), PRIBIO, "ispf", slp * hz); +#else + msleep(ISP_KT_WCHAN(isp), &isp->isp_osinfo.lock, + PRIBIO, "ispf", slp * hz); +#endif /* * If slp is zero, we're waking up for the first time after * things have been okay. In this case, we set a deferral state @@ -2342,29 +2367,35 @@ isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "isp_kthread: sleep hysteresis tick time %d", isp->isp_osinfo.hysteresis * hz); +#if __FreeBSD_version < 700037 (void) tsleep(&isp_fabric_hysteresis, PRIBIO, "ispT", (isp->isp_osinfo.hysteresis * hz)); +#else + (void) msleep(&isp_fabric_hysteresis, + &isp->isp_osinfo.lock, PRIBIO, "ispT", + (isp->isp_osinfo.hysteresis * hz)); +#endif } } #if __FreeBSD_version < 500000 splx(s); +#elif __FreeBSD_version < 700037 + mtx_unlock(&Giant); #else - mtx_unlock(&Giant); + mtx_unlock(&isp->isp_osinfo.lock); #endif } static void isp_action(struct cam_sim *sim, union ccb *ccb) { - int bus, tgt, error, lim; + int bus, tgt, ts, error, lim; ispsoftc_t *isp; struct ccb_trans_settings *cts; CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("isp_action\n")); isp = (ispsoftc_t *)cam_sim_softc(sim); - ccb->ccb_h.sim_priv.entries[0].field = 0; - ccb->ccb_h.sim_priv.entries[1].ptr = isp; if (isp->isp_state != ISP_RUNSTATE && ccb->ccb_h.func_code == XPT_SCSI_IO) { isp_init(isp); @@ -2380,7 +2411,7 @@ isp->isp_state = ISP_RUNSTATE; } isp_prt(isp, ISP_LOGDEBUG2, "isp_action code %x", ccb->ccb_h.func_code); - + ISP_PCMD(ccb) = NULL; switch (ccb->ccb_h.func_code) { case XPT_SCSI_IO: /* Execute the requested I/O operation */ @@ -2407,30 +2438,34 @@ break; } #endif - ((struct ccb_scsiio *) ccb)->scsi_status = SCSI_STATUS_OK; + ccb->csio.scsi_status = SCSI_STATUS_OK; + if (isp_get_pcmd(isp, ccb)) { + isp_prt(isp, ISP_LOGWARN, "out of PCMDs"); + cam_freeze_devq(ccb->ccb_h.path); + cam_release_devq(ccb->ccb_h.path, + RELSIM_RELEASE_AFTER_TIMEOUT, 0, 250, 0); + xpt_done(ccb); + break; + } error = isp_start((XS_T *) ccb); switch (error) { case CMD_QUEUED: XS_CMD_S_CLEAR(ccb); ccb->ccb_h.status |= CAM_SIM_QUEUED; - if (ccb->ccb_h.timeout != CAM_TIME_INFINITY) { - int ms = ccb->ccb_h.timeout; - if (ms == CAM_TIME_DEFAULT) { - ms = 60*1000; - } - ccb->ccb_h.timeout_ch = - timeout(isp_watchdog, ccb, isp_mstohz(ms)); - } else { - callout_handle_init(&ccb->ccb_h.timeout_ch); + if (ccb->ccb_h.timeout == CAM_TIME_INFINITY) { + break; + } + ts = ccb->ccb_h.timeout; + if (ts == CAM_TIME_DEFAULT) { + ts = 60*1000; } + ts = isp_mstohz(ts); + callout_reset(&PISP_PCMD(ccb)->wdog, ts, + isp_watchdog, ccb); break; case CMD_RQLATER: + isp_free_pcmd(isp, ccb); /* - * This can only happen for Fibre Channel - */ - KASSERT((IS_FC(isp)), ("CMD_RQLATER for FC only")); - - /* * Handle initial and subsequent loop down cases */ if (FCPARAM(isp)->loop_seen_once == 0) { @@ -2461,15 +2496,15 @@ xpt_done(ccb); break; case CMD_EAGAIN: - cam_freeze_devq(ccb->ccb_h.path); - cam_release_devq(ccb->ccb_h.path, - RELSIM_RELEASE_AFTER_TIMEOUT, 0, 250, 0); + isp_free_pcmd(isp, ccb); + XS_SETERR(ccb, CAM_REQUEUE_REQ); xpt_done(ccb); break; case CMD_COMPLETE: isp_done((struct ccb_scsiio *) ccb); break; default: + isp_free_pcmd(isp, ccb); isp_prt(isp, ISP_LOGERR, "What's this? 0x%x at %d in file %s", error, __LINE__, __FILE__); @@ -2916,6 +2951,9 @@ if (error) ccb->ccb_h.status = CAM_REQ_CMP_ERR; else { + if (bootverbose) { + xpt_print(ccb->ccb_h.path, "reset bus\n"); + } if (cam_sim_bus(sim) && isp->isp_path2 != NULL) xpt_async(AC_BUS_RESET, isp->isp_path2, NULL); else if (isp->isp_path != NULL) @@ -3045,6 +3083,7 @@ "finished command on borrowed time"); } XS_CMD_S_CLEAR(sccb); + isp_free_pcmd(isp, (union ccb *) sccb); xpt_done((union ccb *) sccb); } } @@ -3177,9 +3216,9 @@ isp_freeze_loopdown(isp, msg); } if (isp->isp_osinfo.ldt_running == 0) { - isp->isp_osinfo.ldt = timeout(isp_ldt, isp, - isp->isp_osinfo.loop_down_limit * hz); isp->isp_osinfo.ldt_running = 1; + callout_reset(&isp->isp_osinfo.ldt, + isp->isp_osinfo.loop_down_limit * hz, isp_ldt, isp); isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "starting Loop Down Timer"); } @@ -3323,8 +3362,9 @@ if (isp->isp_osinfo.gdt_running == 0) { isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "starting Gone Device Timer"); - isp->isp_osinfo.gdt = timeout(isp_gdt, isp, hz); isp->isp_osinfo.gdt_running = 1; + callout_reset(&isp->isp_osinfo.gdt, hz, + isp_gdt, isp); } tgt = lp->ini_map_idx - 1; isp_prt(isp, ISP_LOGCONFIG, prom2, @@ -3361,12 +3401,11 @@ isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Stopping Loop Down Timer"); isp->isp_osinfo.ldt_running = 0; - untimeout(isp_ldt, isp, isp->isp_osinfo.ldt); - callout_handle_init(&isp->isp_osinfo.ldt); + callout_stop(&isp->isp_osinfo.ldt); } isp_prt(isp, ISP_LOGINFO, msg); isp_freeze_loopdown(isp, msg); - wakeup(&isp->isp_osinfo.kproc); + wakeup(ISP_KT_WCHAN(isp)); break; } #ifdef ISP_TARGET_MODE @@ -3517,8 +3556,13 @@ isp->isp_osinfo.mbox_sleep_ok = 0; isp->isp_osinfo.mbox_sleeping = 1; for (olim = 0; olim < max; olim++) { +#if __FreeBSD_version < 700037 tsleep(&isp->isp_mbxworkp, PRIBIO, "ispmbx_sleep", isp_mstohz(ms)); +#else + msleep(&isp->isp_mbxworkp, &isp->isp_osinfo.lock, + PRIBIO, "ispmbx_sleep", isp_mstohz(ms)); +#endif if (isp->isp_osinfo.mboxcmd_done) { break; } @@ -3587,3 +3631,20 @@ } return (hz); } + +void +isp_platform_intr(void *arg) +{ + ispsoftc_t *isp = arg; + uint32_t isr; + uint16_t sema, mbox; + + ISP_LOCK(isp); + isp->isp_intcnt++; + if (ISP_READ_ISR(isp, &isr, &sema, &mbox) == 0) { + isp->isp_intbogus++; + } else { + isp_intr(isp, isr, sema, mbox); + } + ISP_UNLOCK(isp); +} ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#13 (text+ko) ==== @@ -87,8 +87,10 @@ #if __FreeBSD_version < 500000 #define ISP_IFLAGS INTR_TYPE_CAM +#elif __FreeBSD_version < 700037 +#define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY #else -#define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY +#define ISP_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY | INTR_MPSAFE #endif #if __FreeBSD_version < 700000 @@ -132,10 +134,23 @@ ((lun) & (LUN_HASH_SIZE - 1))) #endif +/* + * Per command info. + */ +struct isp_pcmd { + struct isp_pcmd * next; + bus_dmamap_t dmap; /* dma map for this command */ + struct ispsoftc * isp; /* containing isp */ + struct callout wdog; /* watchdog timer */ +}; +#define ISP_PCMD(ccb) (ccb)->ccb_h.spriv_ptr1 +#define PISP_PCMD(ccb) ((struct isp_pcmd *)ISP_PCMD(ccb)) + struct isposinfo { struct ispsoftc * next; bus_space_tag_t bus_tag; bus_space_handle_t bus_handle; + bus_dma_tag_t dmat; uint64_t default_port_wwn; uint64_t default_node_wwn; uint32_t default_id; @@ -159,11 +174,14 @@ mbox_sleep_ok : 1, mboxcmd_done : 1, mboxbsy : 1; - struct callout_handle ldt; /* loop down timer */ - struct callout_handle gdt; /* gone device timer */ -#if __FreeBSD_version >= 500000 + struct callout ldt; /* loop down timer */ + struct callout gdt; /* gone device timer */ +#if __FreeBSD_version < 500000 + uint32_t splcount; + uint32_t splsaved; +#else + struct mtx lock; const struct firmware * fw; - struct mtx lock; union { struct { char wwnn[17]; @@ -176,6 +194,12 @@ bus_dmamap_t cdmap; #define isp_cdmat isp_osinfo.cdmat #define isp_cdmap isp_osinfo.cdmap + /* + * Per command information. + */ + struct isp_pcmd * pcmd_pool; + struct isp_pcmd * pcmd_free; + #ifdef ISP_TARGET_MODE #define TM_WILDCARD_ENABLED 0x02 #define TM_TMODE_ENABLED 0x01 @@ -187,6 +211,7 @@ atio_private_data_t atpdp[ATPDPSIZE]; #endif }; +#define ISP_KT_WCHAN(isp) (&(isp)->isp_osinfo.kproc) #define isp_lock isp_osinfo.lock #define isp_bus_tag isp_osinfo.bus_tag @@ -195,6 +220,25 @@ /* * Locking macros... */ +#if __FreeBSD_version < 500000 +#define ISP_LOCK(isp) \ + if (isp->isp_osinfo.splcount++ == 0) { \ + isp->isp_osinfo.splsaved = splcam(); \ + } +#define ISP_UNLOCK(isp) \ + if (isp->isp_osinfo.splcount > 1) { \ + isp->isp_osinfo.splcount--; \ + } else { \ + isp->isp_osinfo.splcount = 0; \ + splx(isp->isp_osinfo.splsaved); \ + } +#elif __FreeBSD_version < 700037 +#define ISP_LOCK(isp) do {} while (0) +#define ISP_UNLOCK(isp) do {} while (0) +#else +#define ISP_LOCK(isp) mtx_lock(&isp->isp_osinfo.lock) +#define ISP_UNLOCK(isp) mtx_unlock(&isp->isp_osinfo.lock) +#endif /* * Required Macros/Defines @@ -264,7 +308,7 @@ #define XS_T struct ccb_scsiio #define XS_DMA_ADDR_T bus_addr_t -#define XS_ISP(ccb) ((ispsoftc_t *) (ccb)->ccb_h.spriv_ptr1) +#define XS_ISP(ccb) cam_sim_softc(xpt_path_sim((ccb)->ccb_h.path)) #define XS_CHANNEL(ccb) cam_sim_bus(xpt_path_sim((ccb)->ccb_h.path)) #define XS_TGT(ccb) (ccb)->ccb_h.target_id #define XS_LUN(ccb) (ccb)->ccb_h.target_lun @@ -465,6 +509,7 @@ void isp_mbox_notify_done(ispsoftc_t *); void isp_mbox_release(ispsoftc_t *); int isp_mstohz(int); +void isp_platform_intr(void *); /* * Platform Version specific defines @@ -478,11 +523,16 @@ #define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \ bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \ busdma_lock_mutex, &Giant, z) +#elif __FreeBSD_version < 700037 +#define BUS_DMA_ROOTARG(x) bus_get_dma_tag(x) +#define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \ + bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \ + busdma_lock_mutex, &Giant, z) #else #define BUS_DMA_ROOTARG(x) bus_get_dma_tag(x) #define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \ bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \ - busdma_lock_mutex, &Giant, z) + busdma_lock_mutex, &isp->isp_osinfo.lock, z) #endif #if __FreeBSD_version < 700031 @@ -494,11 +544,14 @@ #if __FreeBSD_version < 500000 #define isp_sim_alloc cam_sim_alloc +#define isp_callout_init(x) callout_init(x) #elif __FreeBSD_version < 700037 +#define isp_callout_init(x) callout_init(x, 0) #define isp_sim_alloc cam_sim_alloc #else +#define isp_callout_init(x) callout_init(x, 1) #define isp_sim_alloc(a, b, c, d, e, f, g, h) \ - cam_sim_alloc(a, b, c, d, e, &Giant, f, g, h) + cam_sim_alloc(a, b, c, d, e, &(d)->isp_osinfo.lock, f, g, h) #endif /* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */ @@ -507,6 +560,28 @@ /* * Platform specific inline functions */ +static inline int isp_get_pcmd(ispsoftc_t *, union ccb *); +static inline void isp_free_pcmd(ispsoftc_t *, union ccb *); + +static inline int +isp_get_pcmd(ispsoftc_t *isp, union ccb *ccb) +{ + ISP_PCMD(ccb) = isp->isp_osinfo.pcmd_free; + if (ISP_PCMD(ccb) == NULL) { + return (-1); + } + isp->isp_osinfo.pcmd_free = ((struct isp_pcmd *)ISP_PCMD(ccb))->next; + return (0); +} + +static inline void +isp_free_pcmd(ispsoftc_t *isp, union ccb *ccb) +{ + ((struct isp_pcmd *)ISP_PCMD(ccb))->next = isp->isp_osinfo.pcmd_free; + isp->isp_osinfo.pcmd_free = ISP_PCMD(ccb); + ISP_PCMD(ccb) = NULL; +} + /* * ISP General Library functions @@ -514,10 +589,4 @@ #include -/* - * XXX: Temp - */ -#if ISP_DEFAULT_ROLES == ISP_ROLE_BOTH -#error "Dual Role Temporarily Unsupported" -#endif #endif /* _ISP_FREEBSD_H */ ==== //depot/projects/mjexp/sys/dev/isp/isp_pci.c#23 (text+ko) ==== @@ -338,7 +338,6 @@ void * ih; int16_t pci_poff[_NREG_BLKS]; bus_dma_tag_t dmat; - bus_dmamap_t *dmaps; #if __FreeBSD_version > 700025 int msicount; #endif @@ -352,7 +351,6 @@ DEVMETHOD(device_detach, isp_pci_detach), { 0, 0 } }; -static void isp_pci_intr(void *); static driver_t isp_pci_driver = { "isp", isp_pci_methods, sizeof (struct isp_pcisoftc) @@ -704,9 +702,6 @@ } } - callout_handle_init(&isp->isp_osinfo.ldt); - callout_handle_init(&isp->isp_osinfo.gdt); - if (IS_SCSI(isp)) { return; } @@ -1180,7 +1175,7 @@ locksetup++; #endif - if (isp_setup_intr(dev, irq, ISP_IFLAGS, NULL, isp_pci_intr, isp, + if (isp_setup_intr(dev, irq, ISP_IFLAGS, NULL, isp_platform_intr, isp, &pcs->ih)) { device_printf(dev, "could not setup interrupt\n"); goto bad; @@ -1203,53 +1198,47 @@ /* * Make sure we're in reset state. */ + ISP_LOCK(isp); isp_reset(isp); if (isp->isp_state != ISP_RESETSTATE) { + ISP_UNLOCK(isp); goto bad; } isp_init(isp); if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_INITSTATE) { isp_uninit(isp); + ISP_UNLOCK(isp); goto bad; } isp_attach(isp); if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_RUNSTATE) { isp_uninit(isp); + ISP_UNLOCK(isp); goto bad; } - /* - * XXXX: Here is where we might unload the f/w module - * XXXX: (or decrease the reference count to it). - */ - + ISP_UNLOCK(isp); return (0); bad: - if (pcs && pcs->ih) { (void) bus_teardown_intr(dev, irq, pcs->ih); } - #if __FreeBSD_version >= 500000 if (locksetup && isp) { mtx_destroy(&isp->isp_osinfo.lock); } #endif - if (irq) { (void) bus_release_resource(dev, SYS_RES_IRQ, iqd, irq); } - #if __FreeBSD_version > 700025 if (pcs && pcs->msicount) { pci_release_msi(dev); } #endif - if (regs) { (void) bus_release_resource(dev, rtp, rgd, regs); } - if (pcs) { if (pcs->pci_isp.isp_param) { #ifdef ISP_FW_CRASH_DUMP @@ -1260,11 +1249,6 @@ free(pcs->pci_isp.isp_param, M_DEVBUF); } } - - /* - * XXXX: Here is where we might unload the f/w module - * XXXX: (or decrease the reference count to it). - */ return (ENXIO); } @@ -1283,22 +1267,6 @@ return (0); } -static void -isp_pci_intr(void *arg) -{ - ispsoftc_t *isp = arg; - uint32_t isr; - uint16_t sema, mbox; - - isp->isp_intcnt++; - if (ISP_READ_ISR(isp, &isr, &sema, &mbox) == 0) { - isp->isp_intbogus++; - } else { - isp_intr(isp, isr, sema, mbox); - } -} - - #define IspVirt2Off(a, x) \ (((struct isp_pcisoftc *)a)->pci_poff[((x) & _BLK_REG_MASK) >> \ _BLK_REG_SHFT] + ((x) & 0xfff)) @@ -1331,8 +1299,7 @@ } static int -isp_pci_rd_isr(ispsoftc_t *isp, uint32_t *isrp, - uint16_t *semap, uint16_t *mbp) +isp_pci_rd_isr(ispsoftc_t *isp, uint32_t *isrp, uint16_t *semap, uint16_t *mbp) { uint16_t isr, sema; @@ -1739,9 +1706,11 @@ if (isp->isp_rquest) { return (0); } + ISP_UNLOCK(isp); if (isp->isp_maxcmds == 0) { isp_prt(isp, ISP_LOGERR, "maxcmds not set"); + ISP_LOCK(isp); return (1); } @@ -1754,11 +1723,22 @@ slim = (1 << 24); } + len = isp->isp_maxcmds * sizeof (struct isp_pcmd); + isp->isp_osinfo.pcmd_pool = + (struct isp_pcmd *) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); + if (isp->isp_osinfo.pcmd_pool == NULL) { + isp_prt(isp, ISP_LOGERR, "cannot allocate pcmds"); + ISP_LOCK(isp); + return (1); + } + /* * XXX: We don't really support 64 bit target mode for parallel scsi yet */ #ifdef ISP_TARGET_MODE if (IS_SCSI(isp) && sizeof (bus_addr_t) > 4) { + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); + ISP_LOCK(isp); isp_prt(isp, ISP_LOGERR, "we cannot do DAC for SPI cards yet"); return (1); } @@ -1766,7 +1746,9 @@ if (isp_dma_tag_create(BUS_DMA_ROOTARG(pcs->pci_dev), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, - &pcs->dmat)) { + &isp->isp_osinfo.dmat)) { + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); + ISP_LOCK(isp); isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); return (1); } @@ -1775,6 +1757,8 @@ len = sizeof (XS_T **) * isp->isp_maxcmds; isp->isp_xflist = (XS_T **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); if (isp->isp_xflist == NULL) { + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); + ISP_LOCK(isp); isp_prt(isp, ISP_LOGERR, "cannot alloc xflist array"); return (1); } @@ -1782,20 +1766,13 @@ len = sizeof (void **) * isp->isp_maxcmds; isp->isp_tgtlist = (void **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); if (isp->isp_tgtlist == NULL) { + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); + free(isp->isp_xflist, M_DEVBUF); + ISP_LOCK(isp); isp_prt(isp, ISP_LOGERR, "cannot alloc tgtlist array"); return (1); } #endif - len = sizeof (bus_dmamap_t) * isp->isp_maxcmds; - pcs->dmaps = (bus_dmamap_t *) malloc(len, M_DEVBUF, M_WAITOK); - if (pcs->dmaps == NULL) { - isp_prt(isp, ISP_LOGERR, "can't alloc dma map storage"); - free(isp->isp_xflist, M_DEVBUF); -#ifdef ISP_TARGET_MODE - free(isp->isp_tgtlist, M_DEVBUF); -#endif - return (1); - } /* * Allocate and map the request, result queues, plus FC scratch area. @@ -1810,16 +1787,17 @@ /* * Create a tag for the control spaces- force it to within 32 bits. */ - if (isp_dma_tag_create(pcs->dmat, QENTRY_LEN, slim, + if (isp_dma_tag_create(isp->isp_osinfo.dmat, QENTRY_LEN, slim, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, len, ns, slim, 0, &isp->isp_cdmat)) { isp_prt(isp, ISP_LOGERR, "cannot create a dma tag for control spaces"); - free(pcs->dmaps, M_DEVBUF); + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF); #ifdef ISP_TARGET_MODE free(isp->isp_tgtlist, M_DEVBUF); #endif + ISP_LOCK(isp); return (1); } @@ -1828,25 +1806,35 @@ isp_prt(isp, ISP_LOGERR, "cannot allocate %d bytes of CCB memory", len); bus_dma_tag_destroy(isp->isp_cdmat); + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); free(isp->isp_xflist, M_DEVBUF); #ifdef ISP_TARGET_MODE free(isp->isp_tgtlist, M_DEVBUF); #endif - free(pcs->dmaps, M_DEVBUF); + ISP_LOCK(isp); return (1); } for (i = 0; i < isp->isp_maxcmds; i++) { - error = bus_dmamap_create(pcs->dmat, 0, &pcs->dmaps[i]); + struct isp_pcmd *pcmd = &isp->isp_osinfo.pcmd_pool[i]; + error = bus_dmamap_create(isp->isp_osinfo.dmat, 0, &pcmd->dmap); if (error) { isp_prt(isp, ISP_LOGERR, "error %d creating per-cmd DMA maps", error); while (--i >= 0) { - bus_dmamap_destroy(pcs->dmat, pcs->dmaps[i]); + bus_dmamap_destroy(isp->isp_osinfo.dmat, + isp->isp_osinfo.pcmd_pool[i].dmap); } goto bad; } + isp_callout_init(&pcmd->wdog); + if (i == isp->isp_maxcmds-1) { + pcmd->next = NULL; + } else { + pcmd->next = &isp->isp_osinfo.pcmd_pool[i+1]; + } } + isp->isp_osinfo.pcmd_free = &isp->isp_osinfo.pcmd_pool[0]; im.isp = isp; im.error = 0; @@ -1864,6 +1852,7 @@ base += ISP_QUEUE_SIZE(RESULT_QUEUE_LEN(isp)); FCPARAM(isp)->isp_scratch = base; } + ISP_LOCK(isp); return (0); bad: @@ -1873,8 +1862,9 @@ #ifdef ISP_TARGET_MODE free(isp->isp_tgtlist, M_DEVBUF); #endif - free(pcs->dmaps, M_DEVBUF); + free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); isp->isp_rquest = NULL; + ISP_LOCK(isp); return (1); } @@ -1917,7 +1907,6 @@ mush_t *mp; struct ccb_scsiio *csio; ispsoftc_t *isp; - struct isp_pcisoftc *pcs; bus_dmamap_t *dp; ct_entry_t *cto, *qe; uint8_t scsi_status; @@ -1998,12 +1987,12 @@ cto->ct_resid = 0; cto->ct_scsi_status = 0; - pcs = (struct isp_pcisoftc *)isp; - dp = &pcs->dmaps[isp_handle_index(handle & ISP_HANDLE_MASK)]; + dp = &ISP_PCMD(csio)->dmap; if ((csio->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { - bus_dmamap_sync(pcs->dmat, *dp, BUS_DMASYNC_PREREAD); + bus_dmamap_sync(isp->isp_osinfo.dmat, *dp, BUS_DMASYNC_PREREAD); } else { - bus_dmamap_sync(pcs->dmat, *dp, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(isp->isp_osinfo.dmat, + *dp, BUS_DMASYNC_PREWRITE); } nxti = *mp->nxtip; @@ -2369,7 +2358,6 @@ mush_t *mp; ispsoftc_t *isp; struct ccb_scsiio *csio; - struct isp_pcisoftc *pcs; bus_dmamap_t *dp; bus_dma_segment_t *eseg; ispreqt7_t *rq; @@ -2391,14 +2379,14 @@ csio = mp->cmd_token; isp = mp->isp; rq = mp->rq; - pcs = (struct isp_pcisoftc *)mp->isp; - dp = &pcs->dmaps[isp_handle_index(rq->req_handle & ISP_HANDLE_MASK)]; + dp = &PISP_PCMD(csio)->dmap; nxti = *mp->nxtip; if ((csio->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { - bus_dmamap_sync(pcs->dmat, *dp, BUS_DMASYNC_PREREAD); + bus_dmamap_sync(isp->isp_osinfo.dmat, *dp, BUS_DMASYNC_PREREAD); } else { - bus_dmamap_sync(pcs->dmat, *dp, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(isp->isp_osinfo.dmat, + *dp, BUS_DMASYNC_PREWRITE); } datalen = XS_XFRLEN(csio); @@ -2476,7 +2464,6 @@ mush_t *mp; ispsoftc_t *isp; struct ccb_scsiio *csio; - struct isp_pcisoftc *pcs; bus_dmamap_t *dp; bus_dma_segment_t *eseg; ispreq64_t *rq; @@ -2497,14 +2484,14 @@ csio = mp->cmd_token; isp = mp->isp; rq = mp->rq; - pcs = (struct isp_pcisoftc *)mp->isp; - dp = &pcs->dmaps[isp_handle_index(rq->req_handle & ISP_HANDLE_MASK)]; + dp = &PISP_PCMD(csio)->dmap; nxti = *mp->nxtip; if ((csio->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { - bus_dmamap_sync(pcs->dmat, *dp, BUS_DMASYNC_PREREAD); + bus_dmamap_sync(isp->isp_osinfo.dmat, *dp, BUS_DMASYNC_PREREAD); } else { - bus_dmamap_sync(pcs->dmat, *dp, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(isp->isp_osinfo.dmat, + *dp, BUS_DMASYNC_PREWRITE); } datalen = XS_XFRLEN(csio); @@ -2610,7 +2597,6 @@ mush_t *mp; ispsoftc_t *isp; struct ccb_scsiio *csio; - struct isp_pcisoftc *pcs; bus_dmamap_t *dp; bus_dma_segment_t *eseg; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 04:51:31 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D356216A404; Mon, 23 Apr 2007 04:51:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8DE2516A400 for ; Mon, 23 Apr 2007 04:51:30 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7D27313C465 for ; Mon, 23 Apr 2007 04:51:30 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N4pUUh030556 for ; Mon, 23 Apr 2007 04:51:30 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N4pUxs030552 for perforce@freebsd.org; Mon, 23 Apr 2007 04:51:30 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 23 Apr 2007 04:51:30 GMT Message-Id: <200704230451.l3N4pUxs030552@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118631 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 04:51:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=118631 Change 118631 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/23 04:51:05 bring FreeBSD driver somewhat more inline with functionality in the Linux driver - add most of the missing ioctls - allocate interrupts when bringing up first port / de-allocate when taking down last - build l2t - add missing tunables Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#9 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_ioctl.h#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.c#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.h#3 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#6 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#6 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.h#6 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_osdep.h#7 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#8 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_toedev.h#4 edit .. //depot/projects/opentoe/sys/modules/cxgb/Makefile#6 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#9 (text+ko) ==== @@ -141,14 +141,20 @@ uint32_t holdoff_tmr; uint32_t next_holdoff; uint32_t imm_data; + struct rsp_desc *desc; + uint32_t cntxt_id; + struct mtx lock; + struct mbuf *rx_head; /* offload packet receive queue head */ + struct mbuf *rx_tail; /* offload packet receive queue tail */ + + uint32_t offload_pkts; + uint32_t offload_bundles; uint32_t pure_rsps; - struct rsp_desc *desc; + bus_addr_t phys_addr; - uint32_t cntxt_id; bus_dma_tag_t desc_tag; bus_dmamap_t desc_map; struct mbuf *m; - struct mtx lock; }; struct rx_desc; @@ -242,6 +248,7 @@ bus_space_tag_t bt; bus_size_t mmio_len; uint32_t link_width; + /* DMA resources */ bus_dma_tag_t parent_dmat; @@ -292,6 +299,8 @@ uint32_t open_device_map; uint32_t registered_device_map; struct mtx lock; + driver_intr_t *cxgb_intr; + int msi_count; }; struct t3_rx_mode { @@ -391,6 +400,7 @@ int, struct port_info *); void t3_free_sge_resources(adapter_t *); void t3_sge_start(adapter_t *); +void t3_sge_stop(adapter_t *); void t3b_intr(void *data); void t3_intr_msi(void *data); void t3_intr_msix(void *data); ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_ioctl.h#3 (text+ko) ==== @@ -68,7 +68,8 @@ CH_IFCONF_GETREGS, CH_GETMIIREGS, CH_SETMIIREGS, - + CH_SET_FILTER, + CH_SET_HW_SCHED, }; struct ch_reg { @@ -217,6 +218,7 @@ #define CHELSIO_SETREG _IOW('f', CH_SETREG, struct ch_reg) #define CHELSIO_GETREG _IOWR('f', CH_GETREG, struct ch_reg) +#define CHELSIO_READ_TCAM_WORD _IOR('f', CH_READ_TCAM_WORD, struct ch_tcam) #define CHELSIO_GET_MEM _IOWR('f', CH_GET_MEM, struct ch_mem_range) #define CHELSIO_GET_SGE_CONTEXT _IOWR('f', CH_GET_SGE_CONTEXT, struct ch_cntxt) #define CHELSIO_GET_SGE_DESC _IOWR('f', CH_GET_SGE_DESC, struct ch_desc) @@ -224,6 +226,8 @@ #define CHELSIO_SET_QSET_PARAMS _IOW('f', CH_SET_QSET_PARAMS, struct ch_qset_params) #define CHELSIO_GET_QSET_NUM _IOWR('f', CH_GET_QSET_NUM, struct ch_reg) #define CHELSIO_SET_QSET_NUM _IOW('f', CH_SET_QSET_NUM, struct ch_reg) +#define CHELSIO_GETMTUTAB _IOR('f', CH_GET_QSET_NUM, struct ch_mtus) +#define CHELSIO_SETMTUTAB _IOW('f', CH_SET_QSET_NUM, struct ch_mtus) #define CHELSIO_SET_TRACE_FILTER _IOW('f', CH_SET_TRACE_FILTER, struct ch_trace) @@ -231,4 +235,6 @@ #define CHELSIO_IFCONF_GETREGS _IOWR('f', CH_IFCONF_GETREGS, struct ifconf_regs) #define SIOCGMIIREG _IOWR('f', CH_GETMIIREGS, struct mii_data) #define SIOCSMIIREG _IOWR('f', CH_SETMIIREGS, struct mii_data) +#define CHELSIO_SET_HW_SCHED _IOWR('f', CH_SET_HW_SCHED, struct ch_hw_sched) +#define CHELSIO_DEVUP _IO('f', CH_DEVUP) #endif ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.c#3 (text+ko) ==== @@ -1,14 +1,62 @@ -#include -#include -#include -#include -#include -#include -#include "cxgb3_defs.h" -#include "l2t.h" -#include "t3_cpl.h" -#include "firmware_exports.h" -#include "cxgb3_compat.h" +/************************************************************************** + +Copyright (c) 2007, Chelsio Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the Chelsio Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +***************************************************************************/ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + + + + +#include +#include +#include +#include +#include +#include +#include + +#include + +#define neigh_release(...) #define VLAN_NONE 0xfff @@ -26,146 +74,160 @@ * these perform lookups. */ -static inline unsigned int vlan_prio(const struct l2t_entry *e) +static inline unsigned int +vlan_prio(const struct l2t_entry *e) { return e->vlan >> 13; } -static inline unsigned int arp_hash(u32 key, int ifindex, - const struct l2t_data *d) +static inline unsigned int +arp_hash(u32 key, int ifindex, const struct l2t_data *d) { return jhash_2words(key, ifindex, 0) & (d->nentries - 1); } -static inline void neigh_replace(struct l2t_entry *e, struct neighbour *n) +static inline void +neigh_replace(struct l2t_entry *e, struct ifnet *n) { +#if 0 neigh_hold(n); if (e->neigh) neigh_release(e->neigh); e->neigh = n; +#endif } - +#if 0 /* * Set up an L2T entry and send any packets waiting in the arp queue. The - * supplied skb is used for the CPL_L2T_WRITE_REQ. Must be called with the + * supplied mbuf is used for the CPL_L2T_WRITE_REQ. Must be called with the * entry locked. */ -static int setup_l2e_send_pending(struct toedev *dev, struct sk_buff *skb, - struct l2t_entry *e) +static int +setup_l2e_send_pending(struct toedev *dev, struct mbuf *m, + struct l2t_entry *e) { struct cpl_l2t_write_req *req; - if (!skb) { - skb = alloc_skb(sizeof(*req), GFP_ATOMIC); - if (!skb) - return -ENOMEM; + if (!m) { + if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) + return (ENOMEM); } - - req = (struct cpl_l2t_write_req *)__skb_put(skb, sizeof(*req)); + /* + * XXX MH_ALIGN + */ + req = mtod(m, struct cpl_l2t_write_req *); req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ, e->idx)); req->params = htonl(V_L2T_W_IDX(e->idx) | V_L2T_W_IFF(e->smt_idx) | - V_L2T_W_VLAN(e->vlan & VLAN_VID_MASK) | + V_L2T_W_VLAN(e->vlan & EVL_VLID_MASK) | V_L2T_W_PRIO(vlan_prio(e))); +#if 0 memcpy(e->dmac, e->neigh->ha, sizeof(e->dmac)); +#endif memcpy(req->dst_mac, e->dmac, sizeof(req->dst_mac)); - skb->priority = CPL_PRIORITY_CONTROL; - cxgb3_ofld_send(dev, skb); + m->m_priority = CPL_PRIORITY_CONTROL; + cxgb_ofld_send(dev, m); while (e->arpq_head) { - skb = e->arpq_head; - e->arpq_head = skb->next; - skb->next = NULL; - cxgb3_ofld_send(dev, skb); + m = e->arpq_head; + e->arpq_head = m->m_next; + m->m_next = NULL; + cxgb_ofld_send(dev, m); } e->arpq_tail = NULL; e->state = L2T_STATE_VALID; return 0; } - +#endif /* * Add a packet to the an L2T entry's queue of packets awaiting resolution. * Must be called with the entry's lock held. */ -static inline void arpq_enqueue(struct l2t_entry *e, struct sk_buff *skb) +static inline void +arpq_enqueue(struct l2t_entry *e, struct mbuf *m) { - skb->next = NULL; + m->m_next = NULL; if (e->arpq_head) - e->arpq_tail->next = skb; + e->arpq_tail->m_next = m; else - e->arpq_head = skb; - e->arpq_tail = skb; + e->arpq_head = m; + e->arpq_tail = m; } -int t3_l2t_send_slow(struct toedev *dev, struct sk_buff *skb, +int +t3_l2t_send_slow(struct toedev *dev, struct mbuf *m, struct l2t_entry *e) { again: switch (e->state) { case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ +#if 0 neigh_event_send(e->neigh, NULL); - spin_lock_bh(&e->lock); +#endif + mtx_lock(&e->lock); if (e->state == L2T_STATE_STALE) e->state = L2T_STATE_VALID; - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); case L2T_STATE_VALID: /* fast-path, send the packet on */ - return cxgb3_ofld_send(dev, skb); + return cxgb_ofld_send(dev, m); case L2T_STATE_RESOLVING: - spin_lock_bh(&e->lock); + mtx_lock(&e->lock); if (e->state != L2T_STATE_RESOLVING) { // ARP already completed - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); goto again; } - arpq_enqueue(e, skb); - spin_unlock_bh(&e->lock); + arpq_enqueue(e, m); + mtx_unlock(&e->lock); /* * Only the first packet added to the arpq should kick off - * resolution. However, because the alloc_skb below can fail, + * resolution. However, because the m_gethdr below can fail, * we allow each packet added to the arpq to retry resolution * as a way of recovering from transient memory exhaustion. * A better way would be to use a work request to retry L2T * entries when there's no memory. */ +#if 0 if (!neigh_event_send(e->neigh, NULL)) { - skb = alloc_skb(sizeof(struct cpl_l2t_write_req), - GFP_ATOMIC); - if (!skb) + if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) break; - spin_lock_bh(&e->lock); + mtx_lock(&e->lock); if (e->arpq_head) - setup_l2e_send_pending(dev, skb, e); + setup_l2e_send_pending(dev, m, e); else /* we lost the race */ - __kfree_skb(skb); - spin_unlock_bh(&e->lock); + m_free(m); + mtx_unlock(&e->lock); } +#endif } return 0; } -EXPORT_SYMBOL(t3_l2t_send_slow); -void t3_l2t_send_event(struct toedev *dev, struct l2t_entry *e) +void +t3_l2t_send_event(struct toedev *dev, struct l2t_entry *e) { again: switch (e->state) { case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ +#if 0 neigh_event_send(e->neigh, NULL); - spin_lock_bh(&e->lock); +#endif + mtx_lock(&e->lock); if (e->state == L2T_STATE_STALE) { e->state = L2T_STATE_VALID; } - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); return; case L2T_STATE_VALID: /* fast-path, send the packet on */ return; case L2T_STATE_RESOLVING: - spin_lock_bh(&e->lock); + mtx_lock(&e->lock); if (e->state != L2T_STATE_RESOLVING) { // ARP already completed - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); goto again; } - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); /* * Only the first packet added to the arpq should kick off @@ -175,31 +237,33 @@ * A better way would be to use a work request to retry L2T * entries when there's no memory. */ +#if 0 neigh_event_send(e->neigh, NULL); +#endif } return; } -EXPORT_SYMBOL(t3_l2t_send_event); - +#if 0 /* * Allocate a free L2T entry. Must be called with l2t_data.lock held. */ -static struct l2t_entry *alloc_l2e(struct l2t_data *d) +static struct l2t_entry * +alloc_l2e(struct l2t_data *d) { struct l2t_entry *end, *e, **p; - if (!atomic_read(&d->nfree)) + if (!atomic_load_acq_int(&d->nfree)) return NULL; /* there's definitely a free entry */ for (e = d->rover, end = &d->l2tab[d->nentries]; e != end; ++e) - if (atomic_read(&e->refcnt) == 0) + if (atomic_load_acq_int(&e->refcnt) == 0) goto found; - for (e = &d->l2tab[1]; atomic_read(&e->refcnt); ++e) ; + for (e = &d->l2tab[1]; atomic_load_acq_int(&e->refcnt); ++e) ; found: d->rover = e + 1; - atomic_dec(&d->nfree); + atomic_add_int(&d->nfree, -1); /* * The entry we found may be an inactive entry that is @@ -217,7 +281,7 @@ } return e; } - +#endif /* * Called when an L2T entry has no more users. The entry is left in the hash * table since it is likely to be reused but we also bump nfree to indicate @@ -229,29 +293,31 @@ * drops to 0 we need to take the entry's lock to avoid races with a new * incarnation. */ -void t3_l2e_free(struct l2t_data *d, struct l2t_entry *e) +void +t3_l2e_free(struct l2t_data *d, struct l2t_entry *e) { - spin_lock_bh(&e->lock); - if (atomic_read(&e->refcnt) == 0) { /* hasn't been recycled */ + mtx_lock(&e->lock); + if (atomic_load_acq_int(&e->refcnt) == 0) { /* hasn't been recycled */ if (e->neigh) { neigh_release(e->neigh); e->neigh = NULL; } } - spin_unlock_bh(&e->lock); - atomic_inc(&d->nfree); + mtx_unlock(&e->lock); + atomic_add_int(&d->nfree, 1); } -EXPORT_SYMBOL(t3_l2e_free); /* * Update an L2T entry that was previously used for the same next hop as neigh. * Must be called with softirqs disabled. */ -static inline void reuse_entry(struct l2t_entry *e, struct neighbour *neigh) +static inline void +reuse_entry(struct l2t_entry *e, struct ifnet *neigh) { +#ifdef notyet unsigned int nud_state; - spin_lock(&e->lock); /* avoid race with t3_l2t_free */ + mtx_lock(&e->lock); /* avoid race with t3_l2t_free */ if (neigh != e->neigh) neigh_replace(e, neigh); @@ -263,24 +329,27 @@ e->state = L2T_STATE_VALID; else e->state = L2T_STATE_STALE; - spin_unlock(&e->lock); + mtx_unlock(&e->lock); +#endif } -struct l2t_entry *t3_l2t_get(struct toedev *dev, struct neighbour *neigh, +struct l2t_entry * +t3_l2t_get(struct toedev *dev, struct ifnet *neigh, unsigned int smt_idx) { +#if 0 struct l2t_entry *e; struct l2t_data *d = L2DATA(dev); u32 addr = *(u32 *) neigh->primary_key; - int ifidx = neigh->dev->ifindex; + int ifidx = neigh->if_index; int hash = arp_hash(addr, ifidx, d); - write_lock_bh(&d->lock); + rw_wlock(&d->lock); for (e = d->l2tab[hash].first; e; e = e->next) if (e->addr == addr && e->ifindex == ifidx && e->smt_idx == smt_idx) { l2t_hold(d, e); - if (atomic_read(&e->refcnt) == 1) + if (atomic_load_acq_int(&e->refcnt) == 1) reuse_entry(e, neigh); goto done; } @@ -288,26 +357,27 @@ /* Need to allocate a new entry */ e = alloc_l2e(d); if (e) { - spin_lock(&e->lock); /* avoid race with t3_l2t_free */ + mtx_lock(&e->lock); /* avoid race with t3_l2t_free */ e->next = d->l2tab[hash].first; d->l2tab[hash].first = e; e->state = L2T_STATE_RESOLVING; e->addr = addr; e->ifindex = ifidx; e->smt_idx = smt_idx; - atomic_set(&e->refcnt, 1); + atomic_store_rel_int(&e->refcnt, 1); neigh_replace(e, neigh); if (neigh->dev->priv_flags & IFF_802_1Q_VLAN) e->vlan = VLAN_DEV_INFO(neigh->dev)->vlan_id; else e->vlan = VLAN_NONE; - spin_unlock(&e->lock); + mtx_unlock(&e->lock); } done: - write_unlock_bh(&d->lock); + rw_wunlock(&d->lock); return e; +#endif + return (NULL); } -EXPORT_SYMBOL(t3_l2t_get); /* * Called when address resolution fails for an L2T entry to handle packets @@ -317,46 +387,53 @@ * XXX: maybe we should abandon the latter behavior and just require a failure * handler. */ -static void handle_failed_resolution(struct toedev *dev, struct sk_buff *arpq) +#if 0 +static void +handle_failed_resolution(struct toedev *dev, struct mbuf *arpq) { + while (arpq) { - struct sk_buff *skb = arpq; - struct l2t_skb_cb *cb = L2T_SKB_CB(skb); + struct mbuf *m = arpq; + struct l2t_mbuf_cb *cb = L2T_MBUF_CB(m); - arpq = skb->next; - skb->next = NULL; + arpq = m->m_next; + m->m_next = NULL; if (cb->arp_failure_handler) - cb->arp_failure_handler(dev, skb); + cb->arp_failure_handler(dev, m); else - cxgb3_ofld_send(dev, skb); + cxgb_ofld_send(dev, m); } + } +#endif #if defined(NETEVENT) || !defined(CONFIG_CHELSIO_T3_MODULE) /* * Called when the host's ARP layer makes a change to some entry that is * loaded into the HW L2 table. */ -void t3_l2t_update(struct toedev *dev, struct neighbour *neigh) +void +t3_l2t_update(struct toedev *dev, struct ifnet *neigh) { +#if 0 struct l2t_entry *e; - struct sk_buff *arpq = NULL; + struct mbuf *arpq = NULL; struct l2t_data *d = L2DATA(dev); u32 addr = *(u32 *) neigh->primary_key; int ifidx = neigh->dev->ifindex; int hash = arp_hash(addr, ifidx, d); - read_lock_bh(&d->lock); + rw_rlock(&d->lock); for (e = d->l2tab[hash].first; e; e = e->next) if (e->addr == addr && e->ifindex == ifidx) { - spin_lock(&e->lock); + mtx_lock(&e->lock); goto found; } - read_unlock_bh(&d->lock); + rw_runlock(&d->lock); return; found: - read_unlock(&d->lock); - if (atomic_read(&e->refcnt)) { + rw_runlock(&d->lock); + if (atomic_load_acq_int(&e->refcnt)) { if (neigh != e->neigh) neigh_replace(e, neigh); @@ -373,16 +450,18 @@ setup_l2e_send_pending(dev, NULL, e); } } - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); if (arpq) handle_failed_resolution(dev, arpq); +#endif } #else /* * Called from a kprobe, interrupts are off. */ -void t3_l2t_update(struct toedev *dev, struct neighbour *neigh) +void +t3_l2t_update(struct toedev *dev, struct ifnet *neigh) { struct l2t_entry *e; struct l2t_data *d = L2DATA(dev); @@ -390,37 +469,38 @@ int ifidx = neigh->dev->ifindex; int hash = arp_hash(addr, ifidx, d); - read_lock(&d->lock); + rw_rlock(&d->lock); for (e = d->l2tab[hash].first; e; e = e->next) if (e->addr == addr && e->ifindex == ifidx) { - spin_lock(&e->lock); - if (atomic_read(&e->refcnt)) { + mtx_lock(&e->lock); + if (atomic_load_acq_int(&e->refcnt)) { if (neigh != e->neigh) neigh_replace(e, neigh); e->tdev = dev; mod_timer(&e->update_timer, jiffies + 1); } - spin_unlock(&e->lock); + mtx_unlock(&e->lock); break; } - read_unlock(&d->lock); + rw_runlock(&d->lock); } -static void update_timer_cb(unsigned long data) +static void +update_timer_cb(unsigned long data) { - struct sk_buff *arpq = NULL; + struct mbuf *arpq = NULL; struct l2t_entry *e = (struct l2t_entry *)data; - struct neighbour *neigh = e->neigh; + struct ifnet *neigh = e->neigh; struct toedev *dev = e->tdev; barrier(); - if (!atomic_read(&e->refcnt)) + if (!atomic_load_acq_int(&e->refcnt)) return; - read_lock(&neigh->lock); - spin_lock(&e->lock); + rw_rlock(&neigh->lock); + mtx_lock(&e->lock); - if (atomic_read(&e->refcnt)) { + if (atomic_load_acq_int(&e->refcnt)) { if (e->state == L2T_STATE_RESOLVING) { if (neigh->nud_state & NUD_FAILED) { arpq = e->arpq_head; @@ -434,15 +514,16 @@ setup_l2e_send_pending(dev, NULL, e); } } - spin_unlock(&e->lock); - read_unlock(&neigh->lock); + mtx_unlock(&e->lock); + rw_runlock(&neigh->lock); if (arpq) handle_failed_resolution(dev, arpq); } #endif -struct l2t_data *t3_init_l2t(unsigned int l2t_capacity) +struct l2t_data * +t3_init_l2t(unsigned int l2t_capacity) { struct l2t_data *d; int i, size = sizeof(*d) + l2t_capacity * sizeof(struct l2t_entry); @@ -453,14 +534,14 @@ d->nentries = l2t_capacity; d->rover = &d->l2tab[1]; /* entry 0 is not used */ - atomic_set(&d->nfree, l2t_capacity - 1); - rwlock_init(&d->lock); + atomic_store_rel_int(&d->nfree, l2t_capacity - 1); + rw_init(&d->lock, "L2T"); for (i = 0; i < l2t_capacity; ++i) { d->l2tab[i].idx = i; d->l2tab[i].state = L2T_STATE_UNUSED; - spin_lock_init(&d->l2tab[i].lock); - atomic_set(&d->l2tab[i].refcnt, 0); + mtx_init(&d->l2tab[i].lock, "L2TAB", NULL, MTX_DEF); + atomic_store_rel_int(&d->l2tab[i].refcnt, 0); #ifndef NETEVENT #ifdef CONFIG_CHELSIO_T3_MODULE setup_timer(&d->l2tab[i].update_timer, update_timer_cb, @@ -471,7 +552,8 @@ return d; } -void t3_free_l2t(struct l2t_data *d) +void +t3_free_l2t(struct l2t_data *d) { #ifndef NETEVENT #ifdef CONFIG_CHELSIO_T3_MODULE @@ -490,19 +572,22 @@ #include #include -static inline void *l2t_get_idx(struct seq_file *seq, loff_t pos) +static inline void * +l2t_get_idx(struct seq_file *seq, loff_t pos) { struct l2t_data *d = seq->private; return pos >= d->nentries ? NULL : &d->l2tab[pos]; } -static void *l2t_seq_start(struct seq_file *seq, loff_t *pos) +static void * +l2t_seq_start(struct seq_file *seq, loff_t *pos) { return *pos ? l2t_get_idx(seq, *pos) : SEQ_START_TOKEN; } -static void *l2t_seq_next(struct seq_file *seq, void *v, loff_t *pos) +static void * +l2t_seq_next(struct seq_file *seq, void *v, loff_t *pos) { v = l2t_get_idx(seq, *pos + 1); if (v) @@ -510,11 +595,13 @@ return v; } -static void l2t_seq_stop(struct seq_file *seq, void *v) +static void +l2t_seq_stop(struct seq_file *seq, void *v) { } -static char l2e_state(const struct l2t_entry *e) +static char +l2e_state(const struct l2t_entry *e) { switch (e->state) { case L2T_STATE_VALID: return 'V'; /* valid, fast-path entry */ @@ -526,7 +613,8 @@ } } -static int l2t_seq_show(struct seq_file *seq, void *v) +static int +l2t_seq_show(struct seq_file *seq, void *v) { if (v == SEQ_START_TOKEN) seq_puts(seq, "Index IP address Ethernet address VLAN " @@ -535,70 +623,18 @@ char ip[20]; struct l2t_entry *e = v; - spin_lock_bh(&e->lock); + mtx_lock(&e->lock); sprintf(ip, "%u.%u.%u.%u", NIPQUAD(e->addr)); seq_printf(seq, "%-5u %-15s %02x:%02x:%02x:%02x:%02x:%02x %4d" " %3u %c %7u %4u %s\n", e->idx, ip, e->dmac[0], e->dmac[1], e->dmac[2], e->dmac[3], e->dmac[4], e->dmac[5], - e->vlan & VLAN_VID_MASK, vlan_prio(e), - l2e_state(e), atomic_read(&e->refcnt), e->smt_idx, + e->vlan & EVL_VLID_MASK, vlan_prio(e), + l2e_state(e), atomic_load_acq_int(&e->refcnt), e->smt_idx, e->neigh ? e->neigh->dev->name : ""); - spin_unlock_bh(&e->lock); + mtx_unlock(&e->lock); } return 0; } -static struct seq_operations l2t_seq_ops = { - .start = l2t_seq_start, - .next = l2t_seq_next, - .stop = l2t_seq_stop, - .show = l2t_seq_show -}; - -static int l2t_seq_open(struct inode *inode, struct file *file) -{ - int rc = seq_open(file, &l2t_seq_ops); - - if (!rc) { - struct proc_dir_entry *dp = PDE(inode); - struct seq_file *seq = file->private_data; - - seq->private = dp->data; - } - return rc; -} - -static struct file_operations l2t_seq_fops = { - .owner = THIS_MODULE, - .open = l2t_seq_open, - .read = seq_read, - .llseek = seq_lseek, - .release = seq_release, -}; - -/* - * Create the proc entries for the L2 table under dir. - */ -int t3_l2t_proc_setup(struct proc_dir_entry *dir, struct l2t_data *d) -{ - struct proc_dir_entry *p; - - if (!dir) - return -EINVAL; - - p = create_proc_entry("l2t", S_IRUGO, dir); - if (!p) - return -ENOMEM; - - p->proc_fops = &l2t_seq_fops; - p->data = d; - return 0; -} - -void t3_l2t_proc_free(struct proc_dir_entry *dir) -{ - if (dir) - remove_proc_entry("l2t", dir); -} #endif ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.h#3 (text+ko) ==== @@ -26,7 +26,7 @@ int ifindex; /* neighbor's net_device's ifindex */ uint16_t smt_idx; /* SMT index */ uint16_t vlan; /* VLAN TCI (id: bits 0-11, prio: 13-15 */ - struct ifnet *ifp; /* associated neighbour */ + struct ifnet *neigh; /* associated neighbour */ struct l2t_entry *first; /* start of hash chain */ struct l2t_entry *next; /* next l2t_entry on chain */ struct mbuf *arpq_head; /* queue of packets awaiting resolution */ ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#6 (text+ko) ==== @@ -104,6 +104,7 @@ static int setup_sge_qsets(adapter_t *); static void cxgb_async_intr(void *); static void cxgb_ext_intr_handler(void *, int); +static void cxgb_down(struct adapter *sc); static void cxgb_tick(void *); static void setup_rss(adapter_t *sc); @@ -118,6 +119,10 @@ unsigned int end); static void cxgb_get_regs(adapter_t *sc, struct ifconf_regs *regs, uint8_t *buf); static int cxgb_get_regs_len(void); +static int offload_open(struct port_info *pi); +static int offload_close(struct toedev *tdev); + + static device_method_t cxgb_controller_methods[] = { DEVMETHOD(device_probe, cxgb_controller_probe), @@ -180,11 +185,28 @@ */ static int msi_allowed = 2; TUNABLE_INT("hw.cxgb.msi_allowed", &msi_allowed); - SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "CXGB driver parameters"); SYSCTL_UINT(_hw_cxgb, OID_AUTO, msi_allowed, CTLFLAG_RDTUN, &msi_allowed, 0, "MSI-X, MSI, INTx selector"); +/* + * The driver enables offload as a default. + * To disable it, use ofld_disable = 1. + */ +static int ofld_disable = 0; +TUNABLE_INT("hw.cxgb.ofld_disable", &ofld_disable); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, ofld_disable, CTLFLAG_RDTUN, &ofld_disable, 0, + "disable ULP offload"); + +/* + * The driver uses an auto-queue algorithm by default. + * To disable it and force a single queue-set per port, use singleq = 1. + */ +static int singleq = 0; +TUNABLE_INT("hw.cxgb.singleq", &singleq); +SYSCTL_UINT(_hw_cxgb, OID_AUTO, singleq, CTLFLAG_RDTUN, &singleq, 0, + "use a single queue-set per port"); + enum { MAX_TXQ_ENTRIES = 16384, MAX_CTRL_TXQ_ENTRIES = 1024, @@ -269,7 +291,7 @@ } static int -cxgb_fw_download(adapter_t *sc, device_t dev) +upgrade_fw(adapter_t *sc) { char buf[32]; #ifdef FIRMWARE_LATEST @@ -279,15 +301,14 @@ #endif int status; - snprintf(&buf[0], sizeof(buf), "t3fw%d%d", FW_VERSION_MAJOR, - FW_VERSION_MINOR); + snprintf(&buf[0], sizeof(buf), "t3fw%d%d%d", FW_VERSION_MAJOR, + FW_VERSION_MINOR, FW_VERSION_MICRO); fw = firmware_get(buf); - if (fw == NULL) { - device_printf(dev, "Could not find firmware image %s\n", buf); - return ENOENT; + device_printf(sc->dev, "Could not find firmware image %s\n", buf); + return (ENOENT); } status = t3_load_fw(sc, (const uint8_t *)fw->data, fw->datasize); @@ -297,7 +318,6 @@ return (status); } - static int cxgb_controller_attach(device_t dev) { @@ -305,13 +325,14 @@ device_t child; const struct adapter_info *ai; struct adapter *sc; - int i, reg, msi_needed, msi_count = 0, error = 0; + int i, reg, msi_needed, error = 0; uint32_t vers; int port_qsets = 1; sc = device_get_softc(dev); sc->dev = dev; - + sc->msi_count = 0; + /* find the PCIe link width and set max read request to 4KB*/ if (pci_find_extcap(dev, PCIY_EXPRESS, ®) == 0) { uint16_t lnk, pectl; @@ -367,13 +388,14 @@ (sc->msix_regs_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->msix_regs_rid, RF_ACTIVE)) != NULL) { - msi_needed = msi_count = SGE_MSIX_COUNT; + msi_needed = sc->msi_count = SGE_MSIX_COUNT; - if ((pci_alloc_msix(dev, &msi_count) != 0) || - (msi_count != msi_needed)) { - device_printf(dev, "msix allocation failed" >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 04:59:41 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 64F0716A408; Mon, 23 Apr 2007 04:59:41 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3568216A400 for ; Mon, 23 Apr 2007 04:59:41 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0E2E713C468 for ; Mon, 23 Apr 2007 04:59:41 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N4xel0031643 for ; Mon, 23 Apr 2007 04:59:40 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N4xena031640 for perforce@freebsd.org; Mon, 23 Apr 2007 04:59:40 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 23 Apr 2007 04:59:40 GMT Message-Id: <200704230459.l3N4xena031640@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118632 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 04:59:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=118632 Change 118632 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/23 04:59:32 disable mbuf chain collapsing until we can turn off the packet zone Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#9 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#9 (text+ko) ==== @@ -72,7 +72,7 @@ uint32_t collapse_free = 0; uint32_t mb_free_vec_free = 0; -int collapse_mbufs = 1; +int collapse_mbufs = 0; /* From owner-p4-projects@FreeBSD.ORG Mon Apr 23 05:15:02 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7D8216A406; Mon, 23 Apr 2007 05:15:01 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A2C6816A403 for ; Mon, 23 Apr 2007 05:15:01 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9143A13C45A for ; Mon, 23 Apr 2007 05:15:01 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N5F1u4035890 for ; Mon, 23 Apr 2007 05:15:01 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N5F1HT035887 for perforce@freebsd.org; Mon, 23 Apr 2007 05:15:01 GMT (envelope-from zec@FreeBSD.org) Date: Mon, 23 Apr 2007 05:15:01 GMT Message-Id: <200704230515.l3N5F1HT035887@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118634 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 05:15:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=118634 Change 118634 by zec@zec_tca51 on 2007/04/23 05:14:25 If lo0 is gone, don't queue any routing messages, since those must have m_pkthdr.rcvif set to loif. Affected files ... .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#17 edit .. //depot/projects/vimage/src/sys/net/rtsock.c#8 edit .. //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#6 edit .. //depot/projects/vimage/src/sys/sys/protosw.h#2 edit Differences ... ==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#17 (text+ko) ==== @@ -54,6 +54,7 @@ #include #include #include +#include #include MALLOC_DEFINE(M_VIMAGE, "vimage", "virtual image resource container"); @@ -99,6 +100,8 @@ if (modinfo->i_attach) { VNET_ITERLOOP_BEGIN_QUIET(); +printf("Calling i_attach() for %s vnet %s\n", + modinfo->name, vnet_name(curvnet)); modinfo->i_attach(); VNET_ITERLOOP_END(); } @@ -394,6 +397,7 @@ struct vprocg *vprocg; struct vcpu *vcpu; struct domain *dp; + struct vnet_modlink *modlnk_i; /* * XXX don't forget the locking @@ -435,19 +439,19 @@ CURVNET_SET_QUIET(vnet); /* - * Initialize modules with ORDER_1ST flag set + * Attach modules with ORDER_1ST flag set */ - struct vnet_modlink *modlnk_i; TAILQ_FOREACH(modlnk_i, &vnet_modlink_head, mod_le) if (modlnk_i->modinfo->i_attach != NULL && modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_1ST) { VNET_ASSERT(!(modlnk_i->modinfo->flags & \ VNET_MFLAG_ORDER_2ND)); +printf("Calling i_attach() for %s\n", modlnk_i->modinfo->name); modlnk_i->modinfo->i_attach(); } /* - * Initialize domains. + * Attach protocol domains. */ for (dp = domains; dp; dp = dp->dom_next) { struct protosw *pr; @@ -463,13 +467,14 @@ } /* - * Initialize modules with ORDER_2ND flag set + * Attach modules with ORDER_2ND flag set */ TAILQ_FOREACH(modlnk_i, &vnet_modlink_head, mod_le) if (modlnk_i->modinfo->i_attach != NULL && modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_2ND) { VNET_ASSERT(!(modlnk_i->modinfo->flags & \ VNET_MFLAG_ORDER_1ST)); +printf("Calling i_attach() for %s\n", modlnk_i->modinfo->name); modlnk_i->modinfo->i_attach(); } @@ -496,30 +501,69 @@ struct vnet *vnet = vip->v_vnet; struct vprocg *vprocg = vip->v_procg; struct vcpu *vcpu = vip->v_cpu; - struct ifnet *ifp; + struct ifnet *ifp, *nifp; + struct vnet_modlink *modlnk_i; +#if 0 + struct domain *dp; +#endif CURVNET_SET_QUIET(vnet); INIT_VNET_NET(vnet); - /* return all interfaces to the parent vnet */ - while ((ifp = TAILQ_FIRST(&V_ifnet)) != NULL) { - if (ifp->if_flags & IFF_LOOPBACK) { - bpfdetach(ifp); - if_detach(ifp); - } else + /* Return all inherited interfaces to their parent vnets */ + /*for (ifp = TAILQ_FIRST(&V_ifnet); ifp; ifp = next) {*/ + TAILQ_FOREACH_SAFE(ifp, &V_ifnet, if_link, nifp) + if (ifp->if_home_vnet != ifp->if_vnet) vi_if_move(NULL, ifp, vip); - } + + /* + * XXX TODO: kill all cloning ifnets + * XXX TODO: kill all netgraph ifnets + * XXX TODO: at this point only lo0 should be attached!!! + */ +TAILQ_FOREACH(ifp, &V_ifnet, if_link) + printf("attached ifnet: %s\n", ifp->if_xname); + + /* + * Detach modules with ORDER_2ND flag set + */ + TAILQ_FOREACH_REVERSE(modlnk_i, &vnet_modlink_head, vnet_modlink_head, mod_le) + if (modlnk_i->modinfo->i_detach != NULL && + modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_2ND) { + VNET_ASSERT(!(modlnk_i->modinfo->flags & \ + VNET_MFLAG_ORDER_1ST)); +printf("Calling i_detach() for %s\n", modlnk_i->modinfo->name); + modlnk_i->modinfo->i_detach(); + } + +TAILQ_FOREACH(ifp, &V_ifnet, if_link) + printf("attached ifnet: %s\n", ifp->if_xname); #if 0 /* - * Call all domain destroy routines - those basically have to free - * the allocated memory and stop all the pending timers. + * Detach protocol domains */ - for (dp = domains; dp; dp = dp->dom_next) + for (dp = domains; dp; dp = dp->dom_next) { + struct protosw *pr; for (pr = dp->dom_protoswNPROTOSW; pr > dp->dom_protosw;) if ((--pr)->pr_destroy) - (*pr->pr_destroy)(vnet); + (*pr->pr_destroy)(); + } +#endif + + /* + * Detach modules with ORDER_1ST flag set + */ + TAILQ_FOREACH_REVERSE(modlnk_i, &vnet_modlink_head, vnet_modlink_head, mod_le) + if (modlnk_i->modinfo->i_detach != NULL && + modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_1ST) { + VNET_ASSERT(!(modlnk_i->modinfo->flags & \ + VNET_MFLAG_ORDER_2ND)); +printf("Calling i_detach() for %s\n", modlnk_i->modinfo->name); + modlnk_i->modinfo->i_detach(); + } +#if 0 free((caddr_t)vnet->ifnet_addrs, M_IFADDR); free((caddr_t)vnet->ifindex2ifnet, M_IFADDR); #endif ==== //depot/projects/vimage/src/sys/net/rtsock.c#8 (text+ko) ==== @@ -1059,6 +1059,7 @@ static void rt_dispatch(struct mbuf *m, const struct sockaddr *sa) { + INIT_VNET_NET(curvnet); struct m_tag *tag; /* @@ -1077,8 +1078,12 @@ m_tag_prepend(m, tag); } #ifdef VIMAGE - INIT_VNET_NET(curvnet); - m->m_pkthdr.rcvif = V_loif; + if (V_loif) + m->m_pkthdr.rcvif = V_loif; + else { + m_freem(m); + return; + } #endif netisr_queue(NETISR_ROUTE, m); /* mbuf is free'd on failure. */ } ==== //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#6 (text+ko) ==== @@ -336,11 +336,7 @@ CURVNET_SET_QUIET((struct vnet *) rock); INIT_VNET_NET((struct vnet *) rock); INIT_VNET_INET6((struct vnet *) rock); -#ifdef VIMAGE struct radix_node_head *rnh = V_rt_tables[AF_INET6]; -#else - struct radix_node_head *rnh = rock; -#endif struct rtqk_arg arg; struct timeval atv; static time_t last_adjusted_timeout = 0; @@ -428,11 +424,7 @@ CURVNET_SET_QUIET((struct vnet *) rock); INIT_VNET_NET((struct vnet *) rock); INIT_VNET_INET6((struct vnet *) rock); -#ifdef VIMAGE struct radix_node_head *rnh = V_rt_tables[AF_INET6]; -#else - struct radix_node_head *rnh = rock; -#endif struct mtuex_arg arg; struct timeval atv; @@ -495,12 +487,7 @@ rnh->rnh_close = in6_clsroute; callout_init(&V_rtq_timer6, CALLOUT_MPSAFE); callout_init(&V_rtq_mtutimer, CALLOUT_MPSAFE); -#ifdef VIMAGE in6_rtqtimo(curvnet); /* kick off timeout first time */ in6_mtutimo(curvnet); /* kick off timeout first time */ -#else - in6_rtqtimo(rnh); /* kick off timeout first time */ - in6_mtutimo(rnh); /* kick off timeout first time */ -#endif return 1; } ==== //depot/projects/vimage/src/sys/sys/protosw.h#2 (text+ko) ==== @@ -72,6 +72,7 @@ typedef void pr_ctlinput_t (int, struct sockaddr *, void *); typedef int pr_ctloutput_t (struct socket *, struct sockopt *); typedef void pr_init_t (void); +typedef void pr_destroy_t (void); typedef void pr_fasttimo_t (void); typedef void pr_slowtimo_t (void); typedef void pr_drain_t (void); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 05:26:16 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 76FC516A403; Mon, 23 Apr 2007 05:26:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0E12B16A401 for ; Mon, 23 Apr 2007 05:26:16 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F2AEE13C469 for ; Mon, 23 Apr 2007 05:26:15 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N5QFc3037616 for ; Mon, 23 Apr 2007 05:26:15 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N5QFd0037613 for perforce@freebsd.org; Mon, 23 Apr 2007 05:26:15 GMT (envelope-from mjacob@freebsd.org) Date: Mon, 23 Apr 2007 05:26:15 GMT Message-Id: <200704230526.l3N5QFd0037613@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118635 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 05:26:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=118635 Change 118635 by mjacob@mjexp on 2007/04/23 05:26:14 Fix some RELENG_4 compilation issues. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#14 edit .. //depot/projects/mjexp/sys/dev/isp/isp_pci.c#24 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#14 (text+ko) ==== @@ -94,7 +94,7 @@ #endif #if __FreeBSD_version < 700000 -typedef void ispfwfunc(int, int, int, void **); +typedef void ispfwfunc(int, int, int, const void **); #endif #ifdef ISP_TARGET_MODE @@ -554,16 +554,22 @@ cam_sim_alloc(a, b, c, d, e, &(d)->isp_osinfo.lock, f, g, h) #endif +#if __FreeBSD_version < 500000 +#define INLINE __inline +#else +#define INLINE inline +#endif + /* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */ #define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1) /* * Platform specific inline functions */ -static inline int isp_get_pcmd(ispsoftc_t *, union ccb *); -static inline void isp_free_pcmd(ispsoftc_t *, union ccb *); +static INLINE int isp_get_pcmd(ispsoftc_t *, union ccb *); +static INLINE void isp_free_pcmd(ispsoftc_t *, union ccb *); -static inline int +static INLINE int isp_get_pcmd(ispsoftc_t *isp, union ccb *ccb) { ISP_PCMD(ccb) = isp->isp_osinfo.pcmd_free; @@ -574,7 +580,7 @@ return (0); } -static inline void +static INLINE void isp_free_pcmd(ispsoftc_t *isp, union ccb *ccb) { ((struct isp_pcmd *)ISP_PCMD(ccb))->next = isp->isp_osinfo.pcmd_free; ==== //depot/projects/mjexp/sys/dev/isp/isp_pci.c#24 (text+ko) ==== @@ -510,8 +510,6 @@ int bitmap; int unit = device_get_unit(dev); - callout_handle_init(&isp->isp_osinfo.ldt); - callout_handle_init(&isp->isp_osinfo.gdt); if (IS_SCSI(isp)) { return; @@ -1691,7 +1689,6 @@ static int isp_pci_mbxdma(ispsoftc_t *isp) { - struct isp_pcisoftc *pcs = (struct isp_pcisoftc *)isp; caddr_t base; uint32_t len; int i, error, ns; @@ -1744,9 +1741,10 @@ } #endif - if (isp_dma_tag_create(BUS_DMA_ROOTARG(pcs->pci_dev), 1, slim, llim, - hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, - &isp->isp_osinfo.dmat)) { + if (isp_dma_tag_create( + BUS_DMA_ROOTARG(((struct isp_pcisoftc *)isp)->pci_dev), + 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, + slim, 0, &isp->isp_osinfo.dmat)) { free(isp->isp_osinfo.pcmd_pool, M_DEVBUF); ISP_LOCK(isp); isp_prt(isp, ISP_LOGERR, "could not create master dma tag"); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 05:59:59 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F6CC16A40D; Mon, 23 Apr 2007 05:59:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 65C0E16A40A for ; Mon, 23 Apr 2007 05:59:59 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 55CDC13C484 for ; Mon, 23 Apr 2007 05:59:59 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N5xxBq043978 for ; Mon, 23 Apr 2007 05:59:59 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N5xxxl043975 for perforce@freebsd.org; Mon, 23 Apr 2007 05:59:59 GMT (envelope-from mjacob@freebsd.org) Date: Mon, 23 Apr 2007 05:59:59 GMT Message-Id: <200704230559.l3N5xxxl043975@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118638 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 05:59:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=118638 Change 118638 by mjacob@mjexp on 2007/04/23 05:59:33 Fix inline -> __inline. Fix a LINT found compile problem for target mode. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#15 edit .. //depot/projects/mjexp/sys/dev/isp/isp_pci.c#25 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#15 (text+ko) ==== @@ -554,22 +554,16 @@ cam_sim_alloc(a, b, c, d, e, &(d)->isp_osinfo.lock, f, g, h) #endif -#if __FreeBSD_version < 500000 -#define INLINE __inline -#else -#define INLINE inline -#endif - /* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */ #define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1) /* * Platform specific inline functions */ -static INLINE int isp_get_pcmd(ispsoftc_t *, union ccb *); -static INLINE void isp_free_pcmd(ispsoftc_t *, union ccb *); +static __inline int isp_get_pcmd(ispsoftc_t *, union ccb *); +static __inline void isp_free_pcmd(ispsoftc_t *, union ccb *); -static INLINE int +static __inline int isp_get_pcmd(ispsoftc_t *isp, union ccb *ccb) { ISP_PCMD(ccb) = isp->isp_osinfo.pcmd_free; @@ -580,7 +574,7 @@ return (0); } -static INLINE void +static __inline void isp_free_pcmd(ispsoftc_t *isp, union ccb *ccb) { ((struct isp_pcmd *)ISP_PCMD(ccb))->next = isp->isp_osinfo.pcmd_free; ==== //depot/projects/mjexp/sys/dev/isp/isp_pci.c#25 (text+ko) ==== @@ -1985,7 +1985,7 @@ cto->ct_resid = 0; cto->ct_scsi_status = 0; - dp = &ISP_PCMD(csio)->dmap; + dp = &PISP_PCMD(csio)->dmap; if ((csio->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { bus_dmamap_sync(isp->isp_osinfo.dmat, *dp, BUS_DMASYNC_PREREAD); } else { From owner-p4-projects@FreeBSD.ORG Mon Apr 23 06:02:04 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6C3D316A403; Mon, 23 Apr 2007 06:02:04 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3E9FD16A401 for ; Mon, 23 Apr 2007 06:02:04 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2E62C13C458 for ; Mon, 23 Apr 2007 06:02:04 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N624wj044772 for ; Mon, 23 Apr 2007 06:02:04 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N623Wj044766 for perforce@freebsd.org; Mon, 23 Apr 2007 06:02:03 GMT (envelope-from mjacob@freebsd.org) Date: Mon, 23 Apr 2007 06:02:03 GMT Message-Id: <200704230602.l3N623Wj044766@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118640 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 06:02:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=118640 Change 118640 by mjacob@mjexp on 2007/04/23 06:01:01 Rip out all locking in preparation for mpsafe. Affected files ... .. //depot/projects/mjexp/sys/dev/mpt/mpt.c#6 edit .. //depot/projects/mjexp/sys/dev/mpt/mpt.h#10 edit .. //depot/projects/mjexp/sys/dev/mpt/mpt_cam.c#18 edit .. //depot/projects/mjexp/sys/dev/mpt/mpt_pci.c#10 edit .. //depot/projects/mjexp/sys/dev/mpt/mpt_raid.c#4 edit Differences ... ==== //depot/projects/mjexp/sys/dev/mpt/mpt.c#6 (text+ko) ==== @@ -1171,7 +1171,6 @@ } KASSERT(req->state != REQ_STATE_FREE, ("freeing free request")); KASSERT(!(req->state & REQ_STATE_LOCKED), ("freeing locked request")); - KASSERT(MPT_OWNED(mpt), ("mpt_free_request: mpt not locked\n")); KASSERT(mpt_req_on_free_list(mpt, req) == 0, ("mpt_free_request: req %p:%u func %x already on freelist", req, req->serno, ((MSG_REQUEST_HEADER *)req->req_vbuf)->Function)); @@ -1220,7 +1219,6 @@ request_t *req; retry: - KASSERT(MPT_OWNED(mpt), ("mpt_get_request: mpt not locked\n")); req = TAILQ_FIRST(&mpt->request_free_list); if (req != NULL) { KASSERT(req == &mpt->request_pool[req->index], ==== //depot/projects/mjexp/sys/dev/mpt/mpt.h#10 (text+ko) ==== @@ -740,9 +740,6 @@ #define MPT_IFLAGS INTR_TYPE_CAM #define MPT_LOCK(mpt) mpt_lockspl(mpt) #define MPT_UNLOCK(mpt) mpt_unlockspl(mpt) -#define MPT_OWNED(mpt) mpt->mpt_islocked -#define MPTLOCK_2_CAMLOCK MPT_UNLOCK -#define CAMLOCK_2_MPTLOCK MPT_LOCK #define MPT_LOCK_SETUP(mpt) #define MPT_LOCK_DESTROY(mpt) @@ -794,57 +791,11 @@ } #else -#ifdef LOCKING_WORKED_AS_IT_SHOULD -#error "Shouldn't Be Here!" -#define MPT_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY | INTR_MPSAFE -#define MPT_LOCK_SETUP(mpt) \ - mtx_init(&mpt->mpt_lock, "mpt", NULL, MTX_DEF); \ - mpt->mpt_locksetup = 1 -#define MPT_LOCK_DESTROY(mpt) \ - if (mpt->mpt_locksetup) { \ - mtx_destroy(&mpt->mpt_lock); \ - mpt->mpt_locksetup = 0; \ - } - -#define MPT_LOCK(mpt) mtx_lock(&(mpt)->mpt_lock) -#define MPT_UNLOCK(mpt) mtx_unlock(&(mpt)->mpt_lock) -#define MPT_OWNED(mpt) mtx_owned(&(mpt)->mpt_lock) -#define MPTLOCK_2_CAMLOCK(mpt) \ - mtx_unlock(&(mpt)->mpt_lock); mtx_lock(&Giant) -#define CAMLOCK_2_MPTLOCK(mpt) \ - mtx_unlock(&Giant); mtx_lock(&(mpt)->mpt_lock) -#define mpt_sleep(mpt, ident, priority, wmesg, timo) \ - msleep(ident, &(mpt)->mpt_lock, priority, wmesg, timo) - -#else - #define MPT_IFLAGS INTR_TYPE_CAM | INTR_ENTROPY #define MPT_LOCK_SETUP(mpt) do { } while (0) #define MPT_LOCK_DESTROY(mpt) do { } while (0) -#if 0 -#define MPT_LOCK(mpt) \ - device_printf(mpt->dev, "LOCK %s:%d\n", __FILE__, __LINE__); \ - KASSERT(mpt->mpt_locksetup == 0, \ - ("recursive lock acquire at %s:%d", __FILE__, __LINE__)); \ - mpt->mpt_locksetup = 1 -#define MPT_UNLOCK(mpt) \ - device_printf(mpt->dev, "UNLK %s:%d\n", __FILE__, __LINE__); \ - KASSERT(mpt->mpt_locksetup == 1, \ - ("release unowned lock at %s:%d", __FILE__, __LINE__)); \ - mpt->mpt_locksetup = 0 -#else -#define MPT_LOCK(mpt) \ - KASSERT(mpt->mpt_locksetup == 0, \ - ("recursive lock acquire at %s:%d", __FILE__, __LINE__)); \ - mpt->mpt_locksetup = 1 -#define MPT_UNLOCK(mpt) \ - KASSERT(mpt->mpt_locksetup == 1, \ - ("release unowned lock at %s:%d", __FILE__, __LINE__)); \ - mpt->mpt_locksetup = 0 -#endif -#define MPT_OWNED(mpt) mpt->mpt_locksetup -#define MPTLOCK_2_CAMLOCK(mpt) MPT_UNLOCK(mpt) -#define CAMLOCK_2_MPTLOCK(mpt) MPT_LOCK(mpt) +#define MPT_LOCK(mpt) do { } while (0) +#define MPT_UNLOCK(mpt) do { } while (0) static __inline int mpt_sleep(struct mpt_softc *, void *, int, const char *, int); @@ -853,13 +804,10 @@ mpt_sleep(struct mpt_softc *mpt, void *i, int p, const char *w, int t) { int r; - MPT_UNLOCK(mpt); r = tsleep(i, p, w, t); - MPT_LOCK(mpt); return (r); } #endif -#endif /******************************* Register Access ******************************/ static __inline void mpt_write(struct mpt_softc *, size_t, uint32_t); ==== //depot/projects/mjexp/sys/dev/mpt/mpt_cam.c#18 (text+ko) ==== @@ -295,7 +295,6 @@ /* * The rest of this is CAM foo, for which we need to drop our lock */ - MPTLOCK_2_CAMLOCK(mpt); /* * Create the device queue for our SIM(s). @@ -340,7 +339,6 @@ * devices if the controller supports RAID. */ if (mpt->ioc_page2 == NULL || mpt->ioc_page2->MaxPhysDisks == 0) { - CAMLOCK_2_MPTLOCK(mpt); return (0); } @@ -371,12 +369,10 @@ error = ENOMEM; goto cleanup; } - CAMLOCK_2_MPTLOCK(mpt); mpt_lprt(mpt, MPT_PRT_DEBUG, "attached cam\n"); return (0); cleanup: - CAMLOCK_2_MPTLOCK(mpt); cleanup0: mpt_cam_detach(mpt); return (error); @@ -836,11 +832,9 @@ /* * Try to add some target command resources */ - MPT_LOCK(mpt); if (mpt_add_target_commands(mpt) == FALSE) { mpt_prt(mpt, "failed to add target commands\n"); } - MPT_UNLOCK(mpt); } mpt->ready = 1; } @@ -873,21 +867,17 @@ } if (mpt->sim != NULL) { - MPTLOCK_2_CAMLOCK(mpt); xpt_free_path(mpt->path); xpt_bus_deregister(cam_sim_path(mpt->sim)); cam_sim_free(mpt->sim, TRUE); mpt->sim = NULL; - CAMLOCK_2_MPTLOCK(mpt); } if (mpt->phydisk_sim != NULL) { - MPTLOCK_2_CAMLOCK(mpt); xpt_free_path(mpt->phydisk_path); xpt_bus_deregister(cam_sim_path(mpt->phydisk_sim)); cam_sim_free(mpt->phydisk_sim, TRUE); mpt->phydisk_sim = NULL; - CAMLOCK_2_MPTLOCK(mpt); } } @@ -899,9 +889,7 @@ struct mpt_softc *mpt; mpt = (struct mpt_softc *)cam_sim_softc(sim); - MPT_LOCK(mpt); mpt_intr(mpt); - MPT_UNLOCK(mpt); } /* @@ -917,7 +905,6 @@ ccb = (union ccb *)arg; mpt = ccb->ccb_h.ccb_mpt_ptr; - MPT_LOCK(mpt); req = ccb->ccb_h.ccb_req_ptr; mpt_prt(mpt, "request %p:%u timed out for ccb %p (req->ccb %p)\n", req, req->serno, ccb, req->ccb); @@ -928,7 +915,6 @@ req->state |= REQ_STATE_TIMEDOUT; mpt_wakeup_recovery_thread(mpt); } - MPT_UNLOCK(mpt); } /* @@ -1024,9 +1010,7 @@ ccb->ccb_h.status &= ~CAM_SIM_QUEUED; KASSERT(ccb->ccb_h.status, ("zero ccb sts at %d\n", __LINE__)); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); mpt_free_request(mpt, req); - MPTLOCK_2_CAMLOCK(mpt); return; } @@ -1249,9 +1233,7 @@ if (seg < nseg && nxt_off >= MPT_REQUEST_AREA) { request_t *nrq; - CAMLOCK_2_MPTLOCK(mpt); nrq = mpt_get_request(mpt, FALSE); - MPTLOCK_2_CAMLOCK(mpt); if (nrq == NULL) { error = ENOMEM; @@ -1299,9 +1281,7 @@ ccb->ccb_h.status &= ~CAM_SIM_QUEUED; KASSERT(ccb->ccb_h.status, ("zero ccb sts at %d\n", __LINE__)); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); mpt_free_request(mpt, req); - MPTLOCK_2_CAMLOCK(mpt); return; } @@ -1336,9 +1316,7 @@ tgt->state = TGT_STATE_MOVING_DATA; #endif } - CAMLOCK_2_MPTLOCK(mpt); mpt_send_cmd(mpt, req); - MPTLOCK_2_CAMLOCK(mpt); } static void @@ -1427,9 +1405,7 @@ ccb->ccb_h.status &= ~CAM_SIM_QUEUED; KASSERT(ccb->ccb_h.status, ("zero ccb sts at %d\n", __LINE__)); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); mpt_free_request(mpt, req); - MPTLOCK_2_CAMLOCK(mpt); return; } @@ -1651,9 +1627,7 @@ if (seg < nseg && nxt_off >= MPT_REQUEST_AREA) { request_t *nrq; - CAMLOCK_2_MPTLOCK(mpt); nrq = mpt_get_request(mpt, FALSE); - MPTLOCK_2_CAMLOCK(mpt); if (nrq == NULL) { error = ENOMEM; @@ -1701,9 +1675,7 @@ ccb->ccb_h.status &= ~CAM_SIM_QUEUED; KASSERT(ccb->ccb_h.status, ("zero ccb sts at %d\n", __LINE__)); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); mpt_free_request(mpt, req); - MPTLOCK_2_CAMLOCK(mpt); return; } @@ -1738,9 +1710,7 @@ tgt->state = TGT_STATE_MOVING_DATA; #endif } - CAMLOCK_2_MPTLOCK(mpt); mpt_send_cmd(mpt, req); - MPTLOCK_2_CAMLOCK(mpt); } static void @@ -1759,7 +1729,6 @@ mpt = ccb->ccb_h.ccb_mpt_ptr; raid_passthru = (sim == mpt->phydisk_sim); - CAMLOCK_2_MPTLOCK(mpt); if ((req = mpt_get_request(mpt, FALSE)) == NULL) { if (mpt->outofbeer == 0) { mpt->outofbeer = 1; @@ -1768,14 +1737,12 @@ } ccb->ccb_h.status &= ~CAM_SIM_QUEUED; mpt_set_ccb_status(ccb, CAM_REQUEUE_REQ); - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); return; } #ifdef INVARIANTS mpt_req_not_spcl(mpt, req, "mpt_start", __LINE__); #endif - MPTLOCK_2_CAMLOCK(mpt); if (sizeof (bus_addr_t) > 4) { cb = mpt_execute_req_a64; @@ -1797,15 +1764,12 @@ mpt_req->Function = MPI_FUNCTION_SCSI_IO_REQUEST; if (raid_passthru) { mpt_req->Function = MPI_FUNCTION_RAID_SCSI_IO_PASSTHROUGH; - CAMLOCK_2_MPTLOCK(mpt); if (mpt_map_physdisk(mpt, ccb, &tgt) != 0) { - MPTLOCK_2_CAMLOCK(mpt); ccb->ccb_h.status &= ~CAM_SIM_QUEUED; mpt_set_ccb_status(ccb, CAM_DEV_NOT_THERE); xpt_done(ccb); return; } - MPTLOCK_2_CAMLOCK(mpt); mpt_req->Bus = 0; /* we never set bus here */ } else { tgt = ccb->ccb_h.target_id; @@ -2099,7 +2063,6 @@ } else { pathid = cam_sim_path(mpt->sim); } - MPTLOCK_2_CAMLOCK(mpt); /* * Allocate a CCB, create a wildcard path for this bus, * and schedule a rescan. @@ -2107,19 +2070,16 @@ ccb = xpt_alloc_ccb_nowait(); if (ccb == NULL) { mpt_prt(mpt, "unable to alloc CCB for rescan\n"); - CAMLOCK_2_MPTLOCK(mpt); break; } if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, pathid, CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { - CAMLOCK_2_MPTLOCK(mpt); mpt_prt(mpt, "unable to create path for rescan\n"); xpt_free_ccb(ccb); break; } xpt_rescan(ccb); - CAMLOCK_2_MPTLOCK(mpt); break; } #else @@ -2214,13 +2174,11 @@ } else { sim = mpt->sim; } - MPTLOCK_2_CAMLOCK(mpt); for (lun_id = 0; lun_id < MPT_MAX_LUNS; lun_id++) { if (xpt_create_path(&tmppath, NULL, cam_sim_path(sim), pqf->TargetID, lun_id) != CAM_REQ_CMP) { mpt_prt(mpt, "unable to create a path to send " "XPT_REL_SIMQ"); - CAMLOCK_2_MPTLOCK(mpt); break; } xpt_setup_ccb(&crs.ccb_h, tmppath, 5); @@ -2233,7 +2191,6 @@ } xpt_free_path(tmppath); } - CAMLOCK_2_MPTLOCK(mpt); break; } case MPI_EVENT_EVENT_CHANGE: @@ -2329,9 +2286,7 @@ req, req->serno); } KASSERT(ccb->ccb_h.status, ("zero ccb sts at %d\n", __LINE__)); - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); if ((req->state & REQ_STATE_TIMEDOUT) == 0) { TAILQ_REMOVE(&mpt->request_pending_list, req, links); } else { @@ -2904,7 +2859,6 @@ CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("mpt_action\n")); mpt = (struct mpt_softc *)cam_sim_softc(sim); - KASSERT(MPT_OWNED(mpt) == 0, ("mpt owned on entrance to mpt_action")); raid_passthru = (sim == mpt->phydisk_sim); tgt = ccb->ccb_h.target_id; @@ -2913,15 +2867,12 @@ ccb->ccb_h.func_code != XPT_PATH_INQ && ccb->ccb_h.func_code != XPT_RESET_BUS && ccb->ccb_h.func_code != XPT_RESET_DEV) { - CAMLOCK_2_MPTLOCK(mpt); if (mpt_map_physdisk(mpt, ccb, &tgt) != 0) { - MPTLOCK_2_CAMLOCK(mpt); ccb->ccb_h.status &= ~CAM_SIM_QUEUED; mpt_set_ccb_status(ccb, CAM_DEV_NOT_THERE); xpt_done(ccb); return; } - MPTLOCK_2_CAMLOCK(mpt); } ccb->ccb_h.ccb_mpt_ptr = mpt; @@ -2970,9 +2921,7 @@ } else { xpt_print(ccb->ccb_h.path, "reset device\n"); } - CAMLOCK_2_MPTLOCK(mpt); (void) mpt_bus_reset(mpt, tgt, lun, FALSE); - MPTLOCK_2_CAMLOCK(mpt); /* * mpt_bus_reset is always successful in that it @@ -2986,7 +2935,6 @@ case XPT_ABORT: { union ccb *accb = ccb->cab.abort_ccb; - CAMLOCK_2_MPTLOCK(mpt); switch (accb->ccb_h.func_code) { case XPT_ACCEPT_TARGET_IO: case XPT_IMMED_NOTIFY: @@ -3003,7 +2951,6 @@ ccb->ccb_h.status = CAM_REQ_INVALID; break; } - MPTLOCK_2_CAMLOCK(mpt); break; } @@ -3143,7 +3090,6 @@ period >>= MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD; } #endif - CAMLOCK_2_MPTLOCK(mpt); if (dval & DP_DISC_ENABLE) { mpt->mpt_disc_enable |= (1 << tgt); } else if (dval & DP_DISC_DISABL) { @@ -3161,7 +3107,6 @@ mpt_setsync(mpt, tgt, period, offset); } if (dval == 0) { - MPTLOCK_2_CAMLOCK(mpt); mpt_set_ccb_status(ccb, CAM_REQ_CMP); break; } @@ -3173,7 +3118,6 @@ } else { mpt_set_ccb_status(ccb, CAM_REQ_CMP); } - MPTLOCK_2_CAMLOCK(mpt); break; } case XPT_GET_TRAN_SETTINGS: @@ -3344,14 +3288,12 @@ { int result; - CAMLOCK_2_MPTLOCK(mpt); if (ccb->cel.enable) result = mpt_enable_lun(mpt, ccb->ccb_h.target_id, ccb->ccb_h.target_lun); else result = mpt_disable_lun(mpt, ccb->ccb_h.target_id, ccb->ccb_h.target_lun); - MPTLOCK_2_CAMLOCK(mpt); if (result == 0) { mpt_set_ccb_status(ccb, CAM_REQ_CMP); } else { @@ -3381,7 +3323,6 @@ } else { trtp = &mpt->trt[lun]; } - CAMLOCK_2_MPTLOCK(mpt); if (ccb->ccb_h.func_code == XPT_ACCEPT_TARGET_IO) { mpt_lprt(mpt, MPT_PRT_DEBUG1, "Put FREE ATIO %p lun %d\n", ccb, lun); @@ -3396,13 +3337,10 @@ mpt_lprt(mpt, MPT_PRT_ALWAYS, "Got Notify ACK\n"); } mpt_set_ccb_status(ccb, CAM_REQ_INPROG); - MPTLOCK_2_CAMLOCK(mpt); return; } case XPT_CONT_TARGET_IO: - CAMLOCK_2_MPTLOCK(mpt); mpt_target_start_io(mpt, ccb); - MPTLOCK_2_CAMLOCK(mpt); return; default: @@ -3446,16 +3384,13 @@ CONFIG_PAGE_SCSI_DEVICE_0 tmp; dval = 0; - CAMLOCK_2_MPTLOCK(mpt); tmp = mpt->mpt_dev_page0[tgt]; rv = mpt_read_cur_cfg_page(mpt, tgt, &tmp.Header, sizeof(tmp), FALSE, 5000); if (rv) { - MPTLOCK_2_CAMLOCK(mpt); mpt_prt(mpt, "can't get tgt %d config page 0\n", tgt); return (rv); } - MPTLOCK_2_CAMLOCK(mpt); mpt_lprt(mpt, MPT_PRT_DEBUG, "mpt_get_spi_settings[%d]: current NP %x Info %x\n", tgt, tmp.NegotiatedParameters, tmp.Information); @@ -3656,7 +3591,6 @@ mtx_lock(&Giant); #endif mpt = (struct mpt_softc *)arg; - MPT_LOCK(mpt); for (;;) { if (TAILQ_EMPTY(&mpt->request_timeout_list) != 0) { if (mpt->shutdwn_recovery == 0) { @@ -3670,7 +3604,6 @@ } mpt->recovery_thread = NULL; wakeup(&mpt->recovery_thread); - MPT_UNLOCK(mpt); #if __FreeBSD_version >= 500000 mtx_unlock(&Giant); #endif @@ -4118,18 +4051,14 @@ xpt_freeze_simq(mpt->sim, 1); ccb->ccb_h.status &= ~CAM_SIM_QUEUED; tgt->ccb->ccb_h.status |= CAM_RELEASE_SIMQ; - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); return; default: mpt_prt(mpt, "ccb %p flags 0x%x tag 0x%08x had bad request " "starting I/O\n", ccb, csio->ccb_h.flags, csio->tag_id); mpt_tgt_dump_req_state(mpt, cmd_req); mpt_set_ccb_status(ccb, CAM_REQ_CMP_ERR); - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); return; } @@ -4149,9 +4078,7 @@ } ccb->ccb_h.status &= ~CAM_SIM_QUEUED; mpt_set_ccb_status(ccb, CAM_REQUEUE_REQ); - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); return; } ccb->ccb_h.status = CAM_SIM_QUEUED | CAM_REQ_INPROG; @@ -4225,7 +4152,6 @@ "nxtstate=%d\n", csio, csio->tag_id, csio->dxfer_len, tgt->resid, ccb->ccb_h.flags, req, req->serno, tgt->state); - MPTLOCK_2_CAMLOCK(mpt); if ((ccb->ccb_h.flags & CAM_SCATTER_VALID) == 0) { if ((ccb->ccb_h.flags & CAM_DATA_PHYS) == 0) { int error; @@ -4265,7 +4191,6 @@ (*cb)(req, sgs, csio->sglist_cnt, 0); } } - CAMLOCK_2_MPTLOCK(mpt); } else { uint8_t *sp = NULL, sense[MPT_SENSE_SIZE]; @@ -4282,9 +4207,7 @@ ccb->ccb_h.status, tgt->resid, tgt->bytes_xfered); mpt_set_ccb_status(ccb, CAM_REQ_CMP); ccb->ccb_h.status &= ~CAM_SIM_QUEUED; - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); return; } if (ccb->ccb_h.flags & CAM_SEND_SENSE) { @@ -4490,9 +4413,7 @@ if (ccb) { ccb->ccb_h.status &= ~CAM_SIM_QUEUED; mpt_set_ccb_status(ccb, CAM_REQUEUE_REQ); - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); } else { mpt_prt(mpt, "could not allocate status request- dropping\n"); @@ -4667,9 +4588,7 @@ } tgt->ccb = (union ccb *) inot; inot->ccb_h.status = CAM_MESSAGE_RECV|CAM_DEV_QFRZN; - MPTLOCK_2_CAMLOCK(mpt); xpt_done((union ccb *)inot); - CAMLOCK_2_MPTLOCK(mpt); } static void @@ -4948,9 +4867,7 @@ itag, atiop->tag_id, tgt->reply_desc, tgt->resid); } - MPTLOCK_2_CAMLOCK(mpt); xpt_done((union ccb *)atiop); - CAMLOCK_2_MPTLOCK(mpt); } static void @@ -5058,9 +4975,7 @@ mpt->outofbeer = 0; mpt_lprt(mpt, MPT_PRT_DEBUG, "THAWQ\n"); } - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); break; } /* @@ -5144,9 +5059,7 @@ mpt->outofbeer = 0; mpt_lprt(mpt, MPT_PRT_DEBUG, "THAWQ\n"); } - MPTLOCK_2_CAMLOCK(mpt); xpt_done(ccb); - CAMLOCK_2_MPTLOCK(mpt); } break; } ==== //depot/projects/mjexp/sys/dev/mpt/mpt_pci.c#10 (text+ko) ==== @@ -551,7 +551,6 @@ goto bad; } - MPT_LOCK_SETUP(mpt); /* Disable interrupts at the part */ mpt_disable_ints(mpt); @@ -591,12 +590,9 @@ /* Initialize the hardware */ if (mpt->disabled == 0) { - MPT_LOCK(mpt); if (mpt_attach(mpt) != 0) { - MPT_UNLOCK(mpt); goto bad; } - MPT_UNLOCK(mpt); } else { mpt_prt(mpt, "device disabled at user request\n"); goto bad; @@ -607,12 +603,9 @@ if (mpt->eh == NULL) { mpt_prt(mpt, "shutdown event registration failed\n"); - MPT_LOCK(mpt); (void) mpt_detach(mpt); - MPT_UNLOCK(mpt); goto bad; } - KASSERT(MPT_OWNED(mpt) == 0, ("leaving attach with device locked")); return (0); bad: @@ -620,7 +613,6 @@ mpt_free_bus_resources(mpt); mpt_unlink_peer(mpt); - MPT_LOCK_DESTROY(mpt); /* * but return zero to preserve unit numbering @@ -660,7 +652,6 @@ mpt->pci_reg); mpt->pci_reg = 0; } - MPT_LOCK_DESTROY(mpt); } @@ -675,7 +666,6 @@ mpt = (struct mpt_softc*)device_get_softc(dev); if (mpt) { - MPT_LOCK(mpt); mpt_disable_ints(mpt); mpt_detach(mpt); mpt_reset(mpt, /*reinit*/FALSE); @@ -685,7 +675,6 @@ if (mpt->eh != NULL) { EVENTHANDLER_DEREGISTER(shutdown_final, mpt->eh); } - MPT_UNLOCK(mpt); } return(0); } @@ -702,9 +691,7 @@ mpt = (struct mpt_softc *)device_get_softc(dev); if (mpt) { int r; - MPT_LOCK(mpt); r = mpt_shutdown(mpt); - MPT_UNLOCK(mpt); return (r); } return(0); @@ -963,9 +950,6 @@ mpt_pci_intr(void *arg) { struct mpt_softc *mpt; - mpt = (struct mpt_softc *)arg; - MPT_LOCK(mpt); mpt_intr(mpt); - MPT_UNLOCK(mpt); } ==== //depot/projects/mjexp/sys/dev/mpt/mpt_raid.c#4 (text+ko) ==== @@ -289,9 +289,7 @@ csa.event_enable = AC_FOUND_DEVICE; csa.callback = mpt_raid_async; csa.callback_arg = mpt; - MPTLOCK_2_CAMLOCK(mpt); xpt_action((union ccb *)&csa); - CAMLOCK_2_MPTLOCK(mpt); if (csa.ccb_h.status != CAM_REQ_CMP) { mpt_prt(mpt, "mpt_raid_attach: Unable to register " "CAM async handler.\n"); @@ -327,9 +325,7 @@ csa.event_enable = 0; csa.callback = mpt_raid_async; csa.callback_arg = mpt; - MPTLOCK_2_CAMLOCK(mpt); xpt_action((union ccb *)&csa); - CAMLOCK_2_MPTLOCK(mpt); } static void @@ -663,7 +659,6 @@ #endif mpt = (struct mpt_softc *)arg; firstrun = 1; - MPT_LOCK(mpt); while (mpt->shutdwn_raid == 0) { if (mpt->raid_wakeup == 0) { @@ -684,9 +679,7 @@ */ if (firstrun) { firstrun = 0; - MPTLOCK_2_CAMLOCK(mpt); xpt_release_simq(mpt->phydisk_sim, TRUE); - CAMLOCK_2_MPTLOCK(mpt); } if (mpt->raid_rescan != 0) { @@ -708,15 +701,12 @@ ccb->ccb_h.func_code = XPT_SCAN_BUS; ccb->ccb_h.cbfcnp = mpt_cam_rescan_callback; ccb->crcn.flags = CAM_FLAG_NONE; - MPTLOCK_2_CAMLOCK(mpt); xpt_action(ccb); - CAMLOCK_2_MPTLOCK(mpt); } } } mpt->raid_thread = NULL; wakeup(&mpt->raid_thread); - MPT_UNLOCK(mpt); #if __FreeBSD_version >= 500000 mtx_unlock(&Giant); #endif @@ -1560,9 +1550,7 @@ struct mpt_softc *mpt; mpt = (struct mpt_softc *)arg; - MPT_LOCK(mpt); mpt_raid_wakeup(mpt); - MPT_UNLOCK(mpt); } void @@ -1615,7 +1603,6 @@ && rate != MPT_RAID_RESYNC_RATE_NC) return (EINVAL); - MPT_LOCK(mpt); mpt->raid_resync_rate = rate; RAID_VOL_FOREACH(mpt, mpt_vol) { if ((mpt_vol->flags & MPT_RVF_ACTIVE) == 0) { @@ -1623,7 +1610,6 @@ } mpt_verify_resync_rate(mpt, mpt_vol); } - MPT_UNLOCK(mpt); return (0); } @@ -1635,7 +1621,6 @@ if (vol_queue_depth > 255 || vol_queue_depth < 1) return (EINVAL); - MPT_LOCK(mpt); mpt->raid_queue_depth = vol_queue_depth; RAID_VOL_FOREACH(mpt, mpt_vol) { struct cam_path *path; @@ -1646,21 +1631,17 @@ mpt->raid_rescan = 0; - MPTLOCK_2_CAMLOCK(mpt); error = xpt_create_path(&path, xpt_periph, cam_sim_path(mpt->sim), mpt_vol->config_page->VolumeID, /*lun*/0); if (error != CAM_REQ_CMP) { - CAMLOCK_2_MPTLOCK(mpt); mpt_vol_prt(mpt, mpt_vol, "Unable to allocate path!\n"); continue; } mpt_adjust_queue_depth(mpt, mpt_vol, path); xpt_free_path(path); - CAMLOCK_2_MPTLOCK(mpt); } - MPT_UNLOCK(mpt); return (0); } @@ -1670,9 +1651,7 @@ struct mpt_raid_volume *mpt_vol; int force_full_resync; - MPT_LOCK(mpt); if (mwce == mpt->raid_mwce_setting) { - MPT_UNLOCK(mpt); return (0); } @@ -1715,7 +1694,6 @@ mpt_verify_mwce(mpt, mpt_vol); } mpt->raid_mwce_set = 1; - MPT_UNLOCK(mpt); return (0); } From owner-p4-projects@FreeBSD.ORG Mon Apr 23 07:28:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5408016A406; Mon, 23 Apr 2007 07:28:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EDEC316A400; Mon, 23 Apr 2007 07:28:48 +0000 (UTC) (envelope-from zec@icir.org) Received: from xaqua.tel.fer.hr (xaqua.tel.fer.hr [161.53.19.25]) by mx1.freebsd.org (Postfix) with ESMTP id AB20B13C45A; Mon, 23 Apr 2007 07:28:48 +0000 (UTC) (envelope-from zec@icir.org) Received: by xaqua.tel.fer.hr (Postfix, from userid 20006) id 38C069B6F1; Mon, 23 Apr 2007 09:28:47 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.1.7 (2006-10-05) on xaqua.tel.fer.hr X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.7 Received: from [192.168.200.106] (zec2.tel.fer.hr [161.53.19.79]) by xaqua.tel.fer.hr (Postfix) with ESMTP id E964B9B657; Mon, 23 Apr 2007 09:28:45 +0200 (CEST) From: Marko Zec To: Marko Zec Date: Mon, 23 Apr 2007 09:28:42 +0200 User-Agent: KMail/1.9.1 References: <200704230515.l3N5F1HT035887@repoman.freebsd.org> In-Reply-To: <200704230515.l3N5F1HT035887@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200704230928.42593.zec@icir.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 118634 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 07:28:49 -0000 On Monday 23 April 2007 07:15, Marko Zec wrote: > http://perforce.freebsd.org/chv.cgi?CH=118634 > > Change 118634 by zec@zec_tca51 on 2007/04/23 05:14:25 > > If lo0 is gone, don't queue any routing messages, since those > must have m_pkthdr.rcvif set to loif. Huh, his included a leak-commit of some unfinished bits aimed at releasing vnet instances... Description of those changes will follow when I clean up this code. > Affected files ... > > .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#17 edit > .. //depot/projects/vimage/src/sys/net/rtsock.c#8 edit > .. //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#6 edit > .. //depot/projects/vimage/src/sys/sys/protosw.h#2 edit From owner-p4-projects@FreeBSD.ORG Mon Apr 23 08:41:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4DF5B16A407; Mon, 23 Apr 2007 08:41:22 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 163CF16A401 for ; Mon, 23 Apr 2007 08:41:22 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 063AA13C45A for ; Mon, 23 Apr 2007 08:41:22 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N8fLk4076004 for ; Mon, 23 Apr 2007 08:41:22 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N8fLJh076001 for perforce@freebsd.org; Mon, 23 Apr 2007 08:41:21 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 23 Apr 2007 08:41:21 GMT Message-Id: <200704230841.l3N8fLJh076001@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118648 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 08:41:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=118648 Change 118648 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/23 08:40:40 bring l2t closer to being a working implementation by replacing "neighbour" with rtentry re-declare llinfo_arp outside of if_ether.c for the moment until accessor functions can be added disable VLAN support until the vlan tag for a route can be queried don't support custom resolution failure routines Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.c#4 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.h#4 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.c#4 (text+ko) ==== @@ -44,6 +44,15 @@ #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include @@ -54,12 +63,19 @@ #include #include -#include +#define VLAN_NONE 0xfff +#define SDL(s) ((struct sockaddr_dl *)s) +#define RT_ENADDR(rt) ((char *)LLADDR(SDL((rt)))) +#define rt_expire rt_rmx.rmx_expire -#define neigh_release(...) +struct llinfo_arp { + struct callout la_timer; + struct rtentry *la_rt; + struct mbuf *la_hold; /* last packet until resolved/timeout */ + u_short la_preempt; /* countdown for pre-expiry arps */ + u_short la_asked; /* # requests sent */ +}; -#define VLAN_NONE 0xfff - /* * Module locking notes: There is a RW lock protecting the L2 table as a * whole plus a spinlock per L2T entry. Entry lookups and allocations happen @@ -87,16 +103,20 @@ } static inline void -neigh_replace(struct l2t_entry *e, struct ifnet *n) +neigh_replace(struct l2t_entry *e, struct rtentry *rt) { -#if 0 - neigh_hold(n); - if (e->neigh) - neigh_release(e->neigh); - e->neigh = n; -#endif + RT_LOCK(rt); + RT_ADDREF(rt); + RT_UNLOCK(rt); + + if (e->neigh) { + RT_LOCK(e->neigh); + RT_REMREF(e->neigh); + RT_UNLOCK(e->neigh); + } + e->neigh = rt; } -#if 0 + /* * Set up an L2T entry and send any packets waiting in the arp queue. The * supplied mbuf is used for the CPL_L2T_WRITE_REQ. Must be called with the @@ -121,9 +141,8 @@ req->params = htonl(V_L2T_W_IDX(e->idx) | V_L2T_W_IFF(e->smt_idx) | V_L2T_W_VLAN(e->vlan & EVL_VLID_MASK) | V_L2T_W_PRIO(vlan_prio(e))); -#if 0 - memcpy(e->dmac, e->neigh->ha, sizeof(e->dmac)); -#endif + + memcpy(e->dmac, RT_ENADDR(e->neigh), sizeof(e->dmac)); memcpy(req->dst_mac, e->dmac, sizeof(req->dst_mac)); m->m_priority = CPL_PRIORITY_CONTROL; cxgb_ofld_send(dev, m); @@ -138,7 +157,7 @@ return 0; } -#endif + /* * Add a packet to the an L2T entry's queue of packets awaiting resolution. * Must be called with the entry's lock held. @@ -158,12 +177,18 @@ t3_l2t_send_slow(struct toedev *dev, struct mbuf *m, struct l2t_entry *e) { + struct rtentry *rt; + struct mbuf *m0; + + if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) + return (ENOMEM); + + rt = e->neigh; + again: switch (e->state) { case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ -#if 0 - neigh_event_send(e->neigh, NULL); -#endif + arpresolve(rt->rt_ifp, rt, m0, rt->rt_gateway, RT_ENADDR(rt)); mtx_lock(&e->lock); if (e->state == L2T_STATE_STALE) e->state = L2T_STATE_VALID; @@ -179,6 +204,8 @@ arpq_enqueue(e, m); mtx_unlock(&e->lock); + if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) + return (ENOMEM); /* * Only the first packet added to the arpq should kick off * resolution. However, because the m_gethdr below can fail, @@ -187,19 +214,15 @@ * A better way would be to use a work request to retry L2T * entries when there's no memory. */ -#if 0 - if (!neigh_event_send(e->neigh, NULL)) { - if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) - break; + if (arpresolve(rt->rt_ifp, rt, m0, rt->rt_gateway, RT_ENADDR(rt)) == 0) { mtx_lock(&e->lock); - if (e->arpq_head) + if (e->arpq_head) setup_l2e_send_pending(dev, m, e); - else /* we lost the race */ - m_free(m); + else + m_freem(m); mtx_unlock(&e->lock); } -#endif } return 0; } @@ -207,12 +230,17 @@ void t3_l2t_send_event(struct toedev *dev, struct l2t_entry *e) { + struct rtentry *rt; + struct mbuf *m0; + + if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) + return; + + rt = e->neigh; again: switch (e->state) { case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ -#if 0 - neigh_event_send(e->neigh, NULL); -#endif + arpresolve(rt->rt_ifp, rt, m0, rt->rt_gateway, RT_ENADDR(rt)); mtx_lock(&e->lock); if (e->state == L2T_STATE_STALE) { e->state = L2T_STATE_VALID; @@ -228,7 +256,9 @@ goto again; } mtx_unlock(&e->lock); - + + if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) + return; /* * Only the first packet added to the arpq should kick off * resolution. However, because the alloc_skb below can fail, @@ -237,13 +267,11 @@ * A better way would be to use a work request to retry L2T * entries when there's no memory. */ -#if 0 - neigh_event_send(e->neigh, NULL); -#endif + arpresolve(rt->rt_ifp, rt, m0, rt->rt_gateway, RT_ENADDR(rt)); + } return; } -#if 0 /* * Allocate a free L2T entry. Must be called with l2t_data.lock held. */ @@ -281,7 +309,7 @@ } return e; } -#endif + /* * Called when an L2T entry has no more users. The entry is left in the hash * table since it is likely to be reused but we also bump nfree to indicate @@ -299,7 +327,9 @@ mtx_lock(&e->lock); if (atomic_load_acq_int(&e->refcnt) == 0) { /* hasn't been recycled */ if (e->neigh) { - neigh_release(e->neigh); + RT_LOCK(e->neigh); + RT_REMREF(e->neigh); + RT_UNLOCK(e->neigh); e->neigh = NULL; } } @@ -312,36 +342,34 @@ * Must be called with softirqs disabled. */ static inline void -reuse_entry(struct l2t_entry *e, struct ifnet *neigh) +reuse_entry(struct l2t_entry *e, struct rtentry *neigh) { -#ifdef notyet - unsigned int nud_state; + struct llinfo_arp *la; + + la = (struct llinfo_arp *)neigh->rt_llinfo; mtx_lock(&e->lock); /* avoid race with t3_l2t_free */ - if (neigh != e->neigh) neigh_replace(e, neigh); - nud_state = neigh->nud_state; - if (memcmp(e->dmac, neigh->ha, sizeof(e->dmac)) || - !(nud_state & NUD_VALID)) + + if (memcmp(e->dmac, RT_ENADDR(neigh), sizeof(e->dmac)) || + (neigh->rt_expire > time_uptime)) e->state = L2T_STATE_RESOLVING; - else if (nud_state & NUD_CONNECTED) + else if (la->la_hold == NULL) e->state = L2T_STATE_VALID; else e->state = L2T_STATE_STALE; mtx_unlock(&e->lock); -#endif } struct l2t_entry * -t3_l2t_get(struct toedev *dev, struct ifnet *neigh, +t3_l2t_get(struct toedev *dev, struct rtentry *neigh, unsigned int smt_idx) { -#if 0 struct l2t_entry *e; struct l2t_data *d = L2DATA(dev); - u32 addr = *(u32 *) neigh->primary_key; - int ifidx = neigh->if_index; + u32 addr = *(u32 *) rt_key(neigh); + int ifidx = neigh->rt_ifp->if_index; int hash = arp_hash(addr, ifidx, d); rw_wlock(&d->lock); @@ -366,17 +394,20 @@ e->smt_idx = smt_idx; atomic_store_rel_int(&e->refcnt, 1); neigh_replace(e, neigh); - if (neigh->dev->priv_flags & IFF_802_1Q_VLAN) +#ifdef notyet + /* + * XXX need to add accessor function for vlan tag + */ + if (neigh->rt_ifp->if_vlantrunk) e->vlan = VLAN_DEV_INFO(neigh->dev)->vlan_id; else +#endif e->vlan = VLAN_NONE; mtx_unlock(&e->lock); } done: rw_wunlock(&d->lock); return e; -#endif - return (NULL); } /* @@ -387,41 +418,43 @@ * XXX: maybe we should abandon the latter behavior and just require a failure * handler. */ -#if 0 static void handle_failed_resolution(struct toedev *dev, struct mbuf *arpq) { while (arpq) { struct mbuf *m = arpq; +#ifdef notyet struct l2t_mbuf_cb *cb = L2T_MBUF_CB(m); - +#endif arpq = m->m_next; m->m_next = NULL; +#ifdef notyet if (cb->arp_failure_handler) cb->arp_failure_handler(dev, m); else +#endif cxgb_ofld_send(dev, m); } } -#endif + #if defined(NETEVENT) || !defined(CONFIG_CHELSIO_T3_MODULE) /* * Called when the host's ARP layer makes a change to some entry that is * loaded into the HW L2 table. */ void -t3_l2t_update(struct toedev *dev, struct ifnet *neigh) +t3_l2t_update(struct toedev *dev, struct rtentry *neigh) { -#if 0 struct l2t_entry *e; struct mbuf *arpq = NULL; struct l2t_data *d = L2DATA(dev); - u32 addr = *(u32 *) neigh->primary_key; - int ifidx = neigh->dev->ifindex; + u32 addr = *(u32 *) rt_key(neigh); + int ifidx = neigh->rt_ifp->if_index; int hash = arp_hash(addr, ifidx, d); - + struct llinfo_arp *la; + rw_rlock(&d->lock); for (e = d->l2tab[hash].first; e; e = e->next) if (e->addr == addr && e->ifindex == ifidx) { @@ -436,17 +469,19 @@ if (atomic_load_acq_int(&e->refcnt)) { if (neigh != e->neigh) neigh_replace(e, neigh); - + + la = (struct llinfo_arp *)neigh->rt_llinfo; if (e->state == L2T_STATE_RESOLVING) { - if (neigh->nud_state & NUD_FAILED) { + + if (la->la_asked >= 5 /* arp_maxtries */) { arpq = e->arpq_head; e->arpq_head = e->arpq_tail = NULL; - } else if (neigh_is_connected(neigh)) + } else if (la->la_hold == NULL) setup_l2e_send_pending(dev, NULL, e); } else { - e->state = neigh_is_connected(neigh) ? + e->state = (la->la_hold == NULL) ? L2T_STATE_VALID : L2T_STATE_STALE; - if (memcmp(e->dmac, neigh->ha, 6)) + if (memcmp(e->dmac, RT_ENADDR(neigh), 6)) setup_l2e_send_pending(dev, NULL, e); } } @@ -454,18 +489,17 @@ if (arpq) handle_failed_resolution(dev, arpq); -#endif } #else /* * Called from a kprobe, interrupts are off. */ void -t3_l2t_update(struct toedev *dev, struct ifnet *neigh) +t3_l2t_update(struct toedev *dev, struct rtentry *neigh) { struct l2t_entry *e; struct l2t_data *d = L2DATA(dev); - u32 addr = *(u32 *) neigh->primary_key; + u32 addr = *(u32 *) rt_key(neigh); int ifidx = neigh->dev->ifindex; int hash = arp_hash(addr, ifidx, d); @@ -490,7 +524,7 @@ { struct mbuf *arpq = NULL; struct l2t_entry *e = (struct l2t_entry *)data; - struct ifnet *neigh = e->neigh; + struct rtentry *neigh = e->neigh; struct toedev *dev = e->tdev; barrier(); @@ -510,7 +544,7 @@ } else { e->state = neigh_is_connected(neigh) ? L2T_STATE_VALID : L2T_STATE_STALE; - if (memcmp(e->dmac, neigh->ha, sizeof(e->dmac))) + if (memcmp(e->dmac, RT_ENADDR(neigh), sizeof(e->dmac))) setup_l2e_send_pending(dev, NULL, e); } } ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.h#4 (text+ko) ==== @@ -20,20 +20,20 @@ * first element in its chain through its first pointer. */ struct l2t_entry { - uint16_t state; /* entry state */ - uint16_t idx; /* entry index */ - uint32_t addr; /* dest IP address */ - int ifindex; /* neighbor's net_device's ifindex */ - uint16_t smt_idx; /* SMT index */ - uint16_t vlan; /* VLAN TCI (id: bits 0-11, prio: 13-15 */ - struct ifnet *neigh; /* associated neighbour */ - struct l2t_entry *first; /* start of hash chain */ - struct l2t_entry *next; /* next l2t_entry on chain */ - struct mbuf *arpq_head; /* queue of packets awaiting resolution */ + uint16_t state; /* entry state */ + uint16_t idx; /* entry index */ + uint32_t addr; /* dest IP address */ + int ifindex; /* neighbor's net_device's ifindex */ + uint16_t smt_idx; /* SMT index */ + uint16_t vlan; /* VLAN TCI (id: bits 0-11, prio: 13-15 */ + struct rtentry *neigh; /* associated neighbour */ + struct l2t_entry *first; /* start of hash chain */ + struct l2t_entry *next; /* next l2t_entry on chain */ + struct mbuf *arpq_head; /* queue of packets awaiting resolution */ struct mbuf *arpq_tail; struct mtx lock; - volatile uint32_t refcnt; /* entry reference count */ - uint8_t dmac[6]; /* neighbour's MAC address */ + volatile uint32_t refcnt; /* entry reference count */ + uint8_t dmac[6]; /* neighbour's MAC address */ #ifndef NETEVENT #ifdef CONFIG_CHELSIO_T3_MODULE struct timer_list update_timer; @@ -45,7 +45,7 @@ struct l2t_data { unsigned int nentries; /* number of entries */ struct l2t_entry *rover; /* starting point for next allocation */ - volatile uint32_t nfree; /* number of free entries */ + volatile uint32_t nfree; /* number of free entries */ struct rwlock lock; struct l2t_entry l2tab[0]; }; @@ -65,21 +65,24 @@ */ #define L2T_MBUF_CB(skb) ((struct l2t_mbuf_cb *)(skb)->cb) -#ifdef notyet -static inline void set_arp_failure_handler(struct mbuf *m, + +static __inline void set_arp_failure_handler(struct mbuf *m, arp_failure_handler_func hnd) { +#if 0 L2T_SKB_CB(skb)->arp_failure_handler = hnd; +#endif + panic("implement me"); } -#endif + /* * Getting to the L2 data from an offload device. */ #define L2DATA(dev) ((dev)->l2opt) void t3_l2e_free(struct l2t_data *d, struct l2t_entry *e); -void t3_l2t_update(struct toedev *dev, struct ifnet *ifp); -struct l2t_entry *t3_l2t_get(struct toedev *dev, struct ifnet *neigh, +void t3_l2t_update(struct toedev *dev, struct rtentry *ifp); +struct l2t_entry *t3_l2t_get(struct toedev *dev, struct rtentry *neigh, unsigned int smt_idx); int t3_l2t_send_slow(struct toedev *dev, struct mbuf *m, struct l2t_entry *e); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 08:45:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 070AD16A403; Mon, 23 Apr 2007 08:45:32 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9D71916A401 for ; Mon, 23 Apr 2007 08:45:31 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8BDE913C43E for ; Mon, 23 Apr 2007 08:45:31 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N8jVH5076768 for ; Mon, 23 Apr 2007 08:45:31 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N8jRZn076765 for perforce@freebsd.org; Mon, 23 Apr 2007 08:45:27 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 23 Apr 2007 08:45:27 GMT Message-Id: <200704230845.l3N8jRZn076765@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118649 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 08:45:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=118649 Change 118649 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/23 08:44:39 IFC Affected files ... .. //depot/projects/opentoe/ObsoleteFiles.inc#5 integrate .. //depot/projects/opentoe/UPDATING#5 integrate .. //depot/projects/opentoe/compat/opensolaris/misc/fsshare.c#2 integrate .. //depot/projects/opentoe/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/opentoe/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 integrate .. //depot/projects/opentoe/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 integrate .. //depot/projects/opentoe/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#2 integrate .. //depot/projects/opentoe/contrib/top/top.c#3 integrate .. //depot/projects/opentoe/etc/rc.d/zfs#2 integrate .. //depot/projects/opentoe/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 integrate .. //depot/projects/opentoe/lib/libc/net/rthdr.c#2 integrate .. //depot/projects/opentoe/lib/libc/stdio/fputs.3#3 integrate .. //depot/projects/opentoe/lib/libfetch/fetch.3#2 integrate .. //depot/projects/opentoe/lib/libfetch/ftp.c#2 integrate .. //depot/projects/opentoe/lib/libpthread/thread/thr_info.c#2 integrate .. //depot/projects/opentoe/libexec/ftpd/ftpd.8#3 integrate .. //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#4 integrate .. //depot/projects/opentoe/sbin/fdisk_pc98/fdisk.8#2 integrate .. //depot/projects/opentoe/sbin/fdisk_pc98/fdisk.c#2 integrate .. //depot/projects/opentoe/sbin/ping6/ping6.c#2 integrate .. //depot/projects/opentoe/share/man/man4/Makefile#4 integrate .. //depot/projects/opentoe/share/man/man4/sbsh.4#2 integrate .. //depot/projects/opentoe/share/man/man4/worm.4#2 delete .. //depot/projects/opentoe/share/man/man8/nanobsd.8#2 integrate .. //depot/projects/opentoe/share/man/man9/pseudofs.9#2 integrate .. //depot/projects/opentoe/share/misc/committers-ports.dot#4 integrate .. //depot/projects/opentoe/share/misc/committers-src.dot#4 integrate .. //depot/projects/opentoe/share/misc/organization.dot#2 integrate .. //depot/projects/opentoe/share/mk/version_gen.awk#2 integrate .. //depot/projects/opentoe/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/opentoe/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/opentoe/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/opentoe/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/opentoe/sys/compat/opensolaris/kern/opensolaris_vfs.c#3 integrate .. //depot/projects/opentoe/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/opentoe/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/opentoe/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/opentoe/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/opentoe/sys/conf/files#4 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/opentoe/sys/dev/ath/if_ath.c#3 integrate .. //depot/projects/opentoe/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/opentoe/sys/i386/i386/pmap.c#4 integrate .. //depot/projects/opentoe/sys/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/opentoe/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/opentoe/sys/ia64/include/vmparam.h#2 integrate .. //depot/projects/opentoe/sys/kern/kern_linker.c#2 integrate .. //depot/projects/opentoe/sys/kern/kern_malloc.c#2 integrate .. //depot/projects/opentoe/sys/kern/kern_time.c#2 integrate .. //depot/projects/opentoe/sys/kern/uipc_syscalls.c#5 integrate .. //depot/projects/opentoe/sys/netgraph/ng_ppp.c#2 integrate .. //depot/projects/opentoe/sys/netinet/sctp.h#2 integrate .. //depot/projects/opentoe/sys/netinet/sctp_indata.c#7 integrate .. //depot/projects/opentoe/sys/netinet/sctp_indata.h#2 integrate .. //depot/projects/opentoe/sys/netinet/sctp_input.c#7 integrate .. //depot/projects/opentoe/sys/netinet/sctp_output.c#7 integrate .. //depot/projects/opentoe/sys/netinet/sctp_pcb.c#7 integrate .. //depot/projects/opentoe/sys/netinet/sctp_pcb.h#5 integrate .. //depot/projects/opentoe/sys/netinet/sctp_structs.h#6 integrate .. //depot/projects/opentoe/sys/netinet/sctp_uio.h#6 integrate .. //depot/projects/opentoe/sys/netinet/sctp_usrreq.c#7 integrate .. //depot/projects/opentoe/sys/netinet/sctputil.c#7 integrate .. //depot/projects/opentoe/sys/netinet/sctputil.h#5 integrate .. //depot/projects/opentoe/sys/netinet/tcp.h#3 integrate .. //depot/projects/opentoe/sys/netinet/tcp_input.c#5 integrate .. //depot/projects/opentoe/sys/netinet/tcp_output.c#5 integrate .. //depot/projects/opentoe/sys/netinet/tcp_syncache.c#3 integrate .. //depot/projects/opentoe/sys/netinet/tcp_var.h#4 integrate .. //depot/projects/opentoe/sys/netinet6/in6_pcb.c#2 integrate .. //depot/projects/opentoe/sys/nfsclient/nfs_lock.c#2 integrate .. //depot/projects/opentoe/sys/nfsserver/nfs_syscalls.c#2 integrate .. //depot/projects/opentoe/sys/pci/if_vr.c#3 integrate .. //depot/projects/opentoe/sys/pci/if_vrreg.h#3 integrate .. //depot/projects/opentoe/sys/security/audit/audit_syscalls.c#3 integrate .. //depot/projects/opentoe/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/opentoe/sys/security/mac/mac_framework.h#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_inet.c#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_net.c#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_pipe.c#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_policy.h#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_process.c#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_system.c#2 integrate .. //depot/projects/opentoe/sys/security/mac/mac_vfs.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_biba/mac_biba.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_bsdextended/mac_bsdextended.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_lomac/mac_lomac.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_mls/mac_mls.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_stub/mac_stub.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_test/mac_test.c#2 integrate .. //depot/projects/opentoe/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/opentoe/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/opentoe/sys/sys/mount.h#5 integrate .. //depot/projects/opentoe/sys/sys/priv.h#3 integrate .. //depot/projects/opentoe/tools/regression/netinet6/inet6_rth/Makefile#1 branch .. //depot/projects/opentoe/tools/regression/netinet6/inet6_rth/inet6_rth-segments.c#1 branch .. //depot/projects/opentoe/tools/regression/netinet6/inet6_rth/test_subr.c#1 branch .. //depot/projects/opentoe/tools/regression/netinet6/inet6_rth/test_subr.h#1 branch .. //depot/projects/opentoe/tools/regression/sockets/sendfile/sendfile.c#3 integrate .. //depot/projects/opentoe/tools/regression/usr.bin/sed/regress.sh#3 integrate .. //depot/projects/opentoe/tools/sched/schedgraph.py#2 integrate .. //depot/projects/opentoe/tools/tools/nanobsd/nanobsd.sh#2 integrate .. //depot/projects/opentoe/usr.bin/make/GNode.h#2 integrate .. //depot/projects/opentoe/usr.bin/make/main.c#2 integrate .. //depot/projects/opentoe/usr.bin/make/make.c#2 integrate .. //depot/projects/opentoe/usr.bin/make/targ.c#2 integrate .. //depot/projects/opentoe/usr.bin/sed/extern.h#2 integrate .. //depot/projects/opentoe/usr.bin/sed/main.c#2 integrate .. //depot/projects/opentoe/usr.bin/sed/process.c#3 integrate .. //depot/projects/opentoe/usr.bin/sed/sed.1#2 integrate .. //depot/projects/opentoe/usr.sbin/daemon/daemon.c#3 integrate .. //depot/projects/opentoe/usr.sbin/pmcstat/pmcstat.8#2 integrate .. //depot/projects/opentoe/usr.sbin/pmcstat/pmcstat.c#2 integrate .. //depot/projects/opentoe/usr.sbin/pmcstat/pmcstat.h#2 integrate Differences ... ==== //depot/projects/opentoe/ObsoleteFiles.inc#5 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.79 2007/04/17 01:02:55 thompsa Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070421: worm.4 removed +OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) OLD_FILES+=usr/include/net/if_trunk.h # 20070409: uuidgen moved to /bin/ ==== //depot/projects/opentoe/UPDATING#5 (text+ko) ==== @@ -21,17 +21,6 @@ developers choose to disable these features on build machines to maximize performance. -20070418: - A new acct(5) format is imminent. If you want to maintain access - to your accounting files, use the new lastcomm(1) -X functionality to - export them into text format, and keep around a copy of the lastcomm - binary. An updated lastcomm(1) program will allow you to import - the text files into the new acct(5) format. The change will also - invalidate the condensed summary files /var/account/savacct and - /var/account/usracct. If your process accounting system relies - on them, you will need to save their contents in a readable format - before the switch. - 20070417: The new trunk(4) driver has been renamed to lagg(4) as it better reflects its purpose. ifconfig will need to be recompiled. @@ -778,4 +767,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.487 2007/04/18 17:34:59 dds Exp $ +$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ ==== //depot/projects/opentoe/compat/opensolaris/misc/fsshare.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.1 2007/04/06 01:08:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.2 2007/04/21 13:17:23 pjd Exp $"); #include #include @@ -99,21 +99,30 @@ /* * Function translate options to a format acceptable by exports(5), eg. * - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org 69.147.83.54 * * Accepted input formats: * - * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0 - * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 - * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0 - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org + * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org + * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org + * + * Recognized keywords: + * + * ro, maproot, mapall, mask, network, alldirs, public, webnfs, index, quiet + * */ +static const char *known_opts[] = { "ro", "maproot", "mapall", "mask", + "network", "alldirs", "public", "webnfs", "index", "quiet", NULL }; static char * translate_opts(const char *shareopts) { static char newopts[OPTSSIZE]; - char oldopts[OPTSSIZE], opt[64]; + char oldopts[OPTSSIZE]; char *o, *s = NULL; + unsigned int i; + size_t len; strlcpy(oldopts, shareopts, sizeof(oldopts)); newopts[0] = '\0'; @@ -121,8 +130,16 @@ while ((o = strsep(&s, "-, ")) != NULL) { if (o[0] == '\0') continue; - snprintf(opt, sizeof(opt), "-%s ", o); - strlcat(newopts, opt, sizeof(newopts)); + for (i = 0; known_opts[i] != NULL; i++) { + len = strlen(known_opts[i]); + if (strncmp(known_opts[i], o, len) == 0 && + (o[len] == '\0' || o[len] == '=')) { + strlcat(newopts, "-", sizeof(newopts)); + break; + } + } + strlcat(newopts, o, sizeof(newopts)); + strlcat(newopts, " ", sizeof(newopts)); } return (newopts); } ==== //depot/projects/opentoe/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -932,11 +932,11 @@ if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (K=%s)", - zio_checksum_table[doi.doi_checksum].ci_name); + zio_checksum_table[doi.doi_checksum].ci_name); if (doi.doi_compress != ZIO_COMPRESS_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (Z=%s)", - zio_compress_table[doi.doi_compress].ci_name); + zio_compress_table[doi.doi_compress].ci_name); (void) printf("%10lld %3u %5s %5s %5s %5s %s%s\n", (u_longlong_t)object, doi.doi_indirection, iblk, dblk, lsize, @@ -1441,7 +1441,7 @@ (u_longlong_t)zb->zb_objset, (u_longlong_t)zb->zb_object, (u_longlong_t)blkid2offset(bc->bc_dnode, - zb->zb_level, zb->zb_blkid), + zb->zb_level, zb->zb_blkid), blkbuf); } @@ -1951,8 +1951,8 @@ spa_close(spa, (void *)zdb_read_block); error = spa_open(spa_name, spap, (void *)zdb_read_block); if (error) - fatal("Failed to open pool '%s': errno = %d\n", - spa_name, error); + fatal("Failed to open pool '%s': %s", + spa_name, strerror(error)); spa = *spap; } @@ -2156,7 +2156,7 @@ } if (error) - fatal("can't open %s: error %d", argv[0], error); + fatal("can't open %s: %s", argv[0], strerror(error)); argv++; if (--argc > 0) { ==== //depot/projects/opentoe/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 (text+ko) ==== @@ -339,22 +339,15 @@ changelist_free(prop_changelist_t *clp) { prop_changenode_t *cn; - uu_list_walk_t *walk; + void *cookie; if (clp->cl_list) { - verify((walk = uu_list_walk_start(clp->cl_list, - UU_WALK_ROBUST)) != NULL); - - while ((cn = uu_list_walk_next(walk)) != NULL) { - - uu_list_remove(clp->cl_list, cn); - + cookie = NULL; + while ((cn = uu_list_teardown(clp->cl_list, &cookie)) != NULL) { zfs_close(cn->cn_handle); free(cn); } - uu_list_walk_end(walk); - uu_list_destroy(clp->cl_list); } if (clp->cl_pool) @@ -418,7 +411,7 @@ } else { ASSERT(!clp->cl_alldependents); verify(uu_list_insert_before(clp->cl_list, - uu_list_first(clp->cl_list), cn) == 0); + uu_list_first(clp->cl_list), cn) == 0); } if (!clp->cl_alldependents) ==== //depot/projects/opentoe/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 (text+ko) ==== @@ -74,22 +74,16 @@ namespace_clear(libzfs_handle_t *hdl) { if (hdl->libzfs_ns_avl) { - uu_avl_walk_t *walk; config_node_t *cn; + void *cookie = NULL; - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) - return; - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, + &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - uu_avl_destroy(hdl->libzfs_ns_avl); hdl->libzfs_ns_avl = NULL; } @@ -110,7 +104,7 @@ config_node_t *cn; nvpair_t *elem; zfs_cmd_t zc = { 0 }; - uu_avl_walk_t *walk; + void *cookie; if (hdl->libzfs_ns_gen == 0) { /* @@ -172,21 +166,13 @@ /* * Clear out any existing configuration information. */ - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) { - nvlist_free(config); - return (no_memory(hdl)); - } - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + cookie = NULL; + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - elem = NULL; while ((elem = nvlist_next_nvpair(config, elem)) != NULL) { nvlist_t *child; @@ -222,7 +208,7 @@ } /* - * Retrive the configuration for the given pool. The configuration is a nvlist + * Retrieve the configuration for the given pool. The configuration is a nvlist * describing the vdevs, as well as the statistics associated with each one. */ nvlist_t * ==== //depot/projects/opentoe/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#2 (text+ko) ==== @@ -220,7 +220,7 @@ &state) == 0 && state == POOL_STATE_SPARE && nvlist_lookup_uint64(config, ZPOOL_CONFIG_GUID, &vdev_guid) == 0) { if ((ne = zfs_alloc(hdl, sizeof (name_entry_t))) == NULL) - return (-1); + return (-1); if ((ne->ne_name = zfs_strdup(hdl, path)) == NULL) { free(ne); @@ -748,7 +748,6 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv) { int i; - DIR *dirp; char path[MAXPATHLEN]; nvlist_t *ret = NULL, *config; int fd; @@ -824,7 +823,6 @@ free(ne); } - return (ret); } ==== //depot/projects/opentoe/contrib/top/top.c#3 (text+ko) ==== @@ -13,7 +13,7 @@ * Copyright (c) 1994, 1995, William LeFebvre, Argonne National Laboratory * Copyright (c) 1996, William LeFebvre, Group sys Consulting * - * $FreeBSD: src/contrib/top/top.c,v 1.21 2007/04/17 03:12:39 rafan Exp $ + * $FreeBSD: src/contrib/top/top.c,v 1.22 2007/04/19 14:24:54 rafan Exp $ */ /* @@ -410,7 +410,7 @@ default: fprintf(stderr, "Top version %s\n" -"Usage: %s [-bCHIinqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" +"Usage: %s [-abCHIijnqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" " [-U username] [number]\n", version_string(), myname); exit(1); ==== //depot/projects/opentoe/etc/rc.d/zfs#2 (text+ko) ==== @@ -1,11 +1,10 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/zfs,v 1.4 2007/04/15 18:07:14 pjd Exp $ +# $FreeBSD: src/etc/rc.d/zfs,v 1.5 2007/04/22 20:55:08 pjd Exp $ # # PROVIDE: zfs # REQUIRE: mountcritlocal -# KEYWORD: nojail . /etc/rc.subr @@ -15,7 +14,14 @@ stop_cmd="zfs_stop" required_modules="zfs" -zfs_start() +zfs_start_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs mount -a + fi +} + +zfs_start_main() { zfs volinit zfs mount -a @@ -34,7 +40,23 @@ done } -zfs_stop() +zfs_start() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_start_jail + else + zfs_start_main + fi +} + +zfs_stop_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs unmount -a + fi +} + +zfs_stop_main() { # Disable swap on ZVOLs with property org.freebsd:swap=on. zfs list -H -o org.freebsd:swap,name -t volume | \ @@ -50,5 +72,14 @@ zfs volfini } +zfs_stop() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_stop_jail + else + zfs_stop_main + fi +} + load_rc_config $name run_rc_command "$1" ==== //depot/projects/opentoe/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.1 2007/03/03 07:37:36 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.2 2007/04/20 15:32:13 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include @@ -72,6 +72,7 @@ id_t id; }; +static const size_t cache_size = 127; static unsigned int hash(const char *); static gid_t lookup_gid(void *, const char *uname, gid_t); static uid_t lookup_uid(void *, const char *uname, uid_t); @@ -99,10 +100,10 @@ int archive_write_disk_set_standard_lookup(struct archive *a) { - struct bucket *ucache = malloc(sizeof(struct bucket[127])); - struct bucket *gcache = malloc(sizeof(struct bucket[127])); - memset(ucache, 0, sizeof(struct bucket[127])); - memset(gcache, 0, sizeof(struct bucket[127])); + struct bucket *ucache = malloc(sizeof(struct bucket[cache_size])); + struct bucket *gcache = malloc(sizeof(struct bucket[cache_size])); + memset(ucache, 0, sizeof(struct bucket[cache_size])); + memset(gcache, 0, sizeof(struct bucket[cache_size])); archive_write_disk_set_group_lookup(a, gcache, lookup_gid, cleanup); archive_write_disk_set_user_lookup(a, ucache, lookup_uid, cleanup); return (ARCHIVE_OK); @@ -113,11 +114,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *gcache = (struct bucket *)private_data; - cache_size = 127; - /* If no gname, just use the gid provided. */ if (gname == NULL || *gname == '\0') return (gid); @@ -153,11 +151,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *ucache = (struct bucket *)private_data; - cache_size = 127; - /* If no uname, just use the uid provided. */ if (uname == NULL || *uname == '\0') return (uid); @@ -191,7 +186,12 @@ static void cleanup(void *private) { - free(private); + size_t i; + struct bucket *cache = (struct bucket *)private; + + for (i = 0; i < cache_size; i++) + free(cache[i].name); + free(cache); } ==== //depot/projects/opentoe/lib/libc/net/rthdr.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.8 2005/07/19 18:13:58 ume Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.9 2007/04/19 15:48:16 mtm Exp $"); #include #include @@ -292,7 +292,9 @@ { switch (type) { case IPV6_RTHDR_TYPE_0: - return (((segments * 2) + 1) << 3); + if ((segments >= 0) && (segments <= 127)) + return (((segments * 2) + 1) << 3); + /* FALLTHROUGH */ default: return (0); /* type not suppported */ } @@ -309,6 +311,9 @@ /* length validation */ if (bp_len < inet6_rth_space(IPV6_RTHDR_TYPE_0, segments)) return (NULL); + /* segment validation */ + if ((segments < 0) || (segments > 127)) + return (NULL); memset(bp, 0, bp_len); rth0 = (struct ip6_rthdr0 *)rth; @@ -334,6 +339,9 @@ switch (rth->ip6r_type) { case IPV6_RTHDR_TYPE_0: rth0 = (struct ip6_rthdr0 *)rth; + /* Don't exceed the number of stated segments */ + if (rth0->ip6r0_segleft == (rth0->ip6r0_len / 2)) + return (-1); nextaddr = (struct in6_addr *)(rth0 + 1) + rth0->ip6r0_segleft; *nextaddr = *addr; rth0->ip6r0_segleft++; ==== //depot/projects/opentoe/lib/libc/stdio/fputs.3#3 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)fputs.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.13 2007/04/19 09:38:31 phk Exp $ +.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.14 2007/04/19 14:01:04 phk Exp $ .\" .Dd June 4, 1993 .Dt FPUTS 3 @@ -70,7 +70,7 @@ .Fn fputs and .Fn puts -returns a nonnegative integer on success and +return a nonnegative integer on success and .Dv EOF on error. .Sh ERRORS ==== //depot/projects/opentoe/lib/libfetch/fetch.3#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.61 2005/11/30 04:08:45 tmclaugh Exp $ +.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.62 2007/04/22 22:33:29 njl Exp $ .\" -.Dd July 1, 1998 +.Dd April 22, 2007 .Dt FETCH 3 .Os .Sh NAME @@ -334,6 +334,16 @@ .Nm fetch library will attempt an anonymous login, with user name "anonymous" and password "anonymous@". +.Pp +By default, +.Nm fetch +changes directories one at a time for the best compatibility with a wide +variety of servers. +If it is compiled with the +.Ql FTP_COMBINE_CWDS +flag, it will first try a single change directory command for the entire +path and fall back to the default scheme if an error occurred. +This can save latency when used with a slow network link. .Sh HTTP SCHEME The .Fn fetchXGetHTTP , ==== //depot/projects/opentoe/lib/libfetch/ftp.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.95 2006/06/13 10:21:03 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.96 2007/04/22 22:33:29 njl Exp $"); /* * Portions of this code were taken from or based on ftpio.c: @@ -267,6 +267,7 @@ char pwd[PATH_MAX]; int e, i, len; + /* If no slashes in name, no need to change dirs. */ if ((end = strrchr(file, '/')) == NULL) return (0); if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY || @@ -276,7 +277,8 @@ } for (;;) { len = strlen(pwd); - /* look for a common prefix */ + + /* Look for a common prefix between PWD and dir to fetch. */ for (i = 0; i <= len && i <= end - file; ++i) if (pwd[i] != file[i]) break; @@ -284,6 +286,7 @@ DEBUG(fprintf(stderr, "have: [%.*s|%s]\n", i, pwd, pwd + i)); DEBUG(fprintf(stderr, "want: [%.*s|%s]\n", i, file, file + i)); #endif + /* Keep going up a dir until we have a matching prefix. */ if (pwd[i] == '\0' && (file[i - 1] == '/' || file[i] == '/')) break; if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK || @@ -293,6 +296,23 @@ return (-1); } } + +#ifdef FTP_COMBINE_CWDS + /* Skip leading slashes, even "////". */ + for (beg = file + i; beg < end && *beg == '/'; ++beg, ++i) + /* nothing */ ; + + /* If there is no trailing dir, we're already there. */ + if (beg >= end) + return (0); + + /* Change to the directory all in one chunk (e.g., foo/bar/baz). */ + e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg); + if (e == FTP_FILE_ACTION_OK) + return (0); +#endif /* FTP_COMBINE_CWDS */ + + /* That didn't work so go back to legacy behavior (multiple CWDs). */ for (beg = file + i; beg < end; beg = file + i + 1) { while (*beg == '/') ++beg, ++i; @@ -966,6 +986,8 @@ if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN) goto fouch; + /* TODO: Request extended features supported, if any (RFC 3659). */ + /* done */ return (conn); ==== //depot/projects/opentoe/lib/libpthread/thread/thr_info.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.29 2007/01/12 07:26:18 imp Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.30 2007/04/23 03:36:14 deischen Exp $ */ #include #include @@ -214,12 +214,31 @@ void _pthread_set_name_np(pthread_t thread, char *name) { - /* Check if the caller has specified a valid thread: */ - if (thread != NULL && thread->magic == THR_MAGIC) { - if (thread->name != NULL) { + struct pthread *curthread = _get_curthread(); + char *new_name; + char *prev_name; + int ret; + + new_name = strdup(name); + /* Add a reference to the target thread. */ + if (_thr_ref_add(curthread, thread, 0) != 0) { + free(new_name); + ret = ESRCH; + } + else { + THR_THREAD_LOCK(curthread, thread); + prev_name = thread->name; + thread->name = new_name; + THR_THREAD_UNLOCK(curthread, thread); + _thr_ref_delete(curthread, thread); + if (prev_name != NULL) { /* Free space for previous name. */ - free(thread->name); + free(prev_name); } - thread->name = strdup(name); + ret = 0; } +#if 0 + /* XXX - Should return error code. */ + return (ret); +#endif } ==== //depot/projects/opentoe/libexec/ftpd/ftpd.8#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 -.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.72 2007/04/18 22:43:39 yar Exp $ +.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.74 2007/04/20 09:08:20 trhodes Exp $ .\" -.Dd January 21, 2006 +.Dd April 20, 2007 .Dt FTPD 8 .Os .Sh NAME @@ -79,20 +79,19 @@ .Dv AF_INET6 socket. .It Fl 8 -The server is running in transparent UTF-8 mode. -That is, it just encourages RFC\ 2640 compliant clients to send -paths encoded in UTF-8 in their commands. -In particular, the names of files uploaded by such clients will -have UTF-8 encoding. -The clients will also assume that server replies and existing file -names have UTF-8 encoding, too. -The names of files preloaded to the server should meet this expectation -for the clients to present the correct file names to their users. -Own messages of +Enable transparent UTF-8 mode. +RFC\ 2640 compliant clients will be told that the character encoding +used by the server is UTF-8, which is the only effect of the option. +.Pp +This option does not enable any encoding conversion for server file names; +it implies instead that the names of files on the server are encoded +in UTF-8. +As for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant +client to convert their names from the client's local encoding to UTF-8. +FTP command names and own .Nm -are always encoded in ASCII, which in fact is a subset of UTF-8. -.Pp -Note that this option does not make the server do any encoding conversion. +messages are always encoded in ASCII, which is a subset of UTF-8. +Hence no need for server-side conversion at all. .It Fl A Allow only anonymous ftp access. .It Fl a @@ -356,16 +355,15 @@ and not have a null password. In this case a password must be provided by the client before any file operations may be performed. -If the user has an S/Key key, the response from a successful USER -command will include an S/Key challenge. +If the user has an OPIE key, the response from a successful USER +command will include an OPIE challenge. The client may choose to respond with a PASS command giving either -a standard password or an S/Key one-time password. +a standard password or an OPIE one-time password. The server will automatically determine which type of password it has been given and attempt to authenticate accordingly. See -.Xr key 1 -for more information on S/Key authentication. -S/Key is a Trademark of Bellcore. +.Xr opie 4 +for more information on OPIE authentication. .It The login name must not appear in the file .Pa /etc/ftpusers . @@ -559,9 +557,9 @@ .El .Sh SEE ALSO .Xr ftp 1 , -.Xr key 1 , .Xr umask 2 , .Xr getusershell 3 , +.Xr opie 4 , .Xr ftpchroot 5 , .Xr login.conf 5 , .Xr inetd 8 , ==== //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#4 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1018 2007/04/17 07:01:45 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1021 2007/04/21 03:45:18 hrs Exp $ 2000 @@ -438,14 +438,19 @@ statistics via a binary structure stream. The sysctl variable hw.pci.do_powerstate - has been changed from a boolean to a range. + has been split into two sysctl variables + hw.pci.do_powerstate_nodriver + and hw.pci.do_powerstate_resume. + Also, these variables have been changed from a boolean to a range. 0 means no power management, 1 means conservative power management which any device class that has caused problems is added to the watch list, 2 means aggressive power management where any device class that is not fundamental to the system is added to the list, and 3 means power them all down unconditionally. - The default is 1. + The default values are 0 for + hw.pci.do_powerstate_nodriver and + 1 for hw.pci.do_powerstate_resume. [&arch.ia64;] The GENERIC kernel now enables SMP support by default. @@ -499,6 +504,9 @@ [&arch.pc98;] A bootable CDROM loader has been implemented for the pc98 platform. &merged; + [&arch.pc98;] The IPLware support + in boot0.5 has been enhanced to support version 3.33. + [&arch.i386;] A bug in the i386 boot loader, which could cause file system corruption if a nextboot.conf file was used and landed @@ -978,6 +986,10 @@ IPv6 support, it should be used instead. Please note that some rules might need to be adjusted. + The &man.lagg.4; driver, ported from OpenBSD and NetBSD, + has been added to support a variety of protocols and algorithms + for link aggregation, failover, and fault tolerance. + The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE. A new &man.ng.deflate.4; Netgraph node type has been @@ -1103,10 +1115,6 @@ devices will marked up upon creation. &merged; - The &man.lagg.4; driver, ported from OpenBSD and NetBSD, - has been added to support a variety of protocols and algorithms - for link aggregation, failover, and fault tolerance. - Support for &man.kqueue.2; operations has been added to the &man.tun.4; driver. &merged; @@ -1133,6 +1141,10 @@ The &man.arcmsr.4; driver has been updated to version 1.20.00.13. &merged; + The &man.ahc.4; driver is now MPSAFE. + + The &man.ahd.4; driver is now MPSAFE. + The &man.ata.4; driver now supports a workaround for some controllers whose DMA does not work properly in 48bit mode. For affected controllers, @@ -1158,6 +1170,8 @@ The &man.ataraid.4; driver now supports JMicron ATA RAID metadata. &merged; + The CAM subsystem is now MPSAFE. + The GEOM_LABEL class now supports Ext2FS, NTFS, and ReiserFS. &merged; @@ -1295,8 +1309,9 @@ A part of the FreeBSD NFS subsystem (the interface with the protocol stack and callouts, the NFS client side) is now MPSAFE. - Initial (read-only) support for SGI's XFS file system has been - added. + The &man.pseudofs.9; pseudo file system construction kit and + all of its consumers (&man.procfs.5;, &man.linprocfs.5; and + &man.linsysfs.5;), are now MPSAFE. The unionfs file system has been re-implemented. This version solves many crashing and locking issues compared to @@ -1312,6 +1327,8 @@ on the OpenSolaris ZFS page. + Initial (read-only) support for SGI's XFS file system has been + added. @@ -1424,6 +1441,12 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 09:01:52 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8326116A407; Mon, 23 Apr 2007 09:01:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2031E16A401 for ; Mon, 23 Apr 2007 09:01:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F3E2D13C487 for ; Mon, 23 Apr 2007 09:01:51 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3N91pxe088028 for ; Mon, 23 Apr 2007 09:01:51 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3N91pr1088024 for perforce@freebsd.org; Mon, 23 Apr 2007 09:01:51 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 23 Apr 2007 09:01:51 GMT Message-Id: <200704230901.l3N91pr1088024@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118650 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 09:01:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=118650 Change 118650 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/23 09:01:40 move more offload functionality out from underneath "notyet" now that l2t is largely implemented Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#7 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.h#7 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_toedev.h#5 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#7 (text+ko) ==== @@ -69,6 +69,7 @@ #include #include +#include /* * XXX @@ -481,7 +482,7 @@ } static void -dummy_neigh_update(struct toedev *dev, struct ifnet *neigh) +dummy_neigh_update(struct toedev *dev, struct rtentry *neigh) { } @@ -551,7 +552,7 @@ req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_TID_RELEASE, tid)); } -#ifdef notyet + static void t3_process_tid_release_list(void *data, int pending) { @@ -573,7 +574,7 @@ } mtx_unlock(&td->tid_release_lock); } -#endif + /* use ctx as a next pointer in the tid release list */ void cxgb_queue_tid_release(struct toedev *tdev, unsigned int tid) @@ -584,7 +585,7 @@ mtx_lock(&td->tid_release_lock); p->ctx = (void *)td->tid_release_list; td->tid_release_list = p; -#if 0 +#ifdef notyet if (!p->ctx) schedule_work(&td->tid_release_task); #endif @@ -888,7 +889,7 @@ } static void -neigh_connect(struct neighbour *neigh) +neigh_connect(struct ifnet *neigh) { struct hh_cache *hh; @@ -1189,18 +1190,17 @@ } void -cxgb_neigh_update(struct ifnet *ifp) +cxgb_neigh_update(struct rtentry *rt) { - if (is_offloading(ifp)) { - struct toedev *tdev = TOEDEV(ifp); + if (is_offloading(rt->rt_ifp)) { + struct toedev *tdev = TOEDEV(rt->rt_ifp); BUG_ON(!tdev); - t3_l2t_update(tdev, ifp); + t3_l2t_update(tdev, rt); } } -#if 0 static void set_l2t_ix(struct toedev *tdev, u32 tid, struct l2t_entry *e) { @@ -1226,7 +1226,7 @@ } void -cxgb_redirect(struct dst_entry *old, struct dst_entry *new) +cxgb_redirect(struct rtentry *old, struct rtentry *new) { struct ifnet *olddev, *newdev; struct tid_info *ti; @@ -1236,8 +1236,8 @@ struct l2t_entry *e; struct toe_tid_entry *te; - olddev = old->neighbour->dev; - newdev = new->neighbour->dev; + olddev = old->rt_ifp; + newdev = new->rt_ifp; if (!is_offloading(olddev)) return; if (!is_offloading(newdev)) { @@ -1248,13 +1248,13 @@ tdev = TOEDEV(olddev); BUG_ON(!tdev); if (tdev != TOEDEV(newdev)) { - log(LOG_WARNING "%s: Redirect to different " + log(LOG_WARNING, "%s: Redirect to different " "offload device ignored.\n", __FUNCTION__); return; } /* Add new L2T entry */ - e = t3_l2t_get(tdev, new->neighbour, new->neighbour->dev->if_port); + e = t3_l2t_get(tdev, new, ((struct port_info *)new->rt_ifp->if_softc)->port); if (!e) { log(LOG_ERR, "%s: couldn't allocate new l2t entry!\n", __FUNCTION__); @@ -1277,7 +1277,7 @@ } l2t_release(L2DATA(tdev), e); } -#endif + /* * Allocate a chunk of memory using kmalloc or, if that fails, vmalloc. * The allocated memory is cleared. @@ -1298,7 +1298,7 @@ free(addr, M_DEVBUF); } -#ifdef notyet + /* * Allocate and initialize the TID tables. Returns 0 on success. */ @@ -1343,7 +1343,7 @@ } return 0; } -#endif + static void free_tid_maps(struct tid_info *t) { @@ -1374,7 +1374,6 @@ int cxgb_offload_activate(struct adapter *adapter) { -#ifdef notyet struct toedev *dev = &adapter->tdev; int natids, err; struct toe_data *t; @@ -1435,8 +1434,7 @@ out_free: free(t, M_DEVBUF); return err; -#endif - return (EOPNOTSUPP); + } void ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.h#7 (text+ko) ==== @@ -79,11 +79,9 @@ void (*add) (struct toedev *); void (*remove) (struct toedev *); cxgb_cpl_handler_func *handlers; -#ifdef notyet - int (*redirect)(void *ctx, struct dst_entry *old, - struct dst_entry *new, + int (*redirect)(void *ctx, struct rtentry *old, + struct rtentry *new, struct l2t_entry *l2t); -#endif TAILQ_ENTRY(cxgb_client) client_entry; }; @@ -252,10 +250,8 @@ void *cxgb_alloc_mem(unsigned long size); void cxgb_free_mem(void *addr); -void cxgb_neigh_update(struct ifnet *ifp); -#if 0 -void cxgb_redirect(struct dst_entry *old, struct dst_entry *new); -#endif +void cxgb_neigh_update(struct rtentry *rt); +void cxgb_redirect(struct rtentry *old, struct rtentry *new); int process_rx(struct toedev *dev, struct mbuf **m, int n); int attach_toedev(struct toedev *dev); void detach_toedev(struct toedev *dev); ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_toedev.h#5 (text+ko) ==== @@ -59,7 +59,7 @@ /* * XXX point to ARP list entry */ - void (*neigh_update)(struct toedev *dev, struct ifnet *ifp); + void (*neigh_update)(struct toedev *dev, struct rtentry *rt); void *priv; /* driver private data */ void *l2opt; /* optional layer 2 data */ void *l3opt; /* optional layer 3 data */ From owner-p4-projects@FreeBSD.ORG Mon Apr 23 12:18:55 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D4C6216A40B; Mon, 23 Apr 2007 12:18:54 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 92EB916A403 for ; Mon, 23 Apr 2007 12:18:54 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7E1DA13C4B0 for ; Mon, 23 Apr 2007 12:18:54 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NCIsQM024756 for ; Mon, 23 Apr 2007 12:18:54 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NCIsg9024753 for perforce@freebsd.org; Mon, 23 Apr 2007 12:18:54 GMT (envelope-from sephe@FreeBSD.org) Date: Mon, 23 Apr 2007 12:18:54 GMT Message-Id: <200704231218.l3NCIsg9024753@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 118653 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 12:18:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=118653 Change 118653 by sephe@sephe_zealot:sam_wifi on 2007/04/23 12:18:18 Nuke unnecessary setting of ural(4)'s security registers. ural(4) only supports software encrypt/decrypt. The nuked code itself is quite problematic, as pointed out by sam@ -- wk->wk_keyix should be replaced by the loop count. Tested with WEP/TKIP/CCMP/no-protection. Noticed-by: Hans Petter Selasky Affected files ... .. //depot/projects/wifi/sys/dev/usb/if_ural.c#20 edit Differences ... ==== //depot/projects/wifi/sys/dev/usb/if_ural.c#20 (text+ko) ==== @@ -147,7 +147,7 @@ int); static void ural_write(struct ural_softc *, uint16_t, uint16_t); static void ural_write_multi(struct ural_softc *, uint16_t, void *, - int); + int) __unused; static void ural_bbp_write(struct ural_softc *, uint8_t, uint8_t); static uint8_t ural_bbp_read(struct ural_softc *, uint8_t); static void ural_rf_write(struct ural_softc *, uint8_t, uint32_t); @@ -2205,7 +2205,6 @@ struct ural_softc *sc = priv; struct ieee80211com *ic = &sc->sc_ic; struct ifnet *ifp = ic->ic_ifp; - struct ieee80211_key *wk; struct ural_rx_data *data; uint16_t tmp; usbd_status error; @@ -2255,15 +2254,6 @@ ural_set_macaddr(sc, ic->ic_myaddr); /* - * Copy WEP keys into adapter's memory (SEC_CSR0 to SEC_CSR31). - */ - for (i = 0; i < IEEE80211_WEP_NKID; i++) { - wk = &ic->ic_crypto.cs_nw_keys[i]; - ural_write_multi(sc, wk->wk_keyix * IEEE80211_KEYBUF_SIZE + - RAL_SEC_CSR0, wk->wk_key, IEEE80211_KEYBUF_SIZE); - } - - /* * Allocate xfer for AMRR statistics requests. */ sc->amrr_xfer = usbd_alloc_xfer(sc->sc_udev); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 12:53:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4631516A407; Mon, 23 Apr 2007 12:53:39 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CCB9216A403 for ; Mon, 23 Apr 2007 12:53:38 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BDE3013C45A for ; Mon, 23 Apr 2007 12:53:38 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NCrcqJ038943 for ; Mon, 23 Apr 2007 12:53:38 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NCrc8P038938 for perforce@freebsd.org; Mon, 23 Apr 2007 12:53:38 GMT (envelope-from sephe@FreeBSD.org) Date: Mon, 23 Apr 2007 12:53:38 GMT Message-Id: <200704231253.l3NCrc8P038938@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 118656 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 12:53:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=118656 Change 118656 by sephe@sephe_zealot:sam_wifi on 2007/04/23 12:52:39 Const-fy rate set argument of ieee80211_iserp_rateset(). Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#54 edit .. //depot/projects/wifi/sys/net80211/ieee80211_proto.h#34 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#54 (text+ko) ==== @@ -487,7 +487,8 @@ * NB: the rate set is assumed to be sorted. */ int -ieee80211_iserp_rateset(struct ieee80211com *ic, struct ieee80211_rateset *rs) +ieee80211_iserp_rateset(struct ieee80211com *ic, + const struct ieee80211_rateset *rs) { #define N(a) (sizeof(a) / sizeof(a[0])) static const int rates[] = { 2, 4, 11, 22, 12, 24, 48 }; ==== //depot/projects/wifi/sys/net80211/ieee80211_proto.h#34 (text+ko) ==== @@ -92,7 +92,7 @@ void ieee80211_reset_erp(struct ieee80211com *); void ieee80211_set_shortslottime(struct ieee80211com *, int onoff); int ieee80211_iserp_rateset(struct ieee80211com *, - struct ieee80211_rateset *); + const struct ieee80211_rateset *); void ieee80211_set11gbasicrates(struct ieee80211_rateset *, enum ieee80211_phymode); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 14:10:44 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A810416A40A; Mon, 23 Apr 2007 14:10:44 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4C94816A400 for ; Mon, 23 Apr 2007 14:10:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3C7C413C46A for ; Mon, 23 Apr 2007 14:10:44 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NEAiAI054203 for ; Mon, 23 Apr 2007 14:10:44 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NEAhHS054200 for perforce@freebsd.org; Mon, 23 Apr 2007 14:10:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 23 Apr 2007 14:10:43 GMT Message-Id: <200704231410.l3NEAhHS054200@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 118662 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 14:10:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=118662 Change 118662 by rwatson@rwatson_zoo on 2007/04/23 14:09:43 Reference man pages, not just functions, for audit event data. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_event#21 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/etc/audit_event#21 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_event#20 $ +# $P4: //depot/projects/trustedbsd/openbsm/etc/audit_event#21 $ # 0:AUE_NULL:indir system call:no 1:AUE_EXIT:exit(2):pc @@ -292,7 +292,7 @@ 352:AUE_DARWIN_AUDITCTL:auditctl(2):ad 353:AUE_DARWIN_RFORK:rfork(2):pc 354:AUE_DARWIN_LCHMOD:lchmod(2):fm -355:AUE_DARWIN_SWAPOFF:swapoff():ad +355:AUE_DARWIN_SWAPOFF:swapoff(2):ad 356:AUE_DARWIN_INITPROCESS:init_process():pc 357:AUE_DARWIN_MAPFD:map_fd():fa 358:AUE_DARWIN_TASKFORPID:task_for_pid():pc @@ -346,13 +346,13 @@ 43042:AUE_AUDITCTL:auditctl(2):ad 43043:AUE_RFORK:rfork(2):pc 43044:AUE_LCHMOD:lchmod(2):fm -43045:AUE_SWAPOFF:swapoff():ad +43045:AUE_SWAPOFF:swapoff(2):ad 43046:AUE_INITPROCESS:init_process():pc 43047:AUE_MAPFD:map_fd():fa 43048:AUE_TASKFORPID:task_for_pid():pc 43049:AUE_PIDFORTASK:pid_for_task():pc 43050:AUE_SYSCTL_NONADMIN:sysctl() - non-admin:ot -43051:AUE_COPYFILE:copyfile():fr,fw +43051:AUE_COPYFILE:copyfile(2):fr,fw 43052:AUE_LUTIMES:lutimes(2):fm 43053:AUE_LCHFLAGS:lchflags(2):fm 43054:AUE_SENDFILE:sendfile(2):nt From owner-p4-projects@FreeBSD.ORG Mon Apr 23 14:20:04 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B574716A404; Mon, 23 Apr 2007 14:20:03 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4EDEF16A401 for ; Mon, 23 Apr 2007 14:20:03 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0E2C613C465 for ; Mon, 23 Apr 2007 14:20:03 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NEK2Qk055683 for ; Mon, 23 Apr 2007 14:20:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NEJxVf055668 for perforce@freebsd.org; Mon, 23 Apr 2007 14:19:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 23 Apr 2007 14:19:59 GMT Message-Id: <200704231419.l3NEJxVf055668@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 118664 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 14:20:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=118664 Change 118664 by rwatson@rwatson_zoo on 2007/04/23 14:18:58 Integrate TrustedBSD base branch from FreeBSD CVS HEAD: - SCTP fixes, optimization. - FTP_COMBINE_CWDS - CAM de-spl. - MAC controls for audit system calls. - Redundant MAC checks (kld_unload, system_nfsd, - NFS privileges: PRIV_NFS_DAEMON, PRIV_NFS_LOCKD. - Much if_vr fixing. - General MAC Framework cleanup, including lots of variables, function names, etc. - MAC policies Biba, LOMAC learn about privileges. - Several policies learn about additional system vnode checks, such as acct, swapon, swapoff. - MAC Test policy cleaned up, per-entry point counters, etc. - PMC SMP improvements. Affected files ... .. //depot/projects/trustedbsd/base/ObsoleteFiles.inc#23 integrate .. //depot/projects/trustedbsd/base/UPDATING#80 integrate .. //depot/projects/trustedbsd/base/compat/opensolaris/misc/fsshare.c#2 integrate .. //depot/projects/trustedbsd/base/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/trustedbsd/base/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 integrate .. //depot/projects/trustedbsd/base/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 integrate .. //depot/projects/trustedbsd/base/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 integrate .. //depot/projects/trustedbsd/base/contrib/top/top.c#10 integrate .. //depot/projects/trustedbsd/base/etc/rc.d/zfs#3 integrate .. //depot/projects/trustedbsd/base/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 integrate .. //depot/projects/trustedbsd/base/lib/libc/net/rthdr.c#7 integrate .. //depot/projects/trustedbsd/base/lib/libc/stdio/fputs.3#7 integrate .. //depot/projects/trustedbsd/base/lib/libfetch/fetch.3#15 integrate .. //depot/projects/trustedbsd/base/lib/libfetch/ftp.c#20 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_info.c#7 integrate .. //depot/projects/trustedbsd/base/libexec/ftpd/ftpd.8#19 integrate .. //depot/projects/trustedbsd/base/release/doc/en_US.ISO8859-1/relnotes/article.sgml#7 integrate .. //depot/projects/trustedbsd/base/sbin/fdisk_pc98/fdisk.8#8 integrate .. //depot/projects/trustedbsd/base/sbin/fdisk_pc98/fdisk.c#15 integrate .. //depot/projects/trustedbsd/base/sbin/ping6/ping6.c#13 integrate .. //depot/projects/trustedbsd/base/share/man/man4/Makefile#76 integrate .. //depot/projects/trustedbsd/base/share/man/man4/sbsh.4#4 integrate .. //depot/projects/trustedbsd/base/share/man/man4/worm.4#5 delete .. //depot/projects/trustedbsd/base/share/man/man8/nanobsd.8#3 integrate .. //depot/projects/trustedbsd/base/share/man/man9/pseudofs.9#5 integrate .. //depot/projects/trustedbsd/base/share/misc/committers-ports.dot#4 integrate .. //depot/projects/trustedbsd/base/share/misc/committers-src.dot#4 integrate .. //depot/projects/trustedbsd/base/share/misc/organization.dot#2 integrate .. //depot/projects/trustedbsd/base/share/mk/version_gen.awk#2 integrate .. //depot/projects/trustedbsd/base/sys/amd64/amd64/pmap.c#40 integrate .. //depot/projects/trustedbsd/base/sys/amd64/include/vmparam.h#8 integrate .. //depot/projects/trustedbsd/base/sys/cam/cam_periph.c#23 integrate .. //depot/projects/trustedbsd/base/sys/cam/cam_periph.h#7 integrate .. //depot/projects/trustedbsd/base/sys/cam/cam_xpt.c#33 integrate .. //depot/projects/trustedbsd/base/sys/cam/scsi/scsi_da.c#63 integrate .. //depot/projects/trustedbsd/base/sys/cam/scsi/scsi_pt.c#13 integrate .. //depot/projects/trustedbsd/base/sys/cam/scsi/scsi_sa.c#21 integrate .. //depot/projects/trustedbsd/base/sys/compat/linprocfs/linprocfs.c#42 integrate .. //depot/projects/trustedbsd/base/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/trustedbsd/base/sys/compat/opensolaris/kern/opensolaris_vfs.c#4 integrate .. //depot/projects/trustedbsd/base/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/trustedbsd/base/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/trustedbsd/base/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/trustedbsd/base/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/trustedbsd/base/sys/conf/files#115 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#4 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#4 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/trustedbsd/base/sys/dev/aic7xxx/aic79xx.c#22 integrate .. //depot/projects/trustedbsd/base/sys/dev/aic7xxx/aic79xx.h#20 integrate .. //depot/projects/trustedbsd/base/sys/dev/aic7xxx/aic7xxx.c#20 integrate .. //depot/projects/trustedbsd/base/sys/dev/aic7xxx/aic7xxx.h#14 integrate .. //depot/projects/trustedbsd/base/sys/dev/aic7xxx/aic7xxx_inline.h#9 integrate .. //depot/projects/trustedbsd/base/sys/dev/ath/if_ath.c#35 integrate .. //depot/projects/trustedbsd/base/sys/dev/cxgb/cxgb_sge.c#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/cxgb/sys/uipc_mvec.c#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/led/led.c#10 integrate .. //depot/projects/trustedbsd/base/sys/dev/led/led.h#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/sound/pci/envy24.c#7 integrate .. //depot/projects/trustedbsd/base/sys/dev/sound/pci/envy24ht.c#5 integrate .. //depot/projects/trustedbsd/base/sys/fs/devfs/devfs_devs.c#21 integrate .. //depot/projects/trustedbsd/base/sys/fs/devfs/devfs_vnops.c#49 integrate .. //depot/projects/trustedbsd/base/sys/fs/procfs/procfs_map.c#12 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/pmap.c#75 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/sys_machdep.c#31 integrate .. //depot/projects/trustedbsd/base/sys/i386/include/vmparam.h#9 integrate .. //depot/projects/trustedbsd/base/sys/ia64/include/vmparam.h#13 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_linker.c#36 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_malloc.c#36 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_time.c#34 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_uuid.c#13 integrate .. //depot/projects/trustedbsd/base/sys/kern/sched_ule.c#35 integrate .. //depot/projects/trustedbsd/base/sys/kern/uipc_syscalls.c#64 integrate .. //depot/projects/trustedbsd/base/sys/netgraph/ng_ppp.c#17 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp.h#3 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_indata.c#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_indata.h#3 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_input.c#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_output.c#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_pcb.c#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_pcb.h#5 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_structs.h#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_uio.h#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctp_usrreq.c#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctputil.c#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/sctputil.h#8 integrate .. //depot/projects/trustedbsd/base/sys/netinet/tcp.h#16 integrate .. //depot/projects/trustedbsd/base/sys/netinet/tcp_input.c#74 integrate .. //depot/projects/trustedbsd/base/sys/netinet/tcp_output.c#39 integrate .. //depot/projects/trustedbsd/base/sys/netinet/tcp_syncache.c#48 integrate .. //depot/projects/trustedbsd/base/sys/netinet/tcp_var.h#38 integrate .. //depot/projects/trustedbsd/base/sys/netinet6/in6_pcb.c#32 integrate .. //depot/projects/trustedbsd/base/sys/netinet6/route6.c#8 integrate .. //depot/projects/trustedbsd/base/sys/nfsclient/nfs_lock.c#22 integrate .. //depot/projects/trustedbsd/base/sys/nfsserver/nfs_syscalls.c#28 integrate .. //depot/projects/trustedbsd/base/sys/pci/if_vr.c#39 integrate .. //depot/projects/trustedbsd/base/sys/pci/if_vrreg.h#16 integrate .. //depot/projects/trustedbsd/base/sys/pci/intpm.c#15 integrate .. //depot/projects/trustedbsd/base/sys/powerpc/powerpc/nexus.c#11 integrate .. //depot/projects/trustedbsd/base/sys/security/audit/audit_syscalls.c#11 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/trustedbsd/base/sys/security/mac/mac_framework.h#6 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_inet.c#7 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_net.c#15 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_pipe.c#10 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_process.c#13 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_socket.c#8 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_system.c#10 integrate .. //depot/projects/trustedbsd/base/sys/security/mac/mac_vfs.c#16 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_biba/mac_biba.c#56 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_bsdextended/mac_bsdextended.c#27 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_ifoff/mac_ifoff.c#13 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_lomac/mac_lomac.c#32 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_mls/mac_mls.c#48 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_partition/mac_partition.c#15 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_portacl/mac_portacl.c#12 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_seeotheruids/mac_seeotheruids.c#14 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_stub/mac_stub.c#19 integrate .. //depot/projects/trustedbsd/base/sys/security/mac_test/mac_test.c#43 integrate .. //depot/projects/trustedbsd/base/sys/sparc64/include/vmparam.h#8 integrate .. //depot/projects/trustedbsd/base/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/base/sys/sys/mount.h#47 integrate .. //depot/projects/trustedbsd/base/sys/sys/priv.h#6 integrate .. //depot/projects/trustedbsd/base/tools/regression/netinet6/inet6_rth/Makefile#1 branch .. //depot/projects/trustedbsd/base/tools/regression/netinet6/inet6_rth/inet6_rth-segments.c#1 branch .. //depot/projects/trustedbsd/base/tools/regression/netinet6/inet6_rth/test_subr.c#1 branch .. //depot/projects/trustedbsd/base/tools/regression/netinet6/inet6_rth/test_subr.h#1 branch .. //depot/projects/trustedbsd/base/tools/regression/sockets/sendfile/sendfile.c#3 integrate .. //depot/projects/trustedbsd/base/tools/regression/usr.bin/sed/regress.sh#7 integrate .. //depot/projects/trustedbsd/base/tools/sched/schedgraph.py#7 integrate .. //depot/projects/trustedbsd/base/tools/tools/nanobsd/nanobsd.sh#11 integrate .. //depot/projects/trustedbsd/base/usr.bin/make/GNode.h#4 integrate .. //depot/projects/trustedbsd/base/usr.bin/make/main.c#33 integrate .. //depot/projects/trustedbsd/base/usr.bin/make/make.c#12 integrate .. //depot/projects/trustedbsd/base/usr.bin/make/targ.c#10 integrate .. //depot/projects/trustedbsd/base/usr.bin/sed/extern.h#7 integrate .. //depot/projects/trustedbsd/base/usr.bin/sed/main.c#14 integrate .. //depot/projects/trustedbsd/base/usr.bin/sed/process.c#17 integrate .. //depot/projects/trustedbsd/base/usr.bin/sed/sed.1#13 integrate .. //depot/projects/trustedbsd/base/usr.sbin/daemon/daemon.c#6 integrate .. //depot/projects/trustedbsd/base/usr.sbin/pmcstat/pmcstat.8#7 integrate .. //depot/projects/trustedbsd/base/usr.sbin/pmcstat/pmcstat.c#10 integrate .. //depot/projects/trustedbsd/base/usr.sbin/pmcstat/pmcstat.h#3 integrate Differences ... ==== //depot/projects/trustedbsd/base/ObsoleteFiles.inc#23 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.79 2007/04/17 01:02:55 thompsa Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070421: worm.4 removed +OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) OLD_FILES+=usr/include/net/if_trunk.h # 20070409: uuidgen moved to /bin/ ==== //depot/projects/trustedbsd/base/UPDATING#80 (text+ko) ==== @@ -21,17 +21,6 @@ developers choose to disable these features on build machines to maximize performance. -20070418: - A new acct(5) format is imminent. If you want to maintain access - to your accounting files, use the new lastcomm(1) -X functionality to - export them into text format, and keep around a copy of the lastcomm - binary. An updated lastcomm(1) program will allow you to import - the text files into the new acct(5) format. The change will also - invalidate the condensed summary files /var/account/savacct and - /var/account/usracct. If your process accounting system relies - on them, you will need to save their contents in a readable format - before the switch. - 20070417: The new trunk(4) driver has been renamed to lagg(4) as it better reflects its purpose. ifconfig will need to be recompiled. @@ -778,4 +767,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.487 2007/04/18 17:34:59 dds Exp $ +$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ ==== //depot/projects/trustedbsd/base/compat/opensolaris/misc/fsshare.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.1 2007/04/06 01:08:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.2 2007/04/21 13:17:23 pjd Exp $"); #include #include @@ -99,21 +99,30 @@ /* * Function translate options to a format acceptable by exports(5), eg. * - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org 69.147.83.54 * * Accepted input formats: * - * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0 - * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 - * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0 - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org + * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org + * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org + * + * Recognized keywords: + * + * ro, maproot, mapall, mask, network, alldirs, public, webnfs, index, quiet + * */ +static const char *known_opts[] = { "ro", "maproot", "mapall", "mask", + "network", "alldirs", "public", "webnfs", "index", "quiet", NULL }; static char * translate_opts(const char *shareopts) { static char newopts[OPTSSIZE]; - char oldopts[OPTSSIZE], opt[64]; + char oldopts[OPTSSIZE]; char *o, *s = NULL; + unsigned int i; + size_t len; strlcpy(oldopts, shareopts, sizeof(oldopts)); newopts[0] = '\0'; @@ -121,8 +130,16 @@ while ((o = strsep(&s, "-, ")) != NULL) { if (o[0] == '\0') continue; - snprintf(opt, sizeof(opt), "-%s ", o); - strlcat(newopts, opt, sizeof(newopts)); + for (i = 0; known_opts[i] != NULL; i++) { + len = strlen(known_opts[i]); + if (strncmp(known_opts[i], o, len) == 0 && + (o[len] == '\0' || o[len] == '=')) { + strlcat(newopts, "-", sizeof(newopts)); + break; + } + } + strlcat(newopts, o, sizeof(newopts)); + strlcat(newopts, " ", sizeof(newopts)); } return (newopts); } ==== //depot/projects/trustedbsd/base/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -932,11 +932,11 @@ if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (K=%s)", - zio_checksum_table[doi.doi_checksum].ci_name); + zio_checksum_table[doi.doi_checksum].ci_name); if (doi.doi_compress != ZIO_COMPRESS_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (Z=%s)", - zio_compress_table[doi.doi_compress].ci_name); + zio_compress_table[doi.doi_compress].ci_name); (void) printf("%10lld %3u %5s %5s %5s %5s %s%s\n", (u_longlong_t)object, doi.doi_indirection, iblk, dblk, lsize, @@ -1441,7 +1441,7 @@ (u_longlong_t)zb->zb_objset, (u_longlong_t)zb->zb_object, (u_longlong_t)blkid2offset(bc->bc_dnode, - zb->zb_level, zb->zb_blkid), + zb->zb_level, zb->zb_blkid), blkbuf); } @@ -1951,8 +1951,8 @@ spa_close(spa, (void *)zdb_read_block); error = spa_open(spa_name, spap, (void *)zdb_read_block); if (error) - fatal("Failed to open pool '%s': errno = %d\n", - spa_name, error); + fatal("Failed to open pool '%s': %s", + spa_name, strerror(error)); spa = *spap; } @@ -2156,7 +2156,7 @@ } if (error) - fatal("can't open %s: error %d", argv[0], error); + fatal("can't open %s: %s", argv[0], strerror(error)); argv++; if (--argc > 0) { ==== //depot/projects/trustedbsd/base/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 (text+ko) ==== @@ -339,22 +339,15 @@ changelist_free(prop_changelist_t *clp) { prop_changenode_t *cn; - uu_list_walk_t *walk; + void *cookie; if (clp->cl_list) { - verify((walk = uu_list_walk_start(clp->cl_list, - UU_WALK_ROBUST)) != NULL); - - while ((cn = uu_list_walk_next(walk)) != NULL) { - - uu_list_remove(clp->cl_list, cn); - + cookie = NULL; + while ((cn = uu_list_teardown(clp->cl_list, &cookie)) != NULL) { zfs_close(cn->cn_handle); free(cn); } - uu_list_walk_end(walk); - uu_list_destroy(clp->cl_list); } if (clp->cl_pool) @@ -418,7 +411,7 @@ } else { ASSERT(!clp->cl_alldependents); verify(uu_list_insert_before(clp->cl_list, - uu_list_first(clp->cl_list), cn) == 0); + uu_list_first(clp->cl_list), cn) == 0); } if (!clp->cl_alldependents) ==== //depot/projects/trustedbsd/base/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 (text+ko) ==== @@ -74,22 +74,16 @@ namespace_clear(libzfs_handle_t *hdl) { if (hdl->libzfs_ns_avl) { - uu_avl_walk_t *walk; config_node_t *cn; + void *cookie = NULL; - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) - return; - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, + &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - uu_avl_destroy(hdl->libzfs_ns_avl); hdl->libzfs_ns_avl = NULL; } @@ -110,7 +104,7 @@ config_node_t *cn; nvpair_t *elem; zfs_cmd_t zc = { 0 }; - uu_avl_walk_t *walk; + void *cookie; if (hdl->libzfs_ns_gen == 0) { /* @@ -172,21 +166,13 @@ /* * Clear out any existing configuration information. */ - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) { - nvlist_free(config); - return (no_memory(hdl)); - } - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + cookie = NULL; + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - elem = NULL; while ((elem = nvlist_next_nvpair(config, elem)) != NULL) { nvlist_t *child; @@ -222,7 +208,7 @@ } /* - * Retrive the configuration for the given pool. The configuration is a nvlist + * Retrieve the configuration for the given pool. The configuration is a nvlist * describing the vdevs, as well as the statistics associated with each one. */ nvlist_t * ==== //depot/projects/trustedbsd/base/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 (text+ko) ==== @@ -220,7 +220,7 @@ &state) == 0 && state == POOL_STATE_SPARE && nvlist_lookup_uint64(config, ZPOOL_CONFIG_GUID, &vdev_guid) == 0) { if ((ne = zfs_alloc(hdl, sizeof (name_entry_t))) == NULL) - return (-1); + return (-1); if ((ne->ne_name = zfs_strdup(hdl, path)) == NULL) { free(ne); @@ -748,7 +748,6 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv) { int i; - DIR *dirp; char path[MAXPATHLEN]; nvlist_t *ret = NULL, *config; int fd; @@ -824,7 +823,6 @@ free(ne); } - return (ret); } ==== //depot/projects/trustedbsd/base/contrib/top/top.c#10 (text+ko) ==== @@ -13,7 +13,7 @@ * Copyright (c) 1994, 1995, William LeFebvre, Argonne National Laboratory * Copyright (c) 1996, William LeFebvre, Group sys Consulting * - * $FreeBSD: src/contrib/top/top.c,v 1.21 2007/04/17 03:12:39 rafan Exp $ + * $FreeBSD: src/contrib/top/top.c,v 1.22 2007/04/19 14:24:54 rafan Exp $ */ /* @@ -410,7 +410,7 @@ default: fprintf(stderr, "Top version %s\n" -"Usage: %s [-bCHIinqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" +"Usage: %s [-abCHIijnqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" " [-U username] [number]\n", version_string(), myname); exit(1); ==== //depot/projects/trustedbsd/base/etc/rc.d/zfs#3 (text+ko) ==== @@ -1,11 +1,10 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/zfs,v 1.4 2007/04/15 18:07:14 pjd Exp $ +# $FreeBSD: src/etc/rc.d/zfs,v 1.5 2007/04/22 20:55:08 pjd Exp $ # # PROVIDE: zfs # REQUIRE: mountcritlocal -# KEYWORD: nojail . /etc/rc.subr @@ -15,7 +14,14 @@ stop_cmd="zfs_stop" required_modules="zfs" -zfs_start() +zfs_start_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs mount -a + fi +} + +zfs_start_main() { zfs volinit zfs mount -a @@ -34,7 +40,23 @@ done } -zfs_stop() +zfs_start() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_start_jail + else + zfs_start_main + fi +} + +zfs_stop_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs unmount -a + fi +} + +zfs_stop_main() { # Disable swap on ZVOLs with property org.freebsd:swap=on. zfs list -H -o org.freebsd:swap,name -t volume | \ @@ -50,5 +72,14 @@ zfs volfini } +zfs_stop() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_stop_jail + else + zfs_stop_main + fi +} + load_rc_config $name run_rc_command "$1" ==== //depot/projects/trustedbsd/base/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.1 2007/03/03 07:37:36 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.2 2007/04/20 15:32:13 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include @@ -72,6 +72,7 @@ id_t id; }; +static const size_t cache_size = 127; static unsigned int hash(const char *); static gid_t lookup_gid(void *, const char *uname, gid_t); static uid_t lookup_uid(void *, const char *uname, uid_t); @@ -99,10 +100,10 @@ int archive_write_disk_set_standard_lookup(struct archive *a) { - struct bucket *ucache = malloc(sizeof(struct bucket[127])); - struct bucket *gcache = malloc(sizeof(struct bucket[127])); - memset(ucache, 0, sizeof(struct bucket[127])); - memset(gcache, 0, sizeof(struct bucket[127])); + struct bucket *ucache = malloc(sizeof(struct bucket[cache_size])); + struct bucket *gcache = malloc(sizeof(struct bucket[cache_size])); + memset(ucache, 0, sizeof(struct bucket[cache_size])); + memset(gcache, 0, sizeof(struct bucket[cache_size])); archive_write_disk_set_group_lookup(a, gcache, lookup_gid, cleanup); archive_write_disk_set_user_lookup(a, ucache, lookup_uid, cleanup); return (ARCHIVE_OK); @@ -113,11 +114,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *gcache = (struct bucket *)private_data; - cache_size = 127; - /* If no gname, just use the gid provided. */ if (gname == NULL || *gname == '\0') return (gid); @@ -153,11 +151,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *ucache = (struct bucket *)private_data; - cache_size = 127; - /* If no uname, just use the uid provided. */ if (uname == NULL || *uname == '\0') return (uid); @@ -191,7 +186,12 @@ static void cleanup(void *private) { - free(private); + size_t i; + struct bucket *cache = (struct bucket *)private; + + for (i = 0; i < cache_size; i++) + free(cache[i].name); + free(cache); } ==== //depot/projects/trustedbsd/base/lib/libc/net/rthdr.c#7 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.8 2005/07/19 18:13:58 ume Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.9 2007/04/19 15:48:16 mtm Exp $"); #include #include @@ -292,7 +292,9 @@ { switch (type) { case IPV6_RTHDR_TYPE_0: - return (((segments * 2) + 1) << 3); + if ((segments >= 0) && (segments <= 127)) + return (((segments * 2) + 1) << 3); + /* FALLTHROUGH */ default: return (0); /* type not suppported */ } @@ -309,6 +311,9 @@ /* length validation */ if (bp_len < inet6_rth_space(IPV6_RTHDR_TYPE_0, segments)) return (NULL); + /* segment validation */ + if ((segments < 0) || (segments > 127)) + return (NULL); memset(bp, 0, bp_len); rth0 = (struct ip6_rthdr0 *)rth; @@ -334,6 +339,9 @@ switch (rth->ip6r_type) { case IPV6_RTHDR_TYPE_0: rth0 = (struct ip6_rthdr0 *)rth; + /* Don't exceed the number of stated segments */ + if (rth0->ip6r0_segleft == (rth0->ip6r0_len / 2)) + return (-1); nextaddr = (struct in6_addr *)(rth0 + 1) + rth0->ip6r0_segleft; *nextaddr = *addr; rth0->ip6r0_segleft++; ==== //depot/projects/trustedbsd/base/lib/libc/stdio/fputs.3#7 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)fputs.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.13 2007/04/19 09:38:31 phk Exp $ +.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.14 2007/04/19 14:01:04 phk Exp $ .\" .Dd June 4, 1993 .Dt FPUTS 3 @@ -70,7 +70,7 @@ .Fn fputs and .Fn puts -returns a nonnegative integer on success and +return a nonnegative integer on success and .Dv EOF on error. .Sh ERRORS ==== //depot/projects/trustedbsd/base/lib/libfetch/fetch.3#15 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.61 2005/11/30 04:08:45 tmclaugh Exp $ +.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.62 2007/04/22 22:33:29 njl Exp $ .\" -.Dd July 1, 1998 +.Dd April 22, 2007 .Dt FETCH 3 .Os .Sh NAME @@ -334,6 +334,16 @@ .Nm fetch library will attempt an anonymous login, with user name "anonymous" and password "anonymous@". +.Pp +By default, +.Nm fetch +changes directories one at a time for the best compatibility with a wide +variety of servers. +If it is compiled with the +.Ql FTP_COMBINE_CWDS +flag, it will first try a single change directory command for the entire +path and fall back to the default scheme if an error occurred. +This can save latency when used with a slow network link. .Sh HTTP SCHEME The .Fn fetchXGetHTTP , ==== //depot/projects/trustedbsd/base/lib/libfetch/ftp.c#20 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.95 2006/06/13 10:21:03 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.96 2007/04/22 22:33:29 njl Exp $"); /* * Portions of this code were taken from or based on ftpio.c: @@ -267,6 +267,7 @@ char pwd[PATH_MAX]; int e, i, len; + /* If no slashes in name, no need to change dirs. */ if ((end = strrchr(file, '/')) == NULL) return (0); if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY || @@ -276,7 +277,8 @@ } for (;;) { len = strlen(pwd); - /* look for a common prefix */ + + /* Look for a common prefix between PWD and dir to fetch. */ for (i = 0; i <= len && i <= end - file; ++i) if (pwd[i] != file[i]) break; @@ -284,6 +286,7 @@ DEBUG(fprintf(stderr, "have: [%.*s|%s]\n", i, pwd, pwd + i)); DEBUG(fprintf(stderr, "want: [%.*s|%s]\n", i, file, file + i)); #endif + /* Keep going up a dir until we have a matching prefix. */ if (pwd[i] == '\0' && (file[i - 1] == '/' || file[i] == '/')) break; if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK || @@ -293,6 +296,23 @@ return (-1); } } + +#ifdef FTP_COMBINE_CWDS + /* Skip leading slashes, even "////". */ + for (beg = file + i; beg < end && *beg == '/'; ++beg, ++i) + /* nothing */ ; + + /* If there is no trailing dir, we're already there. */ + if (beg >= end) + return (0); + + /* Change to the directory all in one chunk (e.g., foo/bar/baz). */ + e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg); + if (e == FTP_FILE_ACTION_OK) + return (0); +#endif /* FTP_COMBINE_CWDS */ + + /* That didn't work so go back to legacy behavior (multiple CWDs). */ for (beg = file + i; beg < end; beg = file + i + 1) { while (*beg == '/') ++beg, ++i; @@ -966,6 +986,8 @@ if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN) goto fouch; + /* TODO: Request extended features supported, if any (RFC 3659). */ + /* done */ return (conn); ==== //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_info.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.29 2007/01/12 07:26:18 imp Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.30 2007/04/23 03:36:14 deischen Exp $ */ #include #include @@ -214,12 +214,31 @@ void _pthread_set_name_np(pthread_t thread, char *name) { - /* Check if the caller has specified a valid thread: */ - if (thread != NULL && thread->magic == THR_MAGIC) { - if (thread->name != NULL) { + struct pthread *curthread = _get_curthread(); + char *new_name; + char *prev_name; + int ret; + + new_name = strdup(name); + /* Add a reference to the target thread. */ + if (_thr_ref_add(curthread, thread, 0) != 0) { + free(new_name); + ret = ESRCH; + } + else { + THR_THREAD_LOCK(curthread, thread); + prev_name = thread->name; + thread->name = new_name; + THR_THREAD_UNLOCK(curthread, thread); + _thr_ref_delete(curthread, thread); + if (prev_name != NULL) { /* Free space for previous name. */ - free(thread->name); + free(prev_name); } - thread->name = strdup(name); + ret = 0; } +#if 0 + /* XXX - Should return error code. */ + return (ret); +#endif } ==== //depot/projects/trustedbsd/base/libexec/ftpd/ftpd.8#19 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 -.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.72 2007/04/18 22:43:39 yar Exp $ +.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.74 2007/04/20 09:08:20 trhodes Exp $ .\" -.Dd January 21, 2006 +.Dd April 20, 2007 .Dt FTPD 8 .Os .Sh NAME @@ -79,20 +79,19 @@ .Dv AF_INET6 socket. .It Fl 8 -The server is running in transparent UTF-8 mode. -That is, it just encourages RFC\ 2640 compliant clients to send -paths encoded in UTF-8 in their commands. -In particular, the names of files uploaded by such clients will -have UTF-8 encoding. -The clients will also assume that server replies and existing file -names have UTF-8 encoding, too. -The names of files preloaded to the server should meet this expectation -for the clients to present the correct file names to their users. -Own messages of +Enable transparent UTF-8 mode. +RFC\ 2640 compliant clients will be told that the character encoding +used by the server is UTF-8, which is the only effect of the option. +.Pp +This option does not enable any encoding conversion for server file names; +it implies instead that the names of files on the server are encoded +in UTF-8. +As for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant +client to convert their names from the client's local encoding to UTF-8. +FTP command names and own .Nm -are always encoded in ASCII, which in fact is a subset of UTF-8. -.Pp -Note that this option does not make the server do any encoding conversion. +messages are always encoded in ASCII, which is a subset of UTF-8. +Hence no need for server-side conversion at all. .It Fl A Allow only anonymous ftp access. .It Fl a @@ -356,16 +355,15 @@ and not have a null password. In this case a password must be provided by the client before any file operations may be performed. -If the user has an S/Key key, the response from a successful USER -command will include an S/Key challenge. +If the user has an OPIE key, the response from a successful USER +command will include an OPIE challenge. The client may choose to respond with a PASS command giving either -a standard password or an S/Key one-time password. +a standard password or an OPIE one-time password. The server will automatically determine which type of password it has been given and attempt to authenticate accordingly. See -.Xr key 1 -for more information on S/Key authentication. -S/Key is a Trademark of Bellcore. +.Xr opie 4 +for more information on OPIE authentication. .It The login name must not appear in the file .Pa /etc/ftpusers . @@ -559,9 +557,9 @@ .El .Sh SEE ALSO .Xr ftp 1 , -.Xr key 1 , .Xr umask 2 , .Xr getusershell 3 , +.Xr opie 4 , .Xr ftpchroot 5 , .Xr login.conf 5 , .Xr inetd 8 , ==== //depot/projects/trustedbsd/base/release/doc/en_US.ISO8859-1/relnotes/article.sgml#7 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1018 2007/04/17 07:01:45 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1021 2007/04/21 03:45:18 hrs Exp $ 2000 @@ -438,14 +438,19 @@ statistics via a binary structure stream. The sysctl variable hw.pci.do_powerstate - has been changed from a boolean to a range. + has been split into two sysctl variables + hw.pci.do_powerstate_nodriver + and hw.pci.do_powerstate_resume. + Also, these variables have been changed from a boolean to a range. 0 means no power management, 1 means conservative power management which any device class that has caused problems is added to the watch list, 2 means aggressive power management where any device class that is not fundamental to the system is added to the list, and 3 means power them all down unconditionally. - The default is 1. + The default values are 0 for + hw.pci.do_powerstate_nodriver and + 1 for hw.pci.do_powerstate_resume. [&arch.ia64;] The GENERIC kernel now enables SMP support by default. @@ -499,6 +504,9 @@ [&arch.pc98;] A bootable CDROM loader has been implemented for the pc98 platform. &merged; + [&arch.pc98;] The IPLware support + in boot0.5 has been enhanced to support version 3.33. + [&arch.i386;] A bug in the i386 boot loader, which could cause file system corruption if a nextboot.conf file was used and landed @@ -978,6 +986,10 @@ IPv6 support, it should be used instead. Please note that some rules might need to be adjusted. + The &man.lagg.4; driver, ported from OpenBSD and NetBSD, + has been added to support a variety of protocols and algorithms + for link aggregation, failover, and fault tolerance. + The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE. A new &man.ng.deflate.4; Netgraph node type has been @@ -1103,10 +1115,6 @@ devices will marked up upon creation. &merged; - The &man.lagg.4; driver, ported from OpenBSD and NetBSD, - has been added to support a variety of protocols and algorithms - for link aggregation, failover, and fault tolerance. - Support for &man.kqueue.2; operations has been added to the &man.tun.4; driver. &merged; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 14:44:41 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C4AB16A404; Mon, 23 Apr 2007 14:44:41 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8CF9716A400 for ; Mon, 23 Apr 2007 14:44:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7AD8C13C455 for ; Mon, 23 Apr 2007 14:44:40 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NEieLZ061757 for ; Mon, 23 Apr 2007 14:44:40 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NEibbh061754 for perforce@freebsd.org; Mon, 23 Apr 2007 14:44:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 23 Apr 2007 14:44:37 GMT Message-Id: <200704231444.l3NEibbh061754@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 118666 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 14:44:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=118666 Change 118666 by rwatson@rwatson_zoo on 2007/04/23 14:44:18 Integrate TrustedBSD audit3 branch from TrustedBSD base branch. Affected files ... .. //depot/projects/trustedbsd/audit3/ObsoleteFiles.inc#15 integrate .. //depot/projects/trustedbsd/audit3/UPDATING#21 integrate .. //depot/projects/trustedbsd/audit3/compat/opensolaris/misc/fsshare.c#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 integrate .. //depot/projects/trustedbsd/audit3/contrib/top/top.c#6 integrate .. //depot/projects/trustedbsd/audit3/etc/rc.d/zfs#3 integrate .. //depot/projects/trustedbsd/audit3/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 integrate .. //depot/projects/trustedbsd/audit3/lib/libc/net/rthdr.c#3 integrate .. //depot/projects/trustedbsd/audit3/lib/libc/stdio/fputs.3#4 integrate .. //depot/projects/trustedbsd/audit3/lib/libfetch/fetch.3#5 integrate .. //depot/projects/trustedbsd/audit3/lib/libfetch/ftp.c#6 integrate .. //depot/projects/trustedbsd/audit3/lib/libpthread/thread/thr_info.c#4 integrate .. //depot/projects/trustedbsd/audit3/libexec/ftpd/ftpd.8#7 integrate .. //depot/projects/trustedbsd/audit3/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 integrate .. //depot/projects/trustedbsd/audit3/sbin/fdisk_pc98/fdisk.8#5 integrate .. //depot/projects/trustedbsd/audit3/sbin/fdisk_pc98/fdisk.c#6 integrate .. //depot/projects/trustedbsd/audit3/sbin/ping6/ping6.c#4 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/Makefile#19 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/sbsh.4#3 integrate .. //depot/projects/trustedbsd/audit3/share/man/man4/worm.4#3 delete .. //depot/projects/trustedbsd/audit3/share/man/man8/nanobsd.8#3 integrate .. //depot/projects/trustedbsd/audit3/share/man/man9/pseudofs.9#3 integrate .. //depot/projects/trustedbsd/audit3/share/misc/committers-ports.dot#4 integrate .. //depot/projects/trustedbsd/audit3/share/misc/committers-src.dot#4 integrate .. //depot/projects/trustedbsd/audit3/share/misc/organization.dot#2 integrate .. //depot/projects/trustedbsd/audit3/share/mk/version_gen.awk#2 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/amd64/pmap.c#17 integrate .. //depot/projects/trustedbsd/audit3/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/trustedbsd/audit3/sys/cam/cam_periph.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/cam/cam_periph.h#5 integrate .. //depot/projects/trustedbsd/audit3/sys/cam/cam_xpt.c#14 integrate .. //depot/projects/trustedbsd/audit3/sys/cam/scsi/scsi_da.c#14 integrate .. //depot/projects/trustedbsd/audit3/sys/cam/scsi/scsi_pt.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/cam/scsi/scsi_sa.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/linprocfs/linprocfs.c#14 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/kern/opensolaris_vfs.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/trustedbsd/audit3/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/trustedbsd/audit3/sys/conf/files#31 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic79xx.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic79xx.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic7xxx.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic7xxx.h#5 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/aic7xxx/aic7xxx_inline.h#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/ath/if_ath.c#17 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/cxgb/cxgb_sge.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/cxgb/sys/uipc_mvec.c#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/led/led.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/led/led.h#3 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/sound/pci/envy24.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/dev/sound/pci/envy24ht.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/fs/devfs/devfs_devs.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/fs/devfs/devfs_vnops.c#12 integrate .. //depot/projects/trustedbsd/audit3/sys/fs/procfs/procfs_map.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/i386/pmap.c#18 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/i386/sys_machdep.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/i386/include/vmparam.h#4 integrate .. //depot/projects/trustedbsd/audit3/sys/ia64/include/vmparam.h#5 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/kern_linker.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/kern_malloc.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/kern_time.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/kern_uuid.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/sched_ule.c#13 integrate .. //depot/projects/trustedbsd/audit3/sys/kern/uipc_syscalls.c#16 integrate .. //depot/projects/trustedbsd/audit3/sys/netgraph/ng_ppp.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp.h#3 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_indata.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_indata.h#3 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_input.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_output.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_pcb.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_pcb.h#4 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_structs.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_uio.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctp_usrreq.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctputil.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/sctputil.h#6 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/tcp.h#7 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_input.c#18 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_output.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_syncache.c#16 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet/tcp_var.h#13 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet6/in6_pcb.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/netinet6/route6.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/nfsclient/nfs_lock.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/nfsserver/nfs_syscalls.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/pci/if_vr.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/pci/if_vrreg.h#9 integrate .. //depot/projects/trustedbsd/audit3/sys/pci/intpm.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/powerpc/powerpc/nexus.c#5 integrate .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#36 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_audit.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_framework.h#8 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_inet.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_net.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_pipe.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_policy.h#8 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_process.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_socket.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_system.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac/mac_vfs.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_biba/mac_biba.c#12 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_bsdextended/mac_bsdextended.c#12 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_ifoff/mac_ifoff.c#4 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_lomac/mac_lomac.c#11 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_mls/mac_mls.c#10 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_partition/mac_partition.c#6 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_portacl/mac_portacl.c#8 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_seeotheruids/mac_seeotheruids.c#7 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_stub/mac_stub.c#9 integrate .. //depot/projects/trustedbsd/audit3/sys/security/mac_test/mac_test.c#9 integrate .. //depot/projects/trustedbsd/audit3/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/audit3/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/audit3/sys/sys/mount.h#15 integrate .. //depot/projects/trustedbsd/audit3/sys/sys/priv.h#5 integrate .. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/Makefile#1 branch .. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/inet6_rth-segments.c#1 branch .. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/test_subr.c#1 branch .. //depot/projects/trustedbsd/audit3/tools/regression/netinet6/inet6_rth/test_subr.h#1 branch .. //depot/projects/trustedbsd/audit3/tools/regression/sockets/sendfile/sendfile.c#3 integrate .. //depot/projects/trustedbsd/audit3/tools/regression/usr.bin/sed/regress.sh#4 integrate .. //depot/projects/trustedbsd/audit3/tools/sched/schedgraph.py#5 integrate .. //depot/projects/trustedbsd/audit3/tools/tools/nanobsd/nanobsd.sh#9 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/make/GNode.h#2 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/make/main.c#9 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/make/make.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/make/targ.c#3 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/sed/extern.h#3 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/sed/main.c#5 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/sed/process.c#6 integrate .. //depot/projects/trustedbsd/audit3/usr.bin/sed/sed.1#5 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/daemon/daemon.c#5 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/pmcstat/pmcstat.8#6 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/pmcstat/pmcstat.c#6 integrate .. //depot/projects/trustedbsd/audit3/usr.sbin/pmcstat/pmcstat.h#3 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/ObsoleteFiles.inc#15 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.79 2007/04/17 01:02:55 thompsa Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070421: worm.4 removed +OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) OLD_FILES+=usr/include/net/if_trunk.h # 20070409: uuidgen moved to /bin/ ==== //depot/projects/trustedbsd/audit3/UPDATING#21 (text+ko) ==== @@ -21,17 +21,6 @@ developers choose to disable these features on build machines to maximize performance. -20070418: - A new acct(5) format is imminent. If you want to maintain access - to your accounting files, use the new lastcomm(1) -X functionality to - export them into text format, and keep around a copy of the lastcomm - binary. An updated lastcomm(1) program will allow you to import - the text files into the new acct(5) format. The change will also - invalidate the condensed summary files /var/account/savacct and - /var/account/usracct. If your process accounting system relies - on them, you will need to save their contents in a readable format - before the switch. - 20070417: The new trunk(4) driver has been renamed to lagg(4) as it better reflects its purpose. ifconfig will need to be recompiled. @@ -778,4 +767,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.487 2007/04/18 17:34:59 dds Exp $ +$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ ==== //depot/projects/trustedbsd/audit3/compat/opensolaris/misc/fsshare.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.1 2007/04/06 01:08:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.2 2007/04/21 13:17:23 pjd Exp $"); #include #include @@ -99,21 +99,30 @@ /* * Function translate options to a format acceptable by exports(5), eg. * - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org 69.147.83.54 * * Accepted input formats: * - * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0 - * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 - * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0 - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org + * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org + * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org + * + * Recognized keywords: + * + * ro, maproot, mapall, mask, network, alldirs, public, webnfs, index, quiet + * */ +static const char *known_opts[] = { "ro", "maproot", "mapall", "mask", + "network", "alldirs", "public", "webnfs", "index", "quiet", NULL }; static char * translate_opts(const char *shareopts) { static char newopts[OPTSSIZE]; - char oldopts[OPTSSIZE], opt[64]; + char oldopts[OPTSSIZE]; char *o, *s = NULL; + unsigned int i; + size_t len; strlcpy(oldopts, shareopts, sizeof(oldopts)); newopts[0] = '\0'; @@ -121,8 +130,16 @@ while ((o = strsep(&s, "-, ")) != NULL) { if (o[0] == '\0') continue; - snprintf(opt, sizeof(opt), "-%s ", o); - strlcat(newopts, opt, sizeof(newopts)); + for (i = 0; known_opts[i] != NULL; i++) { + len = strlen(known_opts[i]); + if (strncmp(known_opts[i], o, len) == 0 && + (o[len] == '\0' || o[len] == '=')) { + strlcat(newopts, "-", sizeof(newopts)); + break; + } + } + strlcat(newopts, o, sizeof(newopts)); + strlcat(newopts, " ", sizeof(newopts)); } return (newopts); } ==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -932,11 +932,11 @@ if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (K=%s)", - zio_checksum_table[doi.doi_checksum].ci_name); + zio_checksum_table[doi.doi_checksum].ci_name); if (doi.doi_compress != ZIO_COMPRESS_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (Z=%s)", - zio_compress_table[doi.doi_compress].ci_name); + zio_compress_table[doi.doi_compress].ci_name); (void) printf("%10lld %3u %5s %5s %5s %5s %s%s\n", (u_longlong_t)object, doi.doi_indirection, iblk, dblk, lsize, @@ -1441,7 +1441,7 @@ (u_longlong_t)zb->zb_objset, (u_longlong_t)zb->zb_object, (u_longlong_t)blkid2offset(bc->bc_dnode, - zb->zb_level, zb->zb_blkid), + zb->zb_level, zb->zb_blkid), blkbuf); } @@ -1951,8 +1951,8 @@ spa_close(spa, (void *)zdb_read_block); error = spa_open(spa_name, spap, (void *)zdb_read_block); if (error) - fatal("Failed to open pool '%s': errno = %d\n", - spa_name, error); + fatal("Failed to open pool '%s': %s", + spa_name, strerror(error)); spa = *spap; } @@ -2156,7 +2156,7 @@ } if (error) - fatal("can't open %s: error %d", argv[0], error); + fatal("can't open %s: %s", argv[0], strerror(error)); argv++; if (--argc > 0) { ==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 (text+ko) ==== @@ -339,22 +339,15 @@ changelist_free(prop_changelist_t *clp) { prop_changenode_t *cn; - uu_list_walk_t *walk; + void *cookie; if (clp->cl_list) { - verify((walk = uu_list_walk_start(clp->cl_list, - UU_WALK_ROBUST)) != NULL); - - while ((cn = uu_list_walk_next(walk)) != NULL) { - - uu_list_remove(clp->cl_list, cn); - + cookie = NULL; + while ((cn = uu_list_teardown(clp->cl_list, &cookie)) != NULL) { zfs_close(cn->cn_handle); free(cn); } - uu_list_walk_end(walk); - uu_list_destroy(clp->cl_list); } if (clp->cl_pool) @@ -418,7 +411,7 @@ } else { ASSERT(!clp->cl_alldependents); verify(uu_list_insert_before(clp->cl_list, - uu_list_first(clp->cl_list), cn) == 0); + uu_list_first(clp->cl_list), cn) == 0); } if (!clp->cl_alldependents) ==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 (text+ko) ==== @@ -74,22 +74,16 @@ namespace_clear(libzfs_handle_t *hdl) { if (hdl->libzfs_ns_avl) { - uu_avl_walk_t *walk; config_node_t *cn; + void *cookie = NULL; - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) - return; - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, + &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - uu_avl_destroy(hdl->libzfs_ns_avl); hdl->libzfs_ns_avl = NULL; } @@ -110,7 +104,7 @@ config_node_t *cn; nvpair_t *elem; zfs_cmd_t zc = { 0 }; - uu_avl_walk_t *walk; + void *cookie; if (hdl->libzfs_ns_gen == 0) { /* @@ -172,21 +166,13 @@ /* * Clear out any existing configuration information. */ - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) { - nvlist_free(config); - return (no_memory(hdl)); - } - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + cookie = NULL; + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - elem = NULL; while ((elem = nvlist_next_nvpair(config, elem)) != NULL) { nvlist_t *child; @@ -222,7 +208,7 @@ } /* - * Retrive the configuration for the given pool. The configuration is a nvlist + * Retrieve the configuration for the given pool. The configuration is a nvlist * describing the vdevs, as well as the statistics associated with each one. */ nvlist_t * ==== //depot/projects/trustedbsd/audit3/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 (text+ko) ==== @@ -220,7 +220,7 @@ &state) == 0 && state == POOL_STATE_SPARE && nvlist_lookup_uint64(config, ZPOOL_CONFIG_GUID, &vdev_guid) == 0) { if ((ne = zfs_alloc(hdl, sizeof (name_entry_t))) == NULL) - return (-1); + return (-1); if ((ne->ne_name = zfs_strdup(hdl, path)) == NULL) { free(ne); @@ -748,7 +748,6 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv) { int i; - DIR *dirp; char path[MAXPATHLEN]; nvlist_t *ret = NULL, *config; int fd; @@ -824,7 +823,6 @@ free(ne); } - return (ret); } ==== //depot/projects/trustedbsd/audit3/contrib/top/top.c#6 (text+ko) ==== @@ -13,7 +13,7 @@ * Copyright (c) 1994, 1995, William LeFebvre, Argonne National Laboratory * Copyright (c) 1996, William LeFebvre, Group sys Consulting * - * $FreeBSD: src/contrib/top/top.c,v 1.21 2007/04/17 03:12:39 rafan Exp $ + * $FreeBSD: src/contrib/top/top.c,v 1.22 2007/04/19 14:24:54 rafan Exp $ */ /* @@ -410,7 +410,7 @@ default: fprintf(stderr, "Top version %s\n" -"Usage: %s [-bCHIinqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" +"Usage: %s [-abCHIijnqStuv] [-d count] [-m io | cpu] [-o field] [-s time]\n" " [-U username] [number]\n", version_string(), myname); exit(1); ==== //depot/projects/trustedbsd/audit3/etc/rc.d/zfs#3 (text+ko) ==== @@ -1,11 +1,10 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/zfs,v 1.4 2007/04/15 18:07:14 pjd Exp $ +# $FreeBSD: src/etc/rc.d/zfs,v 1.5 2007/04/22 20:55:08 pjd Exp $ # # PROVIDE: zfs # REQUIRE: mountcritlocal -# KEYWORD: nojail . /etc/rc.subr @@ -15,7 +14,14 @@ stop_cmd="zfs_stop" required_modules="zfs" -zfs_start() +zfs_start_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs mount -a + fi +} + +zfs_start_main() { zfs volinit zfs mount -a @@ -34,7 +40,23 @@ done } -zfs_stop() +zfs_start() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_start_jail + else + zfs_start_main + fi +} + +zfs_stop_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs unmount -a + fi +} + +zfs_stop_main() { # Disable swap on ZVOLs with property org.freebsd:swap=on. zfs list -H -o org.freebsd:swap,name -t volume | \ @@ -50,5 +72,14 @@ zfs volfini } +zfs_stop() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_stop_jail + else + zfs_stop_main + fi +} + load_rc_config $name run_rc_command "$1" ==== //depot/projects/trustedbsd/audit3/lib/libarchive/archive_write_disk_set_standard_lookup.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.1 2007/03/03 07:37:36 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk_set_standard_lookup.c,v 1.2 2007/04/20 15:32:13 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include @@ -72,6 +72,7 @@ id_t id; }; +static const size_t cache_size = 127; static unsigned int hash(const char *); static gid_t lookup_gid(void *, const char *uname, gid_t); static uid_t lookup_uid(void *, const char *uname, uid_t); @@ -99,10 +100,10 @@ int archive_write_disk_set_standard_lookup(struct archive *a) { - struct bucket *ucache = malloc(sizeof(struct bucket[127])); - struct bucket *gcache = malloc(sizeof(struct bucket[127])); - memset(ucache, 0, sizeof(struct bucket[127])); - memset(gcache, 0, sizeof(struct bucket[127])); + struct bucket *ucache = malloc(sizeof(struct bucket[cache_size])); + struct bucket *gcache = malloc(sizeof(struct bucket[cache_size])); + memset(ucache, 0, sizeof(struct bucket[cache_size])); + memset(gcache, 0, sizeof(struct bucket[cache_size])); archive_write_disk_set_group_lookup(a, gcache, lookup_gid, cleanup); archive_write_disk_set_user_lookup(a, ucache, lookup_uid, cleanup); return (ARCHIVE_OK); @@ -113,11 +114,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *gcache = (struct bucket *)private_data; - cache_size = 127; - /* If no gname, just use the gid provided. */ if (gname == NULL || *gname == '\0') return (gid); @@ -153,11 +151,8 @@ { int h; struct bucket *b; - int cache_size; struct bucket *ucache = (struct bucket *)private_data; - cache_size = 127; - /* If no uname, just use the uid provided. */ if (uname == NULL || *uname == '\0') return (uid); @@ -191,7 +186,12 @@ static void cleanup(void *private) { - free(private); + size_t i; + struct bucket *cache = (struct bucket *)private; + + for (i = 0; i < cache_size; i++) + free(cache[i].name); + free(cache); } ==== //depot/projects/trustedbsd/audit3/lib/libc/net/rthdr.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.8 2005/07/19 18:13:58 ume Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/net/rthdr.c,v 1.9 2007/04/19 15:48:16 mtm Exp $"); #include #include @@ -292,7 +292,9 @@ { switch (type) { case IPV6_RTHDR_TYPE_0: - return (((segments * 2) + 1) << 3); + if ((segments >= 0) && (segments <= 127)) + return (((segments * 2) + 1) << 3); + /* FALLTHROUGH */ default: return (0); /* type not suppported */ } @@ -309,6 +311,9 @@ /* length validation */ if (bp_len < inet6_rth_space(IPV6_RTHDR_TYPE_0, segments)) return (NULL); + /* segment validation */ + if ((segments < 0) || (segments > 127)) + return (NULL); memset(bp, 0, bp_len); rth0 = (struct ip6_rthdr0 *)rth; @@ -334,6 +339,9 @@ switch (rth->ip6r_type) { case IPV6_RTHDR_TYPE_0: rth0 = (struct ip6_rthdr0 *)rth; + /* Don't exceed the number of stated segments */ + if (rth0->ip6r0_segleft == (rth0->ip6r0_len / 2)) + return (-1); nextaddr = (struct in6_addr *)(rth0 + 1) + rth0->ip6r0_segleft; *nextaddr = *addr; rth0->ip6r0_segleft++; ==== //depot/projects/trustedbsd/audit3/lib/libc/stdio/fputs.3#4 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)fputs.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.13 2007/04/19 09:38:31 phk Exp $ +.\" $FreeBSD: src/lib/libc/stdio/fputs.3,v 1.14 2007/04/19 14:01:04 phk Exp $ .\" .Dd June 4, 1993 .Dt FPUTS 3 @@ -70,7 +70,7 @@ .Fn fputs and .Fn puts -returns a nonnegative integer on success and +return a nonnegative integer on success and .Dv EOF on error. .Sh ERRORS ==== //depot/projects/trustedbsd/audit3/lib/libfetch/fetch.3#5 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.61 2005/11/30 04:08:45 tmclaugh Exp $ +.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.62 2007/04/22 22:33:29 njl Exp $ .\" -.Dd July 1, 1998 +.Dd April 22, 2007 .Dt FETCH 3 .Os .Sh NAME @@ -334,6 +334,16 @@ .Nm fetch library will attempt an anonymous login, with user name "anonymous" and password "anonymous@". +.Pp +By default, +.Nm fetch +changes directories one at a time for the best compatibility with a wide +variety of servers. +If it is compiled with the +.Ql FTP_COMBINE_CWDS +flag, it will first try a single change directory command for the entire +path and fall back to the default scheme if an error occurred. +This can save latency when used with a slow network link. .Sh HTTP SCHEME The .Fn fetchXGetHTTP , ==== //depot/projects/trustedbsd/audit3/lib/libfetch/ftp.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.95 2006/06/13 10:21:03 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.96 2007/04/22 22:33:29 njl Exp $"); /* * Portions of this code were taken from or based on ftpio.c: @@ -267,6 +267,7 @@ char pwd[PATH_MAX]; int e, i, len; + /* If no slashes in name, no need to change dirs. */ if ((end = strrchr(file, '/')) == NULL) return (0); if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY || @@ -276,7 +277,8 @@ } for (;;) { len = strlen(pwd); - /* look for a common prefix */ + + /* Look for a common prefix between PWD and dir to fetch. */ for (i = 0; i <= len && i <= end - file; ++i) if (pwd[i] != file[i]) break; @@ -284,6 +286,7 @@ DEBUG(fprintf(stderr, "have: [%.*s|%s]\n", i, pwd, pwd + i)); DEBUG(fprintf(stderr, "want: [%.*s|%s]\n", i, file, file + i)); #endif + /* Keep going up a dir until we have a matching prefix. */ if (pwd[i] == '\0' && (file[i - 1] == '/' || file[i] == '/')) break; if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK || @@ -293,6 +296,23 @@ return (-1); } } + +#ifdef FTP_COMBINE_CWDS + /* Skip leading slashes, even "////". */ + for (beg = file + i; beg < end && *beg == '/'; ++beg, ++i) + /* nothing */ ; + + /* If there is no trailing dir, we're already there. */ + if (beg >= end) + return (0); + + /* Change to the directory all in one chunk (e.g., foo/bar/baz). */ + e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg); + if (e == FTP_FILE_ACTION_OK) + return (0); +#endif /* FTP_COMBINE_CWDS */ + + /* That didn't work so go back to legacy behavior (multiple CWDs). */ for (beg = file + i; beg < end; beg = file + i + 1) { while (*beg == '/') ++beg, ++i; @@ -966,6 +986,8 @@ if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN) goto fouch; + /* TODO: Request extended features supported, if any (RFC 3659). */ + /* done */ return (conn); ==== //depot/projects/trustedbsd/audit3/lib/libpthread/thread/thr_info.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.29 2007/01/12 07:26:18 imp Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.30 2007/04/23 03:36:14 deischen Exp $ */ #include #include @@ -214,12 +214,31 @@ void _pthread_set_name_np(pthread_t thread, char *name) { - /* Check if the caller has specified a valid thread: */ - if (thread != NULL && thread->magic == THR_MAGIC) { - if (thread->name != NULL) { + struct pthread *curthread = _get_curthread(); + char *new_name; + char *prev_name; + int ret; + + new_name = strdup(name); + /* Add a reference to the target thread. */ + if (_thr_ref_add(curthread, thread, 0) != 0) { + free(new_name); + ret = ESRCH; + } + else { + THR_THREAD_LOCK(curthread, thread); + prev_name = thread->name; + thread->name = new_name; + THR_THREAD_UNLOCK(curthread, thread); + _thr_ref_delete(curthread, thread); + if (prev_name != NULL) { /* Free space for previous name. */ - free(thread->name); + free(prev_name); } - thread->name = strdup(name); + ret = 0; } +#if 0 + /* XXX - Should return error code. */ + return (ret); +#endif } ==== //depot/projects/trustedbsd/audit3/libexec/ftpd/ftpd.8#7 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 -.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.72 2007/04/18 22:43:39 yar Exp $ +.\" $FreeBSD: src/libexec/ftpd/ftpd.8,v 1.74 2007/04/20 09:08:20 trhodes Exp $ .\" -.Dd January 21, 2006 +.Dd April 20, 2007 .Dt FTPD 8 .Os .Sh NAME @@ -79,20 +79,19 @@ .Dv AF_INET6 socket. .It Fl 8 -The server is running in transparent UTF-8 mode. -That is, it just encourages RFC\ 2640 compliant clients to send -paths encoded in UTF-8 in their commands. -In particular, the names of files uploaded by such clients will -have UTF-8 encoding. -The clients will also assume that server replies and existing file -names have UTF-8 encoding, too. -The names of files preloaded to the server should meet this expectation -for the clients to present the correct file names to their users. -Own messages of +Enable transparent UTF-8 mode. +RFC\ 2640 compliant clients will be told that the character encoding +used by the server is UTF-8, which is the only effect of the option. +.Pp +This option does not enable any encoding conversion for server file names; +it implies instead that the names of files on the server are encoded +in UTF-8. +As for files uploaded via FTP, it is the duty of the RFC\ 2640 compliant +client to convert their names from the client's local encoding to UTF-8. +FTP command names and own .Nm -are always encoded in ASCII, which in fact is a subset of UTF-8. -.Pp -Note that this option does not make the server do any encoding conversion. +messages are always encoded in ASCII, which is a subset of UTF-8. +Hence no need for server-side conversion at all. .It Fl A Allow only anonymous ftp access. .It Fl a @@ -356,16 +355,15 @@ and not have a null password. In this case a password must be provided by the client before any file operations may be performed. -If the user has an S/Key key, the response from a successful USER -command will include an S/Key challenge. +If the user has an OPIE key, the response from a successful USER +command will include an OPIE challenge. The client may choose to respond with a PASS command giving either -a standard password or an S/Key one-time password. +a standard password or an OPIE one-time password. The server will automatically determine which type of password it has been given and attempt to authenticate accordingly. See -.Xr key 1 -for more information on S/Key authentication. -S/Key is a Trademark of Bellcore. +.Xr opie 4 +for more information on OPIE authentication. .It The login name must not appear in the file .Pa /etc/ftpusers . @@ -559,9 +557,9 @@ .El .Sh SEE ALSO .Xr ftp 1 , -.Xr key 1 , .Xr umask 2 , .Xr getusershell 3 , +.Xr opie 4 , .Xr ftpchroot 5 , .Xr login.conf 5 , .Xr inetd 8 , ==== //depot/projects/trustedbsd/audit3/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1018 2007/04/17 07:01:45 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1021 2007/04/21 03:45:18 hrs Exp $ 2000 @@ -438,14 +438,19 @@ statistics via a binary structure stream. The sysctl variable hw.pci.do_powerstate - has been changed from a boolean to a range. + has been split into two sysctl variables + hw.pci.do_powerstate_nodriver + and hw.pci.do_powerstate_resume. + Also, these variables have been changed from a boolean to a range. 0 means no power management, 1 means conservative power management which any device class that has caused problems is added to the watch list, 2 means aggressive power management where any device class that is not fundamental to the system is added to the list, and 3 means power them all down unconditionally. - The default is 1. + The default values are 0 for + hw.pci.do_powerstate_nodriver and + 1 for hw.pci.do_powerstate_resume. [&arch.ia64;] The GENERIC kernel now enables SMP support by default. @@ -499,6 +504,9 @@ [&arch.pc98;] A bootable CDROM loader has been implemented for the pc98 platform. &merged; + [&arch.pc98;] The IPLware support + in boot0.5 has been enhanced to support version 3.33. + [&arch.i386;] A bug in the i386 boot loader, which could cause file system corruption if a nextboot.conf file was used and landed @@ -978,6 +986,10 @@ IPv6 support, it should be used instead. Please note that some rules might need to be adjusted. + The &man.lagg.4; driver, ported from OpenBSD and NetBSD, + has been added to support a variety of protocols and algorithms + for link aggregation, failover, and fault tolerance. + The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE. A new &man.ng.deflate.4; Netgraph node type has been @@ -1103,10 +1115,6 @@ devices will marked up upon creation. &merged; - The &man.lagg.4; driver, ported from OpenBSD and NetBSD, - has been added to support a variety of protocols and algorithms - for link aggregation, failover, and fault tolerance. - Support for &man.kqueue.2; operations has been added to the &man.tun.4; driver. &merged; @@ -1133,6 +1141,10 @@ The &man.arcmsr.4; driver has been updated to version 1.20.00.13. &merged; + The &man.ahc.4; driver is now MPSAFE. + + The &man.ahd.4; driver is now MPSAFE. + The &man.ata.4; driver now supports a workaround for some controllers whose DMA does not work properly in 48bit mode. For affected controllers, @@ -1158,6 +1170,8 @@ The &man.ataraid.4; driver now supports JMicron ATA RAID metadata. &merged; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 18:24:13 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E60016A408; Mon, 23 Apr 2007 18:24:13 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E749716A403 for ; Mon, 23 Apr 2007 18:24:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D82E813C44B for ; Mon, 23 Apr 2007 18:24:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NIOCb8011393 for ; Mon, 23 Apr 2007 18:24:12 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NIOCAv011390 for perforce@freebsd.org; Mon, 23 Apr 2007 18:24:12 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 23 Apr 2007 18:24:12 GMT Message-Id: <200704231824.l3NIOCAv011390@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118671 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 18:24:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=118671 Change 118671 by hselasky@hselasky_mini_itx on 2007/04/23 18:23:20 Fix a data-toggle bug in the EHCI driver. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci.c#27 edit .. //depot/projects/usb/src/sys/dev/usb/ehci.h#11 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci.c#27 (text+ko) ==== @@ -1047,6 +1047,8 @@ u_int32_t status = 0; u_int32_t actlen = 0; u_int16_t len = 0; + u_int16_t last_len = 0; + u_int8_t last_toggle = 0; ehci_qtd_t *td = xfer->td_transfer_first; DPRINTFN(12, ("xfer=%p pipe=%p transfer done\n", @@ -1069,12 +1071,6 @@ usbd_page_dma_enter(td->page); if (temp & EHCI_QTD_ACTIVE) { - - /* if there are left over TDs - * the toggle needs to be updated - */ - xfer->pipe->toggle_next = - (temp & EHCI_QTD_SET_TOGGLE(1)) ? 1 : 0; break; } @@ -1082,10 +1078,24 @@ len = EHCI_QTD_GET_BYTES(status); + /* The status length should always be + * less than or equal to the setup + * length! + */ if (len <= td->len) { - actlen += td->len - len; + last_len = td->len - len; + actlen += last_len; + } else { + /* should not happen */ + DPRINTFN(0, ("Invalid status length, " + "0x%04x/0x%04x bytes\n", len, td->len)); + last_len = 0; } + /* Make a copy of the data toggle */ + last_toggle = td->toggle_curr; + + /* Check if this is the last transfer */ if (((void *)td) == xfer->td_transfer_last) { if (len == 0) { /* halt is ok if descriptor is last, @@ -1098,13 +1108,16 @@ } } - if (len) { - /* update toggle in case of - * a short transfer - */ - xfer->pipe->toggle_next ^= (len / xfer->max_packet_size) & 1; + /* update data toggle */ + + if ((last_len == 0) || + (((last_len + xfer->max_packet_size - 1) / + xfer->max_packet_size) & 1)) { + last_toggle = !last_toggle; } + xfer->pipe->toggle_next = last_toggle; + DPRINTFN(10, ("actlen=%d\n", actlen)); xfer->actlen = actlen; @@ -1570,6 +1583,7 @@ td->qtd_buffer[1] = htole32(buf_res.physaddr & (~0xFFF)); td->qtd_buffer_hi[1] = 0; + td->toggle_curr = 0; td->len = sizeof(usb_device_request_t); len -= sizeof(usb_device_request_t); @@ -1664,14 +1678,15 @@ htole32(buf_res.physaddr & (~0xFFF)); td->qtd_buffer_hi[1] = 0; + td->toggle_curr = xfer->pipe->toggle_next; td->len = average; /* adjust the toggle based on the * number of packets in this qtd */ - if((((average + xfer->max_packet_size - 1) / - xfer->max_packet_size) & 1) || - (!average)) + if ((average == 0) || + (((average + xfer->max_packet_size - 1) / + xfer->max_packet_size) & 1)) { xfer->pipe->toggle_next = xfer->pipe->toggle_next ? 0 : 1; ==== //depot/projects/usb/src/sys/dev/usb/ehci.h#11 (text+ko) ==== @@ -319,6 +319,8 @@ struct usbd_page *page; uint32_t qtd_self; uint16_t len; + uint8_t toggle_curr; + uint8_t unused; } __aligned(EHCI_QTD_ALIGN) ehci_qtd_t; /* Queue Head */ From owner-p4-projects@FreeBSD.ORG Mon Apr 23 18:39:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F59F16A404; Mon, 23 Apr 2007 18:39:32 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5045816A40B for ; Mon, 23 Apr 2007 18:39:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 41AE413C43E for ; Mon, 23 Apr 2007 18:39:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NIdWet013158 for ; Mon, 23 Apr 2007 18:39:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NIdWdk013155 for perforce@freebsd.org; Mon, 23 Apr 2007 18:39:32 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 23 Apr 2007 18:39:32 GMT Message-Id: <200704231839.l3NIdWdk013155@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118672 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 18:39:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=118672 Change 118672 by hselasky@hselasky_mini_itx on 2007/04/23 18:38:49 USB config thread improvement. Queue the post command before calling the pre command. That way commands queued by the pre command will be queued after the current command. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#32 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#32 (text+ko) ==== @@ -2678,6 +2678,20 @@ item = (void *)(m->cur_data_ptr); + /* The job of the post-command + * function is to finish the command + * in a separate context to allow calls + * to sleeping functions basically. + * Queue the post command before calling + * the pre command. That way commands + * queued by the pre command will be + * queued after the current command. + */ + item->command_func = command_post_func; + item->command_ref = command_ref; + + USBD_IF_ENQUEUE(&(ctd->cmd_used), m); + /* The job of the pre-command * function is to copy the needed * configuration to the provided @@ -2689,16 +2703,11 @@ (command_pre_func)(ctd->p_softc, (void *)(item+1), command_ref); } - /* The job of the post-command - * function is to finish the command - * in a separate context to allow calls - * to sleeping functions basically + /* Currently we use a separate thread + * to execute the command, but it is not + * impossible that we might use + * a so called taskqueue in the future: */ - item->command_func = command_post_func; - item->command_ref = command_ref; - - USBD_IF_ENQUEUE(&(ctd->cmd_used), m); - if (ctd->flag_config_td_sleep) { ctd->flag_config_td_sleep = 0; wakeup(&(ctd->wakeup_config_td)); From owner-p4-projects@FreeBSD.ORG Mon Apr 23 19:19:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0EE2916A401; Mon, 23 Apr 2007 19:19:22 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D8E9616A403 for ; Mon, 23 Apr 2007 19:19:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id CA9AF13C45B for ; Mon, 23 Apr 2007 19:19:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NJJLew021424 for ; Mon, 23 Apr 2007 19:19:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NJJLg6021421 for perforce@freebsd.org; Mon, 23 Apr 2007 19:19:21 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 23 Apr 2007 19:19:21 GMT Message-Id: <200704231919.l3NJJLg6021421@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118675 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 19:19:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=118675 Change 118675 by hselasky@hselasky_mini_itx on 2007/04/23 19:18:51 Make the USB stack smarter by allowing NULL pointer arguments to be passed to usbd_transfer_start() and usbd_transfer_stop(). At the same time add some more comments describing why. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#21 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#21 (text+ko) ==== @@ -383,7 +383,6 @@ while(n_setup--) { xfer = pxfer[n_setup]; - pxfer[n_setup] = NULL; if(xfer) { @@ -391,6 +390,27 @@ { mtx_lock(xfer->priv_mtx); + /* HINT: when you start/stop a transfer, + * it might be a good idea to directly + * use the "pxfer[]" structure: + * + * usbd_transfer_start(sc->pxfer[0]); + * usbd_transfer_stop(sc->pxfer[0]); + * + * That way, if your code has many parts + * that will not stop running under the + * same lock, in other words "priv_mtx", + * the usbd_transfer_start and + * usbd_transfer_stop functions will + * simply return when they detect a NULL + * pointer argument. + * + * To avoid any races we clear the "pxfer[]" + * pointer while holding the private mutex + * of the driver: + */ + pxfer[n_setup] = NULL; + usbd_transfer_stop(xfer); /* NOTE: default pipe does not @@ -400,6 +420,9 @@ xfer->pipe->refcount--; mtx_unlock(xfer->priv_mtx); + } else { + /* clear the transfer pointer */ + pxfer[n_setup] = NULL; } __callout_drain(&(xfer->timeout_handle)); @@ -423,6 +446,8 @@ if (info->setup_refcount == 0) { + /* wait for any USB callbacks to return */ + while (info->memory_refcount > 0) { error = msleep(info, info->usb_mtx, 0, "usb_mem_wait", 0); @@ -708,9 +733,11 @@ } /*---------------------------------------------------------------------------* - * usbd_transfer_start - start a USB transfer + * usbd_transfer_start - start an USB transfer * - * NOTE: this function can be called any number of times + * NOTE: Calling this function more than one time will only + * result in a single transfer start, until the USB transfer + * completes. * NOTE: if USBD_SYNCHRONOUS is set in "xfer->flags", then this * function will sleep for transfer completion * NOTE: if USBD_USE_POLLING is set in "xfer->flags", then this @@ -719,6 +746,11 @@ void usbd_transfer_start(struct usbd_xfer *xfer) { + if (xfer == NULL) { + /* transfer is gone */ + return; + } + mtx_assert(xfer->priv_mtx, MA_OWNED); if(!(xfer->flags & USBD_DEV_OPEN)) @@ -793,13 +825,19 @@ } /*---------------------------------------------------------------------------* - * usbd_transfer_stop - stop a USB transfer + * usbd_transfer_stop - stop an USB transfer * - * NOTE: this function can be called any number of times + * NOTE: Calling this function more than one time will only + * result in a single transfer stop. *---------------------------------------------------------------------------*/ void usbd_transfer_stop(struct usbd_xfer *xfer) { + if (xfer == NULL) { + /* transfer is gone */ + return; + } + mtx_assert(xfer->priv_mtx, MA_OWNED); if(xfer->flags & USBD_DEV_OPEN) From owner-p4-projects@FreeBSD.ORG Mon Apr 23 19:54:06 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 122AD16A402; Mon, 23 Apr 2007 19:54:06 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7235A16A400 for ; Mon, 23 Apr 2007 19:54:05 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.freebsd.org (Postfix) with ESMTP id 13BFD13C465 for ; Mon, 23 Apr 2007 19:54:02 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.8/8.13.8) with ESMTP id l3NJrnV4049908; Mon, 23 Apr 2007 15:53:59 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: Matt Jacob Date: Mon, 23 Apr 2007 15:09:13 -0400 User-Agent: KMail/1.9.6 References: <200704202333.l3KNXp1S061688@repoman.freebsd.org> In-Reply-To: <200704202333.l3KNXp1S061688@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200704231509.13720.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Mon, 23 Apr 2007 15:53:59 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/3151/Mon Apr 23 12:11:26 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: Perforce Change Reviews Subject: Re: PERFORCE change 118502 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 19:54:06 -0000 On Friday 20 April 2007 07:33:51 pm Matt Jacob wrote: > http://perforce.freebsd.org/chv.cgi?CH=118502 > > Change 118502 by mjacob@mjexp on 2007/04/20 23:32:53 > > While it's true we have motherboard blacklists for MSI > breakage, it's true that this is incomplete. Save ourselves > some grief by not trying to do MSI for Ultra320 chips. > > MFP4 after: 1 days Is it due to a broken motherboard or broken mpt(4) silicon? If the former, do you have a system where it breaks? > Affected files ... > > .. //depot/projects/mjexp/sys/dev/mpt/mpt_pci.c#9 edit > > Differences ... > > ==== //depot/projects/mjexp/sys/dev/mpt/mpt_pci.c#9 (text+ko) ==== > > @@ -522,11 +522,13 @@ > > /* Get a handle to the interrupt */ > iqd = 0; > + > /* > * First try to alloc an MSI-X message. If that > * fails, then try to alloc an MSI message instead. > + * Don't do this for U320 chips. > */ > - if (pci_msix_count(dev) == 1) { > + if (mpt->is_spi == 0 && pci_msix_count(dev) == 1) { > mpt->pci_msi_count = 1; > if (pci_alloc_msix(dev, &mpt->pci_msi_count) == 0) { > iqd = 1; > @@ -534,7 +536,7 @@ > mpt->pci_msi_count = 0; > } > } > - if (iqd == 0 && pci_msi_count(dev) == 1) { > + if (mpt->is_spi == 0 && iqd == 0 && pci_msi_count(dev) == 1) { > mpt->pci_msi_count = 1; > if (pci_alloc_msi(dev, &mpt->pci_msi_count) == 0) { > iqd = 1; > -- John Baldwin From owner-p4-projects@FreeBSD.ORG Mon Apr 23 20:43:11 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 747AC16A404; Mon, 23 Apr 2007 20:43:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2E59516A402 for ; Mon, 23 Apr 2007 20:43:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1CFA413C455 for ; Mon, 23 Apr 2007 20:43:11 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NKhARj037207 for ; Mon, 23 Apr 2007 20:43:10 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NKh5MR037133 for perforce@freebsd.org; Mon, 23 Apr 2007 20:43:05 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 23 Apr 2007 20:43:05 GMT Message-Id: <200704232043.l3NKh5MR037133@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 118679 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 20:43:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=118679 Change 118679 by rwatson@rwatson_cinnamon on 2007/04/23 20:42:18 Integrate TrustedBSD priv branch from TrustedBSD base branch. Affected files ... .. //depot/projects/trustedbsd/priv/sys/Makefile#4 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/busdma_machdep.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/amd64/pmap.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_dummy.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_machdep.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/bsm/audit.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/bsm/audit_internal.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/bsm/audit_kevents.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/bsm/audit_record.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_ccb.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_periph.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_periph.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_sim.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_sim.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_xpt.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_xpt.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_cd.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_ch.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_da.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_low.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_ses.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_sg.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_targ_bh.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/cam/scsi/scsi_target.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/compat/linprocfs/linprocfs.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/compat/linux/linux_socket.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/conf/NOTES#12 integrate .. //depot/projects/trustedbsd/priv/sys/conf/files#14 integrate .. //depot/projects/trustedbsd/priv/sys/conf/options#9 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/common/atomic/i386/atomic.S#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/contrib/pf/net/if_pfsync.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aac/aac_cam.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/advansys/advansys.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/advansys/adwcam.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aha/aha.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ahb/ahb.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic/aic.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7770.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic79xx.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic79xx.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic79xx_osm.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic79xx_osm.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic79xx_pci.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7xxx.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7xxx_inline.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7xxx_osm.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7xxx_osm.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic7xxx_pci.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/aic7xxx/aic_osm_lib.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/amd/amd.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/amr/amr_cam.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/arcmsr/arcmsr.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/asr/asr.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ata/atapi-cam.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ath/if_ath.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/buslogic/bt.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ciss/ciss.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/dpt/dpt_scsi.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/esp/ncr53c9x.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ex/if_exvar.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/fwdma.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/sbp.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/firewire/sbp_targ.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/hptmv/entry.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/hwpmc/hwpmc_logging.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/hwpmc/hwpmc_mod.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/hwpmc/hwpmc_piv.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/iicbus/icee.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/iir/iir.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/isp/isp_freebsd.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/dev/led/led.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/led/led.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mly/mly.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/mpt/mpt_cam.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ppbus/vpo.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/ral/rt2560.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/re/if_re.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/rr232x/osm_bsd.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/ad1816.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/ess.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/mss.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/sb16.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/isa/sb8.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/als4000.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/atiixp.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/au88x0.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/aureal.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/cmi.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/cs4281.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/csapcm.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/ds1.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/emu10k1.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/emu10kx-pcm.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/envy24.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/envy24ht.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/es137x.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/fm801.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/hda/hdac.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/ich.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/maestro3.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/solo.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/t4dwave.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/via8233.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/via82c686.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pci/vibes.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97_patch.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/ac97_patch.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/buffer.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/buffer.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/pcm/sound.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sound/sbus/cs4231.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/sym/sym_hipd.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/dev/trm/trm.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/dev/twa/tw_osl_cam.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/if_ural.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/umass.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/dev/usb/usbdevs#8 integrate .. //depot/projects/trustedbsd/priv/sys/dev/wds/wd7000.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/dev/wi/if_wi.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs_devs.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/fs/devfs/devfs_vnops.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_dbregs.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_fpregs.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_map.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/fs/procfs/procfs_regs.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs_fileno.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs_internal.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs_vncache.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/fs/pseudofs/pseudofs_vnops.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/geom/vinum/geom_vinum.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/geom/vinum/geom_vinum_rm.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/geom/vinum/geom_vinum_share.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/bios.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/busdma_machdep.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/identcpu.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/mp_machdep.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/pmap.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/i386/i386/sys_machdep.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/i386/include/pmap.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/ia64/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/isa/isa_common.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_intr.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_jail.c#19 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_linker.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_malloc.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_time.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/kern/kern_uuid.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/kern/sched_ule.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/kern/subr_rman.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/kern/subr_witness.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/kern/uipc_mbuf.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/uipc_mqueue.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/kern/uipc_syscalls.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/kern/vfs_mount.c#12 integrate .. //depot/projects/trustedbsd/priv/sys/kern/vfs_subr.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/modules/Makefile#10 integrate .. //depot/projects/trustedbsd/priv/sys/modules/if_lagg/Makefile#1 branch .. //depot/projects/trustedbsd/priv/sys/modules/if_trunk/Makefile#2 delete .. //depot/projects/trustedbsd/priv/sys/net/ieee8023ad_lacp.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/net/ieee8023ad_lacp.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/net/if.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/net/if_ethersubr.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/net/if_lagg.c#1 branch .. //depot/projects/trustedbsd/priv/sys/net/if_lagg.h#1 branch .. //depot/projects/trustedbsd/priv/sys/net/if_trunk.c#2 delete .. //depot/projects/trustedbsd/priv/sys/net/if_trunk.h#2 delete .. //depot/projects/trustedbsd/priv/sys/net/if_var.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/netgraph/ng_ppp.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/ip_fw2.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_constants.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_crc32.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_indata.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_indata.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_input.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_lock_bsd.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_output.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_pcb.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_pcb.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_peeloff.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_structs.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_timer.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_uio.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_usrreq.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctp_var.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctputil.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/sctputil.h#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_input.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_output.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_subr.c#11 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_syncache.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/netinet/tcp_var.h#7 integrate .. //depot/projects/trustedbsd/priv/sys/netinet6/in6_pcb.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/netinet6/ipsec.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netinet6/route6.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/netinet6/sctp6_usrreq.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/netnatm/natm.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/nfsclient/nfs_lock.c#2 integrate .. //depot/projects/trustedbsd/priv/sys/nfsserver/nfs_srvsock.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/nfsserver/nfs_syscalls.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/pci/if_rlreg.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/pci/if_vr.c#4 integrate .. //depot/projects/trustedbsd/priv/sys/pci/if_vrreg.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/pci/intpm.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/pci/ncr.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/powerpc/powerpc/nexus.c#3 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit.c#10 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_arg.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_bsm.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_bsm_token.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_private.h#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/audit/audit_syscalls.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_framework.h#8 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_inet.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_net.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_pipe.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_process.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_socket.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_system.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac/mac_vfs.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_biba/mac_biba.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_bsdextended/mac_bsdextended.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_ifoff/mac_ifoff.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_lomac/mac_lomac.c#8 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_mls/mac_mls.c#6 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_partition/mac_partition.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_portacl/mac_portacl.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_seeotheruids/mac_seeotheruids.c#9 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_stub/mac_stub.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/security/mac_test/mac_test.c#5 integrate .. //depot/projects/trustedbsd/priv/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/trustedbsd/priv/sys/sys/eventhandler.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/sys/interrupt.h#4 integrate .. //depot/projects/trustedbsd/priv/sys/sys/mbuf.h#9 integrate .. //depot/projects/trustedbsd/priv/sys/sys/mount.h#8 integrate .. //depot/projects/trustedbsd/priv/sys/sys/priv.h#14 integrate .. //depot/projects/trustedbsd/priv/sys/sys/proc.h#7 integrate .. //depot/projects/trustedbsd/priv/sys/sys/socket.h#3 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_contig.c#7 integrate .. //depot/projects/trustedbsd/priv/sys/vm/vm_param.h#2 integrate Differences ... ==== //depot/projects/trustedbsd/priv/sys/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.41 2007/03/24 22:21:01 maxim Exp $ +# $FreeBSD: src/sys/Makefile,v 1.42 2007/04/14 16:29:15 maxim Exp $ .include @@ -8,10 +8,10 @@ .endif # Directories to include in cscope name file and TAGS. -CSCOPEDIRS= cam coda compat conf contrib crypto ddb dev fs geom gnu i4b \ - isa kern libkern modules net net80211 netatalk netatm \ +CSCOPEDIRS= bsm cam coda compat conf contrib crypto ddb dev fs geom gnu \ + i4b isa kern libkern modules net net80211 netatalk netatm \ netgraph netinet netinet6 netipx netkey netnatm netncp \ - netsmb nfs nfsclient nfs4client rpc pccard pci sys \ + netsmb nfs nfsclient nfs4client rpc pccard pci security sys \ ufs vm ${ARCHDIR} ARCHDIR ?= ${MACHINE} ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/busdma_machdep.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.79 2007/03/06 18:28:42 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.80 2007/04/17 21:05:34 jhb Exp $"); #include #include @@ -48,6 +48,7 @@ #include #include #include +#include #define MAX_BPAGES 8192 @@ -522,6 +523,9 @@ } else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) { printf("bus_dmamem_alloc failed to align memory properly.\n"); } + if (flags & BUS_DMA_NOCACHE) + pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, + PAT_UNCACHEABLE); CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (0); @@ -540,6 +544,7 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); + pmap_change_attr((vm_offset_t)vaddr, dmat->maxsize, PAT_WRITE_BACK); if ((dmat->maxsize <= PAGE_SIZE) && (dmat->alignment < dmat->maxsize) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) ==== //depot/projects/trustedbsd/priv/sys/amd64/amd64/pmap.c#6 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.581 2007/03/10 20:26:43 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.583 2007/04/21 14:17:29 ups Exp $"); /* * Manages physical address maps. @@ -209,7 +209,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, - vm_offset_t sva, pd_entry_t ptepde); + vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -221,8 +221,9 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); -static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); -static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t* free); +static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t, vm_page_t *); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); @@ -1065,24 +1066,36 @@ /*************************************************** * Page table page management routines..... ***************************************************/ +static PMAP_INLINE void +pmap_free_zero_pages(vm_page_t free) +{ + vm_page_t m; + while (free != NULL) { + m = free; + free = m->right; + vm_page_free_zero(m); + } +} + /* * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t *free) { --m->wire_count; if (m->wire_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); + return _pmap_unwire_pte_hold(pmap, va, m, free); else return 0; } static int -_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t *free) { vm_offset_t pteva; @@ -1114,14 +1127,14 @@ vm_page_t pdpg; pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdpg); + pmap_unwire_pte_hold(pmap, va, pdpg, free); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdppg); + pmap_unwire_pte_hold(pmap, va, pdppg, free); } /* @@ -1130,7 +1143,13 @@ */ pmap_invalidate_page(pmap, pteva); - vm_page_free_zero(m); + /* + * Put page on a list so that it is released after + * *ALL* TLB shootdown is done + */ + m->right = *free; + *free = m; + atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1140,7 +1159,7 @@ * conditionally free the page, and manage the hold/wire counts. */ static int -pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde) +pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, vm_page_t *free) { vm_page_t mpte; @@ -1148,7 +1167,7 @@ return 0; KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); - return pmap_unwire_pte_hold(pmap, va, mpte); + return pmap_unwire_pte_hold(pmap, va, mpte, free); } void @@ -1366,7 +1385,7 @@ { vm_pindex_t ptepindex; pd_entry_t *pd; - vm_page_t m; + vm_page_t m, free; KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, @@ -1390,8 +1409,10 @@ *pd = 0; pd = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); + free = NULL; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va), &free); pmap_invalidate_all(kernel_pmap); + pmap_free_zero_pages(free); } /* @@ -1609,7 +1630,7 @@ pt_entry_t *pte, tpte; pv_entry_t next_pv, pv; vm_offset_t va; - vm_page_t m; + vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { if (m->hold_count || m->busy) @@ -1635,12 +1656,14 @@ va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, va, ptepde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); free_pv_entry(pmap, pv); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); @@ -1833,7 +1856,8 @@ * pmap_remove_pte: do the things to unmap a page in a process */ static int -pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, pd_entry_t ptepde) +pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, + pd_entry_t ptepde, vm_page_t *free) { pt_entry_t oldpte; vm_page_t m; @@ -1861,7 +1885,7 @@ vm_page_flag_set(m, PG_REFERENCED); pmap_remove_entry(pmap, m, va); } - return (pmap_unuse_pt(pmap, va, ptepde)); + return (pmap_unuse_pt(pmap, va, ptepde, free)); } /* @@ -1871,6 +1895,7 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { pt_entry_t *pte; + vm_page_t free = NULL; PMAP_LOCK_ASSERT(pmap, MA_OWNED); if ((*pde & PG_V) == 0) @@ -1878,8 +1903,9 @@ pte = pmap_pde_to_pte(pde, va); if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, *pde); + pmap_remove_pte(pmap, pte, va, *pde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); } /* @@ -1896,6 +1922,7 @@ pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; + vm_page_t free = NULL; int anyvalid; /* @@ -1959,7 +1986,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, sva, *pdpe); + pmap_unuse_pt(pmap, sva, *pdpe, &free); anyvalid = 1; continue; } @@ -1983,14 +2010,16 @@ */ if ((*pte & PG_G) == 0) anyvalid = 1; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) + if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free)) break; } } out: - vm_page_unlock_queues(); - if (anyvalid) + if (anyvalid) { pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); + } + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2014,6 +2043,7 @@ pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; + vm_page_t free; #if defined(PMAP_DIAGNOSTIC) /* @@ -2045,10 +2075,12 @@ pv->pv_va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); pmap_invalidate_page(pmap, pv->pv_va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pmap, pv->pv_va, ptepde); free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } @@ -2161,9 +2193,9 @@ } } } - vm_page_unlock_queues(); if (anychanged) pmap_invalidate_all(pmap); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2413,6 +2445,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { + vm_page_t free; pt_entry_t *pte; vm_paddr_t pa; @@ -2471,7 +2504,7 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + mpte->wire_count--; mpte = NULL; } return (mpte); @@ -2483,7 +2516,11 @@ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + free = NULL; + if (pmap_unwire_pte_hold(pmap, va, mpte, &free)) { + pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); + } mpte = NULL; } return (mpte); @@ -2657,6 +2694,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { + vm_page_t free; vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; @@ -2716,7 +2754,7 @@ dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; } else - pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); + dstmpde->wire_count--; continue; } @@ -2753,9 +2791,15 @@ *dst_pte = ptetemp & ~(PG_W | PG_M | PG_A); dst_pmap->pm_stats.resident_count++; - } else - pmap_unwire_pte_hold(dst_pmap, addr, - dstmpte); + } else { + free = NULL; + if (pmap_unwire_pte_hold(dst_pmap, + addr, dstmpte, &free)) { + pmap_invalidate_page(dst_pmap, + addr); + pmap_free_zero_pages(free); + } + } if (dstmpte->wire_count >= srcmpte->wire_count) break; } @@ -2866,7 +2910,7 @@ pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; - vm_page_t m; + vm_page_t m, free = NULL; pv_entry_t pv; struct pv_chunk *pc, *npc; int field, idx; @@ -2939,7 +2983,7 @@ if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); pmap_unuse_pt(pmap, pv->pv_va, - *vtopde(pv->pv_va)); + *vtopde(pv->pv_va), &free); } } if (allfree) { @@ -2952,8 +2996,9 @@ vm_page_free(m); } } + pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); vm_page_unlock_queues(); - pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); } @@ -3261,7 +3306,7 @@ pd_entry_t *pde; pt_entry_t *pte; - base = va & PG_FRAME; + base = trunc_page(va); offset = va & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); ==== //depot/projects/trustedbsd/priv/sys/amd64/include/vmparam.h#2 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.45 2004/10/27 17:21:15 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.46 2007/04/21 01:14:47 sepotvin Exp $ */ @@ -122,7 +122,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_dummy.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.8 2007/03/29 02:11:46 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.9 2007/04/18 18:08:12 jkim Exp $"); #include #include @@ -64,7 +64,6 @@ DUMMY(mincore); DUMMY(fadvise64); DUMMY(ptrace); -DUMMY(settimeofday); DUMMY(lookup_dcookie); DUMMY(epoll_create); DUMMY(epoll_ctl); ==== //depot/projects/trustedbsd/priv/sys/amd64/linux32/linux32_machdep.c#9 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.39 2007/03/30 17:27:13 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.42 2007/04/18 20:12:05 jkim Exp $"); #include #include @@ -252,7 +252,7 @@ if (iovcnt > UIO_MAXIOV) return (EINVAL); iovlen = iovcnt * sizeof(struct iovec); - uio = malloc(iovlen + sizeof *uio, M_IOV, M_WAITOK); + uio = malloc(iovlen + sizeof(*uio), M_IOV, M_WAITOK); iov = (struct iovec *)(uio + 1); for (i = 0; i < iovcnt; i++) { error = copyin(&iovp[i], &iov32, sizeof(struct iovec32)); @@ -526,7 +526,9 @@ td2 = FIRST_THREAD_IN_PROC(p2); - /* make it run */ + /* + * Make this runnable after we are finished with it. + */ mtx_lock_spin(&sched_lock); TD_SET_CAN_RUN(td2); sched_add(td2, SRQ_BORING); @@ -572,8 +574,8 @@ /* * XXX: In Linux, sharing of fs info (chroot/cwd/umask) * and open files is independant. In FreeBSD, its in one - * structure but in reality it does not make any problems - * because both of these flags are set at once usually. + * structure but in reality it does not cause any problems + * because both of these flags are usually set together. */ if (!(args->flags & (LINUX_CLONE_FILES | LINUX_CLONE_FS))) ff |= RFFDG; @@ -660,15 +662,15 @@ if (args->flags & LINUX_CLONE_SETTLS) { struct user_segment_descriptor sd; struct l_user_desc info; - int a[2]; + int a[2]; - error = copyin((void *)td->td_frame->tf_rsi, &info, + error = copyin((void *)td->td_frame->tf_rsi, &info, sizeof(struct l_user_desc)); if (error) { printf(LMSG("copyin failed!")); } else { /* We might copy out the entry_number as GUGS32_SEL. */ - info.entry_number = GUGS32_SEL; + info.entry_number = GUGS32_SEL; error = copyout(&info, (void *)td->td_frame->tf_rsi, sizeof(struct l_user_desc)); if (error) @@ -871,7 +873,7 @@ * * Our mmap with MAP_STACK takes addr as the maximum * downsize limit on BOS, and as len the max size of - * the region. It them maps the top SGROWSIZ bytes, + * the region. It then maps the top SGROWSIZ bytes, * and auto grows the region down, up to the limit * in addr. * @@ -1167,17 +1169,44 @@ microtime(&atv); atv32.tv_sec = atv.tv_sec; atv32.tv_usec = atv.tv_usec; - error = copyout(&atv32, uap->tp, sizeof (atv32)); + error = copyout(&atv32, uap->tp, sizeof(atv32)); } if (error == 0 && uap->tzp != NULL) { rtz.tz_minuteswest = tz_minuteswest; rtz.tz_dsttime = tz_dsttime; - error = copyout(&rtz, uap->tzp, sizeof (rtz)); + error = copyout(&rtz, uap->tzp, sizeof(rtz)); } return (error); } int +linux_settimeofday(struct thread *td, struct linux_settimeofday_args *uap) +{ + l_timeval atv32; + struct timeval atv, *tvp; + struct timezone atz, *tzp; + int error; + + if (uap->tp) { + error = copyin(uap->tp, &atv32, sizeof(atv32)); + if (error) + return (error); + atv.tv_sec = atv32.tv_sec; + atv.tv_usec = atv32.tv_usec; + tvp = &atv; + } else + tvp = NULL; + if (uap->tzp) { + error = copyin(uap->tzp, &atz, sizeof(atz)); + if (error) + return (error); + tzp = &atz; + } else + tzp = NULL; + return (kern_settimeofday(td, tvp, tzp)); +} + +int linux_getrusage(struct thread *td, struct linux_getrusage_args *uap) { struct l_rusage s32; @@ -1242,7 +1271,7 @@ #ifdef DEBUG if (ldebug(set_thread_area)) - printf(ARGS(set_thread_area, "%i, %x, %x, %i, %i, %i, " + printf(ARGS(set_thread_area, "%i, %x, %x, %i, %i, %i, " "%i, %i, %i"), info.entry_number, info.base_addr, info.limit, info.seg_32bit, info.contents, info.read_exec_only, info.limit_in_pages, @@ -1261,9 +1290,10 @@ * The tls_array[] is used only in [gs]et_thread_area() syscalls and * for loading the GDT descriptors. We use just one GDT descriptor * for TLS, so we will load just one. - * XXX: This doesnt work when user-space process tries to use more + * + * XXX: This doesn't work when a user space process tries to use more * than one TLS segment. Comment in the Linux source says wine might - * do that. + * do this. */ /* @@ -1284,8 +1314,9 @@ /* * We have to copy out the GDT entry we use. - * XXX: What if userspace program does not check return value and - * tries to use 6, 7 or 8? + * + * XXX: What if a user space program does not check the return value + * and tries to use 6, 7 or 8? */ error = copyout(&info, args->desc, sizeof(struct l_user_desc)); if (error) ==== //depot/projects/trustedbsd/priv/sys/bsm/audit.h#4 (text+ko) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/priv/sys/bsm/audit.h#3 $ - * $FreeBSD: src/sys/bsm/audit.h,v 1.6 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#36 + * $FreeBSD: src/sys/bsm/audit.h,v 1.8 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _BSM_AUDIT_H ==== //depot/projects/trustedbsd/priv/sys/bsm/audit_internal.h#5 (text) ==== @@ -34,8 +34,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#14 $ - * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.5 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#16 + * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.7 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _AUDIT_INTERNAL_H ==== //depot/projects/trustedbsd/priv/sys/bsm/audit_kevents.h#4 (text+ko) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/priv/sys/bsm/audit_kevents.h#3 $ - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.9 2006/09/25 12:22:07 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#32 + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.11 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ @@ -475,6 +475,28 @@ #define AUE_READDIR 43118 /* Linux. */ #define AUE_IOPL 43119 /* Linux. */ #define AUE_VM86 43120 /* Linux. */ +#define AUE_MAC_GET_PROC 43121 /* FreeBSD. */ +#define AUE_MAC_SET_PROC 43122 /* FreeBSD. */ +#define AUE_MAC_GET_FD 43123 /* FreeBSD. */ +#define AUE_MAC_GET_FILE 43124 /* FreeBSD. */ +#define AUE_MAC_SET_FD 43125 /* FreeBSD. */ +#define AUE_MAC_SET_FILE 43126 /* FreeBSD. */ +#define AUE_MAC_SYSCALL 43127 /* FreeBSD. */ +#define AUE_MAC_GET_PID 43128 /* FreeBSD. */ +#define AUE_MAC_GET_LINK 43129 /* FreeBSD. */ +#define AUE_MAC_SET_LINK 43130 /* FreeBSD. */ +#define AUE_MAC_EXECVE 43131 /* FreeBSD. */ +#define AUE_GETPATH_FROMFD 43132 /* FreeBSD. */ +#define AUE_GETPATH_FROMADDR 43133 /* FreeBSD. */ +#define AUE_MQ_OPEN 43134 /* FreeBSD. */ +#define AUE_MQ_SETATTR 43135 /* FreeBSD. */ +#define AUE_MQ_TIMEDRECEIVE 43136 /* FreeBSD. */ +#define AUE_MQ_TIMEDSEND 43137 /* FreeBSD. */ +#define AUE_MQ_NOTIFY 43138 /* FreeBSD. */ +#define AUE_MQ_UNLINK 43139 /* FreeBSD. */ +#define AUE_LISTEN 43140 /* FreeBSD/Darwin/Linux. */ +#define AUE_MLOCKALL 43141 /* FreeBSD. */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 21:34:14 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 655AD16A40D; Mon, 23 Apr 2007 21:34:14 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0590216A401 for ; Mon, 23 Apr 2007 21:34:14 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D155713C4BB for ; Mon, 23 Apr 2007 21:34:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NLYDER056411 for ; Mon, 23 Apr 2007 21:34:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NLYDEA056408 for perforce@freebsd.org; Mon, 23 Apr 2007 21:34:13 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 23 Apr 2007 21:34:13 GMT Message-Id: <200704232134.l3NLYDEA056408@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118680 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 21:34:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=118680 Change 118680 by hselasky@hselasky_mini_itx on 2007/04/23 21:33:42 Fix several bugs in if_ural.c. Add more device ID's. Mostly I had a headache finding out the data-toggle problem with EHCI. if_ural.c should work now (tested). Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_ural.c#22 edit .. //depot/projects/usb/src/sys/dev/usb/if_uralreg.h#10 edit .. //depot/projects/usb/src/sys/dev/usb/if_uralvar.h#13 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#9 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_ural.c#22 (text+ko) ==== @@ -124,19 +124,19 @@ static void ural_cfg_eeprom_read(struct ural_softc *sc, u_int16_t addr, - void *buf, int len); + void *buf, uint16_t len); static u_int16_t ural_cfg_read(struct ural_softc *sc, u_int16_t reg); static void ural_cfg_read_multi(struct ural_softc *sc, u_int16_t reg, - void *buf, int len); + void *buf, uint16_t len); static void ural_cfg_write(struct ural_softc *sc, u_int16_t reg, u_int16_t val); static void ural_cfg_write_multi(struct ural_softc *sc, u_int16_t reg, - void *buf, int len); + void *buf, uint16_t len); static void ural_cfg_bbp_write(struct ural_softc *sc, u_int8_t reg, u_int8_t val); @@ -199,10 +199,10 @@ ural_cfg_disable_rf_tune(struct ural_softc *sc); static void -ural_cfg_set_bssid(struct ural_softc *sc, const u_int8_t *bssid); +ural_cfg_set_bssid(struct ural_softc *sc, uint8_t *bssid); static void -ural_cfg_set_macaddr(struct ural_softc *sc, const u_int8_t *addr); +ural_cfg_set_macaddr(struct ural_softc *sc, uint8_t *addr); static void ural_cfg_set_txantenna(struct ural_softc *sc, u_int8_t antenna); @@ -227,10 +227,14 @@ { USB_VENDOR_ASUS, USB_PRODUCT_ASUS_WL167G }, { USB_VENDOR_ASUS, USB_PRODUCT_RALINK_RT2570 }, { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050 }, + { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7051 }, + { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D705A }, { USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_C54RU }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG122 }, { USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWBKG }, + { USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GN54G }, { USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWGUSB254 }, + { USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HW54G }, { USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54G }, { USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54GP }, { USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_HU200TS }, @@ -244,6 +248,11 @@ { USB_VENDOR_NOVATECH, USB_PRODUCT_NOVATECH_NV902 }, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570 }, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_2 }, + { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2573 }, + { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_3 }, + { USB_VENDOR_SIEMENS3, USB_PRODUCT_SIEMENS3_WL54G }, + { USB_VENDOR_SMC, USB_PRODUCT_SMC_2862WG }, + { USB_VENDOR_SPAIRON, USB_PRODUCT_SPAIRON_WL54G }, { USB_VENDOR_VTECH, USB_PRODUCT_VTECH_RT2570 }, { USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT2570 } }; @@ -431,6 +440,7 @@ .bufsize = (MCLBYTES + RAL_TX_DESC_SIZE + 4), .flags = (USBD_USE_DMA|USBD_FORCE_SHORT_XFER), .callback = &ural_bulk_write_callback, + .timeout = 5000, /* ms */ }, [1] = { @@ -512,7 +522,7 @@ snprintf(sc->sc_name, sizeof(sc->sc_name), "%s", device_get_nameunit(dev)); - sc->sc_udev = uaa->device; /* XXX */ + sc->sc_udev = uaa->device; sc->sc_unit = device_get_unit(dev); __callout_init_mtx(&(sc->sc_watchdog), @@ -537,7 +547,7 @@ error = usbd_config_td_setup(&(sc->sc_config_td), sc, &(sc->sc_mtx), &ural_end_of_commands, - sizeof(struct ural_config_copy), 16); + sizeof(struct ural_config_copy), 24); if (error) { device_printf(dev, "could not setup config " "thread!\n"); @@ -582,6 +592,11 @@ mtx_unlock(&(sc->sc_mtx)); + /* XXX make sure that all USB callbacks have exited + * before tearing down the network stack: + */ + usbd_transfer_unsetup(sc->sc_xfer, URAL_N_TRANSFER); + /* get rid of any late children */ bus_generic_detach(dev); @@ -591,8 +606,6 @@ if_free(ifp); } - usbd_transfer_unsetup(sc->sc_xfer, URAL_N_TRANSFER); - usbd_config_td_unsetup(&(sc->sc_config_td)); __callout_drain(&(sc->sc_watchdog)); @@ -613,6 +626,8 @@ u_int16_t length; usbd_status err; + repeat: + if (usbd_config_td_is_gone(&(sc->sc_config_td))) { goto error; } @@ -622,10 +637,19 @@ if (err) { - printf("%s: device request failed, err=%s " - "(ignored)\n", sc->sc_name, usbd_errstr(err)); + DPRINTF(sc, 0, "device request failed, err=%s " + "(ignored)\n", usbd_errstr(err)); + + /* wait a little before next try */ + if (usbd_config_td_sleep(&(sc->sc_config_td), hz/4)) { + goto error; + } + + /* try until we are detached */ + goto repeat; error: + /* the device has been detached */ length = UGETW(req->wLength); if ((req->bmRequestType & UT_READ) && length) { @@ -652,7 +676,7 @@ static void ural_cfg_eeprom_read(struct ural_softc *sc, u_int16_t addr, - void *buf, int len) + void *buf, uint16_t len) { usb_device_request_t req; @@ -685,7 +709,7 @@ static void ural_cfg_read_multi(struct ural_softc *sc, u_int16_t reg, - void *buf, int len) + void *buf, uint16_t len) { usb_device_request_t req; @@ -716,7 +740,7 @@ static void ural_cfg_write_multi(struct ural_softc *sc, u_int16_t reg, - void *buf, int len) + void *buf, uint16_t len) { usb_device_request_t req; @@ -730,25 +754,40 @@ return; } -static void -ural_cfg_bbp_write(struct ural_softc *sc, u_int8_t reg, u_int8_t val) +static uint8_t +ural_cfg_bbp_disbusy(struct ural_softc *sc) { - u_int16_t tmp; - u_int8_t to; + uint16_t tmp; + uint8_t to; for (to = 0; ; to++) { - if (to < 5) { + if (to < 100) { tmp = ural_cfg_read(sc, RAL_PHY_CSR8); + tmp &= RAL_BBP_BUSY; - if (!(tmp & RAL_BBP_BUSY)) { + if (tmp == 0) { + return 0; + } + + if (usbd_config_td_sleep(&(sc->sc_config_td), hz/100)) { break; } } else { - printf("%s: could not write to BBP\n", - sc->sc_name); - return; + break; } } + DPRINTF(sc, 0, "could not disbusy BBP\n"); + return 1; /* failure */ +} + +static void +ural_cfg_bbp_write(struct ural_softc *sc, u_int8_t reg, u_int8_t val) +{ + u_int16_t tmp; + + if (ural_cfg_bbp_disbusy(sc)) { + return; + } tmp = (reg << 8) | val; ural_cfg_write(sc, RAL_PHY_CSR7, tmp); @@ -759,24 +798,18 @@ ural_cfg_bbp_read(struct ural_softc *sc, u_int8_t reg) { u_int16_t val; - u_int8_t to; + + if (ural_cfg_bbp_disbusy(sc)) { + return 0; + } val = RAL_BBP_WRITE | (reg << 8); ural_cfg_write(sc, RAL_PHY_CSR7, val); - for (to = 0; ; to++) { - if (to < 5) { - val = ural_cfg_read(sc, RAL_PHY_CSR8); + if (ural_cfg_bbp_disbusy(sc)) { + return 0; + } - if (!(val & RAL_BBP_BUSY)) { - break; - } - } else { - printf("%s: could not read BBP\n", - sc->sc_name); - return 0; - } - } return (ural_cfg_read(sc, RAL_PHY_CSR7) & 0xff); } @@ -788,16 +821,23 @@ reg &= 3; + /* remember last written value */ + sc->sc_rf_regs[reg] = val; + for (to = 0; ; to++) { - if (to < 5) { + if (to < 100) { tmp = ural_cfg_read(sc, RAL_PHY_CSR10); if (!(tmp & RAL_RF_LOBUSY)) { break; } + + if (usbd_config_td_sleep(&(sc->sc_config_td), hz/100)) { + return; + } + } else { - printf("%s: could not write to RF\n", - sc->sc_name); + DPRINTF(sc, 0, "could not write to RF\n"); return; } } @@ -806,9 +846,6 @@ ural_cfg_write(sc, RAL_PHY_CSR9, tmp & 0xffff); ural_cfg_write(sc, RAL_PHY_CSR10, tmp >> 16); - /* remember last written value in sc */ - sc->sc_rf_regs[reg] = val; - DPRINTF(sc, 15, "RF R[%u] <- 0x%05x\n", reg, val & 0xfffff); return; } @@ -821,6 +858,16 @@ struct ifnet *ifp; register u_int16_t i; + /* setup RX tap header */ + sc->sc_rxtap_len = sizeof(sc->sc_rxtap.h); + sc->sc_rxtap.h.wr_ihdr.it_len = htole16(sc->sc_rxtap_len); + sc->sc_rxtap.h.wr_ihdr.it_present = htole32(RAL_RX_RADIOTAP_PRESENT); + + /* setup TX tap header */ + sc->sc_txtap_len = sizeof(sc->sc_txtap.h); + sc->sc_txtap.h.wt_ihdr.it_len = htole16(sc->sc_txtap_len); + sc->sc_txtap.h.wt_ihdr.it_present = htole32(RAL_TX_RADIOTAP_PRESENT); + /* retrieve RT2570 rev. no */ sc->sc_asic_rev = ural_cfg_read(sc, RAL_MAC_CSR0); @@ -837,8 +884,7 @@ mtx_lock(&(sc->sc_mtx)); if (ifp == NULL) { - printf("%s: could not if_alloc()!\n", - sc->sc_name); + DPRINTF(sc, -1, "could not if_alloc()!\n"); goto done; } @@ -860,6 +906,7 @@ ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ ic->ic_opmode = IEEE80211_M_STA; /* default to BSS mode */ ic->ic_state = IEEE80211_S_INIT; + ic->ic_reset = &ural_reset_cb; /* set device capabilities */ ic->ic_caps = @@ -913,8 +960,6 @@ mtx_lock(&(sc->sc_mtx)); - ic->ic_reset = &ural_reset_cb; - /* enable SW bmiss handling in sta mode */ #if (defined(IEEE80211_FEXT_SWBMISS) || (__FreeBSD_version >= 700022)) ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS; @@ -931,19 +976,11 @@ bpfattach2(ifp, DLT_IEEE802_11_RADIO, sizeof(struct ieee80211_frame) + 64, &sc->sc_drvbpf); - mtx_lock(&(sc->sc_mtx)); - - sc->sc_rxtap_len = sizeof(sc->sc_rxtap.h); - sc->sc_rxtap.h.wr_ihdr.it_len = htole16(sc->sc_rxtap_len); - sc->sc_rxtap.h.wr_ihdr.it_present = htole32(RAL_RX_RADIOTAP_PRESENT); - - sc->sc_txtap_len = sizeof(sc->sc_txtap.h); - sc->sc_txtap.h.wt_ihdr.it_len = htole16(sc->sc_txtap_len); - sc->sc_txtap.h.wt_ihdr.it_present = htole32(RAL_TX_RADIOTAP_PRESENT); - if (bootverbose) { ieee80211_announce(ic); } + + mtx_lock(&(sc->sc_mtx)); done: return; } @@ -1087,6 +1124,7 @@ struct mbuf *m = NULL; u_int32_t flags; u_int32_t max_len; + uint8_t rssi; USBD_CHECK_STATUS(xfer); @@ -1099,6 +1137,9 @@ return; tr_transferred: + + DPRINTF(sc, 14, "rx done, actlen=%d\n", xfer->actlen); + if (xfer->actlen < (RAL_RX_DESC_SIZE + IEEE80211_MIN_LEN)) { DPRINTF(sc, 0, "too short transfer, " "%d bytes\n", xfer->actlen); @@ -1123,8 +1164,7 @@ flags = le32toh(sc->sc_rx_desc.flags); - if ((flags & RAL_RX_PHY_ERROR) || - (flags & RAL_RX_CRC_ERROR)) { + if (flags & (RAL_RX_PHY_ERROR|RAL_RX_CRC_ERROR)) { /* * This should not happen since we did not * request to receive those frames when we @@ -1161,17 +1201,26 @@ bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_rxtap_len, m); } + rssi = sc->sc_rx_desc.rssi; + ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *) (m->m_data)); + mtx_unlock(&(sc->sc_mtx)); + + /* XXX it is possibly not safe + * to do the following unlocked: + * --hps + */ + /* send the frame to the 802.11 layer */ - ieee80211_input(ic, m, ni, sc->sc_rx_desc.rssi, 0); + ieee80211_input(ic, m, ni, rssi, 0); + + mtx_lock(&(sc->sc_mtx)); /* node is no longer needed */ ieee80211_free_node(ni); - DPRINTF(sc, 14, "rx done\n"); - m = NULL; tr_setup: @@ -1211,8 +1260,7 @@ tr_error: /* bomb out */ sc->sc_flags &= ~URAL_FLAG_READ_STALL; - printf("%s: bulk read pipe stopped\n", - sc->sc_name); + DPRINTF(sc, -1, "bulk read pipe stopped\n"); return; } @@ -1331,10 +1379,8 @@ sc->sc_tx_desc.wme = htole16(RAL_AIFSN(2) | RAL_LOGCWMIN(3) | - RAL_LOGCWMAX(5)); - sc->sc_tx_desc.wme |= htole16(RAL_IVOFFSET - (sizeof(struct ieee80211_frame))); - + RAL_LOGCWMAX(5) | + RAL_IVOFFSET(sizeof(struct ieee80211_frame))); /* setup PLCP fields */ sc->sc_tx_desc.plcp_signal = ural_plcp_signal(rate); sc->sc_tx_desc.plcp_service = 4; @@ -1371,12 +1417,74 @@ return; } -#define RAL_TX_TIMEOUT 5000 /* ms */ - /*------------------------------------------------------------------------* * ural_bulk_write_callback - data write "thread" *------------------------------------------------------------------------*/ static void +ural_bulk_write_callback_sub(struct usbd_xfer *xfer, struct mbuf *m0, + struct ieee80211_node *ni, uint32_t flags, + uint16_t rate) +{ + struct ural_softc *sc = xfer->priv_sc; + struct ieee80211com *ic = &(sc->sc_ic); + + if (m0->m_pkthdr.len > MCLBYTES) { + DPRINTF(sc, 0, "data overflow, %u bytes\n", + m0->m_pkthdr.len); + m0->m_pkthdr.len = MCLBYTES; + } + + if (sc->sc_drvbpf != NULL) { + struct ural_tx_radiotap_header *tap = &(sc->sc_txtap.h); + + tap->wt_flags = 0; + tap->wt_rate = rate; + tap->wt_chan_freq = htole16(ic->ic_curchan->ic_freq); + tap->wt_chan_flags = htole16(ic->ic_curchan->ic_flags); + tap->wt_antenna = sc->sc_tx_ant; + + bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m0); + } + + ural_setup_tx_desc(sc, flags, m0->m_pkthdr.len, rate); + + usbd_copy_in(&(xfer->buf_data), 0, &(sc->sc_tx_desc), + RAL_TX_DESC_SIZE); + + usbd_m_copy_in(&(xfer->buf_data), RAL_TX_DESC_SIZE, + m0, 0, m0->m_pkthdr.len); + + /* compute transfer length */ + xfer->length = (RAL_TX_DESC_SIZE + m0->m_pkthdr.len + 2); + + /* make transfer length 16-bit aligned */ + if (xfer->length & 1) { + /* zero the extra byte */ + usbd_bzero(&(xfer->buf_data), xfer->length, 1); + xfer->length ++; + } + + /* check if we need to add two extra bytes */ + if ((xfer->length % 64) == 0) { + /* zero the extra bytes */ + usbd_bzero(&(xfer->buf_data), xfer->length, 2); + xfer->length += 2; + } + + DPRINTF(sc, 10, "sending frame len=%u rate=%u xfer len=%u\n", + m0->m_pkthdr.len, rate, xfer->length); + + m_freem(m0); + + if (ni) { + ieee80211_free_node(ni); + } + + usbd_start_hardware(xfer); + return; +} + +static void ural_bulk_write_callback(struct usbd_xfer *xfer) { struct ural_softc *sc = xfer->priv_sc; @@ -1404,7 +1512,6 @@ } ifp->if_oerrors++; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; return; @@ -1412,14 +1519,11 @@ DPRINTF(sc, 10, "transfer complete\n"); ifp->if_opackets++; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_tx_timer = 0; - tr_setup: if (sc->sc_flags & URAL_FLAG_WRITE_STALL) { usbd_transfer_start(sc->sc_xfer[2]); - goto out_active; + goto done; } if (sc->sc_flags & URAL_FLAG_WAIT_COMMAND) { @@ -1435,23 +1539,23 @@ usbd_bzero(&(xfer->buf_data), 0, 1); xfer->length = 1; /* bytes */ - xfer->timeout = 1000; /* ms */ usbd_start_hardware(xfer); - goto out_active; + goto done; } if (sc->sc_flags & URAL_FLAG_SEND_BCN_FRAME) { sc->sc_flags &= ~URAL_FLAG_SEND_BCN_FRAME; - flags = sc->sc_bcn_flags; - rate = sc->sc_bcn_rate; m0 = sc->sc_bcn_mbuf; + sc->sc_bcn_mbuf = NULL; - ural_tx_bcn_complete(sc); + ural_bulk_write_callback_sub + (xfer, m0, NULL, sc->sc_bcn_flags, sc->sc_bcn_rate); + goto done; + } - goto transmit_frame; - } + flags = 0; IF_DEQUEUE(&(ic->ic_mgtq), m0); @@ -1464,7 +1568,6 @@ bpf_mtap(ic->ic_rawbpf, m0); } - flags = 0; rate = (IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan) ? 12 : 2); wh = mtod(m0, struct ieee80211_frame *); @@ -1485,63 +1588,8 @@ } } - transmit_frame: - - if (m0->m_pkthdr.len > MCLBYTES) { - DPRINTF(sc, 0, "data overflow, %u bytes\n", - m0->m_pkthdr.len); - m0->m_pkthdr.len = MCLBYTES; - } - - if (sc->sc_drvbpf != NULL) { - struct ural_tx_radiotap_header *tap = &(sc->sc_txtap.h); - - tap->wt_flags = 0; - tap->wt_rate = rate; - tap->wt_chan_freq = htole16(ic->ic_curchan->ic_freq); - tap->wt_chan_flags = htole16(ic->ic_curchan->ic_flags); - tap->wt_antenna = sc->sc_tx_ant; - - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m0); - } - - ural_setup_tx_desc(sc, flags, m0->m_pkthdr.len, rate); - - usbd_copy_in(&(xfer->buf_data), 0, &(sc->sc_tx_desc), - RAL_TX_DESC_SIZE); - - usbd_m_copy_in(&(xfer->buf_data), RAL_TX_DESC_SIZE, - m0, 0, m0->m_pkthdr.len); - - /* align end on a 2-bytes boundary */ - xfer->length = (RAL_TX_DESC_SIZE + m0->m_pkthdr.len + 1) & ~1; - - /* - * No space left in the last URB to store the - * extra 2 bytes, force sending of another URB: - */ - if ((xfer->length % 64) == 0) { - xfer->length += 2; - } - - /* zero the extra bytes */ - - usbd_bzero(&(xfer->buf_data), RAL_TX_DESC_SIZE + m0->m_pkthdr.len, - xfer->length - (RAL_TX_DESC_SIZE + m0->m_pkthdr.len)); - - xfer->timeout = RAL_TX_TIMEOUT; - - DPRINTF(sc, 10, "sending frame len=%u rate=%u xfer len=%u\n", - m0->m_pkthdr.len, rate, xfer->length); - - m_freem(m0); - - if (ni) { - ieee80211_free_node(ni); - } - - usbd_start_hardware(xfer); - goto out_active; + ural_bulk_write_callback_sub(xfer, m0, ni, flags, rate); + goto done; } if (ic->ic_state != IEEE80211_S_RUN) { @@ -1580,7 +1628,6 @@ wh = mtod(m0, struct ieee80211_frame *); - flags = 0; rate = ((ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) ? ic->ic_bss->ni_rates.rs_rates[ic->ic_fixed_rate] : ni->ni_rates.rs_rates[ni->ni_txrate]); @@ -1606,15 +1653,9 @@ *(u_int16_t *)(wh->i_dur) = htole16(dur); } - goto transmit_frame; + ural_bulk_write_callback_sub(xfer, m0, ni, flags, rate); + goto done; } - - goto done; - - out_active: - ifp->if_drv_flags |= IFF_DRV_OACTIVE; - sc->sc_tx_timer = (5*8); - done: return; @@ -1657,8 +1698,7 @@ tr_error: /* bomb out */ sc->sc_flags &= ~URAL_FLAG_WRITE_STALL; - printf("%s: bulk write pipe stopped\n", - sc->sc_name); + DPRINTF(sc, -1, "bulk write pipe stopped\n"); return; } @@ -1678,15 +1718,6 @@ &ural_cfg_amrr_timeout, 0, 0); } - if ((sc->sc_tx_timer) && - (--sc->sc_tx_timer == 0)) { - - printf("%s: device timeout\n", sc->sc_name); - usbd_config_td_queue_command - (&(sc->sc_config_td), &ural_cfg_pre_init, - &ural_cfg_init, 0, 0); - } - if ((sc->sc_if_timer) && (--sc->sc_if_timer == 0)) { @@ -1761,7 +1792,13 @@ break; default: + /* XXX it is possibly not safe + * to do the following unlocked: + * --hps + */ + mtx_unlock(&(sc->sc_mtx)); error = ieee80211_ioctl(ic, cmd, data); + mtx_lock(&(sc->sc_mtx)); } if (error == ENETRESET) { @@ -1859,11 +1896,18 @@ ural_newstate_cb(struct ieee80211com *ic, enum ieee80211_state nstate, int arg) { struct ural_softc *sc = ic->ic_ifp->if_softc; + enum ieee80211_state ostate = sc->sc_ic.ic_state; mtx_lock(&(sc->sc_mtx)); DPRINTF(sc, 0, "setting new state: %d\n", nstate); + /* force data to wait */ + sc->sc_flags |= URAL_FLAG_WAIT_COMMAND; + + /* set new state first! */ + (sc->sc_newstate)(ic, nstate, arg); + /* stop timers */ sc->sc_amrr_timer = 0; @@ -1874,7 +1918,7 @@ switch (nstate) { case IEEE80211_S_INIT: - if (sc->sc_ic.ic_state == IEEE80211_S_RUN) { + if (ostate == IEEE80211_S_RUN) { usbd_config_td_queue_command (&(sc->sc_config_td), &ural_config_copy, &ural_cfg_disable_tsf_sync, 0, 0); @@ -1908,8 +1952,6 @@ break; } - (sc->sc_newstate)(ic, nstate, arg); - mtx_unlock(&(sc->sc_mtx)); return 0; @@ -1950,8 +1992,8 @@ m = ieee80211_beacon_alloc(ic, ni, &sc->sc_bo); if (m == NULL) { - printf("%s: could not allocate " - "beacon frame\n", sc->sc_name); + DPRINTF(sc, -1, "could not allocate " + "beacon frame\n"); return; } @@ -2079,11 +2121,12 @@ /* clear CRC errors */ ural_cfg_read(sc, RAL_STA_CSR0); - /* wait a little */ - usbd_config_td_sleep(&(sc->sc_config_td), hz/100); - ural_cfg_disable_rf_tune(sc); } + + /* wait a little */ + usbd_config_td_sleep(&(sc->sc_config_td), hz/100); + return; } @@ -2273,19 +2316,10 @@ } static void -ural_cfg_set_bssid(struct ural_softc *sc, const u_int8_t *bssid) +ural_cfg_set_bssid(struct ural_softc *sc, uint8_t *bssid) { - u_int16_t tmp; - - tmp = bssid[0] | (bssid[1] << 8); - ural_cfg_write(sc, RAL_MAC_CSR5, tmp); - - tmp = bssid[2] | (bssid[3] << 8); - ural_cfg_write(sc, RAL_MAC_CSR6, tmp); + ural_cfg_write_multi(sc, RAL_MAC_CSR5, bssid, IEEE80211_ADDR_LEN); - tmp = bssid[4] | (bssid[5] << 8); - ural_cfg_write(sc, RAL_MAC_CSR7, tmp); - DPRINTF(sc, 0, "setting BSSID to 0x%02x%02x%02x%02x%02x%02x\n", bssid[5], bssid[4], bssid[3], bssid[2], bssid[1], bssid[0]); @@ -2293,18 +2327,9 @@ } static void -ural_cfg_set_macaddr(struct ural_softc *sc, const u_int8_t *addr) +ural_cfg_set_macaddr(struct ural_softc *sc, uint8_t *addr) { - u_int16_t tmp; - - tmp = addr[0] | (addr[1] << 8); - ural_cfg_write(sc, RAL_MAC_CSR2, tmp); - - tmp = addr[2] | (addr[3] << 8); - ural_cfg_write(sc, RAL_MAC_CSR3, tmp); - - tmp = addr[4] | (addr[5] << 8); - ural_cfg_write(sc, RAL_MAC_CSR4, tmp); + ural_cfg_write_multi(sc, RAL_MAC_CSR2, addr, IEEE80211_ADDR_LEN); DPRINTF(sc, 0, "setting MAC to 0x%02x%02x%02x%02x%02x%02x\n", addr[5], addr[4], addr[3], @@ -2432,7 +2457,7 @@ /* wait for BBP to become ready */ for (to = 0; ; to++) { - if (to < 10) { + if (to < 100) { if (ural_cfg_bbp_read(sc, RAL_BBP_VERSION) != 0) { break; } @@ -2440,8 +2465,7 @@ break; } } else { - printf("%s: timeout waiting for BBP\n", - sc->sc_name); + DPRINTF(sc, 0, "timeout waiting for BBP\n"); return 1; /* failure */ } } @@ -2476,7 +2500,6 @@ ural_cfg_pre_stop(sc, cc, 0); - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; ifp->if_drv_flags |= IFF_DRV_RUNNING; sc->sc_flags |= URAL_FLAG_HL_READY; @@ -2518,7 +2541,7 @@ /* wait for BBP and RF to wake up (this can take a long time!) */ for (to = 0; ; to++) { - if (to < 10) { + if (to < 100) { tmp = ural_cfg_read(sc, RAL_MAC_CSR17); if ((tmp & (RAL_BBP_AWAKE | RAL_RF_AWAKE)) == (RAL_BBP_AWAKE | RAL_RF_AWAKE)) { @@ -2528,8 +2551,8 @@ break; } } else { - printf("%s: timeout waiting for " - "BBP/RF to wakeup\n", sc->sc_name); + DPRINTF(sc, 0, "timeout waiting for " + "BBP/RF to wakeup\n"); goto fail; } } @@ -2564,8 +2587,7 @@ */ for (i = 0; i < IEEE80211_WEP_NKID; i++) { ural_cfg_write_multi - (sc, ((cc->ic_crypto.cs_nw_keys[i].wk_keyix * - IEEE80211_KEYBUF_SIZE) + RAL_SEC_CSR0), + (sc, ((i * IEEE80211_KEYBUF_SIZE) + RAL_SEC_CSR0), cc->ic_crypto.cs_nw_keys[i].wk_key, IEEE80211_KEYBUF_SIZE); } @@ -2634,12 +2656,10 @@ ieee80211_new_state(ic, IEEE80211_S_INIT, -1); /* clear flags */ - ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | - IFF_DRV_OACTIVE); + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; } /* stop timers */ - sc->sc_tx_timer = 0; sc->sc_if_timer = 0; sc->sc_flags &= ~(URAL_FLAG_HL_READY| @@ -2648,18 +2668,10 @@ /* stop all the transfers, * if not already stopped: */ - if (sc->sc_xfer[0]) { - usbd_transfer_stop(sc->sc_xfer[0]); - } - if (sc->sc_xfer[1]) { - usbd_transfer_stop(sc->sc_xfer[1]); - } - if (sc->sc_xfer[2]) { - usbd_transfer_stop(sc->sc_xfer[2]); - } - if (sc->sc_xfer[3]) { - usbd_transfer_stop(sc->sc_xfer[3]); - } + usbd_transfer_stop(sc->sc_xfer[0]); + usbd_transfer_stop(sc->sc_xfer[1]); + usbd_transfer_stop(sc->sc_xfer[2]); + usbd_transfer_stop(sc->sc_xfer[3]); /* stop transmission of * beacon frame, if any: @@ -2678,8 +2690,16 @@ /* reset ASIC and BBP (but won't reset MAC registers!) */ ural_cfg_write(sc, RAL_MAC_CSR1, RAL_RESET_ASIC | RAL_RESET_BBP); + + /* wait a little */ + usbd_config_td_sleep(&(sc->sc_config_td), hz/10); + + /* clear reset */ ural_cfg_write(sc, RAL_MAC_CSR1, 0); + /* wait a little */ + usbd_config_td_sleep(&(sc->sc_config_td), hz/10); + return; } @@ -2703,7 +2723,7 @@ i = ni->ni_rates.rs_nrates; while(i) { i--; - if ((ni->ni_rates.rs_rates[i] & IEEE80211_RATE_VAL) > 72) break; + if ((ni->ni_rates.rs_rates[i] & IEEE80211_RATE_VAL) <= 72) break; } ni->ni_txrate = i; ==== //depot/projects/usb/src/sys/dev/usb/if_uralreg.h#10 (text+ko) ==== @@ -151,6 +151,7 @@ struct ural_tx_desc { uint32_t flags; +#define RAL_TX_PACKET_ID(x) ((x) & 0xf) #define RAL_TX_RETRY(x) ((x) << 4) #define RAL_TX_MORE_FRAG (1 << 8) #define RAL_TX_ACK (1 << 9) ==== //depot/projects/usb/src/sys/dev/usb/if_uralvar.h#13 (text+ko) ==== @@ -119,10 +119,10 @@ struct mtx sc_mtx; struct __callout sc_watchdog; struct ural_bbp_prom sc_bbp_prom[16]; - struct usbd_xfer *sc_xfer[URAL_N_TRANSFER]; union ural_rxtap sc_rxtap; union ural_txtap sc_txtap; + struct usbd_xfer *sc_xfer[URAL_N_TRANSFER]; struct mbuf *sc_bcn_mbuf; struct ifnet *sc_ifp; struct bpf_if *sc_drvbpf; @@ -131,8 +131,6 @@ int (*sc_newstate) (struct ieee80211com *, enum ieee80211_state, int); - enum ieee80211_state sc_state; - uint32_t sc_bcn_flags; uint32_t sc_unit; uint32_t sc_asic_rev; @@ -159,7 +157,6 @@ uint8_t sc_tx_ant; uint8_t sc_nb_ant; uint8_t sc_if_timer; - uint8_t sc_tx_timer; uint8_t sc_scan_timer; uint8_t sc_amrr_timer; uint8_t sc_name[32]; ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#9 (text+ko) ==== @@ -330,6 +330,7 @@ vendor PROLIFIC 0x067b Prolific vendor SIEMENS 0x067c Siemens vendor AVANCELOGIC 0x0680 Avance Logic >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Apr 23 22:58:00 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1554416A404; Mon, 23 Apr 2007 22:58:00 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C924A16A402 for ; Mon, 23 Apr 2007 22:57:59 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id B977413C448 for ; Mon, 23 Apr 2007 22:57:59 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3NMvxK0072061 for ; Mon, 23 Apr 2007 22:57:59 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3NMvx9n072058 for perforce@freebsd.org; Mon, 23 Apr 2007 22:57:59 GMT (envelope-from scottl@freebsd.org) Date: Mon, 23 Apr 2007 22:57:59 GMT Message-Id: <200704232257.l3NMvx9n072058@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 118684 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2007 22:58:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=118684 Change 118684 by scottl@scottl-x64 on 2007/04/23 22:57:58 Split out the probe periph into scsi/scsi_probe.c. Put the quirk table and function into scsi/scsi_xpt.c. Move needed structure and function definitions into scsi_probe.h and scsi_xpt.h. This will be refined as the SCSI transport separation continues. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#62 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#9 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_probe.c#6 add .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#1 add .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.h#1 add .. //depot/projects/scottl-camlock/src/sys/conf/files#22 edit .. //depot/projects/scottl-camlock/src/sys/modules/cam/Makefile#10 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#62 (text+ko) ==== @@ -65,6 +65,8 @@ #include #include #include +#include +#include #include /* for xpt_print below */ #include "opt_cam.h" @@ -90,9 +92,6 @@ void *callback_arg; }; -SLIST_HEAD(async_list, async_node); -SLIST_HEAD(periph_list, cam_periph); - /* * This is the maximum number of high powered commands (e.g. start unit) * that can be outstanding at a particular time. @@ -101,119 +100,6 @@ #define CAM_MAX_HIGHPOWER 4 #endif -/* - * Structure for queueing a device in a run queue. - * There is one run queue for allocating new ccbs, - * and another for sending ccbs to the controller. - */ -struct cam_ed_qinfo { - cam_pinfo pinfo; - struct cam_ed *device; -}; - -/* - * The CAM EDT (Existing Device Table) contains the device information for - * all devices for all busses in the system. The table contains a - * cam_ed structure for each device on the bus. - */ -struct cam_ed { - TAILQ_ENTRY(cam_ed) links; - struct cam_ed_qinfo alloc_ccb_entry; - struct cam_ed_qinfo send_ccb_entry; - struct cam_et *target; - struct cam_sim *sim; - lun_id_t lun_id; - struct camq drvq; /* - * Queue of type drivers wanting to do - * work on this device. - */ - struct cam_ccbq ccbq; /* Queue of pending ccbs */ - struct async_list asyncs; /* Async callback info for this B/T/L */ - struct periph_list periphs; /* All attached devices */ - u_int generation; /* Generation number */ - struct xpt_quirk_entry *quirk; /* Oddities about this device */ - /* Storage for the inquiry data */ - cam_proto protocol; - u_int protocol_version; - cam_xport transport; - u_int transport_version; - struct scsi_inquiry_data inq_data; - u_int8_t inq_flags; /* - * Current settings for inquiry flags. - * This allows us to override settings - * like disconnection and tagged - * queuing for a device. - */ - u_int8_t queue_flags; /* Queue flags from the control page */ - u_int8_t serial_num_len; - u_int8_t *serial_num; - u_int32_t qfrozen_cnt; - u_int32_t flags; -#define CAM_DEV_UNCONFIGURED 0x01 -#define CAM_DEV_REL_TIMEOUT_PENDING 0x02 -#define CAM_DEV_REL_ON_COMPLETE 0x04 -#define CAM_DEV_REL_ON_QUEUE_EMPTY 0x08 -#define CAM_DEV_RESIZE_QUEUE_NEEDED 0x10 -#define CAM_DEV_TAG_AFTER_COUNT 0x20 -#define CAM_DEV_INQUIRY_DATA_VALID 0x40 -#define CAM_DEV_IN_DV 0x80 -#define CAM_DEV_DV_HIT_BOTTOM 0x100 - u_int32_t tag_delay_count; -#define CAM_TAG_DELAY_COUNT 5 - u_int32_t tag_saved_openings; - u_int32_t refcount; - struct callout callout; -}; - -/* - * Each target is represented by an ET (Existing Target). These - * entries are created when a target is successfully probed with an - * identify, and removed when a device fails to respond after a number - * of retries, or a bus rescan finds the device missing. - */ -struct cam_et { - TAILQ_HEAD(, cam_ed) ed_entries; - TAILQ_ENTRY(cam_et) links; - struct cam_eb *bus; - target_id_t target_id; - u_int32_t refcount; - u_int generation; - struct timeval last_reset; -}; - -/* - * Each bus is represented by an EB (Existing Bus). These entries - * are created by calls to xpt_bus_register and deleted by calls to - * xpt_bus_deregister. - */ -struct cam_eb { - TAILQ_HEAD(, cam_et) et_entries; - TAILQ_ENTRY(cam_eb) links; - path_id_t path_id; - struct cam_sim *sim; - struct timeval last_reset; - u_int32_t refcount; - u_int generation; -}; - -struct cam_path { - struct cam_periph *periph; - struct cam_eb *bus; - struct cam_et *target; - struct cam_ed *device; -}; - -struct xpt_quirk_entry { - struct scsi_inquiry_pattern inq_pat; - u_int8_t quirks; -#define CAM_QUIRK_NOLUNS 0x01 -#define CAM_QUIRK_NOSERIAL 0x02 -#define CAM_QUIRK_HILUNS 0x04 -#define CAM_QUIRK_NOHILUNS 0x08 - u_int mintags; - u_int maxtags; -}; - static int cam_srch_hi = 0; TUNABLE_INT("kern.cam.cam_srch_hi", &cam_srch_hi); static int sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS); @@ -264,370 +150,6 @@ struct mtx xpt_lock; }; -static const char quantum[] = "QUANTUM"; -static const char sony[] = "SONY"; -static const char west_digital[] = "WDIGTL"; -static const char samsung[] = "SAMSUNG"; -static const char seagate[] = "SEAGATE"; -static const char microp[] = "MICROP"; - -static struct xpt_quirk_entry xpt_quirk_table[] = -{ - { - /* Reports QUEUE FULL for temporary resource shortages */ - { T_DIRECT, SIP_MEDIA_FIXED, quantum, "XP39100*", "*" }, - /*quirks*/0, /*mintags*/24, /*maxtags*/32 - }, - { - /* Reports QUEUE FULL for temporary resource shortages */ - { T_DIRECT, SIP_MEDIA_FIXED, quantum, "XP34550*", "*" }, - /*quirks*/0, /*mintags*/24, /*maxtags*/32 - }, - { - /* Reports QUEUE FULL for temporary resource shortages */ - { T_DIRECT, SIP_MEDIA_FIXED, quantum, "XP32275*", "*" }, - /*quirks*/0, /*mintags*/24, /*maxtags*/32 - }, - { - /* Broken tagged queuing drive */ - { T_DIRECT, SIP_MEDIA_FIXED, microp, "4421-07*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* Broken tagged queuing drive */ - { T_DIRECT, SIP_MEDIA_FIXED, "HP", "C372*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* Broken tagged queuing drive */ - { T_DIRECT, SIP_MEDIA_FIXED, microp, "3391*", "x43h" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Unfortunately, the Quantum Atlas III has the same - * problem as the Atlas II drives above. - * Reported by: "Johan Granlund" - * - * For future reference, the drive with the problem was: - * QUANTUM QM39100TD-SW N1B0 - * - * It's possible that Quantum will fix the problem in later - * firmware revisions. If that happens, the quirk entry - * will need to be made specific to the firmware revisions - * with the problem. - * - */ - /* Reports QUEUE FULL for temporary resource shortages */ - { T_DIRECT, SIP_MEDIA_FIXED, quantum, "QM39100*", "*" }, - /*quirks*/0, /*mintags*/24, /*maxtags*/32 - }, - { - /* - * 18 Gig Atlas III, same problem as the 9G version. - * Reported by: Andre Albsmeier - * - * - * For future reference, the drive with the problem was: - * QUANTUM QM318000TD-S N491 - */ - /* Reports QUEUE FULL for temporary resource shortages */ - { T_DIRECT, SIP_MEDIA_FIXED, quantum, "QM318000*", "*" }, - /*quirks*/0, /*mintags*/24, /*maxtags*/32 - }, - { - /* - * Broken tagged queuing drive - * Reported by: Bret Ford - * and: Martin Renters - */ - { T_DIRECT, SIP_MEDIA_FIXED, seagate, "ST410800*", "71*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - /* - * The Seagate Medalist Pro drives have very poor write - * performance with anything more than 2 tags. - * - * Reported by: Paul van der Zwan - * Drive: - * - * Reported by: Jeremy Lea - * Drive: - * - * No one has actually reported that the 9G version - * (ST39140*) of the Medalist Pro has the same problem, but - * we're assuming that it does because the 4G and 6.5G - * versions of the drive are broken. - */ - { - { T_DIRECT, SIP_MEDIA_FIXED, seagate, "ST34520*", "*"}, - /*quirks*/0, /*mintags*/2, /*maxtags*/2 - }, - { - { T_DIRECT, SIP_MEDIA_FIXED, seagate, "ST36530*", "*"}, - /*quirks*/0, /*mintags*/2, /*maxtags*/2 - }, - { - { T_DIRECT, SIP_MEDIA_FIXED, seagate, "ST39140*", "*"}, - /*quirks*/0, /*mintags*/2, /*maxtags*/2 - }, - { - /* - * Slow when tagged queueing is enabled. Write performance - * steadily drops off with more and more concurrent - * transactions. Best sequential write performance with - * tagged queueing turned off and write caching turned on. - * - * PR: kern/10398 - * Submitted by: Hideaki Okada - * Drive: DCAS-34330 w/ "S65A" firmware. - * - * The drive with the problem had the "S65A" firmware - * revision, and has also been reported (by Stephen J. - * Roznowski ) for a drive with the "S61A" - * firmware revision. - * - * Although no one has reported problems with the 2 gig - * version of the DCAS drive, the assumption is that it - * has the same problems as the 4 gig version. Therefore - * this quirk entries disables tagged queueing for all - * DCAS drives. - */ - { T_DIRECT, SIP_MEDIA_FIXED, "IBM", "DCAS*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* Broken tagged queuing drive */ - { T_DIRECT, SIP_MEDIA_REMOVABLE, "iomega", "jaz*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* Broken tagged queuing drive */ - { T_DIRECT, SIP_MEDIA_FIXED, "CONNER", "CFP2107*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* This does not support other than LUN 0 */ - { T_DIRECT, SIP_MEDIA_FIXED, "VMware*", "*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/2, /*maxtags*/255 - }, - { - /* - * Broken tagged queuing drive. - * Submitted by: - * NAKAJI Hiroyuki - * in PR kern/9535 - */ - { T_DIRECT, SIP_MEDIA_FIXED, samsung, "WN34324U*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Slow when tagged queueing is enabled. (1.5MB/sec versus - * 8MB/sec.) - * Submitted by: Andrew Gallatin - * Best performance with these drives is achieved with - * tagged queueing turned off, and write caching turned on. - */ - { T_DIRECT, SIP_MEDIA_FIXED, west_digital, "WDE*", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Slow when tagged queueing is enabled. (1.5MB/sec versus - * 8MB/sec.) - * Submitted by: Andrew Gallatin - * Best performance with these drives is achieved with - * tagged queueing turned off, and write caching turned on. - */ - { T_DIRECT, SIP_MEDIA_FIXED, west_digital, "ENTERPRISE", "*" }, - /*quirks*/0, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Doesn't handle queue full condition correctly, - * so we need to limit maxtags to what the device - * can handle instead of determining this automatically. - */ - { T_DIRECT, SIP_MEDIA_FIXED, samsung, "WN321010S*", "*" }, - /*quirks*/0, /*mintags*/2, /*maxtags*/32 - }, - { - /* Really only one LUN */ - { T_ENCLOSURE, SIP_MEDIA_FIXED, "SUN", "SENA", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* I can't believe we need a quirk for DPT volumes. */ - { T_ANY, SIP_MEDIA_FIXED|SIP_MEDIA_REMOVABLE, "DPT", "*", "*" }, - CAM_QUIRK_NOSERIAL|CAM_QUIRK_NOLUNS, - /*mintags*/0, /*maxtags*/255 - }, - { - /* - * Many Sony CDROM drives don't like multi-LUN probing. - */ - { T_CDROM, SIP_MEDIA_REMOVABLE, sony, "CD-ROM CDU*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * This drive doesn't like multiple LUN probing. - * Submitted by: Parag Patel - */ - { T_WORM, SIP_MEDIA_REMOVABLE, sony, "CD-R CDU9*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - { T_WORM, SIP_MEDIA_REMOVABLE, "YAMAHA", "CDR100*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * The 8200 doesn't like multi-lun probing, and probably - * don't like serial number requests either. - */ - { - T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "EXABYTE", - "EXB-8200*", "*" - }, - CAM_QUIRK_NOSERIAL|CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Let's try the same as above, but for a drive that says - * it's an IPL-6860 but is actually an EXB 8200. - */ - { - T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "EXABYTE", - "IPL-6860*", "*" - }, - CAM_QUIRK_NOSERIAL|CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * These Hitachi drives don't like multi-lun probing. - * The PR submitter has a DK319H, but says that the Linux - * kernel has a similar work-around for the DK312 and DK314, - * so all DK31* drives are quirked here. - * PR: misc/18793 - * Submitted by: Paul Haddad - */ - { T_DIRECT, SIP_MEDIA_FIXED, "HITACHI", "DK31*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/2, /*maxtags*/255 - }, - { - /* - * The Hitachi CJ series with J8A8 firmware apparantly has - * problems with tagged commands. - * PR: 23536 - * Reported by: amagai@nue.org - */ - { T_DIRECT, SIP_MEDIA_FIXED, "HITACHI", "DK32CJ*", "J8A8" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * These are the large storage arrays. - * Submitted by: William Carrel - */ - { T_DIRECT, SIP_MEDIA_FIXED, "HITACHI", "OPEN*", "*" }, - CAM_QUIRK_HILUNS, 2, 1024 - }, - { - /* - * This old revision of the TDC3600 is also SCSI-1, and - * hangs upon serial number probing. - */ - { - T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "TANDBERG", - " TDC 3600", "U07:" - }, - CAM_QUIRK_NOSERIAL, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Maxtor Personal Storage 3000XT (Firewire) - * hangs upon serial number probing. - */ - { - T_DIRECT, SIP_MEDIA_FIXED, "Maxtor", - "1394 storage", "*" - }, - CAM_QUIRK_NOSERIAL, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Would repond to all LUNs if asked for. - */ - { - T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "CALIPER", - "CP150", "*" - }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* - * Would repond to all LUNs if asked for. - */ - { - T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "KENNEDY", - "96X2*", "*" - }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* Submitted by: Matthew Dodd */ - { T_PROCESSOR, SIP_MEDIA_FIXED, "Cabletrn", "EA41*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* Submitted by: Matthew Dodd */ - { T_PROCESSOR, SIP_MEDIA_FIXED, "CABLETRN", "EA41*", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* TeraSolutions special settings for TRC-22 RAID */ - { T_DIRECT, SIP_MEDIA_FIXED, "TERASOLU", "TRC-22", "*" }, - /*quirks*/0, /*mintags*/55, /*maxtags*/255 - }, - { - /* Veritas Storage Appliance */ - { T_DIRECT, SIP_MEDIA_FIXED, "VERITAS", "*", "*" }, - CAM_QUIRK_HILUNS, /*mintags*/2, /*maxtags*/1024 - }, - { - /* - * Would respond to all LUNs. Device type and removable - * flag are jumper-selectable. - */ - { T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED, "MaxOptix", - "Tahiti 1", "*" - }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* EasyRAID E5A aka. areca ARC-6010 */ - { T_DIRECT, SIP_MEDIA_FIXED, "easyRAID", "*", "*" }, - CAM_QUIRK_NOHILUNS, /*mintags*/2, /*maxtags*/255 - }, - { - { T_ENCLOSURE, SIP_MEDIA_FIXED, "DP", "BACKPLANE", "*" }, - CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0 - }, - { - /* Default tagged queuing parameters for all devices */ - { - T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED, - /*vendor*/"*", /*product*/"*", /*revision*/"*" - }, - /*quirks*/0, /*mintags*/2, /*maxtags*/255 - }, -}; - -static const int xpt_quirk_table_size = - sizeof(xpt_quirk_table) / sizeof(*xpt_quirk_table); - typedef enum { DM_RET_COPY = 0x01, DM_RET_FLAG_MASK = 0x0f, @@ -673,22 +195,13 @@ static periph_init_t xpt_periph_init; -static periph_init_t probe_periph_init; - static struct periph_driver xpt_driver = { xpt_periph_init, "xpt", TAILQ_HEAD_INITIALIZER(xpt_driver.units) }; -static struct periph_driver probe_driver = -{ - probe_periph_init, "probe", - TAILQ_HEAD_INITIALIZER(probe_driver.units) -}; - PERIPHDRIVER_DECLARE(xpt, xpt_driver); -PERIPHDRIVER_DECLARE(probe, probe_driver); static d_open_t xptopen; @@ -864,17 +377,6 @@ static xpt_busfunc_t xptsetasyncbusfunc; static cam_status xptregister(struct cam_periph *periph, void *arg); -static cam_status proberegister(struct cam_periph *periph, - void *arg); -static void probeschedule(struct cam_periph *probe_periph); -static void probestart(struct cam_periph *periph, union ccb *start_ccb); -static void proberequestdefaultnegotiation(struct cam_periph *periph); -static int proberequestbackoff(struct cam_periph *periph, - struct cam_ed *device); -static void probedone(struct cam_periph *periph, union ccb *done_ccb); -static void probecleanup(struct cam_periph *periph); -static void xpt_find_quirk(struct cam_ed *device); -static void xpt_devise_transport(struct cam_path *path); static void xpt_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device, int async_update); @@ -975,12 +477,6 @@ } static void -probe_periph_init() -{ -} - - -static void xptdone(struct cam_periph *periph, union ccb *done_ccb) { /* Caller will release the CCB */ @@ -5028,7 +4524,7 @@ * Take the default quirk entry until we have inquiry * data and can determine a better quirk to use. */ - device->quirk = &xpt_quirk_table[xpt_quirk_table_size - 1]; + device->quirk = xpt_default_quirk; bzero(&device->inq_data, sizeof(device->inq_data)); device->inq_flags = 0; device->queue_flags = 0; @@ -5449,33 +4945,6 @@ } } -typedef enum { - PROBE_TUR, - PROBE_INQUIRY, /* this counts as DV0 for Basic Domain Validation */ - PROBE_FULL_INQUIRY, - PROBE_MODE_SENSE, - PROBE_SERIAL_NUM, - PROBE_TUR_FOR_NEGOTIATION, - PROBE_INQUIRY_BASIC_DV1, - PROBE_INQUIRY_BASIC_DV2, - PROBE_DV_EXIT -} probe_action; - -typedef enum { - PROBE_INQUIRY_CKSUM = 0x01, - PROBE_SERIAL_CKSUM = 0x02, - PROBE_NO_ANNOUNCE = 0x04 -} probe_flags; - -typedef struct { - TAILQ_HEAD(, ccb_hdr) request_ccbs; - probe_action action; - union ccb saved_ccb; - probe_flags flags; - MD5_CTX context; - u_int8_t digest[16]; -} probe_softc; - static void xpt_scan_lun(struct cam_periph *periph, struct cam_path *path, cam_flags flags, union ccb *request_ccb) @@ -5545,11 +5014,7 @@ } if ((old_periph = cam_periph_find(path, "probe")) != NULL) { - probe_softc *softc; - - softc = (probe_softc *)old_periph->softc; - TAILQ_INSERT_TAIL(&softc->request_ccbs, &request_ccb->ccb_h, - periph_links.tqe); + probe_insert_ccbq(old_periph, &request_ccb->ccb_h); } else { status = cam_periph_alloc(proberegister, NULL, probecleanup, probestart, "probe", @@ -5574,773 +5039,6 @@ free(done_ccb, M_TEMP); } -static cam_status -proberegister(struct cam_periph *periph, void *arg) -{ - union ccb *request_ccb; /* CCB representing the probe request */ - cam_status status; - probe_softc *softc; - - request_ccb = (union ccb *)arg; - if (periph == NULL) { - printf("proberegister: periph was NULL!!\n"); - return(CAM_REQ_CMP_ERR); - } - - if (request_ccb == NULL) { - printf("proberegister: no probe CCB, " - "can't register device\n"); - return(CAM_REQ_CMP_ERR); - } - - softc = (probe_softc *)malloc(sizeof(*softc), M_TEMP, M_NOWAIT); - - if (softc == NULL) { - printf("proberegister: Unable to probe new device. " - "Unable to allocate softc\n"); - return(CAM_REQ_CMP_ERR); - } - TAILQ_INIT(&softc->request_ccbs); - TAILQ_INSERT_TAIL(&softc->request_ccbs, &request_ccb->ccb_h, - periph_links.tqe); - softc->flags = 0; - periph->softc = softc; - status = cam_periph_acquire(periph); - if (status != CAM_REQ_CMP) { - return (status); - } - - - /* - * Ensure we've waited at least a bus settle - * delay before attempting to probe the device. - * For HBAs that don't do bus resets, this won't make a difference. - */ - cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset, - scsi_delay); - probeschedule(periph); - return(CAM_REQ_CMP); -} - -static void -probeschedule(struct cam_periph *periph) -{ - struct ccb_pathinq cpi; - union ccb *ccb; - probe_softc *softc; - - softc = (probe_softc *)periph->softc; - ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); - - xpt_setup_ccb(&cpi.ccb_h, periph->path, /*priority*/1); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); - - /* - * If a device has gone away and another device, or the same one, - * is back in the same place, it should have a unit attention - * condition pending. It will not report the unit attention in - * response to an inquiry, which may leave invalid transfer - * negotiations in effect. The TUR will reveal the unit attention - * condition. Only send the TUR for lun 0, since some devices - * will get confused by commands other than inquiry to non-existent - * luns. If you think a device has gone away start your scan from - * lun 0. This will insure that any bogus transfer settings are - * invalidated. - * - * If we haven't seen the device before and the controller supports - * some kind of transfer negotiation, negotiate with the first - * sent command if no bus reset was performed at startup. This - * ensures that the device is not confused by transfer negotiation - * settings left over by loader or BIOS action. - */ - if (((ccb->ccb_h.path->device->flags & CAM_DEV_UNCONFIGURED) == 0) - && (ccb->ccb_h.target_lun == 0)) { - softc->action = PROBE_TUR; - } else if ((cpi.hba_inquiry & (PI_WIDE_32|PI_WIDE_16|PI_SDTR_ABLE)) != 0 - && (cpi.hba_misc & PIM_NOBUSRESET) != 0) { - proberequestdefaultnegotiation(periph); - softc->action = PROBE_INQUIRY; - } else { - softc->action = PROBE_INQUIRY; - } - - if (ccb->crcn.flags & CAM_EXPECT_INQ_CHANGE) - softc->flags |= PROBE_NO_ANNOUNCE; - else - softc->flags &= ~PROBE_NO_ANNOUNCE; - - xpt_schedule(periph, ccb->ccb_h.pinfo.priority); -} - -static void -probestart(struct cam_periph *periph, union ccb *start_ccb) -{ - /* Probe the device that our peripheral driver points to */ - struct ccb_scsiio *csio; - probe_softc *softc; - - CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probestart\n")); - - softc = (probe_softc *)periph->softc; - csio = &start_ccb->csio; - - switch (softc->action) { - case PROBE_TUR: - case PROBE_TUR_FOR_NEGOTIATION: - case PROBE_DV_EXIT: - { - scsi_test_unit_ready(csio, - /*retries*/4, - probedone, - MSG_SIMPLE_Q_TAG, - SSD_FULL_SIZE, - /*timeout*/60000); - break; - } - case PROBE_INQUIRY: - case PROBE_FULL_INQUIRY: - case PROBE_INQUIRY_BASIC_DV1: - case PROBE_INQUIRY_BASIC_DV2: - { - u_int inquiry_len; - struct scsi_inquiry_data *inq_buf; - - inq_buf = &periph->path->device->inq_data; - - /* - * If the device is currently configured, we calculate an - * MD5 checksum of the inquiry data, and if the serial number - * length is greater than 0, add the serial number data - * into the checksum as well. Once the inquiry and the - * serial number check finish, we attempt to figure out - * whether we still have the same device. - */ - if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) == 0) { - - MD5Init(&softc->context); - MD5Update(&softc->context, (unsigned char *)inq_buf, - sizeof(struct scsi_inquiry_data)); - softc->flags |= PROBE_INQUIRY_CKSUM; - if (periph->path->device->serial_num_len > 0) { - MD5Update(&softc->context, - periph->path->device->serial_num, - periph->path->device->serial_num_len); - softc->flags |= PROBE_SERIAL_CKSUM; - } - MD5Final(softc->digest, &softc->context); - } - - if (softc->action == PROBE_INQUIRY) - inquiry_len = SHORT_INQUIRY_LENGTH; - else - inquiry_len = SID_ADDITIONAL_LENGTH(inq_buf); - - /* - * Some parallel SCSI devices fail to send an - * ignore wide residue message when dealing with - * odd length inquiry requests. Round up to be - * safe. - */ - inquiry_len = roundup2(inquiry_len, 2); - - if (softc->action == PROBE_INQUIRY_BASIC_DV1 - || softc->action == PROBE_INQUIRY_BASIC_DV2) { - inq_buf = malloc(inquiry_len, M_TEMP, M_NOWAIT); - } - if (inq_buf == NULL) { - xpt_print(periph->path, "malloc failure- skipping Basic" - "Domain Validation\n"); - softc->action = PROBE_DV_EXIT; - scsi_test_unit_ready(csio, - /*retries*/4, - probedone, - MSG_SIMPLE_Q_TAG, - SSD_FULL_SIZE, - /*timeout*/60000); - break; - } - scsi_inquiry(csio, - /*retries*/4, - probedone, - MSG_SIMPLE_Q_TAG, - (u_int8_t *)inq_buf, - inquiry_len, - /*evpd*/FALSE, - /*page_code*/0, - SSD_MIN_SIZE, - /*timeout*/60 * 1000); - break; - } - case PROBE_MODE_SENSE: - { - void *mode_buf; - int mode_buf_len; - - mode_buf_len = sizeof(struct scsi_mode_header_6) - + sizeof(struct scsi_mode_blk_desc) - + sizeof(struct scsi_control_page); - mode_buf = malloc(mode_buf_len, M_TEMP, M_NOWAIT); - if (mode_buf != NULL) { - scsi_mode_sense(csio, - /*retries*/4, - probedone, - MSG_SIMPLE_Q_TAG, - /*dbd*/FALSE, - SMS_PAGE_CTRL_CURRENT, - SMS_CONTROL_MODE_PAGE, - mode_buf, - mode_buf_len, - SSD_FULL_SIZE, - /*timeout*/60000); - break; - } - xpt_print(periph->path, "Unable to mode sense control page - " - "malloc failure\n"); - softc->action = PROBE_SERIAL_NUM; - } - /* FALLTHROUGH */ - case PROBE_SERIAL_NUM: - { - struct scsi_vpd_unit_serial_number *serial_buf; - struct cam_ed* device; - - serial_buf = NULL; - device = periph->path->device; - device->serial_num = NULL; - device->serial_num_len = 0; - - if ((device->quirk->quirks & CAM_QUIRK_NOSERIAL) == 0) - serial_buf = (struct scsi_vpd_unit_serial_number *) - malloc(sizeof(*serial_buf), M_TEMP, - M_NOWAIT | M_ZERO); - - if (serial_buf != NULL) { - scsi_inquiry(csio, - /*retries*/4, - probedone, - MSG_SIMPLE_Q_TAG, - (u_int8_t *)serial_buf, - sizeof(*serial_buf), - /*evpd*/TRUE, - SVPD_UNIT_SERIAL_NUMBER, - SSD_MIN_SIZE, - /*timeout*/60 * 1000); - break; - } - /* - * We'll have to do without, let our probedone - * routine finish up for us. - */ - start_ccb->csio.data_ptr = NULL; - probedone(periph, start_ccb); - return; - } - } - xpt_action(start_ccb); -} - -static void -proberequestdefaultnegotiation(struct cam_periph *periph) -{ - struct ccb_trans_settings cts; - - xpt_setup_ccb(&cts.ccb_h, periph->path, /*priority*/1); - cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; - cts.type = CTS_TYPE_USER_SETTINGS; - xpt_action((union ccb *)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - return; - } - cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS; - cts.type = CTS_TYPE_CURRENT_SETTINGS; - xpt_action((union ccb *)&cts); -} - -/* - * Backoff Negotiation Code- only pertinent for SPI devices. - */ -static int -proberequestbackoff(struct cam_periph *periph, struct cam_ed *device) -{ - struct ccb_trans_settings cts; - struct ccb_trans_settings_spi *spi; - - memset(&cts, 0, sizeof (cts)); - xpt_setup_ccb(&cts.ccb_h, periph->path, /*priority*/1); - cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS; - cts.type = CTS_TYPE_CURRENT_SETTINGS; - xpt_action((union ccb *)&cts); - if ((cts.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if (bootverbose) { - xpt_print(periph->path, - "failed to get current device settings\n"); - } - return (0); - } - if (cts.transport != XPORT_SPI) { - if (bootverbose) { - xpt_print(periph->path, "not SPI transport\n"); - } - return (0); - } - spi = &cts.xport_specific.spi; - - /* - * We cannot renegotiate sync rate if we don't have one. - */ - if ((spi->valid & CTS_SPI_VALID_SYNC_RATE) == 0) { - if (bootverbose) { - xpt_print(periph->path, "no sync rate known\n"); - } - return (0); - } - - /* - * We'll assert that we don't have to touch PPR options- the - * SIM will see what we do with period and offset and adjust - * the PPR options as appropriate. - */ - - /* - * A sync rate with unknown or zero offset is nonsensical. - * A sync period of zero means Async. - */ - if ((spi->valid & CTS_SPI_VALID_SYNC_OFFSET) == 0 - || spi->sync_offset == 0 || spi->sync_period == 0) { - if (bootverbose) { - xpt_print(periph->path, "no sync rate available\n"); - } - return (0); - } - - if (device->flags & CAM_DEV_DV_HIT_BOTTOM) { - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, - ("hit async: giving up on DV\n")); - return (0); - } - - - /* - * Jump sync_period up by one, but stop at 5MHz and fall back to Async. - * We don't try to remember 'last' settings to see if the SIM actually - * gets into the speed we want to set. We check on the SIM telling - * us that a requested speed is bad, but otherwise don't try and - * check the speed due to the asynchronous and handshake nature - * of speed setting. - */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Apr 24 00:28:54 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2861D16A407; Tue, 24 Apr 2007 00:28:54 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D994816A404 for ; Tue, 24 Apr 2007 00:28:53 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id CA61513C457 for ; Tue, 24 Apr 2007 00:28:53 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O0Srtp089411 for ; Tue, 24 Apr 2007 00:28:53 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O0Srlp089395 for perforce@freebsd.org; Tue, 24 Apr 2007 00:28:53 GMT (envelope-from zec@FreeBSD.org) Date: Tue, 24 Apr 2007 00:28:53 GMT Message-Id: <200704240028.l3O0Srlp089395@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118689 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 00:28:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=118689 Change 118689 by zec@zec_tca51 on 2007/04/24 00:28:13 An initial push for introducing infrastructure for releasing vnet instances. This change introduces per-domain and per-protosw destroy hooks which can be used for cleaning up state when vnets are to be released. For now only the timers which are normally started through various init routines are stopped, which should allow for idle vnets to be destroyed without implicitly scheduling an imminent system crash. Affected files ... .. //depot/projects/vimage/src/sys/kern/kern_vimage.c#18 edit .. //depot/projects/vimage/src/sys/net/route.c#6 edit .. //depot/projects/vimage/src/sys/netinet/in_proto.c#3 edit .. //depot/projects/vimage/src/sys/netinet/in_rmx.c#6 edit .. //depot/projects/vimage/src/sys/netinet/ip_input.c#12 edit .. //depot/projects/vimage/src/sys/netinet/ip_var.h#5 edit .. //depot/projects/vimage/src/sys/netinet/ipprotosw.h#2 edit .. //depot/projects/vimage/src/sys/netinet/vinet.h#13 edit .. //depot/projects/vimage/src/sys/netinet6/in6_proto.c#4 edit .. //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#7 edit .. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#9 edit .. //depot/projects/vimage/src/sys/netinet6/ip6_var.h#4 edit .. //depot/projects/vimage/src/sys/netinet6/ip6protosw.h#2 edit .. //depot/projects/vimage/src/sys/netinet6/nd6.c#10 edit .. //depot/projects/vimage/src/sys/netinet6/nd6.h#3 edit .. //depot/projects/vimage/src/sys/sys/domain.h#2 edit .. //depot/projects/vimage/src/sys/sys/protosw.h#3 edit Differences ... ==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#18 (text+ko) ==== @@ -100,8 +100,6 @@ if (modinfo->i_attach) { VNET_ITERLOOP_BEGIN_QUIET(); -printf("Calling i_attach() for %s vnet %s\n", - modinfo->name, vnet_name(curvnet)); modinfo->i_attach(); VNET_ITERLOOP_END(); } @@ -446,7 +444,6 @@ modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_1ST) { VNET_ASSERT(!(modlnk_i->modinfo->flags & \ VNET_MFLAG_ORDER_2ND)); -printf("Calling i_attach() for %s\n", modlnk_i->modinfo->name); modlnk_i->modinfo->i_attach(); } @@ -474,7 +471,6 @@ modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_2ND) { VNET_ASSERT(!(modlnk_i->modinfo->flags & \ VNET_MFLAG_ORDER_1ST)); -printf("Calling i_attach() for %s\n", modlnk_i->modinfo->name); modlnk_i->modinfo->i_attach(); } @@ -503,26 +499,33 @@ struct vcpu *vcpu = vip->v_cpu; struct ifnet *ifp, *nifp; struct vnet_modlink *modlnk_i; -#if 0 struct domain *dp; -#endif CURVNET_SET_QUIET(vnet); INIT_VNET_NET(vnet); - /* Return all inherited interfaces to their parent vnets */ - /*for (ifp = TAILQ_FIRST(&V_ifnet); ifp; ifp = next) {*/ - TAILQ_FOREACH_SAFE(ifp, &V_ifnet, if_link, nifp) + /* + * Return all inherited interfaces to their parent vnets, + * alternatively attempt to kill cloning ifnets. + */ + TAILQ_FOREACH_SAFE(ifp, &V_ifnet, if_link, nifp) { if (ifp->if_home_vnet != ifp->if_vnet) vi_if_move(NULL, ifp, vip); + else + if_clone_destroy(ifp->if_xname); + } /* - * XXX TODO: kill all cloning ifnets * XXX TODO: kill all netgraph ifnets - * XXX TODO: at this point only lo0 should be attached!!! + */ + + /* + * At this point only lo0 should be attached */ -TAILQ_FOREACH(ifp, &V_ifnet, if_link) - printf("attached ifnet: %s\n", ifp->if_xname); + TAILQ_FOREACH(ifp, &V_ifnet, if_link) + if (ifp != V_loif) + panic("non-loif ifnet %s still attached", + ifp->if_xname); /* * Detach modules with ORDER_2ND flag set @@ -532,14 +535,9 @@ modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_2ND) { VNET_ASSERT(!(modlnk_i->modinfo->flags & \ VNET_MFLAG_ORDER_1ST)); -printf("Calling i_detach() for %s\n", modlnk_i->modinfo->name); modlnk_i->modinfo->i_detach(); } -TAILQ_FOREACH(ifp, &V_ifnet, if_link) - printf("attached ifnet: %s\n", ifp->if_xname); - -#if 0 /* * Detach protocol domains */ @@ -549,7 +547,6 @@ if ((--pr)->pr_destroy) (*pr->pr_destroy)(); } -#endif /* * Detach modules with ORDER_1ST flag set @@ -559,7 +556,6 @@ modlnk_i->modinfo->flags & VNET_MFLAG_ORDER_1ST) { VNET_ASSERT(!(modlnk_i->modinfo->flags & \ VNET_MFLAG_ORDER_2ND)); -printf("Calling i_detach() for %s\n", modlnk_i->modinfo->name); modlnk_i->modinfo->i_detach(); } ==== //depot/projects/vimage/src/sys/net/route.c#6 (text+ko) ==== @@ -61,6 +61,9 @@ static void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); static int rtable_init(void); +#ifdef VIMAGE +static int rtable_idetach(void); +#endif /* compare two sockaddr structures */ #define sa_equal(a1, a2) (bcmp((a1), (a2), (a1)->sa_len) == 0) @@ -82,7 +85,8 @@ .id = VNET_MOD_RTABLE, .flags = VNET_MFLAG_ORDER_2ND, .name = "rtable", - .i_attach = rtable_init + .i_attach = rtable_init, + .i_detach = rtable_idetach }; #endif @@ -99,6 +103,21 @@ return 0; } +#ifdef VIMAGE +static int +rtable_idetach() +{ + INIT_VNET_NET(curvnet); + + struct domain *dom; + for (dom = domains; dom; dom = dom->dom_next) + if (dom->dom_rtdetach) + dom->dom_rtdetach((void *)&V_rt_tables[dom->dom_family], + dom->dom_rtoffset); + return 0; +} +#endif + static uma_zone_t rtzone; /* Routing table UMA zone. */ static void ==== //depot/projects/vimage/src/sys/netinet/in_proto.c#3 (text+ko) ==== @@ -37,6 +37,7 @@ #include "opt_pf.h" #include "opt_carp.h" #include "opt_sctp.h" +#include "opt_vimage.h" #include #include @@ -118,6 +119,9 @@ .pr_domain = &inetdomain, .pr_protocol = IPPROTO_IP, .pr_init = ip_init, +#ifdef VIMAGE + .pr_destroy = ip_detach, +#endif .pr_slowtimo = ip_slowtimo, .pr_drain = ip_drain, .pr_usrreqs = &nousrreqs @@ -396,6 +400,7 @@ }; extern int in_inithead(void **, int); +extern int in_detachhead(void **, int); struct domain inetdomain = { .dom_family = AF_INET, @@ -403,6 +408,9 @@ .dom_protosw = inetsw, .dom_protoswNPROTOSW = &inetsw[sizeof(inetsw)/sizeof(inetsw[0])], .dom_rtattach = in_inithead, +#ifdef VIMAGE + .dom_rtdetach = in_detachhead, +#endif .dom_rtoffset = 32, .dom_maxrtkey = sizeof(struct sockaddr_in) }; ==== //depot/projects/vimage/src/sys/netinet/in_rmx.c#6 (text+ko) ==== @@ -62,7 +62,10 @@ #include #include -extern int in_inithead(void **head, int off); +int in_inithead(void **head, int off); +#ifdef VIMAGE +int in_detachhead(void **head, int off); +#endif #define RTPRF_OURS RTF_PROTO3 /* set on routes we manage */ @@ -367,6 +370,17 @@ return 1; } +#ifdef VIMAGE +int +in_detachhead(void **head, int off) +{ + INIT_VNET_INET(curvnet); + + callout_drain(&V_rtq_timer); + return 1; +} +#endif + /* * This zaps old routes when the interface goes down or interface * address is deleted. In the latter case, it deletes static routes ==== //depot/projects/vimage/src/sys/netinet/ip_input.c#12 (text+ko) ==== @@ -350,6 +350,17 @@ netisr_register(NETISR_IP, ip_input, &ipintrq, NETISR_MPSAFE); } +#ifdef VIMAGE +void +ip_detach() +{ + INIT_VNET_INET(curvnet); + + free(vnet_inet, M_INET); + curvnet->mod_data[vnet_inet_modinfo.id] = NULL; +} +#endif + void ip_fini(xtp) void *xtp; { ==== //depot/projects/vimage/src/sys/netinet/ip_var.h#5 (text+ko) ==== @@ -178,6 +178,9 @@ void ip_freemoptions(struct ip_moptions *); void ip_forward(struct mbuf *m, int srcrt); void ip_init(void); +#ifdef VIMAGE +void ip_detach(void); +#endif extern int (*ip_mforward)(struct ip *, struct ifnet *, struct mbuf *, struct ip_moptions *); ==== //depot/projects/vimage/src/sys/netinet/ipprotosw.h#2 (text+ko) ==== @@ -87,6 +87,7 @@ void *pr_ousrreq; /* utility hooks */ pr_init_t *pr_init; + pr_destroy_t *pr_destroy; pr_fasttimo_t *pr_fasttimo; /* fast timeout (200ms) */ pr_slowtimo_t *pr_slowtimo; /* slow timeout (500ms) */ pr_drain_t *pr_drain; /* flush any excess space possible */ ==== //depot/projects/vimage/src/sys/netinet/vinet.h#13 (text+ko) ==== @@ -181,7 +181,6 @@ #define V_in_multihead VNET_INET(in_multihead) #define V_llinfo_arp VNET_INET(llinfo_arp) -#define V_arp_callout VNET_INET(arp_callout) #define V_arpt_prune VNET_INET(arpt_prune) #define V_arpt_keep VNET_INET(arpt_keep) #define V_arp_maxtries VNET_INET(arp_maxtries) ==== //depot/projects/vimage/src/sys/netinet6/in6_proto.c#4 (text+ko) ==== @@ -166,6 +166,9 @@ .pr_domain = &inet6domain, .pr_protocol = IPPROTO_IPV6, .pr_init = ip6_init, +#ifdef VIMAGE + .pr_destroy = ip6_destroy, +#endif .pr_slowtimo = frag6_slowtimo, .pr_drain = frag6_drain, .pr_usrreqs = &nousrreqs, @@ -367,7 +370,10 @@ }, }; -extern int in6_inithead __P((void **, int)); +extern int in6_inithead(void **, int); +#ifdef VIMAGE +extern int in6_detachhead(void **, int); +#endif struct domain inet6domain = { .dom_family = AF_INET6, @@ -376,6 +382,9 @@ .dom_protoswNPROTOSW = (struct protosw *) &inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])], .dom_rtattach = in6_inithead, +#ifdef VIMAGE + .dom_rtdetach = in6_detachhead, +#endif .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr) << 3, .dom_maxrtkey = sizeof(struct sockaddr_in6), .dom_ifattach = in6_domifattach, ==== //depot/projects/vimage/src/sys/netinet6/in6_rmx.c#7 (text+ko) ==== @@ -107,7 +107,10 @@ #include #include -extern int in6_inithead __P((void **head, int off)); +int in6_inithead(void **head, int off); +#ifdef VIMAGE +int in6_detachhead(void **head, int off); +#endif #define RTPRF_OURS RTF_PROTO3 /* set on routes we manage */ @@ -491,3 +494,15 @@ in6_mtutimo(curvnet); /* kick off timeout first time */ return 1; } + +#ifdef VIMAGE +int +in6_detachhead(void **head, int off) +{ + INIT_VNET_INET6(curvnet); + + callout_drain(&V_rtq_timer6); + callout_drain(&V_rtq_mtutimer); + return 1; +} +#endif ==== //depot/projects/vimage/src/sys/netinet6/ip6_input.c#9 (text+ko) ==== @@ -247,6 +247,20 @@ ip6_desync_factor = arc4random() % MAX_TEMP_DESYNC_FACTOR; } +#ifdef VIMAGE +void +ip6_destroy() +{ + INIT_VNET_INET6(curvnet); + + nd6_destroy(); + callout_drain(&V_in6_tmpaddrtimer_ch); + + free(vnet_inet6, M_INET6); + curvnet->mod_data[vnet_inet6_modinfo.id] = NULL; +} +#endif + static void ip6_init2(dummy) void *dummy; ==== //depot/projects/vimage/src/sys/netinet6/ip6_var.h#4 (text+ko) ==== @@ -342,6 +342,9 @@ struct in6_ifaddr; void ip6_init __P((void)); +#ifdef VIMAGE +void ip6_destroy __P((void)); +#endif void ip6_input __P((struct mbuf *)); struct in6_ifaddr *ip6_getdstifaddr __P((struct mbuf *)); void ip6_freepcbopts __P((struct ip6_pktopts *)); ==== //depot/projects/vimage/src/sys/netinet6/ip6protosw.h#2 (text+ko) ==== @@ -136,6 +136,8 @@ /* utility hooks */ void (*pr_init) /* initialization hook */ __P((void)); + void (*pr_destroy) /* cleanup hook */ + __P((void)); void (*pr_fasttimo) /* fast timeout (200ms) */ __P((void)); ==== //depot/projects/vimage/src/sys/netinet6/nd6.c#10 (text+ko) ==== @@ -150,6 +150,17 @@ nd6_slowtimo, curvnet); } +#ifdef VIMAGE +void +nd6_destroy() +{ + INIT_VNET_INET6(curvnet); + + callout_drain(&V_nd6_slowtimo_ch); + callout_drain(&V_nd6_timer_ch); +} +#endif + struct nd_ifinfo * nd6_ifattach(ifp) struct ifnet *ifp; ==== //depot/projects/vimage/src/sys/netinet6/nd6.h#3 (text+ko) ==== @@ -385,6 +385,9 @@ /* XXX: need nd6_var.h?? */ /* nd6.c */ void nd6_init __P((void)); +#ifdef VIMAGE +void nd6_destroy __P((void)); +#endif struct nd_ifinfo *nd6_ifattach __P((struct ifnet *)); void nd6_ifdetach __P((struct nd_ifinfo *)); int nd6_is_addr_neighbor __P((struct sockaddr_in6 *, struct ifnet *)); ==== //depot/projects/vimage/src/sys/sys/domain.h#2 (text+ko) ==== @@ -56,6 +56,8 @@ struct domain *dom_next; int (*dom_rtattach) /* initialize routing table */ (void **, int); + int (*dom_rtdetach) /* clean up routing table */ + (void **, int); int dom_rtoffset; /* an arg to rtattach, in bits */ int dom_maxrtkey; /* for routing layer */ void *(*dom_ifattach)(struct ifnet *); ==== //depot/projects/vimage/src/sys/sys/protosw.h#3 (text+ko) ==== @@ -94,6 +94,7 @@ pr_usrreq_t *pr_ousrreq; /* utility hooks */ pr_init_t *pr_init; + pr_destroy_t *pr_destroy; pr_fasttimo_t *pr_fasttimo; /* fast timeout (200ms) */ pr_slowtimo_t *pr_slowtimo; /* slow timeout (500ms) */ pr_drain_t *pr_drain; /* flush any excess space possible */ From owner-p4-projects@FreeBSD.ORG Tue Apr 24 01:57:43 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5A2D416A404; Tue, 24 Apr 2007 01:57:43 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2FA5816A401 for ; Tue, 24 Apr 2007 01:57:43 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 086AA13C484 for ; Tue, 24 Apr 2007 01:57:43 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O1vgZs014653 for ; Tue, 24 Apr 2007 01:57:42 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O1vgpj014644 for perforce@freebsd.org; Tue, 24 Apr 2007 01:57:42 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 01:57:42 GMT Message-Id: <200704240157.l3O1vgpj014644@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118691 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 01:57:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=118691 Change 118691 by kmacy@kmacy_storage:opentoe_work on 2007/04/24 01:57:11 add public domain jhash.h needed by cxgb_l2t.c Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/common/jhash.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Tue Apr 24 02:04:52 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9CF4C16A403; Tue, 24 Apr 2007 02:04:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5779416A400 for ; Tue, 24 Apr 2007 02:04:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4830C13C45D for ; Tue, 24 Apr 2007 02:04:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O24qn0017783 for ; Tue, 24 Apr 2007 02:04:52 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O24qQe017780 for perforce@freebsd.org; Tue, 24 Apr 2007 02:04:52 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 02:04:52 GMT Message-Id: <200704240204.l3O24qQe017780@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118692 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 02:04:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=118692 Change 118692 by kmacy@kmacy_storage:opentoe_work on 2007/04/24 02:04:26 Add copyright to firmware file Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/t3fw-4.0.0.bin.gz.uu#2 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/t3fw-4.0.0.bin.gz.uu#2 (text+ko) ==== @@ -1,3 +1,38 @@ +/************************************************************************** + +Copyright (c) 2007, Chelsio Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the Chelsio Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +$FreeBSD$ + +***************************************************************************/ + begin 644 t3fw-4.0.0.bin.gz M'XL("'+5*D8``W0S9GB&6L From owner-p4-projects@FreeBSD.ORG Tue Apr 24 02:17:08 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 596D416A402; Tue, 24 Apr 2007 02:17:08 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1481E16A401 for ; Tue, 24 Apr 2007 02:17:08 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0586313C448 for ; Tue, 24 Apr 2007 02:17:08 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O2H7Rf019569 for ; Tue, 24 Apr 2007 02:17:07 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O2H7pA019566 for perforce@freebsd.org; Tue, 24 Apr 2007 02:17:07 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 02:17:07 GMT Message-Id: <200704240217.l3O2H7pA019566@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118693 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 02:17:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=118693 Change 118693 by kmacy@kmacy_storage:opentoe_work on 2007/04/24 02:16:15 minor "notyet" cleanup Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#10 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#8 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#10 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_toedev.h#6 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#10 (text+ko) ==== @@ -150,6 +150,7 @@ uint32_t offload_pkts; uint32_t offload_bundles; uint32_t pure_rsps; + uint32_t unhandled_irqs; bus_addr_t phys_addr; bus_dma_tag_t desc_tag; ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#8 (text+ko) ==== @@ -305,9 +305,7 @@ req->pbl_top = t3_read_reg(adapter, A_ULPTX_PBL_ULIMIT); req->rqt_base = t3_read_reg(adapter, A_ULPRX_RQ_LLIMIT); req->rqt_top = t3_read_reg(adapter, A_ULPRX_RQ_ULIMIT); -#ifdef notyet - req->kdb_addr = adapter->regs + A_SG_KDOORBELL; -#endif + req->kdb_addr = rman_get_start(adapter->regs_res) + A_SG_KDOORBELL; break; } case RDMA_CQ_OP: { @@ -583,12 +581,12 @@ struct toe_tid_entry *p = &td->tid_maps.tid_tab[tid]; mtx_lock(&td->tid_release_lock); - p->ctx = (void *)td->tid_release_list; + p->ctx = td->tid_release_list; td->tid_release_list = p; -#ifdef notyet + if (!p->ctx) - schedule_work(&td->tid_release_task); -#endif + taskqueue_enqueue(tdev->adapter->tq, &td->tid_release_task); + mtx_unlock(&td->tid_release_lock); } ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#10 (text+ko) ==== @@ -2502,11 +2502,8 @@ struct sge_rspq *rspq = &qs->rspq; mtx_lock(&rspq->lock); - if (process_responses_gts(adap, rspq) == 0) { -#ifdef notyet + if (process_responses_gts(adap, rspq) == 0) rspq->unhandled_irqs++; -#endif - } mtx_unlock(&rspq->lock); } ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_toedev.h#6 (text+ko) ==== @@ -50,8 +50,8 @@ struct toedev { char name[TOENAMSIZ]; /* T3C device name */ enum toetype type; - TAILQ_ENTRY(toedev) ofld_entry; struct ifnet *lldev; /* LL dev associated with T3C messages */ + struct adapter *adapter; int (*send)(struct toedev *dev, struct mbuf *m); int (*recv)(struct toedev *dev, struct mbuf **m, int n); @@ -65,6 +65,7 @@ void *l3opt; /* optional layer 3 data */ void *l4opt; /* optional layer 4 data */ void *ulp; /* ulp stuff */ + TAILQ_ENTRY(toedev) ofld_entry; }; #endif /* _TOEDEV_H_ */ From owner-p4-projects@FreeBSD.ORG Tue Apr 24 02:21:27 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 470D116A403; Tue, 24 Apr 2007 02:21:27 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1172A16A400 for ; Tue, 24 Apr 2007 02:21:27 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 026D913C44B for ; Tue, 24 Apr 2007 02:21:27 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O2LQF6020465 for ; Tue, 24 Apr 2007 02:21:26 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O2LQu8020462 for perforce@freebsd.org; Tue, 24 Apr 2007 02:21:26 GMT (envelope-from zec@FreeBSD.org) Date: Tue, 24 Apr 2007 02:21:26 GMT Message-Id: <200704240221.l3O2LQu8020462@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118694 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 02:21:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=118694 Change 118694 by zec@zec_tca51 on 2007/04/24 02:20:26 Fix in6_gif_protosw bindings, which become broken after pr_destroy hook was added to protosw structs. Affected files ... .. //depot/projects/vimage/src/sys/netinet6/in6_gif.c#6 edit Differences ... ==== //depot/projects/vimage/src/sys/netinet6/in6_gif.c#6 (text+ko) ==== @@ -74,12 +74,15 @@ struct ifnet *); extern struct domain inet6domain; -struct ip6protosw in6_gif_protosw = -{ SOCK_RAW, &inet6domain, 0/* IPPROTO_IPV[46] */, PR_ATOMIC|PR_ADDR, - in6_gif_input, rip6_output, 0, rip6_ctloutput, - 0, - 0, 0, 0, 0, - &rip6_usrreqs +struct ip6protosw in6_gif_protosw = { + .pr_type = SOCK_RAW, + .pr_domain = &inet6domain, + .pr_protocol = 0/* IPPROTO_IPV[46] */, + .pr_flags = PR_ATOMIC|PR_ADDR, + .pr_input = in6_gif_input, + .pr_output = rip6_output, + .pr_ctloutput = rip6_ctloutput, + .pr_usrreqs = &rip6_usrreqs }; int From owner-p4-projects@FreeBSD.ORG Tue Apr 24 04:05:36 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6EB7D16A407; Tue, 24 Apr 2007 04:05:36 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3D1EB16A402 for ; Tue, 24 Apr 2007 04:05:36 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2DBCE13C45D for ; Tue, 24 Apr 2007 04:05:36 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O45amt041628 for ; Tue, 24 Apr 2007 04:05:36 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O45a2S041625 for perforce@freebsd.org; Tue, 24 Apr 2007 04:05:36 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 04:05:36 GMT Message-Id: <200704240405.l3O45a2S041625@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118698 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 04:05:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=118698 Change 118698 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 04:05:34 fix compile nit Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#9 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.c#9 (text+ko) ==== @@ -305,7 +305,7 @@ req->pbl_top = t3_read_reg(adapter, A_ULPTX_PBL_ULIMIT); req->rqt_base = t3_read_reg(adapter, A_ULPRX_RQ_LLIMIT); req->rqt_top = t3_read_reg(adapter, A_ULPRX_RQ_ULIMIT); - req->kdb_addr = rman_get_start(adapter->regs_res) + A_SG_KDOORBELL; + req->kdb_addr = (void *)(rman_get_start(adapter->regs_res) + A_SG_KDOORBELL); break; } case RDMA_CQ_OP: { From owner-p4-projects@FreeBSD.ORG Tue Apr 24 04:08:40 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BFF4C16A404; Tue, 24 Apr 2007 04:08:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7DB1916A402 for ; Tue, 24 Apr 2007 04:08:40 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6DF4A13C44B for ; Tue, 24 Apr 2007 04:08:40 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O48eBA041803 for ; Tue, 24 Apr 2007 04:08:40 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O48eHT041797 for perforce@freebsd.org; Tue, 24 Apr 2007 04:08:40 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 04:08:40 GMT Message-Id: <200704240408.l3O48eHT041797@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118699 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 04:08:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=118699 Change 118699 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 04:08:19 enable rx descriptor recycling for packets < 128 bytes fix mbuf leak in single descriptor case Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#11 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#11 (text+ko) ==== @@ -73,6 +73,7 @@ uint32_t collapse_free = 0; uint32_t mb_free_vec_free = 0; int collapse_mbufs = 0; +static int recycle_enable = 1; /* @@ -85,6 +86,7 @@ #define SGE_RX_SM_BUF_SIZE 1536 #define SGE_RX_DROP_THRES 16 +#define SGE_RX_COPY_THRES 128 /* * Period of the Tx buffer reclaim timer. This timer does not need to run @@ -208,7 +210,6 @@ int n = 0; mtx_assert(&q->lock, MA_OWNED); - if (reclaim > 0) { n = free_tx_desc(adapter, q, min(reclaim, nbufs), mvec); reclaimed = min(reclaim, nbufs); @@ -584,8 +585,8 @@ * Recycles the specified buffer on the given free list by adding it at * the next available slot on the list. */ -#ifdef notyet -static void recycle_rx_buf(adapter_t *adap, struct sge_fl *q, unsigned int idx) +static void +recycle_rx_buf(adapter_t *adap, struct sge_fl *q, unsigned int idx) { struct rx_desc *from = &q->desc[idx]; struct rx_desc *to = &q->desc[q->pidx]; @@ -604,7 +605,6 @@ } t3_write_reg(adap, A_SG_KDOORBELL, V_EGRCNTX(q->cntxt_id)); } -#endif static void alloc_ring_cb(void *arg, bus_dma_segment_t *segs, int nsegs, int error) @@ -766,7 +766,7 @@ mtx_lock(&txq->lock); n = reclaim_completed_tx(sc, txq, TX_CLEAN_MAX_DESC, m_vec); mtx_unlock(&txq->lock); - + for (i = 0; i < n; i++) { m_freem_vec(m_vec[i]); } @@ -1090,6 +1090,7 @@ if (mlen <= WR_LEN - sizeof(*cpl)) { txq_prod(txq, 1, &txqs); txq->sdesc[txqs.pidx].m = m0; + m0->m_priority = txqs.pidx; if (m0->m_len == m0->m_pkthdr.len) memcpy(&txd->flit[2], m0->m_data, mlen); @@ -1734,6 +1735,8 @@ m_vec[nbufs] = d->m; d->m = NULL; nbufs++; + } else { + printf("pri=%d cidx=%d\n", d->m->m_priority, cidx); } } ++d; @@ -2142,7 +2145,6 @@ * threshold and the packet is too big to copy, or (b) the packet should * be copied but there is no memory for the copy. */ - static int get_packet(adapter_t *adap, unsigned int drop_thres, struct sge_qset *qs, struct mbuf *m, struct rsp_desc *r) @@ -2154,22 +2156,27 @@ uint32_t len = G_RSPD_LEN(len_cq); uint32_t flags = ntohl(r->flags); uint8_t sopeop = G_RSPD_SOP_EOP(flags); + void *cl; int ret = 0; prefetch(sd->cl); fl->credits--; bus_dmamap_sync(fl->entry_tag, sd->map, BUS_DMASYNC_POSTREAD); - bus_dmamap_unload(fl->entry_tag, sd->map); - /* - * XXX Recycle small packets - * - */ + if (recycle_enable && len <= SGE_RX_COPY_THRES && sopeop == RSPQ_SOP_EOP) { + cl = mtod(m, void *); + memcpy(cl, sd->cl, len); + recycle_rx_buf(adap, fl, fl->cidx); + } else { + cl = sd->cl; + bus_dmamap_unload(fl->entry_tag, sd->map); + } switch(sopeop) { case RSPQ_SOP_EOP: DBG(DBG_RX, ("get_packet: SOP-EOP m %p\n", m)); - m_cljset(m, sd->cl, fl->type); + if (cl == sd->cl) + m_cljset(m, cl, fl->type); m->m_len = m->m_pkthdr.len = len; ret = 1; goto done; @@ -2188,7 +2195,7 @@ ret = 1; break; } - m_iovappend(m, sd->cl, fl->buf_size, len, 0); + m_iovappend(m, cl, fl->buf_size, len, 0); done: if (++fl->cidx == fl->size) From owner-p4-projects@FreeBSD.ORG Tue Apr 24 04:20:56 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F40BD16A406; Tue, 24 Apr 2007 04:20:55 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B335E16A404 for ; Tue, 24 Apr 2007 04:20:55 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A369813C469 for ; Tue, 24 Apr 2007 04:20:55 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O4Kt6K043618 for ; Tue, 24 Apr 2007 04:20:55 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O4KtU1043613 for perforce@freebsd.org; Tue, 24 Apr 2007 04:20:55 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 04:20:55 GMT Message-Id: <200704240420.l3O4KtU1043613@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118700 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 04:20:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=118700 Change 118700 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 04:20:10 remove bind_ithread hack now that uleintr is in offload_enqueue is chaining packets not mbufs rss_{hi,lo} have more intuitive names in cxgb Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#12 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#12 (text+ko) ==== @@ -2031,7 +2031,7 @@ { m->m_next = NULL; if (q->rx_tail) - q->rx_tail->m_next = m; + q->rx_tail->m_nextpkt = m; else { #ifdef notyet struct sge_qset *qs = rspq_to_qset(q); @@ -2251,23 +2251,6 @@ ; } -/* - * This is an awful hack to bind the ithread to CPU 1 - * to work around lack of ithread affinity - */ -static void -bind_ithread(int cpu) -{ -#if 0 - KASSERT(cpu < mp_ncpus, ("invalid cpu identifier")); - if (mp_ncpus > 1) { - mtx_lock_spin(&sched_lock); - sched_bind(curthread, cpu); - mtx_unlock_spin(&sched_lock); - } -#endif -} - /** * process_responses - process responses from an SGE response queue * @adap: the adapter @@ -2300,14 +2283,7 @@ printf("next_holdoff=%d\n", rspq->holdoff_tmr); last_holdoff = rspq->holdoff_tmr; } -#endif - if (pinned[qs->rspq.cntxt_id * adap->params.nports] == 0) { - /* - * Assumes that cntxt_id < mp_ncpus - */ - bind_ithread(qs->rspq.cntxt_id); - pinned[qs->rspq.cntxt_id * adap->params.nports] = 1; - } +#endif rspq->next_holdoff = rspq->holdoff_tmr; while (__predict_true(budget_left && is_new_response(r, rspq))) { @@ -2385,8 +2361,11 @@ rspq->m = NULL; } else { #ifdef notyet - m->pkthdr.csum_data = rss_hi; - m->m_priority = rss_lo; + m->pkthdr.csum_data = rss_csum; + /* + * XXX size mismatch + */ + m->m_priority = rss_hash; rx_offload(&adap->tdev, rspq, m); #endif From owner-p4-projects@FreeBSD.ORG Tue Apr 24 04:36:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E34D16A407; Tue, 24 Apr 2007 04:36:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4546F16A403 for ; Tue, 24 Apr 2007 04:36:15 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3369113C457 for ; Tue, 24 Apr 2007 04:36:15 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O4aFm3046619 for ; Tue, 24 Apr 2007 04:36:15 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O4aFii046616 for perforce@freebsd.org; Tue, 24 Apr 2007 04:36:15 GMT (envelope-from scottl@freebsd.org) Date: Tue, 24 Apr 2007 04:36:15 GMT Message-Id: <200704240436.l3O4aFii046616@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 118702 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 04:36:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=118702 Change 118702 by scottl@scottl-x64 on 2007/04/24 04:36:12 Move the bus and LUN scan code to scsi_xpt.c Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#63 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#10 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#2 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.h#2 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#63 (text+ko) ==== @@ -100,31 +100,6 @@ #define CAM_MAX_HIGHPOWER 4 #endif -static int cam_srch_hi = 0; -TUNABLE_INT("kern.cam.cam_srch_hi", &cam_srch_hi); -static int sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS); -SYSCTL_PROC(_kern_cam, OID_AUTO, cam_srch_hi, CTLTYPE_INT|CTLFLAG_RW, 0, 0, - sysctl_cam_search_luns, "I", - "allow search above LUN 7 for SCSI3 and greater devices"); - -#define CAM_SCSI2_MAXLUN 8 -/* - * If we're not quirked to search <= the first 8 luns - * and we are either quirked to search above lun 8, - * or we're > SCSI-2 and we've enabled hilun searching, - * or we're > SCSI-2 and the last lun was a success, - * we can look for luns above lun 8. - */ -#define CAN_SRCH_HI_SPARSE(dv) \ - (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ - && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ - || (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2 && cam_srch_hi))) - -#define CAN_SRCH_HI_DENSE(dv) \ - (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ - && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ - || (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2))) - typedef enum { XPT_FLAG_OPEN = 0x01 } xpt_flags; @@ -275,14 +250,6 @@ MODULE_VERSION(cam, 1); -static cam_status xpt_compile_path(struct cam_path *new_path, - struct cam_periph *perph, - path_id_t path_id, - target_id_t target_id, - lun_id_t lun_id); - -static void xpt_release_path(struct cam_path *path); - static void xpt_async_bcast(struct async_list *async_head, u_int32_t async_code, struct cam_path *path, @@ -319,11 +286,6 @@ xpt_find_target(struct cam_eb *bus, target_id_t target_id); static struct cam_ed* xpt_find_device(struct cam_et *target, lun_id_t lun_id); -static void xpt_scan_bus(struct cam_periph *periph, union ccb *ccb); -static void xpt_scan_lun(struct cam_periph *periph, - struct cam_path *path, cam_flags flags, - union ccb *ccb); -static void xptscandone(struct cam_periph *periph, union ccb *done_ccb); static xpt_busfunc_t xptconfigbuscountfunc; static xpt_busfunc_t xptconfigfunc; static void xpt_config(void *arg); @@ -3492,7 +3454,7 @@ return (status); } -static cam_status +cam_status xpt_compile_path(struct cam_path *new_path, struct cam_periph *perph, path_id_t path_id, target_id_t target_id, lun_id_t lun_id) { @@ -3563,7 +3525,7 @@ return (status); } -static void +void xpt_release_path(struct cam_path *path) { CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_release_path\n")); @@ -4677,386 +4639,6 @@ return (device); } -typedef struct { - union ccb *request_ccb; - struct ccb_pathinq *cpi; - int counter; -} xpt_scan_bus_info; - -/* - * To start a scan, request_ccb is an XPT_SCAN_BUS ccb. - * As the scan progresses, xpt_scan_bus is used as the - * callback on completion function. - */ -static void -xpt_scan_bus(struct cam_periph *periph, union ccb *request_ccb) -{ - CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("xpt_scan_bus\n")); - switch (request_ccb->ccb_h.func_code) { - case XPT_SCAN_BUS: - { - xpt_scan_bus_info *scan_info; - union ccb *work_ccb; - struct cam_path *path; - u_int i; - u_int max_target; - u_int initiator_id; - - /* Find out the characteristics of the bus */ - work_ccb = xpt_alloc_ccb_nowait(); - if (work_ccb == NULL) { - request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; - xpt_done(request_ccb); - return; - } - xpt_setup_ccb(&work_ccb->ccb_h, request_ccb->ccb_h.path, - request_ccb->ccb_h.pinfo.priority); - work_ccb->ccb_h.func_code = XPT_PATH_INQ; - xpt_action(work_ccb); - if (work_ccb->ccb_h.status != CAM_REQ_CMP) { - request_ccb->ccb_h.status = work_ccb->ccb_h.status; - xpt_free_ccb(work_ccb); - xpt_done(request_ccb); - return; - } - - if ((work_ccb->cpi.hba_misc & PIM_NOINITIATOR) != 0) { - /* - * Can't scan the bus on an adapter that - * cannot perform the initiator role. - */ - request_ccb->ccb_h.status = CAM_REQ_CMP; - xpt_free_ccb(work_ccb); - xpt_done(request_ccb); - return; - } - - /* Save some state for use while we probe for devices */ - scan_info = (xpt_scan_bus_info *) - malloc(sizeof(xpt_scan_bus_info), M_TEMP, M_NOWAIT); - scan_info->request_ccb = request_ccb; - scan_info->cpi = &work_ccb->cpi; - - /* Cache on our stack so we can work asynchronously */ - max_target = scan_info->cpi->max_target; - initiator_id = scan_info->cpi->initiator_id; - - - /* - * We can scan all targets in parallel, or do it sequentially. - */ - if (scan_info->cpi->hba_misc & PIM_SEQSCAN) { - max_target = 0; - scan_info->counter = 0; - } else { - scan_info->counter = scan_info->cpi->max_target + 1; - if (scan_info->cpi->initiator_id < scan_info->counter) { - scan_info->counter--; - } - } - - for (i = 0; i <= max_target; i++) { - cam_status status; - if (i == initiator_id) - continue; - - status = xpt_create_path(&path, xpt_periph, - request_ccb->ccb_h.path_id, - i, 0); - if (status != CAM_REQ_CMP) { - printf("xpt_scan_bus: xpt_create_path failed" - " with status %#x, bus scan halted\n", - status); - free(scan_info, M_TEMP); - request_ccb->ccb_h.status = status; - xpt_free_ccb(work_ccb); - xpt_done(request_ccb); - break; - } - work_ccb = xpt_alloc_ccb_nowait(); - if (work_ccb == NULL) { - free(scan_info, M_TEMP); - xpt_free_path(path); - request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; - xpt_done(request_ccb); - break; - } - xpt_setup_ccb(&work_ccb->ccb_h, path, - request_ccb->ccb_h.pinfo.priority); - work_ccb->ccb_h.func_code = XPT_SCAN_LUN; - work_ccb->ccb_h.cbfcnp = xpt_scan_bus; - work_ccb->ccb_h.ppriv_ptr0 = scan_info; - work_ccb->crcn.flags = request_ccb->crcn.flags; - xpt_action(work_ccb); - } - break; - } - case XPT_SCAN_LUN: - { - cam_status status; - struct cam_path *path; - xpt_scan_bus_info *scan_info; - path_id_t path_id; - target_id_t target_id; - lun_id_t lun_id; - - /* Reuse the same CCB to query if a device was really found */ - scan_info = (xpt_scan_bus_info *)request_ccb->ccb_h.ppriv_ptr0; - xpt_setup_ccb(&request_ccb->ccb_h, request_ccb->ccb_h.path, - request_ccb->ccb_h.pinfo.priority); - request_ccb->ccb_h.func_code = XPT_GDEV_TYPE; - - path_id = request_ccb->ccb_h.path_id; - target_id = request_ccb->ccb_h.target_id; - lun_id = request_ccb->ccb_h.target_lun; - xpt_action(request_ccb); - - if (request_ccb->ccb_h.status != CAM_REQ_CMP) { - struct cam_ed *device; - struct cam_et *target; - int phl; - - /* - * If we already probed lun 0 successfully, or - * we have additional configured luns on this - * target that might have "gone away", go onto - * the next lun. - */ - target = request_ccb->ccb_h.path->target; - /* - * We may touch devices that we don't - * hold references too, so ensure they - * don't disappear out from under us. - * The target above is referenced by the - * path in the request ccb. - */ - phl = 0; - device = TAILQ_FIRST(&target->ed_entries); - if (device != NULL) { - phl = CAN_SRCH_HI_SPARSE(device); - if (device->lun_id == 0) - device = TAILQ_NEXT(device, links); - } - if ((lun_id != 0) || (device != NULL)) { - if (lun_id < (CAM_SCSI2_MAXLUN-1) || phl) - lun_id++; - } - } else { - struct cam_ed *device; - - device = request_ccb->ccb_h.path->device; - - if ((device->quirk->quirks & CAM_QUIRK_NOLUNS) == 0) { - /* Try the next lun */ - if (lun_id < (CAM_SCSI2_MAXLUN-1) - || CAN_SRCH_HI_DENSE(device)) - lun_id++; - } - } - - /* - * Free the current request path- we're done with it. - */ - xpt_free_path(request_ccb->ccb_h.path); - - /* - * Check to see if we scan any further luns. - */ - if (lun_id == request_ccb->ccb_h.target_lun - || lun_id > scan_info->cpi->max_lun) { - int done; - - hop_again: - done = 0; - if (scan_info->cpi->hba_misc & PIM_SEQSCAN) { - scan_info->counter++; - if (scan_info->counter == - scan_info->cpi->initiator_id) { - scan_info->counter++; - } - if (scan_info->counter >= - scan_info->cpi->max_target+1) { - done = 1; - } - } else { - scan_info->counter--; - if (scan_info->counter == 0) { - done = 1; - } - } - if (done) { - xpt_free_ccb(request_ccb); - xpt_free_ccb((union ccb *)scan_info->cpi); - request_ccb = scan_info->request_ccb; - free(scan_info, M_TEMP); - request_ccb->ccb_h.status = CAM_REQ_CMP; - xpt_done(request_ccb); - break; - } - - if ((scan_info->cpi->hba_misc & PIM_SEQSCAN) == 0) { - break; - } - status = xpt_create_path(&path, xpt_periph, - scan_info->request_ccb->ccb_h.path_id, - scan_info->counter, 0); - if (status != CAM_REQ_CMP) { - printf("xpt_scan_bus: xpt_create_path failed" - " with status %#x, bus scan halted\n", - status); - xpt_free_ccb(request_ccb); - xpt_free_ccb((union ccb *)scan_info->cpi); - request_ccb = scan_info->request_ccb; - free(scan_info, M_TEMP); - request_ccb->ccb_h.status = status; - xpt_done(request_ccb); - break; - } - xpt_setup_ccb(&request_ccb->ccb_h, path, - request_ccb->ccb_h.pinfo.priority); - request_ccb->ccb_h.func_code = XPT_SCAN_LUN; - request_ccb->ccb_h.cbfcnp = xpt_scan_bus; - request_ccb->ccb_h.ppriv_ptr0 = scan_info; - request_ccb->crcn.flags = - scan_info->request_ccb->crcn.flags; - } else { - status = xpt_create_path(&path, xpt_periph, - path_id, target_id, lun_id); - if (status != CAM_REQ_CMP) { - printf("xpt_scan_bus: xpt_create_path failed " - "with status %#x, halting LUN scan\n", - status); - goto hop_again; - } - xpt_setup_ccb(&request_ccb->ccb_h, path, - request_ccb->ccb_h.pinfo.priority); - request_ccb->ccb_h.func_code = XPT_SCAN_LUN; - request_ccb->ccb_h.cbfcnp = xpt_scan_bus; - request_ccb->ccb_h.ppriv_ptr0 = scan_info; - request_ccb->crcn.flags = - scan_info->request_ccb->crcn.flags; - } - xpt_action(request_ccb); - break; - } - default: - break; - } -} - -static void -xpt_scan_lun(struct cam_periph *periph, struct cam_path *path, - cam_flags flags, union ccb *request_ccb) -{ - struct ccb_pathinq cpi; - cam_status status; - struct cam_path *new_path; - struct cam_periph *old_periph; - - CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("xpt_scan_lun\n")); - - xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); - - if (cpi.ccb_h.status != CAM_REQ_CMP) { - if (request_ccb != NULL) { - request_ccb->ccb_h.status = cpi.ccb_h.status; - xpt_done(request_ccb); - } - return; - } - - if ((cpi.hba_misc & PIM_NOINITIATOR) != 0) { - /* - * Can't scan the bus on an adapter that - * cannot perform the initiator role. - */ - if (request_ccb != NULL) { - request_ccb->ccb_h.status = CAM_REQ_CMP; - xpt_done(request_ccb); - } - return; - } - - if (request_ccb == NULL) { - request_ccb = malloc(sizeof(union ccb), M_TEMP, M_NOWAIT); - if (request_ccb == NULL) { - xpt_print(path, "xpt_scan_lun: can't allocate CCB, " - "can't continue\n"); - return; - } - new_path = malloc(sizeof(*new_path), M_TEMP, M_NOWAIT); - if (new_path == NULL) { - xpt_print(path, "xpt_scan_lun: can't allocate path, " - "can't continue\n"); - free(request_ccb, M_TEMP); - return; - } - status = xpt_compile_path(new_path, xpt_periph, - path->bus->path_id, - path->target->target_id, - path->device->lun_id); - - if (status != CAM_REQ_CMP) { - xpt_print(path, "xpt_scan_lun: can't compile path, " - "can't continue\n"); - free(request_ccb, M_TEMP); - free(new_path, M_TEMP); - return; - } - xpt_setup_ccb(&request_ccb->ccb_h, new_path, /*priority*/ 1); - request_ccb->ccb_h.cbfcnp = xptscandone; - request_ccb->ccb_h.func_code = XPT_SCAN_LUN; - request_ccb->crcn.flags = flags; - } - - if ((old_periph = cam_periph_find(path, "probe")) != NULL) { - probe_insert_ccbq(old_periph, &request_ccb->ccb_h); - } else { - status = cam_periph_alloc(proberegister, NULL, probecleanup, - probestart, "probe", - CAM_PERIPH_BIO, - request_ccb->ccb_h.path, NULL, 0, - request_ccb); - - if (status != CAM_REQ_CMP) { - xpt_print(path, "xpt_scan_lun: cam_alloc_periph " - "returned an error, can't continue probe\n"); - request_ccb->ccb_h.status = status; - xpt_done(request_ccb); - } - } -} - -static void -xptscandone(struct cam_periph *periph, union ccb *done_ccb) -{ - xpt_release_path(done_ccb->ccb_h.path); - free(done_ccb->ccb_h.path, M_TEMP); - free(done_ccb, M_TEMP); -} - -static int -sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS) -{ - int error, bool; - - bool = cam_srch_hi; - error = sysctl_handle_int(oidp, &bool, sizeof(bool), req); - if (error != 0 || req->newptr == NULL) - return (error); - if (bool == 0 || bool == 1) { - cam_srch_hi = bool; - return (0); - } else { - return (EINVAL); - } -} - - void xpt_devise_transport(struct cam_path *path) { ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#10 (text+ko) ==== @@ -80,6 +80,14 @@ void xpt_rescan(union ccb *ccb); void xpt_lock_buses(void); void xpt_unlock_buses(void); +cam_status xpt_compile_path(struct cam_path *new_path, + struct cam_periph *perph, + path_id_t path_id, + target_id_t target_id, + lun_id_t lun_id); + +void xpt_release_path(struct cam_path *path); + #endif /* _KERNEL */ #endif /* _CAM_CAM_XPT_H */ ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#2 (text+ko) ==== @@ -64,6 +64,7 @@ #include #include #include +#include #include /* for xpt_print below */ #include "opt_cam.h" @@ -431,6 +432,31 @@ struct xpt_quirk_entry *xpt_default_quirk = &xpt_quirk_table[(sizeof(xpt_quirk_table) / sizeof(*xpt_quirk_table)) - 1]; +#define CAM_SCSI2_MAXLUN 8 +/* + * If we're not quirked to search <= the first 8 luns + * and we are either quirked to search above lun 8, + * or we're > SCSI-2 and we've enabled hilun searching, + * or we're > SCSI-2 and the last lun was a success, + * we can look for luns above lun 8. + */ +#define CAN_SRCH_HI_SPARSE(dv) \ + (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ + && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ + || (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2 && cam_srch_hi))) + +#define CAN_SRCH_HI_DENSE(dv) \ + (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \ + && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \ + || (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2))) + +static int cam_srch_hi = 0; +TUNABLE_INT("kern.cam.cam_srch_hi", &cam_srch_hi); +static int sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS); +SYSCTL_PROC(_kern_cam, OID_AUTO, cam_srch_hi, CTLTYPE_INT|CTLFLAG_RW, 0, 0, + sysctl_cam_search_luns, "I", + "allow search above LUN 7 for SCSI3 and greater devices"); + void xpt_find_quirk(struct cam_ed *device) @@ -448,3 +474,381 @@ device->quirk = (struct xpt_quirk_entry *)match; } +typedef struct { + union ccb *request_ccb; + struct ccb_pathinq *cpi; + int counter; +} xpt_scan_bus_info; + +/* + * To start a scan, request_ccb is an XPT_SCAN_BUS ccb. + * As the scan progresses, xpt_scan_bus is used as the + * callback on completion function. + */ +void +xpt_scan_bus(struct cam_periph *periph, union ccb *request_ccb) +{ + CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, + ("xpt_scan_bus\n")); + switch (request_ccb->ccb_h.func_code) { + case XPT_SCAN_BUS: + { + xpt_scan_bus_info *scan_info; + union ccb *work_ccb; + struct cam_path *path; + u_int i; + u_int max_target; + u_int initiator_id; + + /* Find out the characteristics of the bus */ + work_ccb = xpt_alloc_ccb_nowait(); + if (work_ccb == NULL) { + request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; + xpt_done(request_ccb); + return; + } + xpt_setup_ccb(&work_ccb->ccb_h, request_ccb->ccb_h.path, + request_ccb->ccb_h.pinfo.priority); + work_ccb->ccb_h.func_code = XPT_PATH_INQ; + xpt_action(work_ccb); + if (work_ccb->ccb_h.status != CAM_REQ_CMP) { + request_ccb->ccb_h.status = work_ccb->ccb_h.status; + xpt_free_ccb(work_ccb); + xpt_done(request_ccb); + return; + } + + if ((work_ccb->cpi.hba_misc & PIM_NOINITIATOR) != 0) { + /* + * Can't scan the bus on an adapter that + * cannot perform the initiator role. + */ + request_ccb->ccb_h.status = CAM_REQ_CMP; + xpt_free_ccb(work_ccb); + xpt_done(request_ccb); + return; + } + + /* Save some state for use while we probe for devices */ + scan_info = (xpt_scan_bus_info *) + malloc(sizeof(xpt_scan_bus_info), M_TEMP, M_NOWAIT); + scan_info->request_ccb = request_ccb; + scan_info->cpi = &work_ccb->cpi; + + /* Cache on our stack so we can work asynchronously */ + max_target = scan_info->cpi->max_target; + initiator_id = scan_info->cpi->initiator_id; + + + /* + * We can scan all targets in parallel, or do it sequentially. + */ + if (scan_info->cpi->hba_misc & PIM_SEQSCAN) { + max_target = 0; + scan_info->counter = 0; + } else { + scan_info->counter = scan_info->cpi->max_target + 1; + if (scan_info->cpi->initiator_id < scan_info->counter) { + scan_info->counter--; + } + } + + for (i = 0; i <= max_target; i++) { + cam_status status; + if (i == initiator_id) + continue; + + status = xpt_create_path(&path, xpt_periph, + request_ccb->ccb_h.path_id, + i, 0); + if (status != CAM_REQ_CMP) { + printf("xpt_scan_bus: xpt_create_path failed" + " with status %#x, bus scan halted\n", + status); + free(scan_info, M_TEMP); + request_ccb->ccb_h.status = status; + xpt_free_ccb(work_ccb); + xpt_done(request_ccb); + break; + } + work_ccb = xpt_alloc_ccb_nowait(); + if (work_ccb == NULL) { + free(scan_info, M_TEMP); + xpt_free_path(path); + request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; + xpt_done(request_ccb); + break; + } + xpt_setup_ccb(&work_ccb->ccb_h, path, + request_ccb->ccb_h.pinfo.priority); + work_ccb->ccb_h.func_code = XPT_SCAN_LUN; + work_ccb->ccb_h.cbfcnp = xpt_scan_bus; + work_ccb->ccb_h.ppriv_ptr0 = scan_info; + work_ccb->crcn.flags = request_ccb->crcn.flags; + xpt_action(work_ccb); + } + break; + } + case XPT_SCAN_LUN: + { + cam_status status; + struct cam_path *path; + xpt_scan_bus_info *scan_info; + path_id_t path_id; + target_id_t target_id; + lun_id_t lun_id; + + /* Reuse the same CCB to query if a device was really found */ + scan_info = (xpt_scan_bus_info *)request_ccb->ccb_h.ppriv_ptr0; + xpt_setup_ccb(&request_ccb->ccb_h, request_ccb->ccb_h.path, + request_ccb->ccb_h.pinfo.priority); + request_ccb->ccb_h.func_code = XPT_GDEV_TYPE; + + path_id = request_ccb->ccb_h.path_id; + target_id = request_ccb->ccb_h.target_id; + lun_id = request_ccb->ccb_h.target_lun; + xpt_action(request_ccb); + + if (request_ccb->ccb_h.status != CAM_REQ_CMP) { + struct cam_ed *device; + struct cam_et *target; + int phl; + + /* + * If we already probed lun 0 successfully, or + * we have additional configured luns on this + * target that might have "gone away", go onto + * the next lun. + */ + target = request_ccb->ccb_h.path->target; + /* + * We may touch devices that we don't + * hold references too, so ensure they + * don't disappear out from under us. + * The target above is referenced by the + * path in the request ccb. + */ + phl = 0; + device = TAILQ_FIRST(&target->ed_entries); + if (device != NULL) { + phl = CAN_SRCH_HI_SPARSE(device); + if (device->lun_id == 0) + device = TAILQ_NEXT(device, links); + } + if ((lun_id != 0) || (device != NULL)) { + if (lun_id < (CAM_SCSI2_MAXLUN-1) || phl) + lun_id++; + } + } else { + struct cam_ed *device; + + device = request_ccb->ccb_h.path->device; + + if ((device->quirk->quirks & CAM_QUIRK_NOLUNS) == 0) { + /* Try the next lun */ + if (lun_id < (CAM_SCSI2_MAXLUN-1) + || CAN_SRCH_HI_DENSE(device)) + lun_id++; + } + } + + /* + * Free the current request path- we're done with it. + */ + xpt_free_path(request_ccb->ccb_h.path); + + /* + * Check to see if we scan any further luns. + */ + if (lun_id == request_ccb->ccb_h.target_lun + || lun_id > scan_info->cpi->max_lun) { + int done; + + hop_again: + done = 0; + if (scan_info->cpi->hba_misc & PIM_SEQSCAN) { + scan_info->counter++; + if (scan_info->counter == + scan_info->cpi->initiator_id) { + scan_info->counter++; + } + if (scan_info->counter >= + scan_info->cpi->max_target+1) { + done = 1; + } + } else { + scan_info->counter--; + if (scan_info->counter == 0) { + done = 1; + } + } + if (done) { + xpt_free_ccb(request_ccb); + xpt_free_ccb((union ccb *)scan_info->cpi); + request_ccb = scan_info->request_ccb; + free(scan_info, M_TEMP); + request_ccb->ccb_h.status = CAM_REQ_CMP; + xpt_done(request_ccb); + break; + } + + if ((scan_info->cpi->hba_misc & PIM_SEQSCAN) == 0) { + break; + } + status = xpt_create_path(&path, xpt_periph, + scan_info->request_ccb->ccb_h.path_id, + scan_info->counter, 0); + if (status != CAM_REQ_CMP) { + printf("xpt_scan_bus: xpt_create_path failed" + " with status %#x, bus scan halted\n", + status); + xpt_free_ccb(request_ccb); + xpt_free_ccb((union ccb *)scan_info->cpi); + request_ccb = scan_info->request_ccb; + free(scan_info, M_TEMP); + request_ccb->ccb_h.status = status; + xpt_done(request_ccb); + break; + } + xpt_setup_ccb(&request_ccb->ccb_h, path, + request_ccb->ccb_h.pinfo.priority); + request_ccb->ccb_h.func_code = XPT_SCAN_LUN; + request_ccb->ccb_h.cbfcnp = xpt_scan_bus; + request_ccb->ccb_h.ppriv_ptr0 = scan_info; + request_ccb->crcn.flags = + scan_info->request_ccb->crcn.flags; + } else { + status = xpt_create_path(&path, xpt_periph, + path_id, target_id, lun_id); + if (status != CAM_REQ_CMP) { + printf("xpt_scan_bus: xpt_create_path failed " + "with status %#x, halting LUN scan\n", + status); + goto hop_again; + } + xpt_setup_ccb(&request_ccb->ccb_h, path, + request_ccb->ccb_h.pinfo.priority); + request_ccb->ccb_h.func_code = XPT_SCAN_LUN; + request_ccb->ccb_h.cbfcnp = xpt_scan_bus; + request_ccb->ccb_h.ppriv_ptr0 = scan_info; + request_ccb->crcn.flags = + scan_info->request_ccb->crcn.flags; + } + xpt_action(request_ccb); + break; + } + default: + break; + } +} + +void +xpt_scan_lun(struct cam_periph *periph, struct cam_path *path, + cam_flags flags, union ccb *request_ccb) +{ + struct ccb_pathinq cpi; + cam_status status; + struct cam_path *new_path; + struct cam_periph *old_periph; + + CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, + ("xpt_scan_lun\n")); + + xpt_setup_ccb(&cpi.ccb_h, path, /*priority*/1); + cpi.ccb_h.func_code = XPT_PATH_INQ; + xpt_action((union ccb *)&cpi); + + if (cpi.ccb_h.status != CAM_REQ_CMP) { + if (request_ccb != NULL) { + request_ccb->ccb_h.status = cpi.ccb_h.status; + xpt_done(request_ccb); + } + return; + } + + if ((cpi.hba_misc & PIM_NOINITIATOR) != 0) { + /* + * Can't scan the bus on an adapter that + * cannot perform the initiator role. + */ + if (request_ccb != NULL) { + request_ccb->ccb_h.status = CAM_REQ_CMP; + xpt_done(request_ccb); + } + return; + } + + if (request_ccb == NULL) { + request_ccb = malloc(sizeof(union ccb), M_TEMP, M_NOWAIT); + if (request_ccb == NULL) { + xpt_print(path, "xpt_scan_lun: can't allocate CCB, " + "can't continue\n"); + return; + } + new_path = malloc(sizeof(*new_path), M_TEMP, M_NOWAIT); + if (new_path == NULL) { + xpt_print(path, "xpt_scan_lun: can't allocate path, " + "can't continue\n"); + free(request_ccb, M_TEMP); + return; + } + status = xpt_compile_path(new_path, xpt_periph, + path->bus->path_id, + path->target->target_id, + path->device->lun_id); + + if (status != CAM_REQ_CMP) { + xpt_print(path, "xpt_scan_lun: can't compile path, " + "can't continue\n"); + free(request_ccb, M_TEMP); + free(new_path, M_TEMP); + return; + } + xpt_setup_ccb(&request_ccb->ccb_h, new_path, /*priority*/ 1); + request_ccb->ccb_h.cbfcnp = xptscandone; + request_ccb->ccb_h.func_code = XPT_SCAN_LUN; + request_ccb->crcn.flags = flags; + } + + if ((old_periph = cam_periph_find(path, "probe")) != NULL) { + probe_insert_ccbq(old_periph, &request_ccb->ccb_h); + } else { + status = cam_periph_alloc(proberegister, NULL, probecleanup, + probestart, "probe", + CAM_PERIPH_BIO, + request_ccb->ccb_h.path, NULL, 0, + request_ccb); + + if (status != CAM_REQ_CMP) { + xpt_print(path, "xpt_scan_lun: cam_alloc_periph " + "returned an error, can't continue probe\n"); + request_ccb->ccb_h.status = status; + xpt_done(request_ccb); + } + } +} + +void +xptscandone(struct cam_periph *periph, union ccb *done_ccb) +{ + xpt_release_path(done_ccb->ccb_h.path); + free(done_ccb->ccb_h.path, M_TEMP); + free(done_ccb, M_TEMP); +} + +static int +sysctl_cam_search_luns(SYSCTL_HANDLER_ARGS) +{ + int error, bool; + + bool = cam_srch_hi; + error = sysctl_handle_int(oidp, &bool, sizeof(bool), req); + if (error != 0 || req->newptr == NULL) + return (error); + if (bool == 0 || bool == 1) { + cam_srch_hi = bool; + return (0); + } else { + return (EINVAL); + } +} ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.h#2 (text+ko) ==== @@ -115,5 +115,9 @@ }; void xpt_find_quirk(struct cam_ed *device); +void xpt_scan_bus(struct cam_periph *periph, union ccb *ccb); +void xpt_scan_lun(struct cam_periph *periph, struct cam_path *path, + cam_flags flags, union ccb *ccb); +void xptscandone(struct cam_periph *periph, union ccb *done_ccb); extern struct xpt_quirk_entry *xpt_default_quirk; From owner-p4-projects@FreeBSD.ORG Tue Apr 24 04:55:40 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E839B16A404; Tue, 24 Apr 2007 04:55:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B7A3C16A402 for ; Tue, 24 Apr 2007 04:55:39 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9B6F713C43E for ; Tue, 24 Apr 2007 04:55:39 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O4tdlj058207 for ; Tue, 24 Apr 2007 04:55:39 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O4td3H058204 for perforce@freebsd.org; Tue, 24 Apr 2007 04:55:39 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 04:55:39 GMT Message-Id: <200704240455.l3O4td3H058204@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118703 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 04:55:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=118703 Change 118703 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 04:55:13 nix 2 more "notyet"s in offload functionality bring lro interface a bit closer to the Linux driver Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#11 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_lro.c#4 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#13 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#11 (text+ko) ==== @@ -92,10 +92,7 @@ FW_UPTODATE = (1 << 4), }; -/* Max active LRO sessions per queue set */ -#define MAX_LRO_PER_QSET 8 - #define FL_Q_SIZE 4096 #define JUMBO_Q_SIZE 512 #define RSPQ_Q_SIZE 1024 @@ -115,17 +112,23 @@ LRO_ACTIVE = (1 << 8), }; -struct sge_lro_session { - struct mbuf *m; +/* Max concurrent LRO sessions per queue set */ +#define MAX_LRO_SES 8 + +struct t3_lro_session { + struct mbuf *head; + struct mbuf *tail; uint32_t seq; uint16_t ip_len; + uint16_t vtag; + uint8_t npkts; }; -struct sge_lro { - unsigned int enabled; - unsigned int num_active; - struct sge_lro_session *last_s; - struct sge_lro_session s[MAX_LRO_PER_QSET]; +struct lro_state { + unsigned short enabled; + unsigned short active_idx; + unsigned int nactive; + struct t3_lro_session sess[MAX_LRO_SES]; }; #define RX_BUNDLE_SIZE 8 @@ -224,7 +227,7 @@ struct sge_qset { struct sge_rspq rspq; struct sge_fl fl[SGE_RXQ_PER_SET]; - struct sge_lro lro; + struct lro_state lro; struct sge_txq txq[SGE_TXQ_PER_SET]; unsigned long txq_stopped; /* which Tx queues are stopped */ uint64_t port_stats[SGE_PSTAT_MAX]; @@ -413,7 +416,7 @@ void t3_rx_eth_lro(adapter_t *adap, struct sge_rspq *rq, struct mbuf *m, int ethpad, uint32_t rss_hash, uint32_t rss_csum, int lro); void t3_rx_eth(struct port_info *p, struct sge_rspq *rq, struct mbuf *m, int ethpad); -void t3_sge_lro_flush_all(adapter_t *adap, struct sge_qset *qs); +void t3_lro_flush(adapter_t *adap, struct sge_qset *qs, struct lro_state *state); void t3_add_sysctls(adapter_t *sc); int t3_get_desc(const struct sge_qset *qs, unsigned int qnum, unsigned int idx, ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_lro.c#4 (text+ko) ==== @@ -82,51 +82,40 @@ #endif #define IPH_OFFSET (2 + sizeof (struct cpl_rx_pkt) + ETHER_HDR_LEN) -#define LRO_SESSION_IDX_HINT_HASH(hash) (hash & (MAX_LRO_PER_QSET - 1)) -#define LRO_IDX_INC(idx) idx = (idx + 1) & (MAX_LRO_PER_QSET - 1) - -static __inline struct sge_lro_session * -lro_session(struct sge_lro *l, int idx) -{ - return l->s + idx; -} +#define LRO_SESSION_IDX_HINT_HASH(hash) (hash & (MAX_LRO_SES - 1)) +#define LRO_IDX_INC(idx) idx = (idx + 1) & (MAX_LRO_SES - 1) static __inline int -lro_match_session(struct sge_lro_session *s, - struct ip *ih, struct tcphdr *th) +lro_match(struct mbuf *m, struct ip *ih, struct tcphdr *th) { - struct ip *sih = (struct ip *)(s->m->m_data + IPH_OFFSET); + struct ip *sih = (struct ip *)(m->m_data + IPH_OFFSET); struct tcphdr *sth = (struct tcphdr *) (sih + 1); /* - * Linux driver doesn't include destination port check -- - * need to find out why XXX + * Why don't we check dest ports? */ return (*(uint32_t *)&th->th_sport == *(uint32_t *)&sth->th_sport && - *(uint32_t *)&th->th_dport == *(uint32_t *)&sth->th_dport && ih->ip_src.s_addr == ih->ip_src.s_addr && ih->ip_dst.s_addr == sih->ip_dst.s_addr); } -static __inline struct sge_lro_session * -lro_find_session(struct sge_lro *l, int idx, struct ip *ih, struct tcphdr *th) +static __inline struct t3_lro_session * +lro_lookup(struct lro_state *l, int idx, struct ip *ih, struct tcphdr *th) { - struct sge_lro_session *s; - int active = 0; + struct t3_lro_session *s = NULL; + int active = l->nactive; - while (active < l->num_active) { - s = lro_session(l, idx); - if (s->m) { - if (lro_match_session(s, ih, th)) { - l->last_s = s; - return s; - } - active++; + while (active) { + s = &l->sess[idx]; + if (s->head) { + if (lro_match(s->head, ih, th)) + break; + active--; } LRO_IDX_INC(idx); } - return NULL; + return (s); } static __inline int @@ -174,7 +163,7 @@ } static __inline void -lro_new_session_init(struct sge_lro_session *s, struct mbuf *m) +lro_new_session_init(struct t3_lro_session *s, struct mbuf *m) { struct ip *ih = (struct ip *)(m->m_data + IPH_OFFSET); struct tcphdr *th = (struct tcphdr *) (ih + 1); @@ -182,7 +171,7 @@ DPRINTF("%s(s=%p, m=%p)\n", __FUNCTION__, s, m); - s->m = m; + s->head = m; MBUF_HEADER_CHECK(m); s->ip_len = ip_len; @@ -191,10 +180,10 @@ } static void -lro_flush_session(struct sge_qset *qs, struct sge_lro_session *s, struct mbuf *m) +lro_flush_session(struct sge_qset *qs, struct t3_lro_session *s, struct mbuf *m) { - struct sge_lro *l = &qs->lro; - struct mbuf *sm = s->m; + struct lro_state *l = &qs->lro; + struct mbuf *sm = s->head; struct ip *ih = (struct ip *)(sm->m_data + IPH_OFFSET); @@ -216,33 +205,33 @@ t3_rx_eth(qs->port, &qs->rspq, sm, 2); if (m) { - s->m = m; + s->head = m; lro_new_session_init(s, m); } else { - s->m = NULL; - l->num_active--; + s->head = NULL; + l->nactive--; } qs->port_stats[SGE_PSTATS_LRO_FLUSHED]++; } -static __inline struct sge_lro_session * +static __inline struct t3_lro_session * lro_new_session(struct sge_qset *qs, struct mbuf *m, uint32_t rss_hash) { - struct sge_lro *l = &qs->lro; + struct lro_state *l = &qs->lro; int idx = LRO_SESSION_IDX_HINT_HASH(rss_hash); - struct sge_lro_session *s = lro_session(l, idx); + struct t3_lro_session *s = &l->sess[idx]; DPRINTF("%s(qs=%p, m=%p, rss_hash=0x%x)\n", __FUNCTION__, qs, m, rss_hash); - if (__predict_true(!s->m)) + if (__predict_true(!s->head)) goto done; - if (l->num_active > MAX_LRO_PER_QSET) + if (l->nactive > MAX_LRO_SES) panic("MAX_LRO_PER_QSET exceeded"); - if (l->num_active == MAX_LRO_PER_QSET) { + if (l->nactive == MAX_LRO_SES) { lro_flush_session(qs, s, m); qs->port_stats[SGE_PSTATS_LRO_X_STREAMS]++; return s; @@ -250,21 +239,21 @@ while (1) { LRO_IDX_INC(idx); - s = lro_session(l, idx); - if (!s->m) + s = &l->sess[idx]; + if (!s->head) break; } done: lro_new_session_init(s, m); - l->num_active++; + l->nactive++; return s; } static __inline int -lro_update_session(struct sge_lro_session *s, struct mbuf *m) +lro_update_session(struct t3_lro_session *s, struct mbuf *m) { - struct mbuf *sm = s->m; + struct mbuf *sm = s->head; struct cpl_rx_pkt *cpl = (struct cpl_rx_pkt *)(sm->m_data + 2); struct cpl_rx_pkt *ncpl = (struct cpl_rx_pkt *)(m->m_data + 2); struct ip *nih = (struct ip *)(m->m_data + IPH_OFFSET); @@ -354,7 +343,7 @@ struct ether_header *eh = (struct ether_header *)(cpl + 1); struct ip *ih; struct tcphdr *th; - struct sge_lro_session *s = NULL; + struct t3_lro_session *s = NULL; struct port_info *pi = qs->port; if (lro == 0) @@ -369,7 +358,7 @@ ih = (struct ip *)(eh + 1); th = (struct tcphdr *)(ih + 1); - s = lro_find_session(&qs->lro, + s = lro_lookup(&qs->lro, LRO_SESSION_IDX_HINT_HASH(rss_hash), ih, th); if (__predict_false(!can_lro_tcpsegment(th))) { @@ -380,7 +369,7 @@ if (lro_update_session(s, m)) { lro_flush_session(qs, s, m); } - if (__predict_false(s->m->m_pkthdr.len + pi->ifp->if_mtu > 65535)) { + if (__predict_false(s->head->m_pkthdr.len + pi->ifp->if_mtu > 65535)) { lro_flush_session(qs, s, NULL); } } @@ -398,21 +387,15 @@ } void -t3_sge_lro_flush_all(adapter_t *adap, struct sge_qset *qs) +t3_lro_flush(adapter_t *adap, struct sge_qset *qs, struct lro_state *state) { - struct sge_lro *l = &qs->lro; - struct sge_lro_session *s = l->last_s; - int active = 0, idx = 0, num_active = l->num_active; + unsigned int idx = state->active_idx; - if (__predict_false(!s)) - s = lro_session(l, idx); - - while (active < num_active) { - if (s->m) { + while (state->nactive) { + struct t3_lro_session *s = &state->sess[idx]; + + if (s->head) lro_flush_session(qs, s, NULL); - active++; - } LRO_IDX_INC(idx); - s = lro_session(l, idx); } } ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#13 (text+ko) ==== @@ -2056,11 +2056,11 @@ static __inline void deliver_partial_bundle(struct toedev *tdev, struct sge_rspq *q, - struct mbuf *m[], int n) + struct mbuf *mbufs[], int n) { if (n) { q->offload_bundles++; - cxgb_ofld_recv(tdev, m, n); + cxgb_ofld_recv(tdev, mbufs, n); } } @@ -2069,8 +2069,10 @@ struct mbuf *m, struct mbuf *rx_gather[], unsigned int gather_idx) { -#ifdef notyet - if (rq->polling) { + rq->offload_pkts++; + m->m_pkthdr.header = mtod(m, void *); + + if (__predict_false(rq->polling)) { rx_gather[gather_idx++] = m; if (gather_idx == RX_BUNDLE_SIZE) { cxgb_ofld_recv(tdev, rx_gather, RX_BUNDLE_SIZE); @@ -2078,7 +2080,6 @@ rq->offload_bundles++; } } else -#endif offload_enqueue(rq, m); return (gather_idx); @@ -2274,9 +2275,8 @@ int budget_left = budget; unsigned int sleeping = 0; int lro = qs->lro.enabled; - - static uint8_t pinned[MAXCPU]; - + struct mbuf *offload_mbufs[RX_BUNDLE_SIZE]; + int ngathered = 0; #ifdef DEBUG static int last_holdoff = 0; if (rspq->holdoff_tmr != last_holdoff) { @@ -2367,7 +2367,8 @@ */ m->m_priority = rss_hash; - rx_offload(&adap->tdev, rspq, m); + ngathered = rx_offload(&adap->tdev, rspq, m, + offload_mbufs, ngathered); #endif } #ifdef notyet @@ -2379,10 +2380,11 @@ } --budget_left; } - t3_sge_lro_flush_all(adap, qs); -#ifdef notyet - deliver_partial_bundle(&adap->tdev, rspq); -#endif + + + deliver_partial_bundle(&adap->tdev, rspq, offload_mbufs, ngathered); + t3_lro_flush(adap, qs, &qs->lro); + if (sleeping) check_ring_db(adap, qs, sleeping); From owner-p4-projects@FreeBSD.ORG Tue Apr 24 06:30:38 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0164016A404; Tue, 24 Apr 2007 06:30:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9313516A41A for ; Tue, 24 Apr 2007 06:30:37 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7840C13C487 for ; Tue, 24 Apr 2007 06:30:37 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O6UbXV092346 for ; Tue, 24 Apr 2007 06:30:37 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O6UacP092343 for perforce@freebsd.org; Tue, 24 Apr 2007 06:30:36 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 06:30:36 GMT Message-Id: <200704240630.l3O6UacP092343@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118707 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 06:30:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=118707 Change 118707 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 06:30:12 factor out write work request for sgl header implement write_ofld_wr call rx_offload when receiving offloaded packets Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#14 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#14 (text+ko) ==== @@ -998,6 +998,95 @@ #endif } + + +/** + * write_wr_hdr_sgl - write a WR header and, optionally, SGL + * @ndesc: number of Tx descriptors spanned by the SGL + * @txd: first Tx descriptor to be written + * @txqs: txq state (generation and producer index) + * @txq: the SGE Tx queue + * @sgl: the SGL + * @flits: number of flits to the start of the SGL in the first descriptor + * @sgl_flits: the SGL size in flits + * @wr_hi: top 32 bits of WR header based on WR type (big endian) + * @wr_lo: low 32 bits of WR header based on WR type (big endian) + * + * Write a work request header and an associated SGL. If the SGL is + * small enough to fit into one Tx descriptor it has already been written + * and we just need to write the WR header. Otherwise we distribute the + * SGL across the number of descriptors it spans. + */ + +static void +write_wr_hdr_sgl(unsigned int ndesc, struct tx_desc *txd, struct txq_state *txqs, + const struct sge_txq *txq, const struct sg_ent *sgl, unsigned int flits, + unsigned int sgl_flits, unsigned int wr_hi, unsigned int wr_lo) +{ + + struct work_request_hdr *wrp = (struct work_request_hdr *)txd; + struct tx_sw_desc *txsd = &txq->sdesc[txqs->pidx]; + + if (__predict_true(ndesc == 1)) { + wrp->wr_hi = htonl(F_WR_SOP | F_WR_EOP | V_WR_DATATYPE(1) | + V_WR_SGLSFLT(flits)) | wr_hi; + wmb(); + wrp->wr_lo = htonl(V_WR_LEN(flits + sgl_flits) | + V_WR_GEN(txqs->gen)) | wr_lo; + /* XXX gen? */ + wr_gen2(txd, txqs->gen); + } else { + unsigned int ogen = txqs->gen; + const uint64_t *fp = (const uint64_t *)sgl; + struct work_request_hdr *wp = wrp; + + wrp->wr_hi = htonl(F_WR_SOP | V_WR_DATATYPE(1) | + V_WR_SGLSFLT(flits)) | wr_hi; + + while (sgl_flits) { + unsigned int avail = WR_FLITS - flits; + + if (avail > sgl_flits) + avail = sgl_flits; + memcpy(&txd->flit[flits], fp, avail * sizeof(*fp)); + sgl_flits -= avail; + ndesc--; + if (!sgl_flits) + break; + + fp += avail; + txd++; + txsd++; + if (++txqs->pidx == txq->size) { + txqs->pidx = 0; + txqs->gen ^= 1; + txd = txq->desc; + txsd = txq->sdesc; + } + + /* + * when the head of the mbuf chain + * is freed all clusters will be freed + * with it + */ + txsd->m = NULL; + wrp = (struct work_request_hdr *)txd; + wrp->wr_hi = htonl(V_WR_DATATYPE(1) | + V_WR_SGLSFLT(1)) | wr_hi; + wrp->wr_lo = htonl(V_WR_LEN(min(WR_FLITS, + sgl_flits + 1)) | + V_WR_GEN(txqs->gen)) | wr_lo; + wr_gen2(txd, txqs->gen); + flits = 1; + } + wrp->wr_hi |= htonl(F_WR_EOP); + wmb(); + wp->wr_lo = htonl(V_WR_LEN(WR_FLITS) | V_WR_GEN(ogen)) | wr_lo; + wr_gen2((struct tx_desc *)wp, ogen); + } +} + + /* sizeof(*eh) + sizeof(*vhdr) + sizeof(*ip) + sizeof(*tcp) */ #define TCPPKTHDRSIZE (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN + 20 + 20) @@ -1120,7 +1209,7 @@ m0 = *m; ndesc = calc_tx_descs(m0, nsegs); - sgp = (ndesc == 1) ? (struct sg_ent *)&txd->flit[flits] : &sgl[0]; + sgp = (ndesc == 1) ? (struct sg_ent *)&txd->flit[flits] : sgl; make_sgl(sgp, segs, nsegs); sgl_flits = sgl_len(nsegs); @@ -1132,65 +1221,8 @@ wr_lo = htonl(V_WR_TID(txq->token)); txsd->m = m0; m0->m_priority = txqs.pidx; - - if (__predict_true(ndesc == 1)) { - wrp->wr_hi = htonl(F_WR_SOP | F_WR_EOP | V_WR_DATATYPE(1) | - V_WR_SGLSFLT(flits)) | wr_hi; - wmb(); - wrp->wr_lo = htonl(V_WR_LEN(flits + sgl_flits) | - V_WR_GEN(txqs.gen)) | wr_lo; - /* XXX gen? */ - wr_gen2(txd, txqs.gen); - } else { - unsigned int ogen = txqs.gen; - const uint64_t *fp = (const uint64_t *)sgl; - struct work_request_hdr *wp = wrp; - - /* XXX - CHECK ME */ - wrp->wr_hi = htonl(F_WR_SOP | V_WR_DATATYPE(1) | - V_WR_SGLSFLT(flits)) | wr_hi; - - while (sgl_flits) { - unsigned int avail = WR_FLITS - flits; - if (avail > sgl_flits) - avail = sgl_flits; - memcpy(&txd->flit[flits], fp, avail * sizeof(*fp)); - sgl_flits -= avail; - ndesc--; - if (!sgl_flits) - break; - - fp += avail; - txd++; - txsd++; - if (++txqs.pidx == txq->size) { - txqs.pidx = 0; - txqs.gen ^= 1; - txd = txq->desc; - txsd = txq->sdesc; - } - - /* - * when the head of the mbuf chain - * is freed all clusters will be freed - * with it - */ - txsd->m = NULL; - wrp = (struct work_request_hdr *)txd; - wrp->wr_hi = htonl(V_WR_DATATYPE(1) | - V_WR_SGLSFLT(1)) | wr_hi; - wrp->wr_lo = htonl(V_WR_LEN(min(WR_FLITS, - sgl_flits + 1)) | - V_WR_GEN(txqs.gen)) | wr_lo; - wr_gen2(txd, txqs.gen); - flits = 1; - } - wrp->wr_hi |= htonl(F_WR_EOP); - wmb(); - wp->wr_lo = htonl(V_WR_LEN(WR_FLITS) | V_WR_GEN(ogen)) | wr_lo; - wr_gen2((struct tx_desc *)wp, ogen); - } + write_wr_hdr_sgl(ndesc, txd, &txqs, txq, sgl, flits, sgl_flits, wr_hi, wr_lo); check_ring_tx_db(p->adapter, txq); return (0); @@ -1788,15 +1820,16 @@ */ static void write_ofld_wr(adapter_t *adap, struct mbuf *m, - struct sge_txq *q, unsigned int pidx, - unsigned int gen, unsigned int ndesc) + struct sge_txq *q, unsigned int pidx, + unsigned int gen, unsigned int ndesc, + bus_dma_segment_t *segs, unsigned int nsegs) { -#ifdef notyet unsigned int sgl_flits, flits; struct work_request_hdr *from; struct sg_ent *sgp, sgl[TX_MAX_SEGS / 2 + 1]; struct tx_desc *d = &q->desc[pidx]; - + struct txq_state txqs; + if (immediate(m)) { q->sdesc[pidx].m = NULL; write_imm(d, m, m->m_len, gen); @@ -1806,20 +1839,20 @@ /* Only TX_DATA builds SGLs */ from = mtod(m, struct work_request_hdr *); - memcpy(&d->flit[1], &from[1], skb->h.raw - skb->data - sizeof(*from)); + memcpy(&d->flit[1], &from[1], + (uint8_t *)m->m_pkthdr.header - mtod(m, uint8_t *) - sizeof(*from)); + + flits = ((uint8_t *)m->m_pkthdr.header - mtod(m, uint8_t *)) / 8; + sgp = (ndesc == 1) ? (struct sg_ent *)&d->flit[flits] : sgl; + + make_sgl(sgp, segs, nsegs); + sgl_flits = sgl_len(nsegs); - flits = (skb->h.raw - skb->data) / 8; - sgp = ndesc == 1 ? (struct sg_ent *)&d->flit[flits] : sgl; - sgl_flits = make_sgl(skb, sgp, skb->h.raw, skb->tail - skb->h.raw, - adap->pdev); - if (need_skb_unmap()) { - setup_deferred_unmapping(skb, adap->pdev, sgp, sgl_flits); - skb->destructor = deferred_unmap_destructor; - ((struct unmap_info *)skb->cb)->len = skb->tail - skb->h.raw; - } - write_wr_hdr_sgl(ndesc, skb, d, pidx, q, sgl, flits, sgl_flits, - gen, from->wr_hi, from->wr_lo); -#endif + txqs.gen = q->gen; + txqs.pidx = q->pidx; + txqs.compl = (q->unacked & 8) << (S_WR_COMPL - 3); + write_wr_hdr_sgl(ndesc, d, &txqs, q, sgl, flits, sgl_flits, + from->wr_hi, from->wr_lo); } /** @@ -1830,7 +1863,7 @@ * packet. These packets are already fully constructed. */ static __inline unsigned int -calc_tx_descs_ofld(const struct mbuf *mbuf) +calc_tx_descs_ofld(const struct mbuf *m, unsigned int nsegs) { #ifdef notyet unsigned int flits, cnt = skb_shinfo(skb)->nr_frags; @@ -1860,12 +1893,19 @@ ofld_xmit(adapter_t *adap, struct sge_txq *q, struct mbuf *m) { int ret; - unsigned int pidx, gen; - unsigned int ndesc = calc_tx_descs_ofld(m); + unsigned int pidx, gen, nsegs; + unsigned int ndesc; struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; + bus_dma_segment_t segs[TX_MAX_SEGS]; int i, cleaned; - + struct tx_sw_desc *stx = &q->sdesc[q->pidx]; + mtx_lock(&q->lock); + if ((ret = busdma_map_mbufs(&m, q, stx, segs, &nsegs)) != 0) { + mtx_unlock(&q->lock); + return (ret); + } + ndesc = calc_tx_descs_ofld(m, nsegs); again: cleaned = reclaim_completed_tx(adap, q, TX_CLEAN_MAX_DESC, m_vec); ret = check_desc_avail(adap, q, m, ndesc, TXQ_OFLD); @@ -1894,7 +1934,7 @@ #endif mtx_unlock(&q->lock); - write_ofld_wr(adap, m, q, pidx, gen, ndesc); + write_ofld_wr(adap, m, q, pidx, gen, ndesc, segs, nsegs); check_ring_tx_db(adap, q); for (i = 0; i < cleaned; i++) { @@ -1952,7 +1992,7 @@ __skb_unlink(skb, &q->sendq); #endif mtx_unlock(&q->lock); - write_ofld_wr(adap, skb, q, pidx, gen, ndesc); + write_ofld_wr(adap, skb, q, pidx, gen, ndesc, segs, nsegs); mtx_lock(&q->lock); } #endif @@ -2360,16 +2400,14 @@ rspq->m = NULL; } else { -#ifdef notyet - m->pkthdr.csum_data = rss_csum; + rspq->m->m_pkthdr.csum_data = rss_csum; /* * XXX size mismatch */ - m->m_priority = rss_hash; + rspq->m->m_priority = rss_hash; - ngathered = rx_offload(&adap->tdev, rspq, m, + ngathered = rx_offload(&adap->tdev, rspq, rspq->m, offload_mbufs, ngathered); -#endif } #ifdef notyet taskqueue_enqueue(adap->tq, &adap->timer_reclaim_task); From owner-p4-projects@FreeBSD.ORG Tue Apr 24 06:41:52 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32A3D16A403; Tue, 24 Apr 2007 06:41:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 073B416A400 for ; Tue, 24 Apr 2007 06:41:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id EB52913C45A for ; Tue, 24 Apr 2007 06:41:51 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O6fpto094617 for ; Tue, 24 Apr 2007 06:41:51 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O6fpZr094612 for perforce@freebsd.org; Tue, 24 Apr 2007 06:41:51 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 06:41:51 GMT Message-Id: <200704240641.l3O6fpZr094612@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 06:41:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=118709 Change 118709 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 06:41:47 implement calc_tx_descs_ofld along with small cleanups Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#15 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#15 (text+ko) ==== @@ -1863,22 +1863,20 @@ * packet. These packets are already fully constructed. */ static __inline unsigned int -calc_tx_descs_ofld(const struct mbuf *m, unsigned int nsegs) +calc_tx_descs_ofld(struct mbuf *m, unsigned int nsegs) { -#ifdef notyet - unsigned int flits, cnt = skb_shinfo(skb)->nr_frags; + unsigned int flits, cnt = 0; + - if (m->m_len <= WR_LEN && cnt == 0) + if (m->m_len <= WR_LEN) return 1; /* packet fits as immediate data */ - flits = (m->m_pkthdr.header - mtod(m, char *)) / 8; /* headers */ + if (m->m_flags & M_IOVEC) + cnt = mtomv(m)->mv_count; - if (skb->tail != skb->h.raw) - cnt++; + flits = ((uint8_t *)m->m_pkthdr.header - mtod(m, uint8_t *)) / 8; /* headers */ return flits_to_desc(flits + sgl_len(cnt)); -#endif - return (0); } /** @@ -1952,16 +1950,14 @@ static void restart_offloadq(unsigned long data) { -#ifdef notyet + struct mbuf *m; -#endif struct sge_qset *qs = (struct sge_qset *)data; struct sge_txq *q = &qs->txq[TXQ_OFLD]; adapter_t *adap = qs->port->adapter; struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; int i, cleaned; -#ifdef notyet mtx_lock(&q->lock); again: cleaned = reclaim_completed_tx(adap, q, TX_CLEAN_MAX_DESC, m_vec); @@ -1988,14 +1984,14 @@ q->pidx -= q->size; q->gen ^= 1; } -#if 0 + __skb_unlink(skb, &q->sendq); -#endif + mtx_unlock(&q->lock); write_ofld_wr(adap, skb, q, pidx, gen, ndesc, segs, nsegs); mtx_lock(&q->lock); } -#endif + mtx_unlock(&q->lock); #if USE_GTS From owner-p4-projects@FreeBSD.ORG Tue Apr 24 06:51:06 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 261C316A401; Tue, 24 Apr 2007 06:51:06 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C577516A406 for ; Tue, 24 Apr 2007 06:51:05 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id B37E613C458 for ; Tue, 24 Apr 2007 06:51:05 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3O6p5LZ096121 for ; Tue, 24 Apr 2007 06:51:05 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3O6p4ad096048 for perforce@freebsd.org; Tue, 24 Apr 2007 06:51:04 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 06:51:04 GMT Message-Id: <200704240651.l3O6p4ad096048@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118712 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 06:51:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=118712 Change 118712 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 06:50:50 IFC Affected files ... .. //depot/projects/opentoe/UPDATING#6 integrate .. //depot/projects/opentoe/contrib/sendmail/libmilter/engine.c#3 integrate .. //depot/projects/opentoe/contrib/sendmail/libmilter/listener.c#3 integrate .. //depot/projects/opentoe/contrib/sendmail/libmilter/main.c#3 integrate .. //depot/projects/opentoe/etc/sendmail/freebsd.mc#2 integrate .. //depot/projects/opentoe/etc/sendmail/freebsd.submit.mc#2 integrate .. //depot/projects/opentoe/lib/libbsm/Makefile#2 integrate .. //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 integrate .. //depot/projects/opentoe/sys/cam/scsi/scsi_da.c#4 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate .. //depot/projects/opentoe/sys/dev/led/led.c#2 integrate .. //depot/projects/opentoe/sys/dev/led/led.h#2 integrate .. //depot/projects/opentoe/sys/fs/devfs/devfs_devs.c#2 integrate .. //depot/projects/opentoe/sys/fs/devfs/devfs_vnops.c#5 integrate .. //depot/projects/opentoe/sys/fs/pseudofs/pseudofs_vncache.c#3 integrate .. //depot/projects/opentoe/sys/geom/uzip/g_uzip.c#3 integrate .. //depot/projects/opentoe/sys/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/opentoe/sys/kern/kern_uuid.c#2 integrate .. //depot/projects/opentoe/sys/netgraph/ng_l2tp.c#2 integrate .. //depot/projects/opentoe/sys/netinet/tcp_input.c#6 integrate .. //depot/projects/opentoe/sys/netinet6/route6.c#2 integrate .. //depot/projects/opentoe/sys/pci/if_vr.c#4 integrate .. //depot/projects/opentoe/sys/pci/if_vrreg.h#4 integrate .. //depot/projects/opentoe/sys/security/mac/mac_framework.h#3 integrate .. //depot/projects/opentoe/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/opentoe/sys/security/mac/mac_vfs.c#3 integrate .. //depot/projects/opentoe/sys/security/mac_biba/mac_biba.c#3 integrate .. //depot/projects/opentoe/sys/security/mac_bsdextended/mac_bsdextended.c#3 integrate .. //depot/projects/opentoe/sys/security/mac_ifoff/mac_ifoff.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_lomac/mac_lomac.c#3 integrate .. //depot/projects/opentoe/sys/security/mac_mls/mac_mls.c#3 integrate .. //depot/projects/opentoe/sys/security/mac_partition/mac_partition.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_portacl/mac_portacl.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_seeotheruids/mac_seeotheruids.c#2 integrate .. //depot/projects/opentoe/sys/security/mac_stub/mac_stub.c#3 integrate .. //depot/projects/opentoe/sys/security/mac_test/mac_test.c#3 integrate .. //depot/projects/opentoe/sys/vm/swap_pager.c#2 integrate .. //depot/projects/opentoe/tools/tools/net80211/wesside/wesside/wesside.c#3 integrate .. //depot/projects/opentoe/tools/tools/recoverdisk/recoverdisk.c#2 integrate .. //depot/projects/opentoe/usr.bin/quota/quota.c#2 integrate .. //depot/projects/opentoe/usr.sbin/rpcbind/rpcbind.8#2 integrate .. //depot/projects/opentoe/usr.sbin/rpcbind/rpcbind.c#2 integrate Differences ... ==== //depot/projects/opentoe/UPDATING#6 (text+ko) ==== @@ -21,6 +21,12 @@ developers choose to disable these features on build machines to maximize performance. +20070423: + The ABI breakage in sendmail(8)'s libmilter has been repaired + so it is no longer necessary to recompile mail filters (aka, + milters). If you recompiled mail filters after the 20070408 + note, it is not necessary to recompile them again. + 20070417: The new trunk(4) driver has been renamed to lagg(4) as it better reflects its purpose. ifconfig will need to be recompiled. @@ -767,4 +773,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ +$FreeBSD: src/UPDATING,v 1.489 2007/04/23 22:15:07 gshapiro Exp $ ==== //depot/projects/opentoe/contrib/sendmail/libmilter/engine.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2004, 2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2004, 2006, 2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -855,6 +855,7 @@ ; if (g->a_ctx->ctx_smfi != NULL && + g->a_ctx->ctx_smfi->xxfi_version > 4 && (fi_negotiate = g->a_ctx->ctx_smfi->xxfi_negotiate) != NULL) { int r; @@ -1177,6 +1178,7 @@ if (g == NULL) return _SMFIS_ABORT; if (g->a_ctx->ctx_smfi != NULL && + g->a_ctx->ctx_smfi->xxfi_version > 3 && (fi_data = g->a_ctx->ctx_smfi->xxfi_data) != NULL) return (*fi_data)(g->a_ctx); return SMFIS_CONTINUE; @@ -1310,6 +1312,7 @@ if (g == NULL) return _SMFIS_ABORT; if (g->a_ctx->ctx_smfi != NULL && + g->a_ctx->ctx_smfi->xxfi_version > 2 && (fi_unknown = g->a_ctx->ctx_smfi->xxfi_unknown) != NULL) return (*fi_unknown)(g->a_ctx, (const char *) g->a_buf); return SMFIS_CONTINUE; ==== //depot/projects/opentoe/contrib/sendmail/libmilter/listener.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -927,9 +927,9 @@ ctx->ctx_pflags |= SMFIP_NOEOH; if (smfi->xxfi_body == NULL) ctx->ctx_pflags |= SMFIP_NOBODY; - if (smfi->xxfi_data == NULL) + if (smfi->xxfi_version <= 3 || smfi->xxfi_data == NULL) ctx->ctx_pflags |= SMFIP_NODATA; - if (smfi->xxfi_unknown == NULL) + if (smfi->xxfi_version <= 2 || smfi->xxfi_unknown == NULL) ctx->ctx_pflags |= SMFIP_NOUNKNOWN; #if _FFR_WORKERS_POOL ==== //depot/projects/opentoe/contrib/sendmail/libmilter/main.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2003, 2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2003, 2006, 2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -52,7 +52,10 @@ (void) sm_strlcpy(smfi->xxfi_name, smfilter.xxfi_name, len); /* compare milter version with hard coded version */ - if (smfi->xxfi_version != SMFI_VERSION) + if (smfi->xxfi_version != SMFI_VERSION && + smfi->xxfi_version != 2 && + smfi->xxfi_version != 3 && + smfi->xxfi_version != 4) { /* hard failure for now! */ smi_log(SMI_LOG_ERR, ==== //depot/projects/opentoe/etc/sendmail/freebsd.mc#2 (text+ko) ==== @@ -44,7 +44,7 @@ # divert(0) -VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.33 2006/08/17 05:12:07 gshapiro Exp $') +VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.34 2007/04/23 22:23:54 gshapiro Exp $') OSTYPE(freebsd6) DOMAIN(generic) ==== //depot/projects/opentoe/etc/sendmail/freebsd.submit.mc#2 (text+ko) ==== @@ -16,7 +16,7 @@ # divert(0)dnl -VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.submit.mc,v 1.4 2006/08/17 05:12:07 gshapiro Exp $') +VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.submit.mc,v 1.5 2007/04/23 22:23:54 gshapiro Exp $') define(`confCF_VERSION', `Submit')dnl define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet ==== //depot/projects/opentoe/lib/libbsm/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/lib/libbsm/Makefile,v 1.5 2006/09/25 11:53:58 rwatson Exp $ +# $FreeBSD: src/lib/libbsm/Makefile,v 1.6 2007/04/23 14:46:59 rwatson Exp $ # OPENBSMDIR= ${.CURDIR}/../../contrib/openbsm @@ -143,6 +143,7 @@ au_token.3 au_to_header32.3 \ au_token.3 au_to_header64.3 \ au_token.3 au_to_trailer.3 \ + au_token.3 au_to_zonename.3 \ au_user.3 setauuser.3 \ au_user.3 endauuser.3 \ au_user.3 getauuserent.3 \ ==== //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1021 2007/04/21 03:45:18 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1022 2007/04/23 22:48:13 gshapiro Exp $ 2000 @@ -2026,9 +2026,7 @@ &merged; sendmail has been updated from - 8.13.4 to 8.14.1. This upgrade includes a new libmilter - library which requires all dynamically linked milters to be - recompiled. &merged; + 8.13.4 to 8.14.1. &merged; tcpdump has been updated from 3.9.1 to 3.9.4. &merged; ==== //depot/projects/opentoe/sys/cam/scsi/scsi_da.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.207 2007/04/19 22:18:15 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.208 2007/04/23 18:01:44 scottl Exp $"); #include @@ -39,20 +39,13 @@ #include #include #include -#endif /* _KERNEL */ - +#include #include -#include #include #include #include - -#include - -#include -#include - #include +#endif /* _KERNEL */ #ifndef _KERNEL #include ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 (text+ko) ==== @@ -2802,13 +2802,14 @@ #ifdef _KERNEL /* Warn about ZFS memory requirements. */ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { - printf("ZFS WARNING: Recomended minimum of RAM size is 512MB, " - "expect unstable behaviour.\n"); + printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " + "expect unstable behavior.\n"); } else if (kmem_size() < 256 * (1 << 20)) { - printf("ZFS WARNING: Recomended minimum of kmem_map size is " - "256MB, expect unstable behaviour.\n"); - printf(" Consider tunning vm.kmem_size and " - "vm.kmem_size_max in /boot/loader.conf.\n"); + printf("ZFS WARNING: Recommended minimum kmem_size is 256MB; " + "expect unstable behavior.\n"); + printf(" Consider tuning vm.kmem_size or " + "vm.kmem_size_min\n"); + printf(" in /boot/loader.conf.\n"); } #endif } ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 (text+ko) ==== @@ -188,7 +188,7 @@ * data (cmd == _FIO_SEEK_DATA). "off" is an in/out parameter. */ static int -zfs_holey(vnode_t *vp, int cmd, offset_t *off) +zfs_holey(vnode_t *vp, u_long cmd, offset_t *off) { znode_t *zp = VTOZ(vp); uint64_t noff = (uint64_t)*off; /* new offset */ @@ -228,7 +228,7 @@ /* ARGSUSED */ static int -zfs_ioctl(vnode_t *vp, int com, intptr_t data, int flag, cred_t *cred, +zfs_ioctl(vnode_t *vp, u_long com, intptr_t data, int flag, cred_t *cred, int *rvalp) { offset_t off; @@ -3110,7 +3110,7 @@ } */ *ap; { - return (zfs_ioctl(ap->a_vp, (int)ap->a_command, (intptr_t)ap->a_data, + return (zfs_ioctl(ap->a_vp, ap->a_command, (intptr_t)ap->a_data, ap->a_fflag, ap->a_cred, NULL)); } ==== //depot/projects/opentoe/sys/dev/led/led.c#2 (text+ko) ==== @@ -9,7 +9,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/led/led.c,v 1.16 2005/03/07 11:05:46 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/led/led.c,v 1.17 2007/04/23 12:42:15 phk Exp $"); #include #include @@ -242,6 +242,12 @@ struct cdev * led_create(led_t *func, void *priv, char const *name) { + + return (led_create_state(func, priv, name, 0)); +} +struct cdev * +led_create_state(led_t *func, void *priv, char const *name, int state) +{ struct ledsc *sc; sc = malloc(sizeof *sc, M_LED, M_WAITOK | M_ZERO); @@ -259,7 +265,7 @@ if (LIST_EMPTY(&led_list)) callout_reset(&led_ch, hz / 10, led_timeout, NULL); LIST_INSERT_HEAD(&led_list, sc, list); - sc->func(sc->private, 0); + sc->func(sc->private, state != 0); mtx_unlock(&led_mtx); return (sc->dev); ==== //depot/projects/opentoe/sys/dev/led/led.h#2 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/dev/led/led.h,v 1.5 2004/06/16 09:46:49 phk Exp $ + * $FreeBSD: src/sys/dev/led/led.h,v 1.6 2007/04/23 12:42:15 phk Exp $ */ #ifndef _DEV_LED_H @@ -14,6 +14,7 @@ typedef void led_t(void *, int); +struct cdev *led_create_state(led_t *, void *, char const *, int); struct cdev *led_create(led_t *, void *, char const *); void led_destroy(struct cdev *); ==== //depot/projects/opentoe/sys/fs/devfs/devfs_devs.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ * * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vfsops.c 1.36 * - * $FreeBSD: src/sys/fs/devfs/devfs_devs.c,v 1.49 2006/10/22 11:52:12 rwatson Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_devs.c,v 1.50 2007/04/23 13:36:52 rwatson Exp $ */ #include "opt_mac.h" @@ -182,7 +182,7 @@ de->de_links = 1; de->de_holdcnt = 1; #ifdef MAC - mac_init_devfsdirent(de); + mac_init_devfs(de); #endif return (de); } @@ -274,7 +274,7 @@ de->de_symlink = NULL; } #ifdef MAC - mac_destroy_devfsdirent(de); + mac_destroy_devfs(de); #endif if (de->de_inode > DEVFS_ROOTINO) { free_unr(devfs_inos, de->de_inode); ==== //depot/projects/opentoe/sys/fs/devfs/devfs_vnops.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43 * - * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.144 2007/04/20 01:47:05 trhodes Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.145 2007/04/23 13:36:52 rwatson Exp $ */ /* @@ -1229,7 +1229,7 @@ de = vp->v_data; mac_relabel_vnode(ap->a_cred, vp, ap->a_label); - mac_update_devfsdirent(vp->v_mount, de, vp); + mac_update_devfs(vp->v_mount, de, vp); return (0); } ==== //depot/projects/opentoe/sys/fs/pseudofs/pseudofs_vncache.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/fs/pseudofs/pseudofs_vncache.c,v 1.37 2007/04/15 17:10:01 des Exp $"); +__FBSDID("$FreeBSD: src/sys/fs/pseudofs/pseudofs_vncache.c,v 1.38 2007/04/23 19:17:01 des Exp $"); #include "opt_pseudofs.h" @@ -150,10 +150,15 @@ /* nope, get a new one */ MALLOC(pvd, struct pfs_vdata *, sizeof *pvd, M_PFSVNCACHE, M_WAITOK); + mtx_lock(&pfs_vncache_mutex); if (++pfs_vncache_entries > pfs_vncache_maxentries) pfs_vncache_maxentries = pfs_vncache_entries; + mtx_unlock(&pfs_vncache_mutex); error = getnewvnode("pseudofs", mp, &pfs_vnodeops, vpp); if (error) { + mtx_lock(&pfs_vncache_mutex); + --pfs_vncache_entries; + mtx_unlock(&pfs_vncache_mutex); FREE(pvd, M_PFSVNCACHE); return (error); } @@ -195,6 +200,9 @@ vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY, curthread); error = insmntque(*vpp, mp); if (error != 0) { + mtx_lock(&pfs_vncache_mutex); + --pfs_vncache_entries; + mtx_unlock(&pfs_vncache_mutex); FREE(pvd, M_PFSVNCACHE); *vpp = NULLVP; return (error); @@ -226,9 +234,9 @@ pvd->pvd_prev->pvd_next = pvd->pvd_next; else pfs_vncache = pvd->pvd_next; + --pfs_vncache_entries; mtx_unlock(&pfs_vncache_mutex); - --pfs_vncache_entries; FREE(pvd, M_PFSVNCACHE); vp->v_data = NULL; return (0); ==== //depot/projects/opentoe/sys/geom/uzip/g_uzip.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/uzip/g_uzip.c,v 1.11 2007/04/07 02:52:13 simokawa Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/uzip/g_uzip.c,v 1.12 2007/04/24 06:30:06 simokawa Exp $"); #include #include @@ -162,6 +162,13 @@ ulen = MIN(sc->blksz - uoff, bp2->bio_length - upos); len = sc->offsets[i + 1] - sc->offsets[i]; + if (len == 0) { + /* All zero block: no cache update */ + bzero(bp2->bio_data + upos, ulen); + upos += ulen; + bp2->bio_completed += ulen; + continue; + } zs.next_in = bp->bio_data + pos; zs.avail_in = len; zs.next_out = sc->last_buf; ==== //depot/projects/opentoe/sys/i386/i386/vm_machdep.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.276 2007/03/05 21:40:10 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.277 2007/04/23 22:53:01 jhb Exp $"); #include "opt_isa.h" #include "opt_npx.h" @@ -641,7 +641,7 @@ } #endif /* PC98 */ - printf("No known reset method did work, attempting CPU shutdown\n"); + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ /* Force a shutdown by unmapping entire address space. */ ==== //depot/projects/opentoe/sys/kern/kern_uuid.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_uuid.c,v 1.12 2007/03/05 13:10:57 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_uuid.c,v 1.13 2007/04/23 12:53:00 pjd Exp $"); #include #include @@ -116,7 +116,7 @@ /* * Get the current time as a 60 bit count of 100-nanosecond intervals * since 00:00:00.00, October 15,1582. We apply a magic offset to convert - * the Unix time since 00:00:00.00, Januari 1, 1970 to the date of the + * the Unix time since 00:00:00.00, January 1, 1970 to the date of the * Gregorian reform to the Christian calendar. */ static uint64_t ==== //depot/projects/opentoe/sys/netgraph/ng_l2tp.c#2 (text+ko) ==== @@ -36,7 +36,7 @@ * * Author: Archie Cobbs * - * $FreeBSD: src/sys/netgraph/ng_l2tp.c,v 1.15 2005/08/10 06:25:40 obrien Exp $ + * $FreeBSD: src/sys/netgraph/ng_l2tp.c,v 1.16 2007/04/23 15:25:14 mav Exp $ */ /* @@ -1122,6 +1122,10 @@ hpriv->stats.xmitPackets++; hpriv->stats.xmitOctets += m->m_pkthdr.len; + /* And the global one. */ + priv->stats.xmitPackets++; + priv->stats.xmitOctets += m->m_pkthdr.len; + /* Send packet */ NG_FWD_NEW_DATA(error, item, priv->lower, m); return (error); ==== //depot/projects/opentoe/sys/netinet/tcp_input.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.340 2007/04/20 15:28:01 andre Exp $ + * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.341 2007/04/23 19:41:47 andre Exp $ */ #include "opt_ipfw.h" /* for ipfw_fwd */ @@ -751,9 +751,9 @@ if (inp->inp_vflag & INP_TIMEWAIT) { if (thflags & TH_SYN) tcp_dooptions(&to, optp, optlen, TO_SYN); + /* NB: tcp_timewait unlocks the INP and frees the mbuf. */ if (tcp_timewait(inp, &to, th, m, tlen)) goto findpcb; - /* tcp_timewait unlocks inp. */ INP_INFO_WUNLOCK(&tcbinfo); return; } @@ -764,7 +764,6 @@ */ tp = intotcpcb(inp); if (tp == NULL) { - INP_UNLOCK(inp); rstreason = BANDLIM_RST_CLOSEDPORT; goto dropwithreset; } @@ -833,6 +832,10 @@ * timestamp. */ tcp_dooptions(&to, optp, optlen, 0); + /* + * NB: syncache_expand() doesn't unlock + * inp and tcpinfo locks. + */ if (!syncache_expand(&inc, &to, th, &so, m)) { /* * No syncache entry or ACK was not @@ -925,8 +928,6 @@ if ((ia6 = ip6_getdstifaddr(m)) && (ia6->ia6_flags & IN6_IFF_DEPRECATED)) { - INP_UNLOCK(inp); - tp = NULL; rstreason = BANDLIM_RST_OPENPORT; goto dropwithreset; } @@ -998,7 +999,7 @@ m = NULL; /* mbuf chain got consumed. */ dropunlock: INP_INFO_WLOCK_ASSERT(&tcbinfo); - if (tp != NULL) + if (inp != NULL) INP_UNLOCK(inp); INP_INFO_WUNLOCK(&tcbinfo); drop: ==== //depot/projects/opentoe/sys/netinet6/route6.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/route6.c,v 1.12 2005/07/25 12:31:42 ume Exp $ */ +/* $FreeBSD: src/sys/netinet6/route6.c,v 1.13 2007/04/23 09:32:04 gnn Exp $ */ /* $KAME: route6.c,v 1.24 2001/03/14 03:07:05 itojun Exp $ */ /*- @@ -49,9 +49,12 @@ #include +#if 0 static int ip6_rthdr0 __P((struct mbuf *, struct ip6_hdr *, struct ip6_rthdr0 *)); +#endif /* Disable route header processing. */ + int route6_input(mp, offp, proto) struct mbuf **mp; @@ -87,6 +90,7 @@ #endif switch (rh->ip6r_type) { +#if 0 case IPV6_RTHDR_TYPE_0: rhlen = (rh->ip6r_len + 1) << 3; #ifndef PULLDOWN_TEST @@ -114,6 +118,7 @@ if (ip6_rthdr0(m, ip6, (struct ip6_rthdr0 *)rh)) return (IPPROTO_DONE); break; +#endif /* Disable route header 0 */ default: /* unknown routing type */ if (rh->ip6r_segleft == 0) { @@ -136,6 +141,7 @@ * RFC2292 backward compatibility warning: no support for strict/loose bitmap, * as it was dropped between RFC1883 and RFC2460. */ +#if 0 static int ip6_rthdr0(m, ip6, rh0) struct mbuf *m; @@ -233,3 +239,4 @@ m_freem(m); return (-1); } +#endif ==== //depot/projects/opentoe/sys/pci/if_vr.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/pci/if_vr.c,v 1.125 2007/04/22 15:58:56 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/pci/if_vr.c,v 1.126 2007/04/23 12:19:02 phk Exp $"); /* * VIA Rhine fast ethernet PCI NIC driver @@ -575,6 +575,7 @@ ifp->if_capabilities |= IFCAP_HWCSUM; } + ifp->if_capabilities |= IFCAP_VLAN_MTU; ifp->if_capenable = ifp->if_capabilities; if (ifp->if_capenable & IFCAP_TXCSUM) ifp->if_hwassist = (CSUM_IP | CSUM_TCP | CSUM_UDP); ==== //depot/projects/opentoe/sys/pci/if_vrreg.h#4 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/pci/if_vrreg.h,v 1.33 2007/04/22 15:48:29 phk Exp $ + * $FreeBSD: src/sys/pci/if_vrreg.h,v 1.34 2007/04/23 12:19:02 phk Exp $ */ /* @@ -401,7 +401,7 @@ #define VR_TX_LIST_CNT 256 #define VR_MIN_FRAMELEN 60 #define VR_FRAMELEN 1536 -#define VR_RXLEN 1520 +#define VR_RXLEN 1524 struct vr_mii_frame { u_int8_t mii_stdelim; ==== //depot/projects/opentoe/sys/security/mac/mac_framework.h#3 (text+ko) ==== @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/security/mac/mac_framework.h,v 1.81 2007/04/22 19:55:55 rwatson Exp $ + * $FreeBSD: src/sys/security/mac/mac_framework.h,v 1.82 2007/04/23 13:36:53 rwatson Exp $ */ /* @@ -91,7 +91,7 @@ */ void mac_init_bpfdesc(struct bpf_d *); void mac_init_cred(struct ucred *); -void mac_init_devfsdirent(struct devfs_dirent *); +void mac_init_devfs(struct devfs_dirent *); void mac_init_ifnet(struct ifnet *); int mac_init_inpcb(struct inpcb *, int); void mac_init_sysv_msgmsg(struct msg *); @@ -112,7 +112,7 @@ void mac_copy_vnode_label(struct label *, struct label *); void mac_destroy_bpfdesc(struct bpf_d *); void mac_destroy_cred(struct ucred *); -void mac_destroy_devfsdirent(struct devfs_dirent *); +void mac_destroy_devfs(struct devfs_dirent *); void mac_destroy_ifnet(struct ifnet *); void mac_destroy_inpcb(struct inpcb *); void mac_destroy_sysv_msgmsg(struct msg *); @@ -152,7 +152,7 @@ void mac_create_mount(struct ucred *cred, struct mount *mp); void mac_relabel_vnode(struct ucred *cred, struct vnode *vp, struct label *newlabel); -void mac_update_devfsdirent(struct mount *mp, struct devfs_dirent *de, +void mac_update_devfs(struct mount *mp, struct devfs_dirent *de, struct vnode *vp); /* ==== //depot/projects/opentoe/sys/security/mac/mac_policy.h#3 (text+ko) ==== @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/security/mac/mac_policy.h,v 1.90 2007/04/22 19:55:56 rwatson Exp $ + * $FreeBSD: src/sys/security/mac/mac_policy.h,v 1.91 2007/04/23 13:36:53 rwatson Exp $ */ /* * Kernel interface for MAC policy modules. @@ -117,7 +117,7 @@ */ typedef void (*mpo_init_bpfdesc_label_t)(struct label *label); typedef void (*mpo_init_cred_label_t)(struct label *label); -typedef void (*mpo_init_devfsdirent_label_t)(struct label *label); +typedef void (*mpo_init_devfs_label_t)(struct label *label); typedef void (*mpo_init_ifnet_label_t)(struct label *label); typedef int (*mpo_init_inpcb_label_t)(struct label *label, int flag); typedef void (*mpo_init_sysv_msgmsg_label_t)(struct label *label); @@ -136,7 +136,7 @@ typedef void (*mpo_init_vnode_label_t)(struct label *label); typedef void (*mpo_destroy_bpfdesc_label_t)(struct label *label); typedef void (*mpo_destroy_cred_label_t)(struct label *label); -typedef void (*mpo_destroy_devfsdirent_label_t)(struct label *label); +typedef void (*mpo_destroy_devfs_label_t)(struct label *label); typedef void (*mpo_destroy_ifnet_label_t)(struct label *label); typedef void (*mpo_destroy_inpcb_label_t)(struct label *label); typedef void (*mpo_destroy_sysv_msgmsg_label_t)(struct label *label); @@ -227,7 +227,7 @@ typedef int (*mpo_setlabel_vnode_extattr_t)(struct ucred *cred, struct vnode *vp, struct label *vplabel, struct label *intlabel); -typedef void (*mpo_update_devfsdirent_t)(struct mount *mp, +typedef void (*mpo_update_devfs_t)(struct mount *mp, struct devfs_dirent *de, struct label *delabel, struct vnode *vp, struct label *vplabel); @@ -630,7 +630,7 @@ */ mpo_init_bpfdesc_label_t mpo_init_bpfdesc_label; mpo_init_cred_label_t mpo_init_cred_label; - mpo_init_devfsdirent_label_t mpo_init_devfsdirent_label; + mpo_init_devfs_label_t mpo_init_devfs_label; mpo_placeholder_t _mpo_placeholder0; mpo_init_ifnet_label_t mpo_init_ifnet_label; mpo_init_inpcb_label_t mpo_init_inpcb_label; @@ -649,7 +649,7 @@ mpo_init_vnode_label_t mpo_init_vnode_label; mpo_destroy_bpfdesc_label_t mpo_destroy_bpfdesc_label; mpo_destroy_cred_label_t mpo_destroy_cred_label; - mpo_destroy_devfsdirent_label_t mpo_destroy_devfsdirent_label; + mpo_destroy_devfs_label_t mpo_destroy_devfs_label; mpo_placeholder_t _mpo_placeholder1; mpo_destroy_ifnet_label_t mpo_destroy_ifnet_label; mpo_destroy_inpcb_label_t mpo_destroy_inpcb_label; @@ -706,7 +706,7 @@ mpo_create_mount_t mpo_create_mount; mpo_relabel_vnode_t mpo_relabel_vnode; mpo_setlabel_vnode_extattr_t mpo_setlabel_vnode_extattr; - mpo_update_devfsdirent_t mpo_update_devfsdirent; + mpo_update_devfs_t mpo_update_devfs; /* * Labeling event operations: IPC objects. ==== //depot/projects/opentoe/sys/security/mac/mac_vfs.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/security/mac/mac_vfs.c,v 1.120 2007/04/22 16:18:09 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/security/mac/mac_vfs.c,v 1.121 2007/04/23 13:36:53 rwatson Exp $"); #include "opt_mac.h" @@ -81,20 +81,20 @@ struct vnode *vp, struct label *intlabel); static struct label * -mac_devfsdirent_label_alloc(void) +mac_devfs_label_alloc(void) { struct label *label; label = mac_labelzone_alloc(M_WAITOK); - MAC_PERFORM(init_devfsdirent_label, label); + MAC_PERFORM(init_devfs_label, label); return (label); } void -mac_init_devfsdirent(struct devfs_dirent *de) +mac_init_devfs(struct devfs_dirent *de) { - de->de_label = mac_devfsdirent_label_alloc(); + de->de_label = mac_devfs_label_alloc(); } static struct label * @@ -132,18 +132,18 @@ } static void -mac_devfsdirent_label_free(struct label *label) +mac_devfs_label_free(struct label *label) { - MAC_PERFORM(destroy_devfsdirent_label, label); + MAC_PERFORM(destroy_devfs_label, label); mac_labelzone_free(label); } void -mac_destroy_devfsdirent(struct devfs_dirent *de) +mac_destroy_devfs(struct devfs_dirent *de) { - mac_devfsdirent_label_free(de->de_label); + mac_devfs_label_free(de->de_label); de->de_label = NULL; } @@ -208,12 +208,10 @@ } void -mac_update_devfsdirent(struct mount *mp, struct devfs_dirent *de, - struct vnode *vp) +mac_update_devfs(struct mount *mp, struct devfs_dirent *de, struct vnode *vp) { - MAC_PERFORM(update_devfsdirent, mp, de, de->de_label, vp, - vp->v_label); + MAC_PERFORM(update_devfs, mp, de, de->de_label, vp, vp->v_label); } void ==== //depot/projects/opentoe/sys/security/mac_biba/mac_biba.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/security/mac_biba/mac_biba.c,v 1.104 2007/04/22 16:18:09 rwatson Exp $ + * $FreeBSD: src/sys/security/mac_biba/mac_biba.c,v 1.106 2007/04/23 13:36:53 rwatson Exp $ */ /* @@ -784,12 +784,12 @@ */ static void mac_biba_create_devfs_device(struct ucred *cred, struct mount *mp, - struct cdev *dev, struct devfs_dirent *devfs_dirent, struct label *label) + struct cdev *dev, struct devfs_dirent *de, struct label *delabel) { struct mac_biba *mac_biba; int biba_type; - mac_biba = SLOT(label); + mac_biba = SLOT(delabel); if (strcmp(dev->si_name, "null") == 0 || strcmp(dev->si_name, "zero") == 0 || strcmp(dev->si_name, "random") == 0 || @@ -806,11 +806,11 @@ static void mac_biba_create_devfs_directory(struct mount *mp, char *dirname, - int dirnamelen, struct devfs_dirent *devfs_dirent, struct label *label) + int dirnamelen, struct devfs_dirent *de, struct label *delabel) { struct mac_biba *mac_biba; - mac_biba = SLOT(label); + mac_biba = SLOT(delabel); mac_biba_set_effective(mac_biba, MAC_BIBA_TYPE_HIGH, 0, NULL); } @@ -829,36 +829,35 @@ static void mac_biba_create_mount(struct ucred *cred, struct mount *mp, - struct label *mntlabel) + struct label *mplabel) { struct mac_biba *source, *dest; source = SLOT(cred->cr_label); - dest = SLOT(mntlabel); + dest = SLOT(mplabel); mac_biba_copy_effective(source, dest); } static void mac_biba_relabel_vnode(struct ucred *cred, struct vnode *vp, - struct label *vnodelabel, struct label *label) + struct label *vplabel, struct label *newlabel) { struct mac_biba *source, *dest; - source = SLOT(label); - dest = SLOT(vnodelabel); + source = SLOT(newlabel); + dest = SLOT(vplabel); mac_biba_copy(source, dest); } static void -mac_biba_update_devfsdirent(struct mount *mp, - struct devfs_dirent *devfs_dirent, struct label *direntlabel, - struct vnode *vp, struct label *vnodelabel) +mac_biba_update_devfs(struct mount *mp, struct devfs_dirent *de, + struct label *delabel, struct vnode *vp, struct label *vplabel) { struct mac_biba *source, *dest; - source = SLOT(vnodelabel); - dest = SLOT(direntlabel); + source = SLOT(vplabel); + dest = SLOT(delabel); mac_biba_copy(source, dest); } @@ -866,25 +865,25 @@ static void mac_biba_associate_vnode_devfs(struct mount *mp, struct label *mntlabel, struct devfs_dirent *de, struct label *delabel, struct vnode *vp, - struct label *vlabel) + struct label *vplabel) { struct mac_biba *source, *dest; source = SLOT(delabel); - dest = SLOT(vlabel); + dest = SLOT(vplabel); mac_biba_copy_effective(source, dest); } static int -mac_biba_associate_vnode_extattr(struct mount *mp, struct label *mntlabel, - struct vnode *vp, struct label *vlabel) +mac_biba_associate_vnode_extattr(struct mount *mp, struct label *mplabel, + struct vnode *vp, struct label *vplabel) { struct mac_biba temp, *source, *dest; int buflen, error; - source = SLOT(mntlabel); - dest = SLOT(vlabel); + source = SLOT(mplabel); + dest = SLOT(vplabel); buflen = sizeof(temp); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Apr 24 10:47:59 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A9D816A404; Tue, 24 Apr 2007 10:47:59 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3F26616A400 for ; Tue, 24 Apr 2007 10:47:59 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3060613C448 for ; Tue, 24 Apr 2007 10:47:59 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OAlxFq054522 for ; Tue, 24 Apr 2007 10:47:59 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OAlxfG054519 for perforce@freebsd.org; Tue, 24 Apr 2007 10:47:59 GMT (envelope-from rdivacky@FreeBSD.org) Date: Tue, 24 Apr 2007 10:47:59 GMT Message-Id: <200704241047.l3OAlxfG054519@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118717 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 10:47:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=118717 Change 118717 by rdivacky@rdivacky_witten on 2007/04/24 10:47:41 Add some comments clarifying what the requeing code does. It took me half a year to understand this ;) Affected files ... .. //depot/projects/linuxolator/src/sys/compat/linux/linux_futex.c#16 edit Differences ... ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_futex.c#16 (text+ko) ==== @@ -401,9 +401,12 @@ TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); FUTEX_UNLOCK; + /* if we got woken up in futex_wake */ if ((ret == 0) && (wp->wp_new_futex != NULL)) { + /* suspend us on the new futex */ ret = futex_sleep(wp->wp_new_futex, td, timeout); - futex_put(wp->wp_new_futex); /* futex_get called in wakeup */ + /* and release the old one */ + futex_put(wp->wp_new_futex); } free(wp, M_LINUX); @@ -430,10 +433,15 @@ wakeup_one(wp); count++; } else { + /* if we are going to requeue stuff */ if (newf != NULL) { - /* futex_put called after tsleep */ + /* get a new futex */ wp->wp_new_futex = futex_get(newf->f_uaddr, FUTEX_LOCKED); + /* + * and wake it up so the code in futex_sleep + * can requeue us + */ wakeup_one(wp); if (count - n >= n2) break; From owner-p4-projects@FreeBSD.ORG Tue Apr 24 11:10:43 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 28FCA16A47C; Tue, 24 Apr 2007 11:10:43 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DB0E216A477 for ; Tue, 24 Apr 2007 11:10:42 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id BC82013C44B for ; Tue, 24 Apr 2007 11:10:42 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OBAgx6059444 for ; Tue, 24 Apr 2007 11:10:42 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OBAgXS059441 for perforce@freebsd.org; Tue, 24 Apr 2007 11:10:42 GMT (envelope-from taleks@FreeBSD.org) Date: Tue, 24 Apr 2007 11:10:42 GMT Message-Id: <200704241110.l3OBAgXS059441@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 118721 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 11:10:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=118721 Change 118721 by taleks@taleks_th on 2007/04/24 11:09:55 Not compilable at all. Just first view of lib. Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/pxe_conv.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_conv.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_http.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_mem.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_mem.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_mutex.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_mutex.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.c#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.h#1 add .. //depot/projects/soc2007/taleks-pxe_http/pxe_tcp.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Tue Apr 24 15:09:35 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 31F4316A407; Tue, 24 Apr 2007 15:09:35 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D24E516A402 for ; Tue, 24 Apr 2007 15:09:34 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id C48F513C457 for ; Tue, 24 Apr 2007 15:09:34 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OF9Yc6021170 for ; Tue, 24 Apr 2007 15:09:34 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OF9Ylj021167 for perforce@freebsd.org; Tue, 24 Apr 2007 15:09:34 GMT (envelope-from mjacob@freebsd.org) Date: Tue, 24 Apr 2007 15:09:34 GMT Message-Id: <200704241509.l3OF9Ylj021167@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118729 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 15:09:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=118729 Change 118729 by mjacob@mjexp on 2007/04/24 15:09:27 Fix a couple LORs in isp_attach. Stop a couple of pcmd leaks. Fix an oops about RELENG_4- sim_action is called at softcam- not cam, so we have to raise priority for RELENG_4. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#21 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#21 (text+ko) ==== @@ -219,8 +219,11 @@ /* * Create device nodes */ + ISP_UNLOCK(isp); (void) make_dev(&isp_cdevsw, device_get_unit(isp->isp_dev), UID_ROOT, GID_OPERATOR, 0600, "%s", device_get_nameunit(isp->isp_dev)); + isp_sysctl_update(isp); + ISP_LOCK(isp); if (isp->isp_role != ISP_ROLE_NONE) { isp->isp_state = ISP_RUNSTATE; @@ -235,9 +238,6 @@ } tmp->isp_osinfo.next = isp; } - ISP_UNLOCK(isp); - isp_sysctl_update(isp); - ISP_LOCK(isp); /* * Create a kernel thread for fibre channel instances. @@ -2052,6 +2052,7 @@ if (XS_CMD_DONE_P(xs)) { isp_prt(isp, ISP_LOGDEBUG2, "watchdog cleanup for handle 0x%x", handle); + isp_free_pcmd(isp, (union ccb *)xs); xpt_done((union ccb *) xs); } else if (XS_CMD_GRACE_P(xs)) { /* @@ -2386,9 +2387,22 @@ #endif } +#if __FreeBSD_version < 500000 +static void isp_action_wrk(struct cam_sim *, union ccb *); static void isp_action(struct cam_sim *sim, union ccb *ccb) { + ispsoftc_t *isp = (ispsoftc_t *)cam_sim_softc(sim); + ISP_LOCK(isp); + isp_action_wrk(sim, ccb); + ISP_UNLOCK(isp); +} +#define isp_action isp_action_wrk +#endif + +static void +isp_action(struct cam_sim *sim, union ccb *ccb) +{ int bus, tgt, ts, error, lim; ispsoftc_t *isp; struct ccb_trans_settings *cts; @@ -2493,22 +2507,23 @@ cam_release_devq(ccb->ccb_h.path, RELSIM_RELEASE_AFTER_TIMEOUT, 0, 1000, 0); XS_SETERR(ccb, CAM_REQUEUE_REQ); + isp_free_pcmd(isp, ccb); xpt_done(ccb); break; case CMD_EAGAIN: + XS_SETERR(ccb, CAM_REQUEUE_REQ); isp_free_pcmd(isp, ccb); - XS_SETERR(ccb, CAM_REQUEUE_REQ); xpt_done(ccb); break; case CMD_COMPLETE: isp_done((struct ccb_scsiio *) ccb); break; default: - isp_free_pcmd(isp, ccb); isp_prt(isp, ISP_LOGERR, "What's this? 0x%x at %d in file %s", error, __LINE__, __FILE__); XS_SETERR(ccb, CAM_REQ_CMP_ERR); + isp_free_pcmd(isp, ccb); xpt_done(ccb); } break; From owner-p4-projects@FreeBSD.ORG Tue Apr 24 17:27:25 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 412DE16A403; Tue, 24 Apr 2007 17:27:25 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 186D616A400 for ; Tue, 24 Apr 2007 17:27:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0A59213C465 for ; Tue, 24 Apr 2007 17:27:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OHROL2064699 for ; Tue, 24 Apr 2007 17:27:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OHROTT064696 for perforce@freebsd.org; Tue, 24 Apr 2007 17:27:24 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 24 Apr 2007 17:27:24 GMT Message-Id: <200704241727.l3OHROTT064696@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118747 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 17:27:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=118747 Change 118747 by hselasky@hselasky_mini_itx on 2007/04/24 17:26:25 Bugfixes. The CDC ethernet driver reads the mac address from the wrong descriptor. usbd_find_descriptor() must take an additional argument, and that is the interface domain in which it should search for descriptors. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/if_cdce.c#13 edit .. //depot/projects/usb/src/sys/dev/usb/umodem.c#18 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#33 edit .. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#36 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/if_cdce.c#13 (text+ko) ==== @@ -252,9 +252,9 @@ goto alloc_transfers; } - ud = ((const void *)usbd_find_descriptor - (usbd_get_config_descriptor(uaa->device), - UDESC_CS_INTERFACE, UDESCSUB_CDC_UNION)); + ud = usbd_find_descriptor + (uaa->device, uaa->iface_index, + UDESC_CS_INTERFACE, UDESCSUB_CDC_UNION); if ((ud == NULL) || (ud->bLength < sizeof(*ud))) { device_printf(dev, "no union descriptor!\n"); @@ -327,9 +327,9 @@ &cdce_ifmedia_upd_cb, &cdce_ifmedia_sts_cb); - ue = ((const void *)usbd_find_descriptor - (usbd_get_config_descriptor(uaa->device), - UDESC_INTERFACE, UDESCSUB_CDC_ENF)); + ue = usbd_find_descriptor + (uaa->device, uaa->iface_index, + UDESC_CS_INTERFACE, UDESCSUB_CDC_ENF); if ((ue == NULL) || (ue->bLength < sizeof(*ue)) || usbreq_get_string_any(uaa->device, ue->iMacAddress, @@ -391,12 +391,8 @@ sc->sc_ifp = ifp; - mtx_unlock(&(sc->sc_mtx)); - ether_ifattach(ifp, eaddr); - mtx_lock(&(sc->sc_mtx)); - return 0; /* success */ detach: ==== //depot/projects/usb/src/sys/dev/usb/umodem.c#18 (text+ko) ==== @@ -166,7 +166,7 @@ static void umodem_stop_read(struct ucom_softc *ucom); static void umodem_start_write(struct ucom_softc *ucom); static void umodem_stop_write(struct ucom_softc *ucom); -static void umodem_get_caps(struct usbd_device *udev, u_int8_t *cm, u_int8_t *acm); +static void umodem_get_caps(struct usb_attach_arg *uaa, uint8_t *cm, uint8_t *acm); static void umodem_cfg_get_status(struct ucom_softc *ucom, u_int8_t *lsr, u_int8_t *msr); static int umodem_pre_param(struct ucom_softc *ucom, struct termios *t); static void umodem_cfg_param(struct ucom_softc *ucom, struct termios *t); @@ -174,7 +174,7 @@ static void umodem_cfg_set_dtr(struct ucom_softc *ucom, u_int8_t onoff); static void umodem_cfg_set_rts(struct ucom_softc *ucom, u_int8_t onoff); static void umodem_cfg_set_break(struct ucom_softc *ucom, u_int8_t onoff); -static void * umodem_get_desc(struct usbd_device *udev, u_int8_t type, u_int8_t subtype); +static void * umodem_get_desc(struct usb_attach_arg *uaa, uint8_t type, uint8_t subtype); static usbd_status umodem_set_comm_feature(struct usbd_device *udev, u_int8_t iface_no, uint16_t feature, uint16_t state); static void umodem_cfg_do_request(struct umodem_softc *sc, usb_device_request_t *req, void *data); @@ -313,7 +313,7 @@ goto done; } - umodem_get_caps(uaa->device, &cm, &acm); + umodem_get_caps(uaa, &cm, &acm); if (!(cm & USB_CDC_CM_DOES_CM) || !(cm & USB_CDC_CM_OVER_DATA) || !(acm & USB_CDC_ACM_HAS_LINE)) { @@ -347,12 +347,11 @@ sc->sc_ctrl_iface_index = uaa->iface_index; sc->sc_udev = uaa->device; - umodem_get_caps(uaa->device, &sc->sc_cm_cap, &sc->sc_acm_cap); + umodem_get_caps(uaa, &sc->sc_cm_cap, &sc->sc_acm_cap); /* get the data interface number */ - cmd = umodem_get_desc(uaa->device, UDESC_CS_INTERFACE, - UDESCSUB_CDC_CM); + cmd = umodem_get_desc(uaa, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM); if ((cmd == NULL) || (cmd->bLength < sizeof(*cmd))) { device_printf(dev, "no CM descriptor!\n"); @@ -491,21 +490,21 @@ } static void -umodem_get_caps(struct usbd_device *udev, u_int8_t *cm, u_int8_t *acm) +umodem_get_caps(struct usb_attach_arg *uaa, uint8_t *cm, uint8_t *acm) { usb_cdc_cm_descriptor_t *cmd; usb_cdc_acm_descriptor_t *cad; *cm = *acm = 0; - cmd = umodem_get_desc(udev, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM); + cmd = umodem_get_desc(uaa, UDESC_CS_INTERFACE, UDESCSUB_CDC_CM); if ((cmd == NULL) || (cmd->bLength < sizeof(*cmd))) { DPRINTF(0, "no CM desc\n"); return; } *cm = cmd->bmCapabilities; - cad = umodem_get_desc(udev, UDESC_CS_INTERFACE, UDESCSUB_CDC_ACM); + cad = umodem_get_desc(uaa, UDESC_CS_INTERFACE, UDESCSUB_CDC_ACM); if ((cad == NULL) || (cad->bLength < sizeof(*cad))) { DPRINTF(0, "no ACM desc\n"); return; @@ -903,9 +902,8 @@ static void * umodem_get_desc(struct usbd_device *udev, u_int8_t type, u_int8_t subtype) { - usb_config_descriptor_t *cd = usbd_get_config_descriptor(udev); - usb_descriptor_t *desc = usbd_find_descriptor(cd, type, subtype); - return desc; + return + usbd_find_descriptor(uaa->device, uaa->iface_index, type, subtype); } static usbd_status ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#33 (text+ko) ==== @@ -360,21 +360,46 @@ return (NULL); } -usb_descriptor_t * -usbd_find_descriptor(usb_config_descriptor_t *cd, int type, int subtype) +void * +usbd_find_descriptor(struct usbd_device *udev, uint16_t iface_index, + int16_t type, int16_t subtype) { - usb_descriptor_t *desc = NULL; + usb_descriptor_t *desc; + usb_config_descriptor_t *cd; + usb_interface_descriptor_t *id; + struct usbd_interface *iface; + + cd = usbd_get_config_descriptor(udev); + if (cd == NULL) { + return NULL; + } + + iface = usbd_get_iface(udev, iface_index); + if (iface == NULL) { + return NULL; + } + + id = usbd_get_interface_descriptor(iface); + if (id == NULL) { + return NULL; + } + + desc = (void *)id; while ((desc = usbd_desc_foreach(cd, desc))) { - if((desc->bDescriptorType == type) && - ((subtype == USBD_SUBTYPE_ANY) || - (subtype == desc->bDescriptorSubtype))) + if (desc->bDescriptorType == UDESC_INTERFACE) { + break; + } + + if ((desc->bDescriptorType == type) && + ((subtype == USBD_SUBTYPE_ANY) || + (subtype == desc->bDescriptorSubtype))) { return desc; } } - return (NULL); + return NULL; } int ==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#36 (text+ko) ==== @@ -552,7 +552,7 @@ struct usb_hid_descriptor *usbd_get_hdesc(usb_config_descriptor_t *cd, usb_interface_descriptor_t *id); usb_interface_descriptor_t *usbd_find_idesc(usb_config_descriptor_t *cd, uint16_t iface_index, uint16_t alt_index); usb_endpoint_descriptor_t *usbd_find_edesc(usb_config_descriptor_t *cd, uint16_t iface_index, uint16_t alt_index, uint16_t endptidx); -usb_descriptor_t *usbd_find_descriptor(usb_config_descriptor_t *cd, int32_t type, int32_t subtype); +void * usbd_find_descriptor(struct usbd_device *udev, uint16_t iface_index, int16_t type, int16_t subtype); int usbd_get_no_alts(usb_config_descriptor_t *cd, uint8_t ifaceno); usbd_status usbd_search_and_set_config(struct usbd_device *udev, int32_t no, int32_t msg); usbd_status usbd_set_config_index(struct usbd_device *udev, int32_t index, int32_t msg); From owner-p4-projects@FreeBSD.ORG Tue Apr 24 20:15:54 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D5E5516A406; Tue, 24 Apr 2007 20:15:53 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8E7D016A402 for ; Tue, 24 Apr 2007 20:15:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6686113C43E for ; Tue, 24 Apr 2007 20:15:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OKFqWf098274 for ; Tue, 24 Apr 2007 20:15:52 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OKFqGc098271 for perforce@freebsd.org; Tue, 24 Apr 2007 20:15:52 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 24 Apr 2007 20:15:52 GMT Message-Id: <200704242015.l3OKFqGc098271@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118752 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 20:15:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=118752 Change 118752 by hselasky@hselasky_mini_itx on 2007/04/24 20:15:13 Compile fix. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/umodem.c#19 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/umodem.c#19 (text+ko) ==== @@ -900,7 +900,7 @@ } static void * -umodem_get_desc(struct usbd_device *udev, u_int8_t type, u_int8_t subtype) +umodem_get_desc(struct usb_attach_arg *uaa, u_int8_t type, u_int8_t subtype) { return usbd_find_descriptor(uaa->device, uaa->iface_index, type, subtype); From owner-p4-projects@FreeBSD.ORG Tue Apr 24 21:14:16 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3D63416A418; Tue, 24 Apr 2007 21:14:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 09A8616A40B for ; Tue, 24 Apr 2007 21:14:16 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6C5F513C501 for ; Tue, 24 Apr 2007 21:14:08 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OLE5sB017351 for ; Tue, 24 Apr 2007 21:14:05 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OLE59I017348 for perforce@freebsd.org; Tue, 24 Apr 2007 21:14:05 GMT (envelope-from mjacob@freebsd.org) Date: Tue, 24 Apr 2007 21:14:05 GMT Message-Id: <200704242114.l3OLE59I017348@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118754 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 21:14:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=118754 Change 118754 by mjacob@mjexp on 2007/04/24 21:13:51 Restore lost first line. Affected files ... .. //depot/projects/mjexp/sys/dev/isp/isp_sbus.c#13 edit Differences ... ==== //depot/projects/mjexp/sys/dev/isp/isp_sbus.c#13 (text+ko) ==== @@ -1,3 +1,4 @@ +/*- * Copyright (c) 1997-2006 by Matthew Jacob * All rights reserved. * From owner-p4-projects@FreeBSD.ORG Tue Apr 24 22:15:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1F14216A413; Tue, 24 Apr 2007 22:15:22 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E712016A40E for ; Tue, 24 Apr 2007 22:15:21 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D641113C4AD for ; Tue, 24 Apr 2007 22:15:21 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OMFLBx029975 for ; Tue, 24 Apr 2007 22:15:21 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OMFLlL029972 for perforce@freebsd.org; Tue, 24 Apr 2007 22:15:21 GMT (envelope-from scottl@freebsd.org) Date: Tue, 24 Apr 2007 22:15:21 GMT Message-Id: <200704242215.l3OMFLlL029972@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 118756 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 22:15:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=118756 Change 118756 by scottl@scottl-x64 on 2007/04/24 22:15:16 Turn the XPT SIM into a newbus driver. Remove pseudo-driver glue. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#64 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#64 (text+ko) ==== @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -170,13 +171,13 @@ static periph_init_t xpt_periph_init; -static struct periph_driver xpt_driver = +static struct periph_driver xpt_periph_driver = { xpt_periph_init, "xpt", - TAILQ_HEAD_INITIALIZER(xpt_driver.units) + TAILQ_HEAD_INITIALIZER(xpt_periph_driver.units) }; -PERIPHDRIVER_DECLARE(xpt, xpt_driver); +PERIPHDRIVER_DECLARE(xpt, xpt_periph_driver); static d_open_t xptopen; @@ -235,20 +236,27 @@ #endif /* CAMDEBUG */ #endif /* CAM_DEBUG_BUS || CAM_DEBUG_TARGET || CAM_DEBUG_LUN */ -/* Our boot-time initialization hook */ -static int cam_module_event_handler(module_t, int /*modeventtype_t*/, void *); +static void xpt_identify(driver_t *driver, device_t parent); +static int xpt_probe(device_t dev); +static int xpt_attach(device_t dev); +static int xpt_detach(device_t dev); -static moduledata_t cam_moduledata = { - "cam", - cam_module_event_handler, - NULL +static device_method_t xpt_sim_methods[] = { + DEVMETHOD(device_identify, xpt_identify), + DEVMETHOD(device_probe, xpt_probe), + DEVMETHOD(device_attach, xpt_attach), + DEVMETHOD(device_detach, xpt_detach), + { 0, 0 } }; -static int xpt_init(void *); +static driver_t xpt_sim_driver = { + "xptsim", + xpt_sim_methods, + 1, /* XXX Need softc */ +}; -DECLARE_MODULE(cam, cam_moduledata, SI_SUB_CONFIGURE, SI_ORDER_SECOND); -MODULE_VERSION(cam, 1); - +static devclass_t xpt_devclass; +DRIVER_MODULE(xpt, nexus, xpt_sim_driver, xpt_devclass, 0, 0); static void xpt_async_bcast(struct async_list *async_head, u_int32_t async_code, @@ -837,25 +845,6 @@ return(error); } -static int -cam_module_event_handler(module_t mod, int what, void *arg) -{ - int error; - - switch (what) { - case MOD_LOAD: - if ((error = xpt_init(NULL)) != 0) - return (error); - break; - case MOD_UNLOAD: - return EBUSY; - default: - return EOPNOTSUPP; - } - - return 0; -} - /* thread to handle bus rescans */ static void xpt_scanner_thread(void *dummy) @@ -919,8 +908,26 @@ } /* Functions accessed by the peripheral drivers */ +static void +xpt_identify(driver_t *driver, device_t parent) +{ + + if (resource_disabled("xpt", 0)) + return; + if (BUS_ADD_CHILD(parent, 0, "xptsim", 0) == NULL) + panic("xpt_identify"); +} + +static int +xpt_probe(device_t dev) +{ + + device_set_desc(dev, "CAM Transport"); + return (0); +} + static int -xpt_init(void *dummy) +xpt_attach(device_t dev) { struct cam_sim *xpt_sim; struct cam_path *path; @@ -960,7 +967,7 @@ mtx_lock(&xsoftc.xpt_lock); if ((status = xpt_bus_register(xpt_sim, /*bus #*/0)) != CAM_SUCCESS) { - printf("xpt_init: xpt_bus_register failed with status %#x," + printf("xpt_attach: xpt_bus_register failed with status %#x," " failing attach\n", status); return (EINVAL); } @@ -973,7 +980,7 @@ if ((status = xpt_create_path(&path, NULL, CAM_XPT_PATH_ID, CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD)) != CAM_REQ_CMP) { - printf("xpt_init: xpt_create_path failed with status %#x," + printf("xpt_attach: xpt_create_path failed with status %#x," " failing attach\n", status); return (EINVAL); } @@ -990,7 +997,7 @@ (struct intr_config_hook *)malloc(sizeof(struct intr_config_hook), M_TEMP, M_NOWAIT | M_ZERO); if (xsoftc.xpt_config_hook == NULL) { - printf("xpt_init: Cannot malloc config hook " + printf("xpt_attach: Cannot malloc config hook " "- failing attach\n"); return (ENOMEM); } @@ -998,13 +1005,13 @@ xsoftc.xpt_config_hook->ich_func = xpt_config; if (config_intrhook_establish(xsoftc.xpt_config_hook) != 0) { free (xsoftc.xpt_config_hook, M_TEMP); - printf("xpt_init: config_intrhook_establish failed " + printf("xpt_attach: config_intrhook_establish failed " "- failing attach\n"); } /* fire up rescan thread */ if (kthread_create(xpt_scanner_thread, NULL, NULL, 0, 0, "xpt_thrd")) { - printf("xpt_init: failed to create rescan thread\n"); + printf("xpt_attach: failed to create rescan thread\n"); } /* Install our software interrupt handlers */ swi_add(NULL, "cambio", camisr, NULL, SWI_CAMBIO, INTR_MPSAFE, &cambio_ih); @@ -1012,6 +1019,13 @@ return (0); } +static int +xpt_detach(device_t dev) +{ + + return (EBUSY); +} + static cam_status xptregister(struct cam_periph *periph, void *arg) { @@ -4033,7 +4047,7 @@ * If this wasn't a fully wildcarded async, tell all * clients that want all async events. */ - if (bus != xpt_periph->path->bus) + if (bus->path_id != CAM_XPT_PATH_ID) xpt_async_bcast(&xpt_periph->path->device->asyncs, async_code, path, async_arg); } From owner-p4-projects@FreeBSD.ORG Tue Apr 24 22:19:27 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6705C16A409; Tue, 24 Apr 2007 22:19:27 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1DD8A16A407 for ; Tue, 24 Apr 2007 22:19:27 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0C4AA13C45E for ; Tue, 24 Apr 2007 22:19:27 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OMJRp3030087 for ; Tue, 24 Apr 2007 22:19:27 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OMJQHq030084 for perforce@freebsd.org; Tue, 24 Apr 2007 22:19:26 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 22:19:26 GMT Message-Id: <200704242219.l3OMJQHq030084@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118757 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 22:19:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=118757 Change 118757 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 22:19:26 hook in ctrlq and offloadq restart tasks Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#12 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#16 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#12 (text+ko) ==== @@ -201,6 +201,7 @@ struct tx_sw_desc *sdesc; uint32_t token; bus_addr_t phys_addr; + struct task qresume_tsk; uint32_t cntxt_id; uint64_t stops; uint64_t restarts; @@ -229,7 +230,7 @@ struct sge_fl fl[SGE_RXQ_PER_SET]; struct lro_state lro; struct sge_txq txq[SGE_TXQ_PER_SET]; - unsigned long txq_stopped; /* which Tx queues are stopped */ + uint32_t txq_stopped; /* which Tx queues are stopped */ uint64_t port_stats[SGE_PSTAT_MAX]; struct port_info *port; int idx; /* qset # */ ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#16 (text+ko) ==== @@ -1385,7 +1385,7 @@ return (0); } -#ifdef RESTART_CTRLQ + /** * restart_ctrlq - restart a suspended control queue * @qs: the queue set cotaining the control queue @@ -1393,7 +1393,7 @@ * Resumes transmission on a suspended Tx control queue. */ static void -restart_ctrlq(unsigned long data) +restart_ctrlq(void *data, int npending) { struct mbuf *m; struct sge_qset *qs = (struct sge_qset *)data; @@ -1401,8 +1401,10 @@ adapter_t *adap = qs->port->adapter; mtx_lock(&q->lock); + m = NULL; +#ifdef notyet again: reclaim_completed_tx_imm(q); - + while (q->in_use < q->size && (skb = __skb_dequeue(&q->sendq)) != NULL) { @@ -1423,12 +1425,12 @@ goto again; q->stops++; } - +#endif mtx_unlock(&q->lock); t3_write_reg(adap, A_SG_KDOORBELL, F_SELEGRCNTX | V_EGRCNTX(q->cntxt_id)); } -#endif + /* * Send a management message through control queue 0 @@ -1440,172 +1442,6 @@ } /** - * t3_sge_alloc_qset - initialize an SGE queue set - * @sc: the controller softc - * @id: the queue set id - * @nports: how many Ethernet ports will be using this queue set - * @irq_vec_idx: the IRQ vector index for response queue interrupts - * @p: configuration parameters for this queue set - * @ntxq: number of Tx queues for the queue set - * @pi: port info for queue set - * - * Allocate resources and initialize an SGE queue set. A queue set - * comprises a response queue, two Rx free-buffer queues, and up to 3 - * Tx queues. The Tx queues are assigned roles in the order Ethernet - * queue, offload queue, and control queue. - */ -int -t3_sge_alloc_qset(adapter_t *sc, u_int id, int nports, int irq_vec_idx, - const struct qset_params *p, int ntxq, struct port_info *pi) -{ - struct sge_qset *q = &sc->sge.qs[id]; - int i, ret = 0; - - init_qset_cntxt(q, id); - - if ((ret = alloc_ring(sc, p->fl_size, sizeof(struct rx_desc), - sizeof(struct rx_sw_desc), &q->fl[0].phys_addr, - &q->fl[0].desc, &q->fl[0].sdesc, - &q->fl[0].desc_tag, &q->fl[0].desc_map, - sc->rx_dmat, &q->fl[0].entry_tag)) != 0) { - printf("error %d from alloc ring fl0\n", ret); - goto err; - } - - if ((ret = alloc_ring(sc, p->jumbo_size, sizeof(struct rx_desc), - sizeof(struct rx_sw_desc), &q->fl[1].phys_addr, - &q->fl[1].desc, &q->fl[1].sdesc, - &q->fl[1].desc_tag, &q->fl[1].desc_map, - sc->rx_jumbo_dmat, &q->fl[1].entry_tag)) != 0) { - printf("error %d from alloc ring fl1\n", ret); - goto err; - } - - if ((ret = alloc_ring(sc, p->rspq_size, sizeof(struct rsp_desc), 0, - &q->rspq.phys_addr, &q->rspq.desc, NULL, - &q->rspq.desc_tag, &q->rspq.desc_map, - NULL, NULL)) != 0) { - printf("error %d from alloc ring rspq\n", ret); - goto err; - } - - for (i = 0; i < ntxq; ++i) { - /* - * The control queue always uses immediate data so does not - * need to keep track of any mbufs. - * XXX Placeholder for future TOE support. - */ - size_t sz = i == TXQ_CTRL ? 0 : sizeof(struct tx_sw_desc); - - if ((ret = alloc_ring(sc, p->txq_size[i], - sizeof(struct tx_desc), sz, - &q->txq[i].phys_addr, &q->txq[i].desc, - &q->txq[i].sdesc, &q->txq[i].desc_tag, - &q->txq[i].desc_map, - sc->tx_dmat, &q->txq[i].entry_tag)) != 0) { - printf("error %d from alloc ring tx %i\n", ret, i); - goto err; - } - q->txq[i].gen = 1; - q->txq[i].size = p->txq_size[i]; - mtx_init(&q->txq[i].lock, "t3 txq lock", NULL, MTX_DEF); - } - - q->fl[0].gen = q->fl[1].gen = 1; - q->fl[0].size = p->fl_size; - q->fl[1].size = p->jumbo_size; - - q->rspq.gen = 1; - q->rspq.size = p->rspq_size; - mtx_init(&q->rspq.lock, "t3 rspq lock", NULL, MTX_DEF); - - q->txq[TXQ_ETH].stop_thres = nports * - flits_to_desc(sgl_len(TX_MAX_SEGS + 1) + 3); - - q->fl[0].buf_size = MCLBYTES; - q->fl[0].zone = zone_clust; - q->fl[0].type = EXT_CLUSTER; - q->fl[1].buf_size = MJUMPAGESIZE; - q->fl[1].zone = zone_jumbop; - q->fl[1].type = EXT_JUMBOP; - - q->lro.enabled = lro_default; - - mtx_lock(&sc->sge.reg_lock); - ret = -t3_sge_init_rspcntxt(sc, q->rspq.cntxt_id, irq_vec_idx, - q->rspq.phys_addr, q->rspq.size, - q->fl[0].buf_size, 1, 0); - if (ret) { - printf("error %d from t3_sge_init_rspcntxt\n", ret); - goto err_unlock; - } - - for (i = 0; i < SGE_RXQ_PER_SET; ++i) { - ret = -t3_sge_init_flcntxt(sc, q->fl[i].cntxt_id, 0, - q->fl[i].phys_addr, q->fl[i].size, - q->fl[i].buf_size, p->cong_thres, 1, - 0); - if (ret) { - printf("error %d from t3_sge_init_flcntxt for index i=%d\n", ret, i); - goto err_unlock; - } - } - - ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_ETH].cntxt_id, USE_GTS, - SGE_CNTXT_ETH, id, q->txq[TXQ_ETH].phys_addr, - q->txq[TXQ_ETH].size, q->txq[TXQ_ETH].token, - 1, 0); - if (ret) { - printf("error %d from t3_sge_init_ecntxt\n", ret); - goto err_unlock; - } - - if (ntxq > 1) { - ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_OFLD].cntxt_id, - USE_GTS, SGE_CNTXT_OFLD, id, - q->txq[TXQ_OFLD].phys_addr, - q->txq[TXQ_OFLD].size, 0, 1, 0); - if (ret) { - printf("error %d from t3_sge_init_ecntxt\n", ret); - goto err_unlock; - } - } - - if (ntxq > 2) { - ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_CTRL].cntxt_id, 0, - SGE_CNTXT_CTRL, id, - q->txq[TXQ_CTRL].phys_addr, - q->txq[TXQ_CTRL].size, - q->txq[TXQ_CTRL].token, 1, 0); - if (ret) { - printf("error %d from t3_sge_init_ecntxt\n", ret); - goto err_unlock; - } - } - - mtx_unlock(&sc->sge.reg_lock); - t3_update_qset_coalesce(q, p); - q->port = pi; - - refill_fl(sc, &q->fl[0], q->fl[0].size); - refill_fl(sc, &q->fl[1], q->fl[1].size); - refill_rspq(sc, &q->rspq, q->rspq.size - 1); - - t3_write_reg(sc, A_SG_GTS, V_RSPQ(q->rspq.cntxt_id) | - V_NEWTIMER(q->rspq.holdoff_tmr)); - - return (0); - -err_unlock: - mtx_unlock(&sc->sge.reg_lock); -err: - t3_free_qset(sc, q); - - return (ret); -} - - -/** * free_qset - free the resources of an SGE queue set * @sc: the controller owning the queue set * @q: the queue set @@ -1717,19 +1553,15 @@ void t3_sge_stop(adapter_t *sc) { + int i; t3_set_reg_field(sc, A_SG_CONTROL, F_GLOBALENABLE, 0); -#ifdef notyet - if (!in_interrupt()) { - int i; - for (i = 0; i < SGE_QSETS; ++i) { - struct sge_qset *qs = &adap->sge.qs[i]; - - tasklet_kill(&qs->txq[TXQ_OFLD].qresume_tsk); - tasklet_kill(&qs->txq[TXQ_CTRL].qresume_tsk); - } + for (i = 0; i < SGE_QSETS; ++i) { + struct sge_qset *qs = &sc->sge.qs[i]; + + taskqueue_drain(sc->tq, &qs->txq[TXQ_OFLD].qresume_tsk); + taskqueue_drain(sc->tq, &qs->txq[TXQ_CTRL].qresume_tsk); } -#endif } @@ -1940,7 +1772,7 @@ } return NET_XMIT_SUCCESS; } -#ifdef notyet + /** * restart_offloadq - restart a suspended offload queue * @qs: the queue set cotaining the offload queue @@ -1948,17 +1780,20 @@ * Resumes transmission on a suspended Tx offload queue. */ static void -restart_offloadq(unsigned long data) +restart_offloadq(void *data, int npending) { struct mbuf *m; - struct sge_qset *qs = (struct sge_qset *)data; + struct sge_qset *qs = data; struct sge_txq *q = &qs->txq[TXQ_OFLD]; adapter_t *adap = qs->port->adapter; struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; int i, cleaned; mtx_lock(&q->lock); + m = NULL; + cleaned = 0; +#ifdef notyet again: cleaned = reclaim_completed_tx(adap, q, TX_CLEAN_MAX_DESC, m_vec); while ((skb = skb_peek(&q->sendq)) != NULL) { @@ -1991,7 +1826,7 @@ write_ofld_wr(adap, skb, q, pidx, gen, ndesc, segs, nsegs); mtx_lock(&q->lock); } - +#endif mtx_unlock(&q->lock); #if USE_GTS @@ -2005,7 +1840,7 @@ m_freem_vec(m_vec[i]); } } -#endif + /** * queue_set - return the queue set a packet should use * @m: the packet @@ -2124,9 +1959,189 @@ static void restart_tx(struct sge_qset *qs) { - ; + struct adapter *sc = qs->port->adapter; + + if (isset(&qs->txq_stopped, TXQ_OFLD) && + should_restart_tx(&qs->txq[TXQ_OFLD]) && + test_and_clear_bit(TXQ_OFLD, &qs->txq_stopped)) { + qs->txq[TXQ_OFLD].restarts++; + taskqueue_enqueue(sc->tq, &qs->txq[TXQ_OFLD].qresume_tsk); + } + if (isset(&qs->txq_stopped, TXQ_CTRL) && + should_restart_tx(&qs->txq[TXQ_CTRL]) && + test_and_clear_bit(TXQ_CTRL, &qs->txq_stopped)) { + qs->txq[TXQ_CTRL].restarts++; + taskqueue_enqueue(sc->tq, &qs->txq[TXQ_CTRL].qresume_tsk); + } } +/** + * t3_sge_alloc_qset - initialize an SGE queue set + * @sc: the controller softc + * @id: the queue set id + * @nports: how many Ethernet ports will be using this queue set + * @irq_vec_idx: the IRQ vector index for response queue interrupts + * @p: configuration parameters for this queue set + * @ntxq: number of Tx queues for the queue set + * @pi: port info for queue set + * + * Allocate resources and initialize an SGE queue set. A queue set + * comprises a response queue, two Rx free-buffer queues, and up to 3 + * Tx queues. The Tx queues are assigned roles in the order Ethernet + * queue, offload queue, and control queue. + */ +int +t3_sge_alloc_qset(adapter_t *sc, u_int id, int nports, int irq_vec_idx, + const struct qset_params *p, int ntxq, struct port_info *pi) +{ + struct sge_qset *q = &sc->sge.qs[id]; + int i, ret = 0; + + init_qset_cntxt(q, id); + + if ((ret = alloc_ring(sc, p->fl_size, sizeof(struct rx_desc), + sizeof(struct rx_sw_desc), &q->fl[0].phys_addr, + &q->fl[0].desc, &q->fl[0].sdesc, + &q->fl[0].desc_tag, &q->fl[0].desc_map, + sc->rx_dmat, &q->fl[0].entry_tag)) != 0) { + printf("error %d from alloc ring fl0\n", ret); + goto err; + } + + if ((ret = alloc_ring(sc, p->jumbo_size, sizeof(struct rx_desc), + sizeof(struct rx_sw_desc), &q->fl[1].phys_addr, + &q->fl[1].desc, &q->fl[1].sdesc, + &q->fl[1].desc_tag, &q->fl[1].desc_map, + sc->rx_jumbo_dmat, &q->fl[1].entry_tag)) != 0) { + printf("error %d from alloc ring fl1\n", ret); + goto err; + } + + if ((ret = alloc_ring(sc, p->rspq_size, sizeof(struct rsp_desc), 0, + &q->rspq.phys_addr, &q->rspq.desc, NULL, + &q->rspq.desc_tag, &q->rspq.desc_map, + NULL, NULL)) != 0) { + printf("error %d from alloc ring rspq\n", ret); + goto err; + } + + for (i = 0; i < ntxq; ++i) { + /* + * The control queue always uses immediate data so does not + * need to keep track of any mbufs. + * XXX Placeholder for future TOE support. + */ + size_t sz = i == TXQ_CTRL ? 0 : sizeof(struct tx_sw_desc); + + if ((ret = alloc_ring(sc, p->txq_size[i], + sizeof(struct tx_desc), sz, + &q->txq[i].phys_addr, &q->txq[i].desc, + &q->txq[i].sdesc, &q->txq[i].desc_tag, + &q->txq[i].desc_map, + sc->tx_dmat, &q->txq[i].entry_tag)) != 0) { + printf("error %d from alloc ring tx %i\n", ret, i); + goto err; + } + q->txq[i].gen = 1; + q->txq[i].size = p->txq_size[i]; + mtx_init(&q->txq[i].lock, "t3 txq lock", NULL, MTX_DEF); + } + + TASK_INIT(&q->txq[TXQ_OFLD].qresume_tsk, 0, restart_offloadq, q); + TASK_INIT(&q->txq[TXQ_CTRL].qresume_tsk, 0, restart_ctrlq, q); + + q->fl[0].gen = q->fl[1].gen = 1; + q->fl[0].size = p->fl_size; + q->fl[1].size = p->jumbo_size; + + q->rspq.gen = 1; + q->rspq.size = p->rspq_size; + mtx_init(&q->rspq.lock, "t3 rspq lock", NULL, MTX_DEF); + + q->txq[TXQ_ETH].stop_thres = nports * + flits_to_desc(sgl_len(TX_MAX_SEGS + 1) + 3); + + q->fl[0].buf_size = MCLBYTES; + q->fl[0].zone = zone_clust; + q->fl[0].type = EXT_CLUSTER; + q->fl[1].buf_size = MJUMPAGESIZE; + q->fl[1].zone = zone_jumbop; + q->fl[1].type = EXT_JUMBOP; + + q->lro.enabled = lro_default; + + mtx_lock(&sc->sge.reg_lock); + ret = -t3_sge_init_rspcntxt(sc, q->rspq.cntxt_id, irq_vec_idx, + q->rspq.phys_addr, q->rspq.size, + q->fl[0].buf_size, 1, 0); + if (ret) { + printf("error %d from t3_sge_init_rspcntxt\n", ret); + goto err_unlock; + } + + for (i = 0; i < SGE_RXQ_PER_SET; ++i) { + ret = -t3_sge_init_flcntxt(sc, q->fl[i].cntxt_id, 0, + q->fl[i].phys_addr, q->fl[i].size, + q->fl[i].buf_size, p->cong_thres, 1, + 0); + if (ret) { + printf("error %d from t3_sge_init_flcntxt for index i=%d\n", ret, i); + goto err_unlock; + } + } + + ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_ETH].cntxt_id, USE_GTS, + SGE_CNTXT_ETH, id, q->txq[TXQ_ETH].phys_addr, + q->txq[TXQ_ETH].size, q->txq[TXQ_ETH].token, + 1, 0); + if (ret) { + printf("error %d from t3_sge_init_ecntxt\n", ret); + goto err_unlock; + } + + if (ntxq > 1) { + ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_OFLD].cntxt_id, + USE_GTS, SGE_CNTXT_OFLD, id, + q->txq[TXQ_OFLD].phys_addr, + q->txq[TXQ_OFLD].size, 0, 1, 0); + if (ret) { + printf("error %d from t3_sge_init_ecntxt\n", ret); + goto err_unlock; + } + } + + if (ntxq > 2) { + ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_CTRL].cntxt_id, 0, + SGE_CNTXT_CTRL, id, + q->txq[TXQ_CTRL].phys_addr, + q->txq[TXQ_CTRL].size, + q->txq[TXQ_CTRL].token, 1, 0); + if (ret) { + printf("error %d from t3_sge_init_ecntxt\n", ret); + goto err_unlock; + } + } + + mtx_unlock(&sc->sge.reg_lock); + t3_update_qset_coalesce(q, p); + q->port = pi; + + refill_fl(sc, &q->fl[0], q->fl[0].size); + refill_fl(sc, &q->fl[1], q->fl[1].size); + refill_rspq(sc, &q->rspq, q->rspq.size - 1); + + t3_write_reg(sc, A_SG_GTS, V_RSPQ(q->rspq.cntxt_id) | + V_NEWTIMER(q->rspq.holdoff_tmr)); + + return (0); + +err_unlock: + mtx_unlock(&sc->sge.reg_lock); +err: + t3_free_qset(sc, q); + + return (ret); +} void t3_rx_eth(struct port_info *pi, struct sge_rspq *rq, struct mbuf *m, int ethpad) From owner-p4-projects@FreeBSD.ORG Tue Apr 24 22:35:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16DE716A409; Tue, 24 Apr 2007 22:35:47 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9482516A400 for ; Tue, 24 Apr 2007 22:35:47 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 8437313C458 for ; Tue, 24 Apr 2007 22:35:47 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OMZlX2033329 for ; Tue, 24 Apr 2007 22:35:47 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OMZlkX033326 for perforce@freebsd.org; Tue, 24 Apr 2007 22:35:47 GMT (envelope-from zec@FreeBSD.org) Date: Tue, 24 Apr 2007 22:35:47 GMT Message-Id: <200704242235.l3OMZlkX033326@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 118758 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 22:35:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=118758 Change 118758 by zec@zec_tca51 on 2007/04/24 22:35:11 A hack to allow for lo0 to be destroyed when cleaning up a vnet instance. Affected files ... .. //depot/projects/vimage/src/sys/net/if_loop.c#12 edit Differences ... ==== //depot/projects/vimage/src/sys/net/if_loop.c#12 (text+ko) ==== @@ -211,12 +211,24 @@ static int vnet_loif_idetach(void) { INIT_VNET_NET(curvnet); - struct lo_softc *lop, *nlop; + struct lo_softc *sc, *nsc; + + LIST_FOREACH_SAFE(sc, &V_lo_list, sc_next, nsc) { + struct ifnet *ifp = sc->sc_ifp; - LIST_FOREACH_SAFE(lop, &V_lo_list, sc_next, nlop) { - if (lop->sc_ifp == V_loif) + if (ifp == V_loif) { + /* + * A hack to allow lo0 to be detached: + * bump if_unit number from 0 to 1. By + * setting V_loif to NULL we prevent queuing + * of routing messages that would have + * m_pkthdr.rcvif pointing to a nonexisting + * ifnet, i.e. the lo0 we just destroyed. + */ + ifp->if_dunit = 1; V_loif = NULL; - lo_clone_destroy(lop->sc_ifp); + } + if_clone_destroy(ifp->if_xname); } return 0; } From owner-p4-projects@FreeBSD.ORG Tue Apr 24 22:40:58 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA54016A403; Tue, 24 Apr 2007 22:40:57 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6A4B616A406 for ; Tue, 24 Apr 2007 22:40:57 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4E7F313C484 for ; Tue, 24 Apr 2007 22:40:57 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OMevWD033695 for ; Tue, 24 Apr 2007 22:40:57 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OMernI033686 for perforce@freebsd.org; Tue, 24 Apr 2007 22:40:53 GMT (envelope-from scottl@freebsd.org) Date: Tue, 24 Apr 2007 22:40:53 GMT Message-Id: <200704242240.l3OMernI033686@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 118759 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 22:40:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=118759 Change 118759 by scottl@scottl-x64 on 2007/04/24 22:39:58 IFC Affected files ... .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/pmap.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/vm_machdep.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#35 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linprocfs/linprocfs.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/compat/opensolaris/kern/opensolaris_vfs.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#23 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/dnlc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ath/if_ath.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/dev/firewire/firewire.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/firewire/fwdev.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/led/led.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/led/led.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/if_ural.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/fs/devfs/devfs_devs.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/fs/devfs/devfs_vnops.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/fs/procfs/procfs_map.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/fs/pseudofs/pseudofs_vncache.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/geom/uzip/g_uzip.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/pmap.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/sys_machdep.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/vm_machdep.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/vmparam.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/include/vmparam.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_linker.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_malloc.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_time.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_uuid.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_bio.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/modules/zfs/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_l2tp.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_indata.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_indata.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_input.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_output.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_pcb.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_pcb.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_structs.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_uio.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_usrreq.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_input.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_pcb.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/route6.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_lock.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_syscalls.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/pci/if_vr.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/pci/if_vrreg.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_syscalls.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_framework.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_inet.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_net.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_pipe.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_process.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_socket.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_system.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_vfs.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_biba/mac_biba.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_bsdextended/mac_bsdextended.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_ifoff/mac_ifoff.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_lomac/mac_lomac.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_mls/mac_mls.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_partition/mac_partition.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_portacl/mac_portacl.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_seeotheruids/mac_seeotheruids.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_stub/mac_stub.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_test/mac_test.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/sys/mount.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/sys/priv.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/proc.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/vm/swap_pager.c#14 integrate Differences ... ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/pmap.c#19 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.582 2007/04/13 16:07:29 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.583 2007/04/21 14:17:29 ups Exp $"); /* * Manages physical address maps. @@ -209,7 +209,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, - vm_offset_t sva, pd_entry_t ptepde); + vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -221,8 +221,9 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); -static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); -static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t* free); +static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t, vm_page_t *); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); @@ -1065,24 +1066,36 @@ /*************************************************** * Page table page management routines..... ***************************************************/ +static PMAP_INLINE void +pmap_free_zero_pages(vm_page_t free) +{ + vm_page_t m; + while (free != NULL) { + m = free; + free = m->right; + vm_page_free_zero(m); + } +} + /* * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t *free) { --m->wire_count; if (m->wire_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); + return _pmap_unwire_pte_hold(pmap, va, m, free); else return 0; } static int -_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t *free) { vm_offset_t pteva; @@ -1114,14 +1127,14 @@ vm_page_t pdpg; pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdpg); + pmap_unwire_pte_hold(pmap, va, pdpg, free); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdppg); + pmap_unwire_pte_hold(pmap, va, pdppg, free); } /* @@ -1130,7 +1143,13 @@ */ pmap_invalidate_page(pmap, pteva); - vm_page_free_zero(m); + /* + * Put page on a list so that it is released after + * *ALL* TLB shootdown is done + */ + m->right = *free; + *free = m; + atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1140,7 +1159,7 @@ * conditionally free the page, and manage the hold/wire counts. */ static int -pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde) +pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, vm_page_t *free) { vm_page_t mpte; @@ -1148,7 +1167,7 @@ return 0; KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); - return pmap_unwire_pte_hold(pmap, va, mpte); + return pmap_unwire_pte_hold(pmap, va, mpte, free); } void @@ -1366,7 +1385,7 @@ { vm_pindex_t ptepindex; pd_entry_t *pd; - vm_page_t m; + vm_page_t m, free; KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, @@ -1390,8 +1409,10 @@ *pd = 0; pd = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); + free = NULL; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va), &free); pmap_invalidate_all(kernel_pmap); + pmap_free_zero_pages(free); } /* @@ -1609,7 +1630,7 @@ pt_entry_t *pte, tpte; pv_entry_t next_pv, pv; vm_offset_t va; - vm_page_t m; + vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { if (m->hold_count || m->busy) @@ -1635,12 +1656,14 @@ va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, va, ptepde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); free_pv_entry(pmap, pv); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); @@ -1833,7 +1856,8 @@ * pmap_remove_pte: do the things to unmap a page in a process */ static int -pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, pd_entry_t ptepde) +pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, + pd_entry_t ptepde, vm_page_t *free) { pt_entry_t oldpte; vm_page_t m; @@ -1861,7 +1885,7 @@ vm_page_flag_set(m, PG_REFERENCED); pmap_remove_entry(pmap, m, va); } - return (pmap_unuse_pt(pmap, va, ptepde)); + return (pmap_unuse_pt(pmap, va, ptepde, free)); } /* @@ -1871,6 +1895,7 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { pt_entry_t *pte; + vm_page_t free = NULL; PMAP_LOCK_ASSERT(pmap, MA_OWNED); if ((*pde & PG_V) == 0) @@ -1878,8 +1903,9 @@ pte = pmap_pde_to_pte(pde, va); if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, *pde); + pmap_remove_pte(pmap, pte, va, *pde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); } /* @@ -1896,6 +1922,7 @@ pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; + vm_page_t free = NULL; int anyvalid; /* @@ -1959,7 +1986,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, sva, *pdpe); + pmap_unuse_pt(pmap, sva, *pdpe, &free); anyvalid = 1; continue; } @@ -1983,14 +2010,16 @@ */ if ((*pte & PG_G) == 0) anyvalid = 1; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) + if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free)) break; } } out: - vm_page_unlock_queues(); - if (anyvalid) + if (anyvalid) { pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); + } + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2014,6 +2043,7 @@ pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; + vm_page_t free; #if defined(PMAP_DIAGNOSTIC) /* @@ -2045,10 +2075,12 @@ pv->pv_va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); pmap_invalidate_page(pmap, pv->pv_va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pmap, pv->pv_va, ptepde); free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } @@ -2161,9 +2193,9 @@ } } } - vm_page_unlock_queues(); if (anychanged) pmap_invalidate_all(pmap); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2413,6 +2445,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { + vm_page_t free; pt_entry_t *pte; vm_paddr_t pa; @@ -2471,7 +2504,7 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + mpte->wire_count--; mpte = NULL; } return (mpte); @@ -2483,7 +2516,11 @@ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + free = NULL; + if (pmap_unwire_pte_hold(pmap, va, mpte, &free)) { + pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); + } mpte = NULL; } return (mpte); @@ -2657,6 +2694,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { + vm_page_t free; vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; @@ -2716,7 +2754,7 @@ dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; } else - pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); + dstmpde->wire_count--; continue; } @@ -2753,9 +2791,15 @@ *dst_pte = ptetemp & ~(PG_W | PG_M | PG_A); dst_pmap->pm_stats.resident_count++; - } else - pmap_unwire_pte_hold(dst_pmap, addr, - dstmpte); + } else { + free = NULL; + if (pmap_unwire_pte_hold(dst_pmap, + addr, dstmpte, &free)) { + pmap_invalidate_page(dst_pmap, + addr); + pmap_free_zero_pages(free); + } + } if (dstmpte->wire_count >= srcmpte->wire_count) break; } @@ -2866,7 +2910,7 @@ pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; - vm_page_t m; + vm_page_t m, free = NULL; pv_entry_t pv; struct pv_chunk *pc, *npc; int field, idx; @@ -2939,7 +2983,7 @@ if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); pmap_unuse_pt(pmap, pv->pv_va, - *vtopde(pv->pv_va)); + *vtopde(pv->pv_va), &free); } } if (allfree) { @@ -2952,8 +2996,9 @@ vm_page_free(m); } } + pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); vm_page_unlock_queues(); - pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); } ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/vm_machdep.c#8 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -457,6 +457,10 @@ static void cpu_reset_real() { + struct region_descriptor null_idt; + int b; + + disable_intr(); /* * Attempt to do a CPU reset via the keyboard controller, @@ -465,14 +469,44 @@ */ outb(IO_KBD + 4, 0xFE); DELAY(500000); /* wait 0.5 sec to see if that did it */ - printf("Keyboard reset did not work, attempting CPU shutdown\n"); + + /* + * Attempt to force a reset via the Reset Control register at + * I/O port 0xcf9. Bit 2 forces a system reset when it is + * written as 1. Bit 1 selects the type of reset to attempt: + * 0 selects a "soft" reset, and 1 selects a "hard" reset. We + * try to do a "soft" reset first, and then a "hard" reset. + */ + outb(0xcf9, 0x2); + outb(0xcf9, 0x6); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + + /* + * Attempt to force a reset via the Fast A20 and Init register + * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. + * Bit 0 asserts INIT# when set to 1. We are careful to only + * preserve bit 1 while setting bit 0. We also must clear bit + * 0 before setting it if it isn't already clear. + */ + b = inb(0x92); + if (b != 0xff) { + if ((b & 0x1) != 0) + outb(0x92, b & 0xfe); + outb(0x92, b | 0x1); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + } + + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ - /* Force a shutdown by unmapping entire address space. */ - bzero((caddr_t)PML4map, PAGE_SIZE); + /* Wipe the IDT. */ + null_idt.rd_limit = 0; + null_idt.rd_base = 0; + lidt(&null_idt); /* "good night, sweet prince .... " */ - invltlb(); + breakpoint(); + /* NOTREACHED */ while(1); } ==== //depot/projects/scottl-camlock/src/sys/amd64/include/vmparam.h#3 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.45 2004/10/27 17:21:15 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.46 2007/04/21 01:14:47 sepotvin Exp $ */ @@ -122,7 +122,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#35 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.207 2007/04/19 22:18:15 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.208 2007/04/23 18:01:44 scottl Exp $"); #include @@ -39,20 +39,13 @@ #include #include #include -#endif /* _KERNEL */ - +#include #include -#include #include #include #include - -#include - -#include -#include - #include +#endif /* _KERNEL */ #ifndef _KERNEL #include ==== //depot/projects/scottl-camlock/src/sys/compat/linprocfs/linprocfs.c#17 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.110 2007/04/15 17:02:03 des Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.111 2007/04/22 08:41:52 des Exp $"); #include #include @@ -312,9 +312,11 @@ int error; /* resolve symlinks etc. in the emulation tree prefix */ - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, linux_emul_path, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, linux_emul_path, td); flep = NULL; - if (namei(&nd) != 0 || vn_fullpath(td, nd.ni_vp, &dlep, &flep) != 0) + error = namei(&nd); + VFS_UNLOCK_GIANT(NDHASGIANT(&nd)); + if (error != 0 || vn_fullpath(td, nd.ni_vp, &dlep, &flep) != 0) lep = linux_emul_path; else lep = dlep; ==== //depot/projects/scottl-camlock/src/sys/compat/opensolaris/kern/opensolaris_misc.c#2 (text+ko) ==== @@ -25,12 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_misc.c,v 1.1 2007/04/08 16:29:23 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_misc.c,v 1.2 2007/04/23 00:52:06 pjd Exp $"); #include #include #include #include +#include char hw_serial[11] = "0"; ==== //depot/projects/scottl-camlock/src/sys/compat/opensolaris/kern/opensolaris_vfs.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_vfs.c,v 1.3 2007/04/18 15:24:48 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_vfs.c,v 1.4 2007/04/21 12:02:57 pjd Exp $"); #include #include @@ -206,7 +206,7 @@ mp->mnt_flag |= fsflags & (MNT_UPDATEMASK | MNT_FORCE | MNT_ROOTFS); /* * Unprivileged user can trigger mounting a snapshot, but we don't want - * him to unmount it, so we switch to privileged credential. + * him to unmount it, so we switch to privileged credentials. */ crfree(mp->mnt_cred); mp->mnt_cred = crdup(kcred); ==== //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/misc.h#2 (text+ko) ==== @@ -23,18 +23,23 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/misc.h,v 1.1 2007/04/08 16:29:24 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/misc.h,v 1.2 2007/04/23 00:52:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_MISC_H_ #define _OPENSOLARIS_SYS_MISC_H_ +#define _FIOFFS (INT_MIN) +#define _FIOGDIO (INT_MIN+1) +#define _FIOSDIO (INT_MIN+2) + +#define _FIO_SEEK_DATA FIOSEEKDATA +#define _FIO_SEEK_HOLE FIOSEEKHOLE + struct opensolaris_utsname { char *nodename; }; extern char hw_serial[11]; extern struct opensolaris_utsname utsname; - -int ddi_strtoul(const char *str, char **nptr, int base, unsigned long *result); #endif /* _OPENSOLARIS_SYS_MISC_H_ */ ==== //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/types.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/types.h,v 1.1 2007/04/06 01:09:06 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/types.h,v 1.2 2007/04/23 00:52:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_TYPES_H_ @@ -49,6 +49,7 @@ typedef off_t offset_t; typedef long ptrdiff_t; /* pointer difference */ typedef void pathname_t; +typedef int64_t rlim64_t; #else ==== //depot/projects/scottl-camlock/src/sys/compat/opensolaris/sys/vnode.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/vnode.h,v 1.1 2007/04/06 01:09:06 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/vnode.h,v 1.2 2007/04/23 00:52:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -40,6 +40,7 @@ typedef struct vnode vnode_t; typedef struct vattr vattr_t; +typedef void caller_context_t; typedef struct vop_vector vnodeops_t; #define vop_fid vop_vptofh @@ -63,11 +64,25 @@ #define VN_RELE(v) vrele(v) #define VN_URELE(v) vput(v) +#define VOP_REALVP(vp, vpp) (*(vpp) = (vp), 0) + +#define vnevent_remove(vp) do { } while (0) +#define vnevent_rmdir(vp) do { } while (0) +#define vnevent_rename_src(vp) do { } while (0) +#define vnevent_rename_dest(vp) do { } while (0) + + #define IS_DEVVP(vp) \ ((vp)->v_type == VCHR || (vp)->v_type == VBLK || (vp)->v_type == VFIFO) #define MODEMASK ALLPERMS +#define specvp(vp, rdev, type, cr) (VN_HOLD(vp), (vp)) +#define MANDMODE(mode) (0) +#define chklock(vp, op, offset, size, mode, ct) (0) +#define cleanlocks(vp, pid, foo) do { } while (0) +#define cleanshares(vp, pid) do { } while (0) + /* * We will use va_spare is place of Solaris' va_mask. * This field is initialized in zfs_setattr(). @@ -80,6 +95,9 @@ #define va_blksize va_blocksize #define va_seq va_gen +#define MAXOFFSET_T OFF_MAX +#define EXCL 0 + #define AT_TYPE 0x0001 #define AT_MODE 0x0002 #define AT_UID 0x0004 @@ -95,6 +113,8 @@ #define AT_BLKSIZE 0x1000 #define AT_NBLOCKS 0x2000 #define AT_SEQ 0x4000 +#define AT_NOSET (AT_NLINK|AT_RDEV|AT_FSID|AT_NODEID|AT_TYPE|\ + AT_BLKSIZE|AT_NBLOCKS|AT_SEQ) #define ACCESSED (AT_ATIME) #define STATE_CHANGED (AT_CTIME) @@ -122,10 +142,15 @@ vap->va_mask |= AT_MODE; } -enum create { CRCREAT }; #define FCREAT O_CREAT #define FTRUNC O_TRUNC +#define FDSYNC FFSYNC +#define FRSYNC FFSYNC +#define FSYNC FFSYNC #define FOFFMAX 0x00 + +enum create { CRCREAT }; + static __inline int zfs_vn_open(char *pnamep, enum uio_seg seg, int filemode, int createmode, vnode_t **vpp, enum create crwhy, mode_t umask) @@ -185,7 +210,6 @@ #define vn_rdwr(rw, vp, base, len, offset, seg, ioflag, ulimit, cr, residp) \ zfs_vn_rdwr((rw), (vp), (base), (len), (offset), (seg), (ioflag), (ulimit), (cr), (residp)) -#define FSYNC MNT_WAIT static __inline int zfs_vop_fsync(vnode_t *vp, int flag, cred_t *cr) { @@ -199,7 +223,7 @@ if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) goto drop; vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - error = VOP_FSYNC(vp, flag, td); + error = VOP_FSYNC(vp, MNT_WAIT, td); VOP_UNLOCK(vp, 0, td); vn_finished_write(mp); drop: ==== //depot/projects/scottl-camlock/src/sys/conf/files#23 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1196 2007/04/17 00:35:10 thompsa Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1197 2007/04/21 22:08:47 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1959,6 +1959,7 @@ security/audit/audit_syscalls.c standard security/audit/audit_trigger.c optional audit security/audit/audit_worker.c optional audit +security/mac/mac_audit.c optional mac audit security/mac/mac_framework.c optional mac security/mac/mac_inet.c optional mac inet security/mac/mac_label.c optional mac ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/dnlc.c#5 (text+ko) ==== @@ -203,7 +203,11 @@ { "pick_last", KSTAT_DATA_UINT64 }, }; +#ifdef FREEBSD_NAMECACHE +static int doingcache = 0; +#else static int doingcache = 1; +#endif TUNABLE_INT("vfs.zfs.dnlc.enable", &doingcache); SYSCTL_INT(_vfs_zfs_dnlc, OID_AUTO, enable, CTLFLAG_RDTUN, &doingcache, 0, "Enable/disable name cache"); ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 (text+ko) ==== @@ -2802,13 +2802,14 @@ #ifdef _KERNEL /* Warn about ZFS memory requirements. */ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { - printf("ZFS WARNING: Recomended minimum of RAM size is 512MB, " - "expect unstable behaviour.\n"); + printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " + "expect unstable behavior.\n"); } else if (kmem_size() < 256 * (1 << 20)) { - printf("ZFS WARNING: Recomended minimum of kmem_map size is " - "256MB, expect unstable behaviour.\n"); - printf(" Consider tunning vm.kmem_size and " - "vm.kmem_size_max in /boot/loader.conf.\n"); + printf("ZFS WARNING: Recommended minimum kmem_size is 256MB; " + "expect unstable behavior.\n"); + printf(" Consider tuning vm.kmem_size or " + "vm.kmem_size_min\n"); + printf(" in /boot/loader.conf.\n"); } #endif } ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#4 (text+ko) ==== @@ -57,6 +57,7 @@ #include #include #include +#include int zio_taskq_threads = 0; SYSCTL_DECL(_vfs_zfs); @@ -499,10 +500,9 @@ /* * Try to open all vdevs, loading each label in the process. */ - if (vdev_open(rvd) != 0) { - error = ENXIO; + error = vdev_open(rvd); + if (error != 0) goto out; - } /* * Validate the labels for all leaf vdevs. We need to grab the config @@ -513,10 +513,8 @@ error = vdev_validate(rvd); spa_config_exit(spa, FTAG); - if (error != 0) { - error = EBADF; + if (error != 0) goto out; - } if (rvd->vdev_state <= VDEV_STATE_CANT_OPEN) { error = ENXIO; ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#3 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef _KERNEL #include #endif ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 (text+ko) ==== @@ -931,7 +931,7 @@ for (c = 0; c < vd->vdev_children; c++) if (vdev_validate(vd->vdev_child[c]) != 0) - return (-1); + return (EBADF); /* * If the device has already failed, or was marked offline, don't do @@ -974,7 +974,7 @@ if (spa->spa_load_state == SPA_LOAD_OPEN && state != POOL_STATE_ACTIVE) - return (-1); + return (EBADF); } /* @@ -1262,7 +1262,6 @@ vdev_config_dirty(vd->vdev_top); } - bzero(&smlock, sizeof(smlock)); mutex_init(&smlock, NULL, MUTEX_DEFAULT, NULL); space_map_create(&smsync, sm->sm_start, sm->sm_size, sm->sm_shift, ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 (text+ko) ==== @@ -48,6 +48,7 @@ #include #include #include +#include int fzap_default_block_shift = 14; /* 16k blocksize */ @@ -907,7 +908,7 @@ for (zap_cursor_init(&zc, os, zapobj); (err = zap_cursor_retrieve(&zc, za)) == 0; zap_cursor_advance(&zc)) { - if (za->za_first_integer == value) { + if (ZFS_DIRENT_OBJ(za->za_first_integer) == value) { (void) strcpy(name, za->za_name); break; } ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/scottl-camlock/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#4 (text+ko) ==== @@ -25,6 +25,7 @@ #pragma ident "%Z%%M% %I% %E% SMI" >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Apr 24 22:41:59 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D0EC16A406; Tue, 24 Apr 2007 22:41:59 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 231A516A403 for ; Tue, 24 Apr 2007 22:41:59 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id EEB0D13C480 for ; Tue, 24 Apr 2007 22:41:58 +0000 (UTC) (envelope-from mharvan@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OMfwJo034415 for ; Tue, 24 Apr 2007 22:41:58 GMT (envelope-from mharvan@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OMfwY6034412 for perforce@freebsd.org; Tue, 24 Apr 2007 22:41:58 GMT (envelope-from mharvan@FreeBSD.org) Date: Tue, 24 Apr 2007 22:41:58 GMT Message-Id: <200704242241.l3OMfwY6034412@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mharvan@FreeBSD.org using -f From: Matus Harvan To: Perforce Change Reviews Cc: Subject: PERFORCE change 118760 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 22:41:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=118760 Change 118760 by mharvan@mharvan_twoflower on 2007/04/24 22:41:23 imported initial version of the design document (aka The Big Plan) Affected files ... .. //depot/projects/soc2007/mharvan-mtund/mtund.doc/design.txt#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Tue Apr 24 22:54:15 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 953CE16A403; Tue, 24 Apr 2007 22:54:15 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4E24516A400 for ; Tue, 24 Apr 2007 22:54:15 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3E50E13C459 for ; Tue, 24 Apr 2007 22:54:15 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3OMsFTx036420 for ; Tue, 24 Apr 2007 22:54:15 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3OMsFSn036412 for perforce@freebsd.org; Tue, 24 Apr 2007 22:54:15 GMT (envelope-from kmacy@freebsd.org) Date: Tue, 24 Apr 2007 22:54:15 GMT Message-Id: <200704242254.l3OMsFSn036412@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118761 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2007 22:54:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=118761 Change 118761 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/24 22:53:37 FreeBSD doesn't have anything that is a good impedance match for Linux's softirq - handle bundling of offload packets in the driver Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#17 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#17 (text+ko) ==== @@ -1889,33 +1889,6 @@ } /** - * offload_enqueue - add an offload packet to an SGE offload receive queue - * @q: the SGE response queue - * @m: the packet - * - * Add a new offload packet to an SGE response queue's offload packet - * queue. If the packet is the first on the queue it schedules the RX - * softirq to process the queue. - */ -static __inline void -offload_enqueue(struct sge_rspq *q, struct mbuf *m) -{ - m->m_next = NULL; - if (q->rx_tail) - q->rx_tail->m_nextpkt = m; - else { -#ifdef notyet - struct sge_qset *qs = rspq_to_qset(q); - - if (__netif_rx_schedule_prep(qs->netdev)) - __netif_rx_schedule(qs->netdev); -#endif - q->rx_head = m; - } - q->rx_tail = m; -} - -/** * deliver_partial_bundle - deliver a (partial) bundle of Rx offload pkts * @tdev: the offload device that will be receiving the packets * @q: the SGE response queue that assembled the bundle @@ -1943,16 +1916,12 @@ rq->offload_pkts++; m->m_pkthdr.header = mtod(m, void *); - if (__predict_false(rq->polling)) { - rx_gather[gather_idx++] = m; - if (gather_idx == RX_BUNDLE_SIZE) { - cxgb_ofld_recv(tdev, rx_gather, RX_BUNDLE_SIZE); - gather_idx = 0; - rq->offload_bundles++; - } - } else - offload_enqueue(rq, m); - + rx_gather[gather_idx++] = m; + if (gather_idx == RX_BUNDLE_SIZE) { + cxgb_ofld_recv(tdev, rx_gather, RX_BUNDLE_SIZE); + gather_idx = 0; + rq->offload_bundles++; + } return (gather_idx); } From owner-p4-projects@FreeBSD.ORG Wed Apr 25 00:28:13 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0FE3616A404; Wed, 25 Apr 2007 00:28:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D7BED16A400 for ; Wed, 25 Apr 2007 00:28:12 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id C75F613C458 for ; Wed, 25 Apr 2007 00:28:12 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3P0SCLf054184 for ; Wed, 25 Apr 2007 00:28:12 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3P0SCT1054181 for perforce@freebsd.org; Wed, 25 Apr 2007 00:28:12 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 25 Apr 2007 00:28:12 GMT Message-Id: <200704250028.l3P0SCT1054181@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118764 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 00:28:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=118764 Change 118764 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/25 00:27:27 implement offload and ctrlq restart functions Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#13 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#18 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#13 (text+ko) ==== @@ -64,6 +64,57 @@ struct sge_qset; extern int cxgb_debug; +/* + * Put here for now until a more appropriate place is found + */ +struct mbuf_head { + struct mbuf *head; + struct mbuf *tail; + uint32_t qlen; +}; + +static __inline void +mbufq_init(struct mbuf_head *l) +{ + l->head = l->tail = NULL; +} + +static __inline int +mbufq_empty(struct mbuf_head *l) +{ + return (l->head == NULL); +} + +static __inline void +mbufq_tail(struct mbuf_head *l, struct mbuf *m) +{ + l->qlen++; + l->tail->m_nextpkt = m; + l->tail = m; +} + +static __inline struct mbuf * +mbufq_dequeue(struct mbuf_head *l) +{ + struct mbuf *m; + + m = l->head; + if (m) { + if (m == l->tail) + l->tail = NULL; + l->head = m->m_nextpkt; + l->qlen--; + } + + return (m); +} + +static __inline struct mbuf * +mbufq_peek(struct mbuf_head *l) +{ + return (l->head); +} + struct port_info { struct adapter *adapter; struct ifnet *ifp; @@ -208,6 +259,7 @@ bus_dma_tag_t desc_tag; bus_dmamap_t desc_map; bus_dma_tag_t entry_tag; + struct mbuf_head sendq; struct mtx lock; }; ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#18 (text+ko) ==== @@ -1286,17 +1286,16 @@ * the control queue is only used for binding qsets which happens * at init time so we are guaranteed enough descriptors */ -#if 0 - if (__predict_false(!skb_queue_empty(&q->sendq))) { -addq_exit: __skb_queue_tail(&q->sendq, skb); + if (__predict_false(!mbufq_empty(&q->sendq))) { +addq_exit: mbufq_tail(&q->sendq, m); return 1; } if (__predict_false(q->size - q->in_use < ndesc)) { struct sge_qset *qs = txq_to_qset(q, qid); - set_bit(qid, &qs->txq_stopped); - smp_mb__after_clear_bit(); + setbit(&qs->txq_stopped, qid); + smp_mb(); if (should_restart_tx(q) && test_and_clear_bit(qid, &qs->txq_stopped)) @@ -1305,7 +1304,6 @@ q->stops++; goto addq_exit; } -#endif return 0; } @@ -1401,14 +1399,12 @@ adapter_t *adap = qs->port->adapter; mtx_lock(&q->lock); - m = NULL; -#ifdef notyet again: reclaim_completed_tx_imm(q); while (q->in_use < q->size && - (skb = __skb_dequeue(&q->sendq)) != NULL) { + (m = mbufq_dequeue(&q->sendq)) != NULL) { - write_imm(&q->desc[q->pidx], skb, skb->len, q->gen); + write_imm(&q->desc[q->pidx], m, m->m_len, q->gen); if (++q->pidx >= q->size) { q->pidx = 0; @@ -1416,16 +1412,15 @@ } q->in_use++; } - if (!skb_queue_empty(&q->sendq)) { - set_bit(TXQ_CTRL, &qs->txq_stopped); - smp_mb__after_clear_bit(); + if (!mbufq_empty(&q->sendq)) { + setbit(&qs->txq_stopped, TXQ_CTRL); + smp_mb(); if (should_restart_tx(q) && test_and_clear_bit(TXQ_CTRL, &qs->txq_stopped)) goto again; q->stops++; } -#endif mtx_unlock(&q->lock); t3_write_reg(adap, A_SG_KDOORBELL, F_SELEGRCNTX | V_EGRCNTX(q->cntxt_id)); @@ -1788,15 +1783,14 @@ struct sge_txq *q = &qs->txq[TXQ_OFLD]; adapter_t *adap = qs->port->adapter; struct mbuf *m_vec[TX_CLEAN_MAX_DESC]; - int i, cleaned; - + bus_dma_segment_t segs[TX_MAX_SEGS]; + int nsegs, i, cleaned; + struct tx_sw_desc *stx = &q->sdesc[q->pidx]; + mtx_lock(&q->lock); - m = NULL; - cleaned = 0; -#ifdef notyet again: cleaned = reclaim_completed_tx(adap, q, TX_CLEAN_MAX_DESC, m_vec); - while ((skb = skb_peek(&q->sendq)) != NULL) { + while ((m = mbufq_peek(&q->sendq)) != NULL) { unsigned int gen, pidx; unsigned int ndesc = m->m_priority; @@ -1820,13 +1814,12 @@ q->gen ^= 1; } - __skb_unlink(skb, &q->sendq); - + (void)mbufq_dequeue(&q->sendq); + busdma_map_mbufs(&m, q, stx, segs, &nsegs); mtx_unlock(&q->lock); - write_ofld_wr(adap, skb, q, pidx, gen, ndesc, segs, nsegs); + write_ofld_wr(adap, m, q, pidx, gen, ndesc, segs, nsegs); mtx_lock(&q->lock); } -#endif mtx_unlock(&q->lock); #if USE_GTS @@ -2011,6 +2004,7 @@ printf("error %d from alloc ring tx %i\n", ret, i); goto err; } + mbufq_init(&q->txq[i].sendq); q->txq[i].gen = 1; q->txq[i].size = p->txq_size[i]; mtx_init(&q->txq[i].lock, "t3 txq lock", NULL, MTX_DEF); From owner-p4-projects@FreeBSD.ORG Wed Apr 25 04:20:03 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C3CA816A403; Wed, 25 Apr 2007 04:20:02 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7A40F16A401 for ; Wed, 25 Apr 2007 04:20:02 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 5924013C45E for ; Wed, 25 Apr 2007 04:20:02 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3P4K20L009502 for ; Wed, 25 Apr 2007 04:20:02 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3P4K2Vr009498 for perforce@freebsd.org; Wed, 25 Apr 2007 04:20:02 GMT (envelope-from sam@freebsd.org) Date: Wed, 25 Apr 2007 04:20:02 GMT Message-Id: <200704250420.l3P4K2Vr009498@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 118768 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 04:20:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=118768 Change 118768 by sam@sam_ebb on 2007/04/25 04:19:04 import bits of 11n work: o implement ht channel promotion o fix misc bugs in ht channel attribute parsing o identify associated stations using HT o add a "precise" parameter to get_chaninfo that causes it to identify a channel as one of "ht/20", "ht/40+", or "ht/40-"; if not given HT channels are lumped together as "ht" o always display the verbose+precise channel in status o display the imprecise channel for list chan o update man page to talk about specifying channels w/ attributes Affected files ... .. //depot/projects/wifi/sbin/ifconfig/ifconfig.8#23 edit .. //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#65 edit Differences ... ==== //depot/projects/wifi/sbin/ifconfig/ifconfig.8#23 (text+ko) ==== @@ -663,6 +663,48 @@ adaptors ignore this setting unless you are in ad-hoc mode. Alternatively the frequency, in megahertz, may be specified instead of the channel number. +.Pp +When there are several ways to use a channel the channel +number/frequency may be appended with attributes to clarify. +For example, if a device is capable of operating on channel 6 +with 802.11n and 802.11g then one can specify that g-only use +should be used by specifying ``6:g''. +Similarly the channel width can be specified by appending it +with ``/''; e.g. ``6/40'' specifies a 40MHz wide channel, +These attributes can be combined as in: ``6:ht/40''. +The full set of flags specified following a `:'' are: +.Cm a +(802.11a), +.Cm b +(802.11b), +.Cm d +(Atheros Dynamic Turbo mode), +.Cm g +(802.11g), +.Cm h +or +.Cm n +(802.11n aka HT), +.Cm s +(Atheros Static Turbo mode), +and +.Cm t +(Atheros Dynamic Turbo mode, or appendeded to ``st'' and ``dt''). +The full set of channel widths following a '/' are: +.Cm 5 +(5MHz aka quarter-rate channel), +.Cm 10 +(10MHz aka half-rate channel), +.Cm 20 +(20MHz mostly for use in specifying ht20), +and +.Cm 40 +(40MHz mostly for use in specifying ht40), +In addition, +a 40MHz HT channel specification may include the location +of the extension channel by appending ``+'' or ``-'' for above and below, +respectively; e.g. ``2437:ht/40+'' specifies 40MHz wide HT operation +with the center channel at frequency 2437 and the extension channel above. .It Cm deftxkey Ar index Set the default key to use for transmission. Typically this is only set when using WEP encryption. ==== //depot/projects/wifi/sbin/ifconfig/ifieee80211.c#65 (text+ko) ==== @@ -103,13 +103,16 @@ #define IEEE80211_CHAN_HT40 (IEEE80211_CHAN_HT40U | IEEE80211_CHAN_HT40D) #define IEEE80211_CHAN_HT (IEEE80211_CHAN_HT20 | IEEE80211_CHAN_HT40) -#define IEEE80211_CHAN_HTA \ - (IEEE80211_CHAN_A | IEEE80211_CHAN_HT) -#define IEEE80211_CHAN_HTG \ - (IEEE80211_CHAN_G | IEEE80211_CHAN_HT) - #define IEEE80211_IS_CHAN_HT(_c) \ (((_c)->ic_flags & IEEE80211_CHAN_HT) != 0) +#define IEEE80211_IS_CHAN_HT20(_c) \ + (((_c)->ic_flags & IEEE80211_CHAN_HT20) != 0) +#define IEEE80211_IS_CHAN_HT40(_c) \ + (((_c)->ic_flags & IEEE80211_CHAN_HT40) != 0) +#define IEEE80211_IS_CHAN_HT40U(_c) \ + (((_c)->ic_flags & IEEE80211_CHAN_HT40U) != 0) +#define IEEE80211_IS_CHAN_HT40D(_c) \ + (((_c)->ic_flags & IEEE80211_CHAN_HT40D) != 0) #endif static void set80211(int s, int type, int val, int len, void *data); @@ -156,20 +159,20 @@ int j; if ((fc->ic_flags & from) != from) - return 0; + return i; /* NB: quick check exploiting ordering of chans w/ same frequency */ if (i+1 < chaninfo.ic_nchans && chaninfo.ic_chans[i+1].ic_freq == fc->ic_freq && (chaninfo.ic_chans[i+1].ic_flags & to) == to) - return 1; + return i+1; /* brute force search in case channel list is not ordered */ for (j = 0; j < chaninfo.ic_nchans; j++) { const struct ieee80211_channel *tc = &chaninfo.ic_chans[j]; if (j != i && tc->ic_freq == fc->ic_freq && (tc->ic_flags & to) == to) - return 1; + return j; } - return 0; + return i; } /* @@ -203,15 +206,25 @@ int chanmode = ifmr != NULL ? IFM_MODE(ifmr->ifm_current) : IFM_AUTO; /* when ambiguous promote to ``best'' */ - if (chanmode != IFM_IEEE80211_11B && - canpromote(i, IEEE80211_CHAN_B, IEEE80211_CHAN_G)) - i++; - if (chanmode != IFM_IEEE80211_11G && - canpromote(i, IEEE80211_CHAN_G, IEEE80211_CHAN_HTG)) - i++; - if (chanmode != IFM_IEEE80211_11A && - canpromote(i, IEEE80211_CHAN_A, IEEE80211_CHAN_HTA)) - i++; + /* NB: we abitrarily pick HT40+ over HT40- */ + if (chanmode != IFM_IEEE80211_11B) + i = canpromote(i, IEEE80211_CHAN_B, IEEE80211_CHAN_G); + if (chanmode != IFM_IEEE80211_11G) { + i = canpromote(i, IEEE80211_CHAN_G, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT20); + i = canpromote(i, IEEE80211_CHAN_G, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D); + i = canpromote(i, IEEE80211_CHAN_G, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U); + } + if (chanmode != IFM_IEEE80211_11A) { + i = canpromote(i, IEEE80211_CHAN_A, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + i = canpromote(i, IEEE80211_CHAN_A, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); + i = canpromote(i, IEEE80211_CHAN_A, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + } return i; } @@ -320,6 +333,7 @@ static int getchannelflags(const char *val) { +#define CHAN_HT_DEFAULT IEEE80211_CHAN_HT40U #define _CHAN_HT 0x80000000 const char *cp; int flags; @@ -385,8 +399,8 @@ flags |= IEEE80211_CHAN_HT40U; else if (ep != NULL && *ep == '-') flags |= IEEE80211_CHAN_HT40D; - else - flags |= IEEE80211_CHAN_HT40; + else /* NB: pick something */ + flags |= CHAN_HT_DEFAULT; break; default: errx(-1, "%s: Invalid channel width\n", val); @@ -412,9 +426,10 @@ */ flags &= ~_CHAN_HT; if ((flags & IEEE80211_CHAN_HT) == 0) - flags |= IEEE80211_CHAN_HT; + flags |= CHAN_HT_DEFAULT; } return flags; +#undef CHAN_HT_DEFAULT #undef _CHAN_HT } @@ -1076,6 +1091,7 @@ #define IEEE80211_NODE_QOS 0x0002 /* QoS enabled */ #define IEEE80211_NODE_ERP 0x0004 /* ERP enabled */ #define IEEE80211_NODE_PWR_MGT 0x0010 /* power save mode enabled */ +#define IEEE80211_NODE_HT 0x0040 /* HT enabled */ static char flagstring[32]; char *cp = flagstring; @@ -1087,8 +1103,11 @@ *cp++ = 'E'; if (flags & IEEE80211_NODE_PWR_MGT) *cp++ = 'P'; + if (flags & IEEE80211_NODE_HT) + *cp++ = 'H'; *cp = '\0'; return flagstring; +#undef IEEE80211_NODE_HT #undef IEEE80211_NODE_AUTH #undef IEEE80211_NODE_QOS #undef IEEE80211_NODE_ERP @@ -1634,7 +1653,8 @@ } static const char * -get_chaninfo(const struct ieee80211_channel *c, char buf[], size_t bsize) +get_chaninfo(const struct ieee80211_channel *c, int precise, + char buf[], size_t bsize) { buf[0] = '\0'; if (IEEE80211_IS_CHAN_FHSS(c)) @@ -1658,8 +1678,17 @@ strlcat(buf, " 11b", bsize); if (IEEE80211_IS_CHAN_TURBO(c)) strlcat(buf, " Turbo", bsize); - if (IEEE80211_IS_CHAN_HT(c)) - strlcat(buf, " HT", bsize); + if (precise) { + if (IEEE80211_IS_CHAN_HT20(c)) + strlcat(buf, " ht/20", bsize); + else if (IEEE80211_IS_CHAN_HT40D(c)) + strlcat(buf, " ht/40-", bsize); + else if (IEEE80211_IS_CHAN_HT40U(c)) + strlcat(buf, " ht/40+", bsize); + } else { + if (IEEE80211_IS_CHAN_HT(c)) + strlcat(buf, " ht", bsize); + } return buf; } @@ -1671,7 +1700,7 @@ printf("Channel %3u : %u%c Mhz%-14.14s", ieee80211_mhz2ieee(c->ic_freq, c->ic_flags), c->ic_freq, IEEE80211_IS_CHAN_PASSIVE(c) ? '*' : ' ', - get_chaninfo(c, buf, sizeof(buf))); + get_chaninfo(c, verbose, buf, sizeof(buf))); } static void @@ -2189,12 +2218,9 @@ } c = &chan; if (c->ic_freq != IEEE80211_CHAN_ANY) { - printf(" channel %d", c->ic_ieee); - if (verbose) { - char buf[14]; - printf(" (%u Mhz%s)", c->ic_freq, - get_chaninfo(c, buf, sizeof(buf))); - } + char buf[14]; + printf(" channel %d (%u Mhz%s)", c->ic_ieee, c->ic_freq, + get_chaninfo(c, 1, buf, sizeof(buf))); } else if (verbose) printf(" channel UNDEF"); From owner-p4-projects@FreeBSD.ORG Wed Apr 25 04:58:55 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BFD9416A404; Wed, 25 Apr 2007 04:58:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 195BE16A402 for ; Wed, 25 Apr 2007 04:58:54 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0694B13C448 for ; Wed, 25 Apr 2007 04:58:54 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3P4wrQp024023 for ; Wed, 25 Apr 2007 04:58:53 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3P4wosN024020 for perforce@freebsd.org; Wed, 25 Apr 2007 04:58:50 GMT (envelope-from mjacob@freebsd.org) Date: Wed, 25 Apr 2007 04:58:50 GMT Message-Id: <200704250458.l3P4wosN024020@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118769 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 04:58:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=118769 Change 118769 by mjacob@mjexp on 2007/04/25 04:57:59 IFC Affected files ... .. //depot/projects/mjexp/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/mjexp/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/mjexp/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/mjexp/sys/cam/scsi/scsi_da.c#9 integrate .. //depot/projects/mjexp/sys/compat/linprocfs/linprocfs.c#11 integrate .. //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_vfs.c#3 integrate .. //depot/projects/mjexp/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/mjexp/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/mjexp/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/mjexp/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/mjexp/sys/conf/files#21 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/dnlc.c#5 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#5 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#4 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#4 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/mjexp/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/mjexp/sys/dev/ath/if_ath.c#9 integrate .. //depot/projects/mjexp/sys/dev/firewire/firewire.h#2 integrate .. //depot/projects/mjexp/sys/dev/firewire/fwdev.c#4 integrate .. //depot/projects/mjexp/sys/dev/led/led.c#2 integrate .. //depot/projects/mjexp/sys/dev/led/led.h#2 integrate .. //depot/projects/mjexp/sys/dev/msk/if_msk.c#8 integrate .. //depot/projects/mjexp/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/mjexp/sys/dev/usb/if_ural.c#8 integrate .. //depot/projects/mjexp/sys/fs/devfs/devfs_devs.c#4 integrate .. //depot/projects/mjexp/sys/fs/devfs/devfs_vnops.c#8 integrate .. //depot/projects/mjexp/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/mjexp/sys/fs/pseudofs/pseudofs_vncache.c#6 integrate .. //depot/projects/mjexp/sys/geom/uzip/g_uzip.c#3 integrate .. //depot/projects/mjexp/sys/i386/i386/pmap.c#10 integrate .. //depot/projects/mjexp/sys/i386/i386/sys_machdep.c#4 integrate .. //depot/projects/mjexp/sys/i386/i386/vm_machdep.c#4 integrate .. //depot/projects/mjexp/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/mjexp/sys/ia64/include/vmparam.h#2 integrate .. //depot/projects/mjexp/sys/kern/kern_linker.c#7 integrate .. //depot/projects/mjexp/sys/kern/kern_malloc.c#3 integrate .. //depot/projects/mjexp/sys/kern/kern_time.c#7 integrate .. //depot/projects/mjexp/sys/kern/kern_uuid.c#3 integrate .. //depot/projects/mjexp/sys/kern/vfs_bio.c#10 integrate .. //depot/projects/mjexp/sys/modules/zfs/Makefile#3 integrate .. //depot/projects/mjexp/sys/netgraph/ng_l2tp.c#2 integrate .. //depot/projects/mjexp/sys/netinet/sctp.h#3 integrate .. //depot/projects/mjexp/sys/netinet/sctp_indata.c#10 integrate .. //depot/projects/mjexp/sys/netinet/sctp_indata.h#3 integrate .. //depot/projects/mjexp/sys/netinet/sctp_input.c#10 integrate .. //depot/projects/mjexp/sys/netinet/sctp_output.c#11 integrate .. //depot/projects/mjexp/sys/netinet/sctp_pcb.c#10 integrate .. //depot/projects/mjexp/sys/netinet/sctp_pcb.h#7 integrate .. //depot/projects/mjexp/sys/netinet/sctp_structs.h#10 integrate .. //depot/projects/mjexp/sys/netinet/sctp_uio.h#10 integrate .. //depot/projects/mjexp/sys/netinet/sctp_usrreq.c#10 integrate .. //depot/projects/mjexp/sys/netinet/sctputil.c#10 integrate .. //depot/projects/mjexp/sys/netinet/sctputil.h#8 integrate .. //depot/projects/mjexp/sys/netinet/tcp_input.c#12 integrate .. //depot/projects/mjexp/sys/netinet6/in6_pcb.c#3 integrate .. //depot/projects/mjexp/sys/netinet6/route6.c#2 integrate .. //depot/projects/mjexp/sys/nfsclient/nfs_lock.c#2 integrate .. //depot/projects/mjexp/sys/nfsserver/nfs_syscalls.c#7 integrate .. //depot/projects/mjexp/sys/pci/if_vr.c#4 integrate .. //depot/projects/mjexp/sys/pci/if_vrreg.h#3 integrate .. //depot/projects/mjexp/sys/security/audit/audit_syscalls.c#7 integrate .. //depot/projects/mjexp/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/mjexp/sys/security/mac/mac_framework.h#6 integrate .. //depot/projects/mjexp/sys/security/mac/mac_inet.c#5 integrate .. //depot/projects/mjexp/sys/security/mac/mac_net.c#5 integrate .. //depot/projects/mjexp/sys/security/mac/mac_pipe.c#5 integrate .. //depot/projects/mjexp/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/mjexp/sys/security/mac/mac_process.c#4 integrate .. //depot/projects/mjexp/sys/security/mac/mac_socket.c#4 integrate .. //depot/projects/mjexp/sys/security/mac/mac_system.c#6 integrate .. //depot/projects/mjexp/sys/security/mac/mac_vfs.c#5 integrate .. //depot/projects/mjexp/sys/security/mac_biba/mac_biba.c#7 integrate .. //depot/projects/mjexp/sys/security/mac_bsdextended/mac_bsdextended.c#7 integrate .. //depot/projects/mjexp/sys/security/mac_ifoff/mac_ifoff.c#5 integrate .. //depot/projects/mjexp/sys/security/mac_lomac/mac_lomac.c#6 integrate .. //depot/projects/mjexp/sys/security/mac_mls/mac_mls.c#5 integrate .. //depot/projects/mjexp/sys/security/mac_partition/mac_partition.c#6 integrate .. //depot/projects/mjexp/sys/security/mac_portacl/mac_portacl.c#7 integrate .. //depot/projects/mjexp/sys/security/mac_seeotheruids/mac_seeotheruids.c#7 integrate .. //depot/projects/mjexp/sys/security/mac_stub/mac_stub.c#6 integrate .. //depot/projects/mjexp/sys/security/mac_test/mac_test.c#6 integrate .. //depot/projects/mjexp/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/mjexp/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/mjexp/sys/sys/mount.h#11 integrate .. //depot/projects/mjexp/sys/sys/priv.h#7 integrate .. //depot/projects/mjexp/sys/sys/proc.h#13 integrate .. //depot/projects/mjexp/sys/vm/swap_pager.c#7 integrate Differences ... ==== //depot/projects/mjexp/sys/amd64/amd64/pmap.c#9 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.582 2007/04/13 16:07:29 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.583 2007/04/21 14:17:29 ups Exp $"); /* * Manages physical address maps. @@ -209,7 +209,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, - vm_offset_t sva, pd_entry_t ptepde); + vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -221,8 +221,9 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); -static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); -static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t* free); +static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t, vm_page_t *); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); @@ -1065,24 +1066,36 @@ /*************************************************** * Page table page management routines..... ***************************************************/ +static PMAP_INLINE void +pmap_free_zero_pages(vm_page_t free) +{ + vm_page_t m; + while (free != NULL) { + m = free; + free = m->right; + vm_page_free_zero(m); + } +} + /* * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t *free) { --m->wire_count; if (m->wire_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); + return _pmap_unwire_pte_hold(pmap, va, m, free); else return 0; } static int -_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t *free) { vm_offset_t pteva; @@ -1114,14 +1127,14 @@ vm_page_t pdpg; pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdpg); + pmap_unwire_pte_hold(pmap, va, pdpg, free); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdppg); + pmap_unwire_pte_hold(pmap, va, pdppg, free); } /* @@ -1130,7 +1143,13 @@ */ pmap_invalidate_page(pmap, pteva); - vm_page_free_zero(m); + /* + * Put page on a list so that it is released after + * *ALL* TLB shootdown is done + */ + m->right = *free; + *free = m; + atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1140,7 +1159,7 @@ * conditionally free the page, and manage the hold/wire counts. */ static int -pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde) +pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, vm_page_t *free) { vm_page_t mpte; @@ -1148,7 +1167,7 @@ return 0; KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); - return pmap_unwire_pte_hold(pmap, va, mpte); + return pmap_unwire_pte_hold(pmap, va, mpte, free); } void @@ -1366,7 +1385,7 @@ { vm_pindex_t ptepindex; pd_entry_t *pd; - vm_page_t m; + vm_page_t m, free; KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, @@ -1390,8 +1409,10 @@ *pd = 0; pd = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); + free = NULL; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va), &free); pmap_invalidate_all(kernel_pmap); + pmap_free_zero_pages(free); } /* @@ -1609,7 +1630,7 @@ pt_entry_t *pte, tpte; pv_entry_t next_pv, pv; vm_offset_t va; - vm_page_t m; + vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { if (m->hold_count || m->busy) @@ -1635,12 +1656,14 @@ va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, va, ptepde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); free_pv_entry(pmap, pv); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); @@ -1833,7 +1856,8 @@ * pmap_remove_pte: do the things to unmap a page in a process */ static int -pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, pd_entry_t ptepde) +pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, + pd_entry_t ptepde, vm_page_t *free) { pt_entry_t oldpte; vm_page_t m; @@ -1861,7 +1885,7 @@ vm_page_flag_set(m, PG_REFERENCED); pmap_remove_entry(pmap, m, va); } - return (pmap_unuse_pt(pmap, va, ptepde)); + return (pmap_unuse_pt(pmap, va, ptepde, free)); } /* @@ -1871,6 +1895,7 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { pt_entry_t *pte; + vm_page_t free = NULL; PMAP_LOCK_ASSERT(pmap, MA_OWNED); if ((*pde & PG_V) == 0) @@ -1878,8 +1903,9 @@ pte = pmap_pde_to_pte(pde, va); if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, *pde); + pmap_remove_pte(pmap, pte, va, *pde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); } /* @@ -1896,6 +1922,7 @@ pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; + vm_page_t free = NULL; int anyvalid; /* @@ -1959,7 +1986,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, sva, *pdpe); + pmap_unuse_pt(pmap, sva, *pdpe, &free); anyvalid = 1; continue; } @@ -1983,14 +2010,16 @@ */ if ((*pte & PG_G) == 0) anyvalid = 1; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) + if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free)) break; } } out: - vm_page_unlock_queues(); - if (anyvalid) + if (anyvalid) { pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); + } + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2014,6 +2043,7 @@ pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; + vm_page_t free; #if defined(PMAP_DIAGNOSTIC) /* @@ -2045,10 +2075,12 @@ pv->pv_va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); pmap_invalidate_page(pmap, pv->pv_va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pmap, pv->pv_va, ptepde); free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } @@ -2161,9 +2193,9 @@ } } } - vm_page_unlock_queues(); if (anychanged) pmap_invalidate_all(pmap); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2413,6 +2445,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { + vm_page_t free; pt_entry_t *pte; vm_paddr_t pa; @@ -2471,7 +2504,7 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + mpte->wire_count--; mpte = NULL; } return (mpte); @@ -2483,7 +2516,11 @@ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + free = NULL; + if (pmap_unwire_pte_hold(pmap, va, mpte, &free)) { + pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); + } mpte = NULL; } return (mpte); @@ -2657,6 +2694,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { + vm_page_t free; vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; @@ -2716,7 +2754,7 @@ dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; } else - pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); + dstmpde->wire_count--; continue; } @@ -2753,9 +2791,15 @@ *dst_pte = ptetemp & ~(PG_W | PG_M | PG_A); dst_pmap->pm_stats.resident_count++; - } else - pmap_unwire_pte_hold(dst_pmap, addr, - dstmpte); + } else { + free = NULL; + if (pmap_unwire_pte_hold(dst_pmap, + addr, dstmpte, &free)) { + pmap_invalidate_page(dst_pmap, + addr); + pmap_free_zero_pages(free); + } + } if (dstmpte->wire_count >= srcmpte->wire_count) break; } @@ -2866,7 +2910,7 @@ pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; - vm_page_t m; + vm_page_t m, free = NULL; pv_entry_t pv; struct pv_chunk *pc, *npc; int field, idx; @@ -2939,7 +2983,7 @@ if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); pmap_unuse_pt(pmap, pv->pv_va, - *vtopde(pv->pv_va)); + *vtopde(pv->pv_va), &free); } } if (allfree) { @@ -2952,8 +2996,9 @@ vm_page_free(m); } } + pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); vm_page_unlock_queues(); - pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); } ==== //depot/projects/mjexp/sys/amd64/amd64/vm_machdep.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -457,6 +457,10 @@ static void cpu_reset_real() { + struct region_descriptor null_idt; + int b; + + disable_intr(); /* * Attempt to do a CPU reset via the keyboard controller, @@ -465,14 +469,44 @@ */ outb(IO_KBD + 4, 0xFE); DELAY(500000); /* wait 0.5 sec to see if that did it */ - printf("Keyboard reset did not work, attempting CPU shutdown\n"); + + /* + * Attempt to force a reset via the Reset Control register at + * I/O port 0xcf9. Bit 2 forces a system reset when it is + * written as 1. Bit 1 selects the type of reset to attempt: + * 0 selects a "soft" reset, and 1 selects a "hard" reset. We + * try to do a "soft" reset first, and then a "hard" reset. + */ + outb(0xcf9, 0x2); + outb(0xcf9, 0x6); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + + /* + * Attempt to force a reset via the Fast A20 and Init register + * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. + * Bit 0 asserts INIT# when set to 1. We are careful to only + * preserve bit 1 while setting bit 0. We also must clear bit + * 0 before setting it if it isn't already clear. + */ + b = inb(0x92); + if (b != 0xff) { + if ((b & 0x1) != 0) + outb(0x92, b & 0xfe); + outb(0x92, b | 0x1); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + } + + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ - /* Force a shutdown by unmapping entire address space. */ - bzero((caddr_t)PML4map, PAGE_SIZE); + /* Wipe the IDT. */ + null_idt.rd_limit = 0; + null_idt.rd_base = 0; + lidt(&null_idt); /* "good night, sweet prince .... " */ - invltlb(); + breakpoint(); + /* NOTREACHED */ while(1); } ==== //depot/projects/mjexp/sys/amd64/include/vmparam.h#2 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.45 2004/10/27 17:21:15 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.46 2007/04/21 01:14:47 sepotvin Exp $ */ @@ -122,7 +122,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/mjexp/sys/cam/scsi/scsi_da.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.207 2007/04/19 22:18:15 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.208 2007/04/23 18:01:44 scottl Exp $"); #include @@ -39,20 +39,13 @@ #include #include #include -#endif /* _KERNEL */ - +#include #include -#include #include #include #include - -#include - -#include -#include - #include +#endif /* _KERNEL */ #ifndef _KERNEL #include ==== //depot/projects/mjexp/sys/compat/linprocfs/linprocfs.c#11 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.110 2007/04/15 17:02:03 des Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.111 2007/04/22 08:41:52 des Exp $"); #include #include @@ -312,9 +312,11 @@ int error; /* resolve symlinks etc. in the emulation tree prefix */ - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, linux_emul_path, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, linux_emul_path, td); flep = NULL; - if (namei(&nd) != 0 || vn_fullpath(td, nd.ni_vp, &dlep, &flep) != 0) + error = namei(&nd); + VFS_UNLOCK_GIANT(NDHASGIANT(&nd)); + if (error != 0 || vn_fullpath(td, nd.ni_vp, &dlep, &flep) != 0) lep = linux_emul_path; else lep = dlep; ==== //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_misc.c#2 (text+ko) ==== @@ -25,12 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_misc.c,v 1.1 2007/04/08 16:29:23 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_misc.c,v 1.2 2007/04/23 00:52:06 pjd Exp $"); #include #include #include #include +#include char hw_serial[11] = "0"; ==== //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_vfs.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_vfs.c,v 1.3 2007/04/18 15:24:48 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_vfs.c,v 1.4 2007/04/21 12:02:57 pjd Exp $"); #include #include @@ -206,7 +206,7 @@ mp->mnt_flag |= fsflags & (MNT_UPDATEMASK | MNT_FORCE | MNT_ROOTFS); /* * Unprivileged user can trigger mounting a snapshot, but we don't want - * him to unmount it, so we switch to privileged credential. + * him to unmount it, so we switch to privileged credentials. */ crfree(mp->mnt_cred); mp->mnt_cred = crdup(kcred); ==== //depot/projects/mjexp/sys/compat/opensolaris/sys/misc.h#2 (text+ko) ==== @@ -23,18 +23,23 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/misc.h,v 1.1 2007/04/08 16:29:24 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/misc.h,v 1.2 2007/04/23 00:52:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_MISC_H_ #define _OPENSOLARIS_SYS_MISC_H_ +#define _FIOFFS (INT_MIN) +#define _FIOGDIO (INT_MIN+1) +#define _FIOSDIO (INT_MIN+2) + +#define _FIO_SEEK_DATA FIOSEEKDATA +#define _FIO_SEEK_HOLE FIOSEEKHOLE + struct opensolaris_utsname { char *nodename; }; extern char hw_serial[11]; extern struct opensolaris_utsname utsname; - -int ddi_strtoul(const char *str, char **nptr, int base, unsigned long *result); #endif /* _OPENSOLARIS_SYS_MISC_H_ */ ==== //depot/projects/mjexp/sys/compat/opensolaris/sys/types.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/types.h,v 1.1 2007/04/06 01:09:06 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/types.h,v 1.2 2007/04/23 00:52:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_TYPES_H_ @@ -49,6 +49,7 @@ typedef off_t offset_t; typedef long ptrdiff_t; /* pointer difference */ typedef void pathname_t; +typedef int64_t rlim64_t; #else ==== //depot/projects/mjexp/sys/compat/opensolaris/sys/vnode.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/vnode.h,v 1.1 2007/04/06 01:09:06 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/vnode.h,v 1.2 2007/04/23 00:52:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -40,6 +40,7 @@ typedef struct vnode vnode_t; typedef struct vattr vattr_t; +typedef void caller_context_t; typedef struct vop_vector vnodeops_t; #define vop_fid vop_vptofh @@ -63,11 +64,25 @@ #define VN_RELE(v) vrele(v) #define VN_URELE(v) vput(v) +#define VOP_REALVP(vp, vpp) (*(vpp) = (vp), 0) + +#define vnevent_remove(vp) do { } while (0) +#define vnevent_rmdir(vp) do { } while (0) +#define vnevent_rename_src(vp) do { } while (0) +#define vnevent_rename_dest(vp) do { } while (0) + + #define IS_DEVVP(vp) \ ((vp)->v_type == VCHR || (vp)->v_type == VBLK || (vp)->v_type == VFIFO) #define MODEMASK ALLPERMS +#define specvp(vp, rdev, type, cr) (VN_HOLD(vp), (vp)) +#define MANDMODE(mode) (0) +#define chklock(vp, op, offset, size, mode, ct) (0) +#define cleanlocks(vp, pid, foo) do { } while (0) +#define cleanshares(vp, pid) do { } while (0) + /* * We will use va_spare is place of Solaris' va_mask. * This field is initialized in zfs_setattr(). @@ -80,6 +95,9 @@ #define va_blksize va_blocksize #define va_seq va_gen +#define MAXOFFSET_T OFF_MAX +#define EXCL 0 + #define AT_TYPE 0x0001 #define AT_MODE 0x0002 #define AT_UID 0x0004 @@ -95,6 +113,8 @@ #define AT_BLKSIZE 0x1000 #define AT_NBLOCKS 0x2000 #define AT_SEQ 0x4000 +#define AT_NOSET (AT_NLINK|AT_RDEV|AT_FSID|AT_NODEID|AT_TYPE|\ + AT_BLKSIZE|AT_NBLOCKS|AT_SEQ) #define ACCESSED (AT_ATIME) #define STATE_CHANGED (AT_CTIME) @@ -122,10 +142,15 @@ vap->va_mask |= AT_MODE; } -enum create { CRCREAT }; #define FCREAT O_CREAT #define FTRUNC O_TRUNC +#define FDSYNC FFSYNC +#define FRSYNC FFSYNC +#define FSYNC FFSYNC #define FOFFMAX 0x00 + +enum create { CRCREAT }; + static __inline int zfs_vn_open(char *pnamep, enum uio_seg seg, int filemode, int createmode, vnode_t **vpp, enum create crwhy, mode_t umask) @@ -185,7 +210,6 @@ #define vn_rdwr(rw, vp, base, len, offset, seg, ioflag, ulimit, cr, residp) \ zfs_vn_rdwr((rw), (vp), (base), (len), (offset), (seg), (ioflag), (ulimit), (cr), (residp)) -#define FSYNC MNT_WAIT static __inline int zfs_vop_fsync(vnode_t *vp, int flag, cred_t *cr) { @@ -199,7 +223,7 @@ if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) goto drop; vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - error = VOP_FSYNC(vp, flag, td); + error = VOP_FSYNC(vp, MNT_WAIT, td); VOP_UNLOCK(vp, 0, td); vn_finished_write(mp); drop: ==== //depot/projects/mjexp/sys/conf/files#21 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1196 2007/04/17 00:35:10 thompsa Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1197 2007/04/21 22:08:47 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1957,6 +1957,7 @@ security/audit/audit_syscalls.c standard security/audit/audit_trigger.c optional audit security/audit/audit_worker.c optional audit +security/mac/mac_audit.c optional mac audit security/mac/mac_framework.c optional mac security/mac/mac_inet.c optional mac inet security/mac/mac_label.c optional mac ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/dnlc.c#5 (text+ko) ==== @@ -203,7 +203,11 @@ { "pick_last", KSTAT_DATA_UINT64 }, }; +#ifdef FREEBSD_NAMECACHE +static int doingcache = 0; +#else static int doingcache = 1; +#endif TUNABLE_INT("vfs.zfs.dnlc.enable", &doingcache); SYSCTL_INT(_vfs_zfs_dnlc, OID_AUTO, enable, CTLFLAG_RDTUN, &doingcache, 0, "Enable/disable name cache"); ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 (text+ko) ==== @@ -2802,13 +2802,14 @@ #ifdef _KERNEL /* Warn about ZFS memory requirements. */ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { - printf("ZFS WARNING: Recomended minimum of RAM size is 512MB, " - "expect unstable behaviour.\n"); + printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " + "expect unstable behavior.\n"); } else if (kmem_size() < 256 * (1 << 20)) { - printf("ZFS WARNING: Recomended minimum of kmem_map size is " - "256MB, expect unstable behaviour.\n"); - printf(" Consider tunning vm.kmem_size and " - "vm.kmem_size_max in /boot/loader.conf.\n"); + printf("ZFS WARNING: Recommended minimum kmem_size is 256MB; " + "expect unstable behavior.\n"); + printf(" Consider tuning vm.kmem_size or " + "vm.kmem_size_min\n"); + printf(" in /boot/loader.conf.\n"); } #endif } ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#5 (text+ko) ==== @@ -57,6 +57,7 @@ #include #include #include +#include int zio_taskq_threads = 0; SYSCTL_DECL(_vfs_zfs); @@ -499,10 +500,9 @@ /* * Try to open all vdevs, loading each label in the process. */ - if (vdev_open(rvd) != 0) { - error = ENXIO; + error = vdev_open(rvd); + if (error != 0) goto out; - } /* * Validate the labels for all leaf vdevs. We need to grab the config @@ -513,10 +513,8 @@ error = vdev_validate(rvd); spa_config_exit(spa, FTAG); - if (error != 0) { - error = EBADF; + if (error != 0) goto out; - } if (rvd->vdev_state <= VDEV_STATE_CANT_OPEN) { error = ENXIO; ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#4 (text+ko) ==== @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef _KERNEL #include #endif ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 (text+ko) ==== @@ -931,7 +931,7 @@ for (c = 0; c < vd->vdev_children; c++) if (vdev_validate(vd->vdev_child[c]) != 0) - return (-1); + return (EBADF); /* * If the device has already failed, or was marked offline, don't do @@ -974,7 +974,7 @@ if (spa->spa_load_state == SPA_LOAD_OPEN && state != POOL_STATE_ACTIVE) - return (-1); + return (EBADF); } /* @@ -1262,7 +1262,6 @@ vdev_config_dirty(vd->vdev_top); } - bzero(&smlock, sizeof(smlock)); mutex_init(&smlock, NULL, MUTEX_DEFAULT, NULL); space_map_create(&smsync, sm->sm_start, sm->sm_size, sm->sm_shift, ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 (text+ko) ==== @@ -48,6 +48,7 @@ #include #include #include +#include int fzap_default_block_shift = 14; /* 16k blocksize */ @@ -907,7 +908,7 @@ for (zap_cursor_init(&zc, os, zapobj); (err = zap_cursor_retrieve(&zc, za)) == 0; zap_cursor_advance(&zc)) { - if (za->za_first_integer == value) { + if (ZFS_DIRENT_OBJ(za->za_first_integer) == value) { (void) strcpy(name, za->za_name); break; } ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#4 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Apr 25 12:02:44 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2D25116A415; Wed, 25 Apr 2007 12:02:44 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E060716A407 for ; Wed, 25 Apr 2007 12:02:43 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D2DEA13C487 for ; Wed, 25 Apr 2007 12:02:43 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PC2hko033134 for ; Wed, 25 Apr 2007 12:02:43 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PC2hFP033130 for perforce@freebsd.org; Wed, 25 Apr 2007 12:02:43 GMT (envelope-from sephe@FreeBSD.org) Date: Wed, 25 Apr 2007 12:02:43 GMT Message-Id: <200704251202.l3PC2hFP033130@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 118776 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 12:02:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=118776 Change 118776 by sephe@sephe_zealot:sam_wifi on 2007/04/25 12:02:05 - Nuke unnecessary header inclusion. - Use ieee80211_init_channels(). Affected files ... .. //depot/projects/wifi/sys/dev/usb/if_ural.c#21 edit Differences ... ==== //depot/projects/wifi/sys/dev/usb/if_ural.c#21 (text+ko) ==== @@ -51,12 +51,7 @@ #include #include - -#include -#include -#include -#include -#include +#include #include #include @@ -361,12 +356,11 @@ USB_ATTACH_START(ural, sc, uaa); struct ifnet *ifp; struct ieee80211com *ic = &sc->sc_ic; - struct ieee80211_channel *c; usb_interface_descriptor_t *id; usb_endpoint_descriptor_t *ed; usbd_status error; char devinfo[1024]; - int i; + int i, bands; sc->sc_udev = uaa->device; @@ -466,39 +460,12 @@ | IEEE80211_C_WPA /* 802.11i */ ; - if (sc->rf_rev == RAL_RF_5222) { - /* set supported .11a channels */ - for (i = 36; i <= 64; i += 4) { - c = &ic->ic_channels[ic->ic_nchans++]; - c->ic_freq = ieee80211_ieee2mhz(i, IEEE80211_CHAN_5GHZ); - c->ic_flags = IEEE80211_CHAN_A; - c->ic_ieee = i; - } - for (i = 100; i <= 140; i += 4) { - c = &ic->ic_channels[ic->ic_nchans++]; - c->ic_freq = ieee80211_ieee2mhz(i, IEEE80211_CHAN_5GHZ); - c->ic_flags = IEEE80211_CHAN_A; - c->ic_ieee = i; - } - for (i = 149; i <= 161; i += 4) { - c = &ic->ic_channels[ic->ic_nchans++]; - c->ic_freq = ieee80211_ieee2mhz(i, IEEE80211_CHAN_5GHZ); - c->ic_flags = IEEE80211_CHAN_A; - c->ic_ieee = i; - } - } - - /* set supported .11b and .11g channels (1 through 14) */ - for (i = 1; i <= 14; i++) { - c = &ic->ic_channels[ic->ic_nchans++]; - c->ic_freq = ieee80211_ieee2mhz(i, IEEE80211_CHAN_2GHZ); - c->ic_flags = IEEE80211_CHAN_B; - c->ic_ieee = i; - c = &ic->ic_channels[ic->ic_nchans++]; - c->ic_freq = ieee80211_ieee2mhz(i, IEEE80211_CHAN_2GHZ); - c->ic_flags = IEEE80211_CHAN_G; - c->ic_ieee = i; - } + bands = 0; + setbit(&bands, IEEE80211_MODE_11B); + setbit(&bands, IEEE80211_MODE_11G); + if (sc->rf_rev == RAL_RF_5222) + setbit(&bands, IEEE80211_MODE_11A); + ieee80211_init_channels(ic, 0, CTRY_DEFAULT, bands, 0, 1); ieee80211_ifattach(ic); ic->ic_reset = ural_reset; From owner-p4-projects@FreeBSD.ORG Wed Apr 25 12:26:14 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A851216A407; Wed, 25 Apr 2007 12:26:14 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 49F0716A400 for ; Wed, 25 Apr 2007 12:26:14 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3CAF413C4B7 for ; Wed, 25 Apr 2007 12:26:14 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PCQEES039139 for ; Wed, 25 Apr 2007 12:26:14 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PCQDBd039136 for perforce@freebsd.org; Wed, 25 Apr 2007 12:26:13 GMT (envelope-from sephe@FreeBSD.org) Date: Wed, 25 Apr 2007 12:26:13 GMT Message-Id: <200704251226.l3PCQDBd039136@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 118779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 12:26:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=118779 Change 118779 by sephe@sephe_zealot:sam_wifi on 2007/04/25 12:25:58 ieee80211com.ic_fixed_rate holds rate instead of rate index. Affected files ... .. //depot/projects/wifi/sys/dev/ral/rt2560.c#20 edit .. //depot/projects/wifi/sys/dev/ral/rt2661.c#12 edit Differences ... ==== //depot/projects/wifi/sys/dev/ral/rt2560.c#20 (text) ==== @@ -1773,7 +1773,6 @@ struct rt2560_tx_desc *desc; struct rt2560_tx_data *data; struct rt2560_node *rn; - struct ieee80211_rateset *rs; struct ieee80211_frame *wh; struct ieee80211_key *k; struct mbuf *mnew; @@ -1785,9 +1784,10 @@ wh = mtod(m0, struct ieee80211_frame *); if (ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) { - rs = &ic->ic_sup_rates[ic->ic_curmode]; - rate = rs->rs_rates[ic->ic_fixed_rate]; + rate = ic->ic_fixed_rate; } else { + struct ieee80211_rateset *rs; + rs = &ni->ni_rates; rn = (struct rt2560_node *)ni; ni->ni_txrate = ral_rssadapt_choose(&rn->rssadapt, rs, wh, ==== //depot/projects/wifi/sys/dev/ral/rt2661.c#12 (text) ==== @@ -1534,7 +1534,6 @@ struct rt2661_tx_desc *desc; struct rt2661_tx_data *data; struct rt2661_node *rn; - struct ieee80211_rateset *rs; struct ieee80211_frame *wh; struct ieee80211_key *k; const struct chanAccParams *cap; @@ -1547,9 +1546,10 @@ wh = mtod(m0, struct ieee80211_frame *); if (ic->ic_fixed_rate != IEEE80211_FIXED_RATE_NONE) { - rs = &ic->ic_sup_rates[ic->ic_curmode]; - rate = rs->rs_rates[ic->ic_fixed_rate]; + rate = ic->ic_fixed_rate; } else { + struct ieee80211_rateset *rs; + rs = &ni->ni_rates; rn = (struct rt2661_node *)ni; ni->ni_txrate = ral_rssadapt_choose(&rn->rssadapt, rs, From owner-p4-projects@FreeBSD.ORG Wed Apr 25 13:36:41 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CE6B16A401; Wed, 25 Apr 2007 13:36:41 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F24BC16A403 for ; Wed, 25 Apr 2007 13:36:40 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id E45D813C45B for ; Wed, 25 Apr 2007 13:36:40 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PDaeb5066169 for ; Wed, 25 Apr 2007 13:36:40 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PDaexK066166 for perforce@freebsd.org; Wed, 25 Apr 2007 13:36:40 GMT (envelope-from sephe@FreeBSD.org) Date: Wed, 25 Apr 2007 13:36:40 GMT Message-Id: <200704251336.l3PDaexK066166@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 118780 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 13:36:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=118780 Change 118780 by sephe@sephe_zealot:sam_wifi on 2007/04/25 13:35:53 - Break long lines. - Fix comment typo. Affected files ... .. //depot/projects/wifi/sys/dev/usb/if_ural.c#22 edit Differences ... ==== //depot/projects/wifi/sys/dev/usb/if_ural.c#22 (text+ko) ==== @@ -404,7 +404,8 @@ sc->sc_tx_no = ed->bEndpointAddress; } if (sc->sc_rx_no == -1 || sc->sc_tx_no == -1) { - printf("%s: missing endpoint\n", device_get_nameunit(sc->sc_dev)); + printf("%s: missing endpoint\n", + device_get_nameunit(sc->sc_dev)); USB_ATTACH_ERROR_RETURN; } @@ -423,11 +424,13 @@ ural_read_eeprom(sc); printf("%s: MAC/BBP RT2570 (rev 0x%02x), RF %s\n", - device_get_nameunit(sc->sc_dev), sc->asic_rev, ural_get_rf(sc->rf_rev)); + device_get_nameunit(sc->sc_dev), sc->asic_rev, + ural_get_rf(sc->rf_rev)); ifp = sc->sc_ifp = if_alloc(IFT_ETHER); if (ifp == NULL) { - printf("%s: can not if_alloc()\n", device_get_nameunit(sc->sc_dev)); + printf("%s: can not if_alloc()\n", + device_get_nameunit(sc->sc_dev)); USB_ATTACH_ERROR_RETURN; } @@ -456,7 +459,7 @@ | IEEE80211_C_TXPMGT /* tx power management */ | IEEE80211_C_SHPREAMBLE /* short preamble supported */ | IEEE80211_C_SHSLOT /* short slot time supported */ - | IEEE80211_C_BGSCAN /* bg scanning supportd */ + | IEEE80211_C_BGSCAN /* bg scanning supported */ | IEEE80211_C_WPA /* 802.11i */ ; From owner-p4-projects@FreeBSD.ORG Wed Apr 25 15:27:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 80F4216A403; Wed, 25 Apr 2007 15:27:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 572B616A400; Wed, 25 Apr 2007 15:27:49 +0000 (UTC) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [69.12.149.25]) by mx1.freebsd.org (Postfix) with ESMTP id 36DAE13C465; Wed, 25 Apr 2007 15:27:49 +0000 (UTC) (envelope-from sam@errno.com) Received: from [10.0.0.248] (trouble.errno.com [10.0.0.248]) (authenticated bits=0) by ebb.errno.com (8.13.6/8.12.6) with ESMTP id l3PFRmVp004438 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 25 Apr 2007 08:27:49 -0700 (PDT) (envelope-from sam@errno.com) Message-ID: <462F7376.3070806@errno.com> Date: Wed, 25 Apr 2007 08:27:50 -0700 From: Sam Leffler User-Agent: Thunderbird 1.5.0.9 (X11/20070208) MIME-Version: 1.0 To: Sepherosa Ziehau References: <200704251226.l3PCQDBd039136@repoman.freebsd.org> In-Reply-To: <200704251226.l3PCQDBd039136@repoman.freebsd.org> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Perforce Change Reviews Subject: Re: PERFORCE change 118779 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 15:27:49 -0000 Sepherosa Ziehau wrote: > http://perforce.freebsd.org/chv.cgi?CH=118779 > > Change 118779 by sephe@sephe_zealot:sam_wifi on 2007/04/25 12:25:58 > > ieee80211com.ic_fixed_rate holds rate instead of rate index. > This reminds me that we need to correct the fixed rate and multicast rate knobs to be per-netband (at least 11g+11a). I've done this for 11n where the rates are incompatible (MCS instead of legacy). This also ties into our use of if_media for specifying any fixed rate; that needs to go away (though the existing mechanism probably should be kept for compatibility). Sam From owner-p4-projects@FreeBSD.ORG Wed Apr 25 22:35:03 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D613416A402; Wed, 25 Apr 2007 22:35:02 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9799816A401 for ; Wed, 25 Apr 2007 22:35:02 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6DFC013C44B for ; Wed, 25 Apr 2007 22:35:02 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PMZ2T6022370 for ; Wed, 25 Apr 2007 22:35:02 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PMZ2Gs022367 for perforce@freebsd.org; Wed, 25 Apr 2007 22:35:02 GMT (envelope-from rpaulo@FreeBSD.org) Date: Wed, 25 Apr 2007 22:35:02 GMT Message-Id: <200704252235.l3PMZ2Gs022367@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118803 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 22:35:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=118803 Change 118803 by rpaulo@rpaulo_epsilon on 2007/04/25 22:34:51 Add a backlight driver inspired by the MacBook backlight control utility available for Linux. Thanks to John Baldwin for the PCI tips. Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#1 add .. //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlightvar.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Apr 25 22:39:08 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8621716A409; Wed, 25 Apr 2007 22:39:08 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2A44A16A404 for ; Wed, 25 Apr 2007 22:39:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1A20413C448 for ; Wed, 25 Apr 2007 22:39:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PMd7cD022574 for ; Wed, 25 Apr 2007 22:39:07 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PMd7q1022571 for perforce@freebsd.org; Wed, 25 Apr 2007 22:39:07 GMT (envelope-from rpaulo@FreeBSD.org) Date: Wed, 25 Apr 2007 22:39:07 GMT Message-Id: <200704252239.l3PMd7q1022571@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118804 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 22:39:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=118804 Change 118804 by rpaulo@rpaulo_epsilon on 2007/04/25 22:38:13 Include backlightvar.h properly. Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#2 edit Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#1 $ + * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#2 $ * */ @@ -47,7 +47,7 @@ #include #include -#include "backlightvar.h" +#include static struct backlight_model *backlight_match(device_t); From owner-p4-projects@FreeBSD.ORG Wed Apr 25 22:39:09 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D6C9A16A535; Wed, 25 Apr 2007 22:39:08 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 98F1A16A475 for ; Wed, 25 Apr 2007 22:39:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6EB5013C45B for ; Wed, 25 Apr 2007 22:39:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PMd81s022581 for ; Wed, 25 Apr 2007 22:39:08 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PMd8GD022577 for perforce@freebsd.org; Wed, 25 Apr 2007 22:39:08 GMT (envelope-from rpaulo@FreeBSD.org) Date: Wed, 25 Apr 2007 22:39:08 GMT Message-Id: <200704252239.l3PMd8GD022577@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118805 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 22:39:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=118805 Change 118805 by rpaulo@rpaulo_epsilon on 2007/04/25 22:38:44 Makefile for the backlight driver. Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/modules/backlight/Makefile#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Apr 25 22:55:31 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E2DC916A404; Wed, 25 Apr 2007 22:55:30 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8D4E716A403 for ; Wed, 25 Apr 2007 22:55:30 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 64F8413C46A for ; Wed, 25 Apr 2007 22:55:30 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3PMtU9H025619 for ; Wed, 25 Apr 2007 22:55:30 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3PMtUwf025616 for perforce@freebsd.org; Wed, 25 Apr 2007 22:55:30 GMT (envelope-from rpaulo@FreeBSD.org) Date: Wed, 25 Apr 2007 22:55:30 GMT Message-Id: <200704252255.l3PMtUwf025616@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118808 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 22:55:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=118808 Change 118808 by rpaulo@rpaulo_epsilon on 2007/04/25 22:54:33 Hook backlight to the build. Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/conf/files#2 edit Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/conf/files#2 (text+ko) ==== @@ -486,6 +486,7 @@ dev/awi/am79c930.c optional awi dev/awi/awi.c optional awi dev/awi/if_awi_pccard.c optional awi pccard +dev/backlight/backlight.c optional backlight dev/bce/if_bce.c optional bce dev/bfe/if_bfe.c optional bfe dev/bge/if_bge.c optional bge From owner-p4-projects@FreeBSD.ORG Thu Apr 26 12:39:23 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4669F16A404; Thu, 26 Apr 2007 12:39:23 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 18EB216A400 for ; Thu, 26 Apr 2007 12:39:23 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 085EC13C455 for ; Thu, 26 Apr 2007 12:39:23 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3QCdMFb011050 for ; Thu, 26 Apr 2007 12:39:22 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3QCdMwe011047 for perforce@freebsd.org; Thu, 26 Apr 2007 12:39:22 GMT (envelope-from rdivacky@FreeBSD.org) Date: Thu, 26 Apr 2007 12:39:22 GMT Message-Id: <200704261239.l3QCdMwe011047@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118826 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2007 12:39:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=118826 Change 118826 by rdivacky@rdivacky_witten on 2007/04/26 12:38:54 Introduce AT_SYMLINK_NOFOLLOW and it's strange semantics. Add linux_file.h and move the AT_FDCWD definition there. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_at/sys/amd64/linux32/linux.h#2 edit .. //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_file.c#3 edit .. //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_file.h#1 add .. //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_stats.c#3 edit .. //depot/projects/soc2007/rdivacky/linux_at/sys/i386/linux/linux.h#2 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_at/sys/amd64/linux32/linux.h#2 (text+ko) ==== @@ -566,8 +566,6 @@ #define LINUX_F_WRLCK 1 #define LINUX_F_UNLCK 2 -#define LINUX_AT_FDCWD -100 - /* * mount flags */ ==== //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_file.c#3 (text+ko) ==== @@ -67,6 +67,7 @@ #include #endif #include +#include int linux_creat(struct thread *td, struct linux_creat_args *args) ==== //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_stats.c#3 (text+ko) ==== @@ -57,6 +57,7 @@ #endif #include +#include #include @@ -587,6 +588,9 @@ int fd, dfd; struct stat buf; + if (args->flag & ~LINUX_AT_SYMLINK_NOFOLLOW) + return (EINVAL); + /* open the file */ path = malloc(MAXPATHLEN, M_TEMP, M_WAITOK); error = copyinstr(args->pathname, path, MAXPATHLEN, NULL); ==== //depot/projects/soc2007/rdivacky/linux_at/sys/i386/linux/linux.h#2 (text+ko) ==== @@ -537,8 +537,6 @@ #define LINUX_F_WRLCK 1 #define LINUX_F_UNLCK 2 -#define LINUX_AT_FDCWD -100 - /* * mount flags */ From owner-p4-projects@FreeBSD.ORG Thu Apr 26 13:03:56 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 29AFC16A40D; Thu, 26 Apr 2007 13:03:56 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 07E8B16A409 for ; Thu, 26 Apr 2007 13:03:56 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id EAE0613C46E for ; Thu, 26 Apr 2007 13:03:55 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3QD3twL025163 for ; Thu, 26 Apr 2007 13:03:55 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3QD3tXP025157 for perforce@freebsd.org; Thu, 26 Apr 2007 13:03:55 GMT (envelope-from rdivacky@FreeBSD.org) Date: Thu, 26 Apr 2007 13:03:55 GMT Message-Id: <200704261303.l3QD3tXP025157@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118829 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2007 13:03:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=118829 Change 118829 by rdivacky@rdivacky_witten on 2007/04/26 13:03:49 This should implement the NOFOLLOW semantics. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_stats.c#4 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_at/sys/compat/linux/linux_stats.c#4 (text+ko) ==== @@ -585,12 +585,15 @@ { int error; char *path, *newpath; - int fd, dfd; + int fd, dfd, flags = O_RDONLY; struct stat buf; if (args->flag & ~LINUX_AT_SYMLINK_NOFOLLOW) return (EINVAL); + if (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) + flags |= O_NOFOLLOW; + /* open the file */ path = malloc(MAXPATHLEN, M_TEMP, M_WAITOK); error = copyinstr(args->pathname, path, MAXPATHLEN, NULL); @@ -612,7 +615,7 @@ else dfd = args->dfd; - error = kern_openat(td, newpath, UIO_SYSSPACE, O_RDONLY, 0, dfd); + error = kern_openat(td, newpath, UIO_SYSSPACE, flags, 0, dfd); if (error) { LFREEPATH(newpath); return (error); From owner-p4-projects@FreeBSD.ORG Thu Apr 26 14:46:03 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C6F6916A404; Thu, 26 Apr 2007 14:46:02 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6218116A406 for ; Thu, 26 Apr 2007 14:46:02 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4F9C813C457 for ; Thu, 26 Apr 2007 14:46:02 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3QEk2L4045050 for ; Thu, 26 Apr 2007 14:46:02 GMT (envelope-from gonzo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3QEk13g045047 for perforce@freebsd.org; Thu, 26 Apr 2007 14:46:01 GMT (envelope-from gonzo@FreeBSD.org) Date: Thu, 26 Apr 2007 14:46:01 GMT Message-Id: <200704261446.l3QEk13g045047@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gonzo@FreeBSD.org using -f From: Oleksandr Tymoshenko To: Perforce Change Reviews Cc: Subject: PERFORCE change 118832 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2007 14:46:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=118832 Change 118832 by gonzo@gonzo_jeeves on 2007/04/26 14:45:16 o Make kernel buildable without "option DDB". Affected files ... .. //depot/projects/mips2/src/sys/mips/mips/exception.S#24 edit .. //depot/projects/mips2/src/sys/mips/mips/machdep.c#28 edit .. //depot/projects/mips2/src/sys/mips/mips/trap.c#21 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/mips/exception.S#24 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/mips2/src/sys/mips/mips/exception.S#23 $ + * $P4: //depot/projects/mips2/src/sys/mips/mips/exception.S#24 $ */ /* $NetBSD: mipsX_subr.S,v 1.19 2005/12/11 12:18:09 christos Exp $ */ @@ -297,7 +297,7 @@ * are using the kernel debugger, then set up is auxillary * frame, so it has a full one. */ -#if DDB +#ifdef DDB jal save_kdbaux nop #endif /* DDB */ @@ -355,7 +355,7 @@ * are using the kernel debugger, then set up is auxillary * frame, so it has a full one. */ -#if DDB +#ifdef DDB jal save_kdbaux nop #endif /* DDB */ @@ -928,7 +928,7 @@ nop END(exception_save_registers) -#if DDB +#ifdef DDB /* * Save the kdbaux structure for DDB. */ ==== //depot/projects/mips2/src/sys/mips/mips/machdep.c#28 (text+ko) ==== @@ -67,6 +67,7 @@ #include #include #include +#include #include ==== //depot/projects/mips2/src/sys/mips/mips/trap.c#21 (text+ko) ==== @@ -318,7 +318,7 @@ switch (code) { case TrBp: -#if DDB +#ifdef DDB default: kdb_trap(code, 0, tf); goto done; From owner-p4-projects@FreeBSD.ORG Thu Apr 26 16:02:36 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B54716A409; Thu, 26 Apr 2007 16:02:36 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 26F9116A402 for ; Thu, 26 Apr 2007 16:02:36 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 1587813C46A for ; Thu, 26 Apr 2007 16:02:36 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3QG2Z8k059728 for ; Thu, 26 Apr 2007 16:02:35 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3QG2ZuP059723 for perforce@freebsd.org; Thu, 26 Apr 2007 16:02:35 GMT (envelope-from taleks@FreeBSD.org) Date: Thu, 26 Apr 2007 16:02:35 GMT Message-Id: <200704261602.l3QG2ZuP059723@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 118835 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2007 16:02:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=118835 Change 118835 by taleks@taleks_th on 2007/04/26 16:01:49 Updated icmp code, added icmp echo replying. Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.c#2 edit Differences ... ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#2 (text+ko) ==== ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#2 (text+ko) ==== @@ -4,6 +4,10 @@ #include #include +/* PXE structures and function codes +#include "sys/boot/libi386/pxe.h" +*/ + /* contains wrappers for UNDI functions */ @@ -60,6 +64,12 @@ /* interrupt handler function, that used to get new packets */ void pxe_core_isr(); +/* installs irq handler*/ +void pxe_core_install_isr(); + +/* removes irq handler*/ +void pxe_core_remove_isr(); + /* stores data in packet */ int pxe_core_recieve(pxe_packet* pack, void* data, size_t size); ==== //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.c#2 (text+ko) ==== @@ -1,60 +1,164 @@ +#include #include "pxe_ip.h" #include "pxe_icmp.h" #include "pxe_core.h" #include "pxe_conv.h" +/* used in echo replying */ +static pinging=0; + int pxe_icmp_callback(pxe_packet* pack, uint8_t function, void* data) { - return 1; + + if (function==PXE_CORE_CHECK) { + /* we don't store icmp packets, so they cannot steal memory + in pxe core packet table */ + return 0; + } + + /* PXE_CORE_HANDLE - to handle packet + PXE_CORE_FRAG - to handle fragment of packet, may be useful for fast + dropping of invalid packet. + */ + + + /* icmp header*/ + pxe_ip* iphdr=pack->data; + size_t iphdr_len=(iphdr->ver_ihl & 0x0f)*4; + size_t data_size=iphdr->length-iphdr_len-sizeof(pxe_ip); + pxe_icmp* icmphdr=pack->data+sizeof(pxe_ip)+iphdr_len; + + /* TODO: verify checksum */ + + /* reply */ + pxe_packet* pack_out=NULL; + pxe_ip* reply_iphdr=NULL; + pxe_icmp* reply_icmphdr=NULL; + size_t reply_size=sizeof(pxe_ip)+sizeof(pxe_icmp)+data_size; + + /* we are interested only in echo related packets*/ + switch(icmphdr->code) { + case PXE_ICMP_ECHO_REQUEST: + case PXE_ICMP_ECHO_REPLY: + /* case PXE_ICMP_DEST_UNREACHABLE: + case PXE_ICMP_REDIRECT_MESSAGE: + */ + break; + + default: + return 0; /* instruct pxe core to drop packet*/ + }; + + if (icmphdr->code==PXE_ICMP_ECHO_REPLY) { + + if (pinging==be2le32(iphdr->src_ip)) + printf("\necho reply from %x, seq=%ld.", iphdr->src_ip, icmphdr->seq_num); + else /* we are not interested in this reply*/ + printf("\nlame echo reply from %x, seq=%ld.", iphdr->src_ip, icmphdr->seq_num); + return 0; + } + /* all we need now is echo reply */ + pxe_packet* pack_out=pxe_core_alloc_packet(reply_size); + + if (!pack) { /* TO THINK: failed to allocate packet, + may be it's better to use + statically allocated packet. */ + + return 0; + } + + reply_iphdr=(pxe_ip*)pack_out->data; + reply_icmphdr=(pxe_icmp*)(reply_iphdr+1); + + reply_icmphdr->type=PXE_ICMP_ECHO_REPLY; + + /* copying same values */ + + reply_icmphdr->code=icmphdr->code; + reply_icmphdr->seq_num=icmphdr->seq_num; + reply_icmphdr->packet_id=icmphdr->reply_icmphdr; + reply_icmphdr->checksum=0; + reply_icmphdr->checksum=~(le2be16(pxe_ip_checksum(reply_icmphdr, sizeof(pxe_icmp)))); + + pxe_ip_hdr(pack_out->data, iphdr->src_ip, 0x01, reply_size, 0); + + /*copying all data from request packet to reply packet, starting after headers */ + pxe_memcpy(reply_icmphdr+1, pack->data+iphdr_len+sizeof(pxe_icmp), data_size); + + pxe_core_transmit(pack_out); +/* pxe_core_commit(pack); + return 1; /* instruct core we are interested in it, so save data */ + + return 0; /* drop it, we don't need this packet more */ + /* this is a little bit ugly, may be */ + /* using of more return codes will be more flexible */ } int pxe_icmp_init() { - pxe_core_register(1, pxe_icmp_callback); + /* register protocol in pxe protocols table. */ + /* 0x01 - ICMP protocol */ + pxe_core_register(0x01, pxe_icmp_callback); return 1; } int pxe_ping(pxe_ipaddr* ip, int count) { - uint32_t scount=0; + int scount=0; /* creating packet */ - - pxe_packet* pack=pxe_core_alloc_packet(sizeof(pxe_ip)+sizeof(pxe_icmp)); + size_t pack_size=sizeof(pxe_ip)+sizeof(pxe_icmp)+32; + pxe_packet* pack=pxe_core_alloc_packet(pack_size); + pxe_ip* iphdr=NULL; + pxe_icmp* icmphdr=NULL; if (!pack) { /* failed to alloc packet */ return 0; } - pxe_ip* iphdr=pack->data; - pxe_icmp* icmphdr=pack->data+sizeof(pxe_ip); + printf("\nping: %x, bytes=32", ip->ip); + pinging=ip->ip; + + iphdr=(pxe_ip*)pack->data; + icmphdr=(pxe_icmp*)(pack->data+sizeof(pxe_ip)); + + /* base icmp header side*/ icmphdr->type=PXE_ICMP_ECHO_REQUEST; - icmphdr->code=0; - icmphdr->seq_num=0; - icmphdr->packet_id=0; - icmphdr->checksum=0; + icmphdr->code=1; + +/* icmphdr->seq_num=scount; + icmphdr->packet_id=scount*scount; +*/ + +/* icmphdr->checksum=0; + reply_icmphdr->checksum=~(le2be16(pxe_ip_checksum(icmphdr, sizeof(pxe_icmp)))); +*/ + + /* ip header side */ + pxe_ip_hdr(pack->data, ip->ip, 0x01, pack_size, 0); + + + while (scountseq_num=scount; + icmphdr->packet_id=scount*scount; /* is this good idea? */ -/* iphdr->checksum=0; - iphdr->length=le2be16(sizeof(pxe_ip)+sizeof(pxe_icmp)); - iphdr->protocol=1; - iphdr->checksum=0; - iphdr->data_off=le2be16(sizeof(pxe_ip)); - iphdr->dst_ip=le2be32(ip->ip); - iphdr->id=0; - iphdr->tos=0; - iphdr->src_ip=le2be32(pxe_get_myip32()); - iphdr->ttl=30; + /* recalc for every packet */ - iphdr->ver_ihl=0x45; + icmphdr->checksum=0; + reply_icmphdr->checksum=~(le2be16(pxe_ip_checksum(icmphdr, sizeof(pxe_icmp)))); -*/ + pxe_core_transmit(pack); - pxe_ip_hdr(pack->data, ip->ip, 1, sizeof(pxe_ip)+sizeof(pxe_icmp), 0); + /* TODO: timeout checking */ + ++scount; + } + pinging=0; return scount; } ==== //depot/projects/soc2007/taleks-pxe_http/pxe_ip.c#2 (text+ko) ==== @@ -24,6 +24,9 @@ return (uint16_t)sum; } +/* NOTE: opts_size is unused, cause we are creating header without options. + it may be useful later, but now it's just unused. +*/ void pxe_ip_hdr(void* data, uint32_t dst_ip, uint8_t protocol, uint16_t size, uint16_t opts_size) { pxe_ip* iphdr=(pxe_ip*)data; @@ -32,13 +35,16 @@ iphdr->length=size; iphdr->protocol=protocol; iphdr->checksum=0; - iphdr->data_off=0; /* le2be16(sizeof(pxe_ip)); */ + /* data_off - offset of fragment, need to think about renaming. */ + iphdr->data_off=0; /* le2be16(); */ iphdr->dst_ip=le2be32(dst_ip); iphdr->id=0; iphdr->tos=0; iphdr->src_ip=le2be32(pxe_get_myip32()); iphdr->ttl=30; + /* 0x45 [ver_ihl] = 0x4 << 4 [ip version] | + 0x5 [header length = 20 bytes, no opts] */ iphdr->ver_ihl=0x45; iphdr->ver_ihl+=(opts_size>>2) From owner-p4-projects@FreeBSD.ORG Thu Apr 26 18:46:09 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1BFE116A409; Thu, 26 Apr 2007 18:46:09 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E36E816A400 for ; Thu, 26 Apr 2007 18:46:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id D2CAC13C4BA for ; Thu, 26 Apr 2007 18:46:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3QIk8vw097513 for ; Thu, 26 Apr 2007 18:46:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3QIk83N097510 for perforce@freebsd.org; Thu, 26 Apr 2007 18:46:08 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 26 Apr 2007 18:46:08 GMT Message-Id: <200704261846.l3QIk83N097510@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118839 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2007 18:46:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=118839 Change 118839 by hselasky@hselasky_mini_itx on 2007/04/26 18:45:16 Improve handling of zero length BULK transfers. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci.c#28 edit .. //depot/projects/usb/src/sys/dev/usb/ohci.c#22 edit .. //depot/projects/usb/src/sys/dev/usb/uhci.c#23 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci.c#28 (text+ko) ==== @@ -1538,6 +1538,7 @@ htole32(EHCI_QTD_SET_CERR(3)); u_int8_t isread; u_int8_t shortpkt = 0; + u_int8_t force_short; ehci_qtd_t *td; ehci_qtd_t *td_last = NULL; ehci_qh_t *qh; @@ -1552,6 +1553,8 @@ buf_offset = 0; usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res); + force_short = (xfer->flags & USBD_FORCE_SHORT_XFER) ? 1 : 0; + if(xfer->pipe->methods == &ehci_device_ctrl_methods) { /* the first byte is "bmRequestType" */ @@ -1603,14 +1606,14 @@ { isread = (UE_GET_DIR(xfer->endpoint) == UE_DIR_IN); - if(xfer->length == 0) - { - /* must allow access to "td_last", - * so xfer->length cannot be zero! + if (xfer->length == 0) { + /* When the length is zero we + * queue a short packet! + * This also makes "td_last" + * non-zero. */ - printf("%s: setting USBD_FORCE_SHORT_XFER!\n", - __FUNCTION__); - xfer->flags |= USBD_FORCE_SHORT_XFER; + DPRINTFN(0, ("short transfer!\n")); + force_short = 1; } } @@ -1631,7 +1634,7 @@ { if(len == 0) { - if(xfer->flags & USBD_FORCE_SHORT_XFER) + if (force_short) { if(shortpkt) { ==== //depot/projects/usb/src/sys/dev/usb/ohci.c#22 (text+ko) ==== @@ -1265,6 +1265,7 @@ u_int32_t len = xfer->length; u_int8_t isread; u_int8_t shortpkt = 0; + u_int8_t force_short; ohci_td_t *td; ohci_td_t *td_last = NULL; ohci_ed_t *ed; @@ -1278,6 +1279,8 @@ buf_offset = 0; usbd_get_page(&(xfer->buf_data), buf_offset, &buf_res); + force_short = (xfer->flags & USBD_FORCE_SHORT_XFER) ? 1 : 0; + if(xfer->pipe->methods == &ohci_device_ctrl_methods) { /* the first byte is "bmRequestType" */ @@ -1323,14 +1326,14 @@ { isread = (UE_GET_DIR(xfer->endpoint) == UE_DIR_IN); - if(xfer->length == 0) - { - /* must allow access to "td_last", - * so xfer->length cannot be zero! + if (xfer->length == 0) { + /* When the length is zero we + * queue a short packet! + * This also makes "td_last" + * non-zero. */ - printf("%s: setting USBD_FORCE_SHORT_XFER!\n", - __FUNCTION__); - xfer->flags |= USBD_FORCE_SHORT_XFER; + DPRINTFN(0, ("short transfer!\n")); + force_short = 1; } } @@ -1361,7 +1364,7 @@ { if(len == 0) { - if(xfer->flags & USBD_FORCE_SHORT_XFER) + if (force_short) { if(shortpkt) { ==== //depot/projects/usb/src/sys/dev/usb/uhci.c#23 (text+ko) ==== @@ -1362,6 +1362,7 @@ u_int32_t len = xfer->length; u_int8_t isread; u_int8_t shortpkt = 0; + u_int8_t force_short; uhci_td_t *td; uhci_td_t *td_last = NULL; @@ -1389,6 +1390,8 @@ td_status |= htole32(UHCI_TD_SPD); } + force_short = (xfer->flags & USBD_FORCE_SHORT_XFER) ? 1 : 0; + if(xfer->pipe->methods == &uhci_device_ctrl_methods) { /* the first byte is "bmRequestType" */ @@ -1433,13 +1436,14 @@ { isread = (UE_GET_DIR(xfer->endpoint) == UE_DIR_IN); - if(xfer->length == 0) - { - /* must allow access to "td_last", - * so xfer->length cannot be zero! + if (xfer->length == 0) { + /* When the length is zero we + * queue a short packet! + * This also makes "td_last" + * non-zero. */ - printf("%s: setting USBD_FORCE_SHORT_XFER!\n", __FUNCTION__); - xfer->flags |= USBD_FORCE_SHORT_XFER; + DPRINTFN(0, ("short transfer!\n")); + force_short = 1; } } @@ -1458,7 +1462,7 @@ { if(len == 0) { - if(xfer->flags & USBD_FORCE_SHORT_XFER) + if (force_short) { if(shortpkt) { From owner-p4-projects@FreeBSD.ORG Thu Apr 26 19:10:09 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2565A16A408; Thu, 26 Apr 2007 19:10:09 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EE1CA16A400 for ; Thu, 26 Apr 2007 19:10:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id DC34313C465 for ; Thu, 26 Apr 2007 19:10:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3QJA8e3002095 for ; Thu, 26 Apr 2007 19:10:08 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3QJ9wAK002041 for perforce@freebsd.org; Thu, 26 Apr 2007 19:09:58 GMT (envelope-from jhb@freebsd.org) Date: Thu, 26 Apr 2007 19:09:58 GMT Message-Id: <200704261909.l3QJ9wAK002041@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 118841 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2007 19:10:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=118841 Change 118841 by jhb@jhb_mutex on 2007/04/26 19:09:52 IFC @118838 Affected files ... .. //depot/projects/smpng/sys/Makefile#17 integrate .. //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#25 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#29 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#74 integrate .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#35 integrate .. //depot/projects/smpng/sys/amd64/include/vmparam.h#8 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_dummy.c#9 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#23 integrate .. //depot/projects/smpng/sys/bsm/audit.h#8 integrate .. //depot/projects/smpng/sys/bsm/audit_internal.h#6 integrate .. //depot/projects/smpng/sys/bsm/audit_kevents.h#8 integrate .. //depot/projects/smpng/sys/bsm/audit_record.h#8 integrate .. //depot/projects/smpng/sys/cam/cam_ccb.h#11 integrate .. //depot/projects/smpng/sys/cam/cam_periph.c#24 integrate .. //depot/projects/smpng/sys/cam/cam_periph.h#6 integrate .. //depot/projects/smpng/sys/cam/cam_sim.c#6 integrate .. //depot/projects/smpng/sys/cam/cam_sim.h#3 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#43 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.h#5 integrate .. //depot/projects/smpng/sys/cam/cam_xpt_periph.h#4 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#31 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_ch.c#15 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#75 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_low.c#16 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_pass.c#17 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_pt.c#14 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#27 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_ses.c#15 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_sg.c#2 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_targ_bh.c#11 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_target.c#24 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#58 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.c#38 integrate .. //depot/projects/smpng/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/smpng/sys/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate .. //depot/projects/smpng/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/smpng/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/smpng/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/smpng/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/smpng/sys/conf/NOTES#142 integrate .. //depot/projects/smpng/sys/conf/files#204 integrate .. //depot/projects/smpng/sys/conf/options#141 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/common/atomic/i386/atomic.S#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/smpng/sys/contrib/pf/net/if_pfsync.c#26 integrate .. //depot/projects/smpng/sys/dev/aac/aac_cam.c#22 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_ibm.c#10 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#100 integrate .. //depot/projects/smpng/sys/dev/advansys/advansys.c#15 integrate .. //depot/projects/smpng/sys/dev/advansys/adwcam.c#17 integrate .. //depot/projects/smpng/sys/dev/aha/aha.c#20 integrate .. //depot/projects/smpng/sys/dev/ahb/ahb.c#19 integrate .. //depot/projects/smpng/sys/dev/aic/aic.c#11 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7770.c#13 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.c#27 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.h#22 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_osm.c#25 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_osm.h#18 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx_pci.c#24 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.c#26 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.h#14 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_inline.h#10 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_osm.c#22 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_osm.h#20 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx_pci.c#19 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic_osm_lib.c#4 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic_osm_lib.h#6 integrate .. //depot/projects/smpng/sys/dev/amd/amd.c#20 integrate .. //depot/projects/smpng/sys/dev/amr/amr_cam.c#19 integrate .. //depot/projects/smpng/sys/dev/arcmsr/arcmsr.c#16 integrate .. //depot/projects/smpng/sys/dev/asr/asr.c#37 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#63 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#32 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#52 integrate .. //depot/projects/smpng/sys/dev/buslogic/bt.c#18 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#51 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#3 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_sge.c#4 integrate .. //depot/projects/smpng/sys/dev/cxgb/sys/mvec.h#2 integrate .. //depot/projects/smpng/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/smpng/sys/dev/dpt/dpt_scsi.c#19 integrate .. //depot/projects/smpng/sys/dev/esp/ncr53c9x.c#9 integrate .. //depot/projects/smpng/sys/dev/ex/if_exvar.h#5 integrate .. //depot/projects/smpng/sys/dev/firewire/firewire.h#15 integrate .. //depot/projects/smpng/sys/dev/firewire/fwdev.c#24 integrate .. //depot/projects/smpng/sys/dev/firewire/fwdma.c#8 integrate .. //depot/projects/smpng/sys/dev/firewire/sbp.c#42 integrate .. //depot/projects/smpng/sys/dev/firewire/sbp_targ.c#9 integrate .. //depot/projects/smpng/sys/dev/hptmv/entry.c#14 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_logging.c#7 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#21 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_piv.c#8 integrate .. //depot/projects/smpng/sys/dev/iicbus/icee.c#2 integrate .. //depot/projects/smpng/sys/dev/iir/iir.c#18 integrate .. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#55 integrate .. //depot/projects/smpng/sys/dev/led/led.c#13 integrate .. //depot/projects/smpng/sys/dev/led/led.h#4 integrate .. //depot/projects/smpng/sys/dev/mly/mly.c#31 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_cam.c#24 integrate .. //depot/projects/smpng/sys/dev/msk/if_msk.c#7 integrate .. //depot/projects/smpng/sys/dev/msk/if_mskreg.h#3 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#90 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#23 integrate .. //depot/projects/smpng/sys/dev/ppbus/vpo.c#11 integrate .. //depot/projects/smpng/sys/dev/ral/rt2560.c#9 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#55 integrate .. //depot/projects/smpng/sys/dev/rr232x/osm_bsd.c#4 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ad1816.c#25 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ess.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/isa/mss.c#31 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb16.c#24 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sb8.c#18 integrate .. //depot/projects/smpng/sys/dev/sound/pci/als4000.c#21 integrate .. //depot/projects/smpng/sys/dev/sound/pci/atiixp.c#11 integrate .. //depot/projects/smpng/sys/dev/sound/pci/au88x0.c#12 integrate .. //depot/projects/smpng/sys/dev/sound/pci/aureal.c#15 integrate .. //depot/projects/smpng/sys/dev/sound/pci/cmi.c#35 integrate .. //depot/projects/smpng/sys/dev/sound/pci/cs4281.c#16 integrate .. //depot/projects/smpng/sys/dev/sound/pci/csapcm.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ds1.c#25 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10k1.c#33 integrate .. //depot/projects/smpng/sys/dev/sound/pci/emu10kx-pcm.c#6 integrate .. //depot/projects/smpng/sys/dev/sound/pci/envy24.c#10 integrate .. //depot/projects/smpng/sys/dev/sound/pci/envy24ht.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#25 integrate .. //depot/projects/smpng/sys/dev/sound/pci/fm801.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pci/hda/hdac.c#12 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#50 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro3.c#26 integrate .. //depot/projects/smpng/sys/dev/sound/pci/solo.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pci/t4dwave.c#24 integrate .. //depot/projects/smpng/sys/dev/sound/pci/via8233.c#26 integrate .. //depot/projects/smpng/sys/dev/sound/pci/via82c686.c#26 integrate .. //depot/projects/smpng/sys/dev/sound/pci/vibes.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#37 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.h#12 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97_patch.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97_patch.h#7 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/buffer.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/buffer.h#12 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#30 integrate .. //depot/projects/smpng/sys/dev/sound/sbus/cs4231.c#7 integrate .. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#30 integrate .. //depot/projects/smpng/sys/dev/trm/trm.c#27 integrate .. //depot/projects/smpng/sys/dev/twa/tw_osl_cam.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/if_ural.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/umass.c#62 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#103 integrate .. //depot/projects/smpng/sys/dev/wds/wd7000.c#10 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi.c#85 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_devs.c#25 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#64 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_dbregs.c#16 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_fpregs.c#16 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_map.c#10 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_regs.c#16 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs.c#25 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs.h#26 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_fileno.c#9 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_internal.h#4 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vncache.c#26 integrate .. //depot/projects/smpng/sys/fs/pseudofs/pseudofs_vnops.c#47 integrate .. //depot/projects/smpng/sys/geom/uzip/g_uzip.c#10 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum.h#11 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rm.c#11 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_share.c#5 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_subr.c#13 integrate .. //depot/projects/smpng/sys/i386/i386/bios.c#24 integrate .. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#42 integrate .. //depot/projects/smpng/sys/i386/i386/identcpu.c#54 integrate .. //depot/projects/smpng/sys/i386/i386/local_apic.c#50 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#107 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#118 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#49 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#82 integrate .. //depot/projects/smpng/sys/i386/include/pmap.h#36 integrate .. //depot/projects/smpng/sys/i386/include/vmparam.h#9 integrate .. //depot/projects/smpng/sys/ia64/include/vmparam.h#12 integrate .. //depot/projects/smpng/sys/isa/isa_common.c#20 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#106 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#86 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#49 integrate .. //depot/projects/smpng/sys/kern/kern_linker.c#87 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#47 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#51 integrate .. //depot/projects/smpng/sys/kern/kern_uuid.c#13 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#77 integrate .. //depot/projects/smpng/sys/kern/subr_rman.c#34 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#163 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#53 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#103 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#103 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#73 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#141 integrate .. //depot/projects/smpng/sys/modules/Makefile#139 integrate .. //depot/projects/smpng/sys/modules/if_lagg/Makefile#1 branch .. //depot/projects/smpng/sys/modules/if_trunk/Makefile#2 delete .. //depot/projects/smpng/sys/modules/zfs/Makefile#2 integrate .. //depot/projects/smpng/sys/net/ieee8023ad_lacp.c#2 integrate .. //depot/projects/smpng/sys/net/ieee8023ad_lacp.h#2 integrate .. //depot/projects/smpng/sys/net/if.c#94 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#83 integrate .. //depot/projects/smpng/sys/net/if_lagg.c#1 branch .. //depot/projects/smpng/sys/net/if_lagg.h#1 branch .. //depot/projects/smpng/sys/net/if_trunk.c#2 delete .. //depot/projects/smpng/sys/net/if_trunk.h#2 delete .. //depot/projects/smpng/sys/net/if_var.h#49 integrate .. //depot/projects/smpng/sys/netgraph/ng_l2tp.c#12 integrate .. //depot/projects/smpng/sys/netgraph/ng_ppp.c#23 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#85 integrate .. //depot/projects/smpng/sys/netinet/sctp.h#3 integrate .. //depot/projects/smpng/sys/netinet/sctp_constants.h#9 integrate .. //depot/projects/smpng/sys/netinet/sctp_crc32.c#4 integrate .. //depot/projects/smpng/sys/netinet/sctp_indata.c#10 integrate .. //depot/projects/smpng/sys/netinet/sctp_indata.h#3 integrate .. //depot/projects/smpng/sys/netinet/sctp_input.c#10 integrate .. //depot/projects/smpng/sys/netinet/sctp_lock_bsd.h#4 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#10 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.c#9 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.h#8 integrate .. //depot/projects/smpng/sys/netinet/sctp_peeloff.c#6 integrate .. //depot/projects/smpng/sys/netinet/sctp_structs.h#8 integrate .. //depot/projects/smpng/sys/netinet/sctp_timer.c#8 integrate .. //depot/projects/smpng/sys/netinet/sctp_uio.h#9 integrate .. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#10 integrate .. //depot/projects/smpng/sys/netinet/sctp_var.h#6 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#11 integrate .. //depot/projects/smpng/sys/netinet/sctputil.h#7 integrate .. //depot/projects/smpng/sys/netinet/tcp.h#17 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#103 integrate .. //depot/projects/smpng/sys/netinet/tcp_output.c#48 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#91 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#58 integrate .. //depot/projects/smpng/sys/netinet/tcp_var.h#50 integrate .. //depot/projects/smpng/sys/netinet6/in6_pcb.c#47 integrate .. //depot/projects/smpng/sys/netinet6/route6.c#9 integrate .. //depot/projects/smpng/sys/netinet6/sctp6_usrreq.c#9 integrate .. //depot/projects/smpng/sys/netnatm/natm.h#8 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#48 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_lock.c#34 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#66 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#31 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_syscalls.c#34 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#36 integrate .. //depot/projects/smpng/sys/pci/if_vr.c#47 integrate .. //depot/projects/smpng/sys/pci/if_vrreg.h#14 integrate .. //depot/projects/smpng/sys/pci/intpm.c#16 integrate .. //depot/projects/smpng/sys/pci/ncr.c#25 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/nexus.c#12 integrate .. //depot/projects/smpng/sys/security/audit/audit.c#9 integrate .. //depot/projects/smpng/sys/security/audit/audit.h#5 integrate .. //depot/projects/smpng/sys/security/audit/audit_arg.c#9 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm.c#6 integrate .. //depot/projects/smpng/sys/security/audit/audit_bsm_token.c#7 integrate .. //depot/projects/smpng/sys/security/audit/audit_private.h#7 integrate .. //depot/projects/smpng/sys/security/audit/audit_syscalls.c#10 integrate .. //depot/projects/smpng/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/smpng/sys/security/mac/mac_framework.h#7 integrate .. //depot/projects/smpng/sys/security/mac/mac_inet.c#8 integrate .. //depot/projects/smpng/sys/security/mac/mac_net.c#19 integrate .. //depot/projects/smpng/sys/security/mac/mac_pipe.c#11 integrate .. //depot/projects/smpng/sys/security/mac/mac_policy.h#4 integrate .. //depot/projects/smpng/sys/security/mac/mac_process.c#13 integrate .. //depot/projects/smpng/sys/security/mac/mac_socket.c#8 integrate .. //depot/projects/smpng/sys/security/mac/mac_system.c#10 integrate .. //depot/projects/smpng/sys/security/mac/mac_vfs.c#18 integrate .. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#48 integrate .. //depot/projects/smpng/sys/security/mac_bsdextended/mac_bsdextended.c#25 integrate .. //depot/projects/smpng/sys/security/mac_ifoff/mac_ifoff.c#11 integrate .. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#36 integrate .. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#41 integrate .. //depot/projects/smpng/sys/security/mac_partition/mac_partition.c#13 integrate .. //depot/projects/smpng/sys/security/mac_portacl/mac_portacl.c#13 integrate .. //depot/projects/smpng/sys/security/mac_seeotheruids/mac_seeotheruids.c#13 integrate .. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#22 integrate .. //depot/projects/smpng/sys/security/mac_test/mac_test.c#38 integrate .. //depot/projects/smpng/sys/sparc64/include/vmparam.h#13 integrate .. //depot/projects/smpng/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/smpng/sys/sys/eventhandler.h#25 integrate .. //depot/projects/smpng/sys/sys/interrupt.h#21 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#71 integrate .. //depot/projects/smpng/sys/sys/mount.h#61 integrate .. //depot/projects/smpng/sys/sys/priv.h#6 integrate .. //depot/projects/smpng/sys/sys/proc.h#180 integrate .. //depot/projects/smpng/sys/sys/socket.h#31 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#70 integrate .. //depot/projects/smpng/sys/vm/vm_contig.c#42 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#85 integrate .. //depot/projects/smpng/sys/vm/vm_param.h#8 integrate Differences ... ==== //depot/projects/smpng/sys/Makefile#17 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.41 2007/03/24 22:21:01 maxim Exp $ +# $FreeBSD: src/sys/Makefile,v 1.42 2007/04/14 16:29:15 maxim Exp $ .include @@ -8,10 +8,10 @@ .endif # Directories to include in cscope name file and TAGS. -CSCOPEDIRS= cam coda compat conf contrib crypto ddb dev fs geom gnu i4b \ - isa kern libkern modules net net80211 netatalk netatm \ +CSCOPEDIRS= bsm cam coda compat conf contrib crypto ddb dev fs geom gnu \ + i4b isa kern libkern modules net net80211 netatalk netatm \ netgraph netinet netinet6 netipx netkey netnatm netncp \ - netsmb nfs nfsclient nfs4client rpc pccard pci sys \ + netsmb nfs nfsclient nfs4client rpc pccard pci security sys \ ufs vm ${ARCHDIR} ARCHDIR ?= ${MACHINE} ==== //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#25 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.79 2007/03/06 18:28:42 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.80 2007/04/17 21:05:34 jhb Exp $"); #include #include @@ -48,6 +48,7 @@ #include #include #include +#include #define MAX_BPAGES 8192 @@ -522,6 +523,9 @@ } else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) { printf("bus_dmamem_alloc failed to align memory properly.\n"); } + if (flags & BUS_DMA_NOCACHE) + pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, + PAT_UNCACHEABLE); CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (0); @@ -540,6 +544,7 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); + pmap_change_attr((vm_offset_t)vaddr, dmat->maxsize, PAT_WRITE_BACK); if ((dmat->maxsize <= PAGE_SIZE) && (dmat->alignment < dmat->maxsize) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) ==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#29 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.37 2007/03/20 21:53:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.38 2007/04/25 19:58:41 ariff Exp $"); #include "opt_hwpmc_hooks.h" @@ -326,6 +326,29 @@ /* XXX: Error and thermal LVTs */ + if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. This feature renders + * the local APIC timer dead, so we disable it by reading + * the Interrupt Pending Message register and clearing both + * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). + * + * Reference: + * "BIOS and Kernel Developer's Guide for AMD NPT + * Family 0Fh Processors" + * #32559 revision 3.00 + */ + if ((cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + uint64_t msr; + + msr = rdmsr(0xc0010055); + if (msr & 0x18000000) + wrmsr(0xc0010055, msr & ~0x18000000ULL); + } + } + intr_restore(eflags); } ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#74 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.581 2007/03/10 20:26:43 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $"); /* * Manages physical address maps. @@ -209,7 +209,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, - vm_offset_t sva, pd_entry_t ptepde); + vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -221,8 +221,9 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); -static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); -static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t* free); +static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t, vm_page_t *); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); @@ -1065,24 +1066,36 @@ /*************************************************** * Page table page management routines..... ***************************************************/ +static PMAP_INLINE void +pmap_free_zero_pages(vm_page_t free) +{ + vm_page_t m; + while (free != NULL) { + m = free; + free = m->right; + vm_page_free_zero(m); + } +} + /* * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t *free) { --m->wire_count; if (m->wire_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); + return _pmap_unwire_pte_hold(pmap, va, m, free); else return 0; } static int -_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t *free) { vm_offset_t pteva; @@ -1114,14 +1127,14 @@ vm_page_t pdpg; pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdpg); + pmap_unwire_pte_hold(pmap, va, pdpg, free); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdppg); + pmap_unwire_pte_hold(pmap, va, pdppg, free); } /* @@ -1130,7 +1143,13 @@ */ pmap_invalidate_page(pmap, pteva); - vm_page_free_zero(m); + /* + * Put page on a list so that it is released after + * *ALL* TLB shootdown is done + */ + m->right = *free; + *free = m; + atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1140,7 +1159,7 @@ * conditionally free the page, and manage the hold/wire counts. */ static int -pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde) +pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, vm_page_t *free) { vm_page_t mpte; @@ -1148,7 +1167,7 @@ return 0; KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); - return pmap_unwire_pte_hold(pmap, va, mpte); + return pmap_unwire_pte_hold(pmap, va, mpte, free); } void @@ -1366,7 +1385,7 @@ { vm_pindex_t ptepindex; pd_entry_t *pd; - vm_page_t m; + vm_page_t m, free; KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, @@ -1390,8 +1409,10 @@ *pd = 0; pd = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); + free = NULL; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va), &free); pmap_invalidate_all(kernel_pmap); + pmap_free_zero_pages(free); } /* @@ -1609,7 +1630,7 @@ pt_entry_t *pte, tpte; pv_entry_t next_pv, pv; vm_offset_t va; - vm_page_t m; + vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { if (m->hold_count || m->busy) @@ -1635,12 +1656,14 @@ va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, va, ptepde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); free_pv_entry(pmap, pv); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); @@ -1833,7 +1856,8 @@ * pmap_remove_pte: do the things to unmap a page in a process */ static int -pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, pd_entry_t ptepde) +pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, + pd_entry_t ptepde, vm_page_t *free) { pt_entry_t oldpte; vm_page_t m; @@ -1861,7 +1885,7 @@ vm_page_flag_set(m, PG_REFERENCED); pmap_remove_entry(pmap, m, va); } - return (pmap_unuse_pt(pmap, va, ptepde)); + return (pmap_unuse_pt(pmap, va, ptepde, free)); } /* @@ -1871,6 +1895,7 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { pt_entry_t *pte; + vm_page_t free = NULL; PMAP_LOCK_ASSERT(pmap, MA_OWNED); if ((*pde & PG_V) == 0) @@ -1878,8 +1903,9 @@ pte = pmap_pde_to_pte(pde, va); if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, *pde); + pmap_remove_pte(pmap, pte, va, *pde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); } /* @@ -1896,6 +1922,7 @@ pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; + vm_page_t free = NULL; int anyvalid; /* @@ -1959,7 +1986,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, sva, *pdpe); + pmap_unuse_pt(pmap, sva, *pdpe, &free); anyvalid = 1; continue; } @@ -1983,14 +2010,16 @@ */ if ((*pte & PG_G) == 0) anyvalid = 1; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) + if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free)) break; } } out: - vm_page_unlock_queues(); - if (anyvalid) + if (anyvalid) { pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); + } + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2014,6 +2043,7 @@ pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; + vm_page_t free; #if defined(PMAP_DIAGNOSTIC) /* @@ -2045,10 +2075,12 @@ pv->pv_va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); pmap_invalidate_page(pmap, pv->pv_va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pmap, pv->pv_va, ptepde); free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } @@ -2161,9 +2193,9 @@ } } } - vm_page_unlock_queues(); if (anychanged) pmap_invalidate_all(pmap); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2413,6 +2445,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { + vm_page_t free; pt_entry_t *pte; vm_paddr_t pa; @@ -2471,7 +2504,7 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + mpte->wire_count--; mpte = NULL; } return (mpte); @@ -2483,7 +2516,11 @@ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + free = NULL; + if (pmap_unwire_pte_hold(pmap, va, mpte, &free)) { + pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); + } mpte = NULL; } return (mpte); @@ -2657,6 +2694,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { + vm_page_t free; vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; @@ -2716,7 +2754,7 @@ dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; } else - pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); + dstmpde->wire_count--; continue; } @@ -2753,9 +2791,15 @@ *dst_pte = ptetemp & ~(PG_W | PG_M | PG_A); dst_pmap->pm_stats.resident_count++; - } else - pmap_unwire_pte_hold(dst_pmap, addr, - dstmpte); + } else { + free = NULL; + if (pmap_unwire_pte_hold(dst_pmap, + addr, dstmpte, &free)) { + pmap_invalidate_page(dst_pmap, + addr); + pmap_free_zero_pages(free); + } + } if (dstmpte->wire_count >= srcmpte->wire_count) break; } @@ -2866,7 +2910,7 @@ pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; - vm_page_t m; + vm_page_t m, free = NULL; pv_entry_t pv; struct pv_chunk *pc, *npc; int field, idx; @@ -2939,7 +2983,7 @@ if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); pmap_unuse_pt(pmap, pv->pv_va, - *vtopde(pv->pv_va)); + *vtopde(pv->pv_va), &free); } } if (allfree) { @@ -2952,8 +2996,9 @@ vm_page_free(m); } } + pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); vm_page_unlock_queues(); - pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); } @@ -3261,7 +3306,7 @@ pd_entry_t *pde; pt_entry_t *pte; - base = va & PG_FRAME; + base = trunc_page(va); offset = va & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); ==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#35 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -459,6 +459,10 @@ static void cpu_reset_real() { + struct region_descriptor null_idt; + int b; + + disable_intr(); /* * Attempt to do a CPU reset via the keyboard controller, @@ -467,14 +471,44 @@ */ outb(IO_KBD + 4, 0xFE); DELAY(500000); /* wait 0.5 sec to see if that did it */ - printf("Keyboard reset did not work, attempting CPU shutdown\n"); + + /* + * Attempt to force a reset via the Reset Control register at + * I/O port 0xcf9. Bit 2 forces a system reset when it is + * written as 1. Bit 1 selects the type of reset to attempt: + * 0 selects a "soft" reset, and 1 selects a "hard" reset. We + * try to do a "soft" reset first, and then a "hard" reset. + */ + outb(0xcf9, 0x2); + outb(0xcf9, 0x6); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + + /* + * Attempt to force a reset via the Fast A20 and Init register + * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. + * Bit 0 asserts INIT# when set to 1. We are careful to only + * preserve bit 1 while setting bit 0. We also must clear bit + * 0 before setting it if it isn't already clear. + */ + b = inb(0x92); + if (b != 0xff) { + if ((b & 0x1) != 0) + outb(0x92, b & 0xfe); + outb(0x92, b | 0x1); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + } + + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ - /* Force a shutdown by unmapping entire address space. */ - bzero((caddr_t)PML4map, PAGE_SIZE); + /* Wipe the IDT. */ + null_idt.rd_limit = 0; + null_idt.rd_base = 0; + lidt(&null_idt); /* "good night, sweet prince .... " */ - invltlb(); + breakpoint(); + /* NOTREACHED */ while(1); } ==== //depot/projects/smpng/sys/amd64/include/vmparam.h#8 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.45 2004/10/27 17:21:15 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.46 2007/04/21 01:14:47 sepotvin Exp $ */ @@ -122,7 +122,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/smpng/sys/amd64/linux32/linux32_dummy.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.8 2007/03/29 02:11:46 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.9 2007/04/18 18:08:12 jkim Exp $"); #include #include @@ -64,7 +64,6 @@ DUMMY(mincore); DUMMY(fadvise64); DUMMY(ptrace); -DUMMY(settimeofday); DUMMY(lookup_dcookie); DUMMY(epoll_create); DUMMY(epoll_ctl); ==== //depot/projects/smpng/sys/amd64/linux32/linux32_machdep.c#23 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.39 2007/03/30 17:27:13 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.42 2007/04/18 20:12:05 jkim Exp $"); #include #include @@ -252,7 +252,7 @@ if (iovcnt > UIO_MAXIOV) return (EINVAL); iovlen = iovcnt * sizeof(struct iovec); - uio = malloc(iovlen + sizeof *uio, M_IOV, M_WAITOK); + uio = malloc(iovlen + sizeof(*uio), M_IOV, M_WAITOK); iov = (struct iovec *)(uio + 1); for (i = 0; i < iovcnt; i++) { error = copyin(&iovp[i], &iov32, sizeof(struct iovec32)); @@ -526,7 +526,9 @@ td2 = FIRST_THREAD_IN_PROC(p2); - /* make it run */ + /* + * Make this runnable after we are finished with it. + */ mtx_lock_spin(&sched_lock); TD_SET_CAN_RUN(td2); sched_add(td2, SRQ_BORING); @@ -572,8 +574,8 @@ /* * XXX: In Linux, sharing of fs info (chroot/cwd/umask) * and open files is independant. In FreeBSD, its in one - * structure but in reality it does not make any problems - * because both of these flags are set at once usually. + * structure but in reality it does not cause any problems + * because both of these flags are usually set together. */ if (!(args->flags & (LINUX_CLONE_FILES | LINUX_CLONE_FS))) ff |= RFFDG; @@ -660,15 +662,15 @@ if (args->flags & LINUX_CLONE_SETTLS) { struct user_segment_descriptor sd; struct l_user_desc info; - int a[2]; + int a[2]; - error = copyin((void *)td->td_frame->tf_rsi, &info, + error = copyin((void *)td->td_frame->tf_rsi, &info, sizeof(struct l_user_desc)); if (error) { printf(LMSG("copyin failed!")); } else { /* We might copy out the entry_number as GUGS32_SEL. */ - info.entry_number = GUGS32_SEL; + info.entry_number = GUGS32_SEL; error = copyout(&info, (void *)td->td_frame->tf_rsi, sizeof(struct l_user_desc)); if (error) @@ -871,7 +873,7 @@ * * Our mmap with MAP_STACK takes addr as the maximum * downsize limit on BOS, and as len the max size of - * the region. It them maps the top SGROWSIZ bytes, + * the region. It then maps the top SGROWSIZ bytes, * and auto grows the region down, up to the limit * in addr. * @@ -1167,17 +1169,44 @@ microtime(&atv); atv32.tv_sec = atv.tv_sec; atv32.tv_usec = atv.tv_usec; - error = copyout(&atv32, uap->tp, sizeof (atv32)); + error = copyout(&atv32, uap->tp, sizeof(atv32)); } if (error == 0 && uap->tzp != NULL) { rtz.tz_minuteswest = tz_minuteswest; rtz.tz_dsttime = tz_dsttime; - error = copyout(&rtz, uap->tzp, sizeof (rtz)); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 27 02:04:21 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E618C16A402; Fri, 27 Apr 2007 02:04:20 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8ACF016A400 for ; Fri, 27 Apr 2007 02:04:20 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 7C60213C465 for ; Fri, 27 Apr 2007 02:04:20 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R24Kfm014433 for ; Fri, 27 Apr 2007 02:04:20 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R24K2X014430 for perforce@freebsd.org; Fri, 27 Apr 2007 02:04:20 GMT (envelope-from rpaulo@FreeBSD.org) Date: Fri, 27 Apr 2007 02:04:20 GMT Message-Id: <200704270204.l3R24K2X014430@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118848 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 02:04:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=118848 Change 118848 by rpaulo@rpaulo_epsilon on 2007/04/27 02:04:15 Update sc_level on macbook_level. Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#3 edit Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#2 $ + * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#3 $ * */ @@ -348,6 +348,7 @@ macbook_set_current(sc, curlevel); *(unsigned int *)oidp->oid_arg1 = level; + sc->sc_level = curlevel; } From owner-p4-projects@FreeBSD.ORG Fri Apr 27 04:21:12 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C528A16A409; Fri, 27 Apr 2007 04:21:11 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9290916A401 for ; Fri, 27 Apr 2007 04:21:11 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 82AC113C480 for ; Fri, 27 Apr 2007 04:21:11 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R4LBHi041426 for ; Fri, 27 Apr 2007 04:21:11 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R4LB4N041420 for perforce@freebsd.org; Fri, 27 Apr 2007 04:21:11 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 27 Apr 2007 04:21:11 GMT Message-Id: <200704270421.l3R4LB4N041420@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118853 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 04:21:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=118853 Change 118853 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/27 04:20:38 import most of latest TOE code from cxgb3toe-1.0.0.86 leaving out GPL derived bonding and failover Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_io.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_sock.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_ddp.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_ddp.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_defs.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_listen.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom_compat.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom_sysctl.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/version.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/module_support/module_support-toe-2.6.12.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/module_support/module_support-toe-2.6.18.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/module_support/module_support-toe-2.6.9.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toe_compat.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toe_offload.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toe_offload.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toedev.c#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toedev.h#1 add .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/version.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Fri Apr 27 04:22:13 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7A76716A403; Fri, 27 Apr 2007 04:22:13 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 58CAC16A402 for ; Fri, 27 Apr 2007 04:22:13 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 488F613C459 for ; Fri, 27 Apr 2007 04:22:13 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R4MDd5041780 for ; Fri, 27 Apr 2007 04:22:13 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R4MDpb041772 for perforce@freebsd.org; Fri, 27 Apr 2007 04:22:13 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 27 Apr 2007 04:22:13 GMT Message-Id: <200704270422.l3R4MDpb041772@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118854 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 04:22:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=118854 Change 118854 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/27 04:22:00 delete old TOE code Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/offload/module_support.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/offload.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/cpl_io.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/cpl_sock.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/defs.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/failover.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/listen.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/module_support.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/t3_ddp.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/t3_ddp.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/tom.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/tom.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/tom_compat.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/tom_sysctl.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/t3_tom/version.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/toe_bonding.c#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/toe_bonding.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/toe_compat.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/offload/toedev.c#2 delete Differences ... From owner-p4-projects@FreeBSD.ORG Fri Apr 27 04:27:22 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2B9DF16A404; Fri, 27 Apr 2007 04:27:22 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DC0CF16A401 for ; Fri, 27 Apr 2007 04:27:21 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id CA78C13C44C for ; Fri, 27 Apr 2007 04:27:21 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R4RLxj042517 for ; Fri, 27 Apr 2007 04:27:21 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R4RKhT042514 for perforce@freebsd.org; Fri, 27 Apr 2007 04:27:20 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 27 Apr 2007 04:27:20 GMT Message-Id: <200704270427.l3R4RKhT042514@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118856 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 04:27:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=118856 Change 118856 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/27 04:26:27 IFC Affected files ... .. //depot/projects/opentoe/ObsoleteFiles.inc#6 integrate .. //depot/projects/opentoe/lib/libexpat/expat_config.h#2 integrate .. //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 integrate .. //depot/projects/opentoe/share/examples/Makefile#2 integrate .. //depot/projects/opentoe/share/examples/netgraph/bluetooth/rc.bluetooth#2 delete .. //depot/projects/opentoe/share/man/man4/led.4#2 integrate .. //depot/projects/opentoe/share/man/man4/vlan.4#2 integrate .. //depot/projects/opentoe/share/misc/committers-ports.dot#5 integrate .. //depot/projects/opentoe/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/opentoe/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/opentoe/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/opentoe/sys/conf/files#5 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/opentoe/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/opentoe/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/opentoe/sys/dev/ata/ata-disk.c#2 integrate .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#7 integrate .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_sge.c#19 integrate .. //depot/projects/opentoe/sys/dev/firewire/firewire.h#2 integrate .. //depot/projects/opentoe/sys/dev/firewire/fwdev.c#2 integrate .. //depot/projects/opentoe/sys/dev/msk/if_msk.c#3 integrate .. //depot/projects/opentoe/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/opentoe/sys/dev/pci/pci.c#4 integrate .. //depot/projects/opentoe/sys/dev/pci/pcireg.h#3 integrate .. //depot/projects/opentoe/sys/dev/usb/if_ural.c#4 integrate .. //depot/projects/opentoe/sys/i386/i386/local_apic.c#3 integrate .. //depot/projects/opentoe/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/opentoe/sys/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/opentoe/sys/kern/kern_descrip.c#3 integrate .. //depot/projects/opentoe/sys/kern/vfs_bio.c#3 integrate .. //depot/projects/opentoe/sys/kern/vfs_mount.c#5 integrate .. //depot/projects/opentoe/sys/modules/zfs/Makefile#2 integrate .. //depot/projects/opentoe/sys/netgraph/ng_l2tp.c#3 integrate .. //depot/projects/opentoe/sys/nfsclient/nfs_bio.c#2 integrate .. //depot/projects/opentoe/sys/nfsclient/nfs_vnops.c#2 integrate .. //depot/projects/opentoe/sys/sys/proc.h#4 integrate .. //depot/projects/opentoe/sys/vm/vm_map.c#3 integrate .. //depot/projects/opentoe/usr.bin/calendar/calendars/calendar.freebsd#4 integrate .. //depot/projects/opentoe/usr.sbin/pciconf/cap.c#2 integrate Differences ... ==== //depot/projects/opentoe/ObsoleteFiles.inc#6 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.80 2007/04/20 23:47:30 brueffer Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.81 2007/04/24 16:58:54 emax Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070423: rc.bluetooth (examples) removed +OLD_FILES+=usr/share/examples/netgraph/bluetooth/rc.bluetooth # 20070421: worm.4 removed OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) ==== //depot/projects/opentoe/lib/libexpat/expat_config.h#2 (text+ko) ==== @@ -1,7 +1,13 @@ -/* $FreeBSD: src/lib/libexpat/expat_config.h,v 1.1 2002/10/02 07:35:35 phk Exp $ */ +/* $FreeBSD: src/lib/libexpat/expat_config.h,v 1.2 2007/04/24 06:29:27 phk Exp $ */ + +#include /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ +#if BYTE_ORDER == LITTLE_ENDIAN #define BYTEORDER 1234 +#else +#define BYTEORDER 4321 +#endif /* Define to 1 if you have the `bcopy' function. */ #define HAVE_BCOPY 1 @@ -67,7 +73,11 @@ #define STDC_HEADERS 1 /* whether byteorder is bigendian */ -/* #undef WORDS_BIGENDIAN */ +#if BYTE_ORDER == BIG_ENDIAN +#define WORDS_BIGENDIAN +#else +#undef WORDS_BIGENDIAN +#endif /* Define to specify how much context to retain around the current parse point. */ ==== //depot/projects/opentoe/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1022 2007/04/23 22:48:13 gshapiro Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1023 2007/04/24 08:58:09 yar Exp $ 2000 @@ -1356,7 +1356,7 @@ The &man.arp.8; utility now allows the option together with the and options - to allow all entries for a given interface to be removed. + to allow all entries for a given interface to be removed. &merged; The OpenBSM userland tools, including &man.audit.8;, &man.auditd.8;, @@ -1490,16 +1490,17 @@ The &man.ifconfig.8; utility now supports a flag to allow printing potentially sensitive keying material to standard output. - This sensitive information will not be printed by default. + This sensitive information will not be printed by default. + &merged; The &man.ifconfig.8; utility now supports a parameter, which is just an alias for , - yet is more convenient and easier to type. + yet is more convenient and easier to type. &merged; The parameter to &man.ifconfig.8; no longer requires a network interface as its argument. The argument still is supported for backward compatibility, but - is now deprecated and its use is discouraged. + is now deprecated and its use is discouraged. &merged; The &man.iostat.8; utility now supports a flag (inspired by Solaris) to print ==== //depot/projects/opentoe/share/examples/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/examples/Makefile,v 1.49 2006/03/17 18:54:33 ru Exp $ +# $FreeBSD: src/share/examples/Makefile,v 1.50 2007/04/24 16:58:54 emax Exp $ # # Doing a make install builds /usr/share/examples @@ -141,7 +141,6 @@ mdoc/example.3 \ mdoc/example.4 \ mdoc/example.9 \ - netgraph/bluetooth/rc.bluetooth \ netgraph/ether.bridge \ netgraph/frame_relay \ netgraph/ngctl \ ==== //depot/projects/opentoe/share/man/man4/led.4#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/led.4,v 1.12 2005/07/21 08:55:46 phk Exp $ +.\" $FreeBSD: src/share/man/man4/led.4,v 1.14 2007/04/24 07:10:10 phk Exp $ .\" -.Dd May 29, 2005 +.Dd April 24, 2007 .Dt LED 4 .Os .Sh NAME @@ -35,6 +35,8 @@ .Pp .Fd "typedef void led_t(void *priv, int onoff);" .Ft struct cdev * +.Fn led_create_state "led_t *func" "void *priv" "char const *name" "int state" +.Ft struct cdev * .Fn led_create "led_t *func" "void *priv" "char const *name" .Ft void .Fn led_destroy "struct cdev *" ==== //depot/projects/opentoe/share/man/man4/vlan.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/vlan.4,v 1.33 2006/12/13 02:42:01 yongari Exp $ +.\" $FreeBSD: src/share/man/man4/vlan.4,v 1.41 2007/04/24 11:48:49 yar Exp $ .\" -.Dd December 13, 2006 +.Dd April 24, 2007 .Dt VLAN 4 .Os .Sh NAME @@ -108,8 +108,8 @@ Such interfaces are automatically recognized by their capabilities. Depending on the level of sophistication found in a physical interface, it may do full VLAN processing or just be able to -receive and transmit frames exceeding the maximum Ethernet frame size -by the length of a 802.1Q header. +receive and transmit long frames (up to 1522 bytes including an Ethernet +header and FCS). The capabilities may be user-controlled by the respective parameters to .Xr ifconfig 8 , .Cm vlanhwtag @@ -138,8 +138,8 @@ VLANs using software emulation in the .Nm driver. -However, most of them lack the capability -of transmitting and receiving oversized frames. +However, some of them lack the capability +of transmitting and receiving long frames. Assigning such an interface as the parent to .Nm will result in a reduced MTU on the corresponding @@ -151,79 +151,36 @@ .Xr icmp 4 filtering that breaks the Path MTU Discovery mechanism. .Pp -The interfaces that support oversized frames are as follows: -.Bl -tag -width ".Xr fxp 4 " -offset indent -.It Xr bfe 4 -supports long frames for +The following interfaces support long frames for .Nm -natively. -.It Xr dc 4 -supports long frames for -.Nm -natively. -.It Xr de 4 -requires defining -.Dv BIG_PACKET -in the -.Pa /usr/src/sys/pci/if_de.c -source file and rebuilding the kernel -or module. -The hack works only for the 21041, 21140, and 21140A chips. -.It Xr fxp 4 -supports long frames for -.Nm -natively. -.It Xr gem 4 -supports long frames for -.Nm -natively. -.It Xr hme 4 -supports long frames for -.Nm -natively. -.It Xr le 4 -supports long frames for -.Nm -natively. -.It Xr rl 4 -supports long frames for -.Nm -natively. -.It Xr sis 4 -supports long frames for -.Nm -natively. -.It Xr sk 4 -supports long frames for -.Nm -natively. -.It Xr ste 4 -supports long frames for -.Nm -natively. -.It Xr tl 4 -has support for long frames. -.It Xr tx 4 -supports long frames for -.Nm -natively. -.It Xr xl 4 -supports long frames only if the card is built on a newer chip -(Cyclone and above). -.El +natively: +.Xr bfe 4 , +.Xr dc 4 , +.Xr fxp 4 , +.Xr gem 4 , +.Xr hme 4 , +.Xr le 4 , +.Xr rl 4 , +.Xr sis 4 , +.Xr sk 4 , +.Xr ste 4 , +.Xr tx 4 , +.Xr vr 4 , +and +.Xr xl 4 . .Pp The .Nm -driver automatically recognizes devices that natively support oversized frames +driver automatically recognizes devices that natively support long frames for .Nm use and calculates the appropriate frame MTU based on the capabilities of the parent interface. -The other interfaces listed above can handle oversized frames, +Some other interfaces not listed above may handle long frames, but they do not advertise this ability of theirs. The MTU setting on .Nm -can be corrected manually if used in conjunction with such parent interface. +can be corrected manually if used in conjunction with such a parent interface. .Sh SEE ALSO .Xr kqueue 2 , .Xr miibus 4 , ==== //depot/projects/opentoe/share/misc/committers-ports.dot#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/misc/committers-ports.dot,v 1.51 2007/04/22 02:36:08 tmclaugh Exp $ +# $FreeBSD: src/share/misc/committers-ports.dot,v 1.53 2007/04/25 11:59:09 nemoliu Exp $ # This file is meant to list all FreeBSD ports committers and describe the # mentor-mentee relationships between them. @@ -96,6 +96,7 @@ miwi [label="Martin Wilke\nmiwi@FreeBSD.org\n2006/06/04"] mm [label="Martin Matuska\nmm@FreeBSD.org\n2007/04/04"] mnag [label="Marcus Alves Grando\nmnag@FreeBSD.org\n2005/09/15"] +nemoliu [label="Tong Liu\nnemoliu@FreeBSD.org\n2007/04/25"] netchild [label="Alexander Leidinger\nnetchild@FreeBSD.org\n2002/03/19"] nobutaka [label="Nobutaka Mantani\nnobutaka@FreeBSD.org\n2001/11/02"] nork [label="Norikatsu Shigemura\nnork@FreeBSD.org\n2002/04/01"] @@ -114,6 +115,7 @@ stas [label="Stanislav Sedov\nstas@FreeBSD.org\n2006/09/18"] stefan [label="Stefan Walter\nstefan@FreeBSD.org\n2006/05/07"] tdb [label="Tim Bishop\ntdb@FreeBSD.org\n2005/11/30"] +trasz [label="Edward Tomasz Napierala\ntrasz@FreeBSD.org\n2007/04/12"] trhodes [label="Tom Rhodes\ntrhodes@FreeBSD.org\n2004/07/06"] thierry [label="Thierry Thomas\nthierry@FreeBSD.org\n2004/03/15"] tmclaugh [label="Tom McLaughlin\ntmclaugh@FreeBSD.org\n2005/09/15"] @@ -143,6 +145,7 @@ clsung -> lwhsu +delphij -> nemoliu delphij -> rafan demon -> mat @@ -210,6 +213,7 @@ miwi -> farrokhi miwi -> nox +miwi -> trasz mnag -> jmelo ==== //depot/projects/opentoe/sys/amd64/amd64/local_apic.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.37 2007/03/20 21:53:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.38 2007/04/25 19:58:41 ariff Exp $"); #include "opt_hwpmc_hooks.h" @@ -326,6 +326,29 @@ /* XXX: Error and thermal LVTs */ + if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. This feature renders + * the local APIC timer dead, so we disable it by reading + * the Interrupt Pending Message register and clearing both + * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). + * + * Reference: + * "BIOS and Kernel Developer's Guide for AMD NPT + * Family 0Fh Processors" + * #32559 revision 3.00 + */ + if ((cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + uint64_t msr; + + msr = rdmsr(0xc0010055); + if (msr & 0x18000000) + wrmsr(0xc0010055, msr & ~0x18000000ULL); + } + } + intr_restore(eflags); } ==== //depot/projects/opentoe/sys/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.583 2007/04/21 14:17:29 ups Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $"); /* * Manages physical address maps. ==== //depot/projects/opentoe/sys/amd64/amd64/vm_machdep.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -457,6 +457,10 @@ static void cpu_reset_real() { + struct region_descriptor null_idt; + int b; + + disable_intr(); /* * Attempt to do a CPU reset via the keyboard controller, @@ -465,14 +469,44 @@ */ outb(IO_KBD + 4, 0xFE); DELAY(500000); /* wait 0.5 sec to see if that did it */ - printf("Keyboard reset did not work, attempting CPU shutdown\n"); + + /* + * Attempt to force a reset via the Reset Control register at + * I/O port 0xcf9. Bit 2 forces a system reset when it is + * written as 1. Bit 1 selects the type of reset to attempt: + * 0 selects a "soft" reset, and 1 selects a "hard" reset. We + * try to do a "soft" reset first, and then a "hard" reset. + */ + outb(0xcf9, 0x2); + outb(0xcf9, 0x6); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + + /* + * Attempt to force a reset via the Fast A20 and Init register + * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. + * Bit 0 asserts INIT# when set to 1. We are careful to only + * preserve bit 1 while setting bit 0. We also must clear bit + * 0 before setting it if it isn't already clear. + */ + b = inb(0x92); + if (b != 0xff) { + if ((b & 0x1) != 0) + outb(0x92, b & 0xfe); + outb(0x92, b | 0x1); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + } + + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ - /* Force a shutdown by unmapping entire address space. */ - bzero((caddr_t)PML4map, PAGE_SIZE); + /* Wipe the IDT. */ + null_idt.rd_limit = 0; + null_idt.rd_base = 0; + lidt(&null_idt); /* "good night, sweet prince .... " */ - invltlb(); + breakpoint(); + /* NOTREACHED */ while(1); } ==== //depot/projects/opentoe/sys/conf/files#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1197 2007/04/21 22:08:47 rwatson Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1198 2007/04/25 15:30:17 mav Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1550,8 +1550,8 @@ net/if_mib.c standard net/if_ppp.c optional ppp net/if_sl.c optional sl -net/if_spppfr.c optional i4bisppp | sppp -net/if_spppsubr.c optional i4bisppp | sppp +net/if_spppfr.c optional i4bisppp | sppp | netgraph_sppp +net/if_spppsubr.c optional i4bisppp | sppp | netgraph_sppp net/if_stf.c optional stf net/if_tun.c optional tun net/if_tap.c optional tap @@ -1565,9 +1565,10 @@ net/raw_usrreq.c standard net/route.c standard net/rtsock.c standard -net/slcompress.c optional netgraph_vjc | ppp | sl | sppp +net/slcompress.c optional netgraph_vjc | ppp | sl | sppp | \ + netgraph_sppp net/zlib.c optional crypto | geom_uzip | ipsec | \ - ppp_deflate + ppp_deflate | netgraph_deflate net80211/ieee80211.c optional wlan net80211/ieee80211_acl.c optional wlan_acl net80211/ieee80211_amrr.c optional wlan_amrr @@ -1800,11 +1801,11 @@ netinet/tcp_timer.c optional inet netinet/tcp_usrreq.c optional inet netinet/udp_usrreq.c optional inet -netinet/libalias/alias.c optional libalias -netinet/libalias/alias_db.c optional libalias -netinet/libalias/alias_mod.c optional libalias -netinet/libalias/alias_proxy.c optional libalias -netinet/libalias/alias_util.c optional libalias +netinet/libalias/alias.c optional libalias | netgraph_nat +netinet/libalias/alias_db.c optional libalias | netgraph_nat +netinet/libalias/alias_mod.c optional libalias | netgraph_nat +netinet/libalias/alias_proxy.c optional libalias | netgraph_nat +netinet/libalias/alias_util.c optional libalias | netgraph_nat netinet6/ah_aesxcbcmac.c optional ipsec netinet6/ah_core.c optional ipsec netinet6/ah_input.c optional ipsec ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 (text+ko) ==== @@ -203,7 +203,11 @@ { "pick_last", KSTAT_DATA_UINT64 }, }; +#ifdef FREEBSD_NAMECACHE +static int doingcache = 0; +#else static int doingcache = 1; +#endif TUNABLE_INT("vfs.zfs.dnlc.enable", &doingcache); SYSCTL_INT(_vfs_zfs_dnlc, OID_AUTO, enable, CTLFLAG_RDTUN, &doingcache, 0, "Enable/disable name cache"); ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 (text+ko) ==== @@ -1262,7 +1262,6 @@ vdev_config_dirty(vd->vdev_top); } - bzero(&smlock, sizeof(smlock)); mutex_init(&smlock, NULL, MUTEX_DEFAULT, NULL); space_map_create(&smsync, sm->sm_start, sm->sm_size, sm->sm_shift, ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 (text+ko) ==== @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 (text+ko) ==== @@ -1085,7 +1085,7 @@ } static int -zfs_ioc_pool_props_set(zfs_cmd_t *zc) +zfs_ioc_pool_set_props(zfs_cmd_t *zc) { nvlist_t *nvl; int error, reset_bootfs = 0; @@ -1181,7 +1181,7 @@ } static int -zfs_ioc_pool_props_get(zfs_cmd_t *zc) +zfs_ioc_pool_get_props(zfs_cmd_t *zc) { spa_t *spa; int error; @@ -1692,8 +1692,8 @@ { zfs_ioc_snapshot, zfs_secpolicy_operator, dataset_name }, { zfs_ioc_dsobj_to_dsname, zfs_secpolicy_config, pool_name }, { zfs_ioc_obj_to_path, zfs_secpolicy_config, no_name }, - { zfs_ioc_pool_props_set, zfs_secpolicy_config, pool_name }, - { zfs_ioc_pool_props_get, zfs_secpolicy_read, pool_name }, + { zfs_ioc_pool_set_props, zfs_secpolicy_config, pool_name }, + { zfs_ioc_pool_get_props, zfs_secpolicy_read, pool_name }, { zfs_ioc_jail, zfs_secpolicy_config, dataset_name }, { zfs_ioc_unjail, zfs_secpolicy_config, dataset_name } }; ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 (text+ko) ==== @@ -288,6 +288,7 @@ int64_t start, off; int len = nbytes; int error = 0; + uint64_t dirbytes; ASSERT(vp->v_mount != NULL); obj = vp->v_object; @@ -295,34 +296,46 @@ start = uio->uio_loffset; off = start & PAGEOFFSET; + dirbytes = 0; VM_OBJECT_LOCK(obj); for (start &= PAGEMASK; len > 0; start += PAGESIZE) { uint64_t bytes = MIN(PAGESIZE - off, len); - uint64_t woff = uio->uio_loffset; + uint64_t fsize; again: if ((m = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL && vm_page_is_valid(m, (vm_offset_t)off, bytes)) { + uint64_t woff; caddr_t va; if (vm_page_sleep_if_busy(m, FALSE, "zfsmwb")) goto again; + fsize = obj->un_pager.vnp.vnp_size; vm_page_busy(m); + vm_page_lock_queues(); + vm_page_undirty(m); + vm_page_unlock_queues(); VM_OBJECT_UNLOCK(obj); - sched_pin(); - sf = sf_buf_alloc(m, SFB_CPUPRIVATE); - va = (caddr_t)sf_buf_kva(sf); - error = uiomove(va+off, bytes, UIO_WRITE, uio); - if (error == 0) - dmu_write(os, zp->z_id, woff, bytes, va+off, tx); - sf_buf_free(sf); - sched_unpin(); + if (dirbytes > 0) { + error = dmu_write_uio(os, zp->z_id, uio, + dirbytes, tx); + dirbytes = 0; + } + if (error == 0) { + sched_pin(); + sf = sf_buf_alloc(m, SFB_CPUPRIVATE); + va = (caddr_t)sf_buf_kva(sf); + woff = uio->uio_loffset - off; + error = uiomove(va + off, bytes, UIO_WRITE, uio); + dmu_write(os, zp->z_id, woff, + MIN(PAGESIZE, fsize - woff), va, tx); + sf_buf_free(sf); + sched_unpin(); + } VM_OBJECT_LOCK(obj); vm_page_wakeup(m); } else { - VM_OBJECT_UNLOCK(obj); - error = dmu_write_uio(os, zp->z_id, uio, bytes, tx); - VM_OBJECT_LOCK(obj); + dirbytes += bytes; } len -= bytes; off = 0; @@ -330,6 +343,8 @@ break; } VM_OBJECT_UNLOCK(obj); + if (error == 0 && dirbytes > 0) + error = dmu_write_uio(os, zp->z_id, uio, dirbytes, tx); return (error); } @@ -355,6 +370,7 @@ caddr_t va; int len = nbytes; int error = 0; + uint64_t dirbytes; ASSERT(vp->v_mount != NULL); obj = vp->v_object; @@ -362,6 +378,7 @@ start = uio->uio_loffset; off = start & PAGEOFFSET; + dirbytes = 0; VM_OBJECT_LOCK(obj); for (start &= PAGEMASK; len > 0; start += PAGESIZE) { uint64_t bytes = MIN(PAGESIZE - off, len); @@ -373,12 +390,19 @@ goto again; vm_page_busy(m); VM_OBJECT_UNLOCK(obj); - sched_pin(); - sf = sf_buf_alloc(m, SFB_CPUPRIVATE); - va = (caddr_t)sf_buf_kva(sf); - error = uiomove(va + off, bytes, UIO_READ, uio); - sf_buf_free(sf); - sched_unpin(); + if (dirbytes > 0) { + error = dmu_read_uio(os, zp->z_id, uio, + dirbytes); + dirbytes = 0; + } + if (error == 0) { + sched_pin(); + sf = sf_buf_alloc(m, SFB_CPUPRIVATE); + va = (caddr_t)sf_buf_kva(sf); + error = uiomove(va + off, bytes, UIO_READ, uio); + sf_buf_free(sf); + sched_unpin(); + } VM_OBJECT_LOCK(obj); vm_page_wakeup(m); } else if (m != NULL && uio->uio_segflg == UIO_NOCOPY) { @@ -393,20 +417,26 @@ goto again; vm_page_busy(m); VM_OBJECT_UNLOCK(obj); - sched_pin(); - sf = sf_buf_alloc(m, SFB_CPUPRIVATE); - va = (caddr_t)sf_buf_kva(sf); - error = dmu_read(os, zp->z_id, start + off, bytes, - (void *)(va + off)); - sf_buf_free(sf); - sched_unpin(); + if (dirbytes > 0) { + error = dmu_read_uio(os, zp->z_id, uio, + dirbytes); + dirbytes = 0; + } + if (error == 0) { + sched_pin(); + sf = sf_buf_alloc(m, SFB_CPUPRIVATE); + va = (caddr_t)sf_buf_kva(sf); + error = dmu_read(os, zp->z_id, start + off, + bytes, (void *)(va + off)); + sf_buf_free(sf); + sched_unpin(); + } VM_OBJECT_LOCK(obj); vm_page_wakeup(m); - uio->uio_resid -= bytes; + if (error == 0) + uio->uio_resid -= bytes; } else { - VM_OBJECT_UNLOCK(obj); - error = dmu_read_uio(os, zp->z_id, uio, bytes); - VM_OBJECT_LOCK(obj); + dirbytes += bytes; } len -= bytes; off = 0; @@ -414,6 +444,8 @@ break; } VM_OBJECT_UNLOCK(obj); + if (error == 0 && dirbytes > 0) + error = dmu_read_uio(os, zp->z_id, uio, dirbytes); return (error); } @@ -2963,7 +2995,7 @@ if (size == LONG_FID_LEN) { uint64_t objsetid = dmu_objset_id(zfsvfs->z_os); - zfid_long_t *zlfid; + zfid_long_t *zlfid; zlfid = (zfid_long_t *)fidp; @@ -3397,11 +3429,6 @@ { vnode_t *vp = ap->a_vp; - /* - * Destroy the vm object and flush associated pages. - */ - vnode_destroy_vobject(vp); - zfs_inactive(vp, ap->a_td->td_ucred); return (0); } @@ -3415,26 +3442,36 @@ { vnode_t *vp = ap->a_vp; znode_t *zp = VTOZ(vp); + zfsvfs_t *zfsvfs; + int rele = 1; + + ASSERT(zp != NULL); - if (zp != NULL) - mutex_enter(&zp->z_lock); -#if 0 /* - * We do it from zfs_inactive(), because after zfs_inactive() we can't - * VOP_WRITE() to the vnode. - */ /* * Destroy the vm object and flush associated pages. */ vnode_destroy_vobject(vp); -#endif + + mutex_enter(&zp->z_lock); + ASSERT(zp->z_phys); + ASSERT(zp->z_dbuf_held); + zfsvfs = zp->z_zfsvfs; + if (!zp->z_unlinked) { + zp->z_dbuf_held = 0; + ZTOV(zp) = NULL; + mutex_exit(&zp->z_lock); + dmu_buf_rele(zp->z_dbuf, NULL); + } else { + mutex_exit(&zp->z_lock); + } VI_LOCK(vp); + if (vp->v_count > 0) + rele = 0; vp->v_data = NULL; - if (zp != NULL) - zp->z_vnode = NULL; ASSERT(vp->v_holdcnt > 1); vdropl(vp); - if (zp != NULL) - mutex_exit(&zp->z_lock); + if (!zp->z_unlinked && rele) + VFS_RELE(zfsvfs->z_vfs); return (0); } ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 (text+ko) ==== @@ -369,7 +369,7 @@ mutex_enter(&zp->z_lock); - nzp = dmu_buf_set_user(db, zp, &zp->z_phys, znode_pageout_func); + nzp = dmu_buf_set_user_ie(db, zp, &zp->z_phys, znode_pageout_func); /* * there should be no @@ -683,12 +683,8 @@ } ASSERT(zp->z_phys); ASSERT(zp->z_dbuf_held); - - zp->z_dbuf_held = 0; mutex_exit(&zp->z_lock); - dmu_buf_rele(zp->z_dbuf, NULL); ZFS_OBJ_HOLD_EXIT(zfsvfs, z_id); - VFS_RELE(zfsvfs->z_vfs); } /* ==== //depot/projects/opentoe/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 (text+ko) ==== @@ -70,7 +70,7 @@ int zil_disable = 0; /* disable intent logging */ SYSCTL_DECL(_vfs_zfs); TUNABLE_INT("vfs.zfs.zil_disable", &zil_disable); -SYSCTL_INT(_vfs_zfs, OID_AUTO, zil_disable, CTLFLAG_RDTUN, &zil_disable, 0, +SYSCTL_INT(_vfs_zfs, OID_AUTO, zil_disable, CTLFLAG_RW, &zil_disable, 0, "Disable ZFS Intent Log (ZIL)"); /* ==== //depot/projects/opentoe/sys/dev/acpi_support/acpi_ibm.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_ibm.c,v 1.13 2007/03/22 18:16:40 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_ibm.c,v 1.14 2007/04/24 23:09:37 markus Exp $"); /* * Driver for extra ACPI-controlled gadgets found on IBM ThinkPad laptops. @@ -412,7 +412,7 @@ /* Hook up light to led(4) */ if (sc->light_set_supported) - sc->led_dev = led_create(ibm_led, sc, "thinklight"); + sc->led_dev = led_create_state(ibm_led, sc, "thinklight", sc->light_val); return (0); } @@ -810,7 +810,8 @@ case ACPI_IBM_METHOD_THINKLIGHT: sc->cmos_handle = NULL; - sc->light_get_supported = ACPI_SUCCESS(acpi_GetInteger(sc->ec_handle, IBM_NAME_KEYLIGHT, &dummy)); + sc->light_get_supported = ACPI_SUCCESS(acpi_GetInteger( + sc->ec_handle, IBM_NAME_KEYLIGHT, &sc->light_val)); if ((ACPI_SUCCESS(AcpiGetHandle(sc->handle, "\\UCMS", &sc->light_handle)) || ACPI_SUCCESS(AcpiGetHandle(sc->handle, "\\CMOS", &sc->light_handle)) || @@ -831,12 +832,15 @@ sc->light_set_supported = (sc->light_handle && ACPI_FAILURE(AcpiGetHandle(sc->ec_handle, "LEDB", &ledb_handle))); - if (sc->light_get_supported || sc->light_set_supported) { + if (sc->light_get_supported) + return (TRUE); + + if (sc->light_set_supported) { sc->light_val = 0; return (TRUE); } - else - return (FALSE); + + return (FALSE); case ACPI_IBM_METHOD_BLUETOOTH: case ACPI_IBM_METHOD_WLAN: ==== //depot/projects/opentoe/sys/dev/acpica/acpi.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.234 2007/03/22 18:16:40 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.235 2007/04/25 16:22:18 jhb Exp $"); #include "opt_acpi.h" #include @@ -1034,7 +1034,7 @@ * the request from our system resource regions. If we can't, pass the * request up to the parent. */ - if (!(start == 0UL && end == ~0UL) && rm != NULL) + if (start + count - 1 == end && rm != NULL) res = rman_reserve_resource(rm, start, end, count, flags & ~RF_ACTIVE, child); if (res == NULL) { ==== //depot/projects/opentoe/sys/dev/ata/ata-disk.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.201 2007/02/21 19:07:18 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.202 2007/04/26 12:59:20 roberto Exp $"); #include "opt_ata.h" #include @@ -277,8 +277,6 @@ request->u.ata.feature = 0; request->bytecount = 0; request->transfersize = 0; - request->timeout = 1; - request->retries = 0; request->flags = ATA_R_CONTROL; request->u.ata.command = ATA_FLUSHCACHE; break; ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#7 (text+ko) ==== @@ -32,7 +32,7 @@ ***************************************************************************/ #include -__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.14 2007/04/15 05:45:09 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.15 2007/04/26 08:38:00 kmacy Exp $"); #include #include @@ -188,6 +188,10 @@ SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "CXGB driver parameters"); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 27 06:44:21 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C17C316A406; Fri, 27 Apr 2007 06:44:20 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 61D2B16A409 for ; Fri, 27 Apr 2007 06:44:20 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 46E6513C4C9 for ; Fri, 27 Apr 2007 06:44:20 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R6iKiA077944 for ; Fri, 27 Apr 2007 06:44:20 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R6iJ6c077941 for perforce@freebsd.org; Fri, 27 Apr 2007 06:44:19 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 27 Apr 2007 06:44:19 GMT Message-Id: <200704270644.l3R6iJ6c077941@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118860 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 06:44:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=118860 Change 118860 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/27 06:43:52 switch to todev definition in toecore Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#14 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.h#5 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#8 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.h#8 edit .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_toedev.h#7 delete .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toedev.h#2 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#14 (text+ko) ==== @@ -59,7 +59,7 @@ #include #include -#include +#include struct adapter; struct sge_qset; extern int cxgb_debug; ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_l2t.h#5 (text+ko) ==== @@ -1,7 +1,7 @@ #ifndef _CHELSIO_L2T_H #define _CHELSIO_L2T_H -#include +#include #include enum { ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_main.c#8 (text+ko) ==== @@ -188,10 +188,6 @@ SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "CXGB driver parameters"); SYSCTL_UINT(_hw_cxgb, OID_AUTO, msi_allowed, CTLFLAG_RDTUN, &msi_allowed, 0, "MSI-X, MSI, INTx selector"); -/* - * Multiple queues need further tuning - */ -static int singleq = 1; /* * The driver enables offload as a default. @@ -206,7 +202,7 @@ * The driver uses an auto-queue algorithm by default. * To disable it and force a single queue-set per port, use singleq = 1. */ -static int singleq = 0; +static int singleq = 1; TUNABLE_INT("hw.cxgb.singleq", &singleq); SYSCTL_UINT(_hw_cxgb, OID_AUTO, singleq, CTLFLAG_RDTUN, &singleq, 0, "use a single queue-set per port"); ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_offload.h#8 (text+ko) ==== @@ -41,7 +41,7 @@ #include #include -#include +#include #include struct adapter; ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toedev.h#2 (text+ko) ==== @@ -1,29 +1,41 @@ -/* - * Network offload device definitions. - * - * Copyright (C) 2003-2006 Chelsio Communications. All rights reserved. - * - * Written by Dimitris Michailidis (dm@chelsio.com) - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ + +/************************************************************************** + +Copyright (c) 2007, Chelsio Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the Chelsio Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +$FreeBSD$ +***************************************************************************/ #ifndef _OFFLOAD_DEV_H_ #define _OFFLOAD_DEV_H_ -struct neighbour; /* Parameter values for offload_get_phys_egress() */ enum { @@ -40,16 +52,14 @@ TOE_RELEASE_ALL, }; -#if defined(CONFIG_TCP_OFFLOAD) || defined(CONFIG_TCP_OFFLOAD_MODULE) -#include #define TOENAMSIZ 16 /* belongs in linux/netdevice.h */ #define NETIF_F_TCPIP_OFFLOAD (1 << 15) -/* Get the toedev associated with a net_device */ -#define TOEDEV(netdev) (*(struct toedev **)&(netdev)->ec_ptr) +/* Get the toedev associated with a ifnet */ +#define TOEDEV(netdev) (*(struct toedev **)&(netdev)->if_softc) /* offload type ids */ enum { @@ -65,33 +75,41 @@ unsigned long data; }; -struct net_device; +struct ifnet; +struct rt_entry; struct tom_info; -struct proc_dir_entry; -struct sock; -struct sk_buff; +struct sysctl_oid; +struct socket; +struct mbuf; + +enum toetype { + T3A = 0, + T3B +}; struct toedev { char name[TOENAMSIZ]; /* TOE device name */ - struct list_head toe_list; /* for list linking */ + enum toetype type; + struct adapter *adapter; unsigned int ttid; /* TOE type id */ unsigned long flags; /* device flags */ unsigned int mtu; /* max size of TX offloaded data */ unsigned int nconn; /* max # of offloaded connections */ - struct net_device *lldev; /* LL device associated with TOE messages */ + struct ifnet *lldev; /* LL device associated with TOE messages */ const struct tom_info *offload_mod; /* attached TCP offload module */ - struct proc_dir_entry *proc_dir; /* root of proc dir for this TOE */ + struct sysctl_oid *sysctl_root; /* root of proc dir for this TOE */ + TAILQ_ENTRY(toedev) ofld_entry; /* for list linking */ int (*open)(struct toedev *dev); int (*close)(struct toedev *dev); - int (*can_offload)(struct toedev *dev, struct sock *sk); - int (*connect)(struct toedev *dev, struct sock *sk, - struct net_device *egress_dev); - int (*send)(struct toedev *dev, struct sk_buff *skb); - int (*recv)(struct toedev *dev, struct sk_buff **skb, int n); + int (*can_offload)(struct toedev *dev, struct socket *so); + int (*connect)(struct toedev *dev, struct socket *so, + struct ifnet *egress_dev); + int (*send)(struct toedev *dev, struct mbuf *skb); + int (*recv)(struct toedev *dev, struct mbuf **skb, int n); int (*ctl)(struct toedev *dev, unsigned int req, void *data); - void (*neigh_update)(struct toedev *dev, struct neighbour *neigh); - void (*failover)(struct toedev *dev, struct net_device *bond_dev, - struct net_device *ndev, int event); + void (*neigh_update)(struct toedev *dev, struct rtentry *neigh); + void (*failover)(struct toedev *dev, struct ifnet *bond_dev, + struct ifnet *ndev, int event); void *priv; /* driver private data */ void *l2opt; /* optional layer 2 data */ void *l3opt; /* optional layer 3 data */ @@ -104,12 +122,12 @@ int (*detach)(struct toedev *dev); const char *name; const struct offload_id *id_table; - struct list_head list_node; + TAILQ_ENTRY(tom_info) entry; }; static inline void init_offload_dev(struct toedev *dev) { - INIT_LIST_HEAD(&dev->toe_list); + } extern int register_tom(struct tom_info *t); @@ -117,14 +135,13 @@ extern int register_toedev(struct toedev *dev, const char *name); extern int unregister_toedev(struct toedev *dev); extern int activate_offload(struct toedev *dev); -extern int toe_send(struct toedev *dev, struct sk_buff *skb); -extern struct net_device *offload_get_phys_egress(struct net_device *dev, - struct sock *sk, +extern int toe_send(struct toedev *dev, struct mbuf *skb); +extern struct ifnet *offload_get_phys_egress(struct ifnet *dev, + struct socket *so, int context); -#endif #if defined(CONFIG_TCP_OFFLOAD_MODULE) -static inline int toe_receive_skb(struct toedev *dev, struct sk_buff **skb, +static inline int toe_receive_skb(struct toedev *dev, struct mbuf **skb, int n) { return dev->recv(dev, skb, n); @@ -133,23 +150,23 @@ extern int prepare_tcp_for_offload(void); extern void restore_tcp_to_nonoffload(void); #elif defined(CONFIG_TCP_OFFLOAD) -extern int toe_receive_skb(struct toedev *dev, struct sk_buff **skb, int n); +extern int toe_receive_skb(struct toedev *dev, struct mbuf **skb, int n); #endif #if defined(CONFIG_TCP_OFFLOAD) || \ (defined(CONFIG_TCP_OFFLOAD_MODULE) && defined(MODULE)) -extern void toe_neigh_update(struct neighbour *neigh); -extern void toe_failover(struct net_device *bond_dev, - struct net_device *fail_dev, int event); -extern int toe_enslave(struct net_device *bond_dev, - struct net_device *slave_dev); +extern void toe_neigh_update(struct rtentry *neigh); +extern void toe_failover(struct ifnet *bond_dev, + struct ifnet *fail_dev, int event); +extern int toe_enslave(struct ifnet *bond_dev, + struct ifnet *slave_dev); #else -static inline void toe_neigh_update(struct neighbour *neigh) {} -static inline void toe_failover(struct net_device *bond_dev, - struct net_device *fail_dev, int event) +static inline void toe_neigh_update(struct ifnet *neigh) {} +static inline void toe_failover(struct ifnet *bond_dev, + struct ifnet *fail_dev, int event) {} -static inline int toe_enslave(struct net_device *bond_dev, - struct net_device *slave_dev) +static inline int toe_enslave(struct ifnet *bond_dev, + struct ifnet *slave_dev) { return 0; } From owner-p4-projects@FreeBSD.ORG Fri Apr 27 06:50:29 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BDF6E16A40B; Fri, 27 Apr 2007 06:50:28 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7807216A519 for ; Fri, 27 Apr 2007 06:50:28 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 6712213C4AD for ; Fri, 27 Apr 2007 06:50:28 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R6oSjj078258 for ; Fri, 27 Apr 2007 06:50:28 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R6oSU1078254 for perforce@freebsd.org; Fri, 27 Apr 2007 06:50:28 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 27 Apr 2007 06:50:28 GMT Message-Id: <200704270650.l3R6oSU1078254@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118861 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 06:50:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=118861 Change 118861 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/27 06:50:23 remove toe_compat convert toe_offload.h to BSD equivs Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toe_compat.h#2 delete .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toe_offload.h#2 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toe_offload.h#2 (text+ko) ==== @@ -1,40 +1,19 @@ -/* - * Copyright (C) 2003-2006 Chelsio Communications. All rights reserved. - * - * Written by Dimitris Michailidis (dm@chelsio.com) - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - #ifndef _NET_OFFLOAD_H #define _NET_OFFLOAD_H -#if defined(CONFIG_TCP_OFFLOAD_MODULE) # define SOCK_OFFLOADED (SOCK_QUEUE_SHRUNK + 1) -#endif enum { OFFLOAD_LISTEN_START, OFFLOAD_LISTEN_STOP }; -struct sock; -struct sk_buff; +struct socket; +struct mbuf; struct toedev; -struct notifier_block; +struct eventhandler_list; +#if 0 /* Per-skb backlog handler. Run when a socket's backlog is processed. */ struct blog_skb_cb { void (*backlog_rcv) (struct sock *sk, struct sk_buff *skb); @@ -42,29 +21,12 @@ }; #define BLOG_SKB_CB(skb) ((struct blog_skb_cb *)(skb)->cb) +#endif -#if defined(CONFIG_TCP_OFFLOAD) || \ - (defined(CONFIG_TCP_OFFLOAD_MODULE) && defined(MODULE)) -extern int register_listen_offload_notifier(struct notifier_block *nb); -extern int unregister_listen_offload_notifier(struct notifier_block *nb); -extern int start_listen_offload(struct sock *sk); -extern int stop_listen_offload(struct sock *sk); -extern int tcp_connect_offload(struct sock *sk); -#else -static inline int tcp_connect_offload(struct sock *sk) -{ - return 0; -} - -static inline int start_listen_offload(struct sock *sk) -{ - return -EPROTONOSUPPORT; -} - -static inline int stop_listen_offload(struct sock *sk) -{ - return -EPROTONOSUPPORT; -} -#endif +extern int register_listen_offload_notifier(struct eventhandler_list *nb); +extern int unregister_listen_offload_notifier(struct eventhandler_list *nb); +extern int start_listen_offload(struct socket *so); +extern int stop_listen_offload(struct socket *so); +extern int tcp_connect_offload(struct socket *so); #endif /* !_NET_OFFLOAD_H */ From owner-p4-projects@FreeBSD.ORG Fri Apr 27 07:09:53 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E5BB216A406; Fri, 27 Apr 2007 07:09:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8852916A403 for ; Fri, 27 Apr 2007 07:09:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 76EFC13C45E for ; Fri, 27 Apr 2007 07:09:52 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3R79qb8083102 for ; Fri, 27 Apr 2007 07:09:52 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3R79qRj083087 for perforce@freebsd.org; Fri, 27 Apr 2007 07:09:52 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 27 Apr 2007 07:09:52 GMT Message-Id: <200704270709.l3R79qRj083087@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118862 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 07:09:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=118862 Change 118862 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/27 07:08:55 mechanical BSD-ification of toedev.c Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toedev.c#2 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/toecore/toedev.c#2 (text+ko) ==== @@ -1,24 +1,37 @@ -/* - * TOE device support infrastructure. - * - * Copyright (C) 2003-2006 Chelsio Communications. All rights reserved. - * - * Written by Dimitris Michailidis (dm@chelsio.com) - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ + +/************************************************************************** + +Copyright (c) 2007, Chelsio Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the Chelsio Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +***************************************************************************/ #include #include @@ -35,16 +48,16 @@ #include "version.h" #include "toe_bonding.h" -static DECLARE_MUTEX(offload_db_lock); -static LIST_HEAD(offload_dev_list); -static LIST_HEAD(offload_module_list); +static struct mtx offload_db_lock; +static TAILQ_HEAD(, toedev) offload_dev_list; +static TAILQ_HEAD(, tom_info) offload_module_list; /* * Returns the entry in the given table with the given offload id, or NULL * if the id is not found. */ -static const struct offload_id *id_find(unsigned int id, - const struct offload_id *table) +static const struct offload_id * +id_find(unsigned int id, const struct offload_id *table) { for ( ; table->id; ++table) if (table->id == id) @@ -55,7 +68,8 @@ /* * Returns true if an offload device is presently attached to an offload module. */ -static inline int is_attached(const struct toedev *dev) +static inline int +is_attached(const struct toedev *dev) { return dev->offload_mod != NULL; } @@ -66,7 +80,8 @@ * * Must be called with the offload_db_lock held. */ -static int offload_attach(struct toedev *dev) +static int +offload_attach(struct toedev *dev) { struct tom_info *t; @@ -79,7 +94,7 @@ return 0; } } - return -ENOPROTOOPT; + return ENOPROTOOPT; } /** @@ -88,14 +103,14 @@ * * Register a TCP Offload Module (TOM). */ -int register_tom(struct tom_info *t) +int +register_tom(struct tom_info *t) { down(&offload_db_lock); list_add(&t->list_node, &offload_module_list); up(&offload_db_lock); return 0; } -EXPORT_SYMBOL(register_tom); /** * unregister_tom - unregister a TCP Offload Module (TOM) @@ -111,12 +126,12 @@ up(&offload_db_lock); return 0; } -EXPORT_SYMBOL(unregister_tom); /* * Find an offload device by name. Must be called with offload_db_lock held. */ -static struct toedev *__find_offload_dev_by_name(const char *name) +static struct toedev * +__find_offload_dev_by_name(const char *name) { struct toedev *dev; @@ -131,7 +146,8 @@ * Returns true if an offload device is already registered. * Must be called with the offload_db_lock held. */ -static int is_registered(const struct toedev *dev) +static int +is_registered(const struct toedev *dev) { struct toedev *d; @@ -146,7 +162,8 @@ * Finalize the name of an offload device by assigning values to any format * strings in its name. */ -static int assign_name(struct toedev *dev, const char *name, int limit) +static int +assign_name(struct toedev *dev, const char *name, int limit) { int i; @@ -166,14 +183,16 @@ #ifdef CONFIG_PROC_FS #include -static struct proc_dir_entry *offload_proc_root; - +/* + * XXX remove after implementing sysctl equivalent + * + */ static int devices_read_proc(char *buf, char **start, off_t offset, int length, int *eof, void *data) { int len; struct toedev *dev; - struct net_device *ndev; + struct ifnet *ndev; len = sprintf(buf, "Device Offload Module Interfaces\n"); @@ -240,7 +259,7 @@ offload_proc_root = proc_mkdir("net/offload", NULL); if (!offload_proc_root) - return -ENOMEM; + return ENOMEM; offload_proc_root->owner = THIS_MODULE; d = create_proc_read_entry("devices", 0, offload_proc_root, @@ -252,7 +271,7 @@ cleanup: offload_proc_cleanup(); - return -ENOMEM; + return ENOMEM; } #else #define offload_proc_init() 0 @@ -270,7 +289,8 @@ * to it. @name is a template that may contain at most one %d format * specifier. */ -int register_toedev(struct toedev *dev, const char *name) +int +register_toedev(struct toedev *dev, const char *name) { int ret; const char *p; @@ -281,15 +301,15 @@ */ if (!name || !*name || !strcmp(name, ".") || !strcmp(name, "..") || strchr(name, '/')) - return -EINVAL; + return EINVAL; p = strchr(name, '%'); if (p && (p[1] != 'd' || strchr(p + 2, '%'))) - return -EINVAL; + return EINVAL; down(&offload_db_lock); if (is_registered(dev)) { /* device already registered */ - ret = -EEXIST; + ret = EEXIST; goto out; } @@ -303,7 +323,6 @@ up(&offload_db_lock); return ret; } -EXPORT_SYMBOL(register_toedev); /** * unregister_toedev - unregister a TOE device @@ -312,17 +331,18 @@ * Unregister a TOE device. The device must not be attached to an offload * module. */ -int unregister_toedev(struct toedev *dev) +int +unregister_toedev(struct toedev *dev) { int ret = 0; down(&offload_db_lock); if (!is_registered(dev)) { - ret = -ENODEV; + ret = ENODEV; goto out; } if (is_attached(dev)) { - ret = -EBUSY; + ret = EBUSY; goto out; } list_del(&dev->toe_list); @@ -331,7 +351,6 @@ up(&offload_db_lock); return ret; } -EXPORT_SYMBOL(unregister_toedev); /** * activate_offload - activate an offload device @@ -341,57 +360,51 @@ * module. If no module is found the operation fails and may be retried at * a later time. */ -int activate_offload(struct toedev *dev) +int +activate_offload(struct toedev *dev) { int ret = 0; -#ifdef CONFIG_TCP_OFFLOAD_MODULE ret = prepare_tcp_for_offload(); if (ret) return ret; -#endif down(&offload_db_lock); if (!is_registered(dev)) - ret = -ENODEV; + ret = ENODEV; else if (!is_attached(dev)) ret = offload_attach(dev); up(&offload_db_lock); return ret; } -EXPORT_SYMBOL(activate_offload); /** * toe_send - send a packet to a TOE device * @dev: the device * @skb: the packet * - * Sends an sk_buff to a TOE driver after dealing with any active network taps. + * Sends an mbuf to a TOE driver after dealing with any active network taps. */ -int toe_send(struct toedev *dev, struct sk_buff *skb) +int toe_send(struct toedev *dev, struct mbuf *skb) { int r; local_bh_disable(); -#if defined(CONFIG_TCP_OFFLOAD) if (unlikely(netdev_nit)) { /* deal with active taps */ skb->nh.raw = skb->data; if (!skb->dev) skb->dev = dev->lldev; dev_queue_xmit_nit(skb, skb->dev); } -#endif r = dev->send(dev, skb); local_bh_enable(); return r; } -EXPORT_SYMBOL(toe_send); -#if defined(CONFIG_TCP_OFFLOAD) /** * toe_receive_skb - process n received TOE packets * @dev: the toe device - * @skb: an array of offload packets + * @m: an array of offload packets * @n: the number of offload packets * * Process an array of ingress offload packets. Each packet is forwarded @@ -399,30 +412,31 @@ * method. We optimize passing packets to the receive method by passing * it the whole array at once except when there are active taps. */ -int toe_receive_skb(struct toedev *dev, struct sk_buff **skb, int n) +int +toe_receive_skb(struct toedev *dev, struct mbuf **m, int n) { if (likely(!netdev_nit)) - return dev->recv(dev, skb, n); + return dev->recv(dev, m, n); - for ( ; n; n--, skb++) { - skb[0]->dev = dev->lldev; - dev_queue_xmit_nit(skb[0], dev->lldev); - skb[0]->dev = NULL; - dev->recv(dev, skb, 1); + for ( ; n; n--, m++) { + m[0]->dev = dev->lldev; + dev_queue_xmit_nit(m[0], dev->lldev); + m[0]->dev = NULL; + dev->recv(dev, m, 1); } return 0; } -EXPORT_SYMBOL(toe_receive_skb); -#endif -static inline int netdev_is_offload(const struct net_device *dev) +static inline int +netdev_is_offload(const struct ifnet *dev) { return dev->features & NETIF_F_TCPIP_OFFLOAD; } -void toe_neigh_update(struct neighbour *neigh) +void +toe_neigh_update(struct rtentry *neigh) { - struct net_device *dev = neigh->dev; + struct ifnet *dev = neigh->dev; if (dev && netdev_is_offload(dev)) { struct toedev *tdev = TOEDEV(dev); @@ -445,8 +459,9 @@ * considers the decisions of the bonding device given its mode to locate the * correct egress device. */ -struct net_device *offload_get_phys_egress(struct net_device *root_dev, - struct sock *sk, int context) +struct ifnet * +offload_get_phys_egress(struct ifnet *root_dev, + struct socket *so, int context) { while (root_dev && netdev_is_offload(root_dev)) { if (root_dev->priv_flags & IFF_802_1Q_VLAN) @@ -458,15 +473,14 @@ } return root_dev; } -EXPORT_SYMBOL(offload_get_phys_egress); /* * The following few functions define the operations of a virtual offload - * device that is attached to virtual net_devices, such as VLAN or bonding, + * device that is attached to virtual ifnets, such as VLAN or bonding, * to endow them with offload support. These operations simply find the - * next net_device in a stack of net_devices and invoke the same operation on - * the offload device associated with that net_device. Eventually we reach - * the physical net_device at the bottom of the stack, whose associated + * next ifnet in a stack of ifnets and invoke the same operation on + * the offload device associated with that ifnet. Eventually we reach + * the physical ifnet at the bottom of the stack, whose associated * offload device can then complete the operation. */ @@ -474,12 +488,13 @@ * Define a virtual offload device for VLANs that simply forwards offload * operations to the offload device associated with the VLAN device's child. */ -static int virtual_can_offload(struct toedev *tdev, struct sock *sk) +static int +virtual_can_offload(struct toedev *tdev, struct socket *so) { - struct net_device *root_dev = __sk_dst_get(sk)->dev; + struct ifnet *root_dev = __sk_dst_get(sk)->dev; if (root_dev->priv_flags & IFF_802_1Q_VLAN) { - struct net_device *child = VLAN_DEV_INFO(root_dev)->real_dev; + struct ifnet *child = VLAN_DEV_INFO(root_dev)->real_dev; if (netdev_is_offload(child)) { struct toedev *tdev = TOEDEV(child); @@ -492,10 +507,11 @@ return 0; } -static int virtual_connect(struct toedev *dev, struct sock *sk, - struct net_device *egress_dev) +static int +virtual_connect(struct toedev *dev, struct socket *so, + struct ifnet *egress_dev) { - struct net_device *edev = offload_get_phys_egress(egress_dev, sk, + struct ifnet *edev = offload_get_phys_egress(egress_dev, sk, TOE_OPEN); if (edev && netdev_is_offload(edev)) { @@ -505,9 +521,10 @@ return -1; } -static void virtual_neigh_update(struct toedev *dev, struct neighbour *neigh) +static void +virtual_neigh_update(struct toedev *dev, struct rtentry *neigh) { - struct net_device *child = neigh->dev; + struct ifnet *child = neigh->dev; if (neigh->dev->priv_flags & IFF_802_1Q_VLAN) child = VLAN_DEV_INFO(child)->real_dev; @@ -529,13 +546,14 @@ }; /* - * This handler monitors net_device registration and associates virtual offload - * devices with virtual net_devices, such as VLAN and bonding devices. + * This handler monitors ifnet registration and associates virtual offload + * devices with virtual ifnets, such as VLAN and bonding devices. */ -static int virt_dev_notify_handler(struct notifier_block *this, +static int +virt_dev_notify_handler(struct notifier_block *this, unsigned long event, void *data) { - struct net_device *dev = data; + struct ifnet *dev = data; if (event == NETDEV_REGISTER) if (dev->priv_flags & IFF_802_1Q_VLAN) { @@ -557,7 +575,8 @@ * the same TOE device. * */ -int toe_enslave(struct net_device *bond_dev, struct net_device *slave_dev) +int +toe_enslave(struct ifnet *bond_dev, struct ifnet *slave_dev) { struct toedev *tdev; int slave_count; @@ -567,7 +586,7 @@ return 0; if (!is_bmode_supported(bond_dev)) - return -EOPNOTSUPP; + return EOPNOTSUPP; tdev = toe_bond_slave_toedev(bond_dev); slave_count = toe_bond_slavecnt(bond_dev); @@ -581,15 +600,14 @@ /* Mix of TOE enabled and regular devices not supported */ else if (netdev_is_offload(bond_dev) ^ netdev_is_offload(slave_dev)) - ret = -EOPNOTSUPP; + ret = EOPNOTSUPP; /* TOE enabled device belongs to another adapter */ else if (tdev != TOEDEV(slave_dev)) - ret = -EOPNOTSUPP; + ret = EOPNOTSUPP; return ret; } -EXPORT_SYMBOL(toe_enslave); /** * toe_failover - executes failover for offloaded connections @@ -600,7 +618,8 @@ * Called under bond driver locks. */ -void toe_failover(struct net_device *bond_dev, struct net_device *dev, int event) +void +toe_failover(struct ifnet *bond_dev, struct ifnet *dev, int event) { if (netdev_is_offload(bond_dev)) { struct toedev *tdev = toe_bond_slave_toedev(bond_dev); @@ -609,13 +628,13 @@ tdev->failover(tdev, bond_dev, dev, event); } } -EXPORT_SYMBOL(toe_failover); static struct notifier_block virt_dev_notifier = { .notifier_call = virt_dev_notify_handler }; -static int __init offload_init(void) +static int +offload_init(void) { /* We tolerate proc failures */ if (offload_proc_init()) @@ -628,19 +647,11 @@ return 0; } -static void __exit offload_cleanup(void) +static void +offload_cleanup(void) { unregister_netdevice_notifier(&virt_dev_notifier); offload_proc_cleanup(); -#ifdef CONFIG_TCP_OFFLOAD_MODULE restore_tcp_to_nonoffload(); -#endif } -subsys_initcall(offload_init); -module_exit(offload_cleanup); - -MODULE_DESCRIPTION("Support for TCP offload devices"); -MODULE_AUTHOR("Chelsio Communications"); -MODULE_LICENSE("GPL"); -MODULE_VERSION(TOECORE_VERSION); From owner-p4-projects@FreeBSD.ORG Fri Apr 27 07:24:01 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6203616A403 for ; Fri, 27 Apr 2007 07:24:01 +0000 (UTC) (envelope-from streamsendbouncer@me21507.mailengine1.com) Received: from me21507.mailengine1.com (me21507.mailengine1.com [66.59.24.112]) by mx1.freebsd.org (Postfix) with ESMTP id 4DD6013C45A for ; Fri, 27 Apr 2007 07:24:01 +0000 (UTC) (envelope-from streamsendbouncer@me21507.mailengine1.com) Received: by me21507.mailengine1.com (PowerMTA(TM) v3.0r29) id h66ih20anbgm for ; Fri, 27 Apr 2007 00:13:48 -0700 (envelope-from ) MIME-Version: 1.0 X-Mailer: StreamSend - 3326 X-Report-Abuse-At: abuse@streamsend.com X-Report-Abuse-Info: It is important to please include full email headers in the report X-Streamsendid: 3326+5+511603+18+me21507.mailengine1.com Date: Fri, 27 Apr 2007 00:13:48 -0700 From: "The Second International Joint Conferences on Computer, Information, and Systems Sciences, and Engineering." To: p4-projects@freebsd.org Message-Id: <20070427072401.4DD6013C45A@mx1.freebsd.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: The Third International CISSE Conference X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 07:24:01 -0000 Dear Colleagues, If you received this email in error, please forward it to  the appropriate department at your institution. If you wish to unsubscribe please follow the unsubscribe link at bottom of the email. Please do not reply to this message. If you need to contact us  please email us at info@cisse2007online.org ********************************************************************* *    The Third International Joint Conferences on  Computer,         * *  Information, and Systems Sciences, and Engineering (CISSE 2007)   * *                                                                    * *                                                                    * *                                                                    * *                  http://www.cisse2007online.org                    * *                                                                    * *                                                                    * *                                                                    * *********************************************************************                         December 3-12, 2007 Technically Co-Sponsored by: Institute of Electrical & Electronics Engineers (IEEE); University  of Bridgeport --------------------------------------------------------------------- CONFERENCE  OVERVIEW --------------------------------------------------------------------- CISSE 2007 provides a virtual forum for presentation and discussion of the state-of the-art research on computers, information and systems sciences and engineering. CISSE 2007 is the third conference of the CISSE series of e-conferences. CISSE is the World's first Engineering/Computing and Systems Research E-Conference. CISSE 2005 was the first high-caliber Research Conference  in the world to be completely conducted online in real-time via the internet.  CISSE 2005 received 255 research paper submissions and the final program included 140 accepted papers, from more than 45 countries. CISSE 2006 received  691 research paper submissions and the final program included 390 accepted papers, from more than 70 countries. The virtual conference will be conducted through the Internet using web-conferencing tools, made available by the conference. Authors will be  presenting their PowerPoint, audio or video presentations using web-conferencing  tools without the need for travel. Conference sessions will be broadcast to all  the conference participants, where session participants can interact with the presenter during the presentation and (or) during the Q&A slot that follows  the presentation. This international conference will be held entirely on-line. The accepted and presented papers will be made available and sent to the authors after the conference both on a DVD (including all papers, powerpoint presentations and audio presentations) and as a book publication. Springer, the official publisher for CISSE, published the 2005 proceedings in 2 books and the CISSE 2006 proceedings in four books. Conference participants - authors, presenters and attendees - only need  an internet connection and sound available on their computers in order to be  able to contribute and participate in this international ground-breaking conference. The on-line structure of this high-quality event will allow academic professionals and industry participants to contribute their work and attend world-class technical presentations based on rigorously refereed submissions, live, without the need for investing significant travel funds or time out of the office. The concept and format of CISSE is very exciting and ground-breaking.  The PowerPoint presentations, final paper manuscripts and time schedule for live presentations over the web had been available for weeks prior to the start of the conference for all registrants, so that the participants can choose the presentations they want to attend and think about questions that they might want  to ask. The live audio presentations were also recorded and are part of the permanent CISSE on-line archive - accessible to all registrants- which also includes all the papers, PowerPoint and audio presentations. Potential non-author conference attendees who cannot make the on-line conference dates are encouraged to register, as the entire joint conferences  will be archived for future viewing. The CISSE conference audio room provides superb audio even over low speed internet connections, the ability to display PowerPoint presentations, and cross-platform compatibility (the conferencing software runs on Windows, Mac,  and any other operating system that supports Java). In addition, the conferencing system allowed for an unlimited number of participants, which in  turn granted us the opportunity to allow all CISSE participants to attend all presentations, as opposed to limiting the number of available seats for each  session. Prospective authors are invited to submit full papers electronically  in Microsoft Word format through the website of the conference at http://www.cisse2007online.org.   Accepted papers must be presented in the virtual conference by one of the  authors. To submit your paper, visit http://www.cisse2007online.org CISSE 2007 is composed of the following four conferences: International Conference on Systems, Computing Sciences and  Software Engineering (SCSS 07) Topics: Grid Computing, Internet-based Computing Models,  Resource Discovery, Programming Models and tools, e-Science and  Virtual Instrumentation, Biometric Authentication, Computers for People  of Special Needs, Human Computer Interaction, Information and  Knowledge Engineering, Algorithms, Parallel and Distributed processing,  Modeling and Simulation, Services and Applications, Embedded Systems and Applications, Databases, Programming Languages, Signal Processing  Theory and Methods, Signal Processing for Communication, Signal  Processing Architectures and Implementation, Information Processing,  Geographical Information Systems, Object Based Software Engineering, Parallel  and Distributed Computing, Real Time Systems, Multiprocessing, File  Systems and I/O, Kernel and OS Structures. International Conference on Telecommunications and Networking (TeNe  07) Topics: Optical Networks and Switching, Computer Networks,  Network architectures and Equipment, Access Technologies,  Telecommunication Technology, Coding and Modulation technique, Modeling and  Simulation, Spread Spectrum and CDMA Systems, OFDM technology, Space-time  Coding, Ultra Wideband Communications, Medium Access Control, Spread  Spectrum, Wireless LAN:  IEEE 802.11, HIPERLAN, Bluetooth, Cellular  Wireless Networks, Cordless Systems and Wireless Local Loop, Mobile Network  Layer, Mobile Transport Layer, Support for Mobility, Conventional Encryption  and Message Confidentiality, Block Ciphers Design Principles, Block  Ciphers Modes of Operation,  Public-Key Cryptography and Message Authentication, Authentication Application,  Stenography, Electronic  Mail Security, Web Security,  IP Security,  Firewalls, Computer  Forensics. International Conference on Engineering Education,  Instructional Technology, Assessment, and E-learning (EIAE 07) Topics: Instructional Design, Accreditation, Curriculum  Design, Educational Tools, 2-2-2 Platforms, Teaching Capstone Design,  Teaching Design at the Lower Levels, Design and Development of e-Learning  tools, Assessment Methods in Engineering, Development and Implementation  of E-learning tools, Ethics in Education, Economical and Social Impacts of E-learning. International Conference on Industrial Electronics, Technology  & Automation (IETA 07) Topics: Advanced and Distributed Control Systems, Intelligent  Control Systems (NN, FL, GA, .etc), Expert Systems, Man Machine  Interaction, Data Fusion, Factory Automation, Robotics, Motion Control,  Machine Vision, MEMS Sensors and Actuators, Sensors Fusion, Power  Electronics, High Frequency Converters, Motors and Drives, Power Converters,  Power Devices and Components, Electric Vehicles and  Intelligent Transportation, Process Automation, Factory Communication,  Manufacturing Information System Advances in Manufacturing Systems,  Industrial Applications of Multi Media, Intelligent Systems  Instrumentation, Industrial Instrumentation, Modeling and Simulation, Signal  Processing, Image and Data Processing, VR and Parallel systems. Paper Submission ================= Prospective authors are invited to submit full papers electronically  in Microsoft Word format through the website of the conference at http://www.cisse2007online.org.   Accepted papers must be presented in the virtual conference by one of the  authors. To submit your paper, visit http://www.cisse2007online.org Paper submission  Deadline:          October 5th,  2007 Notification of  Acceptance:         November 2nd,  2007 Final Manuscript and Registration:   November 23rd, 2007 ------------------------------------------------------------------------ Khaled Elleithy, Ph.D. CISSE 2007 General Co-Chair Associate Dean, School of Engineering University of Bridgeport e-mail: info@cisse2007online.org Bridgeport, CT 06604, U.S.A. http://www.cisse2007online.org ------------------------------------------------------------------------ Click here on http://server1.streamsend.com/streamsend/unsubscribe.php?cd=3326&md=18&ud=1a837b6a9f3592909bae3f1e53174ce1 to update your profile or Unsubscribe From owner-p4-projects@FreeBSD.ORG Fri Apr 27 12:46:51 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7935116A408; Fri, 27 Apr 2007 12:46:51 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5096016A403 for ; Fri, 27 Apr 2007 12:46:51 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 378EE13C45D for ; Fri, 27 Apr 2007 12:46:51 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RCkpSr051655 for ; Fri, 27 Apr 2007 12:46:51 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RCkoMJ051651 for perforce@freebsd.org; Fri, 27 Apr 2007 12:46:50 GMT (envelope-from taleks@FreeBSD.org) Date: Fri, 27 Apr 2007 12:46:50 GMT Message-Id: <200704271246.l3RCkoMJ051651@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 118874 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 12:46:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=118874 Change 118874 by taleks@taleks_th on 2007/04/27 12:46:48 added code from pxe.c. Now need to find way to install NIC irq handler. Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#3 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#3 edit Differences ... ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#3 (text+ko) ==== @@ -1,8 +1,38 @@ +#include +#include #include "pxe_core.h" #include "pxe_mem.h" #include "pxe_ip.h" #include "pxe_mutex.h" +#include "btxv86.h" +#include "pxe.h" + + +/* PXE API calls here will be made in same way as in pxeboot. + the only difference - installation of isr, that was not needed in pxe.c. + main problem is that, v86 monitors reflects interrupts, + we need to change IDT, for correct irq and call pxe_core_isr() from it. +*/ + +/* NOTE: to think about using of this buffers */ +#define PXE_BUFFER_SIZE 0x2000 +#define PXE_TFTP_BUFFER_SIZE 512 +static char scratch_buffer[PXE_BUFFER_SIZE]; +static char data_buffer[PXE_BUFFER_SIZE]; +static pxenv_t *pxenv_p = NULL; /* PXENV+ */ +static pxe_t *pxe_p = NULL; /* !PXE */ +static BOOTPLAYER bootplayer; /* PXE Cached information. */ + +/* defined in pxetramp.s */ +extern u_int16_t __bangpxeseg; +extern u_int16_t __bangpxeoff; +extern void __bangpxeentry(void); +extern u_int16_t __pxenvseg; +extern u_int16_t __pxenvoff; +extern void __pxenventry(void); + +/**/ pxe_packet core_packets[PXE_MAX_PACKETS]; pxe_protocol_call core_protocol[256]; pxe_mutex core_mutex={0,0}; @@ -17,20 +47,135 @@ int pxe_core_init() { /* int i=1; /* packet index during initialization loop */ + int counter=0; + uint8_t checksum=0; + uint8_t *checkptr=NULL; + t_PXENV_GET_CACHED_INFO *gci_p=NULL; pxe_memset(core_packets, 0, sizeof(core_packets)); pxe_memset(core_protocol, 0, sizeof(core_protocol)); nic_ip.ip=0; + /* creating 2-linked list of packets */ /* for (; iPXEPtr.segment * 16 + + pxenv_p->PXEPtr.offset); + pxe_call = NULL; + } + in my case, I must decide how to get this. May be it's best way + to use same mechanism. or, if I'll not use BTX code, it'll be + provided other way. So a plenty of things to think. + + */ + if(pxenv_p == NULL) + return (0); + + /* look for "PXENV+" */ + if (bcmp((void *)pxenv_p->Signature, S_SIZE("PXENV+"))) { + pxenv_p = NULL; + return (0); + } + + /* make sure the size is something we can handle */ + if (pxenv_p->Length > sizeof(*pxenv_p)) { + printf("PXENV+ structure too large, ignoring\n"); + pxenv_p = NULL; + return (0); + } + + /* + * do byte checksum: + * add up each byte in the structure, the total should be 0 + */ + checksum = 0; + checkptr = (uint8_t *) pxenv_p; + for (counter = 0; counter < pxenv_p->Length; counter++) + checksum += *checkptr++; + if (checksum != 0) { + printf("PXENV+ structure failed checksum, ignoring\n"); + pxenv_p = NULL; + return (0); + } + + + /* + * PXENV+ passed, so use that if !PXE is not available or + * the checksum fails. + */ + pxe_call = pxenv_call; + if (pxenv_p->Version >= 0x0200) { + for (;;) { + if (bcmp((void *)pxe_p->Signature, S_SIZE("!PXE"))) { + pxe_p = NULL; + break; + } + checksum = 0; + checkptr = (uint8_t *)pxe_p; + for (counter = 0; counter < pxe_p->StructLength; + counter++) + checksum += *checkptr++; + if (checksum != 0) { + pxe_p = NULL; + break; + } + pxe_call = bangpxe_call; + break; + } + } + + printf("\nPXE version %d.%d, real mode entry point ", + (uint8_t) (pxenv_p->Version >> 8), + (uint8_t) (pxenv_p->Version & 0xFF)); + +/* if (pxe_call == bangpxe_call) */ + printf("@%04x:%04x\n", + pxe_p->EntryPointSP.segment, + pxe_p->EntryPointSP.offset); +/* else + printf("@%04x:%04x\n", + pxenv_p->RMEntry.segment, pxenv_p->RMEntry.offset); +*/ + gci_p = (t_PXENV_GET_CACHED_INFO *) scratch_buffer; + bzero(gci_p, sizeof(*gci_p)); + gci_p->PacketType = PXENV_PACKET_TYPE_BINL_REPLY; + + pxe_core_call(PXENV_GET_CACHED_INFO); + + if (gci_p->Status != 0) { +/* pxe_perror(gci_p->Status);*/ + pxe_p = NULL; + return (0); + } + + bcopy(PTOV((gci_p->Buffer.segment << 4) + gci_p->Buffer.offset), + &bootplayer, gci_p->BufferSize); + + /* 2. install isr */ + pxe_core_install_isr(); + + /* 3. additional start UNDI */ + return 1; } +void pxe_core_install_isr() { +} + +void pxe_core_remove_isr() { +} + int pxe_core_shutdown() { int i=1; @@ -41,9 +186,45 @@ pxe_free(core_packets[i].data); } + /* 1. uninstall isr */ + pxe_core_remove_isr(); + + /* 2. shutdown PXE */ + + t_PXENV_UNLOAD_STACK *unload_stack_p = + (t_PXENV_UNLOAD_STACK *)scratch_buffer; + t_PXENV_UNDI_SHUTDOWN *undi_shutdown_p = + (t_PXENV_UNDI_SHUTDOWN *)scratch_buffer; + + pxe_core_call(PXENV_UNDI_SHUTDOWN); + pxe_core_call(PXENV_UNLOAD_STACK); + return 1; } +/* + function code is taken from bangpxe_call(), /sys/boot/libi386/pxe.c + needs pxetramp.s wrapper and vm86int() support. + I'll see later , may be it's simplier to do own v86 monitor, + than using provided with BTX. +*/ +void pxe_core_call(int func) { + + bzero(&v86, sizeof(v86)); + bzero(data_buffer, sizeof(data_buffer)); + + __bangpxeseg = pxe_p->EntryPointSP.segment; + __bangpxeoff = pxe_p->EntryPointSP.offset; + + v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS; + v86.edx = VTOPSEG(scratch_buffer); + v86.eax = VTOPOFF(scratch_buffer); + v86.addr = (VTOPSEG(__bangpxeentry) << 16) | VTOPOFF(__bangpxeentry); + v86.ebx = func; + v86int(); + v86.ctl = V86_FLAGS; +} + int pxe_core_transmit(pxe_packet* pack) { /* UNDI transmit ip packet call*/ ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#3 (text+ko) ==== @@ -64,6 +64,11 @@ /* interrupt handler function, that used to get new packets */ void pxe_core_isr(); +/* calls PXE/UNDI API, registers of processor must be filled in with + appropriate values. + */ +void pxe_core_call(int func); + /* installs irq handler*/ void pxe_core_install_isr(); From owner-p4-projects@FreeBSD.ORG Fri Apr 27 12:52:48 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0F88E16A404; Fri, 27 Apr 2007 12:52:48 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B2C4316A401 for ; Fri, 27 Apr 2007 12:52:47 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mu-out-0910.google.com (mu-out-0910.google.com [209.85.134.189]) by mx1.freebsd.org (Postfix) with ESMTP id 433A413C484 for ; Fri, 27 Apr 2007 12:52:47 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: by mu-out-0910.google.com with SMTP id g7so957452muf for ; Fri, 27 Apr 2007 05:52:34 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding:sender; b=BmAJ8JJHhkmDvErvoV3XfdVrIfkoJsDrSb8pdFTIBDaTjUplI7Rs2re52a69Ph0+OW5a3R0cm6UTWBeJTJz5Df6k0+gNJKxGqJXBq1mIA+lcnS2rxAUp6Jb8Q/JDphO9iTCmnabvsroAGONCdJNw3f0qN8d3nifdJDsXRIifmwo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding:sender; b=NPDujWa/BPyrqs+nOO9cXSMYU2XnBNYeUEsY+FYrNiCFd9wepCKHW8Vo4t3glyS6mxzm4QYjK0ewPZf74Av3Ltw/T2psABYrCg7FPcGXx080A1K83C9Az4YulVQRWSgyPUQjeKmxY94HNpqbbHt7BmfFQutZdstWzCBbbQ06Y+w= Received: by 10.82.113.6 with SMTP id l6mr5699779buc.1177678354609; Fri, 27 Apr 2007 05:52:34 -0700 (PDT) Received: from ?172.31.5.21? ( [89.97.252.178]) by mx.google.com with ESMTP id c25sm39435ika.2007.04.27.05.52.32; Fri, 27 Apr 2007 05:52:34 -0700 (PDT) Message-ID: <46326366.50907@FreeBSD.org> Date: Fri, 27 Apr 2007 22:56:06 +0200 From: Attilio Rao User-Agent: Thunderbird 1.5 (X11/20060526) MIME-Version: 1.0 To: Alexey Tarasov References: <200704271246.l3RCkoMJ051651@repoman.freebsd.org> In-Reply-To: <200704271246.l3RCkoMJ051651@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: Attilio Rao Cc: Perforce Change Reviews Subject: Re: PERFORCE change 118874 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 12:52:48 -0000 Alexey Tarasov wrote: > http://perforce.freebsd.org/chv.cgi?CH=118874 > > Change 118874 by taleks@taleks_th on 2007/04/27 12:46:48 > > added code from pxe.c. Now need to find way to install NIC irq handler. > > Affected files ... > > .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#3 edit > .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#3 edit > > Differences ... > > ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#3 (text+ko) ==== > > @@ -1,8 +1,38 @@ > +#include > +#include > #include "pxe_core.h" > #include "pxe_mem.h" > #include "pxe_ip.h" > #include "pxe_mutex.h" > > +#include "btxv86.h" > +#include "pxe.h" > + > + > +/* PXE API calls here will be made in same way as in pxeboot. > + the only difference - installation of isr, that was not needed in pxe.c. > + main problem is that, v86 monitors reflects interrupts, > + we need to change IDT, for correct irq and call pxe_core_isr() from it. > +*/ > + > +/* NOTE: to think about using of this buffers */ > +#define PXE_BUFFER_SIZE 0x2000 > +#define PXE_TFTP_BUFFER_SIZE 512 > +static char scratch_buffer[PXE_BUFFER_SIZE]; > +static char data_buffer[PXE_BUFFER_SIZE]; > +static pxenv_t *pxenv_p = NULL; /* PXENV+ */ > +static pxe_t *pxe_p = NULL; /* !PXE */ > +static BOOTPLAYER bootplayer; /* PXE Cached information. */ > + > +/* defined in pxetramp.s */ > +extern u_int16_t __bangpxeseg; > +extern u_int16_t __bangpxeoff; > +extern void __bangpxeentry(void); > +extern u_int16_t __pxenvseg; > +extern u_int16_t __pxenvoff; > +extern void __pxenventry(void); > + > +/**/ Could you, please, use here uint16_t instead than u_int16_t as style(9) suggests? Attilio From owner-p4-projects@FreeBSD.ORG Fri Apr 27 15:25:08 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E399516A406; Fri, 27 Apr 2007 15:25:07 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AD1EA16A400 for ; Fri, 27 Apr 2007 15:25:07 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9FEE313C484 for ; Fri, 27 Apr 2007 15:25:07 +0000 (UTC) (envelope-from taleks@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RFP7uU009529 for ; Fri, 27 Apr 2007 15:25:07 GMT (envelope-from taleks@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RFP7tA009526 for perforce@freebsd.org; Fri, 27 Apr 2007 15:25:07 GMT (envelope-from taleks@FreeBSD.org) Date: Fri, 27 Apr 2007 15:25:07 GMT Message-Id: <200704271525.l3RFP7tA009526@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to taleks@FreeBSD.org using -f From: Alexey Tarasov To: Perforce Change Reviews Cc: Subject: PERFORCE change 118882 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 15:25:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=118882 Change 118882 by taleks@taleks_th on 2007/04/27 15:24:14 Updated to be more style compliant Affected files ... .. //depot/projects/soc2007/taleks-pxe_http/pxe_conv.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_conv.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#4 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#4 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_http.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.c#3 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.c#3 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_ip.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_mem.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_mem.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_mutex.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_mutex.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.c#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_sock.h#2 edit .. //depot/projects/soc2007/taleks-pxe_http/pxe_tcp.h#2 edit Differences ... ==== //depot/projects/soc2007/taleks-pxe_http/pxe_conv.c#2 (text+ko) ==== @@ -1,18 +1,20 @@ #include "pxe_conv.h" +inline uint32_t +le2be32(uint32_t x) +{ - -inline uint32_t le2be32(uint32_t x) { - - return ((0x000000ff & x) << 24) | - ((0x0000ff00 & x) << 8) | - ((0x00ff0000 & x) >> 8) | - ((0xff000000 & x) >> 24 ); + return ((0x000000ff & x) << 24)| + ((0x0000ff00 & x) << 8) | + ((0x00ff0000 & x) >> 8) | + ((0xff000000 & x) >> 24 ); } -inline uint16_t le2be16(uint16_t x) { +inline uint16_t +le2be16(uint16_t x) +{ - return ((0x00ff & x) << 8) | - ((0xff00 & x) >> 8); + return ((0x00ff & x) << 8) | + ((0xff00 & x) >> 8); } ==== //depot/projects/soc2007/taleks-pxe_http/pxe_conv.h#2 (text+ko) ==== @@ -4,19 +4,17 @@ #include /* - here I'm assumming PXE code is started on x86 arch, - so host machine arch uses little endian byte order -*/ + * here I'm assumming PXE code is started on x86 arch, + * so host machine arch uses little endian byte order + */ -/* change order for 32bit unsigned int*/ +/* change order for 32bit unsigned int */ uint32_t le2be32(uint32_t x); -/* change order for 16bit unsigned int*/ +/* change order for 16bit unsigned int */ uint16_t le2be16(uint16_t x); -/* - in fact the same functions -*/ +/* in fact the same functions */ #define be2le32 le2be32 #define be2le16 le2be16 ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#4 (text+ko) ==== @@ -1,84 +1,86 @@ #include #include -#include "pxe_core.h" -#include "pxe_mem.h" -#include "pxe_ip.h" -#include "pxe_mutex.h" #include "btxv86.h" #include "pxe.h" +#include "pxe_core.h" +#include "pxe_ip.h" +#include "pxe_mem.h" +#include "pxe_mutex.h" /* PXE API calls here will be made in same way as in pxeboot. - the only difference - installation of isr, that was not needed in pxe.c. - main problem is that, v86 monitors reflects interrupts, - we need to change IDT, for correct irq and call pxe_core_isr() from it. -*/ + * the only difference - installation of isr, that was not needed in pxe.c. + * main problem is that, v86 monitors reflects interrupts, + * we need to change IDT, for correct irq and call pxe_core_isr() from it. + */ /* NOTE: to think about using of this buffers */ #define PXE_BUFFER_SIZE 0x2000 #define PXE_TFTP_BUFFER_SIZE 512 static char scratch_buffer[PXE_BUFFER_SIZE]; static char data_buffer[PXE_BUFFER_SIZE]; -static pxenv_t *pxenv_p = NULL; /* PXENV+ */ -static pxe_t *pxe_p = NULL; /* !PXE */ -static BOOTPLAYER bootplayer; /* PXE Cached information. */ +static pxenv_t *pxenv_p = NULL; /* PXENV+ */ +static pxe_t *pxe_p = NULL; /* !PXE */ +static BOOTPLAYER bootplayer; /* PXE Cached information. */ /* defined in pxetramp.s */ -extern u_int16_t __bangpxeseg; -extern u_int16_t __bangpxeoff; -extern void __bangpxeentry(void); -extern u_int16_t __pxenvseg; -extern u_int16_t __pxenvoff; -extern void __pxenventry(void); +extern uint16_t __bangpxeseg; +extern uint16_t __bangpxeoff; +extern void __bangpxeentry(void); +extern uint16_t __pxenvseg; +extern uint16_t __pxenvoff; +extern void __pxenventry(void); -/**/ -pxe_packet core_packets[PXE_MAX_PACKETS]; -pxe_protocol_call core_protocol[256]; -pxe_mutex core_mutex={0,0}; +/* pxe core structures*/ +pxe_packet core_packets[PXE_MAX_PACKETS]; /* buffered packets */ +pxe_protocol_call core_protocol[256]; /* protocol's callback fuctions */ +pxe_mutex core_mutex = {0, 0}; /* mutex used in packet allocation */ /* NIC info */ -pxe_ipaddr nic_ip={0}; +pxe_ipaddr nic_ip = {0}; -uint32_t packets_dropped=0; -uint32_t packets_sent=0; -uint32_t packets_received=0; +/* core packet statistics */ +uint32_t packets_dropped = 0; +uint32_t packets_sent = 0; +uint32_t packets_received = 0; -int pxe_core_init() { +int +pxe_core_init() +{ +/* int i = 1; /* packet index during initialization loop */ + int counter = 0; + uint8_t checksum = 0; + uint8_t *checkptr = NULL; -/* int i=1; /* packet index during initialization loop */ - int counter=0; - uint8_t checksum=0; - uint8_t *checkptr=NULL; - t_PXENV_GET_CACHED_INFO *gci_p=NULL; + t_PXENV_GET_CACHED_INFO *gci_p = NULL; - pxe_memset(core_packets, 0, sizeof(core_packets)); - pxe_memset(core_protocol, 0, sizeof(core_protocol)); - nic_ip.ip=0; + pxe_memset(core_packets, 0, sizeof(core_packets)); + pxe_memset(core_protocol, 0, sizeof(core_protocol)); + nic_ip.ip = 0; - /* creating 2-linked list of packets */ -/* for (; iPXEPtr.segment * 16 + - pxenv_p->PXEPtr.offset); - pxe_call = NULL; - } - - in my case, I must decide how to get this. May be it's best way - to use same mechanism. or, if I'll not use BTX code, it'll be - provided other way. So a plenty of things to think. - - */ + /* + * pxe_env is originally is got by pxe_enable() call from + * void + * pxe_enable(void *pxeinfo) { + * pxenv_p = (pxenv_t *)pxeinfo; + * pxe_p = (pxe_t *)PTOV(pxenv_p->PXEPtr.segment * 16 + + * pxenv_p->PXEPtr.offset); + * pxe_call = NULL; + * } + * + * in my case, I must decide how to get this. May be it's best way + * to use same mechanism. or, if I'll not use BTX code, it'll be + * provided other way. So a plenty of things to think. + */ if(pxenv_p == NULL) return (0); @@ -114,7 +116,6 @@ * PXENV+ passed, so use that if !PXE is not available or * the checksum fails. */ - pxe_call = pxenv_call; if (pxenv_p->Version >= 0x0200) { for (;;) { if (bcmp((void *)pxe_p->Signature, S_SIZE("!PXE"))) { @@ -130,7 +131,7 @@ pxe_p = NULL; break; } - pxe_call = bangpxe_call; +/* pxe_call = bangpxe_call;*/ break; } } @@ -149,7 +150,7 @@ */ gci_p = (t_PXENV_GET_CACHED_INFO *) scratch_buffer; bzero(gci_p, sizeof(*gci_p)); - gci_p->PacketType = PXENV_PACKET_TYPE_BINL_REPLY; + gci_p->PacketType = PXENV_PACKET_TYPE_BINL_REPLY; pxe_core_call(PXENV_GET_CACHED_INFO); @@ -162,53 +163,63 @@ bcopy(PTOV((gci_p->Buffer.segment << 4) + gci_p->Buffer.offset), &bootplayer, gci_p->BufferSize); - /* 2. install isr */ - pxe_core_install_isr(); + /* 2. install isr */ + pxe_core_install_isr(); - /* 3. additional start UNDI */ + /* 3. additional start UNDI */ - return 1; + return (1); } -void pxe_core_install_isr() { +void +pxe_core_install_isr() +{ + } -void pxe_core_remove_isr() { +void +pxe_core_remove_isr() +{ + } -int pxe_core_shutdown() { +int +pxe_core_shutdown() +{ + int i = 1; - int i=1; + for (; i < PXE_MAX_PACKETS; ++i) { - for (; iprotocol]) { /* protocol registered */ + core_protocol[iphdr->protocol](&core_packets[i], + PXE_CORE_CHECK, NULL); + } + } - if (!iphdr) { /* dummy packet */ + return (1); +} - continue; - } +void +pxe_core_isr() +{ + int buffer_size = 0; /* total size of packet*/ + int protocol = 0; /* protocol */ + int recieved = 0; /* bytes received to buffer */ - if (core_protocol[iphdr->protocol]) { /* protocol registered */ + void *frame_data = NULL;/* pointer to frame data */ + int frame_size = 0; /* size of frame */ - core_protocol[iphdr->protocol](&core_packets[i], PXE_CORE_CHECK, NULL); - } - } + pxe_packet *pack=NULL; /* allocated packet */ + pxe_packet dummy_pack; /* temporary struct, used to mimic + * real packet struct + */ - return 1; -} + /* + * TODO: UNDI get buffer size & etc + */ -void pxe_core_isr() { - /* - TODO: UNDI get buffer size & etc - */ + /* we are yet not interested in non-ip packets */ - int buffer_size=0; /* total size of packet*/ - int protocol=0; /* protocol */ - int recieved=0; /* bytes received to buffer */ + if (protocol != PXE_PROTOCOL_IP) { + ++packets_dropped; + return; + } - void* frame_data=NULL;/* pointer to frame data */ - int frame_size=0; /* size of frame */ - - pxe_packet* pack=NULL; /* allocated packet */ - pxe_packet dummy_pack; /* temporary struct, used to mimic real packet struct*/ - - /* we are yet not interested in non-ip packets */ + /* checking first fragment, this may help to avoid memory allocation + * and memblock copy + */ - if (protocol!=PXE_PROTOCOL_IP) { - ++packets_dropped; - return; - } - - /* checking first fragment, this may help to avoid memory allocation and memblock copy */ /* if (buffer_size==frame_size) { - pxe_ip* iphdr=(pxe_ip*)frame_data; + pxe_ip *iphdr = (pxe_ip *)frame_data; - dummy_pack.protocol=protocol; - dummy_pack.state=PXE_PACKET_STATE_USING; - dummy_pack.data=frame_data; - dummy_pack.data_size=frame_size; - dummy_pack.user_data=NULL; + dummy_pack.protocol = protocol; + dummy_pack.state = PXE_PACKET_STATE_USING; + dummy_pack.data = frame_data; + dummy_pack.data_size = frame_size; + dummy_pack.user_data = NULL; /* TODO: calc ip checksum / if (core_protocol[iphdr->protocol]) { - - if (core_protocol[iphdr->protocol](&dummy_pack, PXE_CORE_FRAG, NULL)) { - return; - } - - } + if (core_protocol[iphdr->protocol](&dummy_pack, PXE_CORE_FRAG, + NULL)) { + return; + } + } */ - pack=pxe_core_alloc_packet(buffer_size); + pack = pxe_core_alloc_packet(buffer_size); - if (!pack) { + if (pack == NULL) { + pxe_core_flush_packets(); - pxe_core_flush_packets(); + /* trying to get free packets by sending and dropping */ + pack = pxe_core_alloc_packet(buffer_size); - /* trying to get free packets by sending and dropping */ - pack=pxe_core_alloc_packet(buffer_size); + /* failed to alloc packet, dropping packet */ + if (pack == NULL) { + ++packets_dropped; + return; + } + } - if (!pack) { /* failed to alloc packet, dropping packet */ - ++packets_dropped; - return; - } - } + /* pointing user_data to beginning of data. + * It's used by pxe_core_receive() during receiving packet. + */ + pack->user_data = pack->data; + while (recieved < buffer_size) { + /* + * UNDI get frame + */ - /* pointing user_data to beginning of data. - It's used by pxe_core_receive() during receiving packet. - */ - pack->user_data=pack->data; + frame_size=0; - while (recieveduser_data = NULL; + ++packets_received; - recieved+=frame_size; - } + pxe_ip *iphdr=(pxe_ip *)pack->data; - pack->user_data=NULL; - ++packets_received; + /* TODO: calc ip checksum */ + pack->protocol = protocol; - pxe_ip* iphdr=(pxe_ip*)pack->data; + if (core_protocol[iphdr->protocol]) { /* protocol registered */ + if (core_protocol[iphdr->protocol](pack, PXE_CORE_HANDLE, + NULL)) { + return; + } + } - /* TODO: calc ip checksum */ - pack->protocol=protocol; - - if (core_protocol[iphdr->protocol]) { /* protocol registered */ - - if (core_protocol[iphdr->protocol](pack, PXE_CORE_HANDLE, NULL)) { - return; - } - } - - /* no such protocol registered or protocol not interested in it */ - pxe_core_drop(pack); + /* no such protocol registered or protocol not interested in it */ + pxe_core_drop(pack); } /* - recieves in packet data -*/ -int pxe_core_recieve(pxe_packet* pack, void* frame_data, size_t frame_size) { + * recieves in packet data + */ +int +pxe_core_recieve(pxe_packet *pack, void *frame_data, size_t frame_size) +{ - /* check to be sure */ - if (pack->user_data==NULL) - pack->user_data=pack->data; + /* check to be sure */ + if (pack->user_data == NULL) + pack->user_data = pack->data; - /* sanity check */ - if ( (pack->user_data-pack->data) +frame_size > pack->data_size) - return 0; /* This must not ever be*/ + /* sanity check */ + if ( (pack->user_data - pack->data) + frame_size > pack->data_size) + return (0); /* This must not ever be*/ - pxe_memcpy(pack->user_data, frame_data, frame_size); + pxe_memcpy(pack->user_data, frame_data, frame_size); - return 1; + return (1); } /* - allocates packet, creates buffer for data if necessary -*/ -pxe_packet* pxe_core_alloc_packet(size_t packet_size) { + * allocates packet, creates buffer for data if necessary + */ +pxe_packet * +pxe_core_alloc_packet(size_t packet_size) +{ + int i = 1; /* packet index */ - int i=1; /* packet index */ + pxe_mutex_own(&core_mutex, PXE_OWNER_CORE); - pxe_mutex_own(&core_mutex, PXE_OWNER_CORE); + /* searching free packets structures */ + for (; i < PXE_MAX_PACKETS; ++i) { + if (core_packets[i].state == PXE_PACKET_STATE_FREE) { + /* packet structure seems to be free */ + /* mark it busy */ + core_packets[i].state = PXE_PACKET_STATE_USING; - /* searching free packets structures */ - for (; istate=PXE_PACKET_STATE_FREE; - ++packets_dropped; - pxe_mutex_free(&core_mutex, PXE_OWNER_CORE); + pxe_mutex_own(&core_mutex, PXE_OWNER_CORE); + pack->state = PXE_PACKET_STATE_FREE; + ++packets_dropped; + pxe_mutex_free(&core_mutex, PXE_OWNER_CORE); } + /* - registers protocol in protocols table -*/ -void pxe_core_register(uint8_t proto, pxe_protocol_call proc) { + * registers protocol in protocols table + */ +void +pxe_core_register(uint8_t proto, pxe_protocol_call proc) +{ core_protocol[proto]=proc; } -uint32_t pxe_get_myip32() { +uint32_t +pxe_get_myip32() +{ return nic_ip.ip; } ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#4 (text+ko) ==== @@ -9,36 +9,37 @@ */ /* - contains wrappers for UNDI functions -*/ + * contains wrappers for UNDI functions + */ -#define PXE_MAX_PACKETS 32 +#define PXE_MAX_PACKETS 32 -#define PXE_PACKET_STATE_FREE 0 -#define PXE_PACKET_STATE_USING 1 -#define PXE_PACKET_STATE_RECIEVED 2 -#define PXE_PACKET_STATE_SENT 3 -#define PXE_PACKET_STATE_PENDING 4 -#define PXE_PACKET_STATE_ABORTED 5 +#define PXE_PACKET_STATE_FREE 0 +#define PXE_PACKET_STATE_USING 1 +#define PXE_PACKET_STATE_RECIEVED 2 +#define PXE_PACKET_STATE_SENT 3 +#define PXE_PACKET_STATE_PENDING 4 +#define PXE_PACKET_STATE_ABORTED 5 /* - structure, used in queueing packets in pxe_core + * structure, used in queueing packets in pxe_core */ -typedef struct { +typedef struct pxe_packet { /* pxe_packet* next; /* NOT IMPLEMENTED: two-linked list */ /* pxe_packet* prev; /* NOT IMPLEMENTED: two-linked list */ - uint8_t protocol; /* protocol, used in packet */ uint8_t state; /* state of packet (PXE_PACKET_STATE_ ... ) */ - void* data; /* pointer to buffer with packet data*/ + void* data; /* pointer to buffer with packet data */ size_t data_size; /* size of packet data */ - void* user_data; /* pointer to user data. used by higher level protocols */ -} pxe_packet; + void* user_data; /* pointer to user data. + * used by higher level protocols + */ +} PXE_PACKET; #define PXE_PROTOCOL_UNKNOWN 0 #define PXE_PROTOCOL_IP 1 @@ -53,19 +54,19 @@ int pxe_core_shutdown(); /* sends packet to a network */ -int pxe_core_transmit(pxe_packet* pack); +int pxe_core_transmit(pxe_packet *pack); /* commits that packet will not be used */ -void pxe_core_commit(pxe_packet* pack); +void pxe_core_commit(pxe_packet *pack); /* allocates buffer for packet */ -pxe_packet* pxe_core_alloc_packet(size_t packet_size); +pxe_packet *pxe_core_alloc_packet(size_t packet_size); /* interrupt handler function, that used to get new packets */ void pxe_core_isr(); /* calls PXE/UNDI API, registers of processor must be filled in with - appropriate values. + * appropriate values. */ void pxe_core_call(int func); @@ -76,10 +77,10 @@ void pxe_core_remove_isr(); /* stores data in packet */ -int pxe_core_recieve(pxe_packet* pack, void* data, size_t size); +int pxe_core_recieve(pxe_packet *pack, void *data, size_t size); /* drops allocated packet, updates drop count */ -void pxe_core_drop(pxe_packet* pack); +void pxe_core_drop(pxe_packet *pack); /* debug function that shows different information about usage */ void pxe_core_stats(); @@ -87,7 +88,8 @@ #define PXE_CORE_HANDLE 0x0 #define PXE_CORE_CHECK 0x1 #define PXE_CORE_FRAG 0x2 -typedef int (*pxe_protocol_call)(pxe_packet* pack, uint8_t function, void* data); +typedef int (*pxe_protocol_call)(pxe_packet *pack, uint8_t function, void *data); + /* registers protocol */ void pxe_core_register(uint8_t proto, pxe_protocol_call proc); ==== //depot/projects/soc2007/taleks-pxe_http/pxe_http.c#2 (text+ko) ==== @@ -1,20 +1,21 @@ #include + #include "pxe_core.h" +#include "pxe_icmp.h" #include "pxe_ip.h" -#include "pxe_icmp.h" -int pxe_test_main() { +int +pxe_test_main() +{ + pxe_ipaddr ip; + ip.ip=0xC0A80001; printf("pxe icmp dummy test.\n"); pxe_core_init(); pxe_icmp_init(); - pxe_ipaddr ip; - - ip.ip=0xC0A80001; - pxe_ping(&ip, 0); - return 0; + return (0); } ==== //depot/projects/soc2007/taleks-pxe_http/pxe_icmp.c#3 (text+ko) ==== @@ -1,164 +1,176 @@ #include + +#include "pxe_conv.h" +#include "pxe_core.h" +#include "pxe_icmp.h" #include "pxe_ip.h" -#include "pxe_icmp.h" -#include "pxe_core.h" -#include "pxe_conv.h" + /* used in echo replying */ -static pinging=0; +static pinging = 0; -int pxe_icmp_callback(pxe_packet* pack, uint8_t function, void* data) { +int +pxe_icmp_callback(pxe_packet *pack, uint8_t function, void *data) +{ + /* we don't store icmp packets, so they cannot steal memory + * in pxe core packet table + */ - if (function==PXE_CORE_CHECK) { - /* we don't store icmp packets, so they cannot steal memory - in pxe core packet table */ - return 0; - } + if (function == PXE_CORE_CHECK) { + return (0); + } - /* PXE_CORE_HANDLE - to handle packet - PXE_CORE_FRAG - to handle fragment of packet, may be useful for fast - dropping of invalid packet. - */ + /* PXE_CORE_HANDLE - to handle packet + * PXE_CORE_FRAG - to handle fragment of packet, may be useful + * for fast dropping of invalid packet. + */ + /* icmp header*/ + pxe_ip *iphdr = pack->data; + size_t iphdr_len = (iphdr->ver_ihl & 0x0f) * 4; + size_t data_size = iphdr->length - iphdr_len - sizeof(pxe_ip); + pxe_icmp *icmphdr = pack->data + sizeof(pxe_ip) + iphdr_len; - /* icmp header*/ - pxe_ip* iphdr=pack->data; - size_t iphdr_len=(iphdr->ver_ihl & 0x0f)*4; - size_t data_size=iphdr->length-iphdr_len-sizeof(pxe_ip); - pxe_icmp* icmphdr=pack->data+sizeof(pxe_ip)+iphdr_len; + /* TODO: verify checksum */ - /* TODO: verify checksum */ + /* reply */ + pxe_packet *pack_out = NULL; + pxe_ip *reply_iphdr = NULL; + pxe_icmp *reply_icmphdr = NULL; + size_t reply_size = sizeof(pxe_ip) + sizeof(pxe_icmp) + data_size; - /* reply */ - pxe_packet* pack_out=NULL; - pxe_ip* reply_iphdr=NULL; - pxe_icmp* reply_icmphdr=NULL; - size_t reply_size=sizeof(pxe_ip)+sizeof(pxe_icmp)+data_size; - - /* we are interested only in echo related packets*/ - switch(icmphdr->code) { - case PXE_ICMP_ECHO_REQUEST: - case PXE_ICMP_ECHO_REPLY: - /* case PXE_ICMP_DEST_UNREACHABLE: - case PXE_ICMP_REDIRECT_MESSAGE: + /* we are interested only in echo related packets*/ + switch(icmphdr->code) { + case PXE_ICMP_ECHO_REQUEST: + case PXE_ICMP_ECHO_REPLY: + /* case PXE_ICMP_DEST_UNREACHABLE: + case PXE_ICMP_REDIRECT_MESSAGE: */ - break; + break; + default: + return (0); /* instruct pxe core to drop packet*/ + }; - default: - return 0; /* instruct pxe core to drop packet*/ - }; + if (icmphdr->code == PXE_ICMP_ECHO_REPLY) { + if (pinging == be2le32(iphdr->src_ip)) + printf("\necho reply from %x, seq=%ld.", + iphdr->src_ip, icmphdr->seq_num); + else /* we are not interested in this reply*/ + printf("\nlame echo reply from %x, seq=%ld.", + iphdr->src_ip, icmphdr->seq_num); + return (0); + } + /* all we need now is echo reply */ - if (icmphdr->code==PXE_ICMP_ECHO_REPLY) { + pxe_packet* pack_out = pxe_core_alloc_packet(reply_size); - if (pinging==be2le32(iphdr->src_ip)) - printf("\necho reply from %x, seq=%ld.", iphdr->src_ip, icmphdr->seq_num); - else /* we are not interested in this reply*/ - printf("\nlame echo reply from %x, seq=%ld.", iphdr->src_ip, icmphdr->seq_num); - return 0; - } - /* all we need now is echo reply */ - pxe_packet* pack_out=pxe_core_alloc_packet(reply_size); + if (pack == NULL) { + /* TO THINK: failed to allocate packet, + * may be it's better to use + * statically allocated packet. + */ + return 0; + } - if (!pack) { /* TO THINK: failed to allocate packet, - may be it's better to use - statically allocated packet. */ + reply_iphdr = (pxe_ip *)pack_out->data; + reply_icmphdr = (pxe_icmp *)(reply_iphdr + 1); - return 0; - } + reply_icmphdr->type = PXE_ICMP_ECHO_REPLY; - reply_iphdr=(pxe_ip*)pack_out->data; - reply_icmphdr=(pxe_icmp*)(reply_iphdr+1); + /* copying same values */ + reply_icmphdr->code = icmphdr->code; + reply_icmphdr->seq_num = icmphdr->seq_num; + reply_icmphdr->packet_id = icmphdr->reply_icmphdr; + reply_icmphdr->checksum = 0; + reply_icmphdr->checksum = + ~(le2be16(pxe_ip_checksum(reply_icmphdr, sizeof(pxe_icmp)))); - reply_icmphdr->type=PXE_ICMP_ECHO_REPLY; + pxe_ip_hdr(pack_out->data, iphdr->src_ip, 0x01, reply_size, 0); - /* copying same values */ + /* copying all data from request packet to reply packet, + * starting after headers + */ + pxe_memcpy(reply_icmphdr + 1, pack->data + iphdr_len + sizeof(pxe_icmp), + data_size); - reply_icmphdr->code=icmphdr->code; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 27 17:27:32 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 887B216A403; Fri, 27 Apr 2007 17:27:32 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 14FDB16A401 for ; Fri, 27 Apr 2007 17:27:32 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0572513C4C3 for ; Fri, 27 Apr 2007 17:27:32 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RHRVOe040419 for ; Fri, 27 Apr 2007 17:27:31 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RHRV00040405 for perforce@freebsd.org; Fri, 27 Apr 2007 17:27:31 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 17:27:31 GMT Message-Id: <200704271727.l3RHRV00040405@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118886 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 17:27:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=118886 Change 118886 by rdivacky@rdivacky_witten on 2007/04/27 17:24:37 Branch for futex developement. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/acpica/OsdEnvironment.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/acpica/acpi_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/acpica/acpi_wakeup.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/acpica/madt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/amd64_mem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/apic_vector.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/atomic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/autoconf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/bios.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/bpf_jit_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/bpf_jit_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/busdma_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/cpu_switch.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/db_disasm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/db_interface.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/db_trace.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/dump_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/elf_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/exception.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/fpu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/gdb_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/genassym.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/identcpu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/in_cksum.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/initcpu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/intr_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/io.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/io_apic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/legacy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/local_apic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/locore.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/minidump_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_watchdog.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mpboot.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mptable.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mptable_pci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/msi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/nexus.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/pmap.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/prof_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/sigtramp.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/support.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/sys_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/trap.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/tsc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/uio_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/uma_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/vm_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/compile/.cvsignore#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/.cvsignore#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/DEFAULTS#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/GENERIC#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/GENERIC.hints#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/MAC#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/conf/NOTES#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/ia32/ia32_exception.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/ia32/ia32_reg.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/ia32/ia32_signal.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/ia32/ia32_sigtramp.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/ia32/ia32_syscall.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/_bus.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/_inttypes.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/_limits.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/_stdint.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/_types.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/acpica_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/apicreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/apicvar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/asm.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/asmacros.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/atomic.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/bus.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/bus_dma.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/clock.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/cpu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/cpufunc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/cputypes.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/db_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/elf.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/endian.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/exec.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/float.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/floatingpoint.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/fpu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/frame.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/gdb_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/ieeefp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/in_cksum.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/intr_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/iodev.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/kdb.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/legacyvar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/limits.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/md_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/memdev.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/metadata.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/minidump.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/mp_watchdog.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/mptable.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/mutex.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/param.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pc/bios.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pc/display.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pcb.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pcb_ext.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pci_cfgreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pcpu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pmap.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/pmc_mdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/ppireg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/proc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/profile.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/psl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/ptrace.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/reloc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/resource.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/runq.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/segments.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/setjmp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/sf_buf.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/sigframe.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/signal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/smp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/specialreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/stdarg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/sysarch.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/timerreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/trap.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/tss.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/ucontext.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/varargs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/vmparam.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/atpic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/atpic_vector.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/clock.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/elcr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/icu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/isa.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/isa.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/isa_dma.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/isa/nmi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_dummy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_genassym.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_ipc64.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_locore.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_proto.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_syscall.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_sysent.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_sysvec.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/syscalls.conf#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/syscalls.master#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/pci/pci_bus.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/pci/pci_cfgreg.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/autoconf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/bcopy_page.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/bcopyinout.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/bcopyinout_xscale.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/blockio.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/bootconfig.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/bus_space_asm_generic.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/busdma_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/copystr.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_arm10.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_arm7tdmi.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_arm8.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_arm9.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_armv4.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_ixp12x0.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_sa1.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_sa11x0.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/cpufunc_asm_xscale.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/db_disasm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/db_interface.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/db_trace.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/disassem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/dump_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/elf_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/elf_trampoline.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/exception.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/fiq.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/fiq_subr.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/fusu.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/gdb_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/genassym.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/identcpu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/in_cksum.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/in_cksum_arm.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/inckern.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/intr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/irq_dispatch.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/locore.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/mem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/nexus.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/nexus_io.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/nexus_io_asm.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/pmap.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/setcpsr.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/setstack.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/support.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/swtch.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/sys_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/trap.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/uio_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/undefined.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/vectors.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/vm_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_mci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_mcireg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pdcreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pio.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pio_rm9200.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pioreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_piovar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pmc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pmcreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_pmcvar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_rtc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_rtcreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_spi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_spireg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_ssc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_sscreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_st.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_streg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_twi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_twiio.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_twireg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91_usartreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91rm92reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/at91var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/files.at91#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/files.kb920x#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/hints.at91rm9200#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/hints.at91sam9261#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/if_ate.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/if_atereg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/kb920x_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/ohci_atmelarm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/std.at91#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/std.kb920x#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/uart_bus_at91usart.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/uart_cpu_at91rm9200usart.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/at91/uart_dev_at91usart.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/compile/.cvsignore#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/.cvsignore#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/AVILA#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/BWCT#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/BWCT.hints#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/EP80219#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/IQ31244#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/KB920X#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/KB920X.hints#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/SIMICS#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/conf/SKYEYE#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/_bus.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/_inttypes.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/_limits.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/_stdint.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/_types.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/armreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/asm.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/asmacros.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/atomic.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/blockio.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/bootconfig.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/bus.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/bus_dma.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/clock.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/cpu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/cpuconf.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/cpufunc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/db_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/disassem.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/elf.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/endian.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/exec.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/fiq.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/float.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/floatingpoint.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/fp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/frame.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/gdb_machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/ieee.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/ieeefp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/in_cksum.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/intr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/katelib.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/kdb.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/limits.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/machdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/md_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/memdev.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/metadata.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/mutex.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/param.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pcb.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pcpu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pmap.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pmc_mdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/proc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/profile.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/psl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/pte.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/ptrace.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/reloc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/resource.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/runq.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/setjmp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/sf_buf.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/sigframe.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/signal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/smp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/stdarg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/swi.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/sysarch.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/trap.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/ucontext.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/undefined.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/utrap.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/include/vmparam.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/assabet_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/files.sa11x0#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_dmacreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_gpioreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_io.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_io_asm.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_irq.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_irqhandler.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_ost.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_ostreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_ppcreg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/sa11x0_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/std.sa11x0#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/uart_bus_sa1110.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/uart_cpu_sa1110.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/uart_dev_sa1110.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/sa11x0/uart_dev_sa1110.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/ep80219_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/files.ep80219#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/files.i80219#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/files.i80321#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/files.iq31244#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_aau.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_dma.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_intr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_mcu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_pci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_timer.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321_wdog.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/i80321var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/iq31244_7seg.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/iq31244_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/iq80321.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/iq80321reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/iq80321var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/obio.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/obio_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/obiovar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/std.ep80219#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/std.i80219#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/std.i80321#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/std.iq31244#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/uart_bus_i80321.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/i80321/uart_cpu_i80321.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/avila_ata.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/avila_led.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/avila_machdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/files.avila#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/files.ixp425#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/if_npe.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/if_npereg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixdp425_pci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixdp425reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_a4x_io.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_a4x_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_iic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_intr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_mem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_npe.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_npereg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_npevar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_pci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_pci_asm.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_pci_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_qmgr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_qmgr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_space.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_timer.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425_wdog.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/ixp425var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/std.avila#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/std.ixp425#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/uart_bus_ixp425.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/ixp425/uart_cpu_ixp425.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/std.xscale#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/xscalereg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/xscale/xscalevar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0/linker.cfg#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0iic/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0iic/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0spi/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot0spi/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/board.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/boot2.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/boot2/kb920x_board.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/env_vars.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/env_vars.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/loader_prompt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/loader_prompt.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootiic/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/ee.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/ee.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/env_vars.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/env_vars.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/loader_prompt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/loader_prompt.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/bootspi/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/arm_init.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/at91rm9200.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/delay.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/eeprom.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/emac.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/emac.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/emac_init.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/getc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/lib.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/lib_AT91RM9200.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/mci_device.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/memcmp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/memcpy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/memset.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/p_string.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/printf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/putchar.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/reset.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/sd-card.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/sd-card.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/spi_flash.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/spi_flash.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/strcmp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/strcpy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/strcvt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/strlen.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/tag_list.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/tag_list.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/libat91/xmodem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/arm/at91/linker.cfg#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/bcache.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/boot.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/bootstrap.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/commands.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/console.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/dev_net.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/dev_net.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/devopen.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/help.common#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/interp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/interp_backslash.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/interp_forth.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/interp_parse.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/isapnp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/isapnp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load_elf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load_elf32.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load_elf32_obj.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load_elf64.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load_elf64_obj.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/load_elf_obj.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/loader.8#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/ls.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/merge_help.awk#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/misc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/module.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/newvers.sh#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/panic.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/pnp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/reloc_elf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/reloc_elf32.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/reloc_elf64.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/common/ufsread.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efi.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efi_nii.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efiapi.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/eficon.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efidebug.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efidef.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efidevp.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efierr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efifpswa.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efifs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efilib.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efinet.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efipart.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efiprot.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efipxebc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efiser.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/efistdarg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/i386/efibind.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/i386/pe.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/ia64/efibind.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/include/ia64/pe.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/delay.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/efi_console.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/efifs.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/efinet.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/errno.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/handles.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/libefi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/efi/libefi/time.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/arm/sysdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/arm/sysdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/dict.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/ficl.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/ficl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/fileaccess.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/float.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/i386/sysdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/i386/sysdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/ia64/sysdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/ia64/sysdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/loader.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/math64.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/math64.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/powerpc/sysdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/powerpc/sysdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/prefix.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/search.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/classes.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/ficlclass.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/ficllocal.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/fileaccess.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/forml.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/freebsd.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/ifbrack.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/jhlocal.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/marker.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/oo.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/prefix.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/softcore.awk#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/softcore.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/softwords/string.fr#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/sparc64/sysdep.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/sparc64/sysdep.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/stack.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/testmain.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/tools.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/unix.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/vm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ficl/words.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/beastie.4th#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/frames.4th#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/loader.4th#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/loader.4th.8#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/loader.conf#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/loader.conf.5#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/loader.rc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/pnp.4th#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/screen.4th#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/forth/support.4th#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot0/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot0/boot0.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot0/boot0ext.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot0ext/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot0sio/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/boot1.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/boot2.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/lib.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/sio.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/btx/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/btx/btx.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/btxldr/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/btxldr/btxldr.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/lib/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/lib/btxcsu.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/lib/btxsys.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/lib/btxv86.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/btx/lib/btxv86.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/cdboot/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/cdboot/cdboot.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/boot.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/crt.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/kgzldr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/lib.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/sio.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/kgzldr/start.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/amd64_tramp.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/biosacpi.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/bioscd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/biosdisk.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/biosmem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/biospci.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/biospnp.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/biossmap.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/bootinfo.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/bootinfo32.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/bootinfo64.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/comconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/devicename.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/elf32_freebsd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/elf64_freebsd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/i386_copy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/i386_module.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/libi386.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/nullconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/pread.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/pxe.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/pxe.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/pxetramp.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/smbios.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/time.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/libi386/vidconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/conf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/help.i386#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/loader.rc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/loader/version#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/mbr/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/mbr/mbr.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/pxeldr/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/pxeldr/pxeboot.8#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/pxeldr/pxeldr.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/autoload.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/bootinfo.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/copy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/devicename.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/exec.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/common/libia64.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/conf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/efimd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/ldscript.ia64#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/start.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/efi/version#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/acpi_stub.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/conf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/delay.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/efi_stub.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/exit.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/ldscript.ia64#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/libski.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/pal_stub.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/sal_stub.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/skiconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/skifs.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/skiload.cmd#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/skimd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/ssc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/start.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/time.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ia64/ski/version#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/common/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/common/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/devicename.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/elf_freebsd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/libofw.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_console.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_copy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_disk.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_memory.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_module.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_net.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_reboot.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/ofw_time.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/openfirm.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/openfirm.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/ofw/libofw/openfirm_mmu.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/boot.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/boot0.5.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/disk.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/ldscript#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/putssjis.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/selector.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/start.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/support.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0.5/syscons.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot0/boot0.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/README.serial.98#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/asm.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/asm.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/bios.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/boot.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/boot.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/boot2.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/dinode.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/disk.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/fs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/inode.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/io.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/probe_keyboard.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/quota.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/serial.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/serial_16550.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/serial_8251.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/start.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/sys.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/boot2/table.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/btx/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/btx/btx.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/btxldr/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/btxldr/btxldr.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/lib/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/lib/btxcsu.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/lib/btxsys.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/lib/btxv86.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/btx/lib/btxv86.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/cdboot/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/cdboot/cdboot.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/kgzldr/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/kgzldr/crt.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/bioscd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/biosdisk.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/biosmem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/biossmap.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/comconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/i386_module.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/time.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/libpc98/vidconsole.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/loader/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/loader/conf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/loader/help.pc98#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/pc98/loader/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/conf.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/help.ofw#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/ldscript.powerpc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/metadata.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/start.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/powerpc/loader/version#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/Makefile.inc#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/boot1/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/boot1/_start.s#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/boot1/boot1.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/help.sparc64#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/locore.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/main.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/metadata.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/sparc64/loader/version#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit_internal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit_kevents.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/bsm/audit_record.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_ccb.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_debug.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_periph.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_periph.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_queue.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_queue.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_sim.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_sim.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt_periph.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt_sim.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_all.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_all.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ch.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ch.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_da.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_da.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_dvcfg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_iu.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_low.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_low.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_low_pisa.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_low_pisa.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_message.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pass.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pass.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pt.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pt.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sa.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sa.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ses.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ses.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sg.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_targ_bh.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_target.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_targetio.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/00READ#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/README#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/TODO#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/cnode.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_fbsd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_io.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_kernel.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_namecache.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_namecache.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_opstats.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_pioctl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_psdev.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_psdev.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_subr.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_subr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_venus.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_venus.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vfsops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vfsops.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_misc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_proto.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_signal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_syscall.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_syscalls.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_sysent.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/freebsd32_util.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/syscalls.conf#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/freebsd32/syscalls.master#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_genassym.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_reg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_signal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_sysvec.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_util.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linprocfs/linprocfs.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linsysfs/linsysfs.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_emul.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_emul.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_file.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_getcwd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_ioctl.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_ioctl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_ipc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_ipc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_mib.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_mib.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_misc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_misc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_signal.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_signal.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_socket.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_socket.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_stats.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_sysctl.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_sysproto.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_time.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_uid16.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_util.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_util.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/cfg_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/hal_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/kern_ndis.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/kern_windrv.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/ndis_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/ntoskrnl_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/pe_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/resource_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_hal.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_ndis.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_ntoskrnl.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_pe.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/subr_usbd.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/usbd_var.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/winx32_wrap.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ndis/winx64_wrap.S#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/netbsd/dvcfg.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/netbsd/physio_proc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_kmem.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_kobj.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_kstat.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_misc.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_policy.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_string.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_vfs.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/kern/opensolaris_zone.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/machine/endian.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/rpc/xdr.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/acl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/byteorder.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/callb.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/cmn_err.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/cred.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/debug.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/dirent.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/dkio.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/kcondvar.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/kmem.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/kobj.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/kstat.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/lock.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/misc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/mntent.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/mnttab.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/mount.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/mutex.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/policy.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/proc.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/random.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/rwlock.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/sdt.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/string.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/sysmacros.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/systm.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/taskq.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/taskq_impl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/time.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/types.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/uio.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/varargs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/vfs.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/vnode.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/opensolaris/sys/zone.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/pecoff/imgact_pecoff.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/pecoff/imgact_pecoff.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/Makefile#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/imgact_svr4.c#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_acl.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_dirent.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_errno.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_exec.h#1 branch .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_fcntl.c#1 branch >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 27 17:38:46 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 73AE716A40B; Fri, 27 Apr 2007 17:38:46 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4869C16A404 for ; Fri, 27 Apr 2007 17:38:46 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 2398813C4C9 for ; Fri, 27 Apr 2007 17:38:46 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RHckDH042001 for ; Fri, 27 Apr 2007 17:38:46 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RHcjB1041998 for perforce@freebsd.org; Fri, 27 Apr 2007 17:38:45 GMT (envelope-from rpaulo@FreeBSD.org) Date: Fri, 27 Apr 2007 17:38:45 GMT Message-Id: <200704271738.l3RHcjB1041998@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118887 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 17:38:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=118887 Change 118887 by rpaulo@rpaulo_epsilon on 2007/04/27 17:37:58 Add new MSRs found on Core Duo processors. Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/i386/include/specialreg.h#2 edit Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/i386/include/specialreg.h#2 (text+ko) ==== @@ -168,6 +168,15 @@ #define MSR_APICBASE 0x01b #define MSR_EBL_CR_POWERON 0x02a #define MSR_TEST_CTL 0x033 +#define MSR_FEATURE_CONTROL 0x03a +#define MSR_LASTBRANCHR0FROMIP 0x040 /* Last Branch Record N from IP */ +#define MSR_LASTBRANCHR1FROMIP 0x041 +#define MSR_LASTBRANCHR2FROMIP 0x042 +#define MSR_LASTBRANCHR3FROMIP 0x043 +#define MSR_LASTBRANCHR0TOIP 0x060 /* Last Branch Record N to IP */ +#define MSR_LASTBRANCHR1TOIP 0x061 +#define MSR_LASTBRANCHR2TOIP 0x062 +#define MSR_LASTBRANCHR3TOIP 0x063 #define MSR_BIOS_UPDT_TRIG 0x079 #define MSR_BBL_CR_D0 0x088 #define MSR_BBL_CR_D1 0x089 @@ -175,6 +184,9 @@ #define MSR_BIOS_SIGN 0x08b #define MSR_PERFCTR0 0x0c1 #define MSR_PERFCTR1 0x0c2 +#define MSR_FSB_FREQ 0x0cd +#define MSR_MPERF 0x0e7 +#define MSR_APERF 0x0e8 #define MSR_MTRRcap 0x0fe #define MSR_BBL_CR_ADDR 0x116 #define MSR_BBL_CR_DECC 0x118 @@ -190,10 +202,14 @@ #define MSR_MCG_CTL 0x17b #define MSR_EVNTSEL0 0x186 #define MSR_EVNTSEL1 0x187 +#define MSR_PERF_STAT 0x198 +#define MSR_PERF_CTL 0x199 #define MSR_THERM_CONTROL 0x19a #define MSR_THERM_INTERRUPT 0x19b #define MSR_THERM_STATUS 0x19c +#define MSR_THERM2_CONTROL 0x19d #define MSR_IA32_MISC_ENABLE 0x1a0 +#define MSR_LASTBRANCH_TOS 0x1c9 #define MSR_DEBUGCTLMSR 0x1d9 #define MSR_LASTBRANCHFROMIP 0x1db #define MSR_LASTBRANCHTOIP 0x1dc @@ -206,6 +222,15 @@ #define MSR_MTRR4kBase 0x268 #define MSR_PAT 0x277 #define MSR_MTRRdefType 0x2ff +#define MSR_PERF_FIXED_CTR0 0x309 +#define MSR_PERF_FIXED_CTR1 0x30a +#define MSR_PERF_FIXED_CTR2 0x30b +#define MSR_PERF_CAPS 0x345 +#define MSR_PERF_FIXED_CONTROL 0x38d +#define MSR_PERF_GLOBAL_STATUS 0x38e +#define MSR_PERF_GLOBAL_CONTROL 0x38f +#define MSR_PERF_GLOBAL_OVF_CTL 0x390 +#define MSR_PEBS_ENABLE 0x3f1 #define MSR_MC0_CTL 0x400 #define MSR_MC0_STATUS 0x401 #define MSR_MC0_ADDR 0x402 From owner-p4-projects@FreeBSD.ORG Fri Apr 27 19:49:27 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E3E116A407; Fri, 27 Apr 2007 19:49:27 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 37AC016A400 for ; Fri, 27 Apr 2007 19:49:27 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 267CE13C468 for ; Fri, 27 Apr 2007 19:49:27 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RJnRnW065223 for ; Fri, 27 Apr 2007 19:49:27 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RJnQl4065220 for perforce@freebsd.org; Fri, 27 Apr 2007 19:49:26 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 19:49:26 GMT Message-Id: <200704271949.l3RJnQl4065220@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118888 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 19:49:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=118888 Change 118888 by rdivacky@rdivacky_witten on 2007/04/27 19:49:22 Working WAKEUP_OP operation: o I moved the futex asm stuff into $ARCH diretory to linux[32]_support.s o I changed the asm code to copyout oldval correctly Glitches: amd64 is not implemented, i386 version manually includes assym.s to let the module build succeed and it needs fixing (to be able to really include assym.s) Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/support.S#2 edit .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_support.s#1 add .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#2 edit .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/linux/linux_support.s#1 add .. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/linux/Makefile#2 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/support.S#2 (text+ko) ==== ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#2 (text+ko) ==== @@ -90,13 +90,13 @@ static int futex_sleep(struct futex *, struct thread *, unsigned long); static int futex_wake(struct futex *, int, struct futex *, int); static int futex_atomic_op(struct thread *td, int encoded_op, caddr_t uaddr); -static int futex_orl(int oparg, caddr_t uaddr, int *oldval); -static int futex_andl(int oparg, caddr_t uaddr, int *oldval); -static int futex_xorl(int oparg, caddr_t uaddr, int *oldval); /* support.s */ int futex_xchgl(int oparg, caddr_t uaddr, int *oldval); int futex_addl(int oparg, caddr_t uaddr, int *oldval); +int futex_orl(int oparg, caddr_t uaddr, int *oldval); +int futex_andl(int oparg, caddr_t uaddr, int *oldval); +int futex_xorl(int oparg, caddr_t uaddr, int *oldval); int linux_sys_futex(struct thread *td, struct linux_sys_futex_args *args) @@ -509,42 +509,3 @@ return (ret); } - -static int -futex_orl(int oparg, caddr_t uaddr, int *oldval) -{ - uint32_t ua, ua_old; - - for (;;) { - ua = ua_old = fuword32(uaddr); - ua |= oparg; - if (casuword32((void *)uaddr, ua_old, ua) == ua_old) - return ua_old; - } -} - -static int -futex_andl(int oparg, caddr_t uaddr, int *oldval) -{ - uint32_t ua, ua_old; - - for (;;) { - ua = ua_old = fuword32(uaddr); - ua &= oparg; - if (casuword32((void *)uaddr, ua_old, ua) == ua_old) - return ua_old; - } -} - -static int -futex_xorl(int oparg, caddr_t uaddr, int *oldval) -{ - uint32_t ua, ua_old; - - for (;;) { - ua = ua_old = fuword32(uaddr); - ua ^= oparg; - if (casuword32((void *)uaddr, ua_old, ua) == ua_old) - return ua_old; - } -} ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/linux/Makefile#2 (text+ko) ==== @@ -15,7 +15,7 @@ linux${SFX}_sysvec.c linux_uid16.c linux_util.c linux_time.c \ opt_inet6.h opt_mac.h opt_compat.h opt_posix.h vnode_if.h \ device_if.h bus_if.h -OBJS= linux${SFX}_locore.o +OBJS= linux${SFX}_locore.o linux${SFX}_support.o .if ${MACHINE_ARCH} == "i386" SRCS+= linux_ptrace.c imgact_linux.c opt_cpu.h @@ -41,6 +41,10 @@ ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ ${.IMPSRC} -o ${.TARGET} +linux${SFX}_support.o: linux${SFX}_support.s + ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ + ${.IMPSRC} -o ${.TARGET} + linux${SFX}_genassym.o: linux${SFX}_genassym.c linux.h @ machine ${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC} From owner-p4-projects@FreeBSD.ORG Fri Apr 27 19:59:40 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 887C416A40A; Fri, 27 Apr 2007 19:59:40 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5B77916A408 for ; Fri, 27 Apr 2007 19:59:40 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4677A13C44C for ; Fri, 27 Apr 2007 19:59:40 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RJxeBq069511 for ; Fri, 27 Apr 2007 19:59:40 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RJxenF069504 for perforce@freebsd.org; Fri, 27 Apr 2007 19:59:40 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 19:59:40 GMT Message-Id: <200704271959.l3RJxenF069504@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118889 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 19:59:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=118889 Change 118889 by rdivacky@rdivacky_witten on 2007/04/27 19:59:31 Fix the module building. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/linux/linux_support.s#2 edit .. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/linux/Makefile#3 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/linux/linux_support.s#2 (text+ko) ==== @@ -32,116 +32,7 @@ #include "linux_assym.h" /* system definitions */ #include /* miscellaneous asm macros */ -//#include "assym.s" - -#define BC32SEL 0x68 -#define BI_ENDCOMMON 0xc -#define BI_ESYMTAB 0x44 -#define BI_KERNELNAME 0x4 -#define BI_KERNEND 0x48 -#define BI_NFS_DISKLESS 0x8 -#define BI_SIZE 0x30 -#define BI_SYMTAB 0x40 -#define BI_VERSION 0x0 -#define BOOTINFO_SIZE 0x54 -#define EFAULT 0xe -#define ENAMETOOLONG 0x3f -#define ENOENT 0x2 -#define GPROC0_SEL 0x9 -#define KCSEL 0x20 -#define KDSEL 0x28 -#define KERNBASE 0xc0000000 -#define KERNLOAD 0x400000 -#define KPSEL 0x8 -#define KSTACK_PAGES 0x2 -#define MAXCOMLEN 0x13 -#define MAXPATHLEN 0x400 -#define MCLBYTES 0x800 -#define MD_LDT 0x0 -#define MTX_LOCK 0x10 -#define MTX_RECURSECNT 0x14 -#define NFSDISKLESS_SIZE 0x220 -#define NPDEPG 0x400 -#define NPDEPTD 0x400 -#define NPGPTD 0x1 -#define NPTEPG 0x400 -#define PAGE_MASK 0xfff -#define PAGE_SHIFT 0xc -#define PAGE_SIZE 0x1000 -#define PCB_CR3 0x0 -#define PCB_DBREGS 0x2 -#define PCB_DR0 0x1c -#define PCB_DR1 0x20 -#define PCB_DR2 0x24 -#define PCB_DR3 0x28 -#define PCB_DR6 0x2c -#define PCB_DR7 0x30 -#define PCB_EBP 0xc -#define PCB_EBX 0x14 -#define PCB_EDI 0x4 -#define PCB_EIP 0x18 -#define PCB_ESI 0x8 -#define PCB_ESP 0x10 -#define PCB_EXT 0x25c -#define PCB_FLAGS 0x240 -#define PCB_FSD 0x24c -#define PCB_GS 0x248 -#define PCB_ONFAULT 0x244 -#define PCB_PSL 0x260 -#define PCB_SAVEFPU_SIZE 0x200 -#define PCB_SAVEFPU 0x40 -#define PCB_SIZE 0x270 -#define PCB_VM86CALL 0x10 -#define PCB_VM86 0x264 -#define PC_COMMON_TSSD 0xa4 -#define PC_COMMON_TSS 0x3c -#define PC_CPUID 0x20 -#define PC_CURPCB 0x10 -#define PC_CURPMAP 0x38 -#define PC_CURRENTLDT 0xb4 -#define PC_CURTHREAD 0x0 -#define PC_CURTID 0x18c -#define PC_FPCURTHREAD 0x8 -#define PC_FSGS_GDT 0xb0 -#define PC_IDLETHREAD 0x4 -#define PC_PRIVATE_TSS 0xc0 -#define PC_PRVSPACE 0x34 -#define PC_SIZEOF 0x190 -#define PC_TSS_GDT 0xac -#define PDESHIFT 0x2 -#define PDESIZE 0x4 -#define PDRMASK 0x3fffff -#define PDRSHIFT 0x16 -#define PM_ACTIVE 0x24 -#define PTESHIFT 0x2 -#define PTESIZE 0x4 -#define P_MD 0x1f4 -#define P_SFLAG 0x34 -#define P_VMSPACE 0xb0 -#define SIGF_HANDLER 0x10 -#define SIGF_UC 0x20 -#define TDF_ASTPENDING 0x800 -#define TDF_NEEDRESCHED 0x10000 -#define TD_FLAGS 0x64 -#define TD_MD 0x17c -#define TD_PCB 0x130 -#define TD_PROC 0x0 -#define TD_TID 0x30 -#define TF_CS 0x38 -#define TF_EFLAGS 0x3c -#define TF_EIP 0x34 -#define TF_ERR 0x30 -#define TF_TRAPNO 0x2c -#define TSS_ESP0 0x4 -#define UC_EFLAGS 0x54 -#define UC_GS 0x14 -#define USRSTACK 0xbfc00000 -#define VM86_FRAMESIZE 0x58 -#define VM_MAXUSER_ADDRESS 0xbfc00000 -#define VM_PMAP 0x8c -#define V_INTR 0xc -#define V_SYSCALL 0x8 -#define V_TRAP 0x4 +#include "assym.s" /*****************************************************************************/ /* linux_futex support */ ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/linux/Makefile#3 (text+ko) ==== @@ -14,7 +14,11 @@ linux_socket.c linux_stats.c linux_sysctl.c linux${SFX}_sysent.c \ linux${SFX}_sysvec.c linux_uid16.c linux_util.c linux_time.c \ opt_inet6.h opt_mac.h opt_compat.h opt_posix.h vnode_if.h \ - device_if.h bus_if.h + device_if.h bus_if.h assym.s + +# XXX: for assym.s +SRCS+= opt_kstack_pages.h opt_nfs.h opt_apic.h opt_compat.h + OBJS= linux${SFX}_locore.o linux${SFX}_support.o .if ${MACHINE_ARCH} == "i386" From owner-p4-projects@FreeBSD.ORG Fri Apr 27 20:15:00 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7CA9116A407; Fri, 27 Apr 2007 20:15:00 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 44C0016A403 for ; Fri, 27 Apr 2007 20:15:00 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3410313C44C for ; Fri, 27 Apr 2007 20:15:00 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RKF0D7074178 for ; Fri, 27 Apr 2007 20:15:00 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RKF0af074171 for perforce@freebsd.org; Fri, 27 Apr 2007 20:15:00 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 20:15:00 GMT Message-Id: <200704272015.l3RKF0af074171@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118890 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 20:15:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=118890 Change 118890 by rdivacky@rdivacky_witten on 2007/04/27 20:14:11 Remove forgotten futex support in support.[sS] in archs. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/support.S#3 edit .. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/support.s#2 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/support.S#3 (text+ko) ==== @@ -671,49 +671,6 @@ incl %eax ret -/*****************************************************************************/ -/* linux_futex support */ -/*****************************************************************************/ - -futex_fault: - movq $0,PCB_ONFAULT(%rcx) - movq $-EFAULT,%rax - ret - -ENTRY(futex_xchgl) - movq PCPU(CURPCB),%rcx - movq $futex_fault,PCB_ONFAULT(%rcx) - - movq $VM_MAXUSER_ADDRESS-4,%rax - cmpq %rax,%rsi - ja futex_fault - -#ifdef SMP - lock -#endif - xchgl %edi,(%rsi) - movl %edi,(%rdx) - xorl %eax,%eax - movq %rax,PCB_ONFAULT(%rcx) - ret - -ENTRY(futex_addl) - movq PCPU(CURPCB),%rcx - movq $futex_fault,PCB_ONFAULT(%rcx) - - movq $VM_MAXUSER_ADDRESS-4,%rax - cmpq %rax,%rsi - ja futex_fault - -#ifdef SMP - lock -#endif - xaddl %edi,(%rsi) - movl %edi,(%rdx) - xorl %eax,%eax - movq %rax,PCB_ONFAULT(%rcx) - ret - /* * Support for BB-profiling (gcc -a). The kernbb program will extract * the data from the kernel. ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/support.s#2 (text+ko) ==== @@ -1513,51 +1513,6 @@ incl %eax ret -/*****************************************************************************/ -/* linux_futex support */ -/*****************************************************************************/ - -futex_fault: - movl $0,PCB_ONFAULT(%ecx) - movl $-EFAULT,%eax - ret - -ENTRY(futex_xchgl) - movl PCPU(CURPCB),%ecx - movl $futex_fault,PCB_ONFAULT(%ecx) - movl 4(%esp),%eax - movl 8(%esp),%edx - cmpl $VM_MAXUSER_ADDRESS-4,%edx - ja futex_fault - -#ifdef SMP - lock -#endif - xchgl %eax,(%edx) - movl 12(%esp),%edx - movl %eax,(%edx) - xorl %eax,%eax - movl $0,PCB_ONFAULT(%ecx) - ret - -ENTRY(futex_addl) - movl PCPU(CURPCB),%ecx - movl $futex_fault,PCB_ONFAULT(%ecx) - movl 4(%esp),%eax - movl 8(%esp),%edx - cmpl $VM_MAXUSER_ADDRESS-4,%edx - ja futex_fault - -#ifdef SMP - lock -#endif - xaddl %eax,(%edx) - movl 12(%esp),%edx - movl %eax,(%edx) - xorl %eax,%eax - movl $0,PCB_ONFAULT(%ecx) - ret - /* * Support for BB-profiling (gcc -a). The kernbb program will extract * the data from the kernel. From owner-p4-projects@FreeBSD.ORG Fri Apr 27 20:28:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5D55116A401; Fri, 27 Apr 2007 20:28:20 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1D39016A403 for ; Fri, 27 Apr 2007 20:28:20 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0C78013C46C for ; Fri, 27 Apr 2007 20:28:20 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RKSJvF076098 for ; Fri, 27 Apr 2007 20:28:19 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RKSJJ4076095 for perforce@freebsd.org; Fri, 27 Apr 2007 20:28:19 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 20:28:19 GMT Message-Id: <200704272028.l3RKSJJ4076095@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118893 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 20:28:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=118893 Change 118893 by rdivacky@rdivacky_witten on 2007/04/27 20:27:27 Some comments to clear the situation. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#3 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#3 (text+ko) ==== @@ -401,9 +401,12 @@ TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); FUTEX_UNLOCK; + /* if we got woken up in futex_wake */ if ((ret == 0) && (wp->wp_new_futex != NULL)) { + /* suspend us on the new futex */ ret = futex_sleep(wp->wp_new_futex, td, timeout); - futex_put(wp->wp_new_futex); /* futex_get called in wakeup */ + /* and release the old one */ + futex_put(wp->wp_new_futex); } free(wp, M_LINUX); From owner-p4-projects@FreeBSD.ORG Fri Apr 27 20:31:45 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3C6CC16A406; Fri, 27 Apr 2007 20:31:45 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 124E316A402 for ; Fri, 27 Apr 2007 20:31:45 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F3BDE13C45E for ; Fri, 27 Apr 2007 20:31:44 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RKViWp076860 for ; Fri, 27 Apr 2007 20:31:44 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RKVgEN076852 for perforce@freebsd.org; Fri, 27 Apr 2007 20:31:42 GMT (envelope-from rpaulo@FreeBSD.org) Date: Fri, 27 Apr 2007 20:31:42 GMT Message-Id: <200704272031.l3RKVgEN076852@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 118894 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 20:31:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=118894 Change 118894 by rpaulo@rpaulo_epsilon on 2007/04/27 20:30:43 IFC Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/local_apic.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/pmap.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/amd64/include/vmparam.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/bsm/audit.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/bsm/audit_internal.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/bsm/audit_kevents.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/bsm/audit_record.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/cam/cam_periph.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/cam/cam_periph.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/cam/cam_xpt.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/cam/scsi/scsi_sa.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/compat/linprocfs/linprocfs.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/conf/files#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/arc.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/acpi_support/acpi_ibm.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/acpica/acpi.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/aic7xxx/aic79xx.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/aic7xxx/aic79xx.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/aic7xxx/aic7xxx.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/aic7xxx/aic7xxx_inline.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/ata/ata-disk.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/ath/if_ath.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/cxgb/cxgb_sge.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/firewire/firewire.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/firewire/fwdev.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/led/led.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/led/led.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/msk/if_msk.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/mxge/if_mxge.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/pci/pci.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/pci/pcireg.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/sound/pci/envy24.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/sound/pci/envy24ht.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/sound/pci/hda/hdac.c#2 edit .. //depot/projects/soc2007/rpaulo-macbook/dev/usb/if_ural.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/devfs/devfs_devs.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/devfs/devfs_vnops.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/procfs/procfs_map.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/pseudofs/pseudofs_vncache.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/geom/part/g_part.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/geom/uzip/g_uzip.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/i386/local_apic.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/i386/pmap.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/i386/vm_machdep.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/include/vmparam.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/ia64/include/vmparam.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_descrip.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_linker.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_malloc.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_time.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_uuid.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/sched_ule.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/uipc_syscalls.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/vfs_bio.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/vfs_mount.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/modules/zfs/Makefile#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netgraph/ng_l2tp.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netgraph/ng_ppp.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_indata.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_indata.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_input.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_output.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_pcb.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_pcb.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_structs.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_uio.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_usrreq.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctputil.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctputil.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_input.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_output.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_syncache.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_var.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet6/in6_pcb.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet6/route6.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/nfsclient/nfs_bio.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/nfsclient/nfs_lock.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/nfsclient/nfs_vnops.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/nfsserver/nfs_syscalls.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/pci/if_vr.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/pci/if_vrreg.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/pci/intpm.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/powerpc/powerpc/nexus.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/audit/audit_syscalls.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_audit.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_framework.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_inet.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_net.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_pipe.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_policy.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_process.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_socket.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_system.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac/mac_vfs.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_biba/mac_biba.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_bsdextended/mac_bsdextended.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_ifoff/mac_ifoff.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_lomac/mac_lomac.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_mls/mac_mls.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_partition/mac_partition.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_portacl/mac_portacl.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_seeotheruids/mac_seeotheruids.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_stub/mac_stub.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/security/mac_test/mac_test.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sparc64/include/vmparam.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sun4v/include/vmparam.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/ioctl_compat.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/mount.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/priv.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/proc.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/socket.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/vm/swap_pager.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/vm/vm_map.c#2 integrate Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/local_apic.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.37 2007/03/20 21:53:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.38 2007/04/25 19:58:41 ariff Exp $"); #include "opt_hwpmc_hooks.h" @@ -326,6 +326,29 @@ /* XXX: Error and thermal LVTs */ + if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. This feature renders + * the local APIC timer dead, so we disable it by reading + * the Interrupt Pending Message register and clearing both + * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). + * + * Reference: + * "BIOS and Kernel Developer's Guide for AMD NPT + * Family 0Fh Processors" + * #32559 revision 3.00 + */ + if ((cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + uint64_t msr; + + msr = rdmsr(0xc0010055); + if (msr & 0x18000000) + wrmsr(0xc0010055, msr & ~0x18000000ULL); + } + } + intr_restore(eflags); } ==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/pmap.c#2 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.582 2007/04/13 16:07:29 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $"); /* * Manages physical address maps. @@ -209,7 +209,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, - vm_offset_t sva, pd_entry_t ptepde); + vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -221,8 +221,9 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); -static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); -static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t* free); +static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t, vm_page_t *); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); @@ -1065,24 +1066,36 @@ /*************************************************** * Page table page management routines..... ***************************************************/ +static PMAP_INLINE void +pmap_free_zero_pages(vm_page_t free) +{ + vm_page_t m; + while (free != NULL) { + m = free; + free = m->right; + vm_page_free_zero(m); + } +} + /* * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t *free) { --m->wire_count; if (m->wire_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); + return _pmap_unwire_pte_hold(pmap, va, m, free); else return 0; } static int -_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t *free) { vm_offset_t pteva; @@ -1114,14 +1127,14 @@ vm_page_t pdpg; pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdpg); + pmap_unwire_pte_hold(pmap, va, pdpg, free); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdppg); + pmap_unwire_pte_hold(pmap, va, pdppg, free); } /* @@ -1130,7 +1143,13 @@ */ pmap_invalidate_page(pmap, pteva); - vm_page_free_zero(m); + /* + * Put page on a list so that it is released after + * *ALL* TLB shootdown is done + */ + m->right = *free; + *free = m; + atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1140,7 +1159,7 @@ * conditionally free the page, and manage the hold/wire counts. */ static int -pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde) +pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, vm_page_t *free) { vm_page_t mpte; @@ -1148,7 +1167,7 @@ return 0; KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); - return pmap_unwire_pte_hold(pmap, va, mpte); + return pmap_unwire_pte_hold(pmap, va, mpte, free); } void @@ -1366,7 +1385,7 @@ { vm_pindex_t ptepindex; pd_entry_t *pd; - vm_page_t m; + vm_page_t m, free; KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, @@ -1390,8 +1409,10 @@ *pd = 0; pd = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); + free = NULL; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va), &free); pmap_invalidate_all(kernel_pmap); + pmap_free_zero_pages(free); } /* @@ -1609,7 +1630,7 @@ pt_entry_t *pte, tpte; pv_entry_t next_pv, pv; vm_offset_t va; - vm_page_t m; + vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { if (m->hold_count || m->busy) @@ -1635,12 +1656,14 @@ va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, va, ptepde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); free_pv_entry(pmap, pv); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); @@ -1833,7 +1856,8 @@ * pmap_remove_pte: do the things to unmap a page in a process */ static int -pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, pd_entry_t ptepde) +pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, + pd_entry_t ptepde, vm_page_t *free) { pt_entry_t oldpte; vm_page_t m; @@ -1861,7 +1885,7 @@ vm_page_flag_set(m, PG_REFERENCED); pmap_remove_entry(pmap, m, va); } - return (pmap_unuse_pt(pmap, va, ptepde)); + return (pmap_unuse_pt(pmap, va, ptepde, free)); } /* @@ -1871,6 +1895,7 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { pt_entry_t *pte; + vm_page_t free = NULL; PMAP_LOCK_ASSERT(pmap, MA_OWNED); if ((*pde & PG_V) == 0) @@ -1878,8 +1903,9 @@ pte = pmap_pde_to_pte(pde, va); if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, *pde); + pmap_remove_pte(pmap, pte, va, *pde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); } /* @@ -1896,6 +1922,7 @@ pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; + vm_page_t free = NULL; int anyvalid; /* @@ -1959,7 +1986,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, sva, *pdpe); + pmap_unuse_pt(pmap, sva, *pdpe, &free); anyvalid = 1; continue; } @@ -1983,14 +2010,16 @@ */ if ((*pte & PG_G) == 0) anyvalid = 1; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) + if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free)) break; } } out: - vm_page_unlock_queues(); - if (anyvalid) + if (anyvalid) { pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); + } + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2014,6 +2043,7 @@ pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; + vm_page_t free; #if defined(PMAP_DIAGNOSTIC) /* @@ -2045,10 +2075,12 @@ pv->pv_va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); pmap_invalidate_page(pmap, pv->pv_va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pmap, pv->pv_va, ptepde); free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } @@ -2161,9 +2193,9 @@ } } } - vm_page_unlock_queues(); if (anychanged) pmap_invalidate_all(pmap); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2413,6 +2445,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { + vm_page_t free; pt_entry_t *pte; vm_paddr_t pa; @@ -2471,7 +2504,7 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + mpte->wire_count--; mpte = NULL; } return (mpte); @@ -2483,7 +2516,11 @@ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + free = NULL; + if (pmap_unwire_pte_hold(pmap, va, mpte, &free)) { + pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); + } mpte = NULL; } return (mpte); @@ -2657,6 +2694,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { + vm_page_t free; vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; @@ -2716,7 +2754,7 @@ dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; } else - pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); + dstmpde->wire_count--; continue; } @@ -2753,9 +2791,15 @@ *dst_pte = ptetemp & ~(PG_W | PG_M | PG_A); dst_pmap->pm_stats.resident_count++; - } else - pmap_unwire_pte_hold(dst_pmap, addr, - dstmpte); + } else { + free = NULL; + if (pmap_unwire_pte_hold(dst_pmap, + addr, dstmpte, &free)) { + pmap_invalidate_page(dst_pmap, + addr); + pmap_free_zero_pages(free); + } + } if (dstmpte->wire_count >= srcmpte->wire_count) break; } @@ -2866,7 +2910,7 @@ pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; - vm_page_t m; + vm_page_t m, free = NULL; pv_entry_t pv; struct pv_chunk *pc, *npc; int field, idx; @@ -2939,7 +2983,7 @@ if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); pmap_unuse_pt(pmap, pv->pv_va, - *vtopde(pv->pv_va)); + *vtopde(pv->pv_va), &free); } } if (allfree) { @@ -2952,8 +2996,9 @@ vm_page_free(m); } } + pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); vm_page_unlock_queues(); - pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); } ==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/vm_machdep.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -457,6 +457,10 @@ static void cpu_reset_real() { + struct region_descriptor null_idt; + int b; + + disable_intr(); /* * Attempt to do a CPU reset via the keyboard controller, @@ -465,14 +469,44 @@ */ outb(IO_KBD + 4, 0xFE); DELAY(500000); /* wait 0.5 sec to see if that did it */ - printf("Keyboard reset did not work, attempting CPU shutdown\n"); + + /* + * Attempt to force a reset via the Reset Control register at + * I/O port 0xcf9. Bit 2 forces a system reset when it is + * written as 1. Bit 1 selects the type of reset to attempt: + * 0 selects a "soft" reset, and 1 selects a "hard" reset. We + * try to do a "soft" reset first, and then a "hard" reset. + */ + outb(0xcf9, 0x2); + outb(0xcf9, 0x6); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + + /* + * Attempt to force a reset via the Fast A20 and Init register + * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. + * Bit 0 asserts INIT# when set to 1. We are careful to only + * preserve bit 1 while setting bit 0. We also must clear bit + * 0 before setting it if it isn't already clear. + */ + b = inb(0x92); + if (b != 0xff) { + if ((b & 0x1) != 0) + outb(0x92, b & 0xfe); + outb(0x92, b | 0x1); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + } + + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ - /* Force a shutdown by unmapping entire address space. */ - bzero((caddr_t)PML4map, PAGE_SIZE); + /* Wipe the IDT. */ + null_idt.rd_limit = 0; + null_idt.rd_base = 0; + lidt(&null_idt); /* "good night, sweet prince .... " */ - invltlb(); + breakpoint(); + /* NOTREACHED */ while(1); } ==== //depot/projects/soc2007/rpaulo-macbook/amd64/include/vmparam.h#2 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.45 2004/10/27 17:21:15 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.46 2007/04/21 01:14:47 sepotvin Exp $ */ @@ -122,7 +122,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/soc2007/rpaulo-macbook/bsm/audit.h#2 (text) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#34 $ - * $FreeBSD: src/sys/bsm/audit.h,v 1.6 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#36 + * $FreeBSD: src/sys/bsm/audit.h,v 1.8 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _BSM_AUDIT_H ==== //depot/projects/soc2007/rpaulo-macbook/bsm/audit_internal.h#2 (text) ==== @@ -34,8 +34,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#14 $ - * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.5 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#16 + * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.7 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _AUDIT_INTERNAL_H ==== //depot/projects/soc2007/rpaulo-macbook/bsm/audit_kevents.h#2 (text) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#29 $ - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.9 2006/09/25 12:22:07 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#32 + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.11 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _BSM_AUDIT_KEVENTS_H_ @@ -475,6 +475,28 @@ #define AUE_READDIR 43118 /* Linux. */ #define AUE_IOPL 43119 /* Linux. */ #define AUE_VM86 43120 /* Linux. */ +#define AUE_MAC_GET_PROC 43121 /* FreeBSD. */ +#define AUE_MAC_SET_PROC 43122 /* FreeBSD. */ +#define AUE_MAC_GET_FD 43123 /* FreeBSD. */ +#define AUE_MAC_GET_FILE 43124 /* FreeBSD. */ +#define AUE_MAC_SET_FD 43125 /* FreeBSD. */ +#define AUE_MAC_SET_FILE 43126 /* FreeBSD. */ +#define AUE_MAC_SYSCALL 43127 /* FreeBSD. */ +#define AUE_MAC_GET_PID 43128 /* FreeBSD. */ +#define AUE_MAC_GET_LINK 43129 /* FreeBSD. */ +#define AUE_MAC_SET_LINK 43130 /* FreeBSD. */ +#define AUE_MAC_EXECVE 43131 /* FreeBSD. */ +#define AUE_GETPATH_FROMFD 43132 /* FreeBSD. */ +#define AUE_GETPATH_FROMADDR 43133 /* FreeBSD. */ +#define AUE_MQ_OPEN 43134 /* FreeBSD. */ +#define AUE_MQ_SETATTR 43135 /* FreeBSD. */ +#define AUE_MQ_TIMEDRECEIVE 43136 /* FreeBSD. */ +#define AUE_MQ_TIMEDSEND 43137 /* FreeBSD. */ +#define AUE_MQ_NOTIFY 43138 /* FreeBSD. */ +#define AUE_MQ_UNLINK 43139 /* FreeBSD. */ +#define AUE_LISTEN 43140 /* FreeBSD/Darwin/Linux. */ +#define AUE_MLOCKALL 43141 /* FreeBSD. */ +#define AUE_MUNLOCKALL 43142 /* FreeBSD. */ /* * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the @@ -572,16 +594,13 @@ #define AUE_GETSOCKOPT AUE_NULL #define AUE_GTSOCKOPT AUE_GETSOCKOPT /* XXX: Typo in Darwin. */ #define AUE_ISSETUGID AUE_NULL -#define AUE_LISTEN AUE_NULL #define AUE_LSTATV AUE_NULL #define AUE_MADVISE AUE_NULL #define AUE_MINCORE AUE_NULL #define AUE_MKCOMPLEX AUE_NULL -#define AUE_MLOCKALL AUE_NULL #define AUE_MODWATCH AUE_NULL #define AUE_MSGCL AUE_NULL #define AUE_MSYNC AUE_NULL -#define AUE_MUNLOCKALL AUE_NULL #define AUE_PREAD AUE_NULL #define AUE_PWRITE AUE_NULL #define AUE_PREADV AUE_NULL ==== //depot/projects/soc2007/rpaulo-macbook/bsm/audit_record.h#2 (text) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#21 $ - * $FreeBSD: src/sys/bsm/audit_record.h,v 1.6 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#24 + * $FreeBSD: src/sys/bsm/audit_record.h,v 1.9 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _BSM_AUDIT_RECORD_H_ @@ -86,6 +86,7 @@ /* XXXRW: Additional X11 tokens not defined? */ #define AUT_CMD 0x51 #define AUT_EXIT 0x52 +#define AUT_ZONENAME 0x60 /* XXXRW: OpenBSM AUT_HOST 0x70? */ #define AUT_ARG64 0x71 #define AUT_RETURN64 0x72 @@ -247,6 +248,8 @@ token_t *au_to_header32_tm(int rec_size, au_event_t e_type, au_emod_t e_mod, struct timeval tm); +token_t *au_to_header64_tm(int rec_size, au_event_t e_type, au_emod_t e_mod, + struct timeval tm); #if !defined(KERNEL) && !defined(_KERNEL) token_t *au_to_header(int rec_size, au_event_t e_type, au_emod_t e_mod); token_t *au_to_header32(int rec_size, au_event_t e_type, au_emod_t e_mod); @@ -329,6 +332,7 @@ token_t *au_to_text(char *text); token_t *au_to_kevent(struct kevent *kev); token_t *au_to_trailer(int rec_size); +token_t *au_to_zonename(char *zonename); __END_DECLS ==== //depot/projects/soc2007/rpaulo-macbook/cam/cam_periph.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.66 2007/04/16 19:42:23 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.68 2007/04/19 23:34:51 scottl Exp $"); #include #include @@ -131,7 +131,6 @@ lun_id_t lun_id; cam_status status; u_int init_level; - int s; init_level = 0; /* @@ -200,7 +199,6 @@ if (status != CAM_REQ_CMP) goto failure; - s = splsoftcam(); cur_periph = TAILQ_FIRST(&(*p_drv)->units); while (cur_periph != NULL && cur_periph->unit_number < periph->unit_number) @@ -213,8 +211,6 @@ (*p_drv)->generation++; } - splx(s); - init_level++; status = periph_ctor(periph, arg); @@ -228,9 +224,7 @@ /* Initialized successfully */ break; case 3: - s = splsoftcam(); TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links); - splx(s); xpt_remove_periph(periph); /* FALLTHROUGH */ case 2: @@ -258,24 +252,25 @@ { struct periph_driver **p_drv; struct cam_periph *periph; - int s; + xpt_lock_buses(); for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) { if (name != NULL && (strcmp((*p_drv)->driver_name, name) != 0)) continue; - s = splsoftcam(); TAILQ_FOREACH(periph, &(*p_drv)->units, unit_links) { if (xpt_path_comp(periph->path, path) == 0) { - splx(s); + xpt_unlock_buses(); return(periph); } } - splx(s); - if (name != NULL) + if (name != NULL) { + xpt_unlock_buses(); return(NULL); + } } + xpt_unlock_buses(); return(NULL); } @@ -372,11 +367,9 @@ { struct cam_periph *periph; char *periph_name; - int s; int i, val, dunit, r; const char *dname, *strval; - s = splsoftcam(); periph_name = p_drv->driver_name; for (;;newunit++) { @@ -422,7 +415,6 @@ if (r != 0) break; } - splx(s); return (newunit); } @@ -480,8 +472,7 @@ /* * We only call this routine the first time a peripheral is - * invalidated. The oninvalidate() routine is always called at - * splsoftcam(). + * invalidated. */ if (((periph->flags & CAM_PERIPH_INVALID) == 0) && (periph->periph_oninval != NULL)) @@ -550,26 +541,6 @@ } /* - * Wait interruptibly for an exclusive lock. - */ -void -cam_periph_lock(struct cam_periph *periph) -{ - - mtx_lock(periph->sim->mtx); -} - -/* - * Unlock and wake up any waiters. - */ -void -cam_periph_unlock(struct cam_periph *periph) -{ - - mtx_unlock(periph->sim->mtx); -} - -/* * Map user virtual pointers into kernel virtual address space, so we can * access the memory. This won't work on physical pointers, for now it's * up to the caller to check for that. (XXX KDM -- should we do that here @@ -808,9 +779,7 @@ { struct mtx *mtx; struct cam_sim *sim; - int s; - s = splsoftcam(); sim = xpt_path_sim(ccb->ccb_h.path); if (sim->mtx == &Giant) mtx = NULL; @@ -819,8 +788,6 @@ if ((ccb->ccb_h.pinfo.index != CAM_UNQUEUED_INDEX) || ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_INPROG)) msleep(&ccb->ccb_h.cbfcnp, mtx, PRIBIO, "cbwait", 0); - - splx(s); } int @@ -1225,11 +1192,8 @@ { struct timeval delta; struct timeval duration_tv; - int s; - s = splclock(); microtime(&delta); - splx(s); timevalsub(&delta, event_time); duration_tv.tv_sec = duration_ms / 1000; duration_tv.tv_usec = (duration_ms % 1000) * 1000; ==== //depot/projects/soc2007/rpaulo-macbook/cam/cam_periph.h#2 (text+ko) ==== @@ -25,13 +25,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_periph.h,v 1.17 2007/04/15 08:49:09 scottl Exp $ + * $FreeBSD: src/sys/cam/cam_periph.h,v 1.18 2007/04/19 22:46:26 scottl Exp $ */ #ifndef _CAM_CAM_PERIPH_H #define _CAM_CAM_PERIPH_H 1 #include +#include #ifdef _KERNEL @@ -138,8 +139,6 @@ char *name, cam_periph_type type, struct cam_path *, ac_callback_t *, ac_code, void *arg); struct cam_periph *cam_periph_find(struct cam_path *path, char *name); -void cam_periph_lock(struct cam_periph *periph); -void cam_periph_unlock(struct cam_periph *periph); cam_status cam_periph_acquire(struct cam_periph *periph); void cam_periph_release(struct cam_periph *periph); int cam_periph_hold(struct cam_periph *periph, int priority); @@ -177,5 +176,17 @@ int cam_periph_error(union ccb *ccb, cam_flags camflags, u_int32_t sense_flags, union ccb *save_ccb); +static __inline void +cam_periph_lock(struct cam_periph *periph) +{ + mtx_lock(periph->sim->mtx); +} + +static __inline void +cam_periph_unlock(struct cam_periph *periph) +{ + mtx_unlock(periph->sim->mtx); +} + #endif /* _KERNEL */ #endif /* _CAM_CAM_PERIPH_H */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Apr 27 20:33:48 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 40B9116A404; Fri, 27 Apr 2007 20:33:48 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1632916A402 for ; Fri, 27 Apr 2007 20:33:48 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 04C9413C44C for ; Fri, 27 Apr 2007 20:33:48 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RKXlmc077519 for ; Fri, 27 Apr 2007 20:33:47 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RKXliJ077516 for perforce@freebsd.org; Fri, 27 Apr 2007 20:33:47 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 20:33:47 GMT Message-Id: <200704272033.l3RKXliJ077516@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118895 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 20:33:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=118895 Change 118895 by rdivacky@rdivacky_witten on 2007/04/27 20:33:44 Dont forget to mention that linux_support.s needs assym.s Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/linux/Makefile#4 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/linux/Makefile#4 (text+ko) ==== @@ -45,7 +45,7 @@ ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ ${.IMPSRC} -o ${.TARGET} -linux${SFX}_support.o: linux${SFX}_support.s +linux${SFX}_support.o: linux${SFX}_support.s assym.s ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ ${.IMPSRC} -o ${.TARGET} From owner-p4-projects@FreeBSD.ORG Fri Apr 27 20:35:51 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 79A8816A406; Fri, 27 Apr 2007 20:35:51 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1FAE116A403 for ; Fri, 27 Apr 2007 20:35:51 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0F31313C45B for ; Fri, 27 Apr 2007 20:35:51 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RKZo44078207 for ; Fri, 27 Apr 2007 20:35:50 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RKZopI078204 for perforce@freebsd.org; Fri, 27 Apr 2007 20:35:50 GMT (envelope-from rdivacky@FreeBSD.org) Date: Fri, 27 Apr 2007 20:35:50 GMT Message-Id: <200704272035.l3RKZopI078204@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118896 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 20:35:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=118896 Change 118896 by rdivacky@rdivacky_witten on 2007/04/27 20:35:31 Log all parameters not just the first 3 one. Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#4 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_futex.c#4 (text+ko) ==== @@ -114,8 +114,8 @@ #ifdef DEBUG if (ldebug(sys_futex)) - printf(ARGS(futex, "%p, %i, %i"), args->uaddr, args->op, - args->val); + printf(ARGS(futex, "%p, %i, %i, *, %p, %i"), args->uaddr, args->op, + args->val, args->uaddr2, args->val3); #endif switch (args->op) { From owner-p4-projects@FreeBSD.ORG Fri Apr 27 21:05:29 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4ABDF16A409; Fri, 27 Apr 2007 21:05:29 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1A02F16A406 for ; Fri, 27 Apr 2007 21:05:29 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0694013C4B7 for ; Fri, 27 Apr 2007 21:05:29 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3RL5SK2094310 for ; Fri, 27 Apr 2007 21:05:29 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3RL5Rg3094289 for perforce@freebsd.org; Fri, 27 Apr 2007 21:05:27 GMT (envelope-from mjacob@freebsd.org) Date: Fri, 27 Apr 2007 21:05:27 GMT Message-Id: <200704272105.l3RL5Rg3094289@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 118897 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2007 21:05:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=118897 Change 118897 by mjacob@mjexp on 2007/04/27 21:05:01 IFC Affected files ... .. //depot/projects/mjexp/MAINTAINERS#4 integrate .. //depot/projects/mjexp/ObsoleteFiles.inc#14 integrate .. //depot/projects/mjexp/UPDATING#14 integrate .. //depot/projects/mjexp/compat/opensolaris/misc/fsshare.c#2 integrate .. //depot/projects/mjexp/contrib/opensolaris/cmd/zdb/zdb.c#2 integrate .. //depot/projects/mjexp/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 integrate .. //depot/projects/mjexp/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 integrate .. //depot/projects/mjexp/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 integrate .. //depot/projects/mjexp/contrib/sendmail/libmilter/engine.c#3 integrate .. //depot/projects/mjexp/contrib/sendmail/libmilter/listener.c#3 integrate .. //depot/projects/mjexp/contrib/sendmail/libmilter/main.c#3 integrate .. //depot/projects/mjexp/etc/rc.d/zfs#4 integrate .. //depot/projects/mjexp/etc/sendmail/freebsd.mc#2 integrate .. //depot/projects/mjexp/etc/sendmail/freebsd.submit.mc#2 integrate .. //depot/projects/mjexp/lib/libbsm/Makefile#2 integrate .. //depot/projects/mjexp/lib/libc/sys/send.2#3 integrate .. //depot/projects/mjexp/lib/libexpat/expat_config.h#2 integrate .. //depot/projects/mjexp/lib/libfetch/fetch.3#2 integrate .. //depot/projects/mjexp/lib/libfetch/ftp.c#2 integrate .. //depot/projects/mjexp/lib/libpthread/thread/thr_info.c#3 integrate .. //depot/projects/mjexp/release/doc/en_US.ISO8859-1/relnotes/article.sgml#13 integrate .. //depot/projects/mjexp/sbin/fdisk_pc98/fdisk.8#2 integrate .. //depot/projects/mjexp/sbin/fdisk_pc98/fdisk.c#2 integrate .. //depot/projects/mjexp/share/examples/Makefile#2 integrate .. //depot/projects/mjexp/share/examples/netgraph/bluetooth/rc.bluetooth#2 delete .. //depot/projects/mjexp/share/man/man4/Makefile#12 integrate .. //depot/projects/mjexp/share/man/man4/led.4#2 integrate .. //depot/projects/mjexp/share/man/man4/sbsh.4#2 integrate .. //depot/projects/mjexp/share/man/man4/vlan.4#3 integrate .. //depot/projects/mjexp/share/man/man4/worm.4#2 delete .. //depot/projects/mjexp/share/misc/committers-ports.dot#5 integrate .. //depot/projects/mjexp/share/misc/committers-src.dot#4 integrate .. //depot/projects/mjexp/share/misc/organization.dot#2 integrate .. //depot/projects/mjexp/share/mk/version_gen.awk#2 integrate .. //depot/projects/mjexp/sys/amd64/amd64/local_apic.c#7 integrate .. //depot/projects/mjexp/sys/amd64/amd64/pmap.c#10 integrate .. //depot/projects/mjexp/sys/cam/cam_xpt.c#10 integrate .. //depot/projects/mjexp/sys/conf/files#22 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#5 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 integrate .. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#4 integrate .. //depot/projects/mjexp/sys/dev/acpica/acpi.c#5 integrate .. //depot/projects/mjexp/sys/dev/ata/ata-disk.c#4 integrate .. //depot/projects/mjexp/sys/dev/cxgb/cxgb_main.c#4 integrate .. //depot/projects/mjexp/sys/dev/cxgb/cxgb_sge.c#7 integrate .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#22 edit .. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.h#16 edit .. //depot/projects/mjexp/sys/dev/isp/isp_pci.c#26 edit .. //depot/projects/mjexp/sys/dev/isp/isp_sbus.c#14 edit .. //depot/projects/mjexp/sys/dev/mxge/if_mxge.c#11 integrate .. //depot/projects/mjexp/sys/dev/pci/pci.c#15 integrate .. //depot/projects/mjexp/sys/dev/pci/pcireg.h#9 integrate .. //depot/projects/mjexp/sys/geom/part/g_part.c#2 integrate .. //depot/projects/mjexp/sys/i386/i386/local_apic.c#7 integrate .. //depot/projects/mjexp/sys/i386/i386/pmap.c#11 integrate .. //depot/projects/mjexp/sys/kern/kern_descrip.c#10 integrate .. //depot/projects/mjexp/sys/kern/vfs_mount.c#13 integrate .. //depot/projects/mjexp/sys/nfsclient/nfs_bio.c#2 integrate .. //depot/projects/mjexp/sys/nfsclient/nfs_vnops.c#7 integrate .. //depot/projects/mjexp/sys/sys/ioctl_compat.h#2 integrate .. //depot/projects/mjexp/sys/vm/vm_map.c#5 integrate .. //depot/projects/mjexp/tools/regression/netinet6/inet6_rth/Makefile#1 branch .. //depot/projects/mjexp/tools/regression/netinet6/inet6_rth/inet6_rth-segments.c#1 branch .. //depot/projects/mjexp/tools/regression/netinet6/inet6_rth/test_subr.c#1 branch .. //depot/projects/mjexp/tools/regression/netinet6/inet6_rth/test_subr.h#1 branch .. //depot/projects/mjexp/tools/regression/usr.bin/sed/regress.sh#4 integrate .. //depot/projects/mjexp/tools/sched/schedgraph.py#5 integrate .. //depot/projects/mjexp/tools/tools/net80211/wesside/wesside/wesside.c#3 integrate .. //depot/projects/mjexp/tools/tools/recoverdisk/recoverdisk.c#2 integrate .. //depot/projects/mjexp/usr.bin/calendar/calendars/calendar.freebsd#10 integrate .. //depot/projects/mjexp/usr.bin/quota/quota.c#5 integrate .. //depot/projects/mjexp/usr.bin/sed/extern.h#2 integrate .. //depot/projects/mjexp/usr.bin/sed/main.c#2 integrate .. //depot/projects/mjexp/usr.bin/sed/process.c#3 integrate .. //depot/projects/mjexp/usr.bin/sed/sed.1#2 integrate .. //depot/projects/mjexp/usr.sbin/pciconf/cap.c#2 integrate .. //depot/projects/mjexp/usr.sbin/pmcstat/Makefile#2 integrate .. //depot/projects/mjexp/usr.sbin/pmcstat/pmcstat.8#2 integrate .. //depot/projects/mjexp/usr.sbin/pmcstat/pmcstat.c#2 integrate .. //depot/projects/mjexp/usr.sbin/pmcstat/pmcstat.h#2 integrate .. //depot/projects/mjexp/usr.sbin/rpcbind/rpcbind.8#3 integrate .. //depot/projects/mjexp/usr.sbin/rpcbind/rpcbind.c#2 integrate .. //depot/projects/mjexp/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c#2 integrate Differences ... ==== //depot/projects/mjexp/MAINTAINERS#4 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.143 2007/04/06 10:57:15 pjd Exp $ +$FreeBSD: src/MAINTAINERS,v 1.144 2007/04/26 21:30:16 imp Exp $ Please note that the content of this file is strictly advisory. No locks listed here are valid. The only strict review requirements @@ -128,6 +128,7 @@ usr.sbin/bluetooth emax Pre-commit review preferred. gnu/usr.bin/send-pr bugmaster Pre-commit review requested. BSD.{local,x11*}.dist portmgr Pre-commit review requested, since these files interface with ports. +usb core Please contact core@ before any major changes Following are the entries from the Makefiles, and a few other sources. Please remove stale entries from both their origin, and this file. ==== //depot/projects/mjexp/ObsoleteFiles.inc#14 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.79 2007/04/17 01:02:55 thompsa Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.81 2007/04/24 16:58:54 emax Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,10 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20070423: rc.bluetooth (examples) removed +OLD_FILES+=usr/share/examples/netgraph/bluetooth/rc.bluetooth +# 20070421: worm.4 removed +OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) OLD_FILES+=usr/include/net/if_trunk.h # 20070409: uuidgen moved to /bin/ ==== //depot/projects/mjexp/UPDATING#14 (text+ko) ==== @@ -21,6 +21,12 @@ developers choose to disable these features on build machines to maximize performance. +20070423: + The ABI breakage in sendmail(8)'s libmilter has been repaired + so it is no longer necessary to recompile mail filters (aka, + milters). If you recompiled mail filters after the 20070408 + note, it is not necessary to recompile them again. + 20070417: The new trunk(4) driver has been renamed to lagg(4) as it better reflects its purpose. ifconfig will need to be recompiled. @@ -767,4 +773,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.488 2007/04/19 17:08:54 dds Exp $ +$FreeBSD: src/UPDATING,v 1.489 2007/04/23 22:15:07 gshapiro Exp $ ==== //depot/projects/mjexp/compat/opensolaris/misc/fsshare.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.1 2007/04/06 01:08:59 pjd Exp $"); +__FBSDID("$FreeBSD: src/compat/opensolaris/misc/fsshare.c,v 1.2 2007/04/21 13:17:23 pjd Exp $"); #include #include @@ -99,21 +99,30 @@ /* * Function translate options to a format acceptable by exports(5), eg. * - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org 69.147.83.54 * * Accepted input formats: * - * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0 - * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 - * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0 - * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 + * ro,network=192.168.0.0,mask=255.255.255.0,maproot=0,freefall.freebsd.org + * ro network=192.168.0.0 mask=255.255.255.0 maproot=0 freefall.freebsd.org + * -ro,-network=192.168.0.0,-mask=255.255.255.0,-maproot=0,freefall.freebsd.org + * -ro -network=192.168.0.0 -mask=255.255.255.0 -maproot=0 freefall.freebsd.org + * + * Recognized keywords: + * + * ro, maproot, mapall, mask, network, alldirs, public, webnfs, index, quiet + * */ +static const char *known_opts[] = { "ro", "maproot", "mapall", "mask", + "network", "alldirs", "public", "webnfs", "index", "quiet", NULL }; static char * translate_opts(const char *shareopts) { static char newopts[OPTSSIZE]; - char oldopts[OPTSSIZE], opt[64]; + char oldopts[OPTSSIZE]; char *o, *s = NULL; + unsigned int i; + size_t len; strlcpy(oldopts, shareopts, sizeof(oldopts)); newopts[0] = '\0'; @@ -121,8 +130,16 @@ while ((o = strsep(&s, "-, ")) != NULL) { if (o[0] == '\0') continue; - snprintf(opt, sizeof(opt), "-%s ", o); - strlcat(newopts, opt, sizeof(newopts)); + for (i = 0; known_opts[i] != NULL; i++) { + len = strlen(known_opts[i]); + if (strncmp(known_opts[i], o, len) == 0 && + (o[len] == '\0' || o[len] == '=')) { + strlcat(newopts, "-", sizeof(newopts)); + break; + } + } + strlcat(newopts, o, sizeof(newopts)); + strlcat(newopts, " ", sizeof(newopts)); } return (newopts); } ==== //depot/projects/mjexp/contrib/opensolaris/cmd/zdb/zdb.c#2 (text+ko) ==== @@ -932,11 +932,11 @@ if (doi.doi_checksum != ZIO_CHECKSUM_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (K=%s)", - zio_checksum_table[doi.doi_checksum].ci_name); + zio_checksum_table[doi.doi_checksum].ci_name); if (doi.doi_compress != ZIO_COMPRESS_INHERIT || verbosity >= 6) (void) snprintf(aux + strlen(aux), sizeof (aux), " (Z=%s)", - zio_compress_table[doi.doi_compress].ci_name); + zio_compress_table[doi.doi_compress].ci_name); (void) printf("%10lld %3u %5s %5s %5s %5s %s%s\n", (u_longlong_t)object, doi.doi_indirection, iblk, dblk, lsize, @@ -1441,7 +1441,7 @@ (u_longlong_t)zb->zb_objset, (u_longlong_t)zb->zb_object, (u_longlong_t)blkid2offset(bc->bc_dnode, - zb->zb_level, zb->zb_blkid), + zb->zb_level, zb->zb_blkid), blkbuf); } @@ -1951,8 +1951,8 @@ spa_close(spa, (void *)zdb_read_block); error = spa_open(spa_name, spap, (void *)zdb_read_block); if (error) - fatal("Failed to open pool '%s': errno = %d\n", - spa_name, error); + fatal("Failed to open pool '%s': %s", + spa_name, strerror(error)); spa = *spap; } @@ -2156,7 +2156,7 @@ } if (error) - fatal("can't open %s: error %d", argv[0], error); + fatal("can't open %s: %s", argv[0], strerror(error)); argv++; if (--argc > 0) { ==== //depot/projects/mjexp/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c#2 (text+ko) ==== @@ -339,22 +339,15 @@ changelist_free(prop_changelist_t *clp) { prop_changenode_t *cn; - uu_list_walk_t *walk; + void *cookie; if (clp->cl_list) { - verify((walk = uu_list_walk_start(clp->cl_list, - UU_WALK_ROBUST)) != NULL); - - while ((cn = uu_list_walk_next(walk)) != NULL) { - - uu_list_remove(clp->cl_list, cn); - + cookie = NULL; + while ((cn = uu_list_teardown(clp->cl_list, &cookie)) != NULL) { zfs_close(cn->cn_handle); free(cn); } - uu_list_walk_end(walk); - uu_list_destroy(clp->cl_list); } if (clp->cl_pool) @@ -418,7 +411,7 @@ } else { ASSERT(!clp->cl_alldependents); verify(uu_list_insert_before(clp->cl_list, - uu_list_first(clp->cl_list), cn) == 0); + uu_list_first(clp->cl_list), cn) == 0); } if (!clp->cl_alldependents) ==== //depot/projects/mjexp/contrib/opensolaris/lib/libzfs/common/libzfs_config.c#2 (text+ko) ==== @@ -74,22 +74,16 @@ namespace_clear(libzfs_handle_t *hdl) { if (hdl->libzfs_ns_avl) { - uu_avl_walk_t *walk; config_node_t *cn; + void *cookie = NULL; - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) - return; - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, + &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - uu_avl_destroy(hdl->libzfs_ns_avl); hdl->libzfs_ns_avl = NULL; } @@ -110,7 +104,7 @@ config_node_t *cn; nvpair_t *elem; zfs_cmd_t zc = { 0 }; - uu_avl_walk_t *walk; + void *cookie; if (hdl->libzfs_ns_gen == 0) { /* @@ -172,21 +166,13 @@ /* * Clear out any existing configuration information. */ - if ((walk = uu_avl_walk_start(hdl->libzfs_ns_avl, - UU_WALK_ROBUST)) == NULL) { - nvlist_free(config); - return (no_memory(hdl)); - } - - while ((cn = uu_avl_walk_next(walk)) != NULL) { - uu_avl_remove(hdl->libzfs_ns_avl, cn); + cookie = NULL; + while ((cn = uu_avl_teardown(hdl->libzfs_ns_avl, &cookie)) != NULL) { nvlist_free(cn->cn_config); free(cn->cn_name); free(cn); } - uu_avl_walk_end(walk); - elem = NULL; while ((elem = nvlist_next_nvpair(config, elem)) != NULL) { nvlist_t *child; @@ -222,7 +208,7 @@ } /* - * Retrive the configuration for the given pool. The configuration is a nvlist + * Retrieve the configuration for the given pool. The configuration is a nvlist * describing the vdevs, as well as the statistics associated with each one. */ nvlist_t * ==== //depot/projects/mjexp/contrib/opensolaris/lib/libzfs/common/libzfs_import.c#3 (text+ko) ==== @@ -220,7 +220,7 @@ &state) == 0 && state == POOL_STATE_SPARE && nvlist_lookup_uint64(config, ZPOOL_CONFIG_GUID, &vdev_guid) == 0) { if ((ne = zfs_alloc(hdl, sizeof (name_entry_t))) == NULL) - return (-1); + return (-1); if ((ne->ne_name = zfs_strdup(hdl, path)) == NULL) { free(ne); @@ -748,7 +748,6 @@ zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv) { int i; - DIR *dirp; char path[MAXPATHLEN]; nvlist_t *ret = NULL, *config; int fd; @@ -824,7 +823,6 @@ free(ne); } - return (ret); } ==== //depot/projects/mjexp/contrib/sendmail/libmilter/engine.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2004, 2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2004, 2006, 2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -855,6 +855,7 @@ ; if (g->a_ctx->ctx_smfi != NULL && + g->a_ctx->ctx_smfi->xxfi_version > 4 && (fi_negotiate = g->a_ctx->ctx_smfi->xxfi_negotiate) != NULL) { int r; @@ -1177,6 +1178,7 @@ if (g == NULL) return _SMFIS_ABORT; if (g->a_ctx->ctx_smfi != NULL && + g->a_ctx->ctx_smfi->xxfi_version > 3 && (fi_data = g->a_ctx->ctx_smfi->xxfi_data) != NULL) return (*fi_data)(g->a_ctx); return SMFIS_CONTINUE; @@ -1310,6 +1312,7 @@ if (g == NULL) return _SMFIS_ABORT; if (g->a_ctx->ctx_smfi != NULL && + g->a_ctx->ctx_smfi->xxfi_version > 2 && (fi_unknown = g->a_ctx->ctx_smfi->xxfi_unknown) != NULL) return (*fi_unknown)(g->a_ctx, (const char *) g->a_buf); return SMFIS_CONTINUE; ==== //depot/projects/mjexp/contrib/sendmail/libmilter/listener.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -927,9 +927,9 @@ ctx->ctx_pflags |= SMFIP_NOEOH; if (smfi->xxfi_body == NULL) ctx->ctx_pflags |= SMFIP_NOBODY; - if (smfi->xxfi_data == NULL) + if (smfi->xxfi_version <= 3 || smfi->xxfi_data == NULL) ctx->ctx_pflags |= SMFIP_NODATA; - if (smfi->xxfi_unknown == NULL) + if (smfi->xxfi_version <= 2 || smfi->xxfi_unknown == NULL) ctx->ctx_pflags |= SMFIP_NOUNKNOWN; #if _FFR_WORKERS_POOL ==== //depot/projects/mjexp/contrib/sendmail/libmilter/main.c#3 (text+ko) ==== @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2003, 2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2003, 2006, 2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -52,7 +52,10 @@ (void) sm_strlcpy(smfi->xxfi_name, smfilter.xxfi_name, len); /* compare milter version with hard coded version */ - if (smfi->xxfi_version != SMFI_VERSION) + if (smfi->xxfi_version != SMFI_VERSION && + smfi->xxfi_version != 2 && + smfi->xxfi_version != 3 && + smfi->xxfi_version != 4) { /* hard failure for now! */ smi_log(SMI_LOG_ERR, ==== //depot/projects/mjexp/etc/rc.d/zfs#4 (text+ko) ==== @@ -1,11 +1,10 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/zfs,v 1.4 2007/04/15 18:07:14 pjd Exp $ +# $FreeBSD: src/etc/rc.d/zfs,v 1.5 2007/04/22 20:55:08 pjd Exp $ # # PROVIDE: zfs # REQUIRE: mountcritlocal -# KEYWORD: nojail . /etc/rc.subr @@ -15,7 +14,14 @@ stop_cmd="zfs_stop" required_modules="zfs" -zfs_start() +zfs_start_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs mount -a + fi +} + +zfs_start_main() { zfs volinit zfs mount -a @@ -34,7 +40,23 @@ done } -zfs_stop() +zfs_start() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_start_jail + else + zfs_start_main + fi +} + +zfs_stop_jail() +{ + if [ `$SYSCTL_N security.jail.mount_allowed` -eq 1 ]; then + zfs unmount -a + fi +} + +zfs_stop_main() { # Disable swap on ZVOLs with property org.freebsd:swap=on. zfs list -H -o org.freebsd:swap,name -t volume | \ @@ -50,5 +72,14 @@ zfs volfini } +zfs_stop() +{ + if [ `$SYSCTL_N security.jail.jailed` -eq 1 ]; then + zfs_stop_jail + else + zfs_stop_main + fi +} + load_rc_config $name run_rc_command "$1" ==== //depot/projects/mjexp/etc/sendmail/freebsd.mc#2 (text+ko) ==== @@ -44,7 +44,7 @@ # divert(0) -VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.33 2006/08/17 05:12:07 gshapiro Exp $') +VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.34 2007/04/23 22:23:54 gshapiro Exp $') OSTYPE(freebsd6) DOMAIN(generic) ==== //depot/projects/mjexp/etc/sendmail/freebsd.submit.mc#2 (text+ko) ==== @@ -16,7 +16,7 @@ # divert(0)dnl -VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.submit.mc,v 1.4 2006/08/17 05:12:07 gshapiro Exp $') +VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.submit.mc,v 1.5 2007/04/23 22:23:54 gshapiro Exp $') define(`confCF_VERSION', `Submit')dnl define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet ==== //depot/projects/mjexp/lib/libbsm/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/lib/libbsm/Makefile,v 1.5 2006/09/25 11:53:58 rwatson Exp $ +# $FreeBSD: src/lib/libbsm/Makefile,v 1.6 2007/04/23 14:46:59 rwatson Exp $ # OPENBSMDIR= ${.CURDIR}/../../contrib/openbsm @@ -143,6 +143,7 @@ au_token.3 au_to_header32.3 \ au_token.3 au_to_header64.3 \ au_token.3 au_to_trailer.3 \ + au_token.3 au_to_zonename.3 \ au_user.3 setauuser.3 \ au_user.3 endauuser.3 \ au_user.3 getauuserent.3 \ ==== //depot/projects/mjexp/lib/libc/sys/send.2#3 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" From: @(#)send.2 8.2 (Berkeley) 2/21/94 -.\" $FreeBSD: src/lib/libc/sys/send.2,v 1.34 2007/01/09 00:28:15 imp Exp $ +.\" $FreeBSD: src/lib/libc/sys/send.2,v 1.36 2007/04/27 10:30:31 roam Exp $ .\" .Dd September 13, 2006 .Dt SEND 2 @@ -100,7 +100,6 @@ argument may include one or more of the following: .Bd -literal #define MSG_OOB 0x00001 /* process out-of-band data */ -#define MSG_PEEK 0x00002 /* peek at incoming message */ #define MSG_DONTROUTE 0x00004 /* bypass routing, use direct interface */ #define MSG_EOR 0x00008 /* data completes record */ #define MSG_EOF 0x00100 /* data completes transaction */ ==== //depot/projects/mjexp/lib/libexpat/expat_config.h#2 (text+ko) ==== @@ -1,7 +1,13 @@ -/* $FreeBSD: src/lib/libexpat/expat_config.h,v 1.1 2002/10/02 07:35:35 phk Exp $ */ +/* $FreeBSD: src/lib/libexpat/expat_config.h,v 1.2 2007/04/24 06:29:27 phk Exp $ */ + +#include /* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */ +#if BYTE_ORDER == LITTLE_ENDIAN #define BYTEORDER 1234 +#else +#define BYTEORDER 4321 +#endif /* Define to 1 if you have the `bcopy' function. */ #define HAVE_BCOPY 1 @@ -67,7 +73,11 @@ #define STDC_HEADERS 1 /* whether byteorder is bigendian */ -/* #undef WORDS_BIGENDIAN */ +#if BYTE_ORDER == BIG_ENDIAN +#define WORDS_BIGENDIAN +#else +#undef WORDS_BIGENDIAN +#endif /* Define to specify how much context to retain around the current parse point. */ ==== //depot/projects/mjexp/lib/libfetch/fetch.3#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.61 2005/11/30 04:08:45 tmclaugh Exp $ +.\" $FreeBSD: src/lib/libfetch/fetch.3,v 1.62 2007/04/22 22:33:29 njl Exp $ .\" -.Dd July 1, 1998 +.Dd April 22, 2007 .Dt FETCH 3 .Os .Sh NAME @@ -334,6 +334,16 @@ .Nm fetch library will attempt an anonymous login, with user name "anonymous" and password "anonymous@". +.Pp +By default, +.Nm fetch +changes directories one at a time for the best compatibility with a wide +variety of servers. +If it is compiled with the +.Ql FTP_COMBINE_CWDS +flag, it will first try a single change directory command for the entire +path and fall back to the default scheme if an error occurred. +This can save latency when used with a slow network link. .Sh HTTP SCHEME The .Fn fetchXGetHTTP , ==== //depot/projects/mjexp/lib/libfetch/ftp.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.95 2006/06/13 10:21:03 des Exp $"); +__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.96 2007/04/22 22:33:29 njl Exp $"); /* * Portions of this code were taken from or based on ftpio.c: @@ -267,6 +267,7 @@ char pwd[PATH_MAX]; int e, i, len; + /* If no slashes in name, no need to change dirs. */ if ((end = strrchr(file, '/')) == NULL) return (0); if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY || @@ -276,7 +277,8 @@ } for (;;) { len = strlen(pwd); - /* look for a common prefix */ + + /* Look for a common prefix between PWD and dir to fetch. */ for (i = 0; i <= len && i <= end - file; ++i) if (pwd[i] != file[i]) break; @@ -284,6 +286,7 @@ DEBUG(fprintf(stderr, "have: [%.*s|%s]\n", i, pwd, pwd + i)); DEBUG(fprintf(stderr, "want: [%.*s|%s]\n", i, file, file + i)); #endif + /* Keep going up a dir until we have a matching prefix. */ if (pwd[i] == '\0' && (file[i - 1] == '/' || file[i] == '/')) break; if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK || @@ -293,6 +296,23 @@ return (-1); } } + +#ifdef FTP_COMBINE_CWDS + /* Skip leading slashes, even "////". */ + for (beg = file + i; beg < end && *beg == '/'; ++beg, ++i) + /* nothing */ ; + + /* If there is no trailing dir, we're already there. */ + if (beg >= end) + return (0); + + /* Change to the directory all in one chunk (e.g., foo/bar/baz). */ + e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg); + if (e == FTP_FILE_ACTION_OK) + return (0); +#endif /* FTP_COMBINE_CWDS */ + + /* That didn't work so go back to legacy behavior (multiple CWDs). */ for (beg = file + i; beg < end; beg = file + i + 1) { while (*beg == '/') ++beg, ++i; @@ -966,6 +986,8 @@ if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN) goto fouch; + /* TODO: Request extended features supported, if any (RFC 3659). */ + /* done */ return (conn); ==== //depot/projects/mjexp/lib/libpthread/thread/thr_info.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.29 2007/01/12 07:26:18 imp Exp $ + * $FreeBSD: src/lib/libpthread/thread/thr_info.c,v 1.30 2007/04/23 03:36:14 deischen Exp $ */ #include #include @@ -214,12 +214,31 @@ void _pthread_set_name_np(pthread_t thread, char *name) { - /* Check if the caller has specified a valid thread: */ - if (thread != NULL && thread->magic == THR_MAGIC) { - if (thread->name != NULL) { + struct pthread *curthread = _get_curthread(); + char *new_name; + char *prev_name; + int ret; + + new_name = strdup(name); + /* Add a reference to the target thread. */ + if (_thr_ref_add(curthread, thread, 0) != 0) { + free(new_name); + ret = ESRCH; + } + else { + THR_THREAD_LOCK(curthread, thread); + prev_name = thread->name; + thread->name = new_name; + THR_THREAD_UNLOCK(curthread, thread); + _thr_ref_delete(curthread, thread); + if (prev_name != NULL) { /* Free space for previous name. */ - free(thread->name); + free(prev_name); } - thread->name = strdup(name); + ret = 0; } +#if 0 + /* XXX - Should return error code. */ + return (ret); +#endif } ==== //depot/projects/mjexp/release/doc/en_US.ISO8859-1/relnotes/article.sgml#13 (text+ko) ==== @@ -30,7 +30,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1020 2007/04/20 16:12:31 brueffer Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1023 2007/04/24 08:58:09 yar Exp $ 2000 @@ -438,14 +438,19 @@ statistics via a binary structure stream. The sysctl variable hw.pci.do_powerstate - has been changed from a boolean to a range. + has been split into two sysctl variables + hw.pci.do_powerstate_nodriver + and hw.pci.do_powerstate_resume. + Also, these variables have been changed from a boolean to a range. 0 means no power management, 1 means conservative power management which any device class that has caused problems is added to the watch list, 2 means aggressive power management where any device class that is not fundamental to the system is added to the list, and 3 means power them all down unconditionally. - The default is 1. + The default values are 0 for + hw.pci.do_powerstate_nodriver and + 1 for hw.pci.do_powerstate_resume. [&arch.ia64;] The GENERIC kernel now enables SMP support by default. @@ -1351,7 +1356,7 @@ The &man.arp.8; utility now allows the option together with the and options - to allow all entries for a given interface to be removed. + to allow all entries for a given interface to be removed. &merged; The OpenBSM userland tools, including &man.audit.8;, &man.auditd.8;, @@ -1485,16 +1490,17 @@ The &man.ifconfig.8; utility now supports a flag to allow printing potentially sensitive keying material to standard output. - This sensitive information will not be printed by default. + This sensitive information will not be printed by default. + &merged; The &man.ifconfig.8; utility now supports a parameter, which is just an alias for , - yet is more convenient and easier to type. + yet is more convenient and easier to type. &merged; The parameter to &man.ifconfig.8; no longer requires a network interface as its argument. The argument still is supported for backward compatibility, but - is now deprecated and its use is discouraged. + is now deprecated and its use is discouraged. &merged; The &man.iostat.8; utility now supports a flag (inspired by Solaris) to print @@ -2021,9 +2027,7 @@ &merged; sendmail has been updated from - 8.13.4 to 8.14.1. This upgrade includes a new libmilter - library which requires all dynamically linked milters to be - recompiled. &merged; + 8.13.4 to 8.14.1. &merged; tcpdump has been updated from 3.9.1 to 3.9.4. &merged; ==== //depot/projects/mjexp/sbin/fdisk_pc98/fdisk.8#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" $FreeBSD: src/sbin/fdisk_pc98/fdisk.8,v 1.18 2006/09/18 11:55:09 ru Exp $ +.\" $FreeBSD: src/sbin/fdisk_pc98/fdisk.8,v 1.19 2007/04/21 22:47:35 imp Exp $ .\" .Dd February 26, 2006 .Dt FDISK 8 @@ -122,6 +122,7 @@ is given. .It Fl v Be verbose. +Partitions that are unused are suppressed unless this flag is specified. When .Fl f is used, ==== //depot/projects/mjexp/sbin/fdisk_pc98/fdisk.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/fdisk_pc98/fdisk.c,v 1.20 2006/02/26 07:37:10 imp Exp $"); +__FBSDID("$FreeBSD: src/sbin/fdisk_pc98/fdisk.c,v 1.21 2007/04/21 22:47:35 imp Exp $"); #include #include @@ -153,7 +153,7 @@ static void print_part(int i); static void init_sector0(unsigned long start); static void init_boot(void); -static void change_part(int i); +static void change_part(int i, int force); static void print_params(void); static void change_active(int which); static void change_code(void); @@ -254,16 +254,16 @@ err(1, "read_s0"); printf("%s: %d cyl %d hd %d sec\n", disk, dos_cyls, dos_heads, dos_sectors); - printf("Part %11s %11s %4s %4s\n", "Start", "Size", "MID", - "SID"); + printf("Part %11s %11s %4s %4s %-16s\n", "Start", "Size", "MID", + "SID", "Name"); for (i = 0; i < NDOSPART; i++) { partp = ((struct pc98_partition *) &mboot.parts) + i; if (partp->dp_sid == 0) continue; - printf("%4d: %11u %11u 0x%02x 0x%02x\n", i + 1, + printf("%4d: %11u %11u 0x%02x 0x%02x %-16.16s\n", i + 1, partp->dp_scyl * cylsecs, (partp->dp_ecyl - partp->dp_scyl + 1) * cylsecs, - partp->dp_mid, partp->dp_sid); + partp->dp_mid, partp->dp_sid, partp->dp_name); } exit(0); } @@ -276,6 +276,7 @@ partp = (struct pc98_partition *) (&mboot.parts[0]); partp->dp_mid = DOSMID_386BSD; partp->dp_sid = DOSSID_386BSD; + strncpy(partp->dp_name, "FreeBSD", sizeof(partp->dp_name)); /* Start c/h/s. */ partp->dp_scyl = partp->dp_ipl_cyl = 1; partp->dp_shd = partp->dp_ipl_head = 1; @@ -312,9 +313,9 @@ printf("Information from DOS bootblock is:\n"); if (partition == -1) for (i = 1; i <= NDOSPART; i++) - change_part(i); + change_part(i, v_flag); else - change_part(partition); + change_part(partition, 1); if (u_flag || a_flag) change_active(partition); @@ -349,6 +350,17 @@ exit(1); } +static struct pc98_partition mtpart; + +static int +part_unused(int i) +{ + struct pc98_partition *partp; + + partp = ((struct pc98_partition *) &mboot.parts) + i - 1; + return (bcmp(partp, &mtpart, sizeof (struct pc98_partition)) == 0); +} + static void print_s0(int which) { @@ -356,30 +368,31 @@ print_params(); printf("Information from DOS bootblock is:\n"); - if (which == -1) + if (which == -1) { for (i = 1; i <= NDOSPART; i++) - printf("%d: ", i), print_part(i); + if (v_flag || !part_unused(i)) { + printf("%d: ", i); + print_part(i); + } + } else print_part(which); } -static struct pc98_partition mtpart; - static void print_part(int i) { struct pc98_partition *partp; u_int64_t part_sz, part_mb; - partp = ((struct pc98_partition *) &mboot.parts) + i - 1; - - if (!bcmp(partp, &mtpart, sizeof (struct pc98_partition))) { + if (part_unused(i)) { printf("\n"); return; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 28 08:30:40 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9699016A406; Sat, 28 Apr 2007 08:30:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 17EAA16A403 for ; Sat, 28 Apr 2007 08:30:40 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0CE4313C455 for ; Sat, 28 Apr 2007 08:30:40 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3S8UdVL048390 for ; Sat, 28 Apr 2007 08:30:39 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3S8UdgM048387 for perforce@freebsd.org; Sat, 28 Apr 2007 08:30:39 GMT (envelope-from kmacy@freebsd.org) Date: Sat, 28 Apr 2007 08:30:39 GMT Message-Id: <200704280830.l3S8UdgM048387@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 118905 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2007 08:30:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=118905 Change 118905 by kmacy@kmacy_vt-x:opentoe_init on 2007/04/28 08:30:32 start making TOE code BSD palatable Affected files ... .. //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#15 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_io.c#2 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_ddp.c#2 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_listen.c#2 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom.c#2 edit .. //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_tom.h#2 edit Differences ... ==== //depot/projects/opentoe/sys/dev/cxgb/cxgb_adapter.h#15 (text+ko) ==== @@ -71,6 +71,7 @@ struct mbuf *head; struct mbuf *tail; uint32_t qlen; + struct mtx lock; }; static __inline void ==== //depot/projects/opentoe/sys/dev/cxgb/ulp/t3_tom/t3_cpl_io.c#2 (text+ko) ==== @@ -48,12 +48,12 @@ const unsigned int t3_ulp_extra_len[] = {0, 4, 4, 8}; /* - * This sk_buff holds a fake header-only TCP segment that we use whenever we + * This mbuf holds a fake header-only TCP segment that we use whenever we * need to exploit SW TCP functionality that expects TCP headers, such as * tcp_create_openreq_child(). It's a RO buffer that may be used by multiple * CPUs without locking. */ -static struct sk_buff *tcphdr_skb __read_mostly; +static struct mbuf *tcphdr_skb __read_mostly; /* * The number of WRs needed for an skb depends on the number of page fragments @@ -84,29 +84,30 @@ * call to the handler. Should be used if the handler may drop a socket * reference. */ -static inline void process_cpl_msg_ref(void (*fn)(struct sock *, - struct sk_buff *), - struct sock *sk, struct sk_buff *skb) +static inline void +process_cpl_msg_ref(void (*fn)(struct socket *, struct mbuf *), + struct socket *so, struct mbuf *m) { sock_hold(sk); process_cpl_msg(fn, sk, skb); sock_put(sk); } -static inline int is_t3a(const struct toedev *dev) +static inline int +is_t3a(const struct toedev *dev) { return dev->ttid == TOE_ID_CHELSIO_T3; } /* - * Returns an sk_buff for a reply CPL message of size len. If the input - * sk_buff has no other users it is trimmed and reused, otherwise a new buffer + * Returns an mbuf for a reply CPL message of size len. If the input + * mbuf has no other users it is trimmed and reused, otherwise a new buffer * is allocated. The input skb must be of size at least len. Note that this * operation does not destroy the original skb data even if it decides to reuse * the buffer. */ -static struct sk_buff *get_cpl_reply_skb(struct sk_buff *skb, size_t len, - int gfp) +static struct mbuf * +get_cpl_reply_mbuf(struct mbuf *m, size_t len, int gfp) { if (likely(!skb_cloned(skb))) { BUG_ON(skb->len < len); @@ -123,8 +124,8 @@ /* * Like get_cpl_reply_skb() but the returned buffer starts out empty. */ -static struct sk_buff *__get_cpl_reply_skb(struct sk_buff *skb, size_t len, - int gfp) +static struct mbuf * +__get_cpl_reply_mbuf(struct mbuf *m, size_t len) { if (likely(!skb_cloned(skb) && !skb->data_len)) { __skb_trim(skb, 0); @@ -141,8 +142,9 @@ * If through_l2t is set the message is subject to ARP processing, otherwise * it is sent directly. */ -static inline void send_or_defer(struct sock *sk, struct tcp_sock *tp, - struct sk_buff *skb, int through_l2t) +static inline void +send_or_defer(struct socket *so, struct tcp_sock *tp, struct mbuf *skb, + int through_l2t) { if (unlikely(sk->sk_state == TCP_SYN_SENT)) __skb_queue_tail(&tp->out_of_order_queue, skb); // defer @@ -157,7 +159,8 @@ * whether the packet should use a control Tx queue, bits 1..3 determine * the queue set to use. */ -static inline unsigned int mkprio(unsigned int cntrl, const struct sock *sk) +static inline unsigned int +mkprio(unsigned int cntrl, const struct socket *so) { return cntrl; } @@ -165,8 +168,8 @@ /* * Populate a TID_RELEASE WR. The skb must be already propely sized. */ -static inline void mk_tid_release(struct sk_buff *skb, const struct sock *sk, - unsigned int tid) +static inline void +mk_tid_release(struct mbuf *skb, const struct socket *so, unsigned int tid) { struct cpl_tid_release *req; @@ -179,8 +182,8 @@ /* * Insert a socket to the TID table and take an extra reference. */ -static inline void sk_insert_tid(struct tom_data *d, struct sock *sk, - unsigned int tid) +static inline void +sk_insert_tid(struct tom_data *d, struct socket *so, unsigned int tid) { sock_hold(sk); cxgb3_insert_tid(d->cdev, d->client, sk, tid); @@ -194,7 +197,8 @@ * Returns the index of the value in the MTU table that is closest to but * does not exceed the target MTU. */ -static unsigned int find_best_mtu(const struct t3c_data *d, unsigned short mtu) +static unsigned int +find_best_mtu(const struct t3c_data *d, unsigned short mtu) { int i = 0; @@ -203,7 +207,8 @@ return i; } -static unsigned int select_mss(struct sock *sk, unsigned int pmtu) +static unsigned int +select_mss(struct socket *so, unsigned int pmtu) { unsigned int idx; struct tcp_sock *tp = tcp_sk(sk); @@ -228,7 +233,8 @@ /* * Returns true if a connection TID is in range and currently unused. */ -static int valid_new_tid(const struct tid_info *t, unsigned int tid) +static int +valid_new_tid(const struct tid_info *t, unsigned int tid) { return tid < t->ntids && !t->tid_tab[tid].ctx; } @@ -248,7 +254,8 @@ * Resources related to the offload state of a connection (e.g., L2T entries) * must have been relinquished prior to calling this. */ -static void connection_done(struct sock *sk) +static void +connection_done(struct socket *so) { #if 0 printk("connection_done: TID: %u, state: %d, dead %d, refs %d\n", @@ -284,7 +291,8 @@ * Determine the receive window scaling factor given a target max * receive window. */ -static inline int select_rcv_wscale(int space, int wscale_ok, int window_clamp) +static inline int +select_rcv_wscale(int space, int wscale_ok, int window_clamp) { int wscale = 0; @@ -304,7 +312,8 @@ /* * The next two functions calculate the option 0 value for a socket. */ -static inline unsigned int calc_opt0h(struct sock *sk) +static inline unsigned int +calc_opt0h(struct socket *so) { struct tcp_sock *tp = tcp_sk(sk); @@ -313,7 +322,8 @@ V_WND_SCALE(RCV_WSCALE(tp)) | V_MSS_IDX(MTU_IDX(tp)); } -static inline unsigned int calc_opt0l(const struct sock *sk) +static inline unsigned int +calc_opt0l(const struct socket *so) { struct tcp_sock *tp = tcp_sk(sk); @@ -321,7 +331,8 @@ V_RCV_BUFSIZ(min(tp->rcv_wnd >> 10, (u32)M_RCV_BUFSIZ)); } -static inline unsigned int calc_opt2(const struct sock *sk) +static inline unsigned int +calc_opt2(const struct socket *so) { const struct toedev *dev = TOE_DEV(sk); int flv_valid = TOM_TUNABLE(dev, cong_alg) != -1; @@ -334,12 +345,13 @@ /* * This function is intended for allocations of small control messages. * Such messages go as immediate data and usually the pakets are freed - * immediately. We maintain a cache of one small sk_buff and use it whenever + * immediately. We maintain a cache of one small mbuf and use it whenever * it is available (has a user count of 1). Otherwise we get a fresh buffer. */ -static struct sk_buff *alloc_ctrl_skb(const struct tcp_sock *tp, int len) +static struct mbuf * +alloc_ctrl_skb(const struct tcp_sock *tp, int len) { - struct sk_buff *skb = CTRL_SKB_CACHE(tp); + struct mbuf *skb = CTRL_SKB_CACHE(tp); if (likely(skb && !skb_shared(skb) && !skb_cloned(skb))) { __skb_trim(skb, 0); @@ -361,7 +373,8 @@ * of outstanding WRs, however note that SYN_RCV sockets don't have any such * WRs so that the two uses do not overlap. */ -static void synq_add(struct sock *parent, struct sock *child) +static void +synq_add(struct sock *parent, struct sock *child) { struct tcp_sock *p = tcp_sk(parent); struct tcp_sock *c = tcp_sk(child); @@ -378,7 +391,8 @@ c->fastpath_skb_hint = (void *)parent; } -static void synq_remove(struct tcp_sock *child) +static void +synq_remove(struct tcp_sock *child) { struct sock *next = (struct sock *)child->forward_skb_hint; struct sock *prev = (struct sock *)child->fastpath_skb_hint; @@ -392,7 +406,8 @@ reset_synq(child); } -static inline void free_wr_skb(struct sk_buff *skb) +static inline void +free_wr_skb(struct mbuf *skb) { #if defined(CONFIG_T3_ZCOPY_SENDMSG) || defined(CONFIG_T3_ZCOPY_SENDMSG_MODULE) if (skb->data[0] == FW_WROPCODE_OFLD_TX_DATA) @@ -401,20 +416,22 @@ kfree_skb(skb); } -static void purge_wr_queue(struct tcp_sock *tp) +static void +purge_wr_queue(struct tcp_sock *tp) { - struct sk_buff *skb; + struct mbuf *skb; while ((skb = dequeue_wr(tp)) != NULL) free_wr_skb(skb); } #define wr_queue_walk(tp, skb) \ - for (skb = peek_wr(tp); skb; skb = (struct sk_buff *)skb->input_dev) + for (skb = peek_wr(tp); skb; skb = (struct mbuf *)skb->input_dev) /* - * Returns true if an sk_buff carries urgent data. + * Returns true if an mbuf carries urgent data. */ -static inline int skb_urgent(struct sk_buff *skb) +static inline int +skb_urgent(struct mbuf *skb) { return (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_URG) != 0; } @@ -422,13 +439,14 @@ /* * Generic ARP failure handler that discards the buffer. */ -static void arp_failure_discard(struct t3cdev *cdev, struct sk_buff *skb) +static void +arp_failure_discard(struct t3cdev *cdev, struct mbuf *m) { - kfree_skb(skb); + m_freem(m); } -static inline void make_tx_data_wr(struct sock *sk, struct sk_buff *skb, - int len) +static inline void +make_tx_data_wr(struct socket *so, struct mbuf *m, int len) { struct tx_data_wr *req; struct tcp_sock *tp = tcp_sk(sk); @@ -451,7 +469,7 @@ req->flags |= htonl(F_TX_INIT | V_TX_CPU_IDX(qset(tp))); /* * The send buffer size is in 32KB. In addition Linux doubles - * what the user requested to account for header and sk_buff + * what the user requested to account for header and mbuf * overhead. We care about pure payload here so divide by an * extra 2 to get the user's requested value. */ @@ -468,11 +486,12 @@ * socket lock held. Returns the amount of send buffer space that was freed * as a result of sending queued data to the TOE. */ -int t3_push_frames(struct sock *sk, int req_completion) +int +t3_push_frames(struct socket *so, int req_completion) { int total_size = 0; struct tcp_sock *tp = tcp_sk(sk); - struct sk_buff *skb; + struct mbuf *m; struct t3cdev *cdev; struct tom_data *d; @@ -551,14 +570,15 @@ static inline void free_atid(struct t3cdev *cdev, unsigned int tid) { - struct sock *sk = cxgb3_free_atid(cdev, tid); + struct socket *so = cxgb3_free_atid(cdev, tid); if (sk) sock_put(sk); } /* * Release resources held by an offload connection (TID, L2T entry, etc.) */ -static void t3_release_offload_resources(struct sock *sk) +static void +t3_release_offload_resources(struct socket *so) { struct tcp_sock *tp = tcp_sk(sk); struct toedev *tdev = TOE_DEV(sk); @@ -610,16 +630,18 @@ * closed connection. Most messages are illegal at that point except * ABORT_RPL_RSS and GET_TCB_RPL sent by DDP. */ -static int bad_backlog_msg(unsigned int opcode) +static int +bad_backlog_msg(unsigned int opcode) { return opcode != CPL_ABORT_RPL_RSS && opcode != CPL_GET_TCB_RPL; } /* - * Called for each sk_buff in a socket's receive backlog during + * Called for each mbuf in a socket's receive backlog during * backlog processing. */ -static int t3_backlog_rcv(struct sock *sk, struct sk_buff *skb) +static int +t3_backlog_rcv(struct socket *so, struct mbuf *skb) { #if VALIDATE_TID unsigned int opcode = ntohl(skb->csum) >> 24; @@ -647,7 +669,8 @@ * operations do not contain the offload backlog handler, we install that * directly to the socket. */ -static inline void install_offload_ops(struct sock *sk) +static inline void +install_offload_ops(struct socket *so) { sk->sk_prot = &t3_tcp_prot; sk->sk_backlog_rcv = t3_backlog_rcv; @@ -665,10 +688,11 @@ } #if DEBUG_WR -static void dump_wrs(struct sock *sk) +static void +dump_wrs(struct socket *so) { u64 *d; - struct sk_buff *p; + struct mbuf *p; struct tcp_sock *tp = tcp_sk(sk); printk("TID %u info:\n", TID(tp)); @@ -689,17 +713,19 @@ } } -static int count_pending_wrs(const struct tcp_sock *tp) +static int +count_pending_wrs(const struct tcp_sock *tp) { int n = 0; - const struct sk_buff *p; + const struct mbuf *p; wr_queue_walk(tp, p) n += p->csum; return n; } -static void check_wr_invariants(const struct tcp_sock *tp) +static void +check_wr_invariants(const struct tcp_sock *tp) { int pending = count_pending_wrs(tp); @@ -710,7 +736,8 @@ } #endif -static void t3_idiag_get_info(struct sock *sk, u32 ext, struct sk_buff *skb) +static void +t3_idiag_get_info(struct socket *so, u32 ext, struct mbuf *skb) { #if DEBUG_WR if (ext & (1 << (INET_DIAG_MEMINFO - 1))) { @@ -746,7 +773,8 @@ T3_CONG_OPS("newreno"), T3_CONG_OPS("highspeed") }; -static void mk_act_open_req(struct sock *sk, struct sk_buff *skb, +static void +mk_act_open_req(struct socket *so, struct mbuf *skb, unsigned int atid, const struct l2t_entry *e) { struct cpl_act_open_req *req; @@ -769,7 +797,8 @@ /* * Convert an ACT_OPEN_RPL status to a Linux errno. */ -static int act_open_rpl_status_to_errno(int status) +static int +act_open_rpl_status_to_errno(int status) { switch (status) { case CPL_ERR_CONN_RESET: @@ -788,9 +817,10 @@ } } -static void act_open_req_arp_failure(struct t3cdev *dev, struct sk_buff *skb); +static void act_open_req_arp_failure(struct t3cdev *dev, struct mbuf *skb); -static void fail_act_open(struct sock *sk, int errno) +static void +fail_act_open(struct socket *so, int errno) { sk->sk_err = errno; sk->sk_error_report(sk); @@ -799,10 +829,11 @@ TCP_INC_STATS_BH(TCP_MIB_ATTEMPTFAILS); } -static void act_open_retry_timer(unsigned long data) +static void +act_open_retry_timer(unsigned long data) { - struct sk_buff *skb; - struct sock *sk = (struct sock *)data; + struct mbuf *skb; + struct socket *so = (struct sock *)data; struct inet_connection_sock *icsk = inet_csk(sk); bh_lock_sock(sk); @@ -828,7 +859,8 @@ /* * Handle active open failures. */ -static void active_open_failed(struct sock *sk, struct sk_buff *skb) +static void +active_open_failed(struct socket *so, struct mbuf *m) { struct cpl_act_open_rpl *rpl = cplhdr(skb); struct inet_connection_sock *icsk = inet_csk(sk); @@ -846,7 +878,8 @@ /* * Return whether a failed active open has allocated a TID */ -static inline int act_open_has_tid(int status) +static inline int +act_open_has_tid(int status) { return status != CPL_ERR_TCAM_FULL && status != CPL_ERR_CONN_EXIST && status != CPL_ERR_ARP_MISS; @@ -855,12 +888,13 @@ /* * Process an ACT_OPEN_RPL CPL message. */ -static int do_act_open_rpl(struct t3cdev *cdev, struct sk_buff *skb, void *ctx) +static int +do_act_open_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) { - struct sock *sk = (struct sock *)ctx; - struct cpl_act_open_rpl *rpl = cplhdr(skb); + struct socket *so = (struct socket *)ctx; + struct cpl_act_open_rpl *rpl = cplhdr(m); - VALIDATE_SOCK(sk); + VALIDATE_SOCK(so); if (cdev->type != T3A && act_open_has_tid(rpl->status)) cxgb3_queue_tid_release(cdev, GET_TID(rpl)); @@ -877,9 +911,9 @@ * check SOCK_DEAD or sk->sk_sock. Or maybe generate the error here but don't * free the atid. Hmm. */ -static void act_open_req_arp_failure(struct t3cdev *dev, struct sk_buff *skb) +static void act_open_req_arp_failure(struct t3cdev *dev, struct mbuf *skb) { - struct sock *sk = skb->sk; + struct socket *so = skb->sk; sock_hold(sk); bh_lock_sock(sk); @@ -890,8 +924,8 @@ } else { /* * Smart solution: Synthesize an ACTIVE_OPEN_RPL in the - * existing sk_buff and queue it to the backlog. We - * are certain the sk_buff is not shared. We also + * existing mbuf and queue it to the backlog. We + * are certain the mbuf is not shared. We also * don't bother trimming the buffer. */ struct cpl_act_open_rpl *rpl = cplhdr(skb); @@ -916,7 +950,7 @@ /* * Determine the receive window size for a socket. */ -static unsigned int select_rcv_wnd(struct sock *sk) +static unsigned int select_rcv_wnd(struct socket *so) { unsigned int wnd = tcp_full_space(sk); @@ -931,7 +965,7 @@ } #if defined(TCP_CONGESTION_CONTROL) -static void pivot_ca_ops(struct sock *sk, int cong) +static void pivot_ca_ops(struct socket *so, int cong) { struct inet_connection_sock *icsk = inet_csk(sk); @@ -948,7 +982,7 @@ * Assign offload parameters to some socket fields. This code is used by * both active and passive opens. */ -static inline void init_offload_sk(struct sock *sk, struct toedev *dev, +static inline void init_offload_sk(struct socket *so, struct toedev *dev, unsigned int tid, struct l2t_entry *e, struct dst_entry *dst) { @@ -980,10 +1014,10 @@ /* * Send an active open request. */ -int t3_connect(struct toedev *tdev, struct sock *sk, +int t3_connect(struct toedev *tdev, struct socket *so, struct net_device *egress_dev) { - struct sk_buff *skb; + struct mbuf *skb; struct l2t_entry *e; struct tom_data *d = TOM_DATA(tdev); struct tcp_sock *tp = tcp_sk(sk); @@ -1029,7 +1063,7 @@ * Handle an ARP failure for a CPL_ABORT_REQ. Change it into a no RST variant * and send it along. */ -static void abort_arp_failure(struct t3cdev *cdev, struct sk_buff *skb) +static void abort_arp_failure(struct t3cdev *cdev, struct mbuf *skb) { struct cpl_abort_req *req = cplhdr(skb); @@ -1043,7 +1077,7 @@ * not try to send a message after the connection has closed. Returns 1 if * an ABORT_REQ wasn't generated after all, 0 otherwise. */ -int t3_send_reset(struct sock *sk, int mode, struct sk_buff *skb) +int t3_send_reset(struct socket *so, int mode, struct mbuf *skb) { struct cpl_abort_req *req; struct tcp_sock *tp = tcp_sk(sk); @@ -1093,7 +1127,7 @@ */ static void reset_listen_child(struct sock *child) { - struct sk_buff *skb = alloc_skb_nofail(sizeof(struct cpl_abort_req)); + struct mbuf *skb = alloc_skb_nofail(sizeof(struct cpl_abort_req)); sock_hold(child); // need to survive past inet_csk_destroy_sock() local_bh_disable(); @@ -1116,25 +1150,25 @@ * reason. These sockets are terminated through a work request from process * context. */ -static struct sock *reap_list; -static spinlock_t reap_list_lock = SPIN_LOCK_UNLOCKED; +static struct socket *reap_list; +static struct mtx reap_list_lock; /* * Process the reap list. */ DECLARE_TASK_FUNC(process_reap_list, task_param) { - spin_lock_bh(&reap_list_lock); + mtx_lock(&reap_list_lock); while (reap_list) { - struct sock *sk = reap_list; + struct socket *so = reap_list; reap_list = sk->sk_user_data; sk->sk_user_data = NULL; - spin_unlock_bh(&reap_list_lock); + mtx_unlock(&reap_list_lock); reset_listen_child(sk); - spin_lock_bh(&reap_list_lock); + mtx_lock(&reap_list_lock); } - spin_unlock_bh(&reap_list_lock); + mtx_unlock(&reap_list_lock); } static T3_DECLARE_WORK(reap_task, process_reap_list, NULL); @@ -1145,21 +1179,21 @@ * from softirq context and any associated open request must have already * been freed. */ -static void add_to_reap_list(struct sock *sk) +static void add_to_reap_list(struct socket *so) { BUG_ON(sk->sk_user_data); release_tcp_port(sk); // release the port immediately, it may be reused - spin_lock_bh(&reap_list_lock); + mtx_lock(&reap_list_lock); sk->sk_user_data = reap_list; reap_list = sk; if (!sk->sk_user_data) schedule_work(&reap_task); - spin_unlock_bh(&reap_list_lock); + mtx_unlock(&reap_list_lock); } -static void __set_tcb_field(struct sock *sk, struct sk_buff *skb, u16 word, +static void __set_tcb_field(struct socket *so, struct mbuf *skb, u16 word, u64 mask, u64 val, int no_reply) { struct cpl_set_tcb_field *req; @@ -1178,9 +1212,9 @@ send_or_defer(sk, tp, skb, 0); } -void t3_set_tcb_field(struct sock *sk, u16 word, u64 mask, u64 val) +void t3_set_tcb_field(struct socket *so, u16 word, u64 mask, u64 val) { - struct sk_buff *skb; + struct mbuf *skb; if (sk->sk_state == TCP_CLOSE || sock_flag(sk, ABORT_SHUTDOWN)) return; @@ -1192,7 +1226,7 @@ /* * Set one of the t_flags bits in the TCB. */ -static void set_tcb_tflag(struct sock *sk, unsigned int bit_pos, int val) +static void set_tcb_tflag(struct socket *so, unsigned int bit_pos, int val) { t3_set_tcb_field(sk, W_TCB_T_FLAGS1, 1ULL << bit_pos, val << bit_pos); } @@ -1200,7 +1234,7 @@ /* * Send a SET_TCB_FIELD CPL message to change a connection's Nagle setting. */ -void t3_set_nagle(struct sock *sk) +void t3_set_nagle(struct socket *so) { set_tcb_tflag(sk, S_TF_NAGLE, !(tcp_sk(sk)->nonagle & TCP_NAGLE_OFF)); } @@ -1208,12 +1242,14 @@ /* * Send a SET_TCB_FIELD CPL message to change a connection's keepalive setting. */ -void t3_set_keepalive(struct sock *sk, int on_off) +void +t3_set_keepalive(struct socket *so, int on_off) { - set_tcb_tflag(sk, S_TF_KEEPALIVE, on_off); + set_tcb_tflag(so, S_TF_KEEPALIVE, on_off); } -void t3_set_rcv_coalesce_enable(struct sock *sk, int on_off) +void +t3_set_rcv_coalesce_enable(struct socket *so, int on_off) { set_tcb_tflag(sk, S_TF_RCV_COALESCE_ENABLE, on_off); } @@ -1221,10 +1257,11 @@ /* * Send a SET_TCB_FIELD CPL message to change a connection's TOS setting. */ -void t3_set_tos(struct sock *sk) +void +t3_set_tos(struct socket *so) { - t3_set_tcb_field(sk, W_TCB_TOS, V_TCB_TOS(M_TCB_TOS), - V_TCB_TOS(SK_TOS(sk))); + t3_set_tcb_field(so, W_TCB_TOS, V_TCB_TOS(M_TCB_TOS), + V_TCB_TOS(SK_TOS(so))); } /* @@ -1243,7 +1280,8 @@ ((V_TCB_RX_DDP_BUF0_OFFSET((u64)1) | V_TCB_RX_DDP_BUF0_LEN((u64)2)) <<\ 32)) -void t3_enable_ddp(struct sock *sk, int on) +void +t3_enable_ddp(struct socket *so, int on) { if (on) t3_set_tcb_field(sk, W_TCB_RX_DDP_FLAGS, V_TF_DDP_OFF(1), @@ -1256,14 +1294,16 @@ TP_DDP_TIMER_WORKAROUND_VAL); } -void t3_set_ddp_tag(struct sock *sk, int buf_idx, unsigned int tag_color) +void +t3_set_ddp_tag(struct socket *so, int buf_idx, unsigned int tag_color) { - t3_set_tcb_field(sk, W_TCB_RX_DDP_BUF0_TAG + buf_idx, + t3_set_tcb_field(so, W_TCB_RX_DDP_BUF0_TAG + buf_idx, V_TCB_RX_DDP_BUF0_TAG(M_TCB_RX_DDP_BUF0_TAG), tag_color); } -void t3_set_ddp_buf(struct sock *sk, int buf_idx, unsigned int offset, +void +t3_set_ddp_buf(struct socket *so, int buf_idx, unsigned int offset, unsigned int len) { if (buf_idx == 0) @@ -1280,7 +1320,8 @@ V_TCB_RX_DDP_BUF1_LEN(((u64)len) << 32)); } -int t3_set_cong_control(struct sock *sk, const char *name) +int +t3_set_cong_control(struct socket *so, const char *name) { int cong_algo; @@ -1293,11 +1334,12 @@ return 0; } -int t3_get_tcb(struct sock *sk) +int +t3_get_tcb(struct socket *so) { struct cpl_get_tcb *req; struct tcp_sock *tp = tcp_sk(sk); - struct sk_buff *skb = alloc_skb(sizeof(*req), gfp_any()); + struct mbuf *skb = alloc_skb(sizeof(*req), gfp_any()); if (!skb) return -ENOMEM; @@ -1318,12 +1360,13 @@ /* * Send RX credits through an RX_DATA_ACK CPL message. If nofail is 0 we are * permitted to return without sending the message in case we cannot allocate - * an sk_buff. Returns the number of credits sent. + * an mbuf. Returns the number of credits sent. */ -u32 t3_send_rx_credits(struct sock *sk, u32 credits, u32 dack, int nofail) +u32 +t3_send_rx_credits(struct socket *so, u32 credits, u32 dack, int nofail) { struct cpl_rx_data_ack *req; - struct sk_buff *skb; + struct mbuf *skb; /* forcing nofail until we resolve how to properly avoid that the TCP * window closes on us. @@ -1350,9 +1393,10 @@ * This is only used in DDP mode, so we take the opportunity to also set the * DACK mode and flush any Rx credits. */ -void t3_send_rx_modulate(struct sock *sk) +void +t3_send_rx_modulate(struct socket *so) { - struct sk_buff *skb; + struct mbuf *skb; struct cpl_rx_data_ack *req; struct tcp_sock *tp = tcp_sk(sk); @@ -1372,7 +1416,8 @@ /* * Handle receipt of an urgent pointer. */ -static void handle_urg_ptr(struct sock *sk, u32 urg_seq) +static void +handle_urg_ptr(struct socket *so, u32 urg_seq) { struct tcp_sock *tp = tcp_sk(sk); @@ -1384,7 +1429,7 @@ sk_send_sigurg(sk); if (tp->urg_seq == tp->copied_seq && tp->urg_data && !sock_flag(sk, SOCK_URGINLINE) && tp->copied_seq != tp->rcv_nxt) { - struct sk_buff *skb = skb_peek(&sk->sk_receive_queue); + struct mbuf *skb = skb_peek(&sk->sk_receive_queue); tp->copied_seq++; if (skb && tp->copied_seq - TCP_SKB_CB(skb)->seq >= skb->len) @@ -1397,7 +1442,8 @@ /* * Returns true if a socket cannot accept new Rx data. */ -static inline int sk_no_receive(const struct sock *sk) +static inline int +sk_no_receive(const struct socket *so) { return (sk->sk_shutdown & RCV_SHUTDOWN); } @@ -1405,12 +1451,13 @@ /* * Process an urgent data notification. */ -static void rx_urg_notify(struct sock *sk, struct sk_buff *skb) +static void +rx_urg_notify(struct socket *so, struct mbuf *m) { - struct cpl_rx_urg_notify *hdr = cplhdr(skb); + struct cpl_rx_urg_notify *hdr = cplhdr(m); if (!sk_no_receive(sk)) - handle_urg_ptr(sk, ntohl(hdr->seq)); + handle_urg_ptr(so, ntohl(hdr->seq)); __kfree_skb(skb); } @@ -1418,13 +1465,14 @@ /* * Handler for RX_URG_NOTIFY CPL messages. */ -static int do_rx_urg_notify(struct t3cdev *cdev, struct sk_buff *skb, void *ctx) +static int +do_rx_urg_notify(struct toedev *cdev, struct mbuf *m, void *ctx) { - struct sock *sk = (struct sock *)ctx; + struct socket *so = (struct socket *)ctx; - VALIDATE_SOCK(sk); + VALIDATE_SOCK(so); - process_cpl_msg(rx_urg_notify, sk, skb); + process_cpl_msg(rx_urg_notify, so, m); return 0; } @@ -1433,11 +1481,12 @@ * counter. The supplied skb is used to generate the ABORT_REQ message if * possible. Must be called with softirqs disabled. */ -static inline void abort_conn(struct sock *sk, struct sk_buff *skb, int mib) +static inline void +abort_conn(struct socket *so, struct mbuf *m, int mib) { - struct sk_buff *abort_skb; + struct mbuf *abort_m; - abort_skb = __get_cpl_reply_skb(skb, sizeof(struct cpl_abort_req), + abort_m = __get_cpl_reply_skb(skb, sizeof(struct cpl_abort_req), GFP_ATOMIC); if (abort_skb) { NET_INC_STATS_BH(mib); @@ -1449,7 +1498,8 @@ * Returns true if we need to explicitly request RST when we receive new data * on an RX-closed connection. */ -static inline int need_rst_on_excess_rx(const struct sock *sk) +static inline int +need_rst_on_excess_rx(const struct socket *so) { return 1; } @@ -1458,7 +1508,8 @@ * Handles Rx data that arrives in a state where the socket isn't accepting * new data. */ -static void handle_excess_rx(struct sock *sk, struct sk_buff *skb) +static void +handle_excess_rx(struct socket *so, struct mbuf *m) { if (need_rst_on_excess_rx(sk) && !sock_flag(sk, ABORT_SHUTDOWN)) abort_conn(sk, skb, LINUX_MIB_TCPABORTONDATA); @@ -1470,7 +1521,8 @@ * Process a get_tcb_rpl as a DDP completion (similar to RX_DDP_COMPLETE) * by getting the DDP offset from the TCB. */ -static void tcb_rpl_as_ddp_complete(struct sock *sk, struct sk_buff *skb) +static void +tcb_rpl_as_ddp_complete(struct socket *so, struct mbuf *m) { struct tcp_sock *tp = tcp_sk(sk); struct ddp_state *q = DDP_STATE(tp); @@ -1632,24 +1684,26 @@ * Process a CPL_GET_TCB_RPL. These can also be generated by the DDP code, * in that case they are similar to DDP completions. */ -static int do_get_tcb_rpl(struct t3cdev *cdev, struct sk_buff *skb, void *ctx) +static int +do_get_tcb_rpl(struct toedev *cdev, struct mbuf *m, void *ctx) { - struct sock *sk = (struct sock *)ctx; + struct socket *so = (struct sock *)ctx; /* OK if socket doesn't exist */ if (!sk) return CPL_RET_BUF_DONE; - process_cpl_msg(tcb_rpl_as_ddp_complete, sk, skb); + process_cpl_msg(tcb_rpl_as_ddp_complete, so, m); return 0; } -static void handle_ddp_data(struct sock *sk, struct sk_buff *skb) +static void +handle_ddp_data(struct socket *so, struct mbuf *m) { struct tcp_sock *tp = tcp_sk(sk); struct ddp_state *q; struct ddp_buf_state *bsp; - struct cpl_rx_data *hdr = cplhdr(skb); + struct cpl_rx_data *hdr = cplhdr(m); unsigned int rcv_nxt = ntohl(hdr->seq); if (tp->rcv_nxt == rcv_nxt) @@ -1688,7 +1742,8 @@ /* * Process new data received for a connection. */ -static void new_rx_data(struct sock *sk, struct sk_buff *skb) +static void +new_rx_data(struct socket *so, struct mbuf *m) { struct cpl_rx_data *hdr = cplhdr(skb); struct tcp_sock *tp = tcp_sk(sk); @@ -1748,9 +1803,10 @@ /* * Handler for RX_DATA CPL messages. */ -static int do_rx_data(struct t3cdev *cdev, struct sk_buff *skb, void *ctx) +static int +do_rx_data(struct t3cdev *cdev, struct mbuf *skb, void *ctx) { - struct sock *sk = (struct sock *)ctx; + struct socket *so = (struct sock *)ctx; VALIDATE_SOCK(sk); @@ -1761,7 +1817,8 @@ return 0; } -static void new_rx_data_ddp(struct sock *sk, struct sk_buff *skb) +static void +new_rx_data_ddp(struct socket *so, struct mbuf *skb) { struct tcp_sock *tp; struct ddp_state *q; @@ -1855,10 +1912,11 @@ /* * Handler for RX_DATA_DDP CPL messages. */ -static int do_rx_data_ddp(struct t3cdev *cdev, struct sk_buff *skb, void *ctx) +static int +do_rx_data_ddp(struct t3cdev *cdev, struct mbuf *m, void *ctx) { - struct sock *sk = ctx; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 28 09:26:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ADDA316A402; Sat, 28 Apr 2007 09:26:49 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5B9B716A400 for ; Sat, 28 Apr 2007 09:26:49 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 381BB13C48A for ; Sat, 28 Apr 2007 09:26:49 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3S9QmqH066938 for ; Sat, 28 Apr 2007 09:26:49 GMT (envelope-from rdivacky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3S9Qm3P066935 for perforce@freebsd.org; Sat, 28 Apr 2007 09:26:48 GMT (envelope-from rdivacky@FreeBSD.org) Date: Sat, 28 Apr 2007 09:26:48 GMT Message-Id: <200704280926.l3S9Qm3P066935@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rdivacky@FreeBSD.org using -f From: Roman Divacky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118906 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2007 09:26:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=118906 Change 118906 by rdivacky@rdivacky_witten on 2007/04/28 09:25:56 Implement amd64 part of the futex support. Futex.c at 2.6 still does not work. Guided by: kib Tested by: Scot Hetzel Affected files ... .. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_support.s#2 edit Differences ... ==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_support.s#2 (text+ko) ==== @@ -29,7 +29,7 @@ * $FreeBSD$ */ -#include "linux_assym.h" /* system definitions */ +#include "linux32_assym.h" /* system definitions */ #include /* miscellaneous asm macros */ #include "assym.s" @@ -51,11 +51,12 @@ cmpq %rax,%rsi ja futex_fault + movl (%rsi),%eax + movl %eax,(%rdx) #ifdef SMP lock #endif xchgl %edi,(%rsi) - movl %edi,(%rdx) xorl %eax,%eax movq %rax,PCB_ONFAULT(%rcx) ret @@ -68,11 +69,66 @@ cmpq %rax,%rsi ja futex_fault + movl (%rsi),%eax + movl %eax,(%rdx) #ifdef SMP lock #endif xaddl %edi,(%rsi) - movl %edi,(%rdx) + xorl %eax,%eax + movq %rax,PCB_ONFAULT(%rcx) + ret + +ENTRY(futex_orl) + movq PCPU(CURPCB),%rcx + movq $futex_fault,PCB_ONFAULT(%rcx) + + movq $VM_MAXUSER_ADDRESS-4,%rax + cmpq %rax,%rsi + ja futex_fault + + movl (%rsi),%eax + movl %eax,(%rdx) +#ifdef SMP + lock +#endif + orl %edi,(%rsi) + xorl %eax,%eax + movq %rax,PCB_ONFAULT(%rcx) + ret + +ENTRY(futex_andl) + movq PCPU(CURPCB),%rcx + movq $futex_fault,PCB_ONFAULT(%rcx) + + movq $VM_MAXUSER_ADDRESS-4,%rax + cmpq %rax,%rsi + ja futex_fault + + movl (%rsi),%eax + movl %eax,(%rdx) +#ifdef SMP + lock +#endif + andl %edi,(%rsi) + xorl %eax,%eax + movq %rax,PCB_ONFAULT(%rcx) + ret + +ENTRY(futex_xorl) + movq PCPU(CURPCB),%rcx + movq $futex_fault,PCB_ONFAULT(%rcx) + + movq $VM_MAXUSER_ADDRESS-4,%rax + cmpq %rax,%rsi + ja futex_fault + + movl (%rsi),%eax + movl %eax,(%rdx) +#ifdef SMP + lock +#endif + xorl %edi,(%rsi) xorl %eax,%eax movq %rax,PCB_ONFAULT(%rcx) ret From owner-p4-projects@FreeBSD.ORG Sat Apr 28 14:56:51 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7A74B16A406; Sat, 28 Apr 2007 14:56:51 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2353016A401 for ; Sat, 28 Apr 2007 14:56:51 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0D23513C46C for ; Sat, 28 Apr 2007 14:56:51 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3SEupeq036310 for ; Sat, 28 Apr 2007 14:56:51 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3SEtaTh036242 for perforce@freebsd.org; Sat, 28 Apr 2007 14:55:36 GMT (envelope-from hselasky@FreeBSD.org) Date: Sat, 28 Apr 2007 14:55:36 GMT Message-Id: <200704281455.l3SEtaTh036242@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 118913 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2007 14:56:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=118913 Change 118913 by hselasky@hselasky_mini_itx on 2007/04/28 14:55:07 IFC 118837 Affected files ... .. //depot/projects/usb/src/sys/Makefile#4 integrate .. //depot/projects/usb/src/sys/amd64/acpica/OsdEnvironment.c#2 integrate .. //depot/projects/usb/src/sys/amd64/acpica/madt.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/busdma_machdep.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/cpu_switch.S#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/genassym.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/identcpu.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/io_apic.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/legacy.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mptable.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/msi.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/nexus.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/prof_machdep.c#3 integrate .. //depot/projects/usb/src/sys/amd64/amd64/support.S#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/tsc.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/uma_machdep.c#2 integrate .. //depot/projects/usb/src/sys/amd64/amd64/vm_machdep.c#4 integrate .. //depot/projects/usb/src/sys/amd64/conf/GENERIC#4 integrate .. //depot/projects/usb/src/sys/amd64/conf/NOTES#4 integrate .. //depot/projects/usb/src/sys/amd64/include/acpica_machdep.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/apicvar.h#3 integrate .. //depot/projects/usb/src/sys/amd64/include/gdb_machdep.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#3 integrate .. //depot/projects/usb/src/sys/amd64/include/pcb.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/pcpu.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/segments.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/smp.h#2 integrate .. //depot/projects/usb/src/sys/amd64/include/specialreg.h#4 integrate .. //depot/projects/usb/src/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/usb/src/sys/amd64/isa/clock.c#3 integrate .. //depot/projects/usb/src/sys/amd64/isa/isa.c#2 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux.h#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_dummy.c#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_locore.s#2 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_machdep.c#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_proto.h#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_syscall.h#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysent.c#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#4 integrate .. //depot/projects/usb/src/sys/amd64/linux32/syscalls.master#4 integrate .. //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#4 integrate .. //depot/projects/usb/src/sys/arm/arm/cpufunc.c#4 integrate .. //depot/projects/usb/src/sys/arm/arm/cpufunc_asm_arm9.S#2 integrate .. //depot/projects/usb/src/sys/arm/arm/db_interface.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/elf_trampoline.c#4 integrate .. //depot/projects/usb/src/sys/arm/arm/intr.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/locore.S#3 integrate .. //depot/projects/usb/src/sys/arm/arm/machdep.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/mem.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/nexus.c#3 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#4 integrate .. //depot/projects/usb/src/sys/arm/arm/support.S#2 integrate .. //depot/projects/usb/src/sys/arm/arm/sys_machdep.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/trap.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_mci.c#2 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_pio.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_rtc.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_spi.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_ssc.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_st.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_twi.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_twireg.h#2 integrate .. //depot/projects/usb/src/sys/arm/at91/if_ate.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/kb920x_machdep.c#4 integrate .. //depot/projects/usb/src/sys/arm/at91/ohci_atmelarm.c#3 integrate .. //depot/projects/usb/src/sys/arm/at91/uart_cpu_at91rm9200usart.c#2 integrate .. //depot/projects/usb/src/sys/arm/at91/uart_dev_at91usart.c#4 integrate .. //depot/projects/usb/src/sys/arm/conf/AVILA#2 integrate .. //depot/projects/usb/src/sys/arm/conf/EP80219#3 integrate .. //depot/projects/usb/src/sys/arm/conf/IQ31244#4 integrate .. //depot/projects/usb/src/sys/arm/conf/KB920X#4 integrate .. //depot/projects/usb/src/sys/arm/conf/KB920X.hints#1 branch .. //depot/projects/usb/src/sys/arm/conf/SIMICS#4 integrate .. //depot/projects/usb/src/sys/arm/include/bootconfig.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/cpufunc.h#4 integrate .. //depot/projects/usb/src/sys/arm/include/intr.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/pcpu.h#2 integrate .. //depot/projects/usb/src/sys/arm/include/undefined.h#2 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0.c#3 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/sa11x0_ost.c#3 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/uart_cpu_sa1110.c#3 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/uart_dev_sa1110.c#4 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321_pci.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321_timer.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/i80321_wdog.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/iq80321.c#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/i80321/uart_cpu_i80321.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_ata.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/avila_machdep.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npe.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_npe.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_pci.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_qmgr.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_timer.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425_wdog.c#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/ixp425reg.h#2 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/uart_cpu_ixp425.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/boot2/boot2.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/bootspi/loader_prompt.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/Makefile#4 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.h#4 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/emac.c#4 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/getc.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/memcmp.c#2 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/sd-card.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/spi_flash.c#3 integrate .. //depot/projects/usb/src/sys/boot/arm/at91/libat91/strlen.c#2 integrate .. //depot/projects/usb/src/sys/boot/common/loader.8#4 integrate .. //depot/projects/usb/src/sys/boot/ficl/ficl.h#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/float.c#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/softwords/fileaccess.fr#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/softwords/jhlocal.fr#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/softwords/oo.fr#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/softwords/prefix.fr#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/softwords/softcore.awk#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/tools.c#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/unix.c#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/vm.c#2 integrate .. //depot/projects/usb/src/sys/boot/ficl/words.c#2 integrate .. //depot/projects/usb/src/sys/boot/forth/loader.conf#4 integrate .. //depot/projects/usb/src/sys/boot/i386/boot0/boot0.S#2 integrate .. //depot/projects/usb/src/sys/boot/i386/cdboot/cdboot.s#2 integrate .. //depot/projects/usb/src/sys/boot/i386/libi386/biosacpi.c#2 integrate .. //depot/projects/usb/src/sys/boot/ia64/ski/acpi_stub.c#3 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/Makefile#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/boot.s#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/boot0.5.s#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/disk.s#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/ldscript#1 branch .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/putssjis.s#1 branch .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/selector.s#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot0.5/start.s#2 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot2/boot.c#3 integrate .. //depot/projects/usb/src/sys/boot/pc98/cdboot/cdboot.s#2 integrate .. //depot/projects/usb/src/sys/bsm/audit.h#4 integrate .. //depot/projects/usb/src/sys/bsm/audit_internal.h#4 integrate .. //depot/projects/usb/src/sys/bsm/audit_kevents.h#4 integrate .. //depot/projects/usb/src/sys/bsm/audit_record.h#4 integrate .. //depot/projects/usb/src/sys/cam/cam_ccb.h#4 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.c#3 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.h#2 integrate .. //depot/projects/usb/src/sys/cam/cam_sim.c#2 integrate .. //depot/projects/usb/src/sys/cam/cam_sim.h#2 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#4 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.h#3 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_cd.c#4 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_ch.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_da.c#4 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_low.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_pass.c#4 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_ses.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_sg.c#1 branch .. //depot/projects/usb/src/sys/cam/scsi/scsi_sg.h#1 branch .. //depot/projects/usb/src/sys/cam/scsi/scsi_targ_bh.c#3 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_target.c#3 integrate .. //depot/projects/usb/src/sys/coda/coda_vfsops.h#2 integrate .. //depot/projects/usb/src/sys/coda/coda_vnops.c#3 integrate .. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/usb/src/sys/compat/linsysfs/linsysfs.c#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_emul.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_emul.h#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_file.c#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_futex.c#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_futex.h#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.h#2 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_stats.c#4 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_uid16.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_util.c#3 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_util.h#3 integrate .. //depot/projects/usb/src/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/usb/src/sys/compat/ndis/ndis_var.h#2 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#3 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_pe.c#2 integrate .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_kmem.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_kobj.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_kstat.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_misc.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_policy.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_string.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_vfs.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/kern/opensolaris_zone.c#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/machine/endian.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/rpc/xdr.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/acl.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/byteorder.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/callb.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/cmn_err.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/cred.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/debug.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/dirent.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/dkio.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/kcondvar.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/kmem.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/kobj.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/kstat.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/lock.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/misc.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/mntent.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/mnttab.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/mount.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/mutex.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/policy.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/proc.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/random.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/rwlock.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/sdt.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/string.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/sysmacros.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/systm.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/taskq.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/taskq_impl.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/time.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/types.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/uio.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/varargs.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/vfs.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/vnode.h#1 branch .. //depot/projects/usb/src/sys/compat/opensolaris/sys/zone.h#1 branch .. //depot/projects/usb/src/sys/compat/svr4/svr4_filio.c#2 integrate .. //depot/projects/usb/src/sys/conf/NOTES#6 integrate .. //depot/projects/usb/src/sys/conf/files#14 integrate .. //depot/projects/usb/src/sys/conf/files.amd64#4 integrate .. //depot/projects/usb/src/sys/conf/files.i386#4 integrate .. //depot/projects/usb/src/sys/conf/files.ia64#4 integrate .. //depot/projects/usb/src/sys/conf/files.pc98#4 integrate .. //depot/projects/usb/src/sys/conf/files.powerpc#4 integrate .. //depot/projects/usb/src/sys/conf/files.sparc64#3 integrate .. //depot/projects/usb/src/sys/conf/kern.post.mk#4 integrate .. //depot/projects/usb/src/sys/conf/kmod.mk#4 integrate .. //depot/projects/usb/src/sys/conf/options#4 integrate .. //depot/projects/usb/src/sys/conf/options.arm#4 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/CHANGES.txt#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acapps.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acconfig.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acdebug.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acdisasm.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acdispat.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acefi.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acenv.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acevents.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acexcep.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acfreebsd.h#3 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acgcc.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acglobal.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/achware.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acinterp.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/aclocal.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acmacros.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acnames.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acnamesp.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acobject.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acopcode.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acoutput.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acparser.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpi.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpiosxf.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acpixf.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acresrc.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acstruct.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/actables.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/actbl.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/actbl1.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/actbl2.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/actypes.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/acutils.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/aecommon.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/aeexec.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/amlcode.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/amlresrc.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adfile.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adisasm.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/adwalk.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmrestag.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtable.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtbdump.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/dmtbinfo.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/common/getopt.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcodegen.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.l#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asldefine.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslerror.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslfiles.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslglobal.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asllength.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asllisting.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslload.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asllookup.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslmain.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslmap.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslopcodes.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asloperands.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslopt.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslresource.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslrestype1.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslrestype2.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslstubs.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asltransform.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbcmds.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbdisply.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbexec.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbfileio.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbhistry.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbinput.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbstats.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dbxface.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmbuffer.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmnames.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmobject.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmopcode.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmresrc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmresrcl.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmresrcs.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dmwalk.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsfield.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsinit.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsmethod.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsmthdat.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsobject.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsopcode.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dsutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswexec.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswload.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswscope.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/dswstate.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evevent.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evgpe.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evgpeblk.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evmisc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evregion.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evrgnini.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evsci.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evxface.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evxfevnt.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/evxfregn.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exconfig.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exconvrt.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/excreate.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exdump.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exfield.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exfldio.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exmisc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exmutex.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exnames.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg1.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg2.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg3.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exoparg6.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exprep.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exregion.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exresnte.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exresolv.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exresop.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exstore.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exstoren.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exstorob.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exsystem.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/exutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwacpi.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwgpe.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwregs.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwsleep.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/hwtimer.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsaccess.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsalloc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsdump.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsdumpdv.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nseval.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsinit.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsload.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsnames.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsobject.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsparse.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nssearch.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nswalk.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsxfeval.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsxfname.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/nsxfobj.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/osunixxf.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psargs.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psloop.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psopcode.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psparse.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psscope.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/pstree.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/pswalk.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/psxface.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsaddr.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rscalc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rscreate.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsdump.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsinfo.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsio.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsirq.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rslist.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsmemory.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsmisc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/rsxface.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbconvrt.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbfadt.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbfind.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbget.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbgetall.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbinstal.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbrsdt.c#2 delete .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbutils.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbxface.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/tbxfroot.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utalloc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utcache.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utclib.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utcopy.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utdebug.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utdelete.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/uteval.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utglobal.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utinit.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utmath.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utmisc.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utmutex.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utobject.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/utresrc.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utstate.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/acpica/uttrack.c#1 branch .. //depot/projects/usb/src/sys/contrib/dev/acpica/utxface.c#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/ipw/LICENSE#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ipw/ipw2100-1.3-i.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ipw/ipw2100-1.3-p.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/ipw/ipw2100-1.3.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwi/LICENSE#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwi/ipw2200-bss.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/oltr/if_oltr.c#2 integrate .. //depot/projects/usb/src/sys/contrib/opensolaris/common/acl/acl_common.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/acl/acl_common.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/atomic/i386/atomic.S#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/avl/avl.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/nvpair/nvpair.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/nvpair/nvpair_alloc_fixed.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/zfs/zfs_namecheck.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/zfs/zfs_namecheck.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/zfs/zfs_prop.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/common/zfs/zfs_prop.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/Makefile.files#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/dnlc.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/gfs.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/bplist.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dnode.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/fletcher.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/gzip.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/lzjb.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/metaslab.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/refcount.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sha256.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_history.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/space_map.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_file.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_rlock.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/txg.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/uberblock.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/unique.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs.conf#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/os/callb.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/os/list.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/os/nvpair_alloc_system.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/os/taskq.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/rpc/xdr.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/rpc/xdr.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/rpc/xdr_array.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/rpc/xdr_mem.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/asm_linkage.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/atomic.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/avl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/avl_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/bitmap.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/byteorder.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/callb.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/ccompile.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/compress.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/cred.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/debug.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/dkio.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/dklabel.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/dnlc.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/errorq.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/feature_tests.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/fm/fs/zfs.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/fm/protocol.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/fm/util.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/fs/zfs.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/gfs.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/isa_defs.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/list.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/list_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/note.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/nvpair.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/nvpair_impl.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/processor.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/procset.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/sdt.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/synch.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/sysevent.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/sysmacros.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/vfs.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/vmem.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/sys/zmod.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/adler32.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/crc32.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/crc32.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/deflate.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/deflate.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inffast.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inffast.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inffixed.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inflate.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inflate.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inftrees.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/inftrees.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/trees.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/zconf.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/zlib.h#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/zmod.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/zmod_subr.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/zutil.c#1 branch .. //depot/projects/usb/src/sys/contrib/opensolaris/uts/common/zmod/zutil.h#1 branch .. //depot/projects/usb/src/sys/contrib/pf/net/if_pfsync.c#4 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/if_pfsync.h#2 integrate .. //depot/projects/usb/src/sys/crypto/via/padlock.c#3 integrate .. //depot/projects/usb/src/sys/dev/aac/aac.c#2 integrate .. //depot/projects/usb/src/sys/dev/aac/aac_cam.c#4 integrate .. //depot/projects/usb/src/sys/dev/aac/aacvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_asus.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdDebug.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdInterrupt.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdMemory.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdSynch.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/Osd/OsdTable.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_acad.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cmbat.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_dock.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_hpet.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_lid.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pci_link.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_perf.c#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_quirk.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_resource.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_throttle.c#3 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpivar.h#4 integrate .. //depot/projects/usb/src/sys/dev/adlink/adlink.c#2 integrate .. //depot/projects/usb/src/sys/dev/advansys/adv_eisa.c#3 integrate .. //depot/projects/usb/src/sys/dev/advansys/adv_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/advansys/adv_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/advansys/advansys.c#3 integrate .. //depot/projects/usb/src/sys/dev/advansys/adwcam.c#3 integrate .. //depot/projects/usb/src/sys/dev/aha/aha.c#3 integrate .. //depot/projects/usb/src/sys/dev/aha/aha_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/aha/aha_mca.c#3 integrate .. //depot/projects/usb/src/sys/dev/ahb/ahb.c#4 integrate .. //depot/projects/usb/src/sys/dev/aic/aic.c#3 integrate .. //depot/projects/usb/src/sys/dev/aic/aic_cbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic/aic_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic/aic_pccard.c#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7770.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx.h#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx.seq#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_osm.c#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_osm.h#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx.h#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx_inline.h#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx_osm.c#4 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx_osm.h#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic7xxx_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic_osm_lib.h#2 integrate .. //depot/projects/usb/src/sys/dev/amd/amd.c#3 integrate .. //depot/projects/usb/src/sys/dev/amr/amr_cam.c#3 integrate .. //depot/projects/usb/src/sys/dev/amr/amr_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/an/if_an_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/an/if_an_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/an/if_an_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ar/if_ar.c#2 integrate .. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.c#4 integrate .. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.h#3 integrate .. //depot/projects/usb/src/sys/dev/arl/if_arl_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/asr/asr.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-card.c#2 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-cbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-chipset.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-disk.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-disk.h#2 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-dma.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-lowlevel.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#4 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-raid.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-raid.h#3 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-usb.c#13 integrate .. //depot/projects/usb/src/sys/dev/ata/ata_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cam.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cd.c#4 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cd.h#2 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-fd.c#2 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-fd.h#2 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-tape.c#2 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-tape.h#2 integrate .. //depot/projects/usb/src/sys/dev/ath/ah_osdep.c#2 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#4 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/atkbd_atkbdc.c#2 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/psm.c#3 integrate .. //depot/projects/usb/src/sys/dev/awi/if_awi_pccard.c#3 integrate .. //depot/projects/usb/src/sys/dev/bce/if_bce.c#4 integrate .. //depot/projects/usb/src/sys/dev/bfe/if_bfe.c#4 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#4 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bgereg.h#4 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_os.c#2 integrate .. //depot/projects/usb/src/sys/dev/buslogic/bt.c#3 integrate .. //depot/projects/usb/src/sys/dev/ce/if_ce.c#3 integrate .. //depot/projects/usb/src/sys/dev/ciss/ciss.c#4 integrate .. //depot/projects/usb/src/sys/dev/cm/if_cm_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/cm/smc90cx6.c#3 integrate .. //depot/projects/usb/src/sys/dev/cnw/if_cnw.c#3 integrate .. //depot/projects/usb/src/sys/dev/cp/if_cp.c#3 integrate .. //depot/projects/usb/src/sys/dev/cs/if_cs_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/cs/if_cs_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/ct/ct_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ctau/if_ct.c#3 integrate .. //depot/projects/usb/src/sys/dev/cx/if_cx.c#3 integrate .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_ael1002.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_common.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_firmware_exports.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_mc5.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_regs.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_sge_defs.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_t3_cpl.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_t3_hw.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_tcb.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_version.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_vsc8211.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/common/cxgb_xgmac.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_adapter.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_config.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_ioctl.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_lro.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_osdep.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_sge.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/sys/mvec.h#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/sys/uipc_mvec.c#1 branch .. //depot/projects/usb/src/sys/dev/cxgb/t3fw-3.2.bin.gz.uu#1 branch .. //depot/projects/usb/src/sys/dev/cy/cy.c#2 integrate .. //depot/projects/usb/src/sys/dev/cy/cy_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/cy/cy_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/cy/cyvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/dc/if_dc.c#4 integrate .. //depot/projects/usb/src/sys/dev/de/if_de.c#3 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_eisa.c#3 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/dpt/dpt_scsi.c#4 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_irq.c#2 integrate .. //depot/projects/usb/src/sys/dev/ed/if_ed.c#3 integrate .. //depot/projects/usb/src/sys/dev/ed/if_ed_cbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/ed/if_ed_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ed/if_ed_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/ed/if_ed_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/em/if_em.c#4 integrate .. //depot/projects/usb/src/sys/dev/en/if_en_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/ep/if_ep_eisa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ep/if_ep_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ep/if_ep_mca.c#2 integrate .. //depot/projects/usb/src/sys/dev/ep/if_ep_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/esp/esp_sbus.c#4 integrate .. //depot/projects/usb/src/sys/dev/esp/ncr53c9x.c#3 integrate .. //depot/projects/usb/src/sys/dev/ex/if_ex_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ex/if_ex_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/ex/if_exvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/exca/exca.c#3 integrate .. //depot/projects/usb/src/sys/dev/fatm/if_fatm.c#2 integrate .. //depot/projects/usb/src/sys/dev/fb/creator.c#4 integrate .. //depot/projects/usb/src/sys/dev/fdc/fdc.c#4 integrate .. //depot/projects/usb/src/sys/dev/fe/if_fe.c#3 integrate .. //depot/projects/usb/src/sys/dev/firewire/firewire.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/firewire.h#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/firewirereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwdma.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwmem.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwohci.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwohci_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwohcivar.h#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/if_fwe.c#2 integrate .. //depot/projects/usb/src/sys/dev/firewire/if_fwip.c#3 integrate .. //depot/projects/usb/src/sys/dev/firewire/sbp.c#3 integrate .. //depot/projects/usb/src/sys/dev/firewire/sbp_targ.c#2 integrate .. //depot/projects/usb/src/sys/dev/fxp/if_fxp.c#3 integrate .. //depot/projects/usb/src/sys/dev/gem/if_gem_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/hatm/if_hatm.c#2 integrate .. //depot/projects/usb/src/sys/dev/hfa/hfa_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/hifn/hifn7751.c#3 integrate .. //depot/projects/usb/src/sys/dev/hifn/hifn7751reg.h#2 integrate .. //depot/projects/usb/src/sys/dev/hifn/hifn7751var.h#2 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hme_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hme_sbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/hptmv/entry.c#3 integrate .. //depot/projects/usb/src/sys/dev/hptmv/ioctl.c#2 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_logging.c#2 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#3 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_piv.c#2 integrate .. //depot/projects/usb/src/sys/dev/ichsmb/ichsmb.c#4 integrate .. //depot/projects/usb/src/sys/dev/ichwd/ichwd.c#3 integrate .. //depot/projects/usb/src/sys/dev/ida/ida_eisa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ida/ida_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/idt/idt_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ie/if_ie_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ieee488/pcii.c#2 integrate .. //depot/projects/usb/src/sys/dev/ieee488/tnt4882.c#2 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/iicbus/icee.c#1 branch .. //depot/projects/usb/src/sys/dev/iicbus/iic.c#4 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicbb.c#4 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicbus.c#4 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iicbus.h#3 integrate .. //depot/projects/usb/src/sys/dev/iicbus/iiconf.c#4 integrate .. //depot/projects/usb/src/sys/dev/iir/iir.c#3 integrate .. //depot/projects/usb/src/sys/dev/iir/iir_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi.c#3 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/ipmi/ipmi_ssif.c#2 integrate .. //depot/projects/usb/src/sys/dev/ips/ips_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ipw/if_ipw.c#3 integrate .. //depot/projects/usb/src/sys/dev/ipw/if_ipwvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.h#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_ioctl.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_library.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_library.h#3 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_sbus.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_stds.h#2 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_target.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_target.h#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_tpublic.h#4 integrate .. //depot/projects/usb/src/sys/dev/isp/ispmbox.h#4 integrate .. //depot/projects/usb/src/sys/dev/isp/ispreg.h#4 integrate .. //depot/projects/usb/src/sys/dev/isp/ispvar.h#4 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#4 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwireg.h#3 integrate .. //depot/projects/usb/src/sys/dev/iwi/if_iwivar.h#2 integrate .. //depot/projects/usb/src/sys/dev/ixgb/if_ixgb.c#4 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_cbus.c#3 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_lebuffer.c#2 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_ledma.c#3 integrate .. //depot/projects/usb/src/sys/dev/le/if_le_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/led/led.c#2 integrate .. //depot/projects/usb/src/sys/dev/led/led.h#2 integrate .. //depot/projects/usb/src/sys/dev/lge/if_lge.c#3 integrate .. //depot/projects/usb/src/sys/dev/lmc/if_lmc.c#4 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi.c#4 integrate .. //depot/projects/usb/src/sys/dev/mii/brgphy.c#4 integrate .. //depot/projects/usb/src/sys/dev/mii/brgphyreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/mii/miidevs#4 integrate .. //depot/projects/usb/src/sys/dev/mii/rlphy.c#4 integrate .. //depot/projects/usb/src/sys/dev/mk48txx/mk48txx.c#4 integrate .. //depot/projects/usb/src/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/usb/src/sys/dev/mly/mly.c#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt.h#4 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_cam.c#4 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_cam.h#3 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/mse/mse.c#2 integrate .. //depot/projects/usb/src/sys/dev/msk/if_msk.c#2 integrate .. //depot/projects/usb/src/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/mxge/eth_z8e.dat.gz.uu#3 integrate .. //depot/projects/usb/src/sys/dev/mxge/ethp_z8e.dat.gz.uu#3 integrate .. //depot/projects/usb/src/sys/dev/mxge/if_mxge.c#3 integrate .. //depot/projects/usb/src/sys/dev/mxge/if_mxge_var.h#3 integrate .. //depot/projects/usb/src/sys/dev/my/if_my.c#4 integrate .. //depot/projects/usb/src/sys/dev/ncv/ncr53c500_pccard.c#3 integrate .. //depot/projects/usb/src/sys/dev/nfe/if_nfe.c#3 integrate .. //depot/projects/usb/src/sys/dev/nge/if_nge.c#4 integrate .. //depot/projects/usb/src/sys/dev/nsp/nsp_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/nve/if_nve.c#2 integrate .. //depot/projects/usb/src/sys/dev/patm/if_patm_attach.c#2 integrate .. //depot/projects/usb/src/sys/dev/pccard/pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/pccard/pccard_cis.c#3 integrate .. //depot/projects/usb/src/sys/dev/pccard/pccarddevs#3 integrate .. //depot/projects/usb/src/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/usb/src/sys/dev/pccbb/pccbb.c#4 integrate .. //depot/projects/usb/src/sys/dev/pccbb/pccbb_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/pccbb/pccbbvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/pcf/envctrl.c#2 integrate .. //depot/projects/usb/src/sys/dev/pcf/pcf_ebus.c#2 integrate .. //depot/projects/usb/src/sys/dev/pcf/pcf_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#5 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/pci/pcireg.h#4 integrate .. //depot/projects/usb/src/sys/dev/pci/pcivar.h#4 integrate .. //depot/projects/usb/src/sys/dev/pdq/if_fea.c#2 integrate .. //depot/projects/usb/src/sys/dev/pdq/if_fpa.c#2 integrate .. //depot/projects/usb/src/sys/dev/ppbus/if_plip.c#3 integrate .. //depot/projects/usb/src/sys/dev/ppbus/lpt.c#2 integrate .. //depot/projects/usb/src/sys/dev/ppbus/ppbconf.c#3 integrate .. //depot/projects/usb/src/sys/dev/ppbus/ppi.c#2 integrate .. //depot/projects/usb/src/sys/dev/ppbus/pps.c#2 integrate .. //depot/projects/usb/src/sys/dev/ppbus/vpo.c#3 integrate .. //depot/projects/usb/src/sys/dev/ppc/ppc.c#3 integrate .. //depot/projects/usb/src/sys/dev/ppc/ppcvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/pst/pst-iop.c#2 integrate .. //depot/projects/usb/src/sys/dev/puc/puc.c#3 integrate .. //depot/projects/usb/src/sys/dev/puc/puc_bfe.h#2 integrate .. //depot/projects/usb/src/sys/dev/ral/if_ral_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2560.c#4 integrate .. //depot/projects/usb/src/sys/dev/ral/rt2661.c#4 integrate .. //depot/projects/usb/src/sys/dev/random/randomdev_soft.c#2 integrate .. //depot/projects/usb/src/sys/dev/ray/if_ray.c#3 integrate .. //depot/projects/usb/src/sys/dev/rc/rc.c#2 integrate .. //depot/projects/usb/src/sys/dev/re/if_re.c#4 integrate .. //depot/projects/usb/src/sys/dev/rr232x/osm_bsd.c#2 integrate .. //depot/projects/usb/src/sys/dev/safe/safe.c#3 integrate .. //depot/projects/usb/src/sys/dev/sbni/if_sbni_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/sbni/if_sbni_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/sbsh/if_sbsh.c#3 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe.h#2 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_ebus.c#2 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_macio.c#2 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_bfe_sbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_core.c#3 integrate .. //depot/projects/usb/src/sys/dev/scc/scc_if.m#2 integrate .. //depot/projects/usb/src/sys/dev/scd/scd.c#2 integrate .. //depot/projects/usb/src/sys/dev/si/si_eisa.c#2 integrate .. //depot/projects/usb/src/sys/dev/si/si_isa.c#2 integrate .. //depot/projects/usb/src/sys/dev/si/si_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/sio/sio.c#3 integrate .. //depot/projects/usb/src/sys/dev/sio/sio_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/sk/if_sk.c#4 integrate .. //depot/projects/usb/src/sys/dev/sk/if_skreg.h#4 integrate .. //depot/projects/usb/src/sys/dev/sn/if_sn.c#2 integrate .. //depot/projects/usb/src/sys/dev/snc/if_snc_cbus.c#2 integrate .. //depot/projects/usb/src/sys/dev/snc/if_snc_pccard.c#2 integrate .. //depot/projects/usb/src/sys/dev/snp/snp.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/driver.c#4 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/ad1816.c#2 integrate .. //depot/projects/usb/src/sys/dev/sound/isa/ad1816.h#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 28 19:46:53 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 11C2716A510; Sat, 28 Apr 2007 19:46:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AD41C16A506 for ; Sat, 28 Apr 2007 19:46:52 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 10E6213C535 for ; Sat, 28 Apr 2007 19:46:49 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3SJkloo014467 for ; Sat, 28 Apr 2007 19:46:47 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3SJkhSh014292 for perforce@freebsd.org; Sat, 28 Apr 2007 19:46:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 28 Apr 2007 19:46:43 GMT Message-Id: <200704281946.l3SJkhSh014292@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 118914 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2007 19:46:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=118914 Change 118914 by rwatson@rwatson_fledge on 2007/04/28 19:45:55 Integrate zcopybpf branch. Affected files ... .. //depot/projects/zcopybpf/src/sys/amd64/amd64/busdma_machdep.c#3 integrate .. //depot/projects/zcopybpf/src/sys/amd64/amd64/local_apic.c#3 integrate .. //depot/projects/zcopybpf/src/sys/amd64/amd64/pmap.c#5 integrate .. //depot/projects/zcopybpf/src/sys/amd64/amd64/vm_machdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/amd64/include/vmparam.h#2 integrate .. //depot/projects/zcopybpf/src/sys/amd64/linux32/linux32_dummy.c#3 integrate .. //depot/projects/zcopybpf/src/sys/amd64/linux32/linux32_machdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/bsm/audit.h#2 integrate .. //depot/projects/zcopybpf/src/sys/bsm/audit_internal.h#2 integrate .. //depot/projects/zcopybpf/src/sys/bsm/audit_kevents.h#2 integrate .. //depot/projects/zcopybpf/src/sys/bsm/audit_record.h#2 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_periph.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_periph.h#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_sim.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_sim.h#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_xpt.c#5 integrate .. //depot/projects/zcopybpf/src/sys/cam/cam_xpt_periph.h#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_cd.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_da.c#5 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_low.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/zcopybpf/src/sys/cam/scsi/scsi_sg.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/linprocfs/linprocfs.c#5 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/kern/opensolaris_misc.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/misc.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/sunddi.h#1 branch .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/types.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/vnode.h#2 integrate .. //depot/projects/zcopybpf/src/sys/conf/NOTES#6 integrate .. //depot/projects/zcopybpf/src/sys/conf/files#7 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/dnlc.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zil.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zio.c#2 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/zvol.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7770.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic79xx.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic79xx.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic79xx_osm.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic79xx_pci.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx_inline.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx_osm.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic7xxx_pci.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/aic7xxx/aic_osm_lib.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/ata/ata-disk.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_main.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/cxgb_sge.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/cxgb/sys/uipc_mvec.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/firewire/firewire.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/firewire/fwdev.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/hwpmc/hwpmc_logging.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/hwpmc/hwpmc_mod.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/hwpmc/hwpmc_piv.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/iicbus/icee.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/led/led.c#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/led/led.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/mpt/mpt_cam.c#6 integrate .. //depot/projects/zcopybpf/src/sys/dev/msk/if_msk.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/msk/if_mskreg.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/mxge/if_mxge.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/pci/pci.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/pci/pcireg.h#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/ral/rt2560.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/re/if_re.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/isa/ad1816.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/isa/ess.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/isa/mss.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/isa/sb16.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/isa/sb8.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/als4000.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/atiixp.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/au88x0.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/aureal.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/cmi.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/cs4281.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/csapcm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/ds1.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/emu10k1.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/emu10kx-pcm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/envy24.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/envy24ht.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/es137x.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/fm801.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/hda/hdac.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/ich.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/maestro3.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/solo.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/t4dwave.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/via8233.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/via82c686.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/vibes.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/ac97.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/ac97.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/ac97_patch.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/ac97_patch.h#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/buffer.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/buffer.h#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pcm/sound.h#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/sbus/cs4231.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_ural.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/wi/if_wi.c#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/devfs/devfs_devs.c#2 integrate .. //depot/projects/zcopybpf/src/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/zcopybpf/src/sys/fs/pseudofs/pseudofs_vncache.c#4 integrate .. //depot/projects/zcopybpf/src/sys/geom/part/g_part.c#2 integrate .. //depot/projects/zcopybpf/src/sys/geom/uzip/g_uzip.c#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/bios.c#2 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/busdma_machdep.c#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/identcpu.c#4 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/local_apic.c#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/vm_machdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/i386/include/vmparam.h#3 integrate .. //depot/projects/zcopybpf/src/sys/ia64/include/vmparam.h#2 integrate .. //depot/projects/zcopybpf/src/sys/isa/isa_common.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_descrip.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_intr.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_linker.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_malloc.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_time.c#3 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_uuid.c#3 integrate .. //depot/projects/zcopybpf/src/sys/kern/sched_ule.c#5 integrate .. //depot/projects/zcopybpf/src/sys/kern/subr_rman.c#3 integrate .. //depot/projects/zcopybpf/src/sys/kern/subr_witness.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/uipc_syscalls.c#5 integrate .. //depot/projects/zcopybpf/src/sys/kern/vfs_bio.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/vfs_mount.c#5 integrate .. //depot/projects/zcopybpf/src/sys/modules/Makefile#5 integrate .. //depot/projects/zcopybpf/src/sys/modules/if_lagg/Makefile#1 branch .. //depot/projects/zcopybpf/src/sys/modules/if_trunk/Makefile#2 delete .. //depot/projects/zcopybpf/src/sys/modules/zfs/Makefile#3 integrate .. //depot/projects/zcopybpf/src/sys/net/ieee8023ad_lacp.c#2 integrate .. //depot/projects/zcopybpf/src/sys/net/ieee8023ad_lacp.h#2 integrate .. //depot/projects/zcopybpf/src/sys/net/if.c#5 integrate .. //depot/projects/zcopybpf/src/sys/net/if_ethersubr.c#5 integrate .. //depot/projects/zcopybpf/src/sys/net/if_lagg.c#1 branch .. //depot/projects/zcopybpf/src/sys/net/if_lagg.h#1 branch .. //depot/projects/zcopybpf/src/sys/net/if_trunk.c#2 delete .. //depot/projects/zcopybpf/src/sys/net/if_trunk.h#2 delete .. //depot/projects/zcopybpf/src/sys/net/if_var.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netgraph/ng_l2tp.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netgraph/ng_ppp.c#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/ip_fw2.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp.h#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_indata.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_indata.h#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_input.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_lock_bsd.h#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_output.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_pcb.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_pcb.h#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_structs.h#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_uio.h#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_usrreq.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_var.h#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctputil.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctputil.h#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp.h#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_input.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_output.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_subr.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet/tcp_var.h#5 integrate .. //depot/projects/zcopybpf/src/sys/netinet6/in6_pcb.c#2 integrate .. //depot/projects/zcopybpf/src/sys/netinet6/route6.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfsclient/nfs_bio.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfsclient/nfs_lock.c#2 integrate .. //depot/projects/zcopybpf/src/sys/nfsclient/nfs_vnops.c#4 integrate .. //depot/projects/zcopybpf/src/sys/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/zcopybpf/src/sys/pci/if_rlreg.h#2 integrate .. //depot/projects/zcopybpf/src/sys/pci/if_vr.c#3 integrate .. //depot/projects/zcopybpf/src/sys/pci/if_vrreg.h#2 integrate .. //depot/projects/zcopybpf/src/sys/pci/intpm.c#3 integrate .. //depot/projects/zcopybpf/src/sys/powerpc/powerpc/nexus.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_bsm_token.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/audit/audit_syscalls.c#4 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_audit.c#1 branch .. //depot/projects/zcopybpf/src/sys/security/mac/mac_framework.h#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_inet.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_net.c#2 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_pipe.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_policy.h#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_process.c#2 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_socket.c#2 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_system.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac/mac_vfs.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_biba/mac_biba.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_bsdextended/mac_bsdextended.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_ifoff/mac_ifoff.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_lomac/mac_lomac.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_mls/mac_mls.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_partition/mac_partition.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_portacl/mac_portacl.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_seeotheruids/mac_seeotheruids.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_stub/mac_stub.c#3 integrate .. //depot/projects/zcopybpf/src/sys/security/mac_test/mac_test.c#3 integrate .. //depot/projects/zcopybpf/src/sys/sparc64/include/vmparam.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sun4v/include/vmparam.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/interrupt.h#3 integrate .. //depot/projects/zcopybpf/src/sys/sys/ioctl_compat.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/mount.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/priv.h#5 integrate .. //depot/projects/zcopybpf/src/sys/sys/proc.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/socket.h#2 integrate .. //depot/projects/zcopybpf/src/sys/vm/swap_pager.c#3 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_contig.c#3 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_map.c#4 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_param.h#2 integrate Differences ... ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/busdma_machdep.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.79 2007/03/06 18:28:42 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.80 2007/04/17 21:05:34 jhb Exp $"); #include #include @@ -48,6 +48,7 @@ #include #include #include +#include #define MAX_BPAGES 8192 @@ -522,6 +523,9 @@ } else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) { printf("bus_dmamem_alloc failed to align memory properly.\n"); } + if (flags & BUS_DMA_NOCACHE) + pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, + PAT_UNCACHEABLE); CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (0); @@ -540,6 +544,7 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); + pmap_change_attr((vm_offset_t)vaddr, dmat->maxsize, PAT_WRITE_BACK); if ((dmat->maxsize <= PAGE_SIZE) && (dmat->alignment < dmat->maxsize) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/local_apic.c#3 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.37 2007/03/20 21:53:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.38 2007/04/25 19:58:41 ariff Exp $"); #include "opt_hwpmc_hooks.h" @@ -326,6 +326,29 @@ /* XXX: Error and thermal LVTs */ + if (strcmp(cpu_vendor, "AuthenticAMD") == 0) { + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. This feature renders + * the local APIC timer dead, so we disable it by reading + * the Interrupt Pending Message register and clearing both + * C1eOnCmpHalt (bit 28) and SmiOnCmpHalt (bit 27). + * + * Reference: + * "BIOS and Kernel Developer's Guide for AMD NPT + * Family 0Fh Processors" + * #32559 revision 3.00 + */ + if ((cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + uint64_t msr; + + msr = rdmsr(0xc0010055); + if (msr & 0x18000000) + wrmsr(0xc0010055, msr & ~0x18000000ULL); + } + } + intr_restore(eflags); } ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/pmap.c#5 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.582 2007/04/13 16:07:29 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $"); /* * Manages physical address maps. @@ -209,7 +209,7 @@ static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, - vm_offset_t sva, pd_entry_t ptepde); + vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free); static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde); static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va); @@ -221,8 +221,9 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); -static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); -static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t* free); +static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t, vm_page_t *); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); @@ -1065,24 +1066,36 @@ /*************************************************** * Page table page management routines..... ***************************************************/ +static PMAP_INLINE void +pmap_free_zero_pages(vm_page_t free) +{ + vm_page_t m; + while (free != NULL) { + m = free; + free = m->right; + vm_page_free_zero(m); + } +} + /* * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t *free) { --m->wire_count; if (m->wire_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); + return _pmap_unwire_pte_hold(pmap, va, m, free); else return 0; } static int -_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +_pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m, + vm_page_t *free) { vm_offset_t pteva; @@ -1114,14 +1127,14 @@ vm_page_t pdpg; pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdpg); + pmap_unwire_pte_hold(pmap, va, pdpg, free); } if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - pmap_unwire_pte_hold(pmap, va, pdppg); + pmap_unwire_pte_hold(pmap, va, pdppg, free); } /* @@ -1130,7 +1143,13 @@ */ pmap_invalidate_page(pmap, pteva); - vm_page_free_zero(m); + /* + * Put page on a list so that it is released after + * *ALL* TLB shootdown is done + */ + m->right = *free; + *free = m; + atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1140,7 +1159,7 @@ * conditionally free the page, and manage the hold/wire counts. */ static int -pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde) +pmap_unuse_pt(pmap_t pmap, vm_offset_t va, pd_entry_t ptepde, vm_page_t *free) { vm_page_t mpte; @@ -1148,7 +1167,7 @@ return 0; KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); - return pmap_unwire_pte_hold(pmap, va, mpte); + return pmap_unwire_pte_hold(pmap, va, mpte, free); } void @@ -1366,7 +1385,7 @@ { vm_pindex_t ptepindex; pd_entry_t *pd; - vm_page_t m; + vm_page_t m, free; KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, @@ -1390,8 +1409,10 @@ *pd = 0; pd = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va)); + free = NULL; + pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va), &free); pmap_invalidate_all(kernel_pmap); + pmap_free_zero_pages(free); } /* @@ -1609,7 +1630,7 @@ pt_entry_t *pte, tpte; pv_entry_t next_pv, pv; vm_offset_t va; - vm_page_t m; + vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { if (m->hold_count || m->busy) @@ -1635,12 +1656,14 @@ va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, va, ptepde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); m->md.pv_list_count--; - pmap_unuse_pt(pmap, va, ptepde); free_pv_entry(pmap, pv); if (pmap != locked_pmap) PMAP_UNLOCK(pmap); @@ -1833,7 +1856,8 @@ * pmap_remove_pte: do the things to unmap a page in a process */ static int -pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, pd_entry_t ptepde) +pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va, + pd_entry_t ptepde, vm_page_t *free) { pt_entry_t oldpte; vm_page_t m; @@ -1861,7 +1885,7 @@ vm_page_flag_set(m, PG_REFERENCED); pmap_remove_entry(pmap, m, va); } - return (pmap_unuse_pt(pmap, va, ptepde)); + return (pmap_unuse_pt(pmap, va, ptepde, free)); } /* @@ -1871,6 +1895,7 @@ pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde) { pt_entry_t *pte; + vm_page_t free = NULL; PMAP_LOCK_ASSERT(pmap, MA_OWNED); if ((*pde & PG_V) == 0) @@ -1878,8 +1903,9 @@ pte = pmap_pde_to_pte(pde, va); if ((*pte & PG_V) == 0) return; - pmap_remove_pte(pmap, pte, va, *pde); + pmap_remove_pte(pmap, pte, va, *pde, &free); pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); } /* @@ -1896,6 +1922,7 @@ pdp_entry_t *pdpe; pd_entry_t ptpaddr, *pde; pt_entry_t *pte; + vm_page_t free = NULL; int anyvalid; /* @@ -1959,7 +1986,7 @@ if ((ptpaddr & PG_PS) != 0) { *pde = 0; pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE; - pmap_unuse_pt(pmap, sva, *pdpe); + pmap_unuse_pt(pmap, sva, *pdpe, &free); anyvalid = 1; continue; } @@ -1983,14 +2010,16 @@ */ if ((*pte & PG_G) == 0) anyvalid = 1; - if (pmap_remove_pte(pmap, pte, sva, ptpaddr)) + if (pmap_remove_pte(pmap, pte, sva, ptpaddr, &free)) break; } } out: - vm_page_unlock_queues(); - if (anyvalid) + if (anyvalid) { pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); + } + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2014,6 +2043,7 @@ pmap_t pmap; pt_entry_t *pte, tpte; pd_entry_t ptepde; + vm_page_t free; #if defined(PMAP_DIAGNOSTIC) /* @@ -2045,10 +2075,12 @@ pv->pv_va, tpte)); vm_page_dirty(m); } + free = NULL; + pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); pmap_invalidate_page(pmap, pv->pv_va); + pmap_free_zero_pages(free); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; - pmap_unuse_pt(pmap, pv->pv_va, ptepde); free_pv_entry(pmap, pv); PMAP_UNLOCK(pmap); } @@ -2161,9 +2193,9 @@ } } } - vm_page_unlock_queues(); if (anychanged) pmap_invalidate_all(pmap); + vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -2413,6 +2445,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte) { + vm_page_t free; pt_entry_t *pte; vm_paddr_t pa; @@ -2471,7 +2504,7 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + mpte->wire_count--; mpte = NULL; } return (mpte); @@ -2483,7 +2516,11 @@ if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0 && !pmap_try_insert_pv_entry(pmap, va, m)) { if (mpte != NULL) { - pmap_unwire_pte_hold(pmap, va, mpte); + free = NULL; + if (pmap_unwire_pte_hold(pmap, va, mpte, &free)) { + pmap_invalidate_page(pmap, va); + pmap_free_zero_pages(free); + } mpte = NULL; } return (mpte); @@ -2657,6 +2694,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len, vm_offset_t src_addr) { + vm_page_t free; vm_offset_t addr; vm_offset_t end_addr = src_addr + len; vm_offset_t va_next; @@ -2716,7 +2754,7 @@ dst_pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE; } else - pmap_unwire_pte_hold(dst_pmap, addr, dstmpde); + dstmpde->wire_count--; continue; } @@ -2753,9 +2791,15 @@ *dst_pte = ptetemp & ~(PG_W | PG_M | PG_A); dst_pmap->pm_stats.resident_count++; - } else - pmap_unwire_pte_hold(dst_pmap, addr, - dstmpte); + } else { + free = NULL; + if (pmap_unwire_pte_hold(dst_pmap, + addr, dstmpte, &free)) { + pmap_invalidate_page(dst_pmap, + addr); + pmap_free_zero_pages(free); + } + } if (dstmpte->wire_count >= srcmpte->wire_count) break; } @@ -2866,7 +2910,7 @@ pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; - vm_page_t m; + vm_page_t m, free = NULL; pv_entry_t pv; struct pv_chunk *pc, *npc; int field, idx; @@ -2939,7 +2983,7 @@ if (TAILQ_EMPTY(&m->md.pv_list)) vm_page_flag_clear(m, PG_WRITEABLE); pmap_unuse_pt(pmap, pv->pv_va, - *vtopde(pv->pv_va)); + *vtopde(pv->pv_va), &free); } } if (allfree) { @@ -2952,8 +2996,9 @@ vm_page_free(m); } } + pmap_invalidate_all(pmap); + pmap_free_zero_pages(free); vm_page_unlock_queues(); - pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); } ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/vm_machdep.c#2 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.252 2006/09/17 14:54:14 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.254 2007/04/24 21:17:45 jhb Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -457,6 +457,10 @@ static void cpu_reset_real() { + struct region_descriptor null_idt; + int b; + + disable_intr(); /* * Attempt to do a CPU reset via the keyboard controller, @@ -465,14 +469,44 @@ */ outb(IO_KBD + 4, 0xFE); DELAY(500000); /* wait 0.5 sec to see if that did it */ - printf("Keyboard reset did not work, attempting CPU shutdown\n"); + + /* + * Attempt to force a reset via the Reset Control register at + * I/O port 0xcf9. Bit 2 forces a system reset when it is + * written as 1. Bit 1 selects the type of reset to attempt: + * 0 selects a "soft" reset, and 1 selects a "hard" reset. We + * try to do a "soft" reset first, and then a "hard" reset. + */ + outb(0xcf9, 0x2); + outb(0xcf9, 0x6); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + + /* + * Attempt to force a reset via the Fast A20 and Init register + * at I/O port 0x92. Bit 1 serves as an alternate A20 gate. + * Bit 0 asserts INIT# when set to 1. We are careful to only + * preserve bit 1 while setting bit 0. We also must clear bit + * 0 before setting it if it isn't already clear. + */ + b = inb(0x92); + if (b != 0xff) { + if ((b & 0x1) != 0) + outb(0x92, b & 0xfe); + outb(0x92, b | 0x1); + DELAY(500000); /* wait 0.5 sec to see if that did it */ + } + + printf("No known reset method worked, attempting CPU shutdown\n"); DELAY(1000000); /* wait 1 sec for printf to complete */ - /* Force a shutdown by unmapping entire address space. */ - bzero((caddr_t)PML4map, PAGE_SIZE); + /* Wipe the IDT. */ + null_idt.rd_limit = 0; + null_idt.rd_base = 0; + lidt(&null_idt); /* "good night, sweet prince .... " */ - invltlb(); + breakpoint(); + /* NOTREACHED */ while(1); } ==== //depot/projects/zcopybpf/src/sys/amd64/include/vmparam.h#2 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.45 2004/10/27 17:21:15 peter Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.46 2007/04/21 01:14:47 sepotvin Exp $ */ @@ -122,7 +122,8 @@ /* * How many physical pages per KVA page allocated. - * min(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MAX) + * min(max(max(VM_KMEM_SIZE, Physical memory/VM_KMEM_SIZE_SCALE), + * VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX) * is the total KVA space allocated for kmem_map. */ #ifndef VM_KMEM_SIZE_SCALE ==== //depot/projects/zcopybpf/src/sys/amd64/linux32/linux32_dummy.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.8 2007/03/29 02:11:46 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.9 2007/04/18 18:08:12 jkim Exp $"); #include #include @@ -64,7 +64,6 @@ DUMMY(mincore); DUMMY(fadvise64); DUMMY(ptrace); -DUMMY(settimeofday); DUMMY(lookup_dcookie); DUMMY(epoll_create); DUMMY(epoll_ctl); ==== //depot/projects/zcopybpf/src/sys/amd64/linux32/linux32_machdep.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.39 2007/03/30 17:27:13 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.42 2007/04/18 20:12:05 jkim Exp $"); #include #include @@ -252,7 +252,7 @@ if (iovcnt > UIO_MAXIOV) return (EINVAL); iovlen = iovcnt * sizeof(struct iovec); - uio = malloc(iovlen + sizeof *uio, M_IOV, M_WAITOK); + uio = malloc(iovlen + sizeof(*uio), M_IOV, M_WAITOK); iov = (struct iovec *)(uio + 1); for (i = 0; i < iovcnt; i++) { error = copyin(&iovp[i], &iov32, sizeof(struct iovec32)); @@ -526,7 +526,9 @@ td2 = FIRST_THREAD_IN_PROC(p2); - /* make it run */ + /* + * Make this runnable after we are finished with it. + */ mtx_lock_spin(&sched_lock); TD_SET_CAN_RUN(td2); sched_add(td2, SRQ_BORING); @@ -572,8 +574,8 @@ /* * XXX: In Linux, sharing of fs info (chroot/cwd/umask) * and open files is independant. In FreeBSD, its in one - * structure but in reality it does not make any problems - * because both of these flags are set at once usually. + * structure but in reality it does not cause any problems + * because both of these flags are usually set together. */ if (!(args->flags & (LINUX_CLONE_FILES | LINUX_CLONE_FS))) ff |= RFFDG; @@ -660,15 +662,15 @@ if (args->flags & LINUX_CLONE_SETTLS) { struct user_segment_descriptor sd; struct l_user_desc info; - int a[2]; + int a[2]; - error = copyin((void *)td->td_frame->tf_rsi, &info, + error = copyin((void *)td->td_frame->tf_rsi, &info, sizeof(struct l_user_desc)); if (error) { printf(LMSG("copyin failed!")); } else { /* We might copy out the entry_number as GUGS32_SEL. */ - info.entry_number = GUGS32_SEL; + info.entry_number = GUGS32_SEL; error = copyout(&info, (void *)td->td_frame->tf_rsi, sizeof(struct l_user_desc)); if (error) @@ -871,7 +873,7 @@ * * Our mmap with MAP_STACK takes addr as the maximum * downsize limit on BOS, and as len the max size of - * the region. It them maps the top SGROWSIZ bytes, + * the region. It then maps the top SGROWSIZ bytes, * and auto grows the region down, up to the limit * in addr. * @@ -1167,17 +1169,44 @@ microtime(&atv); atv32.tv_sec = atv.tv_sec; atv32.tv_usec = atv.tv_usec; - error = copyout(&atv32, uap->tp, sizeof (atv32)); + error = copyout(&atv32, uap->tp, sizeof(atv32)); } if (error == 0 && uap->tzp != NULL) { rtz.tz_minuteswest = tz_minuteswest; rtz.tz_dsttime = tz_dsttime; - error = copyout(&rtz, uap->tzp, sizeof (rtz)); + error = copyout(&rtz, uap->tzp, sizeof(rtz)); } return (error); } int +linux_settimeofday(struct thread *td, struct linux_settimeofday_args *uap) +{ + l_timeval atv32; + struct timeval atv, *tvp; + struct timezone atz, *tzp; + int error; + + if (uap->tp) { + error = copyin(uap->tp, &atv32, sizeof(atv32)); + if (error) + return (error); + atv.tv_sec = atv32.tv_sec; + atv.tv_usec = atv32.tv_usec; + tvp = &atv; + } else + tvp = NULL; + if (uap->tzp) { + error = copyin(uap->tzp, &atz, sizeof(atz)); + if (error) + return (error); + tzp = &atz; + } else + tzp = NULL; + return (kern_settimeofday(td, tvp, tzp)); +} + +int linux_getrusage(struct thread *td, struct linux_getrusage_args *uap) { struct l_rusage s32; @@ -1242,7 +1271,7 @@ #ifdef DEBUG if (ldebug(set_thread_area)) - printf(ARGS(set_thread_area, "%i, %x, %x, %i, %i, %i, " + printf(ARGS(set_thread_area, "%i, %x, %x, %i, %i, %i, " "%i, %i, %i"), info.entry_number, info.base_addr, info.limit, info.seg_32bit, info.contents, info.read_exec_only, info.limit_in_pages, @@ -1261,9 +1290,10 @@ * The tls_array[] is used only in [gs]et_thread_area() syscalls and * for loading the GDT descriptors. We use just one GDT descriptor * for TLS, so we will load just one. - * XXX: This doesnt work when user-space process tries to use more + * + * XXX: This doesn't work when a user space process tries to use more * than one TLS segment. Comment in the Linux source says wine might - * do that. + * do this. */ /* @@ -1284,8 +1314,9 @@ /* * We have to copy out the GDT entry we use. - * XXX: What if userspace program does not check return value and - * tries to use 6, 7 or 8? + * + * XXX: What if a user space program does not check the return value + * and tries to use 6, 7 or 8? */ error = copyout(&info, args->desc, sizeof(struct l_user_desc)); if (error) ==== //depot/projects/zcopybpf/src/sys/bsm/audit.h#2 (text) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#34 $ - * $FreeBSD: src/sys/bsm/audit.h,v 1.6 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#36 + * $FreeBSD: src/sys/bsm/audit.h,v 1.8 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _BSM_AUDIT_H ==== //depot/projects/zcopybpf/src/sys/bsm/audit_internal.h#2 (text) ==== @@ -34,8 +34,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#14 $ - * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.5 2006/09/21 07:27:02 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#16 + * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.7 2007/04/17 12:27:08 rwatson Exp $ */ #ifndef _AUDIT_INTERNAL_H ==== //depot/projects/zcopybpf/src/sys/bsm/audit_kevents.h#2 (text) ==== @@ -30,8 +30,8 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#29 $ - * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.9 2006/09/25 12:22:07 rwatson Exp $ + * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#32 + * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.11 2007/04/17 12:27:08 rwatson Exp $ */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 28 21:32:00 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 77C3416A408; Sat, 28 Apr 2007 21:31:59 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3530416A407 for ; Sat, 28 Apr 2007 21:31:59 +0000 (UTC) (envelope-from karma@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 20B6B13C48A for ; Sat, 28 Apr 2007 21:31:59 +0000 (UTC) (envelope-from karma@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l3SLVxea044326 for ; Sat, 28 Apr 2007 21:31:59 GMT (envelope-from karma@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l3SLVuJH044321 for perforce@freebsd.org; Sat, 28 Apr 2007 21:31:56 GMT (envelope-from karma@FreeBSD.org) Date: Sat, 28 Apr 2007 21:31:56 GMT Message-Id: <200704282131.l3SLVuJH044321@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to karma@FreeBSD.org using -f From: Alexey Mikhailov To: Perforce Change Reviews Cc: Subject: PERFORCE change 118918 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2007 21:32:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=118918 Change 118918 by karma@karma_ez on 2007/04/28 21:31:30 Sync with main tree. Affected files ... .. //depot/projects/soc2007/karma_audit/contrib/openbsm/HISTORY#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/README#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/TODO#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/VERSION#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/audit/audit.8#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditd/auditd.8#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditd/auditd.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditfilterd/auditfilterd.8#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditfilterd/auditfilterd.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditreduce/auditreduce.1#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/praudit/praudit.1#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/praudit/praudit.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/bsm/libbsm.h#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/compat/clock_gettime.h#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/config/config.h#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/configure#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/configure.ac#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/etc/audit_event#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_class.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_control.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_event.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_free_token.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_io.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_mask.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_open.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_token.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/au_user.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/audit_submit.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/bsm_io.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/bsm_notify.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/bsm_token.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/bsm_wrappers.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/libbsm/libbsm.3#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit.log.5#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit_class.5#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit_control.5#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit_event.5#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit_user.5#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/audit_warn.5#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/auditctl.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/auditon.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/getaudit.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/getauid.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/setaudit.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/man/setauid.2#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/bsm/generate.c#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/arg32_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/data_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/file_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/in_addr_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/ip_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/ipc_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/iport_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/opaque_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/path_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32ex_record#2 delete .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32ex_record-IPv4#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32ex_record-IPv6#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32ex_token#2 delete .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32ex_token-IPv4#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process32ex_token-IPv6#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process64_record#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process64_token#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process64ex_record-IPv4#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process64ex_record-IPv6#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process64ex_token-IPv4#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/process64ex_token-IPv6#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/return32_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/seq_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/subject32_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/subject32ex_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/subject32ex_token-IPv4#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/subject32ex_token-IPv6#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/text_record#2 integrate .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/zonename_record#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/test/reference/zonename_token#1 branch .. //depot/projects/soc2007/karma_audit/contrib/openbsm/tools/audump.c#2 integrate Differences ... ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/HISTORY#2 (text) ==== @@ -1,3 +1,23 @@ +OpenBSM 1.0 alpha 14 + +- Fix endian issues when processing IPv6 addresses for extended subject + and process tokens. +- gcc41 warnings clean. +- Teach audit_submit(3) about getaudit_addr(2). +- Add support for zonename tokens. + +OpenBSM 1.0 alpha 13 + +- compat/clock_gettime.h now provides a compatibility implementation of + clock_gettime(), which fixes building on Mac OS X. +- Countless man page improvements, markup fixes, content fixs, etc. +- XML printing support via "praudit -x". +- audit.log.5 expanded to include additional BSM token types. +- Added encoding and decoding routines for process64_ex, process32_ex, + subject32_ex, header64, and attr64 tokens. +- Additional audit event identifiers for listen, mlockall/munlockall, + getpath, POSIX message queues, and mandatory access control. + OpenBSM 1.0 alpha 12 - Correct bug in auditreduce which prevented the -c option from working @@ -264,4 +284,4 @@ to support reloading of kernel event table. - Allow comments in /etc/security configuration files. -$P4: //depot/projects/trustedbsd/openbsm/HISTORY#39 $ +$P4: //depot/projects/trustedbsd/openbsm/HISTORY#50 $ ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/README#2 (text) ==== @@ -3,11 +3,13 @@ Introduction OpenBSM provides an open source implementation of Sun's BSM Audit API. -Originally created under contract to Apple Computer by McAfee Research, -this implementation is now maintained by volunteers and the generous -contribution of several organizations. Coupled with a kernel audit -implementation, OpenBSM can be used to maintain system audit streams, and -is a foundation for an Audit-enabled system. +Originally created under contract to Apple Computer by McAfee Research, this +implementation is now maintained by volunteers and the generous contribution +of several organizations. Coupled with a kernel audit implementation, +OpenBSM can be used to maintain system audit streams, and is a foundation for +an Audit-enabled system. Portions of OpenBSM, including include files and +token-building routines, are reusable in a kernel audit implementation, and +may be found in the FreeBSD and Mac OS X kernels. Contents @@ -15,13 +17,22 @@ bin/ Audit-related command line tools bsm/ System include files for BSM + compat/ Compatibility code to build on various OS's etc/ Sample /etc/security configuration files libbsm/ Implementation of BSM library interfaces and man pages man/ System call and configuration file man pages + modules/ Directory for auditfilterd module source + test/ Test token sets and geneneration program + tools/ Tool directory, including audump to dump databases -OpenBSM currently builds on FreeBSD and Darwin. With Makefile adjustment -and minor tweaks, it should build without problems on a broad range of -POSIX-like systems. +The following programs are included with OpenBSM: + + audit Command line audit control tool + auditd Audit management daemon + auditfilterd Experimental event monitoring framework + auditreduce Audit trail reduction tool + audump Debugging tool to parse and print audit databases + praudit Tool to print audit trails Building @@ -29,7 +40,7 @@ for building on a range of operating systems, including FreeBSD, Mac OS X, and Linux. Depending on the availability of audit facilities in the underlying operating system, some components that depend on kernel audit -support are built conditionally. Typically, build will be performed using +support are built conditionally. Typically, build will be performed using: ./configure make @@ -51,13 +62,12 @@ You will need to manually propagate openbsm/etc/* into /etc on your system; this is not done automatically so as to avoid disrupting the current -configuration. Currently, the locations of these files is not -configurable. +configuration. Currently, the locations of these files is not configurable. Credits -The following organizations and individuals have contributed substantially -to the development of OpenBSM: +The following organizations and individuals have contributed substantially to +the development of OpenBSM: Apple Computer, Inc. McAfee Research, McAfee, Inc. @@ -76,6 +86,9 @@ Martin Fong Pawel Worach Martin Englund + Ruslan Ermilov + Martin Voros + Diego Giagio In addition, Coverity, Inc.'s Prevent(tm) static analysis tool and Gimpel Software's FlexeLint tool were used to identify a number of bugs in the @@ -97,4 +110,4 @@ http://www.TrustedBSD.org/ -$P4: //depot/projects/trustedbsd/openbsm/README#19 $ +$P4: //depot/projects/trustedbsd/openbsm/README#23 $ ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/TODO#2 (text) ==== @@ -1,4 +1,3 @@ -- Teach praudit how to general XML format BSM streams. - Teach libbsm about any additional 64-bit token types that are present in more recent Solaris versions. - Build a regression test suite for libbsm that generates each token @@ -20,4 +19,4 @@ - Put hostname in trail file name. - Document audit_warn event arguments. -$P4: //depot/projects/trustedbsd/openbsm/TODO#8 $ +$P4: //depot/projects/trustedbsd/openbsm/TODO#9 $ ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/VERSION#2 (text) ==== @@ -1,1 +1,1 @@ -OPENBSM_1_0_ALPHA_12 +OPENBSM_1_0_ALPHA_14 ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/audit/audit.8#2 (text) ==== @@ -2,20 +2,20 @@ .\" All rights reserved. .\" .\" @APPLE_BSD_LICENSE_HEADER_START@ -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: -.\" +.\" .\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. +.\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. +.\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of .\" its contributors may be used to endorse or promote products derived -.\" from this software without specific prior written permission. -.\" +.\" from this software without specific prior written permission. +.\" .\" THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY .\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -26,32 +26,27 @@ .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" +.\" .\" @APPLE_BSD_LICENSE_HEADER_END@ .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#6 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/audit/audit.8#9 $ .\" -.Dd January 24, 2004 +.Dd October 2, 2006 .Dt AUDIT 8 .Os .Sh NAME .Nm audit .Nd audit management utility .Sh SYNOPSIS -.Nm audit -.Op Fl nst -.Op Ar file +.Nm +.Fl n | s | t .Sh DESCRIPTION The -.Nm +.Nm utility controls the state of the audit system. -The optional -.Ar file -operand specifies the location of the audit control input file (default -.Pa /etc/security/audit_control ) . -.Pp -The options are as follows: -.Bl -tag -width Ds +One of the following flags is required as an argument to +.Nm : +.Bl -tag -width indent .It Fl n Forces the audit system to close the existing audit log file and rotate to a new log file in a location specified in the audit control file. @@ -69,22 +64,27 @@ .Xr auditd 8 daemon must already be running. .Sh FILES -.Bl -tag -width "/etc/security/audit_control" -compact +.Bl -tag -width ".Pa /etc/security/audit_control" -compact .It Pa /etc/security/audit_control -Default audit policy file used to configure the auditing system. +Audit policy file used to configure the auditing system. .El .Sh SEE ALSO +.Xr audit 4 , .Xr audit_control 5 , .Xr auditd 8 +.Sh HISTORY +The OpenBSM implementation was created by McAfee Research, the security +division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. +It was subsequently adopted by the TrustedBSD Project as the foundation for +the OpenBSM distribution. .Sh AUTHORS +.An -nosplit This software was created by McAfee Research, the security research division of McAfee, Inc., under contract to Apple Computer Inc. -Additional authors include Wayne Salamon, Robert Watson, and SPARTA Inc. +Additional authors include +.An Wayne Salamon , +.An Robert Watson , +and SPARTA Inc. .Pp The Basic Security Module (BSM) interface to audit records and audit event stream format were defined by Sun Microsystems. -.Sh HISTORY -The OpenBSM implementation was created by McAfee Research, the security -division of McAfee Inc., under contract to Apple Computer Inc. in 2004. -It was subsequently adopted by the TrustedBSD Project as the foundation for -the OpenBSM distribution. ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditd/auditd.8#2 (text) ==== @@ -29,46 +29,35 @@ .\" .\" @APPLE_BSD_LICENSE_HEADER_END@ .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.8#9 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.8#12 $ .\" -.Dd January 24, 2004 +.Dd October 2, 2006 .Dt AUDITD 8 .Os .Sh NAME .Nm auditd .Nd audit log management daemon .Sh SYNOPSIS -.Nm auditd -.Op Fl dhs +.Nm +.Op Fl d .Sh DESCRIPTION The .Nm -daemon responds to requests from the audit(1) utility and notifications -from the kernel. It manages the resulting audit log files and specified +daemon responds to requests from the +.Xr audit 8 +utility and notifications +from the kernel. +It manages the resulting audit log files and specified log file locations. .Pp The options are as follows: -.Bl -tag -width Ds +.Bl -tag -width indent .It Fl d -Starts the daemon in debug mode - it will not daemonize. +Starts the daemon in debug mode \[em] it will not daemonize. .El -.Pp -The historical -.Fl h -and -.Fl s -flags are now configured using -.Xr audit_control 5 -policy flags -.Dv ahlt -and -.Dv cnt , -and are no longer available as arguments to -.Xr auditd 8 . .Sh NOTE -.Pp To assure uninterrupted audit support, the -.Nm auditd +.Nm daemon should not be started and stopped manually. Instead, the .Xr audit 8 @@ -78,28 +67,51 @@ .Pa audit_control file. .Pp -.\" Sending a SIGHUP to a running -.\" .Nm auditd +.\" Sending a +.\" .Dv SIGHUP +.\" to a running +.\" .Nm .\" daemon will force it to exit. -Sending a SIGTERM to a running -.Nm auditd +Sending a +.Dv SIGTERM +to a running +.Nm daemon will force it to exit. .Sh FILES -.Bl -tag -width "/var/audit" -compact +.Bl -tag -width ".Pa /var/audit" -compact .It Pa /var/audit Default directory for storing audit log files. .El +.Sh COMPATIBILITY +The historical +.Fl h +and +.Fl s +flags are now configured using +.Xr audit_control 5 +policy flags +.Cm ahlt +and +.Cm cnt , +and are no longer available as arguments to +.Nm . .Sh SEE ALSO +.Xr audit 4 , +.Xr audit_control 5 , .Xr audit 8 +.Sh HISTORY +The OpenBSM implementation was created by McAfee Research, the security +division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. +It was subsequently adopted by the TrustedBSD Project as the foundation for +the OpenBSM distribution. .Sh AUTHORS +.An -nosplit This software was created by McAfee Research, the security research division of McAfee, Inc., under contract to Apple Computer Inc. -Additional authors include Wayne Salamon, Robert Watson, and SPARTA Inc. +Additional authors include +.An Wayne Salamon , +.An Robert Watson , +and SPARTA Inc. .Pp The Basic Security Module (BSM) interface to audit records and audit event stream format were defined by Sun Microsystems. -.Sh HISTORY -The OpenBSM implementation was created by McAfee Research, the security -division of McAfee Inc., under contract to Apple Computer Inc. in 2004. -It was subsequently adopted by the TrustedBSD Project as the foundation for -the OpenBSM distribution. ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditd/auditd.c#2 (text) ==== @@ -30,7 +30,7 @@ * * @APPLE_BSD_LICENSE_HEADER_END@ * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#23 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditd/auditd.c#25 $ */ #include @@ -865,7 +865,7 @@ syslog(LOG_ERR, "Could not create audit startup event."); else { /* - * XXXCSJP Perhaps we wan't more robust audit records for + * XXXCSJP Perhaps we want more robust audit records for * audit start up and shutdown. This might include capturing * failures to initialize the audit subsystem? */ @@ -896,7 +896,7 @@ int debug = 0; int rc; - while ((ch = getopt(argc, argv, "dhs")) != -1) { + while ((ch = getopt(argc, argv, "d")) != -1) { switch(ch) { case 'd': /* Debug option. */ ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditfilterd/auditfilterd.8#2 (text) ==== @@ -23,18 +23,19 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#2 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.8#4 $ .\" -.Dd March 27, 2006 +.Dd October 3, 2006 .Dt AUDITFILTERD 8 .Os .Sh NAME .Nm auditfilterd .Nd audit filter daemon .Sh SYNOPSIS -.Nm auditfilterd +.Nm .Op Fl d .Op Fl c Ar conffile +.Op Fl p Ar pipefile .Op Fl t Ar trailfile .Sh DESCRIPTION The @@ -44,18 +45,23 @@ It is configured using the .Xr audit_filter 5 configuration file. +The source can either be a pipe or a file. .Pp The options are as follows: -.Bl -tag -width Ds -.It Fl d -Starts the daemon in debug mode - it will not daemonize. +.Bl -tag -width indent .It Fl c Ar conffile Specify an alternative configuration file. +.It Fl d +Starts the daemon in debug mode \[em] it will not daemonize. +.It Fl p Ar pipefile +Specify a pipe as an alternative source of audit event records. +Default is +.Pa /dev/auditpipe . .It Fl t Ar trailfile -Specify an alternative source of audit event records. +Specify a file as an alternative source of audit event records. .El .Sh FILES -.Bl -tag -width "/etc/security/audit_filterd" -compact +.Bl -tag -width ".Pa /etc/security/audit_filterd" -compact .It Pa /etc/security/audit_filterd Default configuration file for .Nm . @@ -66,12 +72,13 @@ .Sh SEE ALSO .Xr audit 8 , .Xr auditd 8 -.Sh AUTHORS -The -.Nm -daemon and audit filter APIs were created by Robert Watson. .Sh HISTORY The OpenBSM implementation was created by McAfee Research, the security -division of McAfee Inc., under contract to Apple Computer Inc. in 2004. +division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. It was subsequently adopted by the TrustedBSD Project as the foundation for the OpenBSM distribution. +.Sh AUTHORS +The +.Nm +daemon and audit filter APIs were created by +.An Robert Watson . ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditfilterd/auditfilterd.c#2 (text) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#9 $ + * $P4: //depot/projects/trustedbsd/openbsm/bin/auditfilterd/auditfilterd.c#11 $ */ /* @@ -48,6 +48,10 @@ #include #endif +#ifndef HAVE_CLOCK_GETTIME +#include +#endif + #include #include @@ -76,7 +80,7 @@ usage(void) { - fprintf(stderr, "auditfilterd [-c conffile] [-d] [-p pipefile]" + fprintf(stderr, "auditfilterd [-d] [-c conffile] [-p pipefile]" " [-t trailfile]\n"); fprintf(stderr, " -c Specify configuration file (default: %s)\n", AUDITFILTERD_CONFFILE); ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/auditreduce/auditreduce.1#2 (text) ==== @@ -1,18 +1,18 @@ .\" Copyright (c) 2004 Apple Computer, Inc. .\" All rights reserved. -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. +.\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. +.\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of .\" its contributors may be used to endorse or promote products derived -.\" from this software without specific prior written permission. -.\" +.\" from this software without specific prior written permission. +.\" .\" THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -25,7 +25,7 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditreduce/auditreduce.1#12 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/auditreduce/auditreduce.1#14 $ .\" .Dd January 24, 2004 .Dt AUDITREDUCE 1 @@ -34,44 +34,43 @@ .Nm auditreduce .Nd "select records from audit trail files" .Sh SYNOPSIS -.Nm auditreduce +.Nm .Op Fl A -.Op Fl a Ar YYYYMMDD[HH[MM[SS]]] -.Op Fl b Ar YYYYMMDD[HH[MM[SS]]] +.Op Fl a Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS +.Op Fl b Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS .Op Fl c Ar flags .Op Fl d Ar YYYYMMDD .Op Fl e Ar euid .Op Fl f Ar egid .Op Fl g Ar rgid +.Op Fl j Ar id +.Op Fl m Ar event +.Op Fl o Ar object Ns = Ns Ar value .Op Fl r Ar ruid .Op Fl u Ar auid -.Op Fl j Ar id -.Op Fl m Ar event -.Op Fl o Ar object=value -.Op Ar file ... +.Op Ar .Sh DESCRIPTION The -.Nm +.Nm utility selects records from the audit trail files based on the specified criteria. Matching audit records are printed to the standard output in their raw binary form. -If no filename is specified, the standard input is used +If no +.Ar file +argument is specified, the standard input is used by default. -Use the -.Nm praudit +Use the +.Xr praudit 1 utility to print the selected audit records in human-readable form. -See -.Xr praudit 1 -for more information. .Pp The options are as follows: -.Bl -tag -width Ds +.Bl -tag -width indent .It Fl A Select all records. -.It Fl a Ar YYYYMMDD[HH[MM[SS]]] +.It Fl a Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS Select records that occurred after or on the given datetime. -.It Fl b Ar YYYYMMDD[HH[MM[SS]]] +.It Fl b Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS Select records that occurred before the given datetime. .It Fl c Ar flags Select records matching the given audit classes specified as a comma @@ -86,15 +85,11 @@ or .Fl b . .It Fl e Ar euid -Select records with the given effective user id or name. +Select records with the given effective user ID or name. .It Fl f Ar egid -Select records with the given effective group id or name. +Select records with the given effective group ID or name. .It Fl g Ar rgid -Select records with the given real group id or name. -.It Fl r Ar ruid -Select records with the given real user id or name. -.It Fl u Ar auid -Select records with the given audit id. +Select records with the given real group ID or name. .It Fl j Ar id Select records having a subject token with matching ID. .It Fl m Ar event @@ -102,45 +97,53 @@ See .Xr audit_event 5 for a description of audit event names and numbers. -.It Fl o Ar object=value -.Bl -tag -width Ds -.It Nm file +.It Fl o Ar object Ns = Ns Ar value +.Bl -tag -width ".Cm msgqid" +.It Cm file Select records containing path tokens, where the pathname matches one of the comma delimited extended regular expression contained in given specification. -Regular expressions which are prefixed with a tilde (~) are excluded +Regular expressions which are prefixed with a tilde +.Pq Ql ~ +are excluded from the search results. These extended regular expressions are processed from left to right, and a path will either be selected or deslected based on the first match. .Pp -Since commas are used to delimit the regular expressions, a backslash (\\) -character should be used to escape the comma if it's a part of the search +Since commas are used to delimit the regular expressions, a backslash +.Pq Ql \e +character should be used to escape the comma if it is a part of the search pattern. -.It Nm msgqid -Select records containing the given message queue id. -.It Nm pid -Select records containing the given process id. -.It Nm semid -Select records containing the given semaphore id. -.It Nm shmid -Select records containing the given shared memory id. +.It Cm msgqid +Select records containing the given message queue ID. +.It Cm pid +Select records containing the given process ID. +.It Cm semid +Select records containing the given semaphore ID. +.It Cm shmid +Select records containing the given shared memory ID. .El +.It Fl r Ar ruid +Select records with the given real user ID or name. +.It Fl u Ar auid +Select records with the given audit ID. .El -.Sh Examples -.Pp +.Sh EXAMPLES To select all records associated with effective user ID root from the audit log .Pa /var/audit/20031016184719.20031017122634 : +.Bd -literal -offset indent +auditreduce -e root \e + /var/audit/20031016184719.20031017122634 +.Ed .Pp -.Nm --e root /var/audit/20031016184719.20031017122634 -.Pp To select all .Xr setlogin 2 events from that log: -.Pp -.Nm --m AUE_SETLOGIN /var/audit/20031016184719.20031017122634 +.Bd -literal -offset indent +auditreduce -m AUE_SETLOGIN \e + /var/audit/20031016184719.20031017122634 +.Ed .Pp Output from the above command lines will typically be piped to a new trail file, or via standard output to the @@ -148,36 +151,43 @@ command. .Pp Select all records containing a path token where the pathname contains -.Pa /etc/master.passwd -.Pp -.Nm --ofile="/etc/master.passwd" /var/audit/20031016184719.20031017122634 +.Pa /etc/master.passwd : +.Bd -literal -offset indent +auditreduce -o file="/etc/master.passwd" \e + /var/audit/20031016184719.20031017122634 +.Ed .Pp Select all records containing path tokens, where the pathname is a TTY device: +.Bd -literal -offset indent +auditreduce -o file="/dev/tty[a-zA-Z][0-9]+" \e + /var/audit/20031016184719.20031017122634 +.Ed .Pp -.Nm --ofile="/dev/tty[a-zA-Z][0-9]+" /var/audit/20031016184719.20031017122634 -.Pp Select all records containing path tokens, where the pathname is a TTY except for -.Pa /dev/ttyp2 -.Pp -.Nm --ofile="~/dev/ttyp2,/dev/tty[a-zA-Z][0-9]+" /var/audit/20031016184719.20031017122634 +.Pa /dev/ttyp2 : +.Bd -literal -offset indent +auditreduce -o file="~/dev/ttyp2,/dev/tty[a-zA-Z][0-9]+" \e + /var/audit/20031016184719.20031017122634 +.Ed .Sh SEE ALSO .Xr praudit 1 , .Xr audit_control 5 , .Xr audit_event 5 +.Sh HISTORY +The OpenBSM implementation was created by McAfee Research, the security +division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. +It was subsequently adopted by the TrustedBSD Project as the foundation for +the OpenBSM distribution. .Sh AUTHORS +.An -nosplit This software was created by McAfee Research, the security research division of McAfee, Inc., under contract to Apple Computer Inc. -Additional authors include Wayne Salamon, Robert Watson, and SPARTA Inc. +Additional authors include +.An Wayne Salamon , +.An Robert Watson , +and SPARTA Inc. .Pp The Basic Security Module (BSM) interface to audit records and audit event stream format were defined by Sun Microsystems. -.Sh HISTORY -The OpenBSM implementation was created by McAfee Research, the security -division of McAfee Inc., under contract to Apple Computer Inc. in 2004. -It was subsequently adopted by the TrustedBSD Project as the foundation for -the OpenBSM distribution. ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/praudit/praudit.1#2 (text) ==== @@ -1,18 +1,18 @@ .\" Copyright (c) 2004 Apple Computer, Inc. .\" All rights reserved. -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. +.\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. +.\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of .\" its contributors may be used to endorse or promote products derived -.\" from this software without specific prior written permission. -.\" +.\" from this software without specific prior written permission. +.\" .\" THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -25,73 +25,94 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.1#8 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/bin/praudit/praudit.1#12 $ .\" -.Dd January 24, 2004 +.Dd November 5, 2006 .Dt PRAUDIT 1 .Os .Sh NAME .Nm praudit .Nd "print the contents of audit trail files" .Sh SYNOPSIS -.Nm praudit -.Op Fl lrs +.Nm +.Op Fl lpx +.Op Fl r | s .Op Fl d Ar del -.Op Ar file ... +.Op Ar .Sh DESCRIPTION The -.Nm +.Nm utility prints the contents of the audit trail files to the standard output in human-readable form. -If no filename is specified, the standard input is used +If no +.Ar file +argument is specified, the standard input is used by default. .Pp The options are as follows: -.Bl -tag -width Ds +.Bl -tag -width indent +.It Fl d Ar del +Specifies the delimiter. +The default delimiter is the comma. .It Fl l Prints the entire record on the same line. If this option is not specified, every token is displayed on a different line. +.It Fl p +Specify this option if input to +.Nm +is piped from the +.Xr tail 1 +utility. +This causes +.Nm +to sync to the start of the next record. .It Fl r Prints the records in their raw, numeric form. -This option is exclusive from -.Fl s +This option is exclusive from +.Fl s . .It Fl s Prints the tokens in their short form. Short text representations for record and event type are displayed. This option is exclusive from -.Fl r -.It Fl d Ar del -Specifies the delimiter. -The default delimiter is the comma. +.Fl r . +.It Fl x +Print audit records in the XML output format. .El .Pp If the raw or short forms are not specified, the default is to print the tokens in their long form. Events are displayed as per their descriptions given in .Pa /etc/security/audit_event ; -uids and gids are expanded to their names; +UIDs and GIDs are expanded to their names; dates and times are displayed in human-readable format. .Sh FILES -.Bl -tag -width "/etc/security/audit_control" -compact +.Bl -tag -width ".Pa /etc/security/audit_control" -compact .It Pa /etc/security/audit_class -Descriptions of audit event classes +Descriptions of audit event classes. .It Pa /etc/security/audit_event -Descriptions of audit events +Descriptions of audit events. .El .Sh SEE ALSO +.Xr auditreduce 1 , +.Xr audit 4 , +.Xr auditpipe 4 , .Xr audit_class 5 , .Xr audit_event 5 +.Sh HISTORY +The OpenBSM implementation was created by McAfee Research, the security +division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. +It was subsequently adopted by the TrustedBSD Project as the foundation for +the OpenBSM distribution. .Sh AUTHORS +.An -nosplit This software was created by McAfee Research, the security research division of McAfee, Inc., under contract to Apple Computer Inc. -Additional authors include Wayne Salamon, Robert Watson, and SPARTA Inc. +Additional authors include +.An Wayne Salamon , +.An Robert Watson , +and SPARTA Inc. .Pp The Basic Security Module (BSM) interface to audit records and audit event stream format were defined by Sun Microsystems. -.Sh HISTORY -The OpenBSM implementation was created by McAfee Research, the security -division of McAfee Inc., under contract to Apple Computer Inc. in 2004. -It was subsequently adopted by the TrustedBSD Project as the foundation for -the OpenBSM distribution. ==== //depot/projects/soc2007/karma_audit/contrib/openbsm/bin/praudit/praudit.c#2 (text) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Apr 28 22:11:03 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7437416A40B; Sat, 28 Apr 2007 22:11:03 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4602416A400; Sat, 28 Apr 2007 22:11:03 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by mx1.freebsd.org (Postfix) with ESMTP id 21FA513C45E; Sat, 28 Apr 2007 22:11:03 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from smtp.washington.edu (smtp.washington.edu [140.142.33.7] (may be forged)) by mxout2.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW07.03) with ESMTP id l3SMB2sF021260 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 28 Apr 2007 15:11:02 -0700 X-Auth-Received: from [192.168.10.45] (c-67-187-164-17.hsd1.ca.comcast.net [67.187.164.17]) (authenticated authid=youshi10) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW07.03) with ESMTP id l3SMB12U013488 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 28 Apr 2007 15:11:02 -0700 Message-ID: <4633C67D.8010703@gmail.com> Date: Sat, 28 Apr 2007 15:11:09 -0700 From: Garrett Cooper User-Agent: Thunderbird 2.0.0.0 (Windows/20070326) MIME-Version: 1.0 To: attilio@FreeBSD.org References: <200704271246.l3RCkoMJ051651@repoman.freebsd.org> <46326366.50907@FreeBSD.org> In-Reply-To: <46326366.50907@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Version: 5.3.1.294258, Antispam-Engine: 2.5.1.298604, Antispam-Data: 2007.4.28.144933 X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='FORGED_FROM_GMAIL 0.1, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __FROM_GMAIL 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __USER_AGENT 0' Cc: Perforce Change Reviews Subject: Re: PERFORCE change 118874 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2007 22:11:03 -0000 Attilio Rao wrote: > Alexey Tarasov wrote: >> http://perforce.freebsd.org/chv.cgi?CH=118874 >> >> Change 118874 by taleks@taleks_th on 2007/04/27 12:46:48 >> >> added code from pxe.c. Now need to find way to install NIC irq >> handler. >> >> Affected files ... >> >> .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#3 edit >> .. //depot/projects/soc2007/taleks-pxe_http/pxe_core.h#3 edit >> >> Differences ... >> >> ==== //depot/projects/soc2007/taleks-pxe_http/pxe_core.c#3 (text+ko) ==== >> >> @@ -1,8 +1,38 @@ >> +#include >> +#include >> #include "pxe_core.h" >> #include "pxe_mem.h" >> #include "pxe_ip.h" >> #include "pxe_mutex.h" >> >> +#include "btxv86.h" >> +#include "pxe.h" >> + >> + >> +/* PXE API calls here will be made in same way as in pxeboot. >> + the only difference - installation of isr, that was not needed in >> pxe.c. >> + main problem is that, v86 monitors reflects interrupts, >> + we need to change IDT, for correct irq and call pxe_core_isr() >> from it. >> +*/ >> + >> +/* NOTE: to think about using of this buffers */ >> +#define PXE_BUFFER_SIZE 0x2000 >> +#define PXE_TFTP_BUFFER_SIZE 512 >> +static char scratch_buffer[PXE_BUFFER_SIZE]; >> +static char data_buffer[PXE_BUFFER_SIZE]; >> +static pxenv_t *pxenv_p = NULL; /* PXENV+ */ >> +static pxe_t *pxe_p = NULL; /* !PXE */ >> +static BOOTPLAYER bootplayer; /* PXE Cached information. */ >> + >> +/* defined in pxetramp.s */ >> +extern u_int16_t __bangpxeseg; >> +extern u_int16_t __bangpxeoff; >> +extern void __bangpxeentry(void); >> +extern u_int16_t __pxenvseg; >> +extern u_int16_t __pxenvoff; >> +extern void __pxenventry(void); >> + >> +/**/ > > Could you, please, use here uint16_t instead than u_int16_t as style(9) > suggests? > > Attilio Just checking, but is this the same for other data types, i.e. u_int_32_t => uint32_t? I'm asking because I'm working with the BDB code, and I think it's using C99 or older format data elements / types. Thanks, -Garrett