Date: Mon, 19 Apr 2004 13:14:58 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 51374 for review Message-ID: <200404192014.i3JKEwvV019930@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=51374 Change 51374 by jhb@jhb_slimer on 2004/04/19 13:14:53 IFC @51372. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#33 integrate .. //depot/projects/smpng/sys/alpha/include/sf_buf.h#2 integrate .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#17 integrate .. //depot/projects/smpng/sys/amd64/include/sf_buf.h#2 integrate .. //depot/projects/smpng/sys/boot/i386/boot0/boot0ext.s#2 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#50 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#13 integrate .. //depot/projects/smpng/sys/conf/NOTES#67 integrate .. //depot/projects/smpng/sys/conf/options#74 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#21 integrate .. //depot/projects/smpng/sys/dev/arl/if_arl.c#4 integrate .. //depot/projects/smpng/sys/dev/arl/if_arlreg.h#4 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#13 integrate .. //depot/projects/smpng/sys/dev/awi/awi.c#18 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#31 integrate .. //depot/projects/smpng/sys/dev/ciss/cissreg.h#6 integrate .. //depot/projects/smpng/sys/dev/ciss/cissvar.h#7 integrate .. //depot/projects/smpng/sys/dev/puc/puc_pccard.c#5 integrate .. //depot/projects/smpng/sys/dev/puc/pucdata.c#24 integrate .. //depot/projects/smpng/sys/dev/puc/pucvar.h#11 integrate .. //depot/projects/smpng/sys/dev/random/nehemiah.c#2 integrate .. //depot/projects/smpng/sys/dev/random/randomdev.c#22 integrate .. //depot/projects/smpng/sys/i386/isa/atpic.c#6 integrate .. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#40 integrate .. //depot/projects/smpng/sys/ia64/include/sf_buf.h#2 integrate .. //depot/projects/smpng/sys/isa/psm.c#24 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#45 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#14 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#28 integrate .. //depot/projects/smpng/sys/modules/cam/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/netgraph/Makefile#12 integrate .. //depot/projects/smpng/sys/modules/netgraph/hub/Makefile#1 branch .. //depot/projects/smpng/sys/net/if.c#47 integrate .. //depot/projects/smpng/sys/net/if_arp.h#5 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#46 integrate .. //depot/projects/smpng/sys/net/if_fddisubr.c#19 integrate .. //depot/projects/smpng/sys/net/if_iso88025subr.c#17 integrate .. //depot/projects/smpng/sys/net/if_ppp.c#26 integrate .. //depot/projects/smpng/sys/net/if_stf.c#25 integrate .. //depot/projects/smpng/sys/net/if_var.h#24 integrate .. //depot/projects/smpng/sys/net/radix.c#10 integrate .. //depot/projects/smpng/sys/net/radix.h#7 integrate .. //depot/projects/smpng/sys/net/route.c#20 integrate .. //depot/projects/smpng/sys/net/route.h#17 integrate .. //depot/projects/smpng/sys/net/rtsock.c#32 integrate .. //depot/projects/smpng/sys/netgraph/ng_eiface.c#9 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#14 integrate .. //depot/projects/smpng/sys/netgraph/ng_hub.c#1 branch .. //depot/projects/smpng/sys/netgraph/ng_hub.h#1 branch .. //depot/projects/smpng/sys/netinet/if_ether.c#25 integrate .. //depot/projects/smpng/sys/netinet6/nd6.c#19 integrate .. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#12 integrate .. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#11 integrate .. //depot/projects/smpng/sys/netipsec/xform_ipip.c#7 integrate .. //depot/projects/smpng/sys/pci/if_sk.c#32 integrate .. //depot/projects/smpng/sys/powerpc/include/sf_buf.h#2 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/vm_machdep.c#35 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#37 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#33 (text+ko) ==== @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.102 2004/04/03 09:16:24 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.103 2004/04/18 06:24:51 alc Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -101,21 +101,7 @@ #include <sys/user.h> -static void sf_buf_init(void *arg); -SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL) - /* - * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the - * sf_freelist head with the sf_lock mutex. - */ -static struct { - SLIST_HEAD(, sf_buf) sf_head; - struct mtx sf_lock; -} sf_freelist; - -static u_int sf_buf_alloc_want; - -/* * Finish a fork operation, with process p2 nearly set up. * Copy and update the pcb, set up the stack so that the child * ready to run and return to user mode. @@ -384,69 +370,24 @@ } /* - * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-)) + * Allocate an sf_buf for the given vm_page. On this machine, however, there + * is no sf_buf object. Instead, an opaque pointer to the given vm_page is + * returned. */ -static void -sf_buf_init(void *arg) -{ - struct sf_buf *sf_bufs; - int i; - - mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF); - SLIST_INIT(&sf_freelist.sf_head); - sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP, - M_NOWAIT | M_ZERO); - for (i = 0; i < nsfbufs; i++) - SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list); - sf_buf_alloc_want = 0; -} - -/* - * Get an sf_buf from the freelist. Will block if none are available. - */ struct sf_buf * sf_buf_alloc(struct vm_page *m, int pri) { - struct sf_buf *sf; - int error; - mtx_lock(&sf_freelist.sf_lock); - while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) { - sf_buf_alloc_want++; - mbstat.sf_allocwait++; - error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM | pri, - "sfbufa", 0); - sf_buf_alloc_want--; - - /* - * If we got a signal, don't risk going back to sleep. - */ - if (error) - break; - } - if (sf != NULL) { - SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list); - sf->m = m; - nsfbufsused++; - nsfbufspeak = imax(nsfbufspeak, nsfbufsused); - } - mtx_unlock(&sf_freelist.sf_lock); - return (sf); + return ((struct sf_buf *)m); } /* - * Release resources back to the system. + * Free the sf_buf. In fact, do nothing because there are no resources + * associated with the sf_buf. */ void sf_buf_free(struct sf_buf *sf) { - - mtx_lock(&sf_freelist.sf_lock); - SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); - nsfbufsused--; - if (sf_buf_alloc_want > 0) - wakeup_one(&sf_freelist); - mtx_unlock(&sf_freelist.sf_lock); } /* ==== //depot/projects/smpng/sys/alpha/include/sf_buf.h#2 (text+ko) ==== @@ -23,35 +23,36 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/sf_buf.h,v 1.1 2003/11/16 06:11:24 alc Exp $ + * $FreeBSD: src/sys/alpha/include/sf_buf.h,v 1.2 2004/04/18 06:24:51 alc Exp $ */ #ifndef _MACHINE_SF_BUF_H_ #define _MACHINE_SF_BUF_H_ -#include <sys/queue.h> - #include <vm/vm.h> #include <vm/vm_param.h> #include <vm/vm_page.h> -struct sf_buf { - SLIST_ENTRY(sf_buf) free_list; /* list of free buffer slots */ - vm_page_t m; /* currently mapped page */ -}; +/* + * On this machine, the only purpose for which sf_buf is used is to implement + * an opaque pointer required by the machine-independent parts of the kernel. + * That pointer references the vm_page that is "mapped" by the sf_buf. The + * actual mapping is provided by the direct virtual-to-physical mapping. + */ +struct sf_buf; static __inline vm_offset_t sf_buf_kva(struct sf_buf *sf) { - return (ALPHA_PHYS_TO_K0SEG(sf->m->phys_addr)); + return (ALPHA_PHYS_TO_K0SEG(VM_PAGE_TO_PHYS((vm_page_t)sf))); } static __inline vm_page_t sf_buf_page(struct sf_buf *sf) { - return (sf->m); + return ((vm_page_t)sf); } #endif /* !_MACHINE_SF_BUF_H_ */ ==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#17 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.233 2004/04/11 04:26:58 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.234 2004/04/18 05:36:37 alc Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -85,20 +85,7 @@ static u_int cpu_reset_proxyid; static volatile u_int cpu_reset_proxy_active; #endif -static void sf_buf_init(void *arg); -SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL) - -/* - * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the - * sf_freelist head with the sf_lock mutex. - */ -static struct { - SLIST_HEAD(, sf_buf) sf_head; - struct mtx sf_lock; -} sf_freelist; -static u_int sf_buf_alloc_want; - /* * Finish a fork operation, with process p2 nearly set up. * Copy and update the pcb, set up the stack so that the child @@ -439,69 +426,24 @@ } /* - * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-)) - */ -static void -sf_buf_init(void *arg) -{ - struct sf_buf *sf_bufs; - int i; - - mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF); - SLIST_INIT(&sf_freelist.sf_head); - sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP, - M_NOWAIT | M_ZERO); - for (i = 0; i < nsfbufs; i++) - SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list); - sf_buf_alloc_want = 0; -} - -/* - * Get an sf_buf from the freelist. Will block if none are available. + * Allocate an sf_buf for the given vm_page. On this machine, however, there + * is no sf_buf object. Instead, an opaque pointer to the given vm_page is + * returned. */ struct sf_buf * sf_buf_alloc(struct vm_page *m, int pri) { - struct sf_buf *sf; - int error; - mtx_lock(&sf_freelist.sf_lock); - while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) { - sf_buf_alloc_want++; - mbstat.sf_allocwait++; - error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM | pri, - "sfbufa", 0); - sf_buf_alloc_want--; - - /* - * If we got a signal, don't risk going back to sleep. - */ - if (error) - break; - } - if (sf != NULL) { - SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list); - sf->m = m; - nsfbufsused++; - nsfbufspeak = imax(nsfbufspeak, nsfbufsused); - } - mtx_unlock(&sf_freelist.sf_lock); - return (sf); + return ((struct sf_buf *)m); } /* - * Release resources back to the system. + * Free the sf_buf. In fact, do nothing because there are no resources + * associated with the sf_buf. */ void sf_buf_free(struct sf_buf *sf) { - - mtx_lock(&sf_freelist.sf_lock); - SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); - nsfbufsused--; - if (sf_buf_alloc_want > 0) - wakeup_one(&sf_freelist); - mtx_unlock(&sf_freelist.sf_lock); } /* ==== //depot/projects/smpng/sys/amd64/include/sf_buf.h#2 (text+ko) ==== @@ -23,35 +23,36 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/sf_buf.h,v 1.1 2003/11/16 06:11:25 alc Exp $ + * $FreeBSD: src/sys/amd64/include/sf_buf.h,v 1.2 2004/04/18 05:36:37 alc Exp $ */ #ifndef _MACHINE_SF_BUF_H_ #define _MACHINE_SF_BUF_H_ -#include <sys/queue.h> - #include <vm/vm.h> #include <vm/vm_param.h> #include <vm/vm_page.h> -struct sf_buf { - SLIST_ENTRY(sf_buf) free_list; /* list of free buffer slots */ - vm_page_t m; /* currently mapped page */ -}; +/* + * On this machine, the only purpose for which sf_buf is used is to implement + * an opaque pointer required by the machine-independent parts of the kernel. + * That pointer references the vm_page that is "mapped" by the sf_buf. The + * actual mapping is provided by the direct virtual-to-physical mapping. + */ +struct sf_buf; static __inline vm_offset_t sf_buf_kva(struct sf_buf *sf) { - return (PHYS_TO_DMAP(sf->m->phys_addr)); + return (PHYS_TO_DMAP(VM_PAGE_TO_PHYS((vm_page_t)sf))); } static __inline vm_page_t sf_buf_page(struct sf_buf *sf) { - return (sf->m); + return ((vm_page_t)sf); } #endif /* !_MACHINE_SF_BUF_H_ */ ==== //depot/projects/smpng/sys/boot/i386/boot0/boot0ext.s#2 (text+ko) ==== @@ -13,7 +13,7 @@ # purpose. # -# $FreeBSD: src/sys/boot/i386/boot0/boot0ext.s,v 1.1 2004/03/26 18:46:31 obrien Exp $ +# $FreeBSD: src/sys/boot/i386/boot0/boot0ext.s,v 1.2 2004/04/19 19:31:48 obrien Exp $ # A 1024-byte boot manager. @@ -34,6 +34,7 @@ .set KEY_ENTER,0x1c # Enter key scan code .set KEY_F1,0x3b # F1 key scan code + .set KEY_1,0x02 # #1 key scan code # # Flag bits @@ -45,7 +46,7 @@ # Addresses in the sector of embedded data values. # Accessed with negative offsets from the end of the relocated sectors (%bp). # - .set _PRT_END,(FAKE-(ORIGIN+SECTOR_SIZE)) + .set _PRT_END,(FAKE-(ORIGIN+SECTOR_SIZE*(NUM_SECTORS-1))) .set _NXTDRV,-(_PRT_END+0x48) # Next drive .set _OPT,-(_PRT_END+0x47) # Default option .set _SETDRV,-(_PRT_END+0x46) # Drive to force @@ -86,6 +87,16 @@ stosw # them incb -0xe(%di) # Sector number 1 # +# Check what flags were loaded with us; specifically, use a predefined Drive. +# If what the bios gives us is bad, use the '0' in the block instead, as well. +# + testb $FL_SETDRV,LOAD+flags-start # Set number drive? + jnz boot.1 # Yes + testb %dl,%dl # Drive number valid? + js boot.2 # Possibly (0x80 set) +boot.1: movb LOAD+setdrv-start,%dl # Drive number to use +boot.2: +# # Reload all of boot0 (including the extra sectors) into memory at the # relocation address. # @@ -100,19 +111,10 @@ # jmp main+ORIGIN-LOAD # To relocated code # -# Check what flags were loaded with us; specifically, use a predefined Drive. -# If what the bios gives us is bad, use the '0' in the block instead, as well. -# -main: testb $FL_SETDRV,_FLAGS(%bp) # Set number drive? - jnz main.1 # Yes - testb %dl,%dl # Drive number valid? - js main.2 # Possibly (0x80 set) -main.1: movb _SETDRV(%bp),%dl # Drive number to use -# # Whatever we decided to use, now store it into the fake # partition entry that lives in the data space above us. # -main.2: movb %dl,_FAKE(%bp) # Save drive number +main: movb %dl,_FAKE(%bp) # Save drive number callw putn # To new line pushw %dx # Save drive number # @@ -245,6 +247,9 @@ # subb $KEY_F1,%al # Less F1 scan code cmpb $0x4,%al # F1..F5? + jna main.12 # Yes + subb $(KEY_1 - KEY_F1),%al # Less #1 scan code + cmpb $0x4,%al # #1..#5? ja main.10 # No # # We have a selection. @@ -263,7 +268,7 @@ movw $fake,%si # Partition for write movb (%si),%dl # Drive number movw %si,%bx # Partition for read - cmpb $0x4,%al # F5 pressed? + cmpb $0x4,%al # F5/#5 pressed? pushf # Save je main.13 # Yes shlb $0x4,%al # Point to @@ -285,7 +290,7 @@ # If going to next drive, replace drive with selected one. # Remember to un-ascii it. Hey 0x80 is already set, cool! # - jne main.15 # If not F5 + jne main.15 # If not F5/#5 movb _NXTDRV(%bp),%dl # Next drive subb $'0',%dl # number # @@ -442,7 +447,7 @@ # # These values indicate bootable types we know the names of # -table1: .byte 0x1, 0x4, 0x6, 0x7, 0xb, 0xc, 0xe, 0x63, 0x83 +table1: .byte 0x1, 0x4, 0x6, 0x7, 0xb, 0xc, 0xe, 0x42, 0x63, 0x83 .byte 0x9f, 0xa5, 0xa6, 0xa9 table1_end: # @@ -453,10 +458,11 @@ .byte os_dos-. # DOS .byte os_dos-. # DOS .byte os_dos-. # DOS - .byte os_nt-. # NT or OS/2 + .byte os_nt-. # NT/XP or OS/2 + .byte os_windows-. # Windows 32-bit FAT + .byte os_windows-. # Windows 32-bit FAT ext int 13 .byte os_windows-. # Windows - .byte os_windows-. # Windows - .byte os_windows-. # Windows + .byte os_windows-. # Windows 2000 dyn ext .byte os_unix-. # UNIX .byte os_linux-. # Linux .byte os_bsdos-. # BSD/OS @@ -469,7 +475,7 @@ # os_misc: .ascii "Unknow"; .byte 'n'|0x80 os_dos: .ascii "DO"; .byte 'S'|0x80 -os_nt: .ascii "Windows N"; .byte 'T'|0x80 +os_nt: .ascii "Windows NT/X"; .byte 'P'|0x80 os_windows: .ascii "Window"; .byte 's'|0x80 os_unix: .ascii "UNI"; .byte 'X'|0x80 os_linux: .ascii "Linu"; .byte 'x'|0x80 ==== //depot/projects/smpng/sys/cam/scsi/scsi_da.c#50 (text+ko) ==== @@ -27,10 +27,9 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.164 2004/02/22 01:14:54 cperciva Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.167 2004/04/19 13:38:10 mux Exp $"); #ifdef _KERNEL -#include "opt_da.h" #include "opt_hw_wdog.h" #endif /* _KERNEL */ @@ -238,151 +237,55 @@ {T_DIRECT, SIP_MEDIA_FIXED, "COMPAQ", "RAID*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, -#ifdef DA_OLD_QUIRKS - /* USB floppy devices supported by umass(4) */ - { - /* - * This USB floppy drive uses the UFI command set. This - * command set is a derivative of the ATAPI command set and - * does not support READ_6 commands only READ_10. It also does - * not support sync cache (0x35). - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "Y-E DATA", "USB-FDU", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* Another USB floppy */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "MATSHITA", "FDD CF-VFDU*","*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * The vendor, product and version strings coming from the - * controller are null terminated instead of being padded with - * spaces. The trailing wildcard character '*' is required. - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "SMSC*", "USB FDC*","*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * SmartDisk (Mitsumi) USB floppy drive - * PR: kern/50226 - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "MITSUMI", "USB FDD", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, /* USB mass storage devices supported by umass(4) */ { /* - * Sony Memory Stick adapter MSAC-US1 and - * Sony PCG-C1VJ Internal Memory Stick Slot (MSC-U01). - * Make all sony MS* products use this quirk. + * EXATELECOM (Sigmatel) i-Bead 100/105 USB Flash MP3 Player + * PR: kern/51675 */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "MS*", "*"}, + {T_DIRECT, SIP_MEDIA_REMOVABLE, "EXATEL", "i-BEAD10*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* - * Sony Memory Stick adapter for the CLIE series - * of PalmOS PDA's + * Power Quotient Int. (PQI) USB flash key + * PR: kern/53067 */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "CLIE*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Intelligent Stick USB disk-on-key - * PR: kern/53005 - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "USB Card", - "IntelligentStick*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Sony DSC cameras (DSC-S30, DSC-S50, DSC-S70) - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Sony DSC", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Microtech USB CameraMate - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "eUSB Compact*", - "Compact Flash*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Olympus digital cameras (C-3040ZOOM, C-2040ZOOM, C-1) - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "C-*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Olympus digital cameras (E-100RS, E-10). - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "E-*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * KingByte Pen Drives - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "NO BRAND", "PEN DRIVE", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE + {T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic*", "USB Flash Disk*", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, + { + /* + * Creative Nomad MUVO mp3 player (USB) + * PR: kern/53094 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "CREATIVE", "NOMAD_MUVO", "*"}, + /*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT }, { /* - * Minolta Dimage E203 + * Jungsoft NEXDISK USB flash key + * PR: kern/54737 */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "MINOLTA", "DiMAGE E203", "*"}, + {T_DIRECT, SIP_MEDIA_REMOVABLE, "JUNGSOFT", "NEXDISK*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* - * Daisy Technology PhotoClip on Zoran chip - * PR: kern/43580 + * FreeDik USB Mini Data Drive + * PR: kern/54786 */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "ZORAN", "COACH", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE + {T_DIRECT, SIP_MEDIA_REMOVABLE, "FreeDik*", "Mini Data Drive", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, { /* - * Sony USB Key-Storage - * PR: kern/46386 + * Sigmatel USB Flash MP3 Player + * PR: kern/57046 */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Storage Media", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE + {T_DIRECT, SIP_MEDIA_REMOVABLE, "SigmaTel", "MSCN", "*"}, + /*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT }, -#endif /* DA_OLD_QUIRKS */ - { - /* - * EXATELECOM (Sigmatel) i-Bead 100/105 USB Flash MP3 Player - * PR: kern/51675 - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "EXATEL", "i-BEAD10*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Jungsoft NEXDISK USB flash key - * PR: kern/54737 - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "JUNGSOFT", "NEXDISK*", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE - }, - { - /* - * Creative Nomad MUVO mp3 player (USB) - * PR: kern/53094 - */ - {T_DIRECT, SIP_MEDIA_REMOVABLE, "CREATIVE", "NOMAD_MUVO", "*"}, - /*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT - }, }; static disk_strategy_t dastrategy; ==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#13 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.35 2004/04/16 00:04:28 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.36 2004/04/18 18:38:59 wpaul Exp $"); #include <sys/ctype.h> #include <sys/unistd.h> @@ -1029,7 +1029,7 @@ __asm__ __volatile__ ("" : "=c" (lock)); while (atomic_cmpset_acq_int((volatile u_int *)lock, 0, 1) == 0) - /* do nothing */; + /* sit and spin */; return; } @@ -1041,7 +1041,7 @@ __asm__ __volatile__ ("" : "=c" (lock)); - atomic_cmpset_rel_int((volatile u_int *)lock, 1, 0); + atomic_store_rel_int((volatile u_int *)lock, 0); return; } ==== //depot/projects/smpng/sys/conf/NOTES#67 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1214 2004/04/12 02:36:51 imp Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1215 2004/04/19 03:33:54 njl Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -968,12 +968,6 @@ options SCSI_NO_OP_STRINGS options SCSI_DELAY=8000 # Be pessimistic about Joe SCSI device -# Options for the CAM SCSI disk driver: -# DA_OLD_QUIRKS: Restore old USB and firewire quirks that have been -# deprecated. Please also email scsi@freebsd.org if you -# have a device that needs this option. -options DA_OLD_QUIRKS - # Options for the CAM CDROM driver: # CHANGER_MIN_BUSY_SECONDS: Guaranteed minimum time quantum for a changer LUN # CHANGER_MAX_BUSY_SECONDS: Maximum time quantum per changer LUN, only ==== //depot/projects/smpng/sys/conf/options#74 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.440 2004/04/11 20:01:18 imp Exp $ +# $FreeBSD: src/sys/conf/options,v 1.441 2004/04/19 03:33:55 njl Exp $ # # On the handling of kernel options # @@ -241,8 +241,6 @@ CHANGER_MIN_BUSY_SECONDS opt_cd.h CHANGER_MAX_BUSY_SECONDS opt_cd.h -DA_OLD_QUIRKS opt_da.h - # Options used only in cam/scsi/scsi_sa.c. SA_IO_TIMEOUT opt_sa.h SA_SPACE_TIMEOUT opt_sa.h ==== //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#21 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.41 2004/03/22 20:39:20 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.42 2004/04/19 17:52:20 njl Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -369,6 +369,11 @@ AcpiFormatException(status)); goto out; } + /* XXX Figure out how this is happening when the append succeeds. */ + if (crsbuf.Pointer == NULL) { + device_printf(pcib, "_CRS buf NULL after append?\n"); + goto out; + } if (ACPI_FAILURE(status = AcpiSetCurrentResources(lnkdev, &crsbuf))) { device_printf(pcib, "_SRS failed for interrupt %d via %s - %s\n", Interrupts[0], acpi_name(lnkdev), ==== //depot/projects/smpng/sys/dev/arl/if_arl.c#4 (text+ko) ==== @@ -3,7 +3,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/arl/if_arl.c,v 1.4 2004/04/15 20:31:07 luigi Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/arl/if_arl.c,v 1.5 2004/04/17 20:30:05 fjoe Exp $"); #include "opt_inet.h" @@ -69,6 +69,9 @@ */ #define ARL_CHECKREG(sc) (ar->registrationMode && ar->registrationStatus == 0) +#define GET_ARL_PARAM(name) (arcfg.name = ar->name) +#define SET_ARL_PARAM(name) (ar->name = arcfg.name) + #ifndef BPF_MTAP #define BPF_MTAP(_ifp,_m) \ do { \ @@ -114,6 +117,13 @@ devclass_t arl_devclass; +u_int8_t rate2media[4] = { + IFM_IEEE80211_DS354k, + IFM_IEEE80211_DS512k, + IFM_IEEE80211_DS1, + IFM_IEEE80211_DS2 +}; + /* * Copy config values to local cache */ @@ -194,13 +204,16 @@ ifmedia_init(&sc->arl_ifmedia, 0, arl_media_change, arl_media_status); #define ADD(s, o) ifmedia_add(&sc->arl_ifmedia, \ IFM_MAKEWORD(IFM_IEEE80211, (s), (o), 0), 0, NULL) + ADD(IFM_IEEE80211_DS354k, 0); + ADD(IFM_IEEE80211_DS354k, IFM_IEEE80211_ADHOC); + ADD(IFM_IEEE80211_DS512k, 0); + ADD(IFM_IEEE80211_DS512k, IFM_IEEE80211_ADHOC); ADD(IFM_IEEE80211_DS1, 0); ADD(IFM_IEEE80211_DS1, IFM_IEEE80211_ADHOC); ADD(IFM_IEEE80211_DS2, 0); ADD(IFM_IEEE80211_DS2, IFM_IEEE80211_ADHOC); ifmedia_set(&sc->arl_ifmedia, IFM_MAKEWORD(IFM_IEEE80211, - arcfg.spreadingCode == 4 ? IFM_IEEE80211_DS2 : IFM_IEEE80211_DS1 - , 0, 0)); + rate2media[arcfg.spreadingCode - 1], 0, 0)); #undef ADD /* @@ -1152,16 +1165,19 @@ int i; static int cache_slot = 0; static int wrapindex = 0; + u_int8_t zero[6] = {0, 0, 0, 0, 0, 0}; + u_char *mac; if ((ntohs(eh->ether_type) != ETHERTYPE_IP)) { return; } + mac = (dir == ARLCACHE_RX ? eh->ether_shost : eh->ether_dhost); + for (i = 0; i < MAXARLCACHE; i++) { - if (!bcmp(dir == ARLCACHE_RX ? eh->ether_shost : eh->ether_dhost, - sc->arl_sigcache[i].macsrc, 6)) { + if (!bcmp(zero, sc->arl_sigcache[i].macsrc, 6) || + !bcmp(mac, sc->arl_sigcache[i].macsrc, 6)) break; - } } if (i < MAXARLCACHE) @@ -1187,12 +1203,19 @@ struct arl_softc *sc = ifp->if_softc; int otype = arcfg.registrationMode; int orate = arcfg.spreadingCode; + int nrate, i; + + nrate = IFM_SUBTYPE(sc->arl_ifmedia.ifm_cur->ifm_media); + + for(i = 1; i <= 4; i++) { + if (rate2media[i - 1] == nrate) + break; + } - arcfg.spreadingCode = ieee80211_media2rate( - IFM_SUBTYPE(sc->arl_ifmedia.ifm_cur->ifm_media)); + if (i == 5) + return (EINVAL); - if (arcfg.spreadingCode == 2) - arcfg.spreadingCode = 3; + arcfg.spreadingCode = i; /* XXX Need fix for PSP mode */ if ((sc->arl_ifmedia.ifm_cur->ifm_media & IFM_IEEE80211_ADHOC) != 0) @@ -1213,14 +1236,14 @@ struct ifmediareq *imr; { struct arl_softc *sc = ifp->if_softc; - int rate = (arcfg.spreadingCode == 4 ? 4 : 2); imr->ifm_active = IFM_IEEE80211; if (arcfg.registrationMode == 0) imr->ifm_active |= IFM_IEEE80211_ADHOC; - imr->ifm_active |= ieee80211_rate2media(NULL, rate, IEEE80211_T_DS); + imr->ifm_active |= IFM_MAKEWORD(IFM_IEEE80211, + rate2media[arcfg.spreadingCode - 1], 0, 0); imr->ifm_status = IFM_AVALID; if (!ARL_CHECKREG(sc)) imr->ifm_status |= IFM_ACTIVE; ==== //depot/projects/smpng/sys/dev/arl/if_arlreg.h#4 (text+ko) ==== @@ -1,6 +1,6 @@ /* * $RISS: if_arl/dev/arl/if_arlreg.h,v 1.4 2004/03/16 04:43:27 count Exp $ - * $FreeBSD: src/sys/dev/arl/if_arlreg.h,v 1.3 2004/04/13 19:25:23 fjoe Exp $ + * $FreeBSD: src/sys/dev/arl/if_arlreg.h,v 1.4 2004/04/17 20:30:05 fjoe Exp $ */ #ifndef _IF_ARLREG_H @@ -299,9 +299,6 @@ } \ } while (0); -#define GET_ARL_PARAM(name) (arcfg.name = ar->name) -#define SET_ARL_PARAM(name) (ar->name = arcfg.name) - #ifdef _KERNEL void arl_release_resources (device_t); int arl_alloc_memory (device_t, int, int); ==== //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.32 2004/04/13 09:44:20 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.33 2004/04/19 18:29:43 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -563,16 +563,16 @@ } } + if (bootverbose) + ata_printf(ch, -1, "reset tp1 mask=%02x ostat0=%02x ostat1=%02x\n", + mask, ostat0, ostat1); + /* if nothing showed up there is no need to get any further */ /* SOS is that too strong?, we just might loose devices here XXX */ ch->devices = 0; if (!mask) return; - if (bootverbose) - ata_printf(ch, -1, "reset tp1 mask=%02x ostat0=%02x ostat1=%02x\n", - mask, ostat0, ostat1); - /* reset (both) devices on this channel */ ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_MASTER); DELAY(10); ==== //depot/projects/smpng/sys/dev/awi/awi.c#18 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $NetBSD: awi.c,v 1.61 2004/01/15 13:29:05 onoe Exp $ */ +/* $NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $ */ /*- * Copyright (c) 1999,2000,2001 The NetBSD Foundation, Inc. @@ -86,10 +86,10 @@ #include <sys/cdefs.h> #ifdef __NetBSD__ -__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.61 2004/01/15 13:29:05 onoe Exp $"); +__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $"); #endif #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.31 2004/03/20 19:57:46 mdodd Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.32 2004/04/18 01:05:02 onoe Exp $"); #endif #include "opt_inet.h" @@ -1112,7 +1112,7 @@ } sc->sc_mib_mac.aPromiscuous_Enable = 0; #ifdef __FreeBSD__ - if (ifp->if_amcount != 0) + if (ifp->if_flags & IFF_ALLMULTI) goto set_mib; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404192014.i3JKEwvV019930>