From owner-p4-projects@FreeBSD.ORG Sat Jul 4 05:02:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 603C61065673; Sat, 4 Jul 2009 05:02:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D7BF106564A for ; Sat, 4 Jul 2009 05:02:06 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EE4488FC16 for ; Sat, 4 Jul 2009 05:02:05 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n645257F011775 for ; Sat, 4 Jul 2009 05:02:05 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n64525ot011773 for perforce@freebsd.org; Sat, 4 Jul 2009 05:02:05 GMT (envelope-from mav@freebsd.org) Date: Sat, 4 Jul 2009 05:02:05 GMT Message-Id: <200907040502.n64525ot011773@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 165585 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, 04 Jul 2009 05:02:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=165585 Change 165585 by mav@mav_mavbook on 2009/07/04 05:01:36 IFC Affected files ... .. //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#8 integrate .. //depot/projects/scottl-camlock/src/UPDATING#9 integrate .. //depot/projects/scottl-camlock/src/bin/chmod/chmod.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/msgctl.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/getsockopt.2#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/semctl.2#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/shmctl.2#3 integrate .. //depot/projects/scottl-camlock/src/release/amd64/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/i386/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/ia64/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/pc98/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/powerpc/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/sparc64/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/sun4v/boot_crunch.conf#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/acpi_hp.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/acpi_wmi.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/cpuctl.4#2 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/genassym.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/identcpu.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/intr_machdep.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/io_apic.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/msi.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/conf/GENERIC#24 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/intr_machdep.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/isa/atpic.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/at91_machdep.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/mv_machdep.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/arm/sa11x0/assabet_machdep.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#37 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options#27 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/mwl/mw88W8363.fw.uu#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_hp.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_wmi.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_wmi_if.m#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cpuctl/cpuctl.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/e1000/if_em.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ixgbe/ixgbe.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwl.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/if_mwlvar.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwlhal.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwlhal.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mwl/mwlreg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/fs/cd9660/cd9660_lookup.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_io.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_subr.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_vfs.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/geom/journal/g_journal.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/GENERIC#23 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/genassym.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/intr_machdep.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/io_apic.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/local_apic.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/msi.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/intr_machdep.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/i386/isa/atpic.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/conf/GENERIC#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exit.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_intr.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_linker.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sys_generic.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sys_process.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sys_socket.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_syscalls.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_cluster.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_export.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_mount.c#29 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_subr.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_syscalls.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_vnops.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/mips/malta/yamon.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/mips/mips/busdma_machdep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/mips/mips/dump_machdep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/mips/mips/intr_machdep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/modules/nfsclient/Makefile#9 integrate .. //depot/projects/scottl-camlock/src/sys/modules/nfsserver/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/sys/net/if.c#29 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_var.h#21 integrate .. //depot/projects/scottl-camlock/src/sys/net/netisr.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/net/vnet.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_iface.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_var.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/nfs/nfs_common.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/nfs/rpcv2.h#4 delete .. //depot/projects/scottl-camlock/src/sys/nfsclient/bootp_subr.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/krpc_subr.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_bio.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_diskless.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_krpc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_lock.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_nfsiod.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_node.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_socket.c#20 delete .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_subs.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_vfsops.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_vnops.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfsm_subs.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfsmount.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_fha.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_serv.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_srvcache.c#10 delete .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_srvkrpc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_srvsock.c#16 delete .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_srvsubs.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_syscalls.c#16 delete .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfsrvcache.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/conf/GENERIC#18 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/conf/GENERIC#21 integrate .. //depot/projects/scottl-camlock/src/sys/rpc/clnt_dg.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/rpc/rpcsec_gss/rpcsec_gss.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_arg.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_bsm.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_private.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/conf/GENERIC#22 integrate .. //depot/projects/scottl-camlock/src/sys/sun4v/conf/GENERIC#12 integrate .. //depot/projects/scottl-camlock/src/sys/sys/cpuctl.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/sys/filio.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/param.h#26 integrate .. //depot/projects/scottl-camlock/src/sys/sys/priv.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/tools/sound/feeder_rate_mkfilter.awk#3 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_softdep.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_vnops.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ufs/ufs_vnops.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_extern.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_fault.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_map.c#20 integrate .. //depot/projects/scottl-camlock/src/tools/regression/acltools/tools-posix.test#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/cpio/cmdline.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/cpio/cpio.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/cpucontrol/cpucontrol.8#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/cpucontrol/cpucontrol.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/pkg_install/lib/url.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/wake/Makefile#1 branch .. //depot/projects/scottl-camlock/src/usr.sbin/wake/wake.8#1 branch .. //depot/projects/scottl-camlock/src/usr.sbin/wake/wake.c#1 branch Differences ... ==== //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#8 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.198 2009/06/27 10:11:15 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.199 2009/07/01 07:37:21 dfr 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. # +# 20090630: old kernel RPC implementation removal +OLD_FILES+=usr/include/nfs/rpcv2.h # 20090624: update usbdi(9) OLD_FILES+=usr/share/man/man9/usbd_abort_default_pipe.9.gz OLD_FILES+=usr/share/man/man9/usbd_abort_pipe.9.gz ==== //depot/projects/scottl-camlock/src/UPDATING#9 (text+ko) ==== @@ -22,6 +22,17 @@ to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090630: + The NFS_LEGACYRPC option has been removed along with the old + kernel RPC implementation that this option selected. Kernel + configurations may need to be adjusted. + +20090629: + The network interface device nodes at /dev/net/ have + been removed. All ioctl operations can be performed the normal + way using routing sockets. The kqueue functionality can + generally be replaced with routing sockets. + 20090628: The documentation from the FreeBSD Documentation Project (Handbook, FAQ, etc.) is now installed via packages by @@ -1630,4 +1641,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.624 2009/06/28 08:59:46 blackend Exp $ +$FreeBSD: src/UPDATING,v 1.627 2009/07/01 18:12:50 dfr Exp $ ==== //depot/projects/scottl-camlock/src/bin/chmod/chmod.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/chmod/chmod.c,v 1.34 2009/06/23 23:30:56 delphij Exp $"); +__FBSDID("$FreeBSD: src/bin/chmod/chmod.c,v 1.35 2009/07/01 15:52:19 trasz Exp $"); #include #include @@ -54,6 +54,7 @@ #include static void usage(void); +static int may_have_nfs4acl(const FTSENT *ent); int main(int argc, char *argv[]) @@ -180,8 +181,14 @@ break; } newmode = getmode(set, p->fts_statp->st_mode); - if ((newmode & ALLPERMS) == (p->fts_statp->st_mode & ALLPERMS)) - continue; + /* + * With NFSv4 ACLs, it is possible that applying a mode + * identical to the one computed from an ACL will change + * that ACL. + */ + if (may_have_nfs4acl(p) == 0 && + (newmode & ALLPERMS) == (p->fts_statp->st_mode & ALLPERMS)) + continue; if ((*change_mode)(p->fts_accpath, newmode) && !fflag) { warn("%s", p->fts_path); rval = 1; @@ -219,3 +226,24 @@ "usage: chmod [-fhv] [-R [-H | -L | -P]] mode file ...\n"); exit(1); } + +static int +may_have_nfs4acl(const FTSENT *ent) +{ + int ret; + static dev_t previous_dev = (dev_t)-1; + static int supports_acls = -1; + + if (previous_dev != ent->fts_statp->st_dev) { + previous_dev = ent->fts_statp->st_dev; + supports_acls = 0; + + ret = pathconf(ent->fts_accpath, _PC_ACL_NFS4); + if (ret > 0) + supports_acls = 1; + else if (ret < 0 && errno != EINVAL) + warn("%s", ent->fts_path); + } + + return (supports_acls); +} ==== //depot/projects/scottl-camlock/src/lib/libc/gen/msgctl.3#3 (text+ko) ==== @@ -29,7 +29,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/lib/libc/gen/msgctl.3,v 1.21 2008/04/03 16:21:43 ru Exp $ +.\" $FreeBSD: src/lib/libc/gen/msgctl.3,v 1.22 2009/06/29 18:54:17 kib Exp $ .\"/ .Dd April 3, 2008 .Dt MSGCTL 3 @@ -71,12 +71,8 @@ pid_t msg_lspid; /* pid of last msgsnd() */ pid_t msg_lrpid; /* pid of last msgrcv() */ time_t msg_stime; /* time of last msgsnd() */ - long msg_pad1; time_t msg_rtime; /* time of last msgrcv() */ - long msg_pad2; time_t msg_ctime; /* time of last msgctl() */ - long msg_pad3; - long msg_pad4[4]; }; .Ed .Pp @@ -89,11 +85,11 @@ and looks like this: .Bd -literal struct ipc_perm { - unsigned short cuid; /* creator user id */ - unsigned short cgid; /* creator group id */ - unsigned short uid; /* user id */ - unsigned short gid; /* group id */ - unsigned short mode; /* r/w permission */ + uid_t cuid; /* creator user id */ + gid_t cgid; /* creator group id */ + uid_t uid; /* user id */ + gid_t gid; /* group id */ + mode_t mode; /* r/w permission */ unsigned short seq; /* sequence # (to generate unique ipcid) */ key_t key; /* user specified msg/sem/shm key */ }; ==== //depot/projects/scottl-camlock/src/lib/libc/sys/getsockopt.2#3 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95 -.\" $FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.40 2008/06/12 22:58:35 wkoszek Exp $ +.\" $FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.41 2009/06/30 20:53:56 trasz Exp $ .\" .Dd June 13, 2008 .Dt GETSOCKOPT 2 @@ -139,6 +139,11 @@ .In sys/time.h . .Pp The following options are recognized at the socket level. +For protocol-specific options, see protocol manual pages, +e.g. +.Xr ip 4 +or +.Xr tcp 4 . Except as noted, each may be examined with .Fn getsockopt and set with @@ -499,6 +504,10 @@ .Xr getprotoent 3 , .Xr mac 3 , .Xr sysctl 3 , +.Xr ip 4 , +.Xr ip6 4 , +.Xr sctp 4 , +.Xr tcp 4 , .Xr protocols 5 , .Xr sysctl 8 , .Xr accept_filter 9 , ==== //depot/projects/scottl-camlock/src/lib/libc/sys/semctl.2#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/lib/libc/sys/semctl.2,v 1.20 2005/01/15 12:28:00 ru Exp $ +.\" $FreeBSD: src/lib/libc/sys/semctl.2,v 1.21 2009/06/29 18:54:17 kib Exp $ .\" .Dd September 12, 1995 .Dt SEMCTL 2 @@ -148,12 +148,9 @@ struct sem *sem_base; /* pointer to first semaphore in set */ u_short sem_nsems; /* number of sems in set */ time_t sem_otime; /* last operation time */ - long sem_pad1; /* SVABI/386 says I need this here */ time_t sem_ctime; /* last change time */ /* Times measured in secs since */ /* 00:00:00 GMT, Jan. 1, 1970 */ - long sem_pad2; /* SVABI/386 says I need this here */ - long sem_pad3[4]; /* SVABI/386 says I need this here */ }; .Ed .Sh RETURN VALUES ==== //depot/projects/scottl-camlock/src/lib/libc/sys/shmctl.2#3 (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/lib/libc/sys/shmctl.2,v 1.20 2009/03/05 12:04:42 kib Exp $ +.\" $FreeBSD: src/lib/libc/sys/shmctl.2,v 1.21 2009/06/29 18:54:17 kib Exp $ .\" .Dd July 17, 1995 .Dt SHMCTL 2 @@ -100,14 +100,13 @@ .Bd -literal struct shmid_ds { struct ipc_perm shm_perm; /* operation permission structure */ - int shm_segsz; /* size of segment in bytes */ + size_t shm_segsz; /* size of segment in bytes */ pid_t shm_lpid; /* process ID of last shared memory op */ pid_t shm_cpid; /* process ID of creator */ - short shm_nattch; /* number of current attaches */ + int shm_nattch; /* number of current attaches */ time_t shm_atime; /* time of last shmat() */ time_t shm_dtime; /* time of last shmdt() */ time_t shm_ctime; /* time of last change by shmctl() */ - void *shm_internal; /* sysv stupidity */ }; .Ed .Sh RETURN VALUES @@ -133,16 +132,6 @@ Permission denied due to mismatch between operation and mode of shared memory segment. .El -.Sh "BUGS" -The segment size has size_t type. -The shm_segsz member of the -.Vt shmid_ds -structure has type int, which is too short to represent the full range -of values for a segment size. -If shared memory limits are raised to allow segments with size > 2 GB -to be created, be aware that IPC_STAT call may return a truncated value -for shm_segsz. -.El .Sh "SEE ALSO" .Xr shmat 2 , .Xr shmdt 2 , ==== //depot/projects/scottl-camlock/src/release/amd64/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/amd64/boot_crunch.conf,v 1.66 2009/03/09 17:05:31 thompsa Exp $ +# $FreeBSD: src/release/amd64/boot_crunch.conf,v 1.67 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -42,4 +42,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -ldevinfo -libs -lbsdxml -larchive -lbz2 -lusb +libs -lbsdxml -larchive -lbz2 -lusb -ljail ==== //depot/projects/scottl-camlock/src/release/i386/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/i386/boot_crunch.conf,v 1.66 2009/03/09 17:05:31 thompsa Exp $ +# $FreeBSD: src/release/i386/boot_crunch.conf,v 1.67 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -42,4 +42,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -ldevinfo -libs -lbsdxml -larchive -lbz2 -lusb +libs -lbsdxml -larchive -lbz2 -lusb -ljail ==== //depot/projects/scottl-camlock/src/release/ia64/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/ia64/boot_crunch.conf,v 1.17 2009/03/09 17:05:31 thompsa Exp $ +# $FreeBSD: src/release/ia64/boot_crunch.conf,v 1.18 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -46,4 +46,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lkiconv -lsbuf -lufs -ldevinfo -libs -lgeom -lbsdxml -larchive -lbz2 -lusb +libs -lgeom -lbsdxml -larchive -lbz2 -lusb -ljail ==== //depot/projects/scottl-camlock/src/release/pc98/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/pc98/boot_crunch.conf,v 1.65 2008/08/20 13:35:39 kensmith Exp $ +# $FreeBSD: src/release/pc98/boot_crunch.conf,v 1.66 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -41,4 +41,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml -libs -larchive -lbz2 +libs -larchive -lbz2 -ljail ==== //depot/projects/scottl-camlock/src/release/powerpc/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/powerpc/boot_crunch.conf,v 1.9 2009/03/09 17:05:31 thompsa Exp $ +# $FreeBSD: src/release/powerpc/boot_crunch.conf,v 1.10 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -44,4 +44,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lkiconv -lsbuf -lufs -libs -lbsdxml -larchive -lbz2 -lusb +libs -lbsdxml -larchive -lbz2 -lusb -ljail ==== //depot/projects/scottl-camlock/src/release/sparc64/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/sparc64/boot_crunch.conf,v 1.13 2009/03/09 17:05:31 thompsa Exp $ +# $FreeBSD: src/release/sparc64/boot_crunch.conf,v 1.14 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -42,4 +42,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml -libs -larchive -lbz2 -lusb +libs -larchive -lbz2 -lusb -ljail ==== //depot/projects/scottl-camlock/src/release/sun4v/boot_crunch.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/sun4v/boot_crunch.conf,v 1.6 2009/03/09 17:05:31 thompsa Exp $ +# $FreeBSD: src/release/sun4v/boot_crunch.conf,v 1.7 2009/06/29 13:59:30 jamie Exp $ buildopts -DRELEASE_CRUNCH -Dlint @@ -42,4 +42,4 @@ libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs -lbsdxml -libs -larchive -lbz2 -lusb +libs -larchive -lbz2 -lusb -ljail ==== //depot/projects/scottl-camlock/src/share/man/man4/acpi_hp.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/acpi_hp.4,v 1.2 2009/06/23 14:57:06 rpaulo Exp $ +.\" $FreeBSD: src/share/man/man4/acpi_hp.4,v 1.4 2009/07/03 21:12:37 rpaulo Exp $ .\" -.Dd June 21, 2009 +.Dd June 30, 2009 .Dt ACPI_HP 4 i386 .Os .Sh NAME @@ -92,8 +92,8 @@ WWAN on air status changed to 1 (on air) .El .Ss Xr devfs 8 Ss Device -You can read /dev/hpcmi to see your current BIOS settings. The detail level -can be adjusted by setting the sysctl +You can read /dev/hpcmi to see your current BIOS settings. +The detail level can be adjusted by setting the sysctl .Va cmi_detail as described below. .Sh SYSCTL VARIABLES @@ -165,11 +165,30 @@ Show a list of valid options for the BIOS setting .It Li 0x04 Show additional flags of BIOS setting (ReadOnly etc.) +.It Li 0x08 +Query highest BIOS entry instance. +This is broken on many HP models and therefore disabled by default. .El +.It Va dev.acpi_hp.0.verbose +(read-only) +Set verbosity level .El .Pp Defaults for these sysctls can be set in .Xr sysctl.conf 5 . +.Sh HARDWARE +The +.Nm +driver has been reported to support the following hardware: +.Pp +.Bl -bullet -compact +.It +HP Compaq 8510p +.It +HP Compaq nx7300 +.El +.Pp +It should work on most HP laptops that feature a WMI enabled BIOS. .Sh FILES .Bl -tag -width ".Pa /dev/hpcmi" .It Pa /dev/hpcmi @@ -245,7 +264,7 @@ driver was written by .An Michael Gmelin Aq freebsd@grem.de .Pp -It has been inspired by hp-wmi driver, which implements a subset of these +It has been inspired by hp-wmi driver, which implements a subset of these features (hotkeys) on Linux. .Pp .Bl -tag -width indent ==== //depot/projects/scottl-camlock/src/share/man/man4/acpi_wmi.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/acpi_wmi.4,v 1.2 2009/06/23 14:57:06 rpaulo Exp $ +.\" $FreeBSD: src/share/man/man4/acpi_wmi.4,v 1.3 2009/07/03 21:12:37 rpaulo Exp $ .\" -.Dd June 21, 2009 +.Dd June 30, 2009 .Dt ACPI_WMI 4 i386 .Os .Sh NAME @@ -48,7 +48,8 @@ The .Nm driver provides an interface for vendor specific WMI implementations -(e.g. HP and Acer laptops). It creates /dev/wmistat, which can be read to get +(e.g. HP and Acer laptops). +It creates /dev/wmistat, which can be read to get information about GUIDs found in the system. .Sh FILES .Bl -tag -width /dev/wmistat -compact ==== //depot/projects/scottl-camlock/src/share/man/man4/cpuctl.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/cpuctl.4,v 1.6 2009/04/23 08:37:56 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/cpuctl.4,v 1.7 2009/06/30 12:35:47 stas Exp $ .\" -.Dd May 31, 2008 +.Dd June 30, 2009 .Dt CPUCTL 4 .Os .Sh NAME @@ -81,6 +81,11 @@ uint64_t data; } cpuctl_msr_args_t; .Ed +.It Dv CPUCTL_MSRSBIT Fa cpuctl_msr_args_t *args +.It Dv CPUCTL_MSRCBIT Fa cpuctl_msr_args_t *args +Set/clear MSR bits according to the mask given in the +.Va data +field. .It Dv CPUCTL_CPUID Fa cpuctl_cpuid_args_t *args Retrieve CPUID information. Arguments are supplied in ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/genassym.c#12 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.175 2009/04/01 18:36:34 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.176 2009/07/01 07:34:28 dfr Exp $"); #include "opt_compat.h" #include "opt_hwpmc_hooks.h" @@ -64,7 +64,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/identcpu.c#15 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.173 2009/05/04 18:05:27 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.174 2009/06/30 11:16:32 avg Exp $"); #include "opt_cpu.h" @@ -107,9 +107,6 @@ }; -extern int pq_l2size; -extern int pq_l2nways; - void printcpuinfo(void) { ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/intr_machdep.c#18 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.44 2009/06/25 20:35:46 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.45 2009/07/01 17:20:07 jhb Exp $ */ /* @@ -163,8 +163,8 @@ } int -intr_add_handler(const char *name, int vector, driver_filter_t filter, - driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep) +intr_add_handler(const char *name, int vector, driver_filter_t filter, + driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep) { struct intsrc *isrc; int error; @@ -302,7 +302,8 @@ intr_assign_cpu(void *arg, u_char cpu) { #ifdef SMP - struct intsrc *isrc; + struct intsrc *isrc; + int error; /* * Don't do anything during early boot. We will pick up the @@ -311,10 +312,11 @@ if (assign_cpu && cpu != NOCPU) { isrc = arg; mtx_lock(&intr_table_lock); - isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[cpu]); + error = isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[cpu]); mtx_unlock(&intr_table_lock); - } - return (0); + } else + error = 0; + return (error); #else return (EOPNOTSUPP); #endif @@ -371,7 +373,7 @@ intrcnt_setname("???", 0); intrcnt_index = 1; STAILQ_INIT(&pics); - mtx_init(&intr_table_lock, "intr sources", NULL, MTX_DEF | MTX_RECURSE); + mtx_init(&intr_table_lock, "intr sources", NULL, MTX_DEF); mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN); } SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL); @@ -441,14 +443,14 @@ if (!assign_cpu) return (cpu_apic_ids[0]); - mtx_lock(&intr_table_lock); + mtx_lock_spin(&icu_lock); apic_id = cpu_apic_ids[current_cpu]; do { current_cpu++; if (current_cpu > mp_maxid) current_cpu = 0; } while (!(intr_cpus & (1 << current_cpu))); - mtx_unlock(&intr_table_lock); + mtx_unlock_spin(&icu_lock); return (apic_id); } @@ -489,7 +491,6 @@ intr_shuffle_irqs(void *arg __unused) { struct intsrc *isrc; - u_int apic_id; int i; /* Don't bother on UP. */ @@ -505,13 +506,17 @@ /* * If this event is already bound to a CPU, * then assign the source to that CPU instead - * of picking one via round-robin. + * of picking one via round-robin. Note that + * this is careful to only advance the + * round-robin if the CPU assignment succeeds. */ if (isrc->is_event->ie_cpu != NOCPU) - apic_id = isrc->is_event->ie_cpu; - else - apic_id = intr_next_cpu(); - isrc->is_pic->pic_assign_cpu(isrc, apic_id); + (void)isrc->is_pic->pic_assign_cpu(isrc, + isrc->is_event->ie_cpu); + else if (isrc->is_pic->pic_assign_cpu(isrc, + cpu_apic_ids[current_cpu]) == 0) + (void)intr_next_cpu(); + } } mtx_unlock(&intr_table_lock); ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/io_apic.c#15 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.33 2009/06/25 18:13:46 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.34 2009/07/01 17:20:07 jhb Exp $"); #include "opt_isa.h" @@ -120,7 +120,7 @@ static int ioapic_config_intr(struct intsrc *isrc, enum intr_trigger trig, enum intr_polarity pol); static void ioapic_resume(struct pic *pic); -static void ioapic_assign_cpu(struct intsrc *isrc, u_int apic_id); +static int ioapic_assign_cpu(struct intsrc *isrc, u_int apic_id); static void ioapic_program_intpin(struct ioapic_intsrc *intpin); static STAILQ_HEAD(,ioapic) ioapic_list = STAILQ_HEAD_INITIALIZER(ioapic_list); @@ -322,7 +322,7 @@ mtx_unlock_spin(&icu_lock); } -static void +static int ioapic_assign_cpu(struct intsrc *isrc, u_int apic_id) { struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; @@ -342,7 +342,7 @@ old_vector = intpin->io_vector; old_id = intpin->io_cpu; if (old_vector && apic_id == old_id) - return; + return (0); /* * Allocate an APIC vector for this interrupt pin. Once @@ -350,6 +350,9 @@ */ intpin->io_cpu = apic_id; intpin->io_vector = apic_alloc_vector(apic_id, intpin->io_irq); + if (intpin->io_vector == 0) + return (ENOSPC); + if (bootverbose) { printf("ioapic%u: routing intpin %u (", io->io_id, intpin->io_intpin); @@ -364,6 +367,7 @@ */ if (old_vector) apic_free_vector(old_id, old_vector, intpin->io_irq); + return (0); } static void @@ -372,7 +376,9 @@ struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; if (intpin->io_vector == 0) - ioapic_assign_cpu(isrc, intr_next_cpu()); + if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0) + panic("Couldn't find an APIC vector for IRQ %d", + intpin->io_irq); apic_enable_vector(intpin->io_cpu, intpin->io_vector); } @@ -496,7 +502,7 @@ io->io_pic = ioapic_template; mtx_lock_spin(&icu_lock); io->io_id = next_id++; - io->io_apic_id = ioapic_read(apic, IOAPIC_ID) >> APIC_ID_SHIFT; + io->io_apic_id = ioapic_read(apic, IOAPIC_ID) >> APIC_ID_SHIFT; if (apic_id != -1 && io->io_apic_id != apic_id) { ioapic_write(apic, IOAPIC_ID, apic_id << APIC_ID_SHIFT); mtx_unlock_spin(&icu_lock); @@ -730,7 +736,7 @@ if (pin >= io->io_numintr || trigger == INTR_TRIGGER_CONFORM) return (EINVAL); if (io->io_pins[pin].io_irq >= NUM_IO_INTS) - return (EINVAL); + return (EINVAL); edgetrigger = (trigger == INTR_TRIGGER_EDGE); if (io->io_pins[pin].io_edgetrigger == edgetrigger) return (0); ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#20 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.57 2009/06/24 19:16:48 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.58 2009/07/01 17:20:07 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -139,7 +139,7 @@ }; -static u_int32_t lapic_timer_divisors[] = { +static u_int32_t lapic_timer_divisors[] = { APIC_TDCR_1, APIC_TDCR_2, APIC_TDCR_4, APIC_TDCR_8, APIC_TDCR_16, APIC_TDCR_32, APIC_TDCR_64, APIC_TDCR_128 }; @@ -797,7 +797,7 @@ return (vector + APIC_IO_INTS); } mtx_unlock_spin(&icu_lock); - panic("Couldn't find an APIC vector for IRQ %u", irq); + return (0); } /* @@ -1058,7 +1058,7 @@ static SLIST_HEAD(, apic_enumerator) enumerators = SLIST_HEAD_INITIALIZER(enumerators); static struct apic_enumerator *best_enum; - + void apic_register_enumerator(struct apic_enumerator *enumerator) { ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/msi.c#10 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.12 2009/06/25 18:13:46 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.13 2009/07/01 17:20:07 jhb Exp $"); #include #include @@ -113,6 +113,8 @@ u_int msi_vector:8; /* IDT vector. */ u_int msi_cpu:8; /* Local APIC ID. (g) */ u_int msi_count:8; /* Messages in this group. (g) */ + u_int msi_maxcount:8; /* Alignment for this group. (g) */ + int *msi_irqs; /* Group's IRQ list. (g) */ }; static void msi_create_source(void); @@ -125,7 +127,7 @@ static int msi_source_pending(struct intsrc *isrc); static int msi_config_intr(struct intsrc *isrc, enum intr_trigger trig, enum intr_polarity pol); -static void msi_assign_cpu(struct intsrc *isrc, u_int apic_id); +static int msi_assign_cpu(struct intsrc *isrc, u_int apic_id); struct pic msi_pic = { msi_enable_source, msi_disable_source, msi_eoi_source, msi_enable_intr, msi_disable_intr, msi_vector, @@ -195,32 +197,52 @@ return (ENODEV); } -static void +static int msi_assign_cpu(struct intsrc *isrc, u_int apic_id) { - struct msi_intsrc *msi = (struct msi_intsrc *)isrc; + struct msi_intsrc *sib, *msi = (struct msi_intsrc *)isrc; int old_vector; u_int old_id; - int vector; + int i, vector; + + /* + * Only allow CPUs to be assigned to the first message for an + * MSI group. + */ + if (msi->msi_first != msi) + return (EINVAL); /* Store information to free existing irq. */ old_vector = msi->msi_vector; old_id = msi->msi_cpu; if (old_id == apic_id) - return; - if (!msi->msi_msix && msi->msi_first->msi_count > 1) - return; + return (0); - /* Allocate IDT vector on this cpu. */ - vector = apic_alloc_vector(apic_id, msi->msi_irq); + /* Allocate IDT vectors on this cpu. */ + if (msi->msi_count > 1) { + KASSERT(msi->msi_msix == 0, ("MSI-X message group")); + vector = apic_alloc_vectors(apic_id, msi->msi_irqs, + msi->msi_count, msi->msi_maxcount); + } else + vector = apic_alloc_vector(apic_id, msi->msi_irq); if (vector == 0) - return; /* XXX alloc_vector panics on failure. */ + return (ENOSPC); + msi->msi_cpu = apic_id; msi->msi_vector = vector; if (bootverbose) printf("msi: Assigning %s IRQ %d to local APIC %u vector %u\n", msi->msi_msix ? "MSI-X" : "MSI", msi->msi_irq, msi->msi_cpu, msi->msi_vector); + for (i = 1; i < msi->msi_count; i++) { + sib = (struct msi_intsrc *)intr_lookup_source(msi->msi_irqs[i]); + sib->msi_cpu = apic_id; + sib->msi_vector = vector + i; + if (bootverbose) + printf( + "msi: Assigning MSI IRQ %d to local APIC %u vector %u\n", + sib->msi_irq, sib->msi_cpu, sib->msi_vector); + } pci_remap_msi_irq(msi->msi_dev, msi->msi_irq); /* @@ -228,6 +250,9 @@ * to prevent races where we could miss an interrupt. */ apic_free_vector(old_id, old_vector, msi->msi_irq); + for (i = 1; i < msi->msi_count; i++) + apic_free_vector(old_id, old_vector + i, msi->msi_irqs[i]); + return (0); >>> TRUNCATED FOR MAIL (1000 lines) <<<