Date: Thu, 28 May 2009 21:03:11 GMT From: Andrew Thompson <thompsa@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 162970 for review Message-ID: <200905282103.n4SL3BOw007515@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=162970 Change 162970 by thompsa@thompsa_burger on 2009/05/28 21:02:18 IFC @162969 Affected files ... .. //depot/projects/usb/src/sys/boot/common/ufsread.c#4 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot2/sys.c#2 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#3 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#12 integrate .. //depot/projects/usb/src/sys/conf/NOTES#36 integrate .. //depot/projects/usb/src/sys/conf/files#65 integrate .. //depot/projects/usb/src/sys/conf/files.i386#25 integrate .. //depot/projects/usb/src/sys/conf/options#28 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-usb.c#43 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#18 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis_usb.c#18 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndisvar.h#13 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#44 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudioreg.h#11 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#30 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.h#14 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci_atmelarm.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#26 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.h#9 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.h#6 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ohci.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uhci.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.h#10 integrate .. //depot/projects/usb/src/sys/dev/usb/input/uhid.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/misc/udbp.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/misc/ufm.c#6 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_auereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_axe.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_axereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cdcereg.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cue.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cuereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_kue.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_kuereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_rue.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_ruereg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_udav.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_udavreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#5 integrate .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.h#5 integrate .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uark.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ubsa.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ubser.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uchcom.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ucycom.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ufoma.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uftdi.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ugensa.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uipaq.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/umct.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/umodem.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/umoscom.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uplcom.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.h#5 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uslcom.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#10 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uvscom.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/urio.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/ustorage_fs.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/template/usb_template.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/template/usb_template.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/template/usb_template_cdce.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/template/usb_template_msc.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/template/usb_template_mtp.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb.h#40 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_bus.h#12 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_busdma.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_busdma.h#7 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_cdc.h#11 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#39 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#14 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#10 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_core.h#22 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_debug.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_debug.h#6 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#23 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.h#10 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#34 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.h#23 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dynamic.c#6 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dynamic.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_generic.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#9 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hid.c#35 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hid.h#19 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.h#11 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_ioctl.h#3 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_lookup.c#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_lookup.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_mbuf.c#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_mbuf.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_msctest.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_msctest.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_parse.c#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_parse.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_process.c#6 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_process.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_request.c#18 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_request.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#151 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.h#9 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_util.c#6 integrate .. //depot/projects/usb/src/sys/dev/usb/usbhid.h#9 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_rum.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_rumvar.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_uathvar.h#4 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgtvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_ural.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_uralvar.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtw.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtwvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_zyd.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_zydreg.h#6 integrate .. //depot/projects/usb/src/sys/dev/xen/netfront/netfront.c#10 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clbio.c#3 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clnode.c#3 integrate .. //depot/projects/usb/src/sys/fs/pseudofs/pseudofs_vnops.c#13 integrate .. //depot/projects/usb/src/sys/fs/smbfs/smbfs_io.c#10 integrate .. //depot/projects/usb/src/sys/i386/xen/xen_rtc.c#1 branch .. //depot/projects/usb/src/sys/modules/Makefile#33 integrate .. //depot/projects/usb/src/sys/modules/nfscl/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/nfscommon/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/nfsd/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/zfs/Makefile#9 integrate .. //depot/projects/usb/src/sys/netinet6/icmp6.c#18 integrate .. //depot/projects/usb/src/sys/netinet6/in6.h#8 integrate .. //depot/projects/usb/src/sys/netinet6/in6_mcast.c#3 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_input.c#20 integrate .. //depot/projects/usb/src/sys/netinet6/mld6.c#16 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_bio.c#14 integrate .. //depot/projects/usb/src/sys/rpc/xdr.h#3 integrate .. //depot/projects/usb/src/sys/sys/queue.h#6 integrate .. //depot/projects/usb/src/sys/vm/vm_object.c#16 integrate .. //depot/projects/usb/src/sys/vm/vm_pageout.c#16 integrate .. //depot/projects/usb/src/sys/xdr/xdr_mem.c#3 integrate .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_xs.c#6 integrate Differences ... ==== //depot/projects/usb/src/sys/boot/common/ufsread.c#4 (text+ko) ==== @@ -44,9 +44,10 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/common/ufsread.c,v 1.18 2008/06/07 05:49:24 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/common/ufsread.c,v 1.19 2009/05/28 08:22:36 dfr Exp $"); #include <ufs/ufs/dinode.h> +#include <ufs/ufs/dir.h> #include <ufs/ffs/fs.h> #ifdef UFS_SMALL_CGBASE /* XXX: Revert to old (broken for over 1.5Tb filesystems) version of cgbase @@ -93,7 +94,7 @@ fsfind(const char *name, ino_t * ino) { char buf[DEV_BSIZE]; - struct dirent *d; + struct direct *d; char *s; ssize_t n; @@ -104,7 +105,7 @@ if (ls) printf("%s ", d->d_name); else if (!strcmp(name, d->d_name)) { - *ino = d->d_fileno; + *ino = d->d_ino; return d->d_type; } s += d->d_reclen; ==== //depot/projects/usb/src/sys/boot/pc98/boot2/sys.c#2 (text+ko) ==== @@ -27,14 +27,14 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/sys.c,v 1.7 2005/05/08 14:17:27 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/pc98/boot2/sys.c,v 1.8 2009/05/28 08:22:36 dfr Exp $"); /* * Ported to PC-9801 by Yoshio Kimura */ #include "boot.h" -#include <sys/dirent.h> +#include <ufs/ufs/dir.h> #if 0 /* #define BUFSIZE 4096 */ @@ -142,7 +142,7 @@ { char *rest, ch; int block, off, loc, ino = ROOTINO; - struct dirent *dp; + struct direct *dp; char list_only; list_only = (path[0] == '?' && path[1] == '\0'); @@ -174,12 +174,12 @@ devread(iobuf, fsbtodb(fs, block_map(block)) + boff, blksize(fs, &inode, block)); } - dp = (struct dirent *)(iobuf + off); + dp = (struct direct *)(iobuf + off); loc += dp->d_reclen; - if (dp->d_fileno && list_only) + if (dp->d_ino && list_only) printf("%s ", dp->d_name); - } while (!dp->d_fileno || strcmp(path, dp->d_name)); - ino = dp->d_fileno; + } while (!dp->d_ino || strcmp(path, dp->d_name)); + ino = dp->d_ino; *(path = rest) = ch; goto loop; } ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#3 (text+ko) ==== @@ -121,6 +121,7 @@ * Changes must be reviewed by Solaris File Sharing * Changes must be communicated to contract-2003-523@sun.com */ +#ifndef __FreeBSD__ struct xdr_ops { #ifdef __STDC__ #if !defined(_KERNEL) @@ -168,6 +169,28 @@ #endif }; +#else /* FreeBSD */ +struct xdr_ops { + /* get a long from underlying stream */ + bool_t (*x_getint32)(struct XDR *, int32_t *); + /* put a long to " */ + bool_t (*x_putint32)(struct XDR *, const int32_t *); + /* get some bytes from " */ + bool_t (*x_getbytes)(struct XDR *, char *, u_int); + /* put some bytes to " */ + bool_t (*x_putbytes)(struct XDR *, const char *, u_int); + /* returns bytes off from beginning */ + u_int (*x_getpostn)(struct XDR *); + /* lets you reposition the stream */ + bool_t (*x_setpostn)(struct XDR *, u_int); + /* buf quick ptr to buffered data */ + int32_t *(*x_inline)(struct XDR *, u_int); + /* free privates of this xdr_stream */ + void (*x_destroy)(struct XDR *); + bool_t (*x_control)(struct XDR *, int, void *); +}; +#endif + /* * Operations defined on a XDR handle * ==== //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#12 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.12 2009/04/05 18:20:38 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.13 2009/05/28 17:36:36 thompsa Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -84,10 +84,10 @@ #define USBD_CTRL_MAX_PIPE 2 #define USBD_CTRL_READ_BUFFER_SP 256 #define USBD_CTRL_READ_BUFFER_SIZE \ - (sizeof(struct usb2_device_request) + USBD_CTRL_READ_BUFFER_SP) + (sizeof(struct usb_device_request) + USBD_CTRL_READ_BUFFER_SP) #define USBD_CTRL_WRITE_BUFFER_SIZE \ - (sizeof(struct usb2_device_request)) -static struct usb2_config usbd_default_epconfig[USBD_CTRL_MAX_PIPE] = { + (sizeof(struct usb_device_request)) +static struct usb_config usbd_default_epconfig[USBD_CTRL_MAX_PIPE] = { [USBD_CTRL_READ_PIPE] = { .type = UE_CONTROL, .endpoint = 0x00, /* control pipe */ @@ -115,10 +115,10 @@ static int32_t usbd_func_selconf(irp *); static int32_t usbd_func_abort_pipe(irp *); static usb2_error_t usbd_setup_endpoint(irp *, uint8_t, - struct usb2_endpoint_descriptor *); + struct usb_endpoint_descriptor *); static usb2_error_t usbd_setup_endpoint_default(irp *, uint8_t); static usb2_error_t usbd_setup_endpoint_one(irp *, uint8_t, - struct ndisusb_ep *, struct usb2_config *); + struct ndisusb_ep *, struct usb_config *); static int32_t usbd_func_getdesc(irp *); static union usbd_urb *usbd_geturb(irp *); static struct ndisusb_ep*usbd_get_ndisep(irp *, usb_endpoint_descriptor_t *); @@ -519,8 +519,8 @@ device_t dev = IRP_NDIS_DEV(ip); int i, j; struct ndis_softc *sc = device_get_softc(dev); - struct usb2_device *udev = sc->ndisusb_dev; - struct usb2_pipe *p = NULL; + struct usb_device *udev = sc->ndisusb_dev; + struct usb_pipe *p = NULL; struct usbd_interface_information *intf; struct usbd_pipe_information *pipe; struct usbd_urb_select_configuration *selconf; @@ -597,11 +597,11 @@ irp *ip; uint8_t ifidx; struct ndisusb_ep *ne; - struct usb2_config *epconf; + struct usb_config *epconf; { device_t dev = IRP_NDIS_DEV(ip); struct ndis_softc *sc = device_get_softc(dev); - struct usb2_xfer *xfer; + struct usb_xfer *xfer; usb2_error_t status; InitializeListHead(&ne->ne_active); @@ -647,13 +647,13 @@ usbd_setup_endpoint(ip, ifidx, ep) irp *ip; uint8_t ifidx; - struct usb2_endpoint_descriptor *ep; + struct usb_endpoint_descriptor *ep; { device_t dev = IRP_NDIS_DEV(ip); struct ndis_softc *sc = device_get_softc(dev); struct ndisusb_ep *ne; - struct usb2_config cfg; - struct usb2_xfer *xfer; + struct usb_config cfg; + struct usb_xfer *xfer; usb2_error_t status; /* check for non-supported transfer types */ @@ -670,7 +670,7 @@ KeInitializeSpinLock(&ne->ne_lock); ne->ne_dirin = UE_GET_DIR(ep->bEndpointAddress) >> 7; - memset(&cfg, 0, sizeof(struct usb2_config)); + memset(&cfg, 0, sizeof(struct usb_config)); cfg.type = UE_GET_XFERTYPE(ep->bmAttributes); cfg.endpoint = UE_GET_ADDR(ep->bEndpointAddress); cfg.direction = UE_GET_DIR(ep->bEndpointAddress); @@ -853,7 +853,7 @@ } static void -usbd_non_isoc_callback(struct usb2_xfer *xfer) +usbd_non_isoc_callback(struct usb_xfer *xfer) { irp *ip; struct ndis_softc *sc = xfer->priv_sc; @@ -951,7 +951,7 @@ } static void -usbd_ctrl_callback(struct usb2_xfer *xfer) +usbd_ctrl_callback(struct usb_xfer *xfer) { irp *ip; struct ndis_softc *sc = xfer->priv_sc; @@ -961,7 +961,7 @@ union usbd_urb *urb; struct usbd_urb_vendor_or_class_request *vcreq; uint8_t type = 0; - struct usb2_device_request req; + struct usb_device_request req; switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: @@ -1434,7 +1434,7 @@ int32_t intfsubclass; int32_t intfproto; { - struct usb2_descriptor *next = NULL; + struct usb_descriptor *next = NULL; usb_interface_descriptor_t *desc; while ((next = usb2_desc_foreach(conf, next)) != NULL) { ==== //depot/projects/usb/src/sys/conf/NOTES#36 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1540 2009/05/26 21:39:09 sson Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1541 2009/05/28 19:45:11 rmacklem Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -964,6 +964,8 @@ options MSDOSFS #MS DOS File System (FAT, FAT32) options NFSSERVER #Network File System server options NFSLOCKD #Network Lock Manager +options NFSCL #experimental NFS client with NFSv4 +options NFSD #experimental NFS server with NFSv4 # NT File System. Read-mostly, see mount_ntfs(8) for details. # For a full read-write NTFS support consider sysutils/fusefs-ntfs ==== //depot/projects/usb/src/sys/conf/files#65 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1408 2009/05/27 16:43:40 thompsa Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1409 2009/05/28 19:45:11 rmacklem Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1672,6 +1672,29 @@ fs/msdosfs/msdosfs_lookup.c optional msdosfs fs/msdosfs/msdosfs_vfsops.c optional msdosfs fs/msdosfs/msdosfs_vnops.c optional msdosfs +fs/nfs/nfs_commonkrpc.c optional nfscl | nfsd +fs/nfs/nfs_commonsubs.c optional nfscl | nfsd +fs/nfs/nfs_commonport.c optional nfscl | nfsd +fs/nfs/nfs_commonacl.c optional nfscl | nfsd +fs/nfsclient/nfs_clcomsubs.c optional nfscl +fs/nfsclient/nfs_clsubs.c optional nfscl +fs/nfsclient/nfs_clstate.c optional nfscl +fs/nfsclient/nfs_clkrpc.c optional nfscl +fs/nfsclient/nfs_clrpcops.c optional nfscl +fs/nfsclient/nfs_clvnops.c optional nfscl +fs/nfsclient/nfs_clnode.c optional nfscl +fs/nfsclient/nfs_clvfsops.c optional nfscl +fs/nfsclient/nfs_cllock.c optional nfscl +fs/nfsclient/nfs_clport.c optional nfscl +fs/nfsclient/nfs_clbio.c optional nfscl +fs/nfsclient/nfs_clnfsiod.c optional nfscl +fs/nfsserver/nfs_nfsdsocket.c optional nfsd +fs/nfsserver/nfs_nfsdsubs.c optional nfsd +fs/nfsserver/nfs_nfsdstate.c optional nfsd +fs/nfsserver/nfs_nfsdkrpc.c optional nfsd +fs/nfsserver/nfs_nfsdserv.c optional nfsd +fs/nfsserver/nfs_nfsdport.c optional nfsd +fs/nfsserver/nfs_nfsdcache.c optional nfsd fs/ntfs/ntfs_compr.c optional ntfs fs/ntfs/ntfs_iconv.c optional ntfs_iconv fs/ntfs/ntfs_ihash.c optional ntfs @@ -2420,14 +2443,14 @@ nfsserver/nfs_srvcache.c optional nfsserver nfsserver/nfs_srvsubs.c optional nfsserver nfsserver/nfs_syscalls.c optional nfsserver -nfs/nfs_nfssvc.c optional nfsserver -nlm/nlm_advlock.c optional nfslockd nfsclient -nlm/nlm_prot_clnt.c optional nfslockd -nlm/nlm_prot_impl.c optional nfslockd -nlm/nlm_prot_server.c optional nfslockd -nlm/nlm_prot_svc.c optional nfslockd -nlm/nlm_prot_xdr.c optional nfslockd -nlm/sm_inter_xdr.c optional nfslockd +nfs/nfs_nfssvc.c optional nfsserver | nfscl | nfsd +nlm/nlm_advlock.c optional nfslockd nfsclient | nfsd nfsclient +nlm/nlm_prot_clnt.c optional nfslockd | nfsd +nlm/nlm_prot_impl.c optional nfslockd | nfsd +nlm/nlm_prot_server.c optional nfslockd | nfsd +nlm/nlm_prot_svc.c optional nfslockd | nfsd +nlm/nlm_prot_xdr.c optional nfslockd | nfsd +nlm/sm_inter_xdr.c optional nfslockd | nfsd # crypto support opencrypto/cast.c optional crypto | ipsec opencrypto/criov.c optional crypto @@ -2447,32 +2470,32 @@ pci/ncr.c optional ncr pci pci/nfsmb.c optional nfsmb pci pci/viapm.c optional viapm pci -rpc/auth_none.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/auth_unix.c optional krpc | nfslockd | nfsclient -rpc/authunix_prot.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/clnt_dg.c optional krpc | nfslockd | nfsclient -rpc/clnt_rc.c optional krpc | nfslockd | nfsclient -rpc/clnt_vc.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/getnetconfig.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/inet_ntop.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/inet_pton.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/replay.c optional krpc | nfslockd | nfsserver -rpc/rpc_callmsg.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/rpc_generic.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/rpc_prot.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/rpcb_clnt.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/rpcb_prot.c optional krpc | nfslockd | nfsclient | nfsserver -rpc/svc.c optional krpc | nfslockd | nfsserver -rpc/svc_auth.c optional krpc | nfslockd | nfsserver -rpc/svc_auth_unix.c optional krpc | nfslockd | nfsserver -rpc/svc_dg.c optional krpc | nfslockd | nfsserver -rpc/svc_generic.c optional krpc | nfslockd | nfsserver -rpc/svc_vc.c optional krpc | nfslockd | nfsserver -rpc/rpcsec_gss/rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi -rpc/rpcsec_gss/rpcsec_gss_conf.c optional krpc kgssapi | nfslockd kgssapi -rpc/rpcsec_gss/rpcsec_gss_misc.c optional krpc kgssapi | nfslockd kgssapi -rpc/rpcsec_gss/rpcsec_gss_prot.c optional krpc kgssapi | nfslockd kgssapi -rpc/rpcsec_gss/svc_rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi +rpc/auth_none.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/auth_unix.c optional krpc | nfslockd | nfsclient | nfscl | nfsd +rpc/authunix_prot.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/clnt_dg.c optional krpc | nfslockd | nfsclient | nfscl | nfsd +rpc/clnt_rc.c optional krpc | nfslockd | nfsclient | nfscl | nfsd +rpc/clnt_vc.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/getnetconfig.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/inet_ntop.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/inet_pton.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/replay.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/rpc_callmsg.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/rpc_generic.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/rpc_prot.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/rpcb_clnt.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/rpcb_prot.c optional krpc | nfslockd | nfsclient | nfsserver | nfscl | nfsd +rpc/svc.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/svc_auth.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/svc_auth_unix.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/svc_dg.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/svc_generic.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/svc_vc.c optional krpc | nfslockd | nfsserver | nfscl | nfsd +rpc/rpcsec_gss/rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi +rpc/rpcsec_gss/rpcsec_gss_conf.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi +rpc/rpcsec_gss/rpcsec_gss_misc.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi +rpc/rpcsec_gss/rpcsec_gss_prot.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi +rpc/rpcsec_gss/svc_rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi security/audit/audit.c optional audit security/audit/audit_arg.c optional audit security/audit/audit_bsm.c optional audit ==== //depot/projects/usb/src/sys/conf/files.i386#25 (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.622 2009/05/13 17:53:04 jhb Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.623 2009/05/28 04:17:05 adrian Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -327,6 +327,7 @@ #i386/isa/atpic_vector.s standard i386/isa/clock.c optional native i386/xen/clock.c optional xen +i386/xen/xen_rtc.c optional xen i386/isa/dpms.c optional dpms i386/isa/elcr.c standard i386/isa/elink.c optional ep | ie ==== //depot/projects/usb/src/sys/conf/options#28 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.669 2009/05/22 12:35:12 rwatson Exp $ +# $FreeBSD: src/sys/conf/options,v 1.670 2009/05/28 19:45:11 rmacklem Exp $ # # On the handling of kernel options # @@ -232,6 +232,13 @@ # supports modern features such as RPCSEC_GSS NFS_LEGACYRPC opt_nfs.h +# Use these options to compile the experimental nfs client and/or +# server that supports NFSv4 into a kernel. +# NFSCL - client +# NFSD - server +NFSCL opt_nfs.h +NFSD opt_nfs.h + # filesystems and libiconv bridge CD9660_ICONV opt_dontuse.h MSDOSFS_ICONV opt_dontuse.h ==== //depot/projects/usb/src/sys/dev/ata/ata-usb.c#43 (text) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-usb.c,v 1.15 2009/05/21 02:09:12 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-usb.c,v 1.16 2009/05/28 17:36:36 thompsa Exp $"); #include "usbdevs.h" #include <dev/usb/usb.h> @@ -108,7 +108,7 @@ #define ATAUSB_T_MAX ATAUSB_T_BBB_MAX - struct usb2_xfer *xfer[ATAUSB_T_MAX]; + struct usb_xfer *xfer[ATAUSB_T_MAX]; caddr_t ata_data; device_t dev; @@ -145,7 +145,7 @@ static void atausb2_cancel_request(struct atausb2_softc *sc); static void atausb2_transfer_start(struct atausb2_softc *sc, uint8_t xfer_no); -static void atausb2_t_bbb_data_clear_stall_callback(struct usb2_xfer *xfer, uint8_t next_xfer, uint8_t stall_xfer); +static void atausb2_t_bbb_data_clear_stall_callback(struct usb_xfer *xfer, uint8_t next_xfer, uint8_t stall_xfer); static int ata_usbchannel_begin_transaction(struct ata_request *request); static int ata_usbchannel_end_transaction(struct ata_request *request); @@ -160,13 +160,13 @@ * USB frontend part */ -struct usb2_config atausb2_config[ATAUSB_T_BBB_MAX] = { +struct usb_config atausb2_config[ATAUSB_T_BBB_MAX] = { [ATAUSB_T_BBB_RESET1] = { .type = UE_CONTROL, .endpoint = 0x00, /* Control pipe */ .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), + .mh.bufsize = sizeof(struct usb_device_request), .mh.flags = {}, .mh.callback = &atausb2_t_bbb_reset1_callback, .mh.timeout = 5000, /* 5 seconds */ @@ -177,7 +177,7 @@ .type = UE_CONTROL, .endpoint = 0x00, /* Control pipe */ .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), + .mh.bufsize = sizeof(struct usb_device_request), .mh.flags = {}, .mh.callback = &atausb2_t_bbb_reset2_callback, .mh.timeout = 5000, /* 5 seconds */ @@ -188,7 +188,7 @@ .type = UE_CONTROL, .endpoint = 0x00, /* Control pipe */ .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), + .mh.bufsize = sizeof(struct usb_device_request), .mh.flags = {}, .mh.callback = &atausb2_t_bbb_reset3_callback, .mh.timeout = 5000, /* 5 seconds */ @@ -219,7 +219,7 @@ .type = UE_CONTROL, .endpoint = 0x00, /* Control pipe */ .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), + .mh.bufsize = sizeof(struct usb_device_request), .mh.flags = {}, .mh.callback = &atausb2_t_bbb_data_rd_cs_callback, .mh.timeout = 5000, /* 5 seconds */ @@ -239,7 +239,7 @@ .type = UE_CONTROL, .endpoint = 0x00, /* Control pipe */ .direction = UE_DIR_ANY, - .mh.bufsize = sizeof(struct usb2_device_request), + .mh.bufsize = sizeof(struct usb_device_request), .mh.flags = {}, .mh.callback = &atausb2_t_bbb_data_wr_cs_callback, .mh.timeout = 5000, /* 5 seconds */ @@ -278,8 +278,8 @@ static int atausb2_probe(device_t dev) { - struct usb2_attach_arg *uaa = device_get_ivars(dev); - struct usb2_interface_descriptor *id; + struct usb_attach_arg *uaa = device_get_ivars(dev); + struct usb_interface_descriptor *id; if (uaa->usb_mode != USB_MODE_HOST) { return (ENXIO); @@ -318,10 +318,10 @@ atausb2_attach(device_t dev) { struct atausb2_softc *sc = device_get_softc(dev); - struct usb2_attach_arg *uaa = device_get_ivars(dev); - struct usb2_interface_descriptor *id; + struct usb_attach_arg *uaa = device_get_ivars(dev); + struct usb_interface_descriptor *id; const char *proto, *subclass; - struct usb2_device_request request; + struct usb_device_request request; device_t child; uint16_t i; uint8_t maxlun; @@ -467,10 +467,10 @@ } static void -atausb2_t_bbb_reset1_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_reset1_callback(struct usb_xfer *xfer) { struct atausb2_softc *sc = xfer->priv_sc; - struct usb2_device_request req; + struct usb_device_request req; switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: @@ -500,21 +500,21 @@ } static void -atausb2_t_bbb_reset2_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_reset2_callback(struct usb_xfer *xfer) { atausb2_t_bbb_data_clear_stall_callback(xfer, ATAUSB_T_BBB_RESET3, ATAUSB_T_BBB_DATA_READ); } static void -atausb2_t_bbb_reset3_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_reset3_callback(struct usb_xfer *xfer) { atausb2_t_bbb_data_clear_stall_callback(xfer, ATAUSB_T_BBB_COMMAND, ATAUSB_T_BBB_DATA_WRITE); } static void -atausb2_t_bbb_data_clear_stall_callback(struct usb2_xfer *xfer, +atausb2_t_bbb_data_clear_stall_callback(struct usb_xfer *xfer, uint8_t next_xfer, uint8_t stall_xfer) { @@ -540,7 +540,7 @@ } static void -atausb2_t_bbb_command_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_command_callback(struct usb_xfer *xfer) { struct atausb2_softc *sc = xfer->priv_sc; struct ata_request *request = sc->ata_request; @@ -590,7 +590,7 @@ } static void -atausb2_t_bbb_data_read_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_data_read_callback(struct usb_xfer *xfer) { struct atausb2_softc *sc = xfer->priv_sc; uint32_t max_bulk = xfer->max_data_length; @@ -640,14 +640,14 @@ } static void -atausb2_t_bbb_data_rd_cs_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_data_rd_cs_callback(struct usb_xfer *xfer) { atausb2_t_bbb_data_clear_stall_callback(xfer, ATAUSB_T_BBB_STATUS, ATAUSB_T_BBB_DATA_READ); } static void -atausb2_t_bbb_data_write_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_data_write_callback(struct usb_xfer *xfer) { struct atausb2_softc *sc = xfer->priv_sc; uint32_t max_bulk = xfer->max_data_length; @@ -693,14 +693,14 @@ } static void -atausb2_t_bbb_data_wr_cs_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_data_wr_cs_callback(struct usb_xfer *xfer) { atausb2_t_bbb_data_clear_stall_callback(xfer, ATAUSB_T_BBB_STATUS, ATAUSB_T_BBB_DATA_WRITE); } static void -atausb2_t_bbb_status_callback(struct usb2_xfer *xfer) +atausb2_t_bbb_status_callback(struct usb_xfer *xfer) { struct atausb2_softc *sc = xfer->priv_sc; struct ata_request *request = sc->ata_request; @@ -820,7 +820,7 @@ } static void -atausb2_tr_error(struct usb2_xfer *xfer) +atausb2_tr_error(struct usb_xfer *xfer) { struct atausb2_softc *sc = xfer->priv_sc; ==== //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#18 (text+ko) ==== @@ -28,7 +28,7 @@ ***************************************************************************/ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.86 2009/05/22 18:26:47 gnn Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.87 2009/05/27 20:13:36 gnn Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -82,8 +82,8 @@ #include <sys/priv.h> #endif -static int cxgb_setup_msix(adapter_t *, int); -static void cxgb_teardown_msix(adapter_t *); +static int cxgb_setup_interrupts(adapter_t *); +static void cxgb_teardown_interrupts(adapter_t *); static void cxgb_init(void *); static void cxgb_init_locked(struct port_info *); static void cxgb_stop_locked(struct port_info *); @@ -175,8 +175,6 @@ static devclass_t cxgb_port_devclass; DRIVER_MODULE(cxgb, cxgbc, cxgb_port_driver, cxgb_port_devclass, 0, 0); -#define SGE_MSIX_COUNT (SGE_QSETS + 1) - /* * The driver uses the best interrupt scheme available on a platform in the * order MSI-X, MSI, legacy pin interrupts. This parameter determines which @@ -517,46 +515,52 @@ (sc->msix_regs_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->msix_regs_rid, RF_ACTIVE)) != NULL) { - msi_needed = sc->msi_count = SGE_MSIX_COUNT; + if (multiq) + port_qsets = min(SGE_QSETS/sc->params.nports, mp_ncpus); + msi_needed = sc->msi_count = sc->params.nports * port_qsets + 1; - if (((error = pci_alloc_msix(dev, &sc->msi_count)) != 0) || - (sc->msi_count != msi_needed)) { - device_printf(dev, "msix allocation failed - msi_count = %d" - " msi_needed=%d will try msi err=%d\n", sc->msi_count, - msi_needed, error); + if (pci_msix_count(dev) == 0 || + (error = pci_alloc_msix(dev, &sc->msi_count)) != 0 || + sc->msi_count != msi_needed) { + device_printf(dev, "alloc msix failed - " + "msi_count=%d, msi_needed=%d, err=%d; " + "will try MSI\n", sc->msi_count, + msi_needed, error); sc->msi_count = 0; + port_qsets = 1; pci_release_msi(dev); bus_release_resource(dev, SYS_RES_MEMORY, sc->msix_regs_rid, sc->msix_regs_res); sc->msix_regs_res = NULL; } else { sc->flags |= USING_MSIX; - sc->cxgb_intr = t3_intr_msix; + sc->cxgb_intr = cxgb_async_intr; + device_printf(dev, + "using MSI-X interrupts (%u vectors)\n", + sc->msi_count); } } if ((msi_allowed >= 1) && (sc->msi_count == 0)) { sc->msi_count = 1; - if (pci_alloc_msi(dev, &sc->msi_count)) { - device_printf(dev, "alloc msi failed - will try INTx\n"); + if ((error = pci_alloc_msi(dev, &sc->msi_count)) != 0) { + device_printf(dev, "alloc msi failed - " + "err=%d; will try INTx\n", error); sc->msi_count = 0; + port_qsets = 1; pci_release_msi(dev); } else { sc->flags |= USING_MSI; - sc->irq_rid = 1; sc->cxgb_intr = t3_intr_msi; + device_printf(dev, "using MSI interrupts\n"); } } #endif if (sc->msi_count == 0) { device_printf(dev, "using line interrupts\n"); - sc->irq_rid = 0; sc->cxgb_intr = t3b_intr; } - if ((sc->flags & USING_MSIX) && multiq) - port_qsets = min((SGE_QSETS/(sc)->params.nports), mp_ncpus); - /* Create a private taskqueue thread for handling driver events */ #ifdef TASKQUEUE_CURRENT sc->tq = taskqueue_create("cxgb_taskq", M_NOWAIT, @@ -695,7 +699,7 @@ * 3. Detaching all of the port devices created during the * cxgb_controller_attach() routine. * 4. Removing the device children created via cxgb_controller_attach(). - * 5. Releaseing PCI resources associated with the device. + * 5. Releasing PCI resources associated with the device. * 6. Turning off the offload support, iff it was turned on. * 7. Destroying the mutexes created in cxgb_controller_attach(). * @@ -730,6 +734,8 @@ device_printf(sc->dev, "failed to delete child port\n"); } + cxgb_teardown_interrupts(sc); + #ifdef MSI_SUPPORTED if (sc->flags & (USING_MSI | USING_MSIX)) { device_printf(sc->dev, "releasing msi message(s)\n"); @@ -737,11 +743,12 @@ } else { device_printf(sc->dev, "no msi message to release\n"); } -#endif + if (sc->msix_regs_res != NULL) { bus_release_resource(sc->dev, SYS_RES_MEMORY, sc->msix_regs_rid, sc->msix_regs_res); } +#endif if (sc->tq != NULL) { taskqueue_free(sc->tq); @@ -821,91 +828,116 @@ } static void -cxgb_teardown_msix(adapter_t *sc) +cxgb_teardown_interrupts(adapter_t *sc) { - int i, nqsets; - - for (nqsets = i = 0; i < (sc)->params.nports; i++) - nqsets += sc->port[i].nqsets; + int i; + + for (i = 0; i < SGE_QSETS; i++) { + if (sc->msix_intr_tag[i] == NULL) { + + /* Should have been setup fully or not at all */ + KASSERT(sc->msix_irq_res[i] == NULL && + sc->msix_irq_rid[i] == 0, + ("%s: half-done interrupt (%d).", __func__, i)); - for (i = 0; i < nqsets; i++) { - if (sc->msix_intr_tag[i] != NULL) { - bus_teardown_intr(sc->dev, sc->msix_irq_res[i], - sc->msix_intr_tag[i]); - sc->msix_intr_tag[i] = NULL; + continue; } - if (sc->msix_irq_res[i] != NULL) { - bus_release_resource(sc->dev, SYS_RES_IRQ, - sc->msix_irq_rid[i], sc->msix_irq_res[i]); - sc->msix_irq_res[i] = NULL; - } + + bus_teardown_intr(sc->dev, sc->msix_irq_res[i], + sc->msix_intr_tag[i]); + bus_release_resource(sc->dev, SYS_RES_IRQ, sc->msix_irq_rid[i], + sc->msix_irq_res[i]); + + sc->msix_irq_res[i] = sc->msix_intr_tag[i] = NULL; + sc->msix_irq_rid[i] = 0; + } + + if (sc->intr_tag) { + KASSERT(sc->irq_res != NULL, + ("%s: half-done interrupt.", __func__)); + + bus_teardown_intr(sc->dev, sc->irq_res, sc->intr_tag); + bus_release_resource(sc->dev, SYS_RES_IRQ, sc->irq_rid, + sc->irq_res); + + sc->irq_res = sc->intr_tag = NULL; + sc->irq_rid = 0; } } static int -cxgb_setup_msix(adapter_t *sc, int msix_count) +cxgb_setup_interrupts(adapter_t *sc) { - int i, j, k, nqsets, rid; + struct resource *res; + void *tag; + int i, rid, err, intr_flag = sc->flags & (USING_MSI | USING_MSIX); - /* The first message indicates link changes and error conditions */ - sc->irq_rid = 1; - if ((sc->irq_res = bus_alloc_resource_any(sc->dev, SYS_RES_IRQ, - &sc->irq_rid, RF_SHAREABLE | RF_ACTIVE)) == NULL) { - device_printf(sc->dev, "Cannot allocate msix interrupt\n"); - return (EINVAL); - } >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905282103.n4SL3BOw007515>