Date: Sat, 31 Oct 2009 15:50:54 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 170002 for review Message-ID: <200910311550.n9VFosfa082658@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=170002 Change 170002 by hselasky@hselasky_laptop001 on 2009/10/31 15:50:40 IFC @ 169997 Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#9 integrate .. //depot/projects/usb/src/sys/amd64/acpica/acpi_wakecode.S#5 integrate .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#27 integrate .. //depot/projects/usb/src/sys/amd64/ia32/ia32_signal.c#10 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_machdep.c#14 integrate .. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#23 integrate .. //depot/projects/usb/src/sys/arm/arm/machdep.c#10 integrate .. //depot/projects/usb/src/sys/arm/mv/mv_sata.c#2 integrate .. //depot/projects/usb/src/sys/boot/common/commands.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/zfsboot/zfsboot.c#5 integrate .. //depot/projects/usb/src/sys/boot/zfs/zfs.c#4 integrate .. //depot/projects/usb/src/sys/boot/zfs/zfsimpl.c#5 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_da.c#6 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_pmp.c#1 branch .. //depot/projects/usb/src/sys/cam/ata/ata_xpt.c#5 integrate .. //depot/projects/usb/src/sys/cam/cam.h#4 integrate .. //depot/projects/usb/src/sys/cam/cam_ccb.h#8 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.c#13 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.h#5 integrate .. //depot/projects/usb/src/sys/cam/cam_queue.c#2 integrate .. //depot/projects/usb/src/sys/cam/cam_queue.h#2 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#24 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_all.c#8 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_cd.c#12 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_ch.c#7 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_da.c#16 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_low.c#6 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_pt.c#7 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_sa.c#10 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_sg.c#9 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_targ_bh.c#5 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_target.c#8 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_xpt.c#2 integrate .. //depot/projects/usb/src/sys/cddl/boot/zfs/zfsimpl.h#4 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/vnode.h#8 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#16 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#4 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#22 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_proto.h#22 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscall.h#21 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscalls.c#21 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_sysent.c#22 integrate .. //depot/projects/usb/src/sys/compat/freebsd32/syscalls.master#21 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#17 integrate .. //depot/projects/usb/src/sys/conf/NOTES#48 integrate .. //depot/projects/usb/src/sys/conf/files#84 integrate .. //depot/projects/usb/src/sys/contrib/dev/iwn/LICENSE#2 integrate .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-4965-228.57.2.23.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-4965-4.44.17.fw.uu#2 delete .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-5000-5.4.A.11.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-5150-8.24.2.2.fw.uu#1 branch .. //depot/projects/usb/src/sys/dev/aac/aac.c#11 integrate .. //depot/projects/usb/src/sys/dev/aac/aac_cam.c#8 integrate .. //depot/projects/usb/src/sys/dev/aac/aacreg.h#4 integrate .. //depot/projects/usb/src/sys/dev/aac/aacvar.h#6 integrate .. //depot/projects/usb/src/sys/dev/acpi_support/acpi_aiboost.c#4 integrate .. //depot/projects/usb/src/sys/dev/ahci/ahci.c#5 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aic79xx_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/amr/amr.c#12 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#20 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.h#15 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-disk.c#16 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-dma.c#11 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-lowlevel.c#6 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.c#15 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#22 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#15 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-raid.c#11 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-sata.c#6 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cam.c#13 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cd.c#12 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-fd.c#9 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-tape.c#11 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-adaptec.c#3 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-ahci.c#10 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-intel.c#7 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-marvell.c#9 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-nvidia.c#8 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-promise.c#8 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-serverworks.c#5 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-siliconimage.c#7 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-via.c#6 integrate .. //depot/projects/usb/src/sys/dev/drm/drmP.h#15 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_scatter.c#7 integrate .. //depot/projects/usb/src/sys/dev/drm/r600_blit.c#4 integrate .. //depot/projects/usb/src/sys/dev/drm/radeon_cp.c#12 integrate .. //depot/projects/usb/src/sys/dev/fb/vesa.c#4 integrate .. //depot/projects/usb/src/sys/dev/fb/vesa.h#2 integrate .. //depot/projects/usb/src/sys/dev/fdc/fdc.c#10 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_core.c#5 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#12 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwnreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwnvar.h#4 integrate .. //depot/projects/usb/src/sys/dev/msk/if_msk.c#16 integrate .. //depot/projects/usb/src/sys/dev/msk/if_mskreg.h#11 integrate .. //depot/projects/usb/src/sys/dev/mwl/if_mwl_pci.c#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#29 integrate .. //depot/projects/usb/src/sys/dev/ppbus/lpt.c#10 integrate .. //depot/projects/usb/src/sys/dev/ppbus/pcfclock.c#5 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.c#5 integrate .. //depot/projects/usb/src/sys/dev/syscons/syscons.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#31 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci_pci.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#24 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c#15 edit .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_vfsops.c#8 integrate .. //depot/projects/usb/src/sys/fs/tmpfs/tmpfs_subr.c#12 integrate .. //depot/projects/usb/src/sys/i386/bios/apm.c#8 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#24 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_machdep.c#12 integrate .. //depot/projects/usb/src/sys/i386/linux/linux_sysvec.c#17 integrate .. //depot/projects/usb/src/sys/ia64/conf/GENERIC#14 integrate .. //depot/projects/usb/src/sys/ia64/ia64/machdep.c#13 integrate .. //depot/projects/usb/src/sys/ia64/include/param.h#6 integrate .. //depot/projects/usb/src/sys/kern/init_sysent.c#18 integrate .. //depot/projects/usb/src/sys/kern/kern_context.c#3 integrate .. //depot/projects/usb/src/sys/kern/kern_cpuset.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#23 integrate .. //depot/projects/usb/src/sys/kern/kern_ktrace.c#12 integrate .. //depot/projects/usb/src/sys/kern/kern_shutdown.c#15 integrate .. //depot/projects/usb/src/sys/kern/kern_sig.c#19 integrate .. //depot/projects/usb/src/sys/kern/kern_thread.c#17 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#33 integrate .. //depot/projects/usb/src/sys/kern/subr_taskqueue.c#10 integrate .. //depot/projects/usb/src/sys/kern/subr_trap.c#13 integrate .. //depot/projects/usb/src/sys/kern/sys_generic.c#19 integrate .. //depot/projects/usb/src/sys/kern/sys_process.c#15 integrate .. //depot/projects/usb/src/sys/kern/syscalls.c#17 integrate .. //depot/projects/usb/src/sys/kern/syscalls.master#17 integrate .. //depot/projects/usb/src/sys/kern/systrace_args.c#14 integrate .. //depot/projects/usb/src/sys/kern/sysv_shm.c#13 integrate .. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#21 integrate .. //depot/projects/usb/src/sys/mips/mips/pm_machdep.c#3 integrate .. //depot/projects/usb/src/sys/modules/cam/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/iwnfw/Makefile#3 integrate .. //depot/projects/usb/src/sys/modules/iwnfw/Makefile.inc#1 branch .. //depot/projects/usb/src/sys/modules/iwnfw/iwn4965/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/iwnfw/iwn5000/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/iwnfw/iwn5150/Makefile#1 branch .. //depot/projects/usb/src/sys/net/bpf.c#25 integrate .. //depot/projects/usb/src/sys/net/flowtable.c#14 integrate .. //depot/projects/usb/src/sys/net/if_gif.c#19 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_hwmp.c#6 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#29 integrate .. //depot/projects/usb/src/sys/netgraph/NOTES#2 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#32 integrate .. //depot/projects/usb/src/sys/netinet/in.c#39 integrate .. //depot/projects/usb/src/sys/netinet/ip_input.c#33 integrate .. //depot/projects/usb/src/sys/netinet/libalias/alias.c#8 integrate .. //depot/projects/usb/src/sys/netinet/sctp_cc_functions.c#5 integrate .. //depot/projects/usb/src/sys/netinet/sctp_output.c#25 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#35 integrate .. //depot/projects/usb/src/sys/pc98/pc98/machdep.c#15 integrate .. //depot/projects/usb/src/sys/powerpc/aim/clock.c#6 integrate .. //depot/projects/usb/src/sys/powerpc/aim/machdep.c#13 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea64.c#6 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mp_cpudep.c#5 integrate .. //depot/projects/usb/src/sys/powerpc/aim/platform_chrp.c#4 integrate .. //depot/projects/usb/src/sys/powerpc/aim/trap_subr.S#8 integrate .. //depot/projects/usb/src/sys/powerpc/booke/machdep.c#13 integrate .. //depot/projects/usb/src/sys/powerpc/booke/mp_cpudep.c#2 integrate .. //depot/projects/usb/src/sys/powerpc/include/hid.h#6 integrate .. //depot/projects/usb/src/sys/powerpc/include/pcpu.h#10 integrate .. //depot/projects/usb/src/sys/powerpc/include/smp.h#7 integrate .. //depot/projects/usb/src/sys/powerpc/include/spr.h#13 integrate .. //depot/projects/usb/src/sys/powerpc/powermac/hrowpic.c#6 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/cpu.c#11 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/mp_machdep.c#10 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/stack_machdep.c#2 integrate .. //depot/projects/usb/src/sys/sparc64/include/in_cksum.h#4 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/machdep.c#17 integrate .. //depot/projects/usb/src/sys/sun4v/sun4v/machdep.c#10 integrate .. //depot/projects/usb/src/sys/sys/aac_ioctl.h#3 integrate .. //depot/projects/usb/src/sys/sys/ata.h#7 integrate .. //depot/projects/usb/src/sys/sys/conf.h#21 integrate .. //depot/projects/usb/src/sys/sys/interrupt.h#10 integrate .. //depot/projects/usb/src/sys/sys/ktrace.h#4 integrate .. //depot/projects/usb/src/sys/sys/signalvar.h#6 integrate .. //depot/projects/usb/src/sys/sys/syscall.h#17 integrate .. //depot/projects/usb/src/sys/sys/syscall.mk#17 integrate .. //depot/projects/usb/src/sys/sys/syscallsubr.h#14 integrate .. //depot/projects/usb/src/sys/sys/sysproto.h#18 integrate .. //depot/projects/usb/src/sys/sys/time.h#8 integrate .. //depot/projects/usb/src/sys/tools/fw_stub.awk#5 integrate .. //depot/projects/usb/src/sys/tools/makeobjops.awk#2 integrate .. //depot/projects/usb/src/sys/vm/vm_fault.c#18 integrate .. //depot/projects/usb/src/sys/vm/vm_map.c#21 integrate Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20_ugen20.c,v 1.4 2009/06/23 02:19:59 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20_ugen20.c,v 1.5 2009/10/22 21:01:41 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/amd64/acpica/acpi_wakecode.S#5 (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/acpica/acpi_wakecode.S,v 1.4 2009/10/08 17:41:53 jkim Exp $ + * $FreeBSD: src/sys/amd64/acpica/acpi_wakecode.S,v 1.5 2009/10/23 18:57:52 jkim Exp $ */ #define LOCORE @@ -88,6 +88,11 @@ movb $0, reset_video - wakeup_start lcall $0xc000, $3 + /* When we reach here, int 0x10 should be ready. Hide cursor. */ + movb $0x01, %ah + movb $0x20, %ch + int $0x10 + /* Re-start in case the previous BIOS call clobbers them. */ jmp wakeup_start 1: ==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#27 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.710 2009/09/22 16:51:00 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.711 2009/10/27 10:47:58 kib Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -415,7 +415,7 @@ ucontext_t uc; struct proc *p = td->td_proc; struct trapframe *regs; - const ucontext_t *ucp; + ucontext_t *ucp; long rflags; int cs, error, ret; ksiginfo_t ksi; @@ -478,7 +478,6 @@ td->td_pcb->pcb_fsbase = ucp->uc_mcontext.mc_fsbase; td->td_pcb->pcb_gsbase = ucp->uc_mcontext.mc_gsbase; - PROC_LOCK(p); #if defined(COMPAT_43) if (ucp->uc_mcontext.mc_onstack & 1) td->td_sigstk.ss_flags |= SS_ONSTACK; @@ -486,10 +485,7 @@ td->td_sigstk.ss_flags &= ~SS_ONSTACK; #endif - td->td_sigmask = ucp->uc_sigmask; - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + kern_sigprocmask(td, SIG_SETMASK, &ucp->uc_sigmask, NULL, 0); td->td_pcb->pcb_flags |= PCB_FULLCTX; td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); ==== //depot/projects/usb/src/sys/amd64/ia32/ia32_signal.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.23 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.24 2009/10/27 10:47:58 kib Exp $"); #include "opt_compat.h" @@ -244,10 +244,8 @@ if (ret == 0) { ret = ia32_set_mcontext(td, &uc.uc_mcontext); if (ret == 0) { - SIG_CANTMASK(uc.uc_sigmask); - PROC_LOCK(td->td_proc); - td->td_sigmask = uc.uc_sigmask; - PROC_UNLOCK(td->td_proc); + kern_sigprocmask(td, SIG_SETMASK, + &uc.uc_sigmask, NULL, 0); } } } @@ -273,10 +271,8 @@ if (ret == 0) { ret = ia32_set_mcontext(td, &uc.uc_mcontext); if (ret == 0) { - SIG_CANTMASK(uc.uc_sigmask); - PROC_LOCK(td->td_proc); - td->td_sigmask = uc.uc_sigmask; - PROC_UNLOCK(td->td_proc); + kern_sigprocmask(td, SIG_SETMASK, + &uc.uc_sigmask, NULL, 0); } } } @@ -544,9 +540,8 @@ } */ *uap; { struct ia32_ucontext4 uc; - struct proc *p = td->td_proc; struct trapframe *regs; - const struct ia32_ucontext4 *ucp; + struct ia32_ucontext4 *ucp; int cs, eflags, error; ksiginfo_t ksi; @@ -610,11 +605,7 @@ regs->tf_fs = ucp->uc_mcontext.mc_fs; regs->tf_gs = ucp->uc_mcontext.mc_gs; - PROC_LOCK(p); - td->td_sigmask = ucp->uc_sigmask; - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + kern_sigprocmask(td, SIG_SETMASK, &ucp->uc_sigmask, NULL, 0); td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); } @@ -631,9 +622,8 @@ } */ *uap; { struct ia32_ucontext uc; - struct proc *p = td->td_proc; struct trapframe *regs; - const struct ia32_ucontext *ucp; + struct ia32_ucontext *ucp; int cs, eflags, error, ret; ksiginfo_t ksi; @@ -702,11 +692,7 @@ regs->tf_gs = ucp->uc_mcontext.mc_gs; regs->tf_flags = TF_HASSEGS; - PROC_LOCK(p); - td->td_sigmask = ucp->uc_sigmask; - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + kern_sigprocmask(td, SIG_SETMASK, &ucp->uc_sigmask, NULL, 0); td->td_pcb->pcb_full_iret = 1; return (EJUSTRETURN); } ==== //depot/projects/usb/src/sys/amd64/linux32/linux32_machdep.c#14 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.53 2009/04/01 13:09:26 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.54 2009/10/28 20:17:54 jhb Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -91,6 +91,10 @@ return (bsa); } +static int linux_mmap_common(struct thread *td, l_uintptr_t addr, + l_size_t len, l_int prot, l_int flags, l_int fd, + l_loff_t pos); + int bsd_to_linux_sigaltstack(int bsa) { @@ -759,12 +763,9 @@ #define STACK_SIZE (2 * 1024 * 1024) #define GUARD_SIZE (4 * PAGE_SIZE) -static int linux_mmap_common(struct thread *, struct l_mmap_argv *); - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { - struct l_mmap_argv linux_args; #ifdef DEBUG if (ldebug(mmap2)) @@ -773,14 +774,9 @@ args->flags, args->fd, args->pgoff); #endif - linux_args.addr = PTROUT(args->addr); - linux_args.len = args->len; - linux_args.prot = args->prot; - linux_args.flags = args->flags; - linux_args.fd = args->fd; - linux_args.pgoff = args->pgoff; - - return (linux_mmap_common(td, &linux_args)); + return (linux_mmap_common(td, PTROUT(args->addr), args->len, args->prot, + args->flags, args->fd, (uint64_t)(uint32_t)args->pgoff * + PAGE_SIZE)); } int @@ -799,15 +795,15 @@ linux_args.addr, linux_args.len, linux_args.prot, linux_args.flags, linux_args.fd, linux_args.pgoff); #endif - if ((linux_args.pgoff % PAGE_SIZE) != 0) - return (EINVAL); - linux_args.pgoff /= PAGE_SIZE; - return (linux_mmap_common(td, &linux_args)); + return (linux_mmap_common(td, linux_args.addr, linux_args.len, + linux_args.prot, linux_args.flags, linux_args.fd, + (uint32_t)linux_args.pgoff)); } static int -linux_mmap_common(struct thread *td, struct l_mmap_argv *linux_args) +linux_mmap_common(struct thread *td, l_uintptr_t addr, l_size_t len, l_int prot, + l_int flags, l_int fd, l_loff_t pos) { struct proc *p = td->td_proc; struct mmap_args /* { @@ -830,21 +826,20 @@ * Linux mmap(2): * You must specify exactly one of MAP_SHARED and MAP_PRIVATE */ - if (! ((linux_args->flags & LINUX_MAP_SHARED) ^ - (linux_args->flags & LINUX_MAP_PRIVATE))) + if (!((flags & LINUX_MAP_SHARED) ^ (flags & LINUX_MAP_PRIVATE))) return (EINVAL); - if (linux_args->flags & LINUX_MAP_SHARED) + if (flags & LINUX_MAP_SHARED) bsd_args.flags |= MAP_SHARED; - if (linux_args->flags & LINUX_MAP_PRIVATE) + if (flags & LINUX_MAP_PRIVATE) bsd_args.flags |= MAP_PRIVATE; - if (linux_args->flags & LINUX_MAP_FIXED) + if (flags & LINUX_MAP_FIXED) bsd_args.flags |= MAP_FIXED; - if (linux_args->flags & LINUX_MAP_ANON) + if (flags & LINUX_MAP_ANON) bsd_args.flags |= MAP_ANON; else bsd_args.flags |= MAP_NOSYNC; - if (linux_args->flags & LINUX_MAP_GROWSDOWN) + if (flags & LINUX_MAP_GROWSDOWN) bsd_args.flags |= MAP_STACK; /* @@ -852,12 +847,12 @@ * on Linux/i386. We do this to ensure maximum compatibility. * Linux/ia64 does the same in i386 emulation mode. */ - bsd_args.prot = linux_args->prot; + bsd_args.prot = prot; if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) bsd_args.prot |= PROT_READ | PROT_EXEC; /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : linux_args->fd; + bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : fd; if (bsd_args.fd != -1) { /* * Linux follows Solaris mmap(2) description: @@ -882,7 +877,7 @@ fdrop(fp, td); } - if (linux_args->flags & LINUX_MAP_GROWSDOWN) { + if (flags & LINUX_MAP_GROWSDOWN) { /* * The Linux MAP_GROWSDOWN option does not limit auto * growth of the region. Linux mmap with this option @@ -905,8 +900,7 @@ * fixed size of (STACK_SIZE - GUARD_SIZE). */ - if ((caddr_t)PTRIN(linux_args->addr) + linux_args->len > - p->p_vmspace->vm_maxsaddr) { + if ((caddr_t)PTRIN(addr) + len > p->p_vmspace->vm_maxsaddr) { /* * Some Linux apps will attempt to mmap * thread stacks near the top of their @@ -937,19 +931,19 @@ * we map the full stack, since we don't have a way * to autogrow it. */ - if (linux_args->len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(linux_args->addr); - bsd_args.len = linux_args->len; + if (len > STACK_SIZE - GUARD_SIZE) { + bsd_args.addr = (caddr_t)PTRIN(addr); + bsd_args.len = len; } else { - bsd_args.addr = (caddr_t)PTRIN(linux_args->addr) - - (STACK_SIZE - GUARD_SIZE - linux_args->len); + bsd_args.addr = (caddr_t)PTRIN(addr) - + (STACK_SIZE - GUARD_SIZE - len); bsd_args.len = STACK_SIZE - GUARD_SIZE; } } else { - bsd_args.addr = (caddr_t)PTRIN(linux_args->addr); - bsd_args.len = linux_args->len; + bsd_args.addr = (caddr_t)PTRIN(addr); + bsd_args.len = len; } - bsd_args.pos = (off_t)linux_args->pgoff * PAGE_SIZE; + bsd_args.pos = pos; #ifdef DEBUG if (ldebug(mmap)) ==== //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#23 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.53 2009/08/24 16:19:47 bz Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.54 2009/10/27 10:47:58 kib Exp $"); #include "opt_compat.h" #ifndef COMPAT_IA32 @@ -565,9 +565,9 @@ int linux_sigreturn(struct thread *td, struct linux_sigreturn_args *args) { - struct proc *p = td->td_proc; struct l_sigframe frame; struct trapframe *regs; + sigset_t bmask; l_sigset_t lmask; int eflags, i; ksiginfo_t ksi; @@ -623,11 +623,8 @@ lmask.__bits[0] = frame.sf_sc.sc_mask; for (i = 0; i < (LINUX_NSIG_WORDS-1); i++) lmask.__bits[i+1] = frame.sf_extramask[i]; - PROC_LOCK(p); - linux_to_bsd_sigset(&lmask, &td->td_sigmask); - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + linux_to_bsd_sigset(&lmask, &bmask); + kern_sigprocmask(td, SIG_SETMASK, &bmask, NULL, 0); /* * Restore signal context. @@ -666,9 +663,9 @@ int linux_rt_sigreturn(struct thread *td, struct linux_rt_sigreturn_args *args) { - struct proc *p = td->td_proc; struct l_ucontext uc; struct l_sigcontext *context; + sigset_t bmask; l_stack_t *lss; stack_t ss; struct trapframe *regs; @@ -725,11 +722,8 @@ return(EINVAL); } - PROC_LOCK(p); - linux_to_bsd_sigset(&uc.uc_sigmask, &td->td_sigmask); - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + linux_to_bsd_sigset(&uc.uc_sigmask, &bmask); + kern_sigprocmask(td, SIG_SETMASK, &bmask, NULL, 0); /* * Restore signal context ==== //depot/projects/usb/src/sys/arm/arm/machdep.c#10 (text+ko) ==== @@ -46,7 +46,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.33 2009/05/18 18:37:18 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.34 2009/10/27 10:47:58 kib Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -605,7 +605,6 @@ const struct __ucontext *sigcntxp; } */ *uap; { - struct proc *p = td->td_proc; struct sigframe sf; struct trapframe *tf; int spsr; @@ -627,11 +626,7 @@ set_mcontext(td, &sf.sf_uc.uc_mcontext); /* Restore signal mask. */ - PROC_LOCK(p); - td->td_sigmask = sf.sf_uc.uc_sigmask; - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + kern_sigprocmask(td, SIG_SETMASK, &sf.sf_uc.uc_sigmask, NULL, 0); return (EJUSTRETURN); } ==== //depot/projects/usb/src/sys/arm/mv/mv_sata.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/mv/mv_sata.c,v 1.1 2009/06/24 15:41:18 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/mv_sata.c,v 1.2 2009/10/31 13:24:14 mav Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -548,14 +548,16 @@ uint32_t req_in; int error, slot; - sc = device_get_softc(GRANDPARENT(request->dev)); + sc = device_get_softc(device_get_parent(request->parent)); ch = device_get_softc(request->parent); mtx_assert(&ch->state_mtx, MA_OWNED); /* Only DMA R/W goes through the EDMA machine. */ if (request->u.ata.command != ATA_READ_DMA && - request->u.ata.command != ATA_WRITE_DMA) { + request->u.ata.command != ATA_WRITE_DMA && + request->u.ata.command != ATA_READ_DMA48 && + request->u.ata.command != ATA_WRITE_DMA48) { /* Disable EDMA before accessing legacy registers */ if (sata_edma_is_running(request->parent)) { @@ -569,12 +571,9 @@ return (ata_begin_transaction(request)); } - /* Check for 48 bit access and convert if needed */ - ata_modify_if_48bit(request); - /* Prepare data for DMA */ if ((error = ch->dma.load(request, NULL, NULL))) { - device_printf(request->dev, "setting up DMA failed!\n"); + device_printf(request->parent, "setting up DMA failed!\n"); request->result = error; return ATA_OP_FINISHED; } @@ -633,7 +632,7 @@ uint32_t res_in, res_out, icr; int slot; - sc = device_get_softc(GRANDPARENT(request->dev)); + sc = device_get_softc(device_get_parent(request->parent)); ch = device_get_softc(request->parent); mtx_assert(&ch->state_mtx, MA_OWNED); ==== //depot/projects/usb/src/sys/boot/common/commands.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.22 2004/11/13 17:04:55 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.23 2009/10/28 10:06:27 brueffer Exp $"); #include <stand.h> #include <string.h> @@ -150,6 +150,7 @@ break; default: command_errmsg = "usage is 'help <topic> [<subtopic>]"; + close(hfd); return(CMD_ERROR); } ==== //depot/projects/usb/src/sys/boot/i386/zfsboot/zfsboot.c#5 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/i386/zfsboot/zfsboot.c,v 1.4 2009/10/14 14:13:42 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/zfsboot/zfsboot.c,v 1.5 2009/10/23 18:44:53 rnoland Exp $"); #include <sys/param.h> #include <sys/errno.h> @@ -474,6 +474,7 @@ slba = hdr.hdr_lba_table; elba = slba + hdr.hdr_entries / entries_per_sec; while (slba < elba) { + dsk->start = 0; if (drvread(dsk, sec, slba, 1)) return; for (part = 0; part < entries_per_sec; part++) { @@ -494,7 +495,6 @@ */ dsk = copy_dsk(dsk); } - break; } } slba++; @@ -857,12 +857,13 @@ printf(const char *fmt,...) { va_list ap; - char buf[10]; + char buf[20]; char *s; - unsigned u; + unsigned long long u; int c; int minus; int prec; + int l; int len; int pad; @@ -871,6 +872,7 @@ if (c == '%') { minus = 0; prec = 0; + l = 0; nextfmt: c = *fmt++; switch (c) { @@ -892,6 +894,9 @@ case 'c': putchar(va_arg(ap, int)); continue; + case 'l': + l++; + goto nextfmt; case 's': s = va_arg(ap, char *); if (prec) { @@ -914,7 +919,17 @@ } continue; case 'u': - u = va_arg(ap, unsigned); + switch (l) { + case 2: + u = va_arg(ap, unsigned long long); + break; + case 1: + u = va_arg(ap, unsigned long); + break; + default: + u = va_arg(ap, unsigned); + break; + } s = buf; do *s++ = '0' + u % 10U; ==== //depot/projects/usb/src/sys/boot/zfs/zfs.c#4 (text+ko) ==== @@ -23,11 +23,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/zfs/zfs.c,v 1.4 2008/12/11 16:48:35 ps Exp $ + * $FreeBSD: src/sys/boot/zfs/zfs.c,v 1.5 2009/10/23 18:44:53 rnoland Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/zfs/zfs.c,v 1.4 2008/12/11 16:48:35 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/zfs/zfs.c,v 1.5 2009/10/23 18:44:53 rnoland Exp $"); /* * Stand-alone file reading package. @@ -100,7 +100,7 @@ f->f_fsdata = (void *)fp; if (spa->spa_root_objset.os_type != DMU_OST_ZFS) { - printf("Unexpected object set type %lld\n", + printf("Unexpected object set type %llu\n", spa->spa_root_objset.os_type); rc = EIO; goto out; @@ -413,7 +413,7 @@ if (vdev_probe(vdev_read, (void*) (uintptr_t) fd, 0)) close(fd); - for (slice = 1; slice <= 4; slice++) { + for (slice = 1; slice <= 128; slice++) { sprintf(devname, "disk%dp%d:", unit, slice); fd = open(devname, O_RDONLY); if (fd == -1) { ==== //depot/projects/usb/src/sys/boot/zfs/zfsimpl.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/zfs/zfsimpl.c,v 1.5 2009/05/16 10:48:20 dfr Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/zfs/zfsimpl.c,v 1.6 2009/10/23 18:44:53 rnoland Exp $"); /* * Stand-alone ZFS file reader. @@ -53,6 +53,8 @@ #define TEMP_SIZE (1*SPA_MAXBLOCKSIZE) +static int zio_read(spa_t *spa, const blkptr_t *bp, void *buf); + static void zfs_init(void) { @@ -897,6 +899,33 @@ } static int +zio_read_gang(spa_t *spa, const blkptr_t *bp, const dva_t *dva, void *buf) +{ + zio_gbh_phys_t zio_gb; + vdev_t *vdev; + int vdevid; + off_t offset; + int i; + + vdevid = DVA_GET_VDEV(dva); + offset = DVA_GET_OFFSET(dva); + STAILQ_FOREACH(vdev, &spa->spa_vdevs, v_childlink) + if (vdev->v_id == vdevid) + break; + if (!vdev || !vdev->v_read) + return (EIO); + if (vdev->v_read(vdev, bp, &zio_gb, offset, SPA_GANGBLOCKSIZE)) + return (EIO); + + for (i = 0; i < SPA_GBH_NBLKPTRS; i++) { + if (zio_read(spa, &zio_gb.zg_blkptr[i], buf)) + return (EIO); + } + + return (0); +} + +static int zio_read(spa_t *spa, const blkptr_t *bp, void *buf) { int cpfunc = BP_GET_COMPRESS(bp); @@ -920,20 +949,27 @@ if (!dva->dva_word[0] && !dva->dva_word[1]) continue; - vdevid = DVA_GET_VDEV(dva); - offset = DVA_GET_OFFSET(dva); - STAILQ_FOREACH(vdev, &spa->spa_vdevs, v_childlink) - if (vdev->v_id == vdevid) - break; - if (!vdev || !vdev->v_read) - continue; - if (vdev->v_read(vdev, bp, pbuf, offset, psize)) - continue; + if (DVA_GET_GANG(dva)) { + printf("ZFS: gang block detected!\n"); + if (zio_read_gang(spa, bp, dva, buf)) + return (EIO); + } else { + vdevid = DVA_GET_VDEV(dva); + offset = DVA_GET_OFFSET(dva); + STAILQ_FOREACH(vdev, &spa->spa_vdevs, v_childlink) + if (vdev->v_id == vdevid) + break; + if (!vdev || !vdev->v_read) { + continue; + } + if (vdev->v_read(vdev, bp, pbuf, offset, psize)) + continue; - if (cpfunc != ZIO_COMPRESS_OFF) { - if (zio_decompress_data(cpfunc, pbuf, psize, - buf, lsize)) - return (EIO); + if (cpfunc != ZIO_COMPRESS_OFF) { + if (zio_decompress_data(cpfunc, pbuf, psize, + buf, lsize)) + return (EIO); + } } return (0); @@ -1331,13 +1367,13 @@ dsl_dataset_phys_t *ds; if (objset_get_dnode(spa, &spa->spa_mos, objnum, &dataset)) { - printf("ZFS: can't find dataset %lld\n", objnum); + printf("ZFS: can't find dataset %llu\n", objnum); return (EIO); } ds = (dsl_dataset_phys_t *) &dataset.dn_bonus; if (zio_read(spa, &ds->ds_bp, objset)) { - printf("ZFS: can't read object set for dataset %lld\n", objnum); + printf("ZFS: can't read object set for dataset %llu\n", objnum); return (EIO); } @@ -1367,7 +1403,8 @@ */ if (zap_lookup(spa, &dir, DMU_POOL_PROPS, &props) == 0 && objset_get_dnode(spa, &spa->spa_mos, props, &propdir) == 0 - && zap_lookup(spa, &propdir, "bootfs", &bootfs) == 0) + && zap_lookup(spa, &propdir, "bootfs", &bootfs) == 0 + && bootfs != 0) return zfs_mount_dataset(spa, bootfs, objset); /* @@ -1425,7 +1462,7 @@ int symlinks_followed = 0; if (spa->spa_root_objset.os_type != DMU_OST_ZFS) { - printf("ZFS: unexpected object set type %lld\n", + printf("ZFS: unexpected object set type %llu\n", spa->spa_root_objset.os_type); return (EIO); } ==== //depot/projects/usb/src/sys/cam/ata/ata_da.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.6 2009/10/21 14:20:55 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.8 2009/10/31 10:43:38 mav Exp $"); #include <sys/param.h> @@ -63,8 +63,7 @@ #define ATA_MAX_28BIT_LBA 268435455UL typedef enum { - ADA_STATE_NORMAL, - ADA_STATE_SET_MULTI + ADA_STATE_NORMAL } ada_state; typedef enum { @@ -84,7 +83,6 @@ } ada_quirks; typedef enum { - ADA_CCB_SET_MULTI = 0x01, ADA_CCB_BUFFER_IO = 0x03, ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, @@ -112,7 +110,6 @@ ada_quirks quirks; int ordered_tag_count; int outstanding_cmds; - int secsperint; struct disk_params params; struct disk *disk; union ccb saved_ccb; @@ -270,7 +267,7 @@ /* We only sync the cache if the drive is capable of it. */ if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { - ccb = cam_periph_getccb(periph, /*priority*/1); + ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); cam_fill_ataio(&ccb->ataio, 1, adadone, @@ -343,7 +340,7 @@ /* * Schedule ourselves for performing the work. */ - xpt_schedule(periph, /* XXX priority */1); + xpt_schedule(periph, CAM_PRIORITY_NORMAL); cam_periph_unlock(periph); return; @@ -377,7 +374,7 @@ if (length > 0) { periph->flags |= CAM_PERIPH_POLLED; - xpt_setup_ccb(&ccb.ccb_h, periph->path, /*priority*/1); + xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910311550.n9VFosfa082658>