Date: Sat, 9 Jul 2005 13:40:31 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 79823 for review Message-ID: <200507091340.j69DeVNC063210@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=79823 Change 79823 by jhb@jhb_slimer on 2005/07/09 13:40:16 IFC @79819. Affected files ... .. //depot/projects/smpng/sys/alpha/include/atomic.h#25 integrate .. //depot/projects/smpng/sys/amd64/include/atomic.h#20 integrate .. //depot/projects/smpng/sys/compat/linux/linux_getcwd.c#18 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.c#24 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#30 integrate .. //depot/projects/smpng/sys/dev/ipw/if_ipw.c#4 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/smpng/sys/dev/ral/if_ral.c#5 integrate .. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#16 integrate .. //depot/projects/smpng/sys/dev/usb/if_ural.c#4 integrate .. //depot/projects/smpng/sys/dev/usb/if_uralvar.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#77 integrate .. //depot/projects/smpng/sys/geom/gate/g_gate.c#11 integrate .. //depot/projects/smpng/sys/geom/gate/g_gate.h#3 integrate .. //depot/projects/smpng/sys/i386/include/atomic.h#39 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#58 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#58 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#60 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#20 integrate .. //depot/projects/smpng/sys/pci/if_ste.c#36 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#20 integrate .. //depot/projects/smpng/sys/sys/socketvar.h#45 integrate .. //depot/projects/smpng/sys/sys/syscall.h#57 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#57 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#59 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/include/atomic.h#25 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.20 2005/03/02 21:33:20 joerg Exp $ + * $FreeBSD: src/sys/alpha/include/atomic.h,v 1.21 2005/07/09 12:38:53 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/amd64/include/atomic.h#20 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.33 2005/03/02 21:33:21 joerg Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.34 2005/07/09 12:38:53 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/compat/linux/linux_getcwd.c#18 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_getcwd.c,v 1.18 2005/04/13 10:59:07 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_getcwd.c,v 1.19 2005/07/09 12:34:49 jhb Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -465,8 +465,10 @@ * limit it to N/2 vnodes for an N byte buffer. */ + mtx_lock(&Giant); error = linux_getcwd_common (td->td_proc->p_fd->fd_cdir, NULL, &bp, path, len/2, GETCWD_CHECK_ACCESS, td); + mtx_unlock(&Giant); if (error) goto out; ==== //depot/projects/smpng/sys/compat/linux/linux_socket.c#24 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.58 2005/03/23 08:28:00 das Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.59 2005/07/09 12:26:22 jhb Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -44,7 +44,9 @@ #include <sys/fcntl.h> #include <sys/file.h> #include <sys/limits.h> +#include <sys/lock.h> #include <sys/malloc.h> +#include <sys/mutex.h> #include <sys/mbuf.h> #include <sys/socket.h> #include <sys/socketvar.h> @@ -614,15 +616,20 @@ * when on a non-blocking socket. Instead it returns the * error getsockopt(SOL_SOCKET, SO_ERROR) would return on BSD. */ - if ((error = fgetsock(td, linux_args.s, &so, &fflag)) != 0) - return(error); - error = EISCONN; - if (fflag & FNONBLOCK) { - if (so->so_emuldata == 0) - error = so->so_error; - so->so_emuldata = (void *)1; + NET_LOCK_GIANT(); + error = fgetsock(td, linux_args.s, &so, &fflag); + if (error == 0) { + error = EISCONN; + if (fflag & FNONBLOCK) { + SOCK_LOCK(so); + if (so->so_emuldata == 0) + error = so->so_error; + so->so_emuldata = (void *)1; + SOCK_UNLOCK(so); + } + fputsock(so); } - fputsock(so); + NET_UNLOCK_GIANT(); return (error); } ==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#30 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.70 2005/05/29 04:42:15 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.71 2005/07/08 18:36:59 rik Exp $"); #include <sys/ctype.h> #include <sys/unistd.h> @@ -3110,15 +3110,15 @@ if (dpc->k_lock == NULL) return(FALSE); - mtx_lock_spin(dpc->k_lock); + mtx_lock_spin((struct mtx*)(dpc->k_lock)); if (dpc->k_dpclistentry.nle_flink == &dpc->k_dpclistentry) { - mtx_unlock_spin(dpc->k_lock); + mtx_unlock_spin((struct mtx*)(dpc->k_lock)); return(FALSE); } REMOVE_LIST_ENTRY((&dpc->k_dpclistentry)); INIT_LIST_HEAD((&dpc->k_dpclistentry)); - mtx_unlock_spin(dpc->k_lock); + mtx_unlock_spin((struct mtx*)(dpc->k_lock)); return(TRUE); } ==== //depot/projects/smpng/sys/dev/ipw/if_ipw.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.6 2005/07/07 02:55:03 sam Exp $ */ +/* $FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.7 2005/07/08 19:30:29 damien Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.6 2005/07/07 02:55:03 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.7 2005/07/08 19:30:29 damien Exp $"); /*- * Intel(R) PRO/Wireless 2100 MiniPCI driver @@ -581,8 +581,8 @@ * Pre-allocate rx buffers and DMA maps. */ error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, IPW_NRBD, MCLBYTES, 0, - NULL, NULL, &sc->rxbuf_dmat); + BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, 1, MCLBYTES, 0, NULL, + NULL, &sc->rxbuf_dmat); if (error != 0) { device_printf(sc->sc_dev, "could not create rx DMA tag\n"); goto fail; ==== //depot/projects/smpng/sys/dev/iwi/if_iwi.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.6 2005/07/07 02:55:03 sam Exp $ */ +/* $FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.7 2005/07/08 16:31:18 sam Exp $ */ /*- * Copyright (c) 2004, 2005 @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.6 2005/07/07 02:55:03 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/iwi/if_iwi.c,v 1.7 2005/07/08 16:31:18 sam Exp $"); /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver @@ -1489,8 +1489,10 @@ BPF_MTAP(ifp, m0); m0 = ieee80211_encap(ic, m0, ni); - if (m0 == NULL) + if (m0 == NULL) { + ieee80211_free_node(ni); continue; + } if (ic->ic_rawbpf != NULL) bpf_mtap(ic->ic_rawbpf, m0); ==== //depot/projects/smpng/sys/dev/ral/if_ral.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/ral/if_ral.c,v 1.5 2005/07/07 02:55:03 sam Exp $ */ +/* $FreeBSD: src/sys/dev/ral/if_ral.c,v 1.8 2005/07/08 19:33:42 damien Exp $ */ /*- * Copyright (c) 2005 @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ral/if_ral.c,v 1.5 2005/07/07 02:55:03 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ral/if_ral.c,v 1.8 2005/07/08 19:33:42 damien Exp $"); /*- * Ralink Technology RT2500 chipset driver @@ -63,6 +63,7 @@ #include <dev/ral/if_ralreg.h> #include <dev/ral/if_ralvar.h> +#define RAL_DEBUG #ifdef RAL_DEBUG #define DPRINTF(x) do { if (ral_debug > 0) printf x; } while (0) #define DPRINTFN(n, x) do { if (ral_debug >= (n)) printf x; } while (0) @@ -920,6 +921,7 @@ static int ral_media_change(struct ifnet *ifp) { + struct ral_softc *sc = ifp->if_softc; int error; error = ieee80211_media_change(ifp); @@ -927,7 +929,7 @@ return error; if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP | IFF_RUNNING)) - ral_init(ifp); + ral_init(sc); return 0; } @@ -1016,8 +1018,10 @@ case IEEE80211_S_RUN: ral_set_chan(sc, ic->ic_bss->ni_chan); - if (ic->ic_opmode != IEEE80211_M_MONITOR) + if (ic->ic_opmode != IEEE80211_M_MONITOR) { ral_set_bssid(sc, ic->ic_bss->ni_bssid); + ral_update_slot(ic->ic_ifp); + } if (ic->ic_opmode == IEEE80211_M_HOSTAP || ic->ic_opmode == IEEE80211_M_IBSS) { @@ -2108,8 +2112,10 @@ BPF_MTAP(ifp, m0); m0 = ieee80211_encap(ic, m0, ni); - if (m0 == NULL) + if (m0 == NULL) { + ieee80211_free_node(ni); continue; + } if (ic->ic_rawbpf != NULL) bpf_mtap(ic->ic_rawbpf, m0); ==== //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#16 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/sn/if_sn_pccard.c,v 1.29 2005/07/06 15:59:47 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sn/if_sn_pccard.c,v 1.31 2005/07/09 05:14:32 scottl Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -56,10 +56,11 @@ static const struct pccard_product sn_pccard_products[] = { PCMCIA_CARD(DSPSI, XJACK), PCMCIA_CARD(NEWMEDIA, BASICS), - PCMCIA_CARD(SMC, SMC91C96), + PCMCIA_CARD(PSION, GOLDCARD), #if 0 PCMCIA_CARD(SMC, 8020BT), #endif + PCMCIA_CARD(SMC, SMC91C96), { NULL } }; ==== //depot/projects/smpng/sys/dev/usb/if_ural.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.5 2005/07/07 02:55:04 sam Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.9 2005/07/08 19:19:06 damien Exp $ */ /*- * Copyright (c) 2005 @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.5 2005/07/07 02:55:04 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.9 2005/07/08 19:19:06 damien Exp $"); /*- * Ralink Technology RT2500USB chipset driver @@ -86,12 +86,21 @@ { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050 }, { USB_VENDOR_CONCEPTRONIC, USB_PRODUCT_CONCEPTRONIC_C54U }, { USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG122 }, + { USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWBKG }, + { USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWGUSB254 }, { USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB54G }, { USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_WUSB54GP }, { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54 }, + { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54AI }, + { USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54YB }, + { USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570 }, + { USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_2 }, + { USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_3 }, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570 }, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_2 }, - { USB_VENDOR_SMC, USB_PRODUCT_SMC_2862WG } + { USB_VENDOR_SMC, USB_PRODUCT_SMC_2862WG }, + { USB_VENDOR_VTECH, USB_PRODUCT_VTECH_RT2570 }, + { USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT2570 } }; MODULE_DEPEND(ural, wlan, 1, 1, 1); @@ -379,6 +388,7 @@ */ id = usbd_get_interface_descriptor(sc->sc_iface); + sc->sc_rx_no = sc->sc_tx_no = -1; for (i = 0; i < id->bNumEndpoints; i++) { ed = usbd_interface2endpoint_descriptor(sc->sc_iface, i); if (ed == NULL) { @@ -394,6 +404,10 @@ UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) sc->sc_tx_no = ed->bEndpointAddress; } + if (sc->sc_rx_no == -1 || sc->sc_tx_no == -1) { + printf("%s: missing endpoint\n", USBDEVNAME(sc->sc_dev)); + USB_ATTACH_ERROR_RETURN; + } mtx_init(&sc->sc_mtx, USBDEVNAME(sc->sc_dev), MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE); @@ -676,7 +690,7 @@ } if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP | IFF_RUNNING)) - ural_init(ifp); + ural_init(sc); RAL_UNLOCK(sc); @@ -1312,8 +1326,10 @@ BPF_MTAP(ifp, m0); m0 = ieee80211_encap(ic, m0, ni); - if (m0 == NULL) + if (m0 == NULL) { + ieee80211_free_node(ni); continue; + } if (ic->ic_rawbpf != NULL) bpf_mtap(ic->ic_rawbpf, m0); ==== //depot/projects/smpng/sys/dev/usb/if_uralvar.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/if_uralvar.h,v 1.2 2005/06/10 16:49:16 brooks Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_uralvar.h,v 1.3 2005/07/08 19:19:06 damien Exp $ */ /*- * Copyright (c) 2005 @@ -76,8 +76,8 @@ usbd_device_handle sc_udev; usbd_interface_handle sc_iface; - uint8_t sc_rx_no; - uint8_t sc_tx_no; + int sc_rx_no; + int sc_tx_no; uint32_t asic_rev; uint8_t rf_rev; ==== //depot/projects/smpng/sys/dev/usb/usbdevs#77 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.231 2005/07/03 23:51:16 hrs Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.232 2005/07/08 16:28:24 sam Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -484,7 +484,9 @@ vendor PILOTECH 0x0eaf Pilotech vendor EGALAX 0x0eef eGalax vendor MICROTUNE 0x0f4d Microtune +vendor VTECH 0x0f88 VTech vendor QUALCOMM2 0x1004 Qualcomm +vendor GIGABYTE 0x1044 GIGABYTE vendor WESTERN 0x1058 Western Digital vendor MOTOROLA 0x1063 Motorola vendor CCYU 0x1065 CCYU @@ -530,6 +532,7 @@ vendor DELL 0x413c Dell vendor AVERATEC 0x50c2 Averatec vendor ONSPEC2 0x55aa OnSpec +vendor ZINWELL 0x5a57 Zinwell vendor SITECOM 0x6189 Sitecom vendor INTEL 0x8086 Intel vendor HP2 0xf003 Hewlett Packard @@ -892,9 +895,18 @@ product GENESYS GL641USB2IDE_2 0x0701 GL641USB USB-IDE Bridge No 2 product GENESYS GL641USB2IDE 0x0702 GL641USB USB-IDE Bridge +/* GIGABYTE products */ +product GIGABYTE GNBR402W 0x8002 GN-BR402W +product GIGABYTE GNWLBM101 0x8003 GN-WLBM101 +product GIGABYTE GNWBKG 0x8007 GN-WBKG + /* G.Mate, Inc products */ product GMATE YP3X00 0x1001 YP3X00 PDA +/* Guillemot Corporation */ +product GUILLEMOT DALEADER 0xa300 DA Leader +product GUILLEMOT HWGUSB254 0xe000 HWGUSB2-54 WLAN + /* HAL Corporation products */ product HAL IMR001 0x0011 Crossam2+USB IR commander @@ -1132,13 +1144,18 @@ product MELCO LUAKTX 0x0012 LUA-KTX Ethernet product MELCO DUBPXXG 0x001c USB-IDE Bridge: DUB-PxxG product MELCO LUAU2KTX 0x003d LUA-U2-KTX Ethernet -product MELCO KG54 0x0066 KG54 wireless adapter +product MELCO KG54YB 0x005e WLI-U2-KG54-YB WLAN +product MELCO KG54 0x0066 WLI-U2-KG54 WLAN +product MELCO KG54AI 0x0067 WLI-U2-KG54-AI WLAN /* Metricom products */ product METRICOM RICOCHET_GS 0x0001 Ricochet GS /* Micro Star International products */ product MSI BT_DONGLE 0x1967 Bluetooth USB dongle +product MSI RT2570 0x6861 RT2570 +product MSI RT2570_2 0x6865 RT2570 +product MSI RT2570_3 0x6869 RT2570 /* Microsoft products */ product MICROSOFT SIDEPREC 0x0008 SideWinder Precision Pro @@ -1546,6 +1563,9 @@ /* Vodafone products */ product VODAFONE MC3G 0x5000 Mobile Connect 3G datacard +/* VTech products */ +product VTECH RT2570 0x3012 RT2570 + /* Wacom products */ product WACOM CT0405U 0x0000 CT-0405-U Tablet product WACOM GRAPHIRE 0x0010 Graphire @@ -1577,6 +1597,9 @@ /* Yano products */ product YANO U640MO 0x0101 U640MO-03 +/* Zinwell products */ +product ZINWELL RT2570 0x0260 RT2570 + /* Zoom Telephonics, Inc. products */ product ZOOM 2986L 0x9700 2986L Fax modem ==== //depot/projects/smpng/sys/geom/gate/g_gate.c#11 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/geom/gate/g_gate.c,v 1.19 2005/02/16 22:14:51 pjd Exp $ + * $FreeBSD: src/sys/geom/gate/g_gate.c,v 1.20 2005/07/08 21:08:53 pjd Exp $ */ #include <sys/param.h> @@ -442,8 +442,11 @@ } #define G_GATE_CHECK_VERSION(ggio) do { \ - if ((ggio)->gctl_version != G_GATE_VERSION) \ + if ((ggio)->gctl_version != G_GATE_VERSION) { \ + printf("Version mismatch %d != %d.\n", \ + ggio->gctl_version, G_GATE_VERSION); \ return (EINVAL); \ + } \ } while (0) static int g_gate_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, struct thread *td) @@ -488,6 +491,44 @@ g_gate_release(sc); return (error); } + case G_GATE_CMD_CANCEL: + { + struct g_gate_ctl_cancel *ggio = (void *)addr; + struct bio *tbp, *lbp; + + G_GATE_CHECK_VERSION(ggio); + sc = g_gate_hold(ggio->gctl_unit); + if (sc == NULL) + return (ENXIO); + lbp = NULL; + mtx_lock(&sc->sc_queue_mtx); + TAILQ_FOREACH_SAFE(bp, &sc->sc_outqueue.queue, bio_queue, tbp) { + if (ggio->gctl_seq == 0 || + ggio->gctl_seq == (uintptr_t)bp->bio_driver1) { + G_GATE_LOGREQ(1, bp, "Request canceled."); + bioq_remove(&sc->sc_outqueue, bp); + /* + * Be sure to put requests back onto incoming + * queue in the proper order. + */ + if (lbp == NULL) + bioq_insert_head(&sc->sc_inqueue, bp); + else { + TAILQ_INSERT_AFTER(&sc->sc_inqueue.queue, + lbp, bp, bio_queue); + } + lbp = bp; + /* + * If only one request was canceled, leave now. + */ + if (ggio->gctl_seq != 0) + break; + } + } + mtx_unlock(&sc->sc_queue_mtx); + g_gate_release(sc); + return (error); + } case G_GATE_CMD_START: { struct g_gate_ctl_io *ggio = (void *)addr; @@ -526,6 +567,7 @@ ggio->gctl_seq = (uintptr_t)bp->bio_driver1; ggio->gctl_offset = bp->bio_offset; ggio->gctl_length = bp->bio_length; + switch (bp->bio_cmd) { case BIO_READ: break; ==== //depot/projects/smpng/sys/geom/gate/g_gate.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/geom/gate/g_gate.h,v 1.5 2005/02/16 22:14:51 pjd Exp $ + * $FreeBSD: src/sys/geom/gate/g_gate.h,v 1.6 2005/07/08 21:08:53 pjd Exp $ */ #ifndef _G_GATE_H_ @@ -41,7 +41,7 @@ #define G_GATE_MOD_NAME "ggate" #define G_GATE_CTL_NAME "ggctl" -#define G_GATE_VERSION 0 +#define G_GATE_VERSION 1 /* * Maximum number of request that can be stored in @@ -56,8 +56,9 @@ #define G_GATE_CMD_CREATE _IOWR('m', 0, struct g_gate_ctl_create) #define G_GATE_CMD_DESTROY _IOWR('m', 1, struct g_gate_ctl_destroy) -#define G_GATE_CMD_START _IOWR('m', 2, struct g_gate_ctl_io) -#define G_GATE_CMD_DONE _IOWR('m', 3, struct g_gate_ctl_io) +#define G_GATE_CMD_CANCEL _IOWR('m', 2, struct g_gate_ctl_cancel) +#define G_GATE_CMD_START _IOWR('m', 3, struct g_gate_ctl_io) +#define G_GATE_CMD_DONE _IOWR('m', 4, struct g_gate_ctl_io) #define G_GATE_INFOSIZE 2048 @@ -129,6 +130,12 @@ int gctl_force; }; +struct g_gate_ctl_cancel { + u_int gctl_version; + int gctl_unit; + uintptr_t gctl_seq; +}; + struct g_gate_ctl_io { u_int gctl_version; int gctl_unit; ==== //depot/projects/smpng/sys/i386/include/atomic.h#39 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/atomic.h,v 1.37 2005/03/02 21:33:26 joerg Exp $ + * $FreeBSD: src/sys/i386/include/atomic.h,v 1.38 2005/07/09 12:38:53 jhb Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ ==== //depot/projects/smpng/sys/kern/init_sysent.c#58 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/init_sysent.c,v 1.194 2005/07/07 18:20:38 jhb Exp $ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.197 2005/07/07 18:17:55 jhb Exp + * $FreeBSD: src/sys/kern/init_sysent.c,v 1.195 2005/07/08 15:06:58 jhb Exp $ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp */ #include "opt_compat.h" @@ -304,7 +304,7 @@ { SYF_MPSAFE | AS(getdents_args), (sy_call_t *)getdents, AUE_NULL }, /* 272 = getdents */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 273 = nosys */ { SYF_MPSAFE | AS(lchmod_args), (sy_call_t *)lchmod, AUE_NULL }, /* 274 = lchmod */ - { AS(lchown_args), (sy_call_t *)lchown, AUE_NULL }, /* 275 = netbsd_lchown */ + { SYF_MPSAFE | AS(lchown_args), (sy_call_t *)lchown, AUE_NULL }, /* 275 = netbsd_lchown */ { SYF_MPSAFE | AS(lutimes_args), (sy_call_t *)lutimes, AUE_NULL }, /* 276 = lutimes */ { SYF_MPSAFE | AS(msync_args), (sy_call_t *)msync, AUE_NULL }, /* 277 = netbsd_msync */ { SYF_MPSAFE | AS(nstat_args), (sy_call_t *)nstat, AUE_NULL }, /* 278 = nstat */ ==== //depot/projects/smpng/sys/kern/syscalls.c#58 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/kern/syscalls.c,v 1.180 2005/07/07 18:20:38 jhb Exp $ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.197 2005/07/07 18:17:55 jhb Exp + * $FreeBSD: src/sys/kern/syscalls.c,v 1.181 2005/07/08 15:06:58 jhb Exp $ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp */ const char *syscallnames[] = { ==== //depot/projects/smpng/sys/kern/syscalls.master#60 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/kern/syscalls.master,v 1.197 2005/07/07 18:17:55 jhb Exp $ + $FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; ; System call name/number master file. @@ -484,7 +484,7 @@ size_t count); } 273 AUE_NULL UNIMPL nosys 274 AUE_NULL MSTD { int lchmod(char *path, mode_t mode); } -275 AUE_NULL NOPROTO { int lchown(char *path, uid_t uid, \ +275 AUE_NULL MNOPROTO { int lchown(char *path, uid_t uid, \ gid_t gid); } netbsd_lchown lchown_args \ int 276 AUE_NULL MSTD { int lutimes(char *path, \ ==== //depot/projects/smpng/sys/net80211/ieee80211_input.c#20 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.59 2005/07/06 15:38:27 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.61 2005/07/08 22:49:26 sam Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -257,7 +257,7 @@ if (IEEE80211_QOS_HAS_SEQ(wh)) { tid = ((struct ieee80211_qosframe *)wh)-> i_qos[0] & IEEE80211_QOS_TID; - if (tid >= WME_AC_VI) + if (TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; tid++; } else @@ -2685,8 +2685,7 @@ IEEE80211_DPRINTF(ic, IEEE80211_MSG_POWER, "[%s] recv ps-poll, send packet, %u still queued\n", ether_sprintf(ni->ni_macaddr), qlen); - wh = mtod(m, struct ieee80211_frame_min *); - wh->i_fc[1] |= IEEE80211_FC1_MORE_DATA; + m->m_flags |= M_MORE_DATA; } else { IEEE80211_DPRINTF(ic, IEEE80211_MSG_POWER, "[%s] recv ps-poll, send packet, queue empty\n", ==== //depot/projects/smpng/sys/pci/if_ste.c#36 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/pci/if_ste.c,v 1.83 2005/06/11 01:37:46 brooks Exp $"); +__FBSDID("$FreeBSD: src/sys/pci/if_ste.c,v 1.84 2005/07/08 13:05:59 mlaier Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -623,7 +623,7 @@ ste_rxeoc(sc); ste_rxeof(sc); ste_txeof(sc); - if (ifp->if_snd.ifq_head != NULL) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) ste_start(ifp); if (cmd == POLL_AND_CHECK_STATUS) { @@ -716,7 +716,7 @@ /* Re-enable interrupts */ CSR_WRITE_2(sc, STE_IMR, STE_INTRS); - if (ifp->if_snd.ifq_head != NULL) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) ste_start(ifp); #ifdef DEVICE_POLLING @@ -938,7 +938,7 @@ * otherwise we get stuck in the wrong link state */ ste_miibus_statchg(sc->ste_dev); - if (ifp->if_snd.ifq_head != NULL) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) ste_start(ifp); } } @@ -1085,7 +1085,9 @@ ifp->if_watchdog = ste_watchdog; ifp->if_init = ste_init; ifp->if_baudrate = 10000000; - ifp->if_snd.ifq_maxlen = STE_TX_LIST_CNT - 1; + IFQ_SET_MAXLEN(&ifp->if_snd, STE_TX_LIST_CNT - 1); + ifp->if_snd.ifq_drv_maxlen = STE_TX_LIST_CNT - 1; + IFQ_SET_READY(&ifp->if_snd); sc->ste_tx_thresh = STE_TXSTART_THRESH; @@ -1610,7 +1612,7 @@ break; } - IF_DEQUEUE(&ifp->if_snd, m_head); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); if (m_head == NULL) break; @@ -1678,7 +1680,7 @@ ste_reset(sc); ste_init(sc); - if (ifp->if_snd.ifq_head != NULL) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) ste_start(ifp); STE_UNLOCK(sc); ==== //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#20 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/busdma_machdep.c,v 1.24 2005/03/15 11:43:05 grehan Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/busdma_machdep.c,v 1.25 2005/07/09 06:53:52 grehan Exp $"); /* * MacPPC bus dma support routines @@ -508,6 +508,8 @@ M_ASSERTPKTHDR(m0); + *nsegs = 0; + if (m0->m_pkthdr.len <= dmat->maxsize) { int first = 1; vm_offset_t lastaddr = 0; ==== //depot/projects/smpng/sys/sys/socketvar.h#45 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)socketvar.h 8.3 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/socketvar.h,v 1.140 2005/03/12 12:57:18 rwatson Exp $ + * $FreeBSD: src/sys/sys/socketvar.h,v 1.141 2005/07/09 12:24:40 jhb Exp $ */ #ifndef _SYS_SOCKETVAR_H_ @@ -136,7 +136,7 @@ struct label *so_peerlabel; /* (b) cached MAC label for peer */ /* NB: generation count must not be first; easiest to make it last. */ so_gen_t so_gencnt; /* (h) generation count */ - void *so_emuldata; /* private data for emulators */ + void *so_emuldata; /* (b) private data for emulators */ struct so_accf { struct accept_filter *so_accept_filter; void *so_accept_filter_arg; /* saved filter args */ ==== //depot/projects/smpng/sys/sys/syscall.h#57 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/syscall.h,v 1.177 2005/07/07 18:20:38 jhb Exp $ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.197 2005/07/07 18:17:55 jhb Exp + * $FreeBSD: src/sys/sys/syscall.h,v 1.178 2005/07/08 15:06:58 jhb Exp $ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp */ #define SYS_syscall 0 ==== //depot/projects/smpng/sys/sys/syscall.mk#57 (text+ko) ==== @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. -# $FreeBSD: src/sys/sys/syscall.mk,v 1.132 2005/07/07 18:20:38 jhb Exp $ -# created from FreeBSD: src/sys/kern/syscalls.master,v 1.197 2005/07/07 18:17:55 jhb Exp +# $FreeBSD: src/sys/sys/syscall.mk,v 1.133 2005/07/08 15:06:58 jhb Exp $ +# created from FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp MIASM = \ syscall.o \ exit.o \ ==== //depot/projects/smpng/sys/sys/sysproto.h#59 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/sys/sysproto.h,v 1.176 2005/07/07 18:20:38 jhb Exp $ - * created from FreeBSD: src/sys/kern/syscalls.master,v 1.197 2005/07/07 18:17:55 jhb Exp + * $FreeBSD: src/sys/sys/sysproto.h,v 1.177 2005/07/08 15:06:58 jhb Exp $ + * created from FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp */ #ifndef _SYS_SYSPROTO_H_
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507091340.j69DeVNC063210>