Date: Sun, 27 Nov 2005 01:39:23 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 87299 for review Message-ID: <200511270139.jAR1dNxE034616@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=87299 Change 87299 by rwatson@rwatson_zoo on 2005/11/27 01:39:02 Integrate netsmp. Affected files ... .. //depot/projects/netsmp/src/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/conf/Makefile.arm#5 integrate .. //depot/projects/netsmp/src/sys/conf/files#13 integrate .. //depot/projects/netsmp/src/sys/conf/files.alpha#2 integrate .. //depot/projects/netsmp/src/sys/conf/files.i386#7 integrate .. //depot/projects/netsmp/src/sys/conf/files.pc98#4 integrate .. //depot/projects/netsmp/src/sys/dev/acpica/acpi_cmbat.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/amr/amr.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-all.c#8 integrate .. //depot/projects/netsmp/src/sys/dev/ata/ata-all.h#5 integrate .. //depot/projects/netsmp/src/sys/dev/em/if_em.c#10 integrate .. //depot/projects/netsmp/src/sys/dev/firewire/firewire.c#2 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/ac97.c#6 integrate .. //depot/projects/netsmp/src/sys/dev/sound/pcm/feeder_fmt.c#5 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_ural.c#9 integrate .. //depot/projects/netsmp/src/sys/dev/usb/if_uralreg.h#2 integrate .. //depot/projects/netsmp/src/sys/dev/usb/umass.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/geom_kern.c#2 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum.c#4 integrate .. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_drive.c#5 integrate .. //depot/projects/netsmp/src/sys/i386/i386/busdma_machdep.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/init_sysent.c#4 integrate .. //depot/projects/netsmp/src/sys/kern/kern_time.c#5 integrate .. //depot/projects/netsmp/src/sys/kern/syscalls.c#4 integrate .. //depot/projects/netsmp/src/sys/kern/syscalls.master#4 integrate .. //depot/projects/netsmp/src/sys/kern/uipc_mqueue.c#1 branch .. //depot/projects/netsmp/src/sys/modules/Makefile#8 integrate .. //depot/projects/netsmp/src/sys/modules/geom/geom_vinum/Makefile#4 integrate .. //depot/projects/netsmp/src/sys/modules/mqueue/Makefile#1 branch .. //depot/projects/netsmp/src/sys/net/if_clone.c#4 integrate .. //depot/projects/netsmp/src/sys/netinet/libalias/libalias.3#2 integrate .. //depot/projects/netsmp/src/sys/sys/_types.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/file.h#2 integrate .. //depot/projects/netsmp/src/sys/sys/mqueue.h#1 branch .. //depot/projects/netsmp/src/sys/sys/syscall.h#4 integrate .. //depot/projects/netsmp/src/sys/sys/syscall.mk#4 integrate .. //depot/projects/netsmp/src/sys/sys/sysproto.h#4 integrate .. //depot/projects/netsmp/src/sys/sys/time.h#3 integrate .. //depot/projects/netsmp/src/sys/sys/types.h#3 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_vfsops.c#7 integrate .. //depot/projects/netsmp/src/tools/regression/mqueue/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest1/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest1/mqtest1.c#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest2/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest2/mqtest2.c#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest3/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest3/mqtest3.c#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest4/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest4/mqtest4.c#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest5/Makefile#1 branch .. //depot/projects/netsmp/src/tools/regression/mqueue/mqtest5/mqtest5.c#1 branch Differences ... ==== //depot/projects/netsmp/src/sys/amd64/amd64/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.70 2005/03/12 07:05:59 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.71 2005/11/24 15:28:32 le Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -978,7 +978,7 @@ SYSCTL_ADD_INT(busdma_sysctl_tree(bz), SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, "total_bpages", CTLFLAG_RD, &bz->total_bpages, 0, - "Totoal bounce pages"); + "Total bounce pages"); SYSCTL_ADD_INT(busdma_sysctl_tree(bz), SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, "free_bpages", CTLFLAG_RD, &bz->free_bpages, 0, ==== //depot/projects/netsmp/src/sys/conf/Makefile.arm#5 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.arm -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.arm,v 1.18 2005/11/24 02:25:49 cognet Exp $ +# $FreeBSD: src/sys/conf/Makefile.arm,v 1.19 2005/11/25 03:30:45 cognet Exp $ # # Makefile for FreeBSD # @@ -48,7 +48,7 @@ DDB_ENABLED!= grep DDB opt_ddb.h || true -SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.static \ +SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader \ -warn-common -export-dynamic -dynamic-linker /red/herring -o \ ${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o SYSTEM_LD_TAIL +=; cat ldscript.$M| \ @@ -74,7 +74,7 @@ .endif -CLEANFILES += ldscript.$M ldscript.$M.static ${KERNEL_KO}.bin \ +CLEANFILES += ldscript.$M ldscript.$M.noheader ${KERNEL_KO}.bin \ ${KERNEL_KO}.tramp ${KERNEL_KO}.tramp.bin %BEFORE_DEPEND ==== //depot/projects/netsmp/src/sys/conf/files#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1066 2005/11/22 17:12:48 marius Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1068 2005/11/26 12:42:35 davidxu Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -10,12 +10,12 @@ no-obj no-implicit-rule before-depend \ clean "acpi_quirks.h" aicasm optional ahc \ - dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ + dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ compile-with "CC=${CC} ${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ no-obj no-implicit-rule \ clean "aicasm* y.tab.h" aicasm optional ahd \ - dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ + dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ compile-with "CC=${CC} ${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ no-obj no-implicit-rule \ clean "aicasm* y.tab.h" @@ -488,10 +488,10 @@ dev/ata/atapi-cd.c optional atapicd dev/ata/atapi-fd.c optional atapifd dev/ata/atapi-tape.c optional atapist -dev/ath/ath_rate/amrr/amrr.c optional ath_rate_amrr -dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe \ +dev/ath/ath_rate/amrr/amrr.c optional ath_rate_amrr +dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe \ compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" -dev/ath/ath_rate/sample/sample.c optional ath_rate_sample \ +dev/ath/ath_rate/sample/sample.c optional ath_rate_sample \ compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" dev/ath/if_ath.c optional ath \ compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd" @@ -829,7 +829,7 @@ dev/rp/rp_pci.c optional rp pci dev/sab/sab.c optional sab ebus dev/safe/safe.c optional safe -dev/sbsh/if_sbsh.c optional sbsh +dev/sbsh/if_sbsh.c optional sbsh dev/scd/scd.c optional scd isa dev/scd/scd_isa.c optional scd isa dev/si/si.c optional si @@ -872,7 +872,7 @@ dev/sound/pci/es137x.c optional snd_es137x pci dev/sound/pci/fm801.c optional snd_fm801 pci dev/sound/pci/ich.c optional snd_ich pci -dev/sound/pci/maestro.c optional snd_maestro pci +dev/sound/pci/maestro.c optional snd_maestro pci dev/sound/pci/maestro3.c optional snd_maestro3 pci \ warning "kernel contains GPL contaminated maestro3 headers" dev/sound/pci/neomagic.c optional snd_neomagic pci @@ -1363,6 +1363,7 @@ kern/uipc_domain.c standard kern/uipc_mbuf.c standard kern/uipc_mbuf2.c standard +kern/uipc_mqueue.c optional p1003_1b_mqueue kern/uipc_proto.c standard kern/uipc_sem.c optional p1003_1b_semaphores kern/uipc_socket.c standard @@ -1526,19 +1527,19 @@ netatm/spans/spans_subr.c optional atm_spans atm_core netatm/spans/spans_util.c optional atm_spans atm_core spans_xdr.h optional atm_spans atm_core \ - before-depend \ - dependency "$S/netatm/spans/spans_xdr.x" \ - compile-with "rpcgen -h -C $S/netatm/spans/spans_xdr.x | grep -v rpc/rpc.h > spans_xdr.h" \ - clean "spans_xdr.h" \ - no-obj no-implicit-rule + before-depend \ + dependency "$S/netatm/spans/spans_xdr.x" \ + compile-with "rpcgen -h -C $S/netatm/spans/spans_xdr.x | grep -v rpc/rpc.h > spans_xdr.h" \ + clean "spans_xdr.h" \ + no-obj no-implicit-rule spans_xdr.c optional atm_spans atm_core \ - before-depend \ - dependency "$S/netatm/spans/spans_xdr.x" \ - compile-with "rpcgen -c -C $S/netatm/spans/spans_xdr.x | grep -v rpc/rpc.h > spans_xdr.c" \ - clean "spans_xdr.c" \ - no-obj no-implicit-rule local + before-depend \ + dependency "$S/netatm/spans/spans_xdr.x" \ + compile-with "rpcgen -c -C $S/netatm/spans/spans_xdr.x | grep -v rpc/rpc.h > spans_xdr.c" \ + clean "spans_xdr.c" \ + no-obj no-implicit-rule local spans_xdr.o optional atm_spans atm_core \ - dependency "$S/netatm/spans/spans_xdr.x" \ + dependency "$S/netatm/spans/spans_xdr.x" \ compile-with "${NORMAL_C}" \ no-implicit-rule local netatm/uni/q2110_sigaa.c optional atm_uni atm_core ==== //depot/projects/netsmp/src/sys/conf/files.alpha#2 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.alpha,v 1.121 2005/06/14 04:16:10 marcel Exp $ +# $FreeBSD: src/sys/conf/files.alpha,v 1.122 2005/11/26 08:50:20 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -47,7 +47,6 @@ alpha/alpha/db_interface.c optional ddb alpha/alpha/db_trace.c optional ddb alpha/alpha/dec_1000a.c optional dec_1000a -alpha/alpha/dec_1000a.c optional dec_1000a alpha/alpha/dec_2100_a50.c optional dec_2100_a50 alpha/alpha/dec_2100_a500.c optional dec_2100_a500 alpha/alpha/dec_axppci_33.c optional dec_axppci_33 ==== //depot/projects/netsmp/src/sys/conf/files.i386#7 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.545 2005/11/21 20:11:39 ru Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.546 2005/11/26 08:50:20 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -133,8 +133,6 @@ compile-with "${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \ no-implicit-rule crypto/des/arch/i386/des_enc.S optional crypto -crypto/des/des_ecb.c optional crypto -crypto/des/des_setkey.c optional crypto crypto/via/padlock.c optional padlock dev/advansys/adv_isa.c optional adv isa dev/aic/aic_isa.c optional aic isa ==== //depot/projects/netsmp/src/sys/conf/files.pc98#4 (text+ko) ==== @@ -3,7 +3,7 @@ # # modified for PC-9801/PC-9821 # -# $FreeBSD: src/sys/conf/files.pc98,v 1.329 2005/11/11 09:57:30 ru Exp $ +# $FreeBSD: src/sys/conf/files.pc98,v 1.330 2005/11/26 08:50:20 ru Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -89,8 +89,6 @@ compile-with "${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \ no-implicit-rule crypto/des/arch/i386/des_enc.S optional crypto -crypto/des/des_ecb.c optional crypto -crypto/des/des_setkey.c optional crypto dev/aic/aic_cbus.c optional aic isa dev/ar/if_ar.c optional ar dev/ar/if_ar_pci.c optional ar pci ==== //depot/projects/netsmp/src/sys/dev/acpica/acpi_cmbat.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.42 2005/11/23 00:57:51 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.43 2005/11/26 07:36:53 njl Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -80,6 +80,7 @@ static int acpi_cmbat_info_expired(struct timespec *lastupdated); static void acpi_cmbat_info_updated(struct timespec *lastupdated); static void acpi_cmbat_get_bst(void *arg); +static void acpi_cmbat_get_bif_task(void *arg); static void acpi_cmbat_get_bif(void *arg); static int acpi_cmbat_bst(device_t dev, struct acpi_bst *bstp); static int acpi_cmbat_bif(device_t dev, struct acpi_bif *bifp); @@ -193,7 +194,7 @@ * Queue a callback to get the current battery info from thread * context. It's not safe to block in a notify handler. */ - AcpiOsQueueForExecution(OSD_PRIORITY_LO, acpi_cmbat_get_bif, dev); + AcpiOsQueueForExecution(OSD_PRIORITY_LO, acpi_cmbat_get_bif_task, dev); break; } @@ -288,6 +289,16 @@ AcpiOsFree(bst_buffer.Pointer); } +/* XXX There should be a cleaner way to do this locking. */ +static void +acpi_cmbat_get_bif_task(void *arg) +{ + + ACPI_SERIAL_BEGIN(cmbat); + acpi_cmbat_get_bif(arg); + ACPI_SERIAL_END(cmbat); +} + static void acpi_cmbat_get_bif(void *arg) { ==== //depot/projects/netsmp/src/sys/dev/amr/amr.c#5 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.69 2005/11/06 15:13:41 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.70 2005/11/26 07:30:09 scottl Exp $"); /* * Driver for the AMI MegaRaid family of controllers. @@ -85,6 +85,13 @@ #define AMR_DEFINE_TABLES #include <dev/amr/amr_tables.h> +/* + * The CAM interface appears to be completely broken. Disable it. + */ +#ifndef AMR_ENABLE_CAM +#define AMR_ENABLE_CAM 0 +#endif + static d_open_t amr_open; static d_close_t amr_close; static d_ioctl_t amr_ioctl; @@ -225,12 +232,14 @@ debug(2, "controller query complete"); +#if AMR_ENABLE_CAM != 0 /* * Attach our 'real' SCSI channels to CAM. */ if (amr_cam_attach(sc)) return(ENXIO); debug(2, "CAM attach done"); +#endif /* * Create the control device. @@ -327,8 +336,10 @@ { struct amr_command_cluster *acc; +#if AMR_ENABLE_CAM != 0 /* detach from CAM */ amr_cam_detach(sc); +#endif /* cancel status timeout */ untimeout(amr_periodic, sc, sc->amr_timeout); @@ -855,9 +866,11 @@ if (ac == NULL) (void)amr_bio_command(sc, &ac); +#if AMR_ENABLE_CAM != 0 /* if that failed, build a command from a ccb */ if (ac == NULL) (void)amr_cam_command(sc, &ac); +#endif /* if we don't have anything to do, give up */ if (ac == NULL) ==== //depot/projects/netsmp/src/sys/dev/ata/ata-all.c#8 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.259 2005/10/31 15:41:18 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.260 2005/11/25 09:00:56 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -68,6 +68,7 @@ static void ata_interrupt(void *); static void ata_boot_attach(void); static device_t ata_add_child(device_t, struct ata_device *, int); +static int ata_getparam(struct ata_device *, int); static void bswap(int8_t *, int); static void btrim(int8_t *, int); static void bpack(int8_t *, int8_t *, int); @@ -511,6 +512,7 @@ return error; case IOCATAGPARM: + ata_getparam(atadev, 0); bcopy(&atadev->param, params, sizeof(struct ata_params)); return 0; @@ -572,9 +574,9 @@ } static int -ata_getparam(device_t parent, struct ata_device *atadev) +ata_getparam(struct ata_device *atadev, int init) { - struct ata_channel *ch = device_get_softc(parent); + struct ata_channel *ch = device_get_softc(device_get_parent(atadev->dev)); struct ata_request *request; u_int8_t command = 0; int error = ENOMEM, retries = 2; @@ -631,8 +633,7 @@ bpack(atacap->revision, atacap->revision, sizeof(atacap->revision)); btrim(atacap->serial, sizeof(atacap->serial)); bpack(atacap->serial, atacap->serial, sizeof(atacap->serial)); - sprintf(buffer, "%.40s/%.8s", atacap->model, atacap->revision); - device_set_desc_copy(atadev->dev, buffer); + if (bootverbose) printf("ata%d-%s: pio=%s wdma=%s udma=%s cable=%s wire\n", ch->unit, atadev->unit == ATA_MASTER ? "master":"slave", @@ -641,18 +642,22 @@ ata_mode2str(ata_umode(atacap)), (atacap->hwres & ATA_CABLE_ID) ? "80":"40"); - if (atadev->param.config & ATA_PROTO_ATAPI) { - if (atapi_dma && ch->dma && - (atadev->param.config & ATA_DRQ_MASK) != ATA_DRQ_INTR && - ata_umode(&atadev->param) >= ATA_UDMA2) - atadev->mode = ATA_DMA_MAX; + if (init) { + sprintf(buffer, "%.40s/%.8s", atacap->model, atacap->revision); + device_set_desc_copy(atadev->dev, buffer); + if (atadev->param.config & ATA_PROTO_ATAPI) { + if (atapi_dma && ch->dma && + (atadev->param.config & ATA_DRQ_MASK) != ATA_DRQ_INTR && + ata_umode(&atadev->param) >= ATA_UDMA2) + atadev->mode = ATA_DMA_MAX; + } + else { + if (ata_dma && ch->dma && + (ata_umode(&atadev->param) > 0 || + ata_wmode(&atadev->param) > 0)) + atadev->mode = ATA_DMA_MAX; + } } - else { - if (ata_dma && ch->dma && - (ata_umode(&atadev->param) > 0 || - ata_wmode(&atadev->param) > 0)) - atadev->mode = ATA_DMA_MAX; - } } else { if (!error) @@ -704,11 +709,11 @@ slave = NULL; } - if (slave && ata_getparam(dev, slave)) { + if (slave && ata_getparam(slave, 1)) { device_delete_child(dev, slave_child); free(slave, M_ATA); } - if (master && ata_getparam(dev, master)) { + if (master && ata_getparam(master, 1)) { device_delete_child(dev, master_child); free(master, M_ATA); } @@ -808,6 +813,12 @@ case ATA_FLUSHCACHE: request->u.ata.command = ATA_FLUSHCACHE48; break; + case ATA_READ_NATIVE_MAX_ADDDRESS: + request->u.ata.command = ATA_READ_NATIVE_MAX_ADDDRESS48; + break; + case ATA_SET_MAX_ADDRESS: + request->u.ata.command = ATA_SET_MAX_ADDRESS48; + break; default: return; } ==== //depot/projects/netsmp/src/sys/dev/ata/ata-all.h#5 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.106 2005/10/06 15:44:07 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.107 2005/11/25 09:00:56 sos Exp $ */ /* ATA register defines */ @@ -298,7 +298,7 @@ #define ATA_INTR_FLAGS (INTR_MPSAFE|INTR_TYPE_BIO|INTR_ENTROPY) #define ATA_OP_CONTINUES 0 #define ATA_OP_FINISHED 1 -#define ATA_MAX_28BIT_LBA 268435455 +#define ATA_MAX_28BIT_LBA 268435455UL /* ATAPI request sense structure */ struct atapi_sense { ==== //depot/projects/netsmp/src/sys/dev/em/if_em.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.89 2005/11/24 01:44:48 glebius Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.90 2005/11/24 15:13:47 cognet Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -1219,6 +1219,7 @@ u_int32_t txd_upper; u_int32_t txd_lower, txd_used = 0, txd_saved = 0; int i, j, error = 0; + bus_dmamap_t map; struct mbuf *m_head; @@ -1253,6 +1254,7 @@ tx_buffer = &adapter->tx_buffer_area[adapter->next_avail_tx_desc]; error = bus_dmamap_load_mbuf_sg(adapter->txtag, tx_buffer->map, m_head, segs, &nsegs, BUS_DMA_NOWAIT); + map = tx_buffer->map; if (error != 0) { adapter->no_tx_dma_setup++; return (error); @@ -1383,7 +1385,7 @@ } tx_buffer->m_head = m_head; - bus_dmamap_sync(adapter->txtag, tx_buffer->map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(adapter->txtag, map, BUS_DMASYNC_PREWRITE); /* * Last Descriptor of Packet needs End Of Packet (EOP) ==== //depot/projects/netsmp/src/sys/dev/firewire/firewire.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.80 2005/01/06 01:42:41 imp Exp $ + * $FreeBSD: src/sys/dev/firewire/firewire.c,v 1.81 2005/11/25 14:29:24 simokawa Exp $ * */ @@ -1324,6 +1324,7 @@ uint32_t addr; struct fw_xfer *xfer; struct fw_pkt *fp; + union fw_self_id *fwsid; if(fc->status != FWBUSEXPLORE) return; @@ -1336,7 +1337,8 @@ /* check link */ /* XXX we need to check phy_id first */ - if (!fw_find_self_id(fc, fc->ongonode)->p0.link_active) { + fwsid = fw_find_self_id(fc, fc->ongonode); + if (!fwsid || !fwsid->p0.link_active) { if (firewire_debug) printf("node%d: link down\n", fc->ongonode); fc->ongonode++; ==== //depot/projects/netsmp/src/sys/dev/sound/pcm/ac97.c#6 (text+ko) ==== @@ -30,7 +30,7 @@ #include "mixer_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.57 2005/11/14 18:19:33 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.58 2005/11/26 03:51:25 ariff Exp $"); MALLOC_DEFINE(M_AC97, "ac97", "ac97 codec"); @@ -148,6 +148,7 @@ { 0x414c4710, 0x0f, 0, "ALC200", 0 }, { 0x414c4740, 0x0f, 0, "ALC202", 0 }, { 0x414c4720, 0x0f, 0, "ALC650", 0 }, + { 0x414c4752, 0x0f, 0, "ALC250", 0 }, { 0x414c4760, 0x0f, 0, "ALC655", 0 }, { 0x414c4780, 0x0f, 0, "ALC658", 0 }, { 0x414c4790, 0x0f, 0, "ALC850", 0 }, ==== //depot/projects/netsmp/src/sys/dev/sound/pcm/feeder_fmt.c#5 (text+ko) ==== @@ -39,7 +39,7 @@ #include <dev/sound/pcm/sound.h> #include "feeder_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/feeder_fmt.c,v 1.17 2005/11/14 18:37:59 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/feeder_fmt.c,v 1.18 2005/11/26 03:54:17 ariff Exp $"); MALLOC_DEFINE(M_FMTFEEDER, "fmtfeed", "pcm format feeder"); @@ -629,6 +629,93 @@ {0, 0} }; FEEDER_DECLARE(feeder_monotostereo16, 0, NULL); + +static int +feed_monotostereo24(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, + uint32_t count, void *source) +{ + int i, j, k = FEEDER_FEED(f->source, c, b, count >> 1, source); + uint8_t l, m, n; + + if (k < 3) { + FMT_TRACE("%s: Not enough data (Got: %d bytes)\n", + __func__, k); + return 0; + } + FMT_TEST(k % 3, "%s: Bytes not 24bit aligned.\n", __func__); + FMT_ALIGNBYTE(k -= k % 3); + i = k; + j = k << 1; + while (i > 0) { + l = b[--i]; + m = b[--i]; + n = b[--i]; + b[--j] = l; + b[--j] = m; + b[--j] = n; + b[--j] = l; + b[--j] = m; + b[--j] = n; + } + return k << 1; +} +static struct pcm_feederdesc feeder_monotostereo24_desc[] = { + {FEEDER_FMT, AFMT_U24_LE, AFMT_U24_LE|AFMT_STEREO, 0}, + {FEEDER_FMT, AFMT_S24_LE, AFMT_S24_LE|AFMT_STEREO, 0}, + {FEEDER_FMT, AFMT_U24_BE, AFMT_U24_BE|AFMT_STEREO, 0}, + {FEEDER_FMT, AFMT_S24_BE, AFMT_S24_BE|AFMT_STEREO, 0}, + {0, 0, 0, 0}, +}; +static kobj_method_t feeder_monotostereo24_methods[] = { + KOBJMETHOD(feeder_feed, feed_monotostereo24), + {0, 0} +}; +FEEDER_DECLARE(feeder_monotostereo24, 0, NULL); + +static int +feed_monotostereo32(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, + uint32_t count, void *source) +{ + int i, j, k = FEEDER_FEED(f->source, c, b, count >> 1, source); + uint8_t l, m, n, o; + + if (k < 4) { + FMT_TRACE("%s: Not enough data (Got: %d bytes)\n", + __func__, k); + return 0; + } + FMT_TEST(k & 3, "%s: Bytes not 32bit aligned.\n", __func__); + FMT_ALIGNBYTE(k &= ~3); + i = k; + j = k << 1; + while (i > 0) { + l = b[--i]; + m = b[--i]; + n = b[--i]; + o = b[--i]; + b[--j] = l; + b[--j] = m; + b[--j] = n; + b[--j] = o; + b[--j] = l; + b[--j] = m; + b[--j] = n; + b[--j] = o; + } + return k << 1; +} +static struct pcm_feederdesc feeder_monotostereo32_desc[] = { + {FEEDER_FMT, AFMT_U32_LE, AFMT_U32_LE|AFMT_STEREO, 0}, + {FEEDER_FMT, AFMT_S32_LE, AFMT_S32_LE|AFMT_STEREO, 0}, + {FEEDER_FMT, AFMT_U32_BE, AFMT_U32_BE|AFMT_STEREO, 0}, + {FEEDER_FMT, AFMT_S32_BE, AFMT_S32_BE|AFMT_STEREO, 0}, + {0, 0, 0, 0}, +}; +static kobj_method_t feeder_monotostereo32_methods[] = { + KOBJMETHOD(feeder_feed, feed_monotostereo32), + {0, 0} +}; +FEEDER_DECLARE(feeder_monotostereo32, 0, NULL); /* * Channel conversion (mono -> stereo) end */ @@ -712,6 +799,89 @@ {0, 0} }; FEEDER_DECLARE(feeder_stereotomono16, 0, NULL); + +static int +feed_stereotomono24(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, + uint32_t count, void *source) +{ + int i, j, k; + uint8_t *src = (uint8_t *)f->data; + + k = count << 1; + k = FEEDER_FEED(f->source, c, src, min(k, FEEDBUF24SZ), source); + if (k < 6) { + FMT_TRACE("%s: Not enough data (Got: %d bytes)\n", + __func__, k); + return 0; + } + FMT_TEST(k % 6, "%s: Bytes not 24bit (stereo) aligned.\n", __func__); + FMT_ALIGNBYTE(k -= k % 6); + i = k >> 1; + j = i; + while (i > 0) { + k -= 3; + b[--i] = src[--k]; + b[--i] = src[--k]; + b[--i] = src[--k]; + } + return j; +} +static struct pcm_feederdesc feeder_stereotomono24_desc[] = { + {FEEDER_FMT, AFMT_U24_LE|AFMT_STEREO, AFMT_U24_LE, 0}, + {FEEDER_FMT, AFMT_S24_LE|AFMT_STEREO, AFMT_S24_LE, 0}, + {FEEDER_FMT, AFMT_U24_BE|AFMT_STEREO, AFMT_U24_BE, 0}, + {FEEDER_FMT, AFMT_S24_BE|AFMT_STEREO, AFMT_S24_BE, 0}, + {0, 0, 0, 0}, +}; +static kobj_method_t feeder_stereotomono24_methods[] = { + KOBJMETHOD(feeder_init, feed_common_init), + KOBJMETHOD(feeder_free, feed_common_free), + KOBJMETHOD(feeder_feed, feed_stereotomono24), + {0, 0} +}; +FEEDER_DECLARE(feeder_stereotomono24, 0, NULL); + +static int +feed_stereotomono32(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b, + uint32_t count, void *source) +{ + int i, j, k; + uint8_t *src = (uint8_t *)f->data; + + k = count << 1; + k = FEEDER_FEED(f->source, c, src, min(k, FEEDBUFSZ), source); + if (k < 8) { + FMT_TRACE("%s: Not enough data (Got: %d bytes)\n", + __func__, k); + return 0; + } + FMT_TEST(k & 7, "%s: Bytes not 32bit (stereo) aligned.\n", __func__); + FMT_ALIGNBYTE(k &= ~7); + i = k >> 1; + j = i; + while (i > 0) { + k -= 4; + b[--i] = src[--k]; + b[--i] = src[--k]; + b[--i] = src[--k]; + b[--i] = src[--k]; + } + return j; +} +static struct pcm_feederdesc feeder_stereotomono32_desc[] = { + {FEEDER_FMT, AFMT_U32_LE|AFMT_STEREO, AFMT_U32_LE, 0}, + {FEEDER_FMT, AFMT_S32_LE|AFMT_STEREO, AFMT_S32_LE, 0}, + {FEEDER_FMT, AFMT_U32_BE|AFMT_STEREO, AFMT_U32_BE, 0}, + {FEEDER_FMT, AFMT_S32_BE|AFMT_STEREO, AFMT_S32_BE, 0}, + {0, 0, 0, 0}, +}; +static kobj_method_t feeder_stereotomono32_methods[] = { + KOBJMETHOD(feeder_init, feed_common_init), + KOBJMETHOD(feeder_free, feed_common_free), + KOBJMETHOD(feeder_feed, feed_stereotomono32), + {0, 0} +}; +FEEDER_DECLARE(feeder_stereotomono32, 0, NULL); /* * Channel conversion (stereo -> mono) end */ ==== //depot/projects/netsmp/src/sys/dev/usb/if_ural.c#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.22 2005/11/23 17:32:57 damien Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.26 2005/11/25 21:15:07 damien Exp $ */ /*- * Copyright (c) 2005 @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.22 2005/11/23 17:32:57 damien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.26 2005/11/25 21:15:07 damien Exp $"); /*- * Ralink Technology RT2500USB chipset driver @@ -453,9 +453,13 @@ ic->ic_state = IEEE80211_S_INIT; /* set device capabilities */ - ic->ic_caps = IEEE80211_C_MONITOR | IEEE80211_C_IBSS | - IEEE80211_C_HOSTAP | IEEE80211_C_SHPREAMBLE | IEEE80211_C_SHSLOT | - IEEE80211_C_PMGT | IEEE80211_C_TXPMGT | IEEE80211_C_WPA; + ic->ic_caps = + IEEE80211_C_IBSS | /* IBSS mode supported */ + IEEE80211_C_MONITOR | /* monitor mode supported */ + IEEE80211_C_HOSTAP | /* HostAp mode supported */ + IEEE80211_C_TXPMGT | /* tx power management */ + IEEE80211_C_SHPREAMBLE | /* short preamble supported */ + IEEE80211_C_WPA; /* 802.11i */ if (sc->rf_rev == RAL_RF_5222) { /* set supported .11a rates */ @@ -527,6 +531,11 @@ callout_stop(&sc->scan_ch); callout_stop(&sc->amrr_ch); + if (sc->amrr_xfer != NULL) { + usbd_free_xfer(sc->amrr_xfer); + sc->amrr_xfer = NULL; + } + if (sc->sc_rx_pipeh != NULL) { usbd_abort_pipe(sc->sc_rx_pipeh); usbd_close_pipe(sc->sc_rx_pipeh); @@ -685,7 +694,7 @@ return error; } - if ((ifp->if_flags & IFF_UP) && + if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING)) ural_init(sc); @@ -876,7 +885,7 @@ usbd_get_xfer_status(xfer, NULL, NULL, &len, NULL); - if (len < RAL_RX_DESC_SIZE) { + if (len < RAL_RX_DESC_SIZE + IEEE80211_MIN_LEN) { printf("%s: xfer too short %d\n", USBDEVNAME(sc->sc_dev), len); ifp->if_ierrors++; goto skip; @@ -909,7 +918,19 @@ /* finalize mbuf */ m->m_pkthdr.rcvif = ifp; m->m_pkthdr.len = m->m_len = (le32toh(desc->flags) >> 16) & 0xfff; - m->m_flags |= M_HASFCS; /* hardware appends FCS */ + m->m_flags |= M_HASFCS; /* h/w leaves FCS */ + + if (sc->sc_drvbpf != NULL) { + struct ural_rx_radiotap_header *tap = &sc->sc_rxtap; + + tap->wr_flags = 0; + tap->wr_chan_freq = htole16(ic->ic_ibss_chan->ic_freq); + tap->wr_chan_flags = htole16(ic->ic_ibss_chan->ic_flags); + tap->wr_antenna = sc->rx_ant; + tap->wr_antsignal = desc->rssi; + + bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_rxtap_len, m); + } wh = mtod(m, struct ieee80211_frame *); ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh); @@ -984,7 +1005,6 @@ else txtime += 144 + 48; } - return txtime; } @@ -1036,27 +1056,22 @@ */ desc->plcp_service = 4; - len += 4; /* account for FCS */ + len += IEEE80211_CRC_LEN; if (RAL_RATE_IS_OFDM(rate)) { - /* - * PLCP length field (LENGTH). - * From IEEE Std 802.11a-1999, pp. 14. - */ + /* IEEE Std 802.11a-1999, pp. 14 */ plcp_length = len & 0xfff; - desc->plcp_length = htole16((plcp_length >> 6) << 8 | - (plcp_length & 0x3f)); + desc->plcp_length_hi = plcp_length >> 6; + desc->plcp_length_lo = plcp_length & 0x3f; } else { - /* - * Long PLCP LENGTH field. - * From IEEE Std 802.11b-1999, pp. 16. - */ + /* IEEE Std 802.11b-1999, pp. 16 */ plcp_length = (16 * len + rate - 1) / rate; if (rate == 22) { remainder = (16 * len) % 22; if (remainder != 0 && remainder < 7) desc->plcp_service |= RAL_PLCP_LENGEXT; } - desc->plcp_length = htole16(plcp_length); + desc->plcp_length_hi = plcp_length >> 8; + desc->plcp_length_lo = plcp_length & 0xff; } desc->plcp_signal = ural_plcp_signal(rate); @@ -1138,18 +1153,6 @@ rate = IEEE80211_IS_CHAN_5GHZ(ic->ic_curchan) ? 12 : 4; - if (sc->sc_drvbpf != NULL) { - struct ural_tx_radiotap_header *tap = &sc->sc_txtap; - - tap->wt_flags = 0; - tap->wt_rate = rate; - tap->wt_chan_freq = htole16(ic->ic_ibss_chan->ic_freq); - tap->wt_chan_flags = htole16(ic->ic_ibss_chan->ic_flags); - tap->wt_antenna = sc->tx_ant; - - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m0); - } - data->m = m0; data->ni = ni; @@ -1169,12 +1172,31 @@ flags |= RAL_TX_TIMESTAMP; } + if (sc->sc_drvbpf != NULL) { + struct ural_tx_radiotap_header *tap = &sc->sc_txtap; + + tap->wt_flags = 0; + tap->wt_rate = rate; + tap->wt_chan_freq = htole16(ic->ic_ibss_chan->ic_freq); + tap->wt_chan_flags = htole16(ic->ic_ibss_chan->ic_flags); + tap->wt_antenna = sc->tx_ant; + + bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m0); + } + m_copydata(m0, 0, m0->m_pkthdr.len, data->buf + RAL_TX_DESC_SIZE); ural_setup_tx_desc(sc, desc, flags, m0->m_pkthdr.len, rate); - /* xfer length needs to be a multiple of two! */ + /* align end on a 2-bytes boundary */ xferlen = (RAL_TX_DESC_SIZE + m0->m_pkthdr.len + 1) & ~1; + /* + * No space left in the last URB to store the extra 2 bytes, force + * sending of another URB. + */ + if ((xferlen % 64) == 0) + xferlen += 2; + DPRINTFN(10, ("sending mgt frame len=%u rate=%u xfer len=%u\n", m0->m_pkthdr.len, rate, xferlen)); @@ -1224,18 +1246,6 @@ wh = mtod(m0, struct ieee80211_frame *); } - if (sc->sc_drvbpf != NULL) { - struct ural_tx_radiotap_header *tap = &sc->sc_txtap; - - tap->wt_flags = 0; - tap->wt_rate = rate; - tap->wt_chan_freq = htole16(ic->ic_ibss_chan->ic_freq); - tap->wt_chan_flags = htole16(ic->ic_ibss_chan->ic_flags); - tap->wt_antenna = sc->tx_ant; - - bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_txtap_len, m0); - } - data = &sc->tx_data[0]; desc = (struct ural_tx_desc *)data->buf; @@ -1251,12 +1261,31 @@ *(uint16_t *)wh->i_dur = htole16(dur); } + if (sc->sc_drvbpf != NULL) { + struct ural_tx_radiotap_header *tap = &sc->sc_txtap; + + tap->wt_flags = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511270139.jAR1dNxE034616>