Date: Wed, 11 Aug 2004 02:26:31 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 59364 for review Message-ID: <200408110226.i7B2QVH0047154@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=59364 Change 59364 by rwatson@rwatson_paprika on 2004/08/11 02:25:53 Integrate netperf_socket from FreeBSD CVS: - More /dev/mem fixage. - More VM lockage. physio Giant-free. - ath now holds Giant calling into net80211 when !debug_mpsafenet. - A variety of GEOM cleanup, buf cleanup, md cleanup, etc. - ADAPTIVE_GIANT now the default for i386 GENERIC. - More synaptics mouse pad fixup. - Condvar signal bits sync'd to msleep signal bits for KSE. - MA_NOTOWNED assertions in fcntl() disabled due to ABI wrapping. - A bunch of KSE-related debugging stuff, etc. - Core dumps can now be created UF_NODUMP. - More KTR tracing for KTR_RUNQ, KTR_PROC, etc. - Can now specify additional taskqueue threads. - Now a thread_user_entry() - GIANT_REQUIRED removed from netatalk. - O_ANTISPOOF added to ipfw2. - Giant removed from crypto_fclose(). Affected files ... .. //depot/projects/netperf_socket/sys/amd64/amd64/amd64_mem.c#2 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#14 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#9 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#24 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/trap.c#8 integrate .. //depot/projects/netperf_socket/sys/arm/arm/pmap.c#9 integrate .. //depot/projects/netperf_socket/sys/boot/efi/loader/main.c#2 integrate .. //depot/projects/netperf_socket/sys/cam/scsi/scsi_da.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#36 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#13 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#14 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-queue.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-raid.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-cd.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/bfe/if_bfe.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/bfe/if_bfereg.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/bktr/bktr_card.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/bktr/bktr_card.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/md/md.c#17 integrate .. //depot/projects/netperf_socket/sys/dev/usb/umass.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/usb/umct.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uplcom.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/usbdevs#20 integrate .. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs_vnops.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_vfsops.c#8 integrate .. //depot/projects/netperf_socket/sys/fs/specfs/spec_vnops.c#8 integrate .. //depot/projects/netperf_socket/sys/gdb/gdb_main.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/bde/g_bde.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/concat/g_concat.c#12 integrate .. //depot/projects/netperf_socket/sys/geom/concat/g_concat.h#9 integrate .. //depot/projects/netperf_socket/sys/geom/gate/g_gate.c#8 integrate .. //depot/projects/netperf_socket/sys/geom/geom.h#6 integrate .. //depot/projects/netperf_socket/sys/geom/geom_aes.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_apple.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/geom_bsd.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_ccd.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_dev.c#5 integrate .. //depot/projects/netperf_socket/sys/geom/geom_disk.c#7 integrate .. //depot/projects/netperf_socket/sys/geom/geom_fox.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_gpt.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/geom_mbr.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/geom_pc98.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_subr.c#7 integrate .. //depot/projects/netperf_socket/sys/geom/geom_sunlabel.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_vol_ffs.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/label/g_label.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.h#4 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror_ctl.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/nop/g_nop.c#6 integrate .. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.c#7 integrate .. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.h#5 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.c#8 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#8 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_plex.c#6 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_subr.c#5 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_volume.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/conf/GENERIC#12 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#24 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/gdb_machdep.c#2 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/locore.S#3 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/machdep.c#8 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/pmap.c#16 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/syscall.S#2 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/trap.c#7 integrate .. //depot/projects/netperf_socket/sys/ia64/include/gdb_machdep.h#2 integrate .. //depot/projects/netperf_socket/sys/ia64/include/pte.h#2 integrate .. //depot/projects/netperf_socket/sys/isa/psm.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/imgact_elf.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/kern_condvar.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#15 integrate .. //depot/projects/netperf_socket/sys/kern/kern_fork.c#15 integrate .. //depot/projects/netperf_socket/sys/kern/kern_kse.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/kern_physio.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/kern_proc.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/kern_shutdown.c#12 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sig.c#18 integrate .. //depot/projects/netperf_socket/sys/kern/kern_switch.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/kern_synch.c#15 integrate .. //depot/projects/netperf_socket/sys/kern/kern_thread.c#22 integrate .. //depot/projects/netperf_socket/sys/kern/link_elf.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/sched_4bsd.c#11 integrate .. //depot/projects/netperf_socket/sys/kern/sched_ule.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/subr_taskqueue.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/subr_trap.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/sys_process.c#11 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#19 integrate .. //depot/projects/netperf_socket/sys/modules/geom/Makefile#7 integrate .. //depot/projects/netperf_socket/sys/modules/md/Makefile#2 integrate .. //depot/projects/netperf_socket/sys/net/if_tap.c#9 integrate .. //depot/projects/netperf_socket/sys/net/if_var.h#18 integrate .. //depot/projects/netperf_socket/sys/netatalk/aarp.c#10 integrate .. //depot/projects/netperf_socket/sys/netatalk/ddp_input.c#7 integrate .. //depot/projects/netperf_socket/sys/netgraph/bluetooth/include/ng_hci.h#2 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_fw.h#6 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_fw2.c#12 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_input.c#17 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_output.c#14 integrate .. //depot/projects/netperf_socket/sys/opencrypto/cryptodev.c#6 integrate .. //depot/projects/netperf_socket/sys/pci/agp_via.c#6 integrate .. //depot/projects/netperf_socket/sys/pci/agpreg.h#4 integrate .. //depot/projects/netperf_socket/sys/pci/if_rl.c#14 integrate .. //depot/projects/netperf_socket/sys/pci/if_vr.c#12 integrate .. //depot/projects/netperf_socket/sys/sparc64/include/pmap.h#6 integrate .. //depot/projects/netperf_socket/sys/sparc64/sparc64/machdep.c#6 integrate .. //depot/projects/netperf_socket/sys/sparc64/sparc64/pmap.c#12 integrate .. //depot/projects/netperf_socket/sys/sparc64/sparc64/tsb.c#2 integrate .. //depot/projects/netperf_socket/sys/sys/kse.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/mdioctl.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#23 integrate .. //depot/projects/netperf_socket/sys/sys/proc.h#21 integrate .. //depot/projects/netperf_socket/sys/sys/ptrace.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/taskqueue.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/vnode.h#9 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_softdep.c#7 integrate .. //depot/projects/netperf_socket/sys/vm/swap_pager.c#8 integrate .. //depot/projects/netperf_socket/sys/vm/vm_fault.c#5 integrate .. //depot/projects/netperf_socket/sys/vm/vm_init.c#5 integrate .. //depot/projects/netperf_socket/sys/vm/vm_kern.c#7 integrate .. //depot/projects/netperf_socket/sys/vm/vm_map.c#18 integrate .. //depot/projects/netperf_socket/sys/vm/vm_map.h#9 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/amd64/amd64_mem.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.24 2003/12/06 23:19:46 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.25 2004/08/07 06:21:37 scottl Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -112,6 +112,11 @@ #define MTRRTOMRTLEN (sizeof(amd64_mtrrtomrt) / sizeof(amd64_mtrrtomrt[0])) +/* + * Used in /dev/mem drivers and elsewhere + */ +MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors"); + static int amd64_mtrr2mrt(int val) { ==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#14 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.616 2004/08/06 07:20:32 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.617 2004/08/10 12:15:27 davidxu Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1348,10 +1348,11 @@ { struct pcb *pcb; struct trapframe *tp; + register_t rflags; tp = td->td_frame; - if (!EFL_SECURE(regs->r_rflags, tp->tf_rflags) || - !CS_SECURE(regs->r_cs)) + rflags = regs->r_rflags & 0xffffffff; + if (!EFL_SECURE(rflags, tp->tf_rflags) || !CS_SECURE(regs->r_cs)) return (EINVAL); tp->tf_r15 = regs->r_r15; tp->tf_r14 = regs->r_r14; @@ -1370,7 +1371,7 @@ tp->tf_rax = regs->r_rax; tp->tf_rip = regs->r_rip; tp->tf_cs = regs->r_cs; - tp->tf_rflags = regs->r_rflags; + tp->tf_rflags = rflags; tp->tf_rsp = regs->r_rsp; tp->tf_ss = regs->r_ss; pcb = td->td_pcb; ==== //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#9 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.120 2004/08/04 18:30:31 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.121 2004/08/07 06:21:37 scottl Exp $"); /* * Memory special file @@ -67,11 +67,6 @@ #include <machine/memdev.h> -/* - * Used in /dev/mem drivers and elsewhere - */ -MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors"); - /* ARGSUSED */ int memrw(struct cdev *dev, struct uio *uio, int flags) ==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#24 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.489 2004/08/04 18:04:43 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.491 2004/08/08 00:31:58 alc Exp $"); /* * Manages physical address maps. @@ -2265,10 +2265,9 @@ pml4_entry_t *pml4e; pdp_entry_t *pdpe; pd_entry_t srcptepaddr, *pde; - vm_pindex_t ptepindex; if (addr >= UPT_MIN_ADDRESS) - panic("pmap_copy: invalid to pmap_copy page tables\n"); + panic("pmap_copy: invalid to pmap_copy page tables"); /* * Don't let optional prefaulting of pages make us go @@ -2292,7 +2291,6 @@ } va_next = (addr + NBPDR) & ~PDRMASK; - ptepindex = pmap_pde_pindex(addr); pde = pmap_pde(src_pmap, addr); if (pde) @@ -2320,8 +2318,8 @@ } srcmpte = PHYS_TO_VM_PAGE(srcptepaddr & PG_FRAME); - if (srcmpte->hold_count == 0 || (srcmpte->flags & PG_BUSY)) - continue; + if (srcmpte->hold_count == 0) + panic("pmap_copy: source page table page is unused"); if (va_next > end_addr) va_next = end_addr; ==== //depot/projects/netperf_socket/sys/amd64/amd64/trap.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.277 2004/07/10 22:39:17 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.278 2004/08/09 23:57:59 davidxu Exp $"); /* * AMD64 Trap and System call handling @@ -729,21 +729,18 @@ /* * copyin and the ktrsyscall()/ktrsysret() code is MP-aware */ - if (narg <= regcnt) { - argp = &frame.tf_rdi; - argp += reg; - error = 0; - } else { - KASSERT(narg <= sizeof(args) / sizeof(args[0]), - ("Too many syscall arguments!")); + KASSERT(narg <= sizeof(args) / sizeof(args[0]), + ("Too many syscall arguments!")); + error = 0; + argp = &frame.tf_rdi; + argp += reg; + bcopy(argp, args, sizeof(args[0]) * regcnt); + if (narg > regcnt) { KASSERT(params != NULL, ("copyin args with no params!")); - argp = &frame.tf_rdi; - argp += reg; - bcopy(argp, args, sizeof(args[0]) * regcnt); error = copyin(params, &args[regcnt], - (narg - regcnt) * sizeof(args[0])); - argp = &args[0]; + (narg - regcnt) * sizeof(args[0])); } + argp = &args[0]; #ifdef KTRACE if (KTRPOINT(td, KTR_SYSCALL)) ==== //depot/projects/netperf_socket/sys/arm/arm/pmap.c#9 (text+ko) ==== @@ -144,7 +144,7 @@ */ /* Include header files */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.11 2004/08/06 22:32:53 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.12 2004/08/10 21:43:40 alc Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -3546,6 +3546,13 @@ return (pa); } +/* + * Atomically extract and hold the physical page with the given + * pmap and virtual address pair if that mapping permits the given + * protection. + * + * XXX Need to implement the protection check. + */ vm_page_t pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) { ==== //depot/projects/netperf_socket/sys/boot/efi/loader/main.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.20 2003/08/02 08:22:03 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.21 2004/08/10 02:08:57 marcel Exp $"); #include <stand.h> #include <string.h> @@ -384,15 +384,15 @@ int print_trs(int type) { - struct ia64_pal_result res; - int i, maxtr; + struct ia64_pal_result res; + int i, maxtr; struct { struct ia64_pte pte; struct ia64_itir itir; - struct ia64_ifa ifa; + uint64_t ifa; struct ia64_rr rr; - } buf; - static const char* psnames[] = { + } buf; + static const char *psnames[] = { "1B", "2B", "4B", "8B", "16B", "32B", "64B", "128B", "256B", "512B", "1K", "2K", @@ -402,10 +402,9 @@ "16M", "32M", "64M", "128M", "256M", "512M", "1G", "2G" }; - static const char* manames[] = { + static const char *manames[] = { "WB", "bad", "bad", "bad", "UC", "UCE", "WC", "NaT", - }; res = ia64_call_pal_static(PAL_VM_SUMMARY, 0, 0, 0); @@ -433,7 +432,7 @@ break; /* Only display valid translations */ - if ((buf.ifa.ifa_ig & 1) == 0) + if ((buf.ifa & 1) == 0) continue; if (!(res.pal_result[0] & 1)) @@ -448,7 +447,7 @@ "%03d %06x %013lx %013lx %4s %d %d %d %d %d %-3s %d %06x\n", i, buf.rr.rr_rid, - buf.ifa.ifa_vpn, + buf.ifa >> 12, buf.pte.pte_ppn, psnames[buf.itir.itir_ps], buf.pte.pte_ed, ==== //depot/projects/netperf_socket/sys/cam/scsi/scsi_da.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.169 2004/07/18 05:39:14 sanpei Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.170 2004/08/08 09:08:37 sanpei Exp $"); #ifdef _KERNEL #include "opt_hw_wdog.h" @@ -302,6 +302,14 @@ {T_DIRECT, SIP_MEDIA_REMOVABLE, "SEAGRAND", "NP-900*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT }, + { + /* + * iRiver iFP MP3 player (with UMS Firmware) + * PR: kern/54881, i386/63941, kern/66124 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "iRiver", "iFP*", "*"}, + /*quirks*/ DA_Q_NO_SYNC_CACHE + } }; static disk_strategy_t dastrategy; ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#36 (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/dev/acpica/acpi.c,v 1.183 2004/08/06 00:38:50 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.184 2004/08/10 22:02:52 njl Exp $ */ #include "opt_acpi.h" @@ -1750,18 +1750,16 @@ /* Enable any GPEs as appropriate and requested by the user. */ acpi_wake_prep_walk(state); - /* Inform all devices that we are going to sleep. */ - if (DEVICE_SUSPEND(root_bus) != 0) { - /* - * Re-wake the system. - * - * XXX note that a better two-pass approach with a 'veto' pass - * followed by a "real thing" pass would be better, but the - * current bus interface does not provide for this. - */ - DEVICE_RESUME(root_bus); + /* + * Inform all devices that we are going to sleep. If at least one + * device fails, DEVICE_SUSPEND() automatically resumes the tree. + * + * XXX Note that a better two-pass approach with a 'veto' pass + * followed by a "real thing" pass would be better, but the current + * bus interface does not provide for this. + */ + if (DEVICE_SUSPEND(root_bus) != 0) return_ACPI_STATUS (AE_ERROR); - } status = AcpiEnterSleepStatePrep(state); if (ACPI_FAILURE(status)) { @@ -1780,6 +1778,7 @@ if (state == ACPI_STATE_S4) AcpiEnable(); } else { + ACPI_DISABLE_IRQS(); status = AcpiEnterSleepState((UINT8)state); if (ACPI_FAILURE(status)) { device_printf(sc->acpi_dev, "AcpiEnterSleepState failed - %s\n", ==== //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.218 2004/08/05 21:13:40 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.220 2004/08/09 12:02:32 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -190,6 +190,11 @@ /* fail outstanding requests on this channel */ ata_fail_requests(ch, NULL); + /* unlock the channel */ + ch->running = NULL; + ATA_UNLOCK_CH(ch); + ch->locking(ch, ATA_LF_UNLOCK); + /* detach devices on this channel */ if (ch->device[MASTER].detach) ch->device[MASTER].detach(&ch->device[MASTER]); @@ -265,8 +270,10 @@ } } + /* unlock the channel */ ch->running = NULL; ATA_UNLOCK_CH(ch); + ch->locking(ch, ATA_LF_UNLOCK); /* identify what is present on the channel now */ ata_identify_devices(ch); @@ -353,6 +360,9 @@ caddr_t buf; int error = ENOTTY; + if (cmd != IOCATA) + return error; + DROP_GIANT(); switch (iocmd->cmd) { case ATAGMAXCHANNEL: ==== //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#14 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.42 2004/08/06 22:23:53 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.43 2004/08/07 12:49:28 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -295,7 +295,7 @@ } /* request finish here */ - if (request->flags & ATA_R_DMA && ch->dma->flags & ATA_DMA_LOADED) + if (ch->dma && ch->dma->flags & ATA_DMA_LOADED) ch->dma->unload(ch); return ATA_OP_FINISHED; } ==== //depot/projects/netperf_socket/sys/dev/ata/ata-queue.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.30 2004/08/05 21:13:41 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.31 2004/08/09 12:02:32 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -483,9 +483,6 @@ /* if we have a request "in flight" fail it as well */ if ((request = ch->running) && (!device || request->device == device)) { untimeout((timeout_t *)ata_timeout, request, request->timeout_handle); - ATA_UNLOCK_CH(request->device->channel); - request->device->channel->locking(request->device->channel, - ATA_LF_UNLOCK); request->result = ENXIO; if (request->callback) (request->callback)(request); ==== //depot/projects/netperf_socket/sys/dev/ata/ata-raid.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.80 2004/06/30 09:22:47 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.81 2004/08/09 14:22:58 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -1340,7 +1340,8 @@ return -1; } } - free(config, M_AR); + else + free(config, M_AR); } return 0; } @@ -1512,6 +1513,7 @@ break; default: + free(config, M_AR); return -1; } @@ -1548,9 +1550,12 @@ sizeof(struct lsi_raid_conf), (caddr_t)config, AR_WRITE)) { printf("ar%d: LSI write conf failed\n", rdp->lun); + free(config, M_AR); return -1; } } + else + free(config, M_AR); } return 0; } @@ -1849,7 +1854,8 @@ return -1; } } - free(config, M_AR); + else + free(config, M_AR); } return 0; } ==== //depot/projects/netperf_socket/sys/dev/ata/atapi-cd.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.169 2004/08/05 21:11:33 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.170 2004/08/08 07:57:50 phk Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -98,6 +98,10 @@ static MALLOC_DEFINE(M_ACD, "ACD driver", "ATAPI CD driver buffers"); static struct g_class acd_class = { .name = "ACD", + .version = G_VERSION, + .access = acd_geom_access, + .ioctl = acd_geom_ioctl, + .start = acd_geom_start, }; DECLARE_GEOM_CLASS(acd_class, acd); @@ -249,9 +253,6 @@ cdp = arg; g_topology_assert(); gp = g_new_geomf(&acd_class, "acd%d", cdp->lun); - gp->access = acd_geom_access; - gp->ioctl = acd_geom_ioctl; - gp->start = acd_geom_start; gp->softc = cdp; cdp->gp = gp; pp = g_new_providerf(gp, "acd%d", cdp->lun); ==== //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#9 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.56 2004/08/07 00:45:05 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.57 2004/08/08 17:10:54 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -262,7 +262,7 @@ if_printf(ifp, "failed to allocate descriptors: %d\n", error); goto bad; } - callout_init(&sc->sc_scan_ch, CALLOUT_MPSAFE); + callout_init(&sc->sc_scan_ch, debug_mpsafenet ? CALLOUT_MPSAFE : 0); callout_init(&sc->sc_cal_ch, CALLOUT_MPSAFE); ATH_TXBUF_LOCK_INIT(sc); ==== //depot/projects/netperf_socket/sys/dev/bfe/if_bfe.c#8 (text+ko) ==== @@ -28,7 +28,7 @@ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/bfe/if_bfe.c,v 1.14 2004/07/02 12:16:01 mlaier Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bfe/if_bfe.c,v 1.15 2004/08/07 20:55:53 des Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -111,7 +111,7 @@ static int bfe_miibus_readreg (device_t, int, int); static int bfe_miibus_writereg (device_t, int, int, int); static void bfe_miibus_statchg (device_t); -static int bfe_wait_bit (struct bfe_softc *, u_int32_t, u_int32_t, +static int bfe_wait_bit (struct bfe_softc *, u_int32_t, u_int32_t, u_long, const int); static void bfe_get_config (struct bfe_softc *sc); static void bfe_read_eeprom (struct bfe_softc *, u_int8_t *); @@ -161,7 +161,7 @@ DRIVER_MODULE(miibus, bfe, miibus_driver, miibus_devclass, 0, 0); /* - * Probe for a Broadcom 4401 chip. + * Probe for a Broadcom 4401 chip. */ static int bfe_probe(device_t dev) @@ -180,12 +180,12 @@ if ((pci_get_vendor(dev) == t->bfe_vid) && (pci_get_device(dev) == t->bfe_did)) { device_set_desc_copy(dev, t->bfe_name); - return(0); + return (0); } t++; } - return(ENXIO); + return (ENXIO); } static int @@ -199,7 +199,7 @@ /* parent tag */ error = bus_dma_tag_create(NULL, /* parent */ PAGE_SIZE, 0, /* alignment, boundary */ - BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR_32BIT, /* highaddr */ NULL, NULL, /* filter, filterarg */ MAXBSIZE, /* maxsize */ @@ -213,7 +213,7 @@ error = bus_dma_tag_create(sc->bfe_parent_tag, BFE_TX_LIST_SIZE, BFE_TX_LIST_SIZE, BUS_SPACE_MAXADDR, - BUS_SPACE_MAXADDR, + BUS_SPACE_MAXADDR, NULL, NULL, BFE_TX_LIST_SIZE, 1, @@ -224,7 +224,7 @@ if (error) { device_printf(dev, "could not allocate dma tag\n"); - return(ENOMEM); + return (ENOMEM); } /* tag for RX ring */ @@ -242,7 +242,7 @@ if (error) { device_printf(dev, "could not allocate dma tag\n"); - return(ENOMEM); + return (ENOMEM); } /* tag for mbufs */ @@ -260,7 +260,7 @@ if (error) { device_printf(dev, "could not allocate dma tag\n"); - return(ENOMEM); + return (ENOMEM); } /* pre allocate dmamaps for RX list */ @@ -269,7 +269,7 @@ &sc->bfe_rx_ring[i].bfe_map); if (error) { device_printf(dev, "cannot create DMA map for RX\n"); - return(ENOMEM); + return (ENOMEM); } } @@ -279,7 +279,7 @@ &sc->bfe_tx_ring[i].bfe_map); if (error) { device_printf(dev, "cannot create DMA map for TX\n"); - return(ENOMEM); + return (ENOMEM); } } @@ -288,7 +288,7 @@ BUS_DMA_NOWAIT, &sc->bfe_rx_map); if(error) - return(ENOMEM); + return (ENOMEM); bzero(sc->bfe_rx_list, BFE_RX_LIST_SIZE); error = bus_dmamap_load(sc->bfe_rx_tag, sc->bfe_rx_map, @@ -296,26 +296,26 @@ bfe_dma_map, &sc->bfe_rx_dma, 0); if(error) - return(ENOMEM); + return (ENOMEM); bus_dmamap_sync(sc->bfe_rx_tag, sc->bfe_rx_map, BUS_DMASYNC_PREREAD); - error = bus_dmamem_alloc(sc->bfe_tx_tag, (void *)&sc->bfe_tx_list, + error = bus_dmamem_alloc(sc->bfe_tx_tag, (void *)&sc->bfe_tx_list, BUS_DMA_NOWAIT, &sc->bfe_tx_map); - if (error) - return(ENOMEM); + if (error) + return (ENOMEM); - error = bus_dmamap_load(sc->bfe_tx_tag, sc->bfe_tx_map, - sc->bfe_tx_list, sizeof(struct bfe_desc), + error = bus_dmamap_load(sc->bfe_tx_tag, sc->bfe_tx_map, + sc->bfe_tx_list, sizeof(struct bfe_desc), bfe_dma_map, &sc->bfe_tx_dma, 0); if(error) - return(ENOMEM); + return (ENOMEM); bzero(sc->bfe_tx_list, BFE_TX_LIST_SIZE); bus_dmamap_sync(sc->bfe_tx_tag, sc->bfe_tx_map, BUS_DMASYNC_PREREAD); - return(0); + return (0); } static int @@ -442,7 +442,7 @@ fail: if(error) bfe_release_resources(sc); - return(error); + return (error); } static int @@ -473,7 +473,7 @@ BFE_UNLOCK(sc); mtx_destroy(&sc->bfe_mtx); - return(0); + return (0); } /* @@ -487,7 +487,7 @@ sc = device_get_softc(dev); BFE_LOCK(sc); - bfe_stop(sc); + bfe_stop(sc); BFE_UNLOCK(sc); return; @@ -501,10 +501,10 @@ sc = device_get_softc(dev); if(phy != sc->bfe_phyaddr) - return(0); + return (0); bfe_readphy(sc, reg, &ret); - return(ret); + return (ret); } static int @@ -514,10 +514,10 @@ sc = device_get_softc(dev); if(phy != sc->bfe_phyaddr) - return(0); - bfe_writephy(sc, reg, val); + return (0); + bfe_writephy(sc, reg, val); - return(0); + return (0); } static void @@ -530,7 +530,7 @@ bfe_tx_ring_free(struct bfe_softc *sc) { int i; - + for(i = 0; i < BFE_TX_LIST_CNT; i++) { if(sc->bfe_tx_ring[i].bfe_mbuf != NULL) { m_freem(sc->bfe_tx_ring[i].bfe_mbuf); @@ -565,14 +565,14 @@ } -static int +static int bfe_list_rx_init(struct bfe_softc *sc) { int i; for(i = 0; i < BFE_RX_LIST_CNT; i++) { - if(bfe_list_newbuf(sc, i, NULL) == ENOBUFS) - return ENOBUFS; + if(bfe_list_newbuf(sc, i, NULL) == ENOBUFS) + return (ENOBUFS); } bus_dmamap_sync(sc->bfe_rx_tag, sc->bfe_rx_map, BUS_DMASYNC_PREREAD); @@ -580,7 +580,7 @@ sc->bfe_rx_cons = 0; - return(0); + return (0); } static int @@ -592,12 +592,12 @@ u_int32_t ctrl; if ((c < 0) || (c >= BFE_RX_LIST_CNT)) - return(EINVAL); + return (EINVAL); if(m == NULL) { m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); if(m == NULL) - return(ENOBUFS); + return (ENOBUFS); m->m_len = m->m_pkthdr.len = MCLBYTES; } else @@ -611,7 +611,7 @@ sc->bfe_rx_cnt = c; d = &sc->bfe_rx_list[c]; r = &sc->bfe_rx_ring[c]; - bus_dmamap_load(sc->bfe_tag, r->bfe_map, mtod(m, void *), + bus_dmamap_load(sc->bfe_tag, r->bfe_map, mtod(m, void *), MCLBYTES, bfe_dma_map_desc, d, 0); bus_dmamap_sync(sc->bfe_tag, r->bfe_map, BUS_DMASYNC_PREWRITE); @@ -623,7 +623,7 @@ d->bfe_ctrl = ctrl; r->bfe_mbuf = m; bus_dmamap_sync(sc->bfe_rx_tag, sc->bfe_rx_map, BUS_DMASYNC_PREREAD); - return(0); + return (0); } static void @@ -643,7 +643,7 @@ sc->bfe_phyaddr = eeprom[90] & 0x1f; sc->bfe_mdc_port = (eeprom[90] >> 14) & 0x1; - sc->bfe_core_unit = 0; + sc->bfe_core_unit = 0; sc->bfe_dma_offset = BFE_PCI_DMA; } @@ -667,7 +667,7 @@ pci_write_config(sc->bfe_dev, BFE_BAR0_WIN, bar_orig, 4); } -static void +static void bfe_clear_stats(struct bfe_softc *sc) { u_long reg; @@ -683,7 +683,7 @@ BFE_UNLOCK(sc); } -static int +static int bfe_resetphy(struct bfe_softc *sc) { u_int32_t val; @@ -695,10 +695,10 @@ if (val & BMCR_RESET) { printf("bfe%d: PHY Reset would not complete.\n", sc->bfe_unit); BFE_UNLOCK(sc); - return ENXIO; + return (ENXIO); } BFE_UNLOCK(sc); - return 0; + return (0); } static void @@ -722,7 +722,7 @@ static void bfe_chip_reset(struct bfe_softc *sc) { - u_int32_t val; + u_int32_t val; BFE_LOCK(sc); @@ -739,7 +739,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200408110226.i7B2QVH0047154>