Date: Sat, 31 Oct 2009 09:16:17 GMT From: Alexander Motin <mav@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 169983 for review Message-ID: <200910310916.n9V9GHDu037094@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=169983 Change 169983 by mav@mav_mavbook on 2009/10/31 09:15:42 IFC Affected files ... .. //depot/projects/scottl-camlock/src/share/man/man4/atapicam.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/umass.4#4 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#112 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/vnode.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#52 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aac/aac_cam.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aac/aacreg.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_aiboost.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aic79xx_pci.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-pci.h#20 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-adaptec.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-marvell.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drmP.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drm_scatter.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/r600_blit.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/radeon_cp.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_sig.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_output.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/stack_machdep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/sys/aac_ioctl.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/sys/signalvar.h#12 integrate .. //depot/projects/scottl-camlock/src/usr.bin/bsdiff/bsdiff/bsdiff.1#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/bsdiff/bspatch/bspatch.1#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/logger/logger.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/vmstat/vmstat.c#3 integrate Differences ... ==== //depot/projects/scottl-camlock/src/share/man/man4/atapicam.4#4 (text+ko) ==== @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/atapicam.4,v 1.7 2009/10/22 11:35:12 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/atapicam.4,v 1.8 2009/10/29 15:59:27 brueffer Exp $ .\" .Dd October 22, 2009 .Dt ATAPICAM 4 @@ -39,7 +39,6 @@ kernel configuration file: .Bd -ragged -offset indent .Cd "device scbus" -.Cd "device cam" .Cd "device ata" .Cd "device atapicam" .Ed ==== //depot/projects/scottl-camlock/src/share/man/man4/umass.4#4 (text+ko) ==== @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/umass.4,v 1.46 2009/10/22 11:35:12 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/umass.4,v 1.47 2009/10/29 15:59:27 brueffer Exp $ .\" .Dd October 22, 2009 .Dt UMASS 4 @@ -39,7 +39,6 @@ kernel configuration file: .Bd -ragged -offset indent .Cd "device scbus" -.Cd "device cam" .Cd "device usb" .Cd "device umass" .Ed ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#112 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.228 2009/10/23 11:26:58 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.229 2009/10/31 09:03:48 mav Exp $"); #include <sys/param.h> #include <sys/bus.h> ==== //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/vnode.h#7 (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/cddl/compat/opensolaris/sys/vnode.h,v 1.13 2009/08/17 09:48:34 pjd Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.14 2009/10/30 23:33:06 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -57,6 +57,8 @@ #define v_count v_usecount +#define V_APPEND VAPPEND + static __inline int vn_is_readonly(vnode_t *vp) { ==== //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#14 (text+ko) ==== @@ -3989,21 +3989,33 @@ struct thread *a_td; } */ *ap; { + accmode_t accmode; + int error = 0; /* - * ZFS itself only knowns about VREAD, VWRITE and VEXEC, the rest - * we have to handle by calling vaccess(). + * ZFS itself only knowns about VREAD, VWRITE, VEXEC and VAPPEND, + */ + accmode = ap->a_accmode & (VREAD|VWRITE|VEXEC|VAPPEND); + if (accmode != 0) + error = zfs_access(ap->a_vp, accmode, 0, ap->a_cred, NULL); + + /* + * VADMIN has to be handled by vaccess(). */ - if ((ap->a_accmode & ~(VREAD|VWRITE|VEXEC)) != 0) { - vnode_t *vp = ap->a_vp; - znode_t *zp = VTOZ(vp); - znode_phys_t *zphys = zp->z_phys; + if (error == 0) { + accmode = ap->a_accmode & ~(VREAD|VWRITE|VEXEC|VAPPEND); + if (accmode != 0) { + vnode_t *vp = ap->a_vp; + znode_t *zp = VTOZ(vp); + znode_phys_t *zphys = zp->z_phys; - return (vaccess(vp->v_type, zphys->zp_mode, zphys->zp_uid, - zphys->zp_gid, ap->a_accmode, ap->a_cred, NULL)); + error = vaccess(vp->v_type, zphys->zp_mode, + zphys->zp_uid, zphys->zp_gid, accmode, ap->a_cred, + NULL); + } } - return (zfs_access(ap->a_vp, ap->a_accmode, 0, ap->a_cred, NULL)); + return (error); } static int ==== //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#4 (text+ko) ==== @@ -304,7 +304,6 @@ * VOP_ACCESS flags */ #define V_ACE_MASK 0x1 /* mask represents NFSv4 ACE permissions */ -#define V_APPEND 0x2 /* want to do append only check */ /* * Flags for vnode operations. ==== //depot/projects/scottl-camlock/src/sys/conf/files#52 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1479 2009/10/25 10:23:11 rpaulo Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1480 2009/10/29 20:53:26 mav Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -520,14 +520,14 @@ dev/ata/chipsets/ata-intel.c optional ata pci | ataintel dev/ata/chipsets/ata-ite.c optional ata pci | ataite dev/ata/chipsets/ata-jmicron.c optional ata pci | atajmicron -dev/ata/chipsets/ata-marvell.c optional ata pci | atamarvell +dev/ata/chipsets/ata-marvell.c optional ata pci | atamarvell | ataadaptec dev/ata/chipsets/ata-micron.c optional ata pci | atamicron dev/ata/chipsets/ata-national.c optional ata pci | atanational dev/ata/chipsets/ata-netcell.c optional ata pci | atanetcell dev/ata/chipsets/ata-nvidia.c optional ata pci | atanvidia dev/ata/chipsets/ata-promise.c optional ata pci | atapromise dev/ata/chipsets/ata-serverworks.c optional ata pci | ataserverworks -dev/ata/chipsets/ata-siliconimage.c optional ata pci | atasiliconimage +dev/ata/chipsets/ata-siliconimage.c optional ata pci | atasiliconimage | ataati dev/ata/chipsets/ata-sis.c optional ata pci | atasis dev/ata/chipsets/ata-via.c optional ata pci | atavia dev/ata/ata-disk.c optional atadisk ==== //depot/projects/scottl-camlock/src/sys/dev/aac/aac_cam.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.32 2009/10/27 19:37:37 emaste Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.33 2009/10/29 17:14:18 emaste Exp $"); /* * CAM front-end for communicating with non-DASD devices @@ -211,7 +211,7 @@ { struct aac_cam *camsc; struct aac_softc *sc; - struct aac_srb32 *srb; + struct aac_srb *srb; struct aac_fib *fib; struct aac_command *cm; @@ -351,7 +351,7 @@ } fib = cm->cm_fib; - srb = (struct aac_srb32 *)&fib->data[0]; + srb = (struct aac_srb *)&fib->data[0]; cm->cm_datalen = 0; switch (ccb->ccb_h.flags & CAM_DIR_MASK) { @@ -459,7 +459,7 @@ AAC_FIBSTATE_REXPECTED | AAC_FIBSTATE_NORM; fib->Header.Size = sizeof(struct aac_fib_header) + - sizeof(struct aac_srb32); + sizeof(struct aac_srb); aac_enqueue_ready(cm); aac_startio(cm->cm_sc); ==== //depot/projects/scottl-camlock/src/sys/dev/aac/aacreg.h#7 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/aac/aacreg.h,v 1.27 2009/02/21 15:40:03 attilio Exp $ + * $FreeBSD: src/sys/dev/aac/aacreg.h,v 1.28 2009/10/29 17:14:18 emaste Exp $ */ /* @@ -1363,7 +1363,7 @@ /* * SCSI Passthrough structures */ -struct aac_srb32 { +struct aac_srb { u_int32_t function; u_int32_t bus; u_int32_t target; ==== //depot/projects/scottl-camlock/src/sys/dev/acpi_support/acpi_aiboost.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_aiboost.c,v 1.5 2009/09/22 18:34:23 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_aiboost.c,v 1.6 2009/10/29 18:03:16 jhb Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -41,23 +41,25 @@ #include <sys/malloc.h> #include <sys/sysctl.h> -#define _COMPONENT ACPI_OEM +#define _COMPONENT ACPI_OEM ACPI_MODULE_NAME("AIBOOST") -#define DESCSTRLEN 32 -struct acpi_aiboost_element{ +#define DESCSTRLEN 32 + +struct acpi_aiboost_element { uint32_t id; - char desc[DESCSTRLEN]; + char desc[DESCSTRLEN]; }; + ACPI_SERIAL_DECL(aiboost, "ACPI AIBOOST"); -/**/ -struct acpi_aiboost_component{ - unsigned int num; - struct acpi_aiboost_element elem[1]; + +struct acpi_aiboost_component { + u_int num; + struct acpi_aiboost_element elem[0]; }; struct acpi_aiboost_softc { - int pid; + int pid; struct acpi_aiboost_component *temp; struct acpi_aiboost_component *volt; struct acpi_aiboost_component *fan; @@ -65,7 +67,7 @@ static int acpi_aiboost_probe(device_t dev); static int acpi_aiboost_attach(device_t dev); -static int acpi_aiboost_detach(device_t dev); +static int acpi_aiboost_detach(device_t dev); static device_method_t acpi_aiboost_methods[] = { /* Device interface */ @@ -85,46 +87,56 @@ static devclass_t acpi_aiboost_devclass; DRIVER_MODULE(acpi_aiboost, acpi, acpi_aiboost_driver, acpi_aiboost_devclass, - 0, 0); + 0, 0); MODULE_DEPEND(acpi_aiboost, acpi, 1, 1, 1); + static char *abs_id[] = {"ATK0110", NULL}; -/*VSIF, RVLT, SVLT, TSIF, RTMP, STMP FSIF, RFAN, SFAN */ +/* VSIF, RVLT, SVLT, TSIF, RTMP, STMP, FSIF, RFAN, SFAN */ -static ACPI_STATUS acpi_aiboost_getcomponent(device_t dev, char *name, struct acpi_aiboost_component **comp) +static ACPI_STATUS +acpi_aiboost_getcomponent(device_t dev, char *name, + struct acpi_aiboost_component **comp) { - ACPI_BUFFER buf, buf2; - ACPI_OBJECT *o,*elem,*subobj; + ACPI_BUFFER buf, buf2; + ACPI_OBJECT *elem, *o, *subobj; ACPI_STATUS status; - struct acpi_aiboost_component *c = NULL; - + struct acpi_aiboost_component *c; int i; + c = NULL; buf.Pointer = NULL; buf.Length = ACPI_ALLOCATE_BUFFER; buf2.Pointer = NULL; + status = AcpiEvaluateObject(acpi_get_handle(dev), name, NULL, &buf); - status = AcpiEvaluateObject(acpi_get_handle(dev), name, NULL, &buf); - - if(ACPI_FAILURE(status)) - return status; - + if (ACPI_FAILURE(status)) + return (status); + o = buf.Pointer; - if(o->Type != ACPI_TYPE_PACKAGE) + if (o->Type != ACPI_TYPE_PACKAGE) { + device_printf(dev, "%s is not a package\n", name); goto error; - + } + elem = o->Package.Elements; - if(elem->Type != ACPI_TYPE_INTEGER) + if (elem->Type != ACPI_TYPE_INTEGER) { + device_printf(dev, "First item in %s is not a count\n", name); + goto error; + } + + if (elem->Integer.Value != o->Package.Count - 1) { + device_printf(dev, "Device count mismatch in %s\n", name); goto error; + } - c = malloc(sizeof(struct acpi_aiboost_component) - + sizeof(struct acpi_aiboost_element) - * (elem->Integer.Value -1), - M_DEVBUF, M_ZERO|M_WAITOK); + c = malloc(sizeof(struct acpi_aiboost_component) + + sizeof(struct acpi_aiboost_element) * elem->Integer.Value, M_DEVBUF, + M_WAITOK | M_ZERO); *comp = c; c->num = elem->Integer.Value; - - for(i = 1 ; i < o->Package.Count; i++){ + + for (i = 1; i < o->Package.Count; i++) { elem = &o->Package.Elements[i]; if (elem->Type == ACPI_TYPE_ANY) { buf2.Pointer = NULL; @@ -132,196 +144,195 @@ status = AcpiEvaluateObject(elem->Reference.Handle, NULL, NULL, &buf2); - if (ACPI_FAILURE(status)){ - printf("FETCH OBJECT\n"); + if (ACPI_FAILURE(status)) { + device_printf(dev, + "Failed to fetch object for %s\n", name); goto error; } subobj = buf2.Pointer; } else if (elem->Type == ACPI_TYPE_PACKAGE) subobj = elem; else { - printf("NO PACKAGE\n"); + device_printf(dev, + "Subitem %d was not a package for %s\n", i, name); goto error; } - if(ACPI_FAILURE(acpi_PkgInt32(subobj,0, &c->elem[i -1].id))){ - printf("ID FAILED\n"); + status = acpi_PkgInt32(subobj, 0, &c->elem[i - 1].id); + if (ACPI_FAILURE(status)) { + device_printf(dev, + "Failed to fetch ID for subobject %d in %s\n", i, + name); goto error; } - status = acpi_PkgStr(subobj, 1, c->elem[i - 1].desc, - sizeof(c->elem[i - 1].desc)); - if(ACPI_FAILURE(status)){ - if(status == E2BIG){ + status = acpi_PkgStr(subobj, 1, c->elem[i - 1].desc, + sizeof(c->elem[i - 1].desc)); + if (ACPI_FAILURE(status)){ + if (status == E2BIG) { c->elem[i - 1].desc[DESCSTRLEN-1] = 0; - }else{ - printf("DESC FAILED %d\n", i-1); + } else { + device_printf(dev, + "Failed to fetch description for subobject %d in %s\n", + i, name); goto error; } } - + if (buf2.Pointer) { AcpiOsFree(buf2.Pointer); buf2.Pointer = NULL; } } - if(buf.Pointer) + if (buf.Pointer) AcpiOsFree(buf.Pointer); - return 0; + return (0); - error: - printf("BAD DATA\n"); - if(buf.Pointer) +error: + if (buf.Pointer) AcpiOsFree(buf.Pointer); - if(buf2.Pointer) + if (buf2.Pointer) AcpiOsFree(buf2.Pointer); - if(c) + if (c) free(c, M_DEVBUF); - return AE_BAD_DATA; + return (AE_BAD_DATA); } -static int +static int acpi_aiboost_get_value(ACPI_HANDLE handle, char *path, UINT32 number) { ACPI_OBJECT arg1, *ret; ACPI_OBJECT_LIST args; ACPI_BUFFER buf; - buf.Length = ACPI_ALLOCATE_BUFFER; - buf.Pointer = 0; int val; arg1.Type = ACPI_TYPE_INTEGER; arg1.Integer.Value = number; args.Count = 1; args.Pointer = &arg1; - - if(ACPI_FAILURE(AcpiEvaluateObject(handle, path, &args, &buf))){ - return -1; - } + buf.Length = ACPI_ALLOCATE_BUFFER; + buf.Pointer = NULL; + if (ACPI_FAILURE(AcpiEvaluateObject(handle, path, &args, &buf))) + return (-1); ret = buf.Pointer; - val = (ret->Type == ACPI_TYPE_INTEGER)? ret->Integer.Value : -1; + if (ret->Type == ACPI_TYPE_INTEGER) + val = ret->Integer.Value; + else + val = -1; AcpiOsFree(buf.Pointer); - return val; + return (val); } -static int acpi_aiboost_temp_sysctl(SYSCTL_HANDLER_ARGS) +static int +acpi_aiboost_temp_sysctl(SYSCTL_HANDLER_ARGS) { - device_t dev = arg1; - int function = oidp->oid_arg2; - int error = 0, val; + device_t dev; + int error, val; + + dev = arg1; ACPI_SERIAL_BEGIN(aiboost); - val = acpi_aiboost_get_value(acpi_get_handle(dev), "RTMP",function ); - error = sysctl_handle_int(oidp, &val, 0 , req); + val = acpi_aiboost_get_value(acpi_get_handle(dev), "RTMP", arg2); + error = sysctl_handle_int(oidp, &val, 0, req); ACPI_SERIAL_END(aiboost); - - return 0; + return (error); } -static int acpi_aiboost_volt_sysctl(SYSCTL_HANDLER_ARGS) +static int +acpi_aiboost_volt_sysctl(SYSCTL_HANDLER_ARGS) { - device_t dev = arg1; - int function = oidp->oid_arg2; - int error = 0, val; + device_t dev; + int error, val; + + dev = arg1; ACPI_SERIAL_BEGIN(aiboost); - val = acpi_aiboost_get_value(acpi_get_handle(dev), "RVLT", function); - error = sysctl_handle_int(oidp, &val, 0 , req); + val = acpi_aiboost_get_value(acpi_get_handle(dev), "RVLT", arg2); + error = sysctl_handle_int(oidp, &val, 0, req); ACPI_SERIAL_END(aiboost); - - return 0; + return (error); } -static int acpi_aiboost_fan_sysctl(SYSCTL_HANDLER_ARGS) +static int +acpi_aiboost_fan_sysctl(SYSCTL_HANDLER_ARGS) { - device_t dev = arg1; - int function = oidp->oid_arg2; - int error = 0, val; + device_t dev; + int error, val; + + dev = arg1; ACPI_SERIAL_BEGIN(aiboost); - val = acpi_aiboost_get_value(acpi_get_handle(dev), "RFAN", function); - error = sysctl_handle_int(oidp, &val, 0 , req); + val = acpi_aiboost_get_value(acpi_get_handle(dev), "RFAN", arg2); + error = sysctl_handle_int(oidp, &val, 0, req); ACPI_SERIAL_END(aiboost); - - return 0; + return (error); } static int acpi_aiboost_probe(device_t dev) { - int ret = ENXIO; + + if (ACPI_ID_PROBE(device_get_parent(dev), dev, abs_id) == NULL) + return (ENXIO); - if (ACPI_ID_PROBE(device_get_parent(dev), dev, abs_id)) { - device_set_desc(dev, "ASUStek AIBOOSTER"); - ret = 0; - } - return (ret); + device_set_desc(dev, "ASUStek AIBOOSTER"); + return (0); } static int acpi_aiboost_attach(device_t dev) { struct acpi_aiboost_softc *sc; - char nambuf[]="tempXXX"; + char nambuf[16]; int i; sc = device_get_softc(dev); - if(ACPI_FAILURE(acpi_aiboost_getcomponent(dev, "TSIF", &sc->temp))) + if (ACPI_FAILURE(acpi_aiboost_getcomponent(dev, "TSIF", &sc->temp))) goto error; - for(i= 0; i < sc->temp->num; i++){ - sprintf(nambuf,"temp%d", i); + for (i = 0; i < sc->temp->num; i++) { + snprintf(nambuf, sizeof(nambuf), "temp%d", i); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, nambuf, - CTLTYPE_INT|CTLFLAG_RD, dev, - sc->temp->elem[i].id, - acpi_aiboost_temp_sysctl, - "I", sc->temp->elem[i].desc); + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + nambuf, CTLTYPE_INT | CTLFLAG_RD, dev, sc->temp->elem[i].id, + acpi_aiboost_temp_sysctl, "I", sc->temp->elem[i].desc); } - if(ACPI_FAILURE(acpi_aiboost_getcomponent(dev, "VSIF", &sc->volt))) + + if (ACPI_FAILURE(acpi_aiboost_getcomponent(dev, "VSIF", &sc->volt))) goto error; - - for(i= 0; i < sc->volt->num; i++){ - sprintf(nambuf,"volt%d", i); + for (i = 0; i < sc->volt->num; i++) { + snprintf(nambuf, sizeof(nambuf), "volt%d", i); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, nambuf, - CTLTYPE_INT|CTLFLAG_RD, dev, - sc->volt->elem[i].id, - acpi_aiboost_volt_sysctl, - "I", sc->volt->elem[i].desc); + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + nambuf, CTLTYPE_INT | CTLFLAG_RD, dev, sc->volt->elem[i].id, + acpi_aiboost_volt_sysctl, "I", sc->volt->elem[i].desc); } - if(ACPI_FAILURE(acpi_aiboost_getcomponent(dev, "FSIF", &sc->fan))) + if (ACPI_FAILURE(acpi_aiboost_getcomponent(dev, "FSIF", &sc->fan))) goto error; - - for(i= 0; i < sc->fan->num; i++){ - sprintf(nambuf,"fan%d", i); + for (i = 0; i < sc->fan->num; i++) { + snprintf(nambuf, sizeof(nambuf), "fan%d", i); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, nambuf, - CTLTYPE_INT|CTLFLAG_RD, dev, - sc->fan->elem[i].id, - acpi_aiboost_fan_sysctl, - "I", sc->fan->elem[i].desc); + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + nambuf, CTLTYPE_INT | CTLFLAG_RD, dev, sc->fan->elem[i].id, + acpi_aiboost_fan_sysctl, "I", sc->fan->elem[i].desc); } - return (0); error: - return EINVAL; + return (EINVAL); } -static int +static int acpi_aiboost_detach(device_t dev) { - struct acpi_aiboost_softc *sc = device_get_softc(dev); + struct acpi_aiboost_softc *sc; - if(sc->temp) + sc = device_get_softc(dev); + if (sc->temp) free(sc->temp, M_DEVBUF); - if(sc->volt) + if (sc->volt) free(sc->volt, M_DEVBUF); - if(sc->fan) + if (sc->fan) free(sc->fan, M_DEVBUF); return (0); } ==== //depot/projects/scottl-camlock/src/sys/dev/aic7xxx/aic79xx_pci.c#9 (text+ko) ==== @@ -46,7 +46,7 @@ #include "aic79xx_inline.h" #else #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/aic7xxx/aic79xx_pci.c,v 1.26 2007/04/17 06:26:24 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aic7xxx/aic79xx_pci.c,v 1.27 2009/10/30 16:23:56 brueffer Exp $"); #include <dev/aic7xxx/aic79xx_osm.h> #include <dev/aic7xxx/aic79xx_inline.h> #endif @@ -89,6 +89,7 @@ #define ID_AHA_39320D_B 0x801C900500419005ull #define ID_AHA_39320D_HP 0x8011900500AC0E11ull #define ID_AHA_39320D_B_HP 0x801C900500AC0E11ull +#define ID_AHA_39320LPE 0x8017900500459005ull #define ID_AIC7902_PCI_REV_A4 0x3 #define ID_AIC7902_PCI_REV_B0 0x10 #define SUBID_HP 0x0E11 @@ -204,6 +205,12 @@ "Adaptec (HP OEM) 39320D Ultra320 SCSI adapter", ahd_aic7902_setup }, + { + ID_AHA_39320LPE, + ID_ALL_MASK, + "Adaptec 39320LPE Ultra320 SCSI adapter", + ahd_aic7902_setup + }, /* Generic chip probes for devices we don't know 'exactly' */ { ID_AIC7901 & ID_9005_GENERIC_MASK, ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-pci.h#20 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.110 2009/10/26 10:00:59 mav Exp $ + * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.111 2009/10/30 20:28:49 mav Exp $ */ /* structure holding chipset config info */ @@ -97,6 +97,7 @@ #define ATA_ADAPTEC_ID 0x9005 #define ATA_ADAPTEC_1420 0x02419005 +#define ATA_ADAPTEC_1430 0x02439005 #define ATA_ATI_ID 0x1002 #define ATA_ATI_IXP200 0x43491002 @@ -216,7 +217,9 @@ #define ATA_M88SX5080 0x508011ab #define ATA_M88SX5081 0x508111ab #define ATA_M88SX6041 0x604111ab +#define ATA_M88SX6042 0x604211ab #define ATA_M88SX6081 0x608111ab +#define ATA_M88SX7042 0x704211ab #define ATA_M88SX6101 0x610111ab #define ATA_M88SX6121 0x612111ab #define ATA_M88SX6145 0x614511ab ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-adaptec.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/chipsets/ata-adaptec.c,v 1.2 2009/06/24 19:49:18 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/chipsets/ata-adaptec.c,v 1.3 2009/10/30 20:28:49 mav Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -53,6 +53,7 @@ /* misc defines */ #define MV_60XX 60 //must match ata_marvell.c's definition +#define MV_7042 72 //must match ata_marvell.c's definition /* @@ -64,6 +65,7 @@ struct ata_pci_controller *ctlr = device_get_softc(dev); static struct ata_chip_id ids[] = {{ ATA_ADAPTEC_1420, 0, 4, MV_60XX, ATA_SA300, "1420SA" }, + { ATA_ADAPTEC_1430, 0, 4, MV_7042, ATA_SA300, "1430SA" }, { 0, 0, 0, 0, 0, 0}}; if (pci_get_vendor(dev) != ATA_ADAPTEC_ID) ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-marvell.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/chipsets/ata-marvell.c,v 1.12 2009/09/22 11:47:21 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/chipsets/ata-marvell.c,v 1.13 2009/10/30 20:28:49 mav Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -67,6 +67,8 @@ /* misc defines */ #define MV_50XX 50 #define MV_60XX 60 +#define MV_6042 62 +#define MV_7042 72 #define MV_61XX 61 @@ -102,7 +104,9 @@ { ATA_M88SX5080, 0, 8, MV_50XX, ATA_SA150, "88SX5080" }, { ATA_M88SX5081, 0, 8, MV_50XX, ATA_SA150, "88SX5081" }, { ATA_M88SX6041, 0, 4, MV_60XX, ATA_SA300, "88SX6041" }, + { ATA_M88SX6042, 0, 4, MV_6042, ATA_SA300, "88SX6042" }, { ATA_M88SX6081, 0, 8, MV_60XX, ATA_SA300, "88SX6081" }, + { ATA_M88SX7042, 0, 4, MV_7042, ATA_SA300, "88SX7042" }, { ATA_M88SX6101, 0, 1, MV_61XX, ATA_UDMA6, "88SX6101" }, { ATA_M88SX6121, 0, 1, MV_61XX, ATA_UDMA6, "88SX6121" }, { ATA_M88SX6145, 0, 2, MV_61XX, ATA_UDMA6, "88SX6145" }, @@ -119,6 +123,8 @@ switch (ctlr->chip->cfg2) { case MV_50XX: case MV_60XX: + case MV_6042: + case MV_7042: ctlr->chipinit = ata_marvell_edma_chipinit; break; case MV_61XX: @@ -251,6 +257,8 @@ ch->r_io[ATA_SCONTROL].offset = 0x00108 + ATA_MV_HOST_BASE(ch); break; case MV_60XX: + case MV_6042: + case MV_7042: ch->r_io[ATA_SSTATUS].res = ctlr->r_res1; ch->r_io[ATA_SSTATUS].offset = 0x02300 + ATA_MV_EDMA_BASE(ch); ch->r_io[ATA_SERROR].res = ctlr->r_res1; @@ -383,35 +391,61 @@ request->dma->sg_bus & 0xffffffff); le32enc(bytep + 1 * sizeof(u_int32_t), (u_int64_t)request->dma->sg_bus >> 32); - le16enc(bytep + 4 * sizeof(u_int16_t), - (request->flags & ATA_R_READ ? 0x01 : 0x00) | (request->tag << 1)); + if (ctlr->chip->cfg2 != MV_6042 && ctlr->chip->cfg2 != MV_7042) { + le16enc(bytep + 4 * sizeof(u_int16_t), + (request->flags & ATA_R_READ ? 0x01 : 0x00) | (request->tag << 1)); + + i = 10; + bytep[i++] = (request->u.ata.count >> 8) & 0xff; + bytep[i++] = 0x10 | ATA_COUNT; + bytep[i++] = request->u.ata.count & 0xff; + bytep[i++] = 0x10 | ATA_COUNT; + + bytep[i++] = (request->u.ata.lba >> 24) & 0xff; + bytep[i++] = 0x10 | ATA_SECTOR; + bytep[i++] = request->u.ata.lba & 0xff; + bytep[i++] = 0x10 | ATA_SECTOR; + + bytep[i++] = (request->u.ata.lba >> 32) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_LSB; + bytep[i++] = (request->u.ata.lba >> 8) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_LSB; + + bytep[i++] = (request->u.ata.lba >> 40) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_MSB; + bytep[i++] = (request->u.ata.lba >> 16) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_MSB; - i = 10; - bytep[i++] = (request->u.ata.count >> 8) & 0xff; - bytep[i++] = 0x10 | ATA_COUNT; - bytep[i++] = request->u.ata.count & 0xff; - bytep[i++] = 0x10 | ATA_COUNT; + bytep[i++] = ATA_D_LBA | ATA_D_IBM | ((request->u.ata.lba >> 24) & 0xf); + bytep[i++] = 0x10 | ATA_DRIVE; - bytep[i++] = (request->u.ata.lba >> 24) & 0xff; - bytep[i++] = 0x10 | ATA_SECTOR; - bytep[i++] = request->u.ata.lba & 0xff; - bytep[i++] = 0x10 | ATA_SECTOR; + bytep[i++] = request->u.ata.command; + bytep[i++] = 0x90 | ATA_COMMAND; + } else { + le32enc(bytep + 2 * sizeof(u_int32_t), + (request->flags & ATA_R_READ ? 0x01 : 0x00) | (request->tag << 1)); - bytep[i++] = (request->u.ata.lba >> 32) & 0xff; - bytep[i++] = 0x10 | ATA_CYL_LSB; - bytep[i++] = (request->u.ata.lba >> 8) & 0xff; - bytep[i++] = 0x10 | ATA_CYL_LSB; + i = 16; + bytep[i++] = 0; + bytep[i++] = 0; + bytep[i++] = request->u.ata.command; + bytep[i++] = request->u.ata.feature & 0xff; - bytep[i++] = (request->u.ata.lba >> 40) & 0xff; - bytep[i++] = 0x10 | ATA_CYL_MSB; - bytep[i++] = (request->u.ata.lba >> 16) & 0xff; - bytep[i++] = 0x10 | ATA_CYL_MSB; + bytep[i++] = request->u.ata.lba & 0xff; + bytep[i++] = (request->u.ata.lba >> 8) & 0xff; + bytep[i++] = (request->u.ata.lba >> 16) & 0xff; + bytep[i++] = ATA_D_LBA | ATA_D_IBM | ((request->u.ata.lba >> 24) & 0x0f); - bytep[i++] = ATA_D_LBA | ATA_D_IBM | ((request->u.ata.lba >> 24) & 0xf); - bytep[i++] = 0x10 | ATA_DRIVE; + bytep[i++] = (request->u.ata.lba >> 24) & 0xff; + bytep[i++] = (request->u.ata.lba >> 32) & 0xff; + bytep[i++] = (request->u.ata.lba >> 40) & 0xff; + bytep[i++] = (request->u.ata.feature >> 8) & 0xff; - bytep[i++] = request->u.ata.command; - bytep[i++] = 0x90 | ATA_COMMAND; + bytep[i++] = request->u.ata.count & 0xff; + bytep[i++] = (request->u.ata.count >> 8) & 0xff; + bytep[i++] = 0; + bytep[i++] = 0; + } bus_dmamap_sync(ch->dma.work_tag, ch->dma.work_map, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); @@ -556,7 +590,8 @@ ch->dma.max_address = BUS_SPACE_MAXADDR; /* chip does not reliably do 64K DMA transfers */ - ch->dma.max_iosize = 64 * DEV_BSIZE; + if (ctlr->chip->cfg2 == MV_50XX || ctlr->chip->cfg2 == MV_60XX) + ch->dma.max_iosize = 64 * DEV_BSIZE; } ATA_DECLARE_DRIVER(ata_marvell); ==== //depot/projects/scottl-camlock/src/sys/dev/drm/drmP.h#13 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.39 2009/08/23 14:33:12 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drmP.h,v 1.40 2009/10/30 16:59:58 rnoland Exp $"); #ifndef _DRM_P_H_ #define _DRM_P_H_ @@ -223,23 +223,9 @@ * DRM_WRITEMEMORYBARRIER() prevents reordering of writes. * DRM_MEMORYBARRIER() prevents reordering of reads and writes. */ -#if defined(__i386__) -#define DRM_READMEMORYBARRIER() __asm __volatile( \ - "lock; addl $0,0(%%esp)" : : : "memory"); -#define DRM_WRITEMEMORYBARRIER() __asm __volatile("" : : : "memory"); -#define DRM_MEMORYBARRIER() __asm __volatile( \ - "lock; addl $0,0(%%esp)" : : : "memory"); -#elif defined(__alpha__) -#define DRM_READMEMORYBARRIER() alpha_mb(); -#define DRM_WRITEMEMORYBARRIER() alpha_wmb(); -#define DRM_MEMORYBARRIER() alpha_mb(); -#elif defined(__amd64__) -#define DRM_READMEMORYBARRIER() __asm __volatile( \ - "lock; addl $0,0(%%rsp)" : : : "memory"); -#define DRM_WRITEMEMORYBARRIER() __asm __volatile("" : : : "memory"); -#define DRM_MEMORYBARRIER() __asm __volatile( \ - "lock; addl $0,0(%%rsp)" : : : "memory"); -#endif +#define DRM_READMEMORYBARRIER() rmb() +#define DRM_WRITEMEMORYBARRIER() wmb() +#define DRM_MEMORYBARRIER() mb() #define DRM_READ8(map, offset) \ *(volatile u_int8_t *)(((vm_offset_t)(map)->handle) + \ ==== //depot/projects/scottl-camlock/src/sys/dev/drm/drm_scatter.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_scatter.c,v 1.10 2009/03/25 01:41:56 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_scatter.c,v 1.12 2009/10/30 18:30:13 rnoland Exp $"); /** @file drm_scatter.c * Allocation of memory for scatter-gather mappings by the graphics chip. @@ -47,79 +47,50 @@ { struct drm_sg_mem *entry; struct drm_dma_handle *dmah; - unsigned long pages; int ret; if (dev->sg) return EINVAL; entry = malloc(sizeof(*entry), DRM_MEM_SGLISTS, M_WAITOK | M_ZERO); - if (!entry) - return ENOMEM; + entry->pages = round_page(request->size) / PAGE_SIZE; + DRM_DEBUG("sg size=%ld pages=%d\n", request->size, entry->pages); - pages = round_page(request->size) / PAGE_SIZE; - DRM_DEBUG("sg size=%ld pages=%ld\n", request->size, pages); - - entry->pages = pages; - - entry->busaddr = malloc(pages * sizeof(*entry->busaddr), DRM_MEM_PAGES, + entry->busaddr = malloc(entry->pages * sizeof(*entry->busaddr), + DRM_MEM_PAGES, M_WAITOK | M_ZERO); + dmah = malloc(sizeof(struct drm_dma_handle), DRM_MEM_DMA, M_WAITOK | M_ZERO); - if (!entry->busaddr) { - free(entry, DRM_MEM_SGLISTS); - return ENOMEM; - } - - dmah = malloc(sizeof(struct drm_dma_handle), DRM_MEM_DMA, - M_ZERO | M_NOWAIT); - if (dmah == NULL) { - free(entry->busaddr, DRM_MEM_PAGES); - free(entry, DRM_MEM_SGLISTS); - return ENOMEM; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910310916.n9V9GHDu037094>