PERFORCE change 79823 for review
John Baldwin
jhb at FreeBSD.org
Sat Jul 9 13:40:33 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=79823
Change 79823 by jhb at 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_
More information about the p4-projects
mailing list