From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 01:08:55 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC5EB106566C; Sun, 1 Nov 2009 01:08:55 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 9D0BB8FC0A; Sun, 1 Nov 2009 01:08:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id nA113cub047894; Sat, 31 Oct 2009 19:03:38 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sat, 31 Oct 2009 19:03:53 -0600 (MDT) Message-Id: <20091031.190353.-332187386.imp@bsdimp.com> To: ed@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <200910311035.n9VAZfIb082932@svn.freebsd.org> References: <200910311035.n9VAZfIb082932@svn.freebsd.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 01:08:56 -0000 In message: <200910311035.n9VAZfIb082932@svn.freebsd.org> Ed Schouten writes: : Author: ed : Date: Sat Oct 31 10:35:41 2009 : New Revision: 198706 : URL: http://svn.freebsd.org/changeset/base/198706 : : Log: : Turn unused structure fields of cdevsw into spares. : : d_uid, d_gid and d_mode are unused, because permissions are stored in : cdevpriv nowadays. d_kind doesn't seem to be used at all. We no longer : keep a list of cdevsw's, so d_list is also unused. : : uid_t and gid_t are 32 bits, but mode_t is 16 bits, Because of alignment : constraints of d_kind, we can safely turn it into three 32-bit integers. : d_kind and d_list is equal in size to three pointers. : : Discussed with: kib Don't we need a D_VERSION bump for this? Warner : Modified: : head/sys/sys/conf.h : : Modified: head/sys/sys/conf.h : ============================================================================== : --- head/sys/sys/conf.h Sat Oct 31 09:03:48 2009 (r198705) : +++ head/sys/sys/conf.h Sat Oct 31 10:35:41 2009 (r198706) : @@ -210,15 +210,13 @@ struct cdevsw { : d_kqfilter_t *d_kqfilter; : d_purge_t *d_purge; : d_mmap_single_t *d_mmap_single; : - uid_t d_uid; : - gid_t d_gid; : - mode_t d_mode; : - const char *d_kind; : + : + int32_t d_spare0[3]; : + void *d_spare1[3]; : : /* These fields should not be messed with by drivers */ : - LIST_ENTRY(cdevsw) d_list; : LIST_HEAD(, cdev) d_devs; : - int d_spare3; : + int d_spare2; : union { : struct cdevsw *gianttrick; : SLIST_ENTRY(cdevsw) postfree_list; : From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 01:12:13 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B73A21065670; Sun, 1 Nov 2009 01:12:13 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 579298FC12; Sun, 1 Nov 2009 01:12:13 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 33DBD1CC4D; Sun, 1 Nov 2009 02:12:12 +0100 (CET) Date: Sun, 1 Nov 2009 02:12:12 +0100 From: Ed Schouten To: "M. Warner Losh" Message-ID: <20091101011212.GG1293@hoeg.nl> References: <200910311035.n9VAZfIb082932@svn.freebsd.org> <20091031.190353.-332187386.imp@bsdimp.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="QHrz2k/ePFTn56xd" Content-Disposition: inline In-Reply-To: <20091031.190353.-332187386.imp@bsdimp.com> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 01:12:13 -0000 --QHrz2k/ePFTn56xd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Warner, * M. Warner Losh wrote: > Don't we need a D_VERSION bump for this? No, we don't. All these fields are not used by drivers, just some old version of the devfs code. I made sure struct cdevsw didn't change in size, so there should be no API nor ABI conflicts. --=20 Ed Schouten WWW: http://80386.nl/ --QHrz2k/ePFTn56xd Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrs4GwACgkQ52SDGA2eCwXXzACZAYt0knmQr/XLxs6BxOjsJALf PS8An1s9qVvAJoQ7gRpy+hAqYndiRjhC =WWlo -----END PGP SIGNATURE----- --QHrz2k/ePFTn56xd-- From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 03:02:36 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE04E106568D; Sun, 1 Nov 2009 03:02:36 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 46F6B8FC08; Sun, 1 Nov 2009 03:02:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id nA12unVm048720; Sat, 31 Oct 2009 20:56:49 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sat, 31 Oct 2009 20:57:04 -0600 (MDT) Message-Id: <20091031.205704.-79135471.imp@bsdimp.com> To: ed@80386.nl From: "M. Warner Losh" In-Reply-To: <20091101011212.GG1293@hoeg.nl> References: <200910311035.n9VAZfIb082932@svn.freebsd.org> <20091031.190353.-332187386.imp@bsdimp.com> <20091101011212.GG1293@hoeg.nl> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 03:02:36 -0000 In message: <20091101011212.GG1293@hoeg.nl> Ed Schouten writes: : Hi Warner, : : * M. Warner Losh wrote: : > Don't we need a D_VERSION bump for this? : : No, we don't. All these fields are not used by drivers, just some old : version of the devfs code. I made sure struct cdevsw didn't change in : size, so there should be no API nor ABI conflicts. On all platforms? A version bump is trivial... Warner From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 08:20:30 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1F661065676; Sun, 1 Nov 2009 08:20:30 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9145B8FC15; Sun, 1 Nov 2009 08:20:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA18KUl8017210; Sun, 1 Nov 2009 08:20:30 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA18KUj4017208; Sun, 1 Nov 2009 08:20:30 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <200911010820.nA18KUj4017208@svn.freebsd.org> From: Roman Divacky Date: Sun, 1 Nov 2009 08:20:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198741 - head X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 08:20:30 -0000 Author: rdivacky Date: Sun Nov 1 08:20:30 2009 New Revision: 198741 URL: http://svn.freebsd.org/changeset/base/198741 Log: Replace -iprefix with -isystem. We only need alternative header files search path and thus -isystem is sufficient. -iprefix is meant to do something entirely different. Approved by: ed (mentor) OKed by: ru, kan Tested by: make universe Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sun Nov 1 04:57:41 2009 (r198740) +++ head/Makefile.inc1 Sun Nov 1 08:20:30 2009 (r198741) @@ -272,7 +272,7 @@ LIB32CPUFLAGS= -march=i686 -mmmx -msse - LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} .endif LIB32FLAGS= -m32 ${LIB32CPUFLAGS} -mfancy-math-387 -DCOMPAT_32BIT \ - -iprefix ${LIB32TMP}/usr/ \ + -isystem ${LIB32TMP}/usr/include/ \ -L${LIB32TMP}/usr/lib32 \ -B${LIB32TMP}/usr/lib32 From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 11:31:07 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C40E106566C; Sun, 1 Nov 2009 11:31:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5B5D48FC0A; Sun, 1 Nov 2009 11:31:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1BV798022281; Sun, 1 Nov 2009 11:31:07 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1BV6lO022276; Sun, 1 Nov 2009 11:31:06 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911011131.nA1BV6lO022276@svn.freebsd.org> From: Alexander Motin Date: Sun, 1 Nov 2009 11:31:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198748 - in head/sys/cam: . ata scsi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 11:31:07 -0000 Author: mav Date: Sun Nov 1 11:31:06 2009 New Revision: 198748 URL: http://svn.freebsd.org/changeset/base/198748 Log: MFp4: Fix reference counting bug, when device unreferenced before then invalidated. To do it, do not handle validity flag as another reference, but explicitly modify reference count each time flag is modified. Discovered by: thompsa Modified: head/sys/cam/ata/ata_xpt.c head/sys/cam/cam_xpt.c head/sys/cam/cam_xpt_internal.h head/sys/cam/scsi/scsi_xpt.c Modified: head/sys/cam/ata/ata_xpt.c ============================================================================== --- head/sys/cam/ata/ata_xpt.c Sun Nov 1 10:57:07 2009 (r198747) +++ head/sys/cam/ata/ata_xpt.c Sun Nov 1 11:31:06 2009 (r198748) @@ -733,6 +733,7 @@ noerror: case PROBE_SET_MULTI: if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, @@ -777,6 +778,7 @@ noerror: ata_device_transport(path); if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); @@ -810,6 +812,7 @@ noerror: path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; xpt_action(done_ccb); xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, @@ -1485,8 +1488,10 @@ ata_dev_async(u_int32_t async_code, stru CAM_EXPECT_INQ_CHANGE, NULL); } xpt_release_path(&newpath); - } else if (async_code == AC_LOST_DEVICE) { + } else if (async_code == AC_LOST_DEVICE && + (device->flags & CAM_DEV_UNCONFIGURED) == 0) { device->flags |= CAM_DEV_UNCONFIGURED; + xpt_release_device(device); } else if (async_code == AC_TRANSFER_NEG) { struct ccb_trans_settings *settings; Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Sun Nov 1 10:57:07 2009 (r198747) +++ head/sys/cam/cam_xpt.c Sun Nov 1 11:31:06 2009 (r198748) @@ -217,9 +217,7 @@ static void xpt_release_devq_device(str int run_queue); static struct cam_et* xpt_alloc_target(struct cam_eb *bus, target_id_t target_id); -static void xpt_release_target(struct cam_eb *bus, struct cam_et *target); -static void xpt_release_device(struct cam_eb *bus, struct cam_et *target, - struct cam_ed *device); +static void xpt_release_target(struct cam_et *target); static struct cam_eb* xpt_find_bus(path_id_t path_id); static struct cam_et* @@ -3521,9 +3519,9 @@ xpt_compile_path(struct cam_path *new_pa CAM_DEBUG(new_path, CAM_DEBUG_TRACE, ("xpt_compile_path\n")); } else { if (device != NULL) - xpt_release_device(bus, target, device); + xpt_release_device(device); if (target != NULL) - xpt_release_target(bus, target); + xpt_release_target(target); if (bus != NULL) xpt_release_bus(bus); } @@ -3535,11 +3533,11 @@ xpt_release_path(struct cam_path *path) { CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_release_path\n")); if (path->device != NULL) { - xpt_release_device(path->bus, path->target, path->device); + xpt_release_device(path->device); path->device = NULL; } if (path->target != NULL) { - xpt_release_target(path->bus, path->target); + xpt_release_target(path->target); path->target = NULL; } if (path->bus != NULL) { @@ -4375,15 +4373,15 @@ xpt_alloc_target(struct cam_eb *bus, tar } static void -xpt_release_target(struct cam_eb *bus, struct cam_et *target) +xpt_release_target(struct cam_et *target) { if ((--target->refcount == 0) && (TAILQ_FIRST(&target->ed_entries) == NULL)) { - TAILQ_REMOVE(&bus->et_entries, target, links); - bus->generation++; + TAILQ_REMOVE(&target->bus->et_entries, target, links); + target->bus->generation++; + xpt_release_bus(target->bus); free(target, M_CAMXPT); - xpt_release_bus(bus); } } @@ -4470,13 +4468,18 @@ xpt_alloc_device(struct cam_eb *bus, str return (device); } -static void -xpt_release_device(struct cam_eb *bus, struct cam_et *target, - struct cam_ed *device) +void +xpt_acquire_device(struct cam_ed *device) +{ + + device->refcount++; +} + +void +xpt_release_device(struct cam_ed *device) { - if ((--device->refcount == 0) - && ((device->flags & CAM_DEV_UNCONFIGURED) != 0)) { + if (--device->refcount == 0) { struct cam_devq *devq; if (device->alloc_ccb_entry.pinfo.index != CAM_UNQUEUED_INDEX @@ -4486,16 +4489,16 @@ xpt_release_device(struct cam_eb *bus, s if ((device->flags & CAM_DEV_REL_TIMEOUT_PENDING) != 0) callout_stop(&device->callout); - TAILQ_REMOVE(&target->ed_entries, device,links); - target->generation++; - bus->sim->max_ccbs -= device->ccbq.devq_openings; + TAILQ_REMOVE(&device->target->ed_entries, device,links); + device->target->generation++; + device->target->bus->sim->max_ccbs -= device->ccbq.devq_openings; /* Release our slot in the devq */ - devq = bus->sim->devq; + devq = device->target->bus->sim->devq; cam_devq_resize(devq, devq->alloc_queue.array_size - 1); camq_fini(&device->drvq); cam_ccbq_fini(&device->ccbq); + xpt_release_target(device->target); free(device, M_CAMXPT); - xpt_release_target(bus, target); } } Modified: head/sys/cam/cam_xpt_internal.h ============================================================================== --- head/sys/cam/cam_xpt_internal.h Sun Nov 1 10:57:07 2009 (r198747) +++ head/sys/cam/cam_xpt_internal.h Sun Nov 1 11:31:06 2009 (r198748) @@ -37,9 +37,7 @@ struct cam_ed; typedef struct cam_ed * (*xpt_alloc_device_func)(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id); -typedef void (*xpt_release_device_func)(struct cam_eb *bus, - struct cam_et *target, - struct cam_ed *device); +typedef void (*xpt_release_device_func)(struct cam_ed *device); typedef void (*xpt_action_func)(union ccb *start_ccb); typedef void (*xpt_dev_async_func)(u_int32_t async_code, struct cam_eb *bus, @@ -172,6 +170,8 @@ struct xpt_xport * ata_get_xport(void); struct cam_ed * xpt_alloc_device(struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id); +void xpt_acquire_device(struct cam_ed *device); +void xpt_release_device(struct cam_ed *device); void xpt_run_dev_sendq(struct cam_eb *bus); int xpt_schedule_dev(struct camq *queue, cam_pinfo *dev_pinfo, u_int32_t new_priority); Modified: head/sys/cam/scsi/scsi_xpt.c ============================================================================== --- head/sys/cam/scsi/scsi_xpt.c Sun Nov 1 10:57:07 2009 (r198747) +++ head/sys/cam/scsi/scsi_xpt.c Sun Nov 1 11:31:06 2009 (r198748) @@ -1076,8 +1076,10 @@ probedone(struct cam_periph *periph, uni else PROBE_SET_ACTION(softc, PROBE_SERIAL_NUM_0); - path->device->flags &= ~CAM_DEV_UNCONFIGURED; - + if (path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); + } xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); return; @@ -1336,8 +1338,12 @@ probedone(struct cam_periph *periph, uni CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Leave Domain Validation\n")); } + if (path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); + } path->device->flags &= - ~(CAM_DEV_UNCONFIGURED|CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); + ~(CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); if ((softc->flags & PROBE_NO_ANNOUNCE) == 0) { /* Inform the XPT that a new device has been found */ done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; @@ -1387,8 +1393,12 @@ probedone(struct cam_periph *periph, uni CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Leave Domain Validation Successfully\n")); } + if (path->device->flags & CAM_DEV_UNCONFIGURED) { + path->device->flags &= ~CAM_DEV_UNCONFIGURED; + xpt_acquire_device(path->device); + } path->device->flags &= - ~(CAM_DEV_UNCONFIGURED|CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); + ~(CAM_DEV_IN_DV|CAM_DEV_DV_HIT_BOTTOM); if ((softc->flags & PROBE_NO_ANNOUNCE) == 0) { /* Inform the XPT that a new device has been found */ done_ccb->ccb_h.func_code = XPT_GDEV_TYPE; @@ -2375,8 +2385,10 @@ scsi_dev_async(u_int32_t async_code, str CAM_EXPECT_INQ_CHANGE, NULL); } xpt_release_path(&newpath); - } else if (async_code == AC_LOST_DEVICE) { + } else if (async_code == AC_LOST_DEVICE && + (device->flags & CAM_DEV_UNCONFIGURED) == 0) { device->flags |= CAM_DEV_UNCONFIGURED; + xpt_release_device(device); } else if (async_code == AC_TRANSFER_NEG) { struct ccb_trans_settings *settings; From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 11:39:08 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B2AE1065676; Sun, 1 Nov 2009 11:39:08 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3AC7C8FC08; Sun, 1 Nov 2009 11:39:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1Bd8mU022527; Sun, 1 Nov 2009 11:39:08 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1Bd8nf022525; Sun, 1 Nov 2009 11:39:08 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200911011139.nA1Bd8nf022525@svn.freebsd.org> From: Christian Brueffer Date: Sun, 1 Nov 2009 11:39:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198750 - head/usr.sbin/usbconfig X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 11:39:08 -0000 Author: brueffer Date: Sun Nov 1 11:39:07 2009 New Revision: 198750 URL: http://svn.freebsd.org/changeset/base/198750 Log: Expand DESCRIPTION and a basic EXAMPLES section. PR: 139605 Submitted by: Warren Block MFC after: 1 week Modified: head/usr.sbin/usbconfig/usbconfig.8 Modified: head/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- head/usr.sbin/usbconfig/usbconfig.8 Sun Nov 1 11:34:13 2009 (r198749) +++ head/usr.sbin/usbconfig/usbconfig.8 Sun Nov 1 11:39:07 2009 (r198750) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd Sep 28, 2008 +.Dd November 1, 2009 .Dt USBCONFIG 8 .Os .Sh NAME @@ -49,5 +49,13 @@ Should only be used in conjunction with .It Fl h Show help and available commands. .El +.Pp +When called without options, +.Nm +prints a list of all available USB devices. +.Sh EXAMPLES +Show information about the device on USB bus 1 at address 2: +.Pp +.Dl usbconfig -u 1 -a 2 dump_info .Sh SEE ALSO .Xr usb 4 From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 13:06:15 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8FC2C106566B; Sun, 1 Nov 2009 13:06:15 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7F84A8FC19; Sun, 1 Nov 2009 13:06:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1D6Fjm024213; Sun, 1 Nov 2009 13:06:15 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1D6F4x024211; Sun, 1 Nov 2009 13:06:15 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911011306.nA1D6F4x024211@svn.freebsd.org> From: Alexander Motin Date: Sun, 1 Nov 2009 13:06:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198752 - head/sys/dev/ata/chipsets X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 13:06:15 -0000 Author: mav Date: Sun Nov 1 13:06:15 2009 New Revision: 198752 URL: http://svn.freebsd.org/changeset/base/198752 Log: MFp4: Allow SATA1 SiI chips to do full-sized DMA. Specification tells that we may release DMA constrants even more, but it require some additional handling. Modified: head/sys/dev/ata/chipsets/ata-siliconimage.c Modified: head/sys/dev/ata/chipsets/ata-siliconimage.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-siliconimage.c Sun Nov 1 11:41:20 2009 (r198751) +++ head/sys/dev/ata/chipsets/ata-siliconimage.c Sun Nov 1 13:06:15 2009 (r198752) @@ -340,6 +340,7 @@ ata_sii_ch_attach(device_t dev) ATA_OUTL(ctlr->r_res2, 0x148 + (unit01 << 7) + (unit10 << 8),(1 << 16)); } + ch->dma.max_iosize = (ATA_DMA_ENTRIES - 1) * PAGE_SIZE; if (ctlr->chip->cfg2 & SII_BUG) { /* work around errata in early chips */ ch->dma.boundary = 8192; From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 15:15:44 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E34E51065696; Sun, 1 Nov 2009 15:15:44 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id BFE048FC20; Sun, 1 Nov 2009 15:15:44 +0000 (UTC) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 5758646B06; Sun, 1 Nov 2009 10:15:44 -0500 (EST) Date: Sun, 1 Nov 2009 15:15:44 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Ed Schouten In-Reply-To: <200910311035.n9VAZfIb082932@svn.freebsd.org> Message-ID: References: <200910311035.n9VAZfIb082932@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 15:15:45 -0000 On Sat, 31 Oct 2009, Ed Schouten wrote: > Turn unused structure fields of cdevsw into spares. > > d_uid, d_gid and d_mode are unused, because permissions are stored in > cdevpriv nowadays. d_kind doesn't seem to be used at all. We no longer > keep a list of cdevsw's, so d_list is also unused. > > uid_t and gid_t are 32 bits, but mode_t is 16 bits, Because of alignment > constraints of d_kind, we can safely turn it into three 32-bit integers. > d_kind and d_list is equal in size to three pointers. The underlying change seems fine, especially in -CURRENT, but I'm confused by the paragraph here on alignment and safety. What do you mean by safe, and does it matter? From a casual glance (perhaps mistaken), it looks like this changes the KBI, so all modules declaring struct cdevsw will need to be rebuilt. Robert N M Watson Computer Laboratory University of Cambridge > > Discussed with: kib > > Modified: > head/sys/sys/conf.h > > Modified: head/sys/sys/conf.h > ============================================================================== > --- head/sys/sys/conf.h Sat Oct 31 09:03:48 2009 (r198705) > +++ head/sys/sys/conf.h Sat Oct 31 10:35:41 2009 (r198706) > @@ -210,15 +210,13 @@ struct cdevsw { > d_kqfilter_t *d_kqfilter; > d_purge_t *d_purge; > d_mmap_single_t *d_mmap_single; > - uid_t d_uid; > - gid_t d_gid; > - mode_t d_mode; > - const char *d_kind; > + > + int32_t d_spare0[3]; > + void *d_spare1[3]; > > /* These fields should not be messed with by drivers */ > - LIST_ENTRY(cdevsw) d_list; > LIST_HEAD(, cdev) d_devs; > - int d_spare3; > + int d_spare2; > union { > struct cdevsw *gianttrick; > SLIST_ENTRY(cdevsw) postfree_list; > From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 15:33:40 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E1556106566C; Sun, 1 Nov 2009 15:33:40 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 824808FC0A; Sun, 1 Nov 2009 15:33:40 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 515981CF70; Sun, 1 Nov 2009 16:33:39 +0100 (CET) Date: Sun, 1 Nov 2009 16:33:39 +0100 From: Ed Schouten To: Robert Watson Message-ID: <20091101153339.GH1293@hoeg.nl> References: <200910311035.n9VAZfIb082932@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Bina0ufSB9dLMnVr" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 15:33:41 -0000 --Bina0ufSB9dLMnVr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Robert, * Robert Watson wrote: > The underlying change seems fine, especially in -CURRENT, but I'm > confused by the paragraph here on alignment and safety. What do you > mean by safe, and does it matter? With safe I mean that all useful members still begin at the same offset within the structure. I'm not sure whether it matters at all, because I can imagine d_devs could be moved around without having any effect, but I'm not going to make any predictions on that. > From a casual glance (perhaps mistaken), it looks like this changes > the KBI, so all modules declaring struct cdevsw will need to be > rebuilt. It shouldn't, right? - uid_t d_uid; - gid_t d_gid; - mode_t d_mode; - const char *d_kind; + + int32_t d_spare0[3]; + void *d_spare1[3]; /* These fields should not be messed with by drivers */ - LIST_ENTRY(cdevsw) d_list; d_uid, d_gid and d_mode is equal to: int32_t d_uid; int32_t d_gid; int16_t d_mode; Because d_kind is a pointer, there will be a hole in the structure of at least 2 bytes (maybe even 6), which means we can safely extend d_mode to 32 bits as well. I could have decided to leave it at uint16_t, but that would only obfuscate it even more when we would try to reclaim some space there. d_list is just two pointers, so I merged it with d_kind into an array of three pointers. --=20 Ed Schouten WWW: http://80386.nl/ --Bina0ufSB9dLMnVr Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrtqlMACgkQ52SDGA2eCwUPBgCfXSx7mkhM4zu3hSCN+jcucGxC M38An0vDiD4tkSSbYUHnG4MEDC4FOyOT =K5yx -----END PGP SIGNATURE----- --Bina0ufSB9dLMnVr-- From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 16:15:21 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEECB1065676; Sun, 1 Nov 2009 16:15:21 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id B95548FC13; Sun, 1 Nov 2009 16:15:21 +0000 (UTC) Received: from [192.168.2.101] (host217-43-176-60.range217-43.btcentralplus.com [217.43.176.60]) by cyrus.watson.org (Postfix) with ESMTPSA id BF2BB46B2A; Sun, 1 Nov 2009 11:15:20 -0500 (EST) Mime-Version: 1.0 (Apple Message framework v1076) Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes From: "Robert N. M. Watson" In-Reply-To: <20091101153339.GH1293@hoeg.nl> Date: Sun, 1 Nov 2009 16:15:18 +0000 Content-Transfer-Encoding: 7bit Message-Id: References: <200910311035.n9VAZfIb082932@svn.freebsd.org> <20091101153339.GH1293@hoeg.nl> To: Ed Schouten X-Mailer: Apple Mail (2.1076) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 16:15:22 -0000 On 1 Nov 2009, at 15:33, Ed Schouten wrote: > Because d_kind is a pointer, there will be a hole in the structure > of at > least 2 bytes (maybe even 6), which means we can safely extend > d_mode to > 32 bits as well. I could have decided to leave it at uint16_t, but > that > would only obfuscate it even more when we would try to reclaim some > space there. > > d_list is just two pointers, so I merged it with d_kind into an > array of > three pointers No, you're right, and I was mistaken, it seems fine on i386 and amd64. And, at least here, d_devs is at the same offset on both architectures. The only really "weird" architecture is arm, which I believe aligns char and short to 32-bit, but that should be OK here I think as well. Robert From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 18:25:11 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA8B71065676; Sun, 1 Nov 2009 18:25:11 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A98CF8FC12; Sun, 1 Nov 2009 18:25:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1IPBgi031335; Sun, 1 Nov 2009 18:25:11 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1IPBQ2031333; Sun, 1 Nov 2009 18:25:11 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200911011825.nA1IPBQ2031333@svn.freebsd.org> From: Christian Brueffer Date: Sun, 1 Nov 2009 18:25:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 18:25:11 -0000 Author: brueffer Date: Sun Nov 1 18:25:11 2009 New Revision: 198768 URL: http://svn.freebsd.org/changeset/base/198768 Log: Refine r198714, it's not as easy as just leaving the major number zero. Submitted by: ed MFC after: 1 week Modified: head/sbin/mknod/mknod.8 Modified: head/sbin/mknod/mknod.8 ============================================================================== --- head/sbin/mknod/mknod.8 Sun Nov 1 18:19:00 2009 (r198767) +++ head/sbin/mknod/mknod.8 Sun Nov 1 18:25:11 2009 (r198768) @@ -74,7 +74,6 @@ and pseudo devices, and are type .It Ar major The major device number is an integer number which tells the kernel which device driver entry point to use. -This is a compatibility shim and should be left zero. .It Ar minor The minor device number tells the kernel which subunit the node corresponds to on the device; for example, From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 18:43:37 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 335131065676; Sun, 1 Nov 2009 18:43:37 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (skuns.zoral.com.ua [91.193.166.194]) by mx1.freebsd.org (Postfix) with ESMTP id 7D4858FC18; Sun, 1 Nov 2009 18:43:36 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id nA1IhNhf004455 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 1 Nov 2009 20:43:23 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id nA1IhNa6004433; Sun, 1 Nov 2009 20:43:23 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id nA1IhM6g004432; Sun, 1 Nov 2009 20:43:22 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 1 Nov 2009 20:43:22 +0200 From: Kostik Belousov To: Christian Brueffer Message-ID: <20091101184322.GP2147@deviant.kiev.zoral.com.ua> References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="rJ8inJ6ig7iY3YX9" Content-Disposition: inline In-Reply-To: <200911011825.nA1IPBQ2031333@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 18:43:37 -0000 --rJ8inJ6ig7iY3YX9 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Nov 01, 2009 at 06:25:11PM +0000, Christian Brueffer wrote: > Author: brueffer > Date: Sun Nov 1 18:25:11 2009 > New Revision: 198768 > URL: http://svn.freebsd.org/changeset/base/198768 >=20 > Log: > Refine r198714, it's not as easy as just leaving the major number zero. > =20 > Submitted by: ed > MFC after: 1 week >=20 > Modified: > head/sbin/mknod/mknod.8 >=20 > Modified: head/sbin/mknod/mknod.8 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sbin/mknod/mknod.8 Sun Nov 1 18:19:00 2009 (r198767) > +++ head/sbin/mknod/mknod.8 Sun Nov 1 18:25:11 2009 (r198768) > @@ -74,7 +74,6 @@ and pseudo devices, and are type > .It Ar major > The major device number is an integer number which tells the kernel > which device driver entry point to use. > -This is a compatibility shim and should be left zero. > .It Ar minor > The minor device number tells the kernel which subunit > the node corresponds to on the device; for example, It seems that description of majors/minors there is absolutely irrelevant to the freebsd device nodes. Devfs simply does not work this way anymore for long time. Moreover, you cannot create special node that would become a node used to access device driver in the freebsd. The only use that is left for mknod c|b is to create special nodes on the filesystems exported by NFS for other un*xes. --rJ8inJ6ig7iY3YX9 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrt1soACgkQC3+MBN1Mb4gYdgCfVRG9fAgxWvdhXDPTpd9xRiCA 2zUAn0VejdTxf0D8KBwijJXL3VXhVJSa =6dAU -----END PGP SIGNATURE----- --rJ8inJ6ig7iY3YX9-- From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 20:14:28 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF1EC106566B; Sun, 1 Nov 2009 20:14:28 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: from monday.kientzle.com (kientzle.com [66.166.149.50]) by mx1.freebsd.org (Postfix) with ESMTP id BE8258FC12; Sun, 1 Nov 2009 20:14:28 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.3/8.14.3) id nA1KESC4079780; Sun, 1 Nov 2009 20:14:28 GMT (envelope-from kientzle@freebsd.org) Received: from dark.x.kientzle.com (fw2.kientzle.com [10.123.1.2]) by kientzle.com with SMTP id ad5xuba7yk3cyq4r4amswifb9a; Sun, 01 Nov 2009 20:14:28 +0000 (UTC) (envelope-from kientzle@freebsd.org) Message-ID: <4AEDEC24.2000206@freebsd.org> Date: Sun, 01 Nov 2009 12:14:28 -0800 From: Tim Kientzle User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.21) Gecko/20090601 SeaMonkey/1.1.16 MIME-Version: 1.0 To: Kostik Belousov References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> In-Reply-To: <20091101184322.GP2147@deviant.kiev.zoral.com.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 20:14:29 -0000 Kostik Belousov wrote: > On Sun, Nov 01, 2009 at 06:25:11PM +0000, Christian Brueffer wrote: >> Author: brueffer >> Date: Sun Nov 1 18:25:11 2009 >> New Revision: 198768 >> URL: http://svn.freebsd.org/changeset/base/198768 >> >> Log: >> Refine r198714, it's not as easy as just leaving the major number zero. >> >> Submitted by: ed >> MFC after: 1 week >> > > Moreover, you cannot create special node that would become a node used to > access device driver in the freebsd. > > The only use that is left for mknod c|b is to create special nodes on > the filesystems exported by NFS for other un*xes. I wonder if mknod c|b should print a warning? Tim From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 20:22:43 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE37A1065676; Sun, 1 Nov 2009 20:22:43 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 5CCC78FC12; Sun, 1 Nov 2009 20:22:43 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 9A6951CD0A; Sun, 1 Nov 2009 21:22:42 +0100 (CET) Date: Sun, 1 Nov 2009 21:22:42 +0100 From: Ed Schouten To: Kostik Belousov Message-ID: <20091101202242.GK1293@hoeg.nl> References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="I2AcQh+/kfs26T/w" Content-Disposition: inline In-Reply-To: <20091101184322.GP2147@deviant.kiev.zoral.com.ua> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 20:22:43 -0000 --I2AcQh+/kfs26T/w Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Kostik Belousov wrote: > It seems that description of majors/minors there is absolutely irrelevant > to the freebsd device nodes. Devfs simply does not work this way anymore > for long time. Which is why I proposed changing these sentences to the past tense, i.e.: The major device number is an integer number which tells the kernel which device driver entry point to use. should become: The major device number is an integer number which used to tell the kernel which device driver entry point to use. and: The minor device number tells the kernel which subunit the node corresponds to on the device; for example, should become: The minor device number used to tell the kernel which subunit the node corresponds to on the device; for example, Because there are also various discrepancies between how FreeBSD and not-FreeBSD divide dev_t's into major and minor numbers, I would almost suggest merging mknod(8)'s major and minor argument into one, namely a (hexa)decimal 32-bit value. --=20 Ed Schouten WWW: http://80386.nl/ --I2AcQh+/kfs26T/w Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrt7hIACgkQ52SDGA2eCwVbyACeMx9ujeGDnHiO/XYo06QTZNqA meUAn195PEQuYcNbrmmTv/qa64AjE1a3 =/4bR -----END PGP SIGNATURE----- --I2AcQh+/kfs26T/w-- From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 21:03:51 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18F351065670; Sun, 1 Nov 2009 21:03:51 +0000 (UTC) (envelope-from andy@fud.org.nz) Received: from mail-vw0-f173.google.com (mail-vw0-f173.google.com [209.85.212.173]) by mx1.freebsd.org (Postfix) with ESMTP id 7386E8FC15; Sun, 1 Nov 2009 21:03:50 +0000 (UTC) Received: by vws3 with SMTP id 3so1070878vws.3 for ; Sun, 01 Nov 2009 13:03:49 -0800 (PST) MIME-Version: 1.0 Sender: andy@fud.org.nz Received: by 10.220.121.155 with SMTP id h27mr4140381vcr.80.1257109429307; Sun, 01 Nov 2009 13:03:49 -0800 (PST) In-Reply-To: <200911011131.nA1BV6lO022276@svn.freebsd.org> References: <200911011131.nA1BV6lO022276@svn.freebsd.org> Date: Mon, 2 Nov 2009 10:03:49 +1300 X-Google-Sender-Auth: a4aed67d5d0713c3 Message-ID: <1280352d0911011303g1c07ec48o7782fc8974e65fa7@mail.gmail.com> From: Andrew Thompson To: Alexander Motin Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198748 - in head/sys/cam: . ata scsi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 21:03:51 -0000 2009/11/2 Alexander Motin : > Author: mav > Date: Sun Nov =A01 11:31:06 2009 > New Revision: 198748 > URL: http://svn.freebsd.org/changeset/base/198748 > > Log: > =A0MFp4: > =A0Fix reference counting bug, when device unreferenced before then > =A0invalidated. To do it, do not handle validity flag as another > =A0reference, but explicitly modify reference count each time flag is > =A0modified. > > =A0Discovered by: =A0 =A0 =A0 =A0thompsa Thanks! From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 21:41:44 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D3E5106566C; Sun, 1 Nov 2009 21:41:44 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C0918FC14; Sun, 1 Nov 2009 21:41:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1Lfi91036064; Sun, 1 Nov 2009 21:41:44 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1Lfi8r036062; Sun, 1 Nov 2009 21:41:44 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200911012141.nA1Lfi8r036062@svn.freebsd.org> From: Andrew Thompson Date: Sun, 1 Nov 2009 21:41:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198774 - head/sys/dev/usb/serial X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 21:41:44 -0000 Author: thompsa Date: Sun Nov 1 21:41:44 2009 New Revision: 198774 URL: http://svn.freebsd.org/changeset/base/198774 Log: Check unit number and provide string name for consdev. Submitted by: HPS Modified: head/sys/dev/usb/serial/usb_serial.c Modified: head/sys/dev/usb/serial/usb_serial.c ============================================================================== --- head/sys/dev/usb/serial/usb_serial.c Sun Nov 1 20:24:17 2009 (r198773) +++ head/sys/dev/usb/serial/usb_serial.c Sun Nov 1 21:41:44 2009 (r198774) @@ -1300,7 +1300,12 @@ CONSOLE_DRIVER(ucom); static void ucom_cnprobe(struct consdev *cp) { - cp->cn_pri = CN_NORMAL; + if (ucom_cons_unit != -1) + cp->cn_pri = CN_NORMAL; + else + cp->cn_pri = CN_DEAD; + + strlcpy(cp->cn_name, "ucom", sizeof(cp->cn_name)); } static void From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 21:44:38 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5EE61065670; Sun, 1 Nov 2009 21:44:38 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C4A928FC13; Sun, 1 Nov 2009 21:44:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1LibJR036181; Sun, 1 Nov 2009 21:44:37 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1LiboX036178; Sun, 1 Nov 2009 21:44:37 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200911012144.nA1LiboX036178@svn.freebsd.org> From: Andrew Thompson Date: Sun, 1 Nov 2009 21:44:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198775 - head/sys/dev/usb X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 21:44:38 -0000 Author: thompsa Date: Sun Nov 1 21:44:37 2009 New Revision: 198775 URL: http://svn.freebsd.org/changeset/base/198775 Log: Fix a corner case where usbd_transfer_drain() can return too early if the callback has dropped the mutex, leading to a panic. Submitted by: HPS MFC after: 3 days Modified: head/sys/dev/usb/usb_core.h head/sys/dev/usb/usb_transfer.c Modified: head/sys/dev/usb/usb_core.h ============================================================================== --- head/sys/dev/usb/usb_core.h Sun Nov 1 21:41:44 2009 (r198774) +++ head/sys/dev/usb/usb_core.h Sun Nov 1 21:44:37 2009 (r198775) @@ -112,6 +112,7 @@ struct usb_xfer_flags_int { uint8_t curr_dma_set:1; /* used by USB HC/DC driver */ uint8_t can_cancel_immed:1; /* set if USB transfer can be * cancelled immediately */ + uint8_t doing_callback:1; /* set if executing the callback */ }; /* Modified: head/sys/dev/usb/usb_transfer.c ============================================================================== --- head/sys/dev/usb/usb_transfer.c Sun Nov 1 21:41:44 2009 (r198774) +++ head/sys/dev/usb/usb_transfer.c Sun Nov 1 21:44:37 2009 (r198775) @@ -1797,8 +1797,18 @@ usbd_transfer_drain(struct usb_xfer *xfe usbd_transfer_stop(xfer); - while (usbd_transfer_pending(xfer)) { + while (usbd_transfer_pending(xfer) || + xfer->flags_int.doing_callback) { + + /* + * It is allowed that the callback can drop its + * transfer mutex. In that case checking only + * "usbd_transfer_pending()" is not enough to tell if + * the USB transfer is fully drained. We also need to + * check the internal "doing_callback" flag. + */ xfer->flags_int.draining = 1; + /* * Wait until the current outstanding USB * transfer is complete ! @@ -2043,6 +2053,9 @@ usbd_callback_wrapper(struct usb_xfer_qu /* get next USB transfer in the queue */ info->done_q.curr = NULL; + /* set flag in case of drain */ + xfer->flags_int.doing_callback = 1; + USB_BUS_UNLOCK(info->bus); USB_BUS_LOCK_ASSERT(info->bus, MA_NOTOWNED); @@ -2095,12 +2108,17 @@ usbd_callback_wrapper(struct usb_xfer_qu if ((!xfer->flags_int.open) && (xfer->flags_int.started) && (xfer->usb_state == USB_ST_ERROR)) { + /* clear flag in case of drain */ + xfer->flags_int.doing_callback = 0; /* try to loop, but not recursivly */ usb_command_wrapper(&info->done_q, xfer); return; } done: + /* clear flag in case of drain */ + xfer->flags_int.doing_callback = 0; + /* * Check if we are draining. */ From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 21:48:18 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E1D8B1065672; Sun, 1 Nov 2009 21:48:18 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D08328FC0C; Sun, 1 Nov 2009 21:48:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA1LmIjT036295; Sun, 1 Nov 2009 21:48:18 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA1LmI6R036292; Sun, 1 Nov 2009 21:48:18 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200911012148.nA1LmI6R036292@svn.freebsd.org> From: Andrew Thompson Date: Sun, 1 Nov 2009 21:48:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198776 - head/sys/dev/usb X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 21:48:19 -0000 Author: thompsa Date: Sun Nov 1 21:48:18 2009 New Revision: 198776 URL: http://svn.freebsd.org/changeset/base/198776 Log: - Add usb_fill_bulk_urb() and usb_bulk_msg() linux compat functions [1] - Don't write actual length if the actual length pointer is NULL [2] - correct Linux Compatibility error codes for short isochronous IN transfers and make status field signed. Submitted by: Leunam Elebek [1], Manuel Gebele [2] Modified: head/sys/dev/usb/usb_compat_linux.c head/sys/dev/usb/usb_compat_linux.h Modified: head/sys/dev/usb/usb_compat_linux.c ============================================================================== --- head/sys/dev/usb/usb_compat_linux.c Sun Nov 1 21:44:37 2009 (r198775) +++ head/sys/dev/usb/usb_compat_linux.c Sun Nov 1 21:48:18 2009 (r198776) @@ -624,10 +624,11 @@ usb_start_wait_urb(struct urb *urb, usb_ done: if (do_unlock) mtx_unlock(&Giant); - if (err) { - *p_actlen = 0; - } else { - *p_actlen = urb->actual_length; + if (p_actlen != NULL) { + if (err) + *p_actlen = 0; + else + *p_actlen = urb->actual_length; } return (err); } @@ -1362,8 +1363,17 @@ usb_linux_isoc_callback(struct usb_xfer for (x = 0; x < urb->number_of_packets; x++) { uipd = urb->iso_frame_desc + x; + if (uipd->length > xfer->frlengths[x]) { + if (urb->transfer_flags & URB_SHORT_NOT_OK) { + /* XXX should be EREMOTEIO */ + uipd->status = -EPIPE; + } else { + uipd->status = 0; + } + } else { + uipd->status = 0; + } uipd->actual_length = xfer->frlengths[x]; - uipd->status = 0; if (!xfer->flags.ext_buffer) { usbd_copy_out(xfer->frbuffers, offset, USB_ADD_BYTES(urb->transfer_buffer, @@ -1385,8 +1395,8 @@ usb_linux_isoc_callback(struct usb_xfer if (xfer->actlen < xfer->sumlen) { /* short transfer */ if (urb->transfer_flags & URB_SHORT_NOT_OK) { - urb->status = -EPIPE; /* XXX should be - * EREMOTEIO */ + /* XXX should be EREMOTEIO */ + urb->status = -EPIPE; } else { urb->status = 0; } @@ -1482,6 +1492,7 @@ tr_setup: /* Set zero for "actual_length" */ for (x = 0; x < urb->number_of_packets; x++) { urb->iso_frame_desc[x].actual_length = 0; + urb->iso_frame_desc[x].status = urb->status; } /* call callback */ @@ -1663,3 +1674,58 @@ setup_bulk: goto tr_setup; } } + +/*------------------------------------------------------------------------* + * usb_fill_bulk_urb + *------------------------------------------------------------------------*/ +void +usb_fill_bulk_urb(struct urb *urb, struct usb_device *udev, + struct usb_host_endpoint *uhe, void *buf, + int length, usb_complete_t callback, void *arg) +{ + urb->dev = udev; + urb->endpoint = uhe; + urb->transfer_buffer = buf; + urb->transfer_buffer_length = length; + urb->complete = callback; + urb->context = arg; +} + +/*------------------------------------------------------------------------* + * usb_bulk_msg + * + * NOTE: This function can also be used for interrupt endpoints! + * + * Return values: + * 0: Success + * Else: Failure + *------------------------------------------------------------------------*/ +int +usb_bulk_msg(struct usb_device *udev, struct usb_host_endpoint *uhe, + void *data, int len, uint16_t *pactlen, usb_timeout_t timeout) +{ + struct urb *urb; + int err; + + if (uhe == NULL) + return (-EINVAL); + if (len < 0) + return (-EINVAL); + + err = usb_setup_endpoint(udev, uhe, 4096 /* bytes */); + if (err) + return (err); + + urb = usb_alloc_urb(0, 0); + if (urb == NULL) + return (-ENOMEM); + + usb_fill_bulk_urb(urb, udev, uhe, data, len, + usb_linux_wait_complete, NULL); + + err = usb_start_wait_urb(urb, timeout, pactlen); + + usb_free_urb(urb); + + return (err); +} Modified: head/sys/dev/usb/usb_compat_linux.h ============================================================================== --- head/sys/dev/usb/usb_compat_linux.h Sun Nov 1 21:44:37 2009 (r198775) +++ head/sys/dev/usb/usb_compat_linux.h Sun Nov 1 21:48:18 2009 (r198776) @@ -217,7 +217,7 @@ struct usb_iso_packet_descriptor { * packets are usually back to back) */ uint16_t length; /* expected length */ uint16_t actual_length; - uint16_t status; + int16_t status; /* transfer status */ }; /* @@ -299,6 +299,11 @@ void usb_set_intfdata(struct usb_interfa void usb_linux_register(void *arg); void usb_linux_deregister(void *arg); +void usb_fill_bulk_urb(struct urb *, struct usb_device *, + struct usb_host_endpoint *, void *, int, usb_complete_t, void *); +int usb_bulk_msg(struct usb_device *, struct usb_host_endpoint *, + void *, int, uint16_t *, usb_timeout_t); + #define interface_to_usbdev(intf) (intf)->linux_udev #define interface_to_bsddev(intf) (intf)->linux_udev From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 21:55:20 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F111C1065670; Sun, 1 Nov 2009 21:55:20 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id AC4C88FC18; Sun, 1 Nov 2009 21:55:20 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id B03D46D41B; Sun, 1 Nov 2009 21:55:19 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 923538450A; Sun, 1 Nov 2009 22:55:19 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Ed Schouten References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> <20091101202242.GK1293@hoeg.nl> Date: Sun, 01 Nov 2009 22:55:19 +0100 In-Reply-To: <20091101202242.GK1293@hoeg.nl> (Ed Schouten's message of "Sun, 1 Nov 2009 21:22:42 +0100") Message-ID: <86y6mpj4fs.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.95 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Kostik Belousov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 21:55:21 -0000 Ed Schouten writes: > Which is why I proposed changing these sentences to the past tense, > i.e.: > > The major device number is an integer number which tells the > kernel which device driver entry point to use. > > should become: > > The major device number is an integer number which used to tell > the kernel which device driver entry point to use. > > and: > > The minor device number tells the kernel which subunit the node > corresponds to on the device; for example, > > should become: > > The minor device number used to tell the kernel which subunit > the node corresponds to on the device; for example, How about replacing both paragraphs with major, minor Historically, a device number consisted of two parts: the major number, which identified a device driver, and the minor number, which identified an individual device handled by that driver. FreeBSD no longer makes that distinction; each device has a unique system-wide minor number, and the major number is always zero. However, the distinction is still important when creating device nodes on a file system intended for use by an older system. (modulo errors in grammar and style) The paragraph about b | c should be altered in a similar manner, to emphasize that FreeBSD does not have block devices, but that block device nodes can still be created for use by older systems. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 22:05:36 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 287181065679; Sun, 1 Nov 2009 22:05:36 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id BB2068FC16; Sun, 1 Nov 2009 22:05:35 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id A2D581CF71; Sun, 1 Nov 2009 23:05:33 +0100 (CET) Date: Sun, 1 Nov 2009 23:05:33 +0100 From: Ed Schouten To: Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= Message-ID: <20091101220533.GL1293@hoeg.nl> References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> <20091101202242.GK1293@hoeg.nl> <86y6mpj4fs.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="bNOIqPvWVsuhXMpy" Content-Disposition: inline In-Reply-To: <86y6mpj4fs.fsf@ds4.des.no> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Kostik Belousov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 22:05:36 -0000 --bNOIqPvWVsuhXMpy Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Dag-Erling, * Dag-Erling Sm=F8rgrav wrote: > identified an individual device handled by that driver. FreeBSD no > longer makes that distinction; each device has a unique system-wide > minor number, and the major number is always zero. However, the ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ As pointed out earlier, this is not true. Major numbers can be non-zero. | #define major(x) ((int)(((u_int)(x) >> 8)&0xff)) Devices 256-511 will have a major number of 1, etc. Apart from that, I think there is also a fair amount of overlap with the COMPATIBILITY section of the same manpage. --=20 Ed Schouten WWW: http://80386.nl/ --bNOIqPvWVsuhXMpy Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkruBi0ACgkQ52SDGA2eCwUrbACfaPx9ysKO80S7AdnDtbx4K6TW cvAAniyYKDAJ23nYFSTvBB/nixkwA3Hu =g2Xe -----END PGP SIGNATURE----- --bNOIqPvWVsuhXMpy-- From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 22:37:39 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C364E106568D; Sun, 1 Nov 2009 22:37:39 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id 7E9648FC18; Sun, 1 Nov 2009 22:37:39 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 6AB126D41B; Sun, 1 Nov 2009 22:37:38 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 328AA84503; Sun, 1 Nov 2009 23:37:38 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Ed Schouten References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> <20091101202242.GK1293@hoeg.nl> <86y6mpj4fs.fsf@ds4.des.no> <20091101220533.GL1293@hoeg.nl> Date: Sun, 01 Nov 2009 23:37:38 +0100 In-Reply-To: <20091101220533.GL1293@hoeg.nl> (Ed Schouten's message of "Sun, 1 Nov 2009 23:05:33 +0100") Message-ID: <86tyxdj2h9.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.95 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Kostik Belousov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 22:37:39 -0000 Ed Schouten writes: > > Dag-Erling Sm=C3=B8rgrav writes: > > identified an individual device handled by that driver. FreeBSD no > > longer makes that distinction; each device has a unique system-wide > > minor number, and the major number is always zero. However, the > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > As pointed out earlier, this is not true. Major numbers can be non-zero. > > | #define major(x) ((int)(((u_int)(x) >> 8)&0xff)) > > Devices 256-511 will have a major number of 1, etc. So: Each device has a unique system-wide device number; the minor number contains the eight least-significant bits, and the major number contains the rest. (device numbers are currently unsigned int; is there a reason not to make them explicitly 32 bits wide, i.e. uint32_t?) > Apart from that, I think there is also a fair amount of overlap with the > COMPATIBILITY section of the same manpage. Yeah, but who reads those? :) DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 22:39:49 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACB3C1065670; Sun, 1 Nov 2009 22:39:49 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 6D6288FC0A; Sun, 1 Nov 2009 22:39:49 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id C338F1CD0A; Sun, 1 Nov 2009 23:39:48 +0100 (CET) Date: Sun, 1 Nov 2009 23:39:48 +0100 From: Ed Schouten To: Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= Message-ID: <20091101223948.GN1293@hoeg.nl> References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> <20091101202242.GK1293@hoeg.nl> <86y6mpj4fs.fsf@ds4.des.no> <20091101220533.GL1293@hoeg.nl> <86tyxdj2h9.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="y8hmAOsilT9lKboI" Content-Disposition: inline In-Reply-To: <86tyxdj2h9.fsf@ds4.des.no> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Kostik Belousov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 22:39:49 -0000 --y8hmAOsilT9lKboI Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Dag-Erling Sm=F8rgrav wrote: > (device numbers are currently unsigned int; is there a reason not to > make them explicitly 32 bits wide, i.e. uint32_t?) I think it should explicitly use dev_t or something, right? --=20 Ed Schouten WWW: http://80386.nl/ --y8hmAOsilT9lKboI Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkruDjQACgkQ52SDGA2eCwV6IgCeL0c3lPSZ1PQ+ShZJWMxgaZ1j /0oAoIEM2tq5H2VcN+S4YGfXOiJp6TIb =J713 -----END PGP SIGNATURE----- --y8hmAOsilT9lKboI-- From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 23:59:18 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B58B4106566C; Sun, 1 Nov 2009 23:59:18 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id 703BD8FC08; Sun, 1 Nov 2009 23:59:18 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 4E7FD6D41C; Sun, 1 Nov 2009 23:59:17 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 312BB844D2; Mon, 2 Nov 2009 00:59:17 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Ed Schouten References: <200911011825.nA1IPBQ2031333@svn.freebsd.org> <20091101184322.GP2147@deviant.kiev.zoral.com.ua> <20091101202242.GK1293@hoeg.nl> <86y6mpj4fs.fsf@ds4.des.no> <20091101220533.GL1293@hoeg.nl> <86tyxdj2h9.fsf@ds4.des.no> <20091101223948.GN1293@hoeg.nl> Date: Mon, 02 Nov 2009 00:59:16 +0100 In-Reply-To: <20091101223948.GN1293@hoeg.nl> (Ed Schouten's message of "Sun, 1 Nov 2009 23:39:48 +0100") Message-ID: <86pr81iyp7.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.95 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Kostik Belousov , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Christian Brueffer Subject: Re: svn commit: r198768 - head/sbin/mknod X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 23:59:18 -0000 Ed Schouten writes: > Dag-Erling Sm=C3=B8rgrav writes: > > (device numbers are currently unsigned int; is there a reason not to > > make them explicitly 32 bits wide, i.e. uint32_t?) > I think it should explicitly use dev_t or something, right? Ah, I was looking in the wrong header; it is indeed a uint32_t. So: b | c Type of device. Historically, block devices were provided to allow byte-level access to hardware that required data to be read or written in fixed-sized blocks. FreeBSD no longer has block devices, and all device nodes should be created as character devices. However, the distinction between block and character devices is still important when creating device nodes on a filesystem intended for use by older systems. (it's been so long since we dropped block devices that I actually had to look up the details in an old copy of D&I) major, minor Historically, a device number consisted of two parts: the major number, which identified a device driver, and the minor number, which identified an individual device handled by that driver. FreeBSD no longer makes that distinction. Instead, every device in the system has a unique 32-bit device number. For compatibility with software that still expects separate major and minor numbers, this 32-bit device number is split into a 24-bit major number and an 8-bit minor number. However, the distinction between major and minor numbers is still important when creating device nodes on a filesystem intended for use by older systems. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 03:28:41 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19CFA1065670; Mon, 2 Nov 2009 03:28:41 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from pele.citylink.co.nz (pele.citylink.co.nz [202.8.44.226]) by mx1.freebsd.org (Postfix) with ESMTP id D04138FC12; Mon, 2 Nov 2009 03:28:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by pele.citylink.co.nz (Postfix) with ESMTP id AA007FFB6; Mon, 2 Nov 2009 16:13:23 +1300 (NZDT) X-Virus-Scanned: Debian amavisd-new at citylink.co.nz Received: from pele.citylink.co.nz ([127.0.0.1]) by localhost (pele.citylink.co.nz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2PD+Ozh8Esky; Mon, 2 Nov 2009 16:13:19 +1300 (NZDT) Received: from citylink.fud.org.nz (unknown [202.8.44.45]) by pele.citylink.co.nz (Postfix) with ESMTP; Mon, 2 Nov 2009 16:13:19 +1300 (NZDT) Received: by citylink.fud.org.nz (Postfix, from userid 1001) id 9AA3811475; Mon, 2 Nov 2009 16:13:18 +1300 (NZDT) Date: Mon, 2 Nov 2009 16:13:18 +1300 From: Andrew Thompson To: Alexander Motin Message-ID: <20091102031318.GB49898@citylink.fud.org.nz> References: <200911011131.nA1BV6lO022276@svn.freebsd.org> <1280352d0911011907k34498c71g5b49ffb7220c377b@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280352d0911011907k34498c71g5b49ffb7220c377b@mail.gmail.com> User-Agent: Mutt/1.5.17 (2007-11-01) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198748 - in head/sys/cam: . ata scsi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 03:28:41 -0000 > Author: mav > Date: Sun Nov 1 11:31:06 2009 > New Revision: 198748 > URL: http://svn.freebsd.org/changeset/base/198748 > > Log: > MFp4: > Fix reference counting bug, when device unreferenced before then > invalidated. To do it, do not handle validity flag as another > reference, but explicitly modify reference count each time flag is > modified. There is still one problem with this. In xpt_async() we go through the device list on the target and call the async function followed by xpt_async_bcast(). With the above change its possible for scsi_dev_async() to free the device due to dropping the CAM_DEV_UNCONFIGURED flag, leading to a panic in xpt_async_bcast() on freed memory. This fixes it for me. Index: cam/cam_xpt.c =================================================================== --- cam/cam_xpt.c (revision 198779) +++ cam/cam_xpt.c (working copy) @@ -4023,12 +4023,15 @@ xpt_async(u_int32_t async_code, struct cam_path *p && device->lun_id != CAM_LUN_WILDCARD) continue; + /* The async callback could free the device */ + xpt_acquire_device(device); (*(bus->xport->async))(async_code, bus, target, device, async_arg); xpt_async_bcast(&device->asyncs, async_code, path, async_arg); + xpt_release_device(device); } } From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 07:21:14 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 05CC8106566B; Mon, 2 Nov 2009 07:21:14 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E876B8FC1D; Mon, 2 Nov 2009 07:21:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA27LDDc048766; Mon, 2 Nov 2009 07:21:13 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA27LDq1048764; Mon, 2 Nov 2009 07:21:13 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <200911020721.nA27LDq1048764@svn.freebsd.org> From: Colin Percival Date: Mon, 2 Nov 2009 07:21:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198781 - head/lib/libc/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 07:21:14 -0000 Author: cperciva Date: Mon Nov 2 07:21:13 2009 New Revision: 198781 URL: http://svn.freebsd.org/changeset/base/198781 Log: Attempt to reduce accidental foot-shooting by pointing out that accept(2)ed sockets do not necessarily inherit O_NONBLOCK from listening sockets on non-FreeBSD platforms. Feet shot: cperciva MFC after: 1 month Modified: head/lib/libc/sys/accept.2 Modified: head/lib/libc/sys/accept.2 ============================================================================== --- head/lib/libc/sys/accept.2 Mon Nov 2 06:36:54 2009 (r198780) +++ head/lib/libc/sys/accept.2 Mon Nov 2 07:21:13 2009 (r198781) @@ -126,6 +126,10 @@ new socket. For some applications, performance may be enhanced by using an .Xr accept_filter 9 to pre-process incoming connections. +.Pp +Portable programs should not rely on the +.Dv O_NONBLOCK +property being inherited. .Sh RETURN VALUES The call returns \-1 on error. If it succeeds, it returns a non-negative From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 08:31:00 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F14611065693; Mon, 2 Nov 2009 08:31:00 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E019D8FC28; Mon, 2 Nov 2009 08:31:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA28V0SO050190; Mon, 2 Nov 2009 08:31:00 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA28V0iI050188; Mon, 2 Nov 2009 08:31:00 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911020831.nA28V0iI050188@svn.freebsd.org> From: Alexander Motin Date: Mon, 2 Nov 2009 08:31:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198782 - head/sys/cam X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 08:31:01 -0000 Author: mav Date: Mon Nov 2 08:31:00 2009 New Revision: 198782 URL: http://svn.freebsd.org/changeset/base/198782 Log: The async callback could free the device. If it is a broadcast async, it doesn't hold device reference, so take our own reference. Submitted by: thompsa Modified: head/sys/cam/cam_xpt.c Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Mon Nov 2 07:21:13 2009 (r198781) +++ head/sys/cam/cam_xpt.c Mon Nov 2 08:31:00 2009 (r198782) @@ -4022,13 +4022,19 @@ xpt_async(u_int32_t async_code, struct c && path->device->lun_id != CAM_LUN_WILDCARD && device->lun_id != CAM_LUN_WILDCARD) continue; - + /* + * The async callback could free the device. + * If it is a broadcast async, it doesn't hold + * device reference, so take our own reference. + */ + xpt_acquire_device(device); (*(bus->xport->async))(async_code, bus, target, device, async_arg); xpt_async_bcast(&device->asyncs, async_code, path, async_arg); + xpt_release_device(device); } } From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 09:56:46 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E21AA1065670; Mon, 2 Nov 2009 09:56:46 +0000 (UTC) (envelope-from remko@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D17B08FC1D; Mon, 2 Nov 2009 09:56:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA29ukCN052101; Mon, 2 Nov 2009 09:56:46 GMT (envelope-from remko@svn.freebsd.org) Received: (from remko@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA29ukQo052099; Mon, 2 Nov 2009 09:56:46 GMT (envelope-from remko@svn.freebsd.org) Message-Id: <200911020956.nA29ukQo052099@svn.freebsd.org> From: Remko Lodder Date: Mon, 2 Nov 2009 09:56:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198785 - head/etc/rc.d X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 09:56:47 -0000 Author: remko Date: Mon Nov 2 09:56:46 2009 New Revision: 198785 URL: http://svn.freebsd.org/changeset/base/198785 Log: Execute the start/stop process of a jail in the background. This will prevent that the script hangs during startup, which could cause annoying effects after rebooting for example. PR: kern/139422 Submitted by: Andrey Groshev Approved by: imp (mentor, implicit) MFC after: 3 days Facilitated by: Snow B.V. Modified: head/etc/rc.d/jail Modified: head/etc/rc.d/jail ============================================================================== --- head/etc/rc.d/jail Mon Nov 2 09:47:41 2009 (r198784) +++ head/etc/rc.d/jail Mon Nov 2 09:56:46 2009 (r198785) @@ -728,4 +728,4 @@ fi if [ -n "$*" ]; then jail_list="$*" fi -run_rc_command "${cmd}" +run_rc_command "${cmd}" & From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 10:04:38 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE36C106568B; Mon, 2 Nov 2009 10:04:38 +0000 (UTC) (envelope-from dwmalone@maths.tcd.ie) Received: from salmon.maths.tcd.ie (salmon.maths.tcd.ie [IPv6:2001:770:10:300::86e2:510b]) by mx1.freebsd.org (Postfix) with SMTP id E46168FC1A; Mon, 2 Nov 2009 10:04:37 +0000 (UTC) Received: from walton.maths.tcd.ie ([134.226.81.10] helo=walton.maths.tcd.ie) by salmon.maths.tcd.ie with SMTP id ; 2 Nov 2009 10:04:36 +0000 (GMT) Date: Mon, 2 Nov 2009 10:04:35 +0000 From: David Malone To: Ed Schouten Message-ID: <20091102100435.GA67211@walton.maths.tcd.ie> References: <200910311035.n9VAZfIb082932@svn.freebsd.org> <20091031.190353.-332187386.imp@bsdimp.com> <20091101011212.GG1293@hoeg.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20091101011212.GG1293@hoeg.nl> User-Agent: Mutt/1.5.6i Sender: dwmalone@maths.tcd.ie Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, "M. Warner Losh" Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 10:04:39 -0000 On Sun, Nov 01, 2009 at 02:12:12AM +0100, Ed Schouten wrote: > No, we don't. All these fields are not used by drivers, just some old > version of the devfs code. I made sure struct cdevsw didn't change in > size, so there should be no API nor ABI conflicts. Surely it is an API change, but not an ABI change? Code that used to do: d.d_uid = 3; will no longer compile, but code that was comipled with the old version will still run. I understand that the assignment doesn't do anything useful, but I suppose there still could be code that does it? David. From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 10:24:05 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C90AA106566B; Mon, 2 Nov 2009 10:24:05 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 681CA8FC12; Mon, 2 Nov 2009 10:24:05 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 762BE1CD0A; Mon, 2 Nov 2009 11:24:04 +0100 (CET) Date: Mon, 2 Nov 2009 11:24:04 +0100 From: Ed Schouten To: David Malone Message-ID: <20091102102404.GP1293@hoeg.nl> References: <200910311035.n9VAZfIb082932@svn.freebsd.org> <20091031.190353.-332187386.imp@bsdimp.com> <20091101011212.GG1293@hoeg.nl> <20091102100435.GA67211@walton.maths.tcd.ie> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="BXjkYym6qfApNY5c" Content-Disposition: inline In-Reply-To: <20091102100435.GA67211@walton.maths.tcd.ie> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, "M. Warner Losh" Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 10:24:05 -0000 --BXjkYym6qfApNY5c Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello David, * David Malone wrote: > Surely it is an API change, but not an ABI change? Code that used > to do: >=20 > d.d_uid =3D 3; >=20 > will no longer compile, but code that was comipled with the old > version will still run. I understand that the assignment doesn't > do anything useful, but I suppose there still could be code that > does it? Yes, in theory there could be pieces of code that do that, but keep in mind that d_uid was never meant to be used by device drivers. It was used by devfs internally, before cdevpriv existed. Looking at the SVN logs, it was introduced in March 2005, but it was already rendered useless in September that same year, when devfs was modified to just obtain the ownership/modes from the cdevpriv instead of the cdevsw. Interesting commits: - http://svn.freebsd.org/viewvc/base?view=3Drevision&revision=3D143746 - http://svn.freebsd.org/viewvc/base?view=3Drevision&revision=3D150342 --=20 Ed Schouten WWW: http://80386.nl/ --BXjkYym6qfApNY5c Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrus0QACgkQ52SDGA2eCwUlKwCdG75s+oKDvQJLRpiEgWUpC5By QJ0AniOiL7vUESGkSnqFOsxOWNq0LdK3 =EgKL -----END PGP SIGNATURE----- --BXjkYym6qfApNY5c-- From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 11:07:42 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACB42106568B; Mon, 2 Nov 2009 11:07:42 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9A9668FC3E; Mon, 2 Nov 2009 11:07:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2B7gKh054860; Mon, 2 Nov 2009 11:07:42 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2B7gP4054855; Mon, 2 Nov 2009 11:07:42 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200911021107.nA2B7gP4054855@svn.freebsd.org> From: Rui Paulo Date: Mon, 2 Nov 2009 11:07:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198786 - in head/sys: compat/ndis dev/if_ndis X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 11:07:42 -0000 Author: rpaulo Date: Mon Nov 2 11:07:42 2009 New Revision: 198786 URL: http://svn.freebsd.org/changeset/base/198786 Log: Big style cleanup. While there remove references to FreeBSD versions older than 6.0. Submitted by: Paul B Mahol Modified: head/sys/compat/ndis/kern_ndis.c head/sys/compat/ndis/kern_windrv.c head/sys/compat/ndis/subr_hal.c head/sys/compat/ndis/subr_ndis.c head/sys/compat/ndis/subr_ntoskrnl.c head/sys/compat/ndis/subr_pe.c head/sys/compat/ndis/subr_usbd.c head/sys/dev/if_ndis/if_ndis.c head/sys/dev/if_ndis/if_ndis_usb.c Modified: head/sys/compat/ndis/kern_ndis.c ============================================================================== --- head/sys/compat/ndis/kern_ndis.c Mon Nov 2 09:56:46 2009 (r198785) +++ head/sys/compat/ndis/kern_ndis.c Mon Nov 2 11:07:42 2009 (r198786) @@ -184,7 +184,7 @@ ndis_modevent(module_t mod, int cmd, voi break; } - return(error); + return (error); } DEV_MODULE(ndisapi, ndis_modevent, NULL); MODULE_VERSION(ndisapi, 1); @@ -193,7 +193,6 @@ static void ndis_sendrsrcavail_func(adapter) ndis_handle adapter; { - return; } static void @@ -211,8 +210,7 @@ ndis_status_func(adapter, status, sbuf, sc = device_get_softc(block->nmb_physdeviceobj->do_devext); ifp = sc->ifp; if (ifp->if_flags & IFF_DEBUG) - device_printf (sc->ndis_dev, "status: %x\n", status); - return; + device_printf(sc->ndis_dev, "status: %x\n", status); } static void @@ -227,8 +225,7 @@ ndis_statusdone_func(adapter) sc = device_get_softc(block->nmb_physdeviceobj->do_devext); ifp = sc->ifp; if (ifp->if_flags & IFF_DEBUG) - device_printf (sc->ndis_dev, "status complete\n"); - return; + device_printf(sc->ndis_dev, "status complete\n"); } static void @@ -241,7 +238,6 @@ ndis_setdone_func(adapter, status) block->nmb_setstat = status; KeSetEvent(&block->nmb_setevent, IO_NO_INCREMENT, FALSE); - return; } static void @@ -254,7 +250,6 @@ ndis_getdone_func(adapter, status) block->nmb_getstat = status; KeSetEvent(&block->nmb_getevent, IO_NO_INCREMENT, FALSE); - return; } static void @@ -270,10 +265,8 @@ ndis_resetdone_func(ndis_handle adapter, ifp = sc->ifp; if (ifp->if_flags & IFF_DEBUG) - device_printf (sc->ndis_dev, "reset done...\n"); + device_printf(sc->ndis_dev, "reset done...\n"); KeSetEvent(&block->nmb_resetevent, IO_NO_INCREMENT, FALSE); - - return; } int @@ -287,7 +280,7 @@ ndis_create_sysctls(arg) struct sysctl_ctx_entry *e; if (arg == NULL) - return(EINVAL); + return (EINVAL); sc = arg; vals = sc->ndis_regvals; @@ -367,7 +360,7 @@ ndis_create_sysctls(arg) "Interrupt Number", buf, CTLFLAG_RD); } - return(0); + return (0); } int @@ -388,7 +381,7 @@ ndis_add_sysctl(arg, key, desc, val, fla if (cfg == NULL) { printf("failed for %s\n", key); - return(ENOMEM); + return (ENOMEM); } cfg->ndis_cfg.nc_cfgkey = strdup(key, M_DEVBUF); @@ -415,7 +408,7 @@ ndis_add_sysctl(arg, key, desc, val, fla cfg->ndis_cfg.nc_cfgdesc); #endif - return(0); + return (0); } /* @@ -451,7 +444,7 @@ ndis_flush_sysctls(arg) free(cfg, M_DEVBUF); } - return(0); + return (0); } static void @@ -488,8 +481,6 @@ ndis_return(dobj, arg) KeAcquireSpinLock(&block->nmb_returnlock, &irql); } KeReleaseSpinLock(&block->nmb_returnlock, irql); - - return; } void @@ -522,8 +513,6 @@ ndis_return_packet(buf, arg) IoQueueWorkItem(block->nmb_returnitem, (io_workitem_func)kernndis_functbl[7].ipt_wrap, WORKQUEUE_CRITICAL, block); - - return; } void @@ -540,8 +529,6 @@ ndis_free_bufs(b0) IoFreeMdl(b0); b0 = next; } - - return; } void @@ -553,7 +540,6 @@ ndis_free_packet(p) ndis_free_bufs(p->np_private.npp_head); NdisFreePacket(p); - return; } int @@ -567,26 +553,18 @@ ndis_convert_res(arg) device_t dev; struct resource_list *brl; struct resource_list_entry *brle; -#if __FreeBSD_version < 600022 - struct resource_list brl_rev; - struct resource_list_entry *n; -#endif int error = 0; sc = arg; block = sc->ndis_block; dev = sc->ndis_dev; -#if __FreeBSD_version < 600022 - SLIST_INIT(&brl_rev); -#endif - rl = malloc(sizeof(ndis_resource_list) + (sizeof(cm_partial_resource_desc) * (sc->ndis_rescnt - 1)), M_DEVBUF, M_NOWAIT|M_ZERO); if (rl == NULL) - return(ENOMEM); + return (ENOMEM); rl->cprl_version = 5; rl->cprl_version = 1; @@ -597,37 +575,7 @@ ndis_convert_res(arg) if (brl != NULL) { -#if __FreeBSD_version < 600022 - /* - * We have a small problem. Some PCI devices have - * multiple I/O ranges. Windows orders them starting - * from lowest numbered BAR to highest. We discover - * them in that order too, but insert them into a singly - * linked list head first, which means when time comes - * to traverse the list, we enumerate them in reverse - * order. This screws up some drivers which expect the - * BARs to be in ascending order so that they can choose - * the "first" one as their register space. Unfortunately, - * in order to fix this, we have to create our own - * temporary list with the entries in reverse order. - */ - - SLIST_FOREACH(brle, brl, link) { - n = malloc(sizeof(struct resource_list_entry), - M_TEMP, M_NOWAIT); - if (n == NULL) { - error = ENOMEM; - goto bad; - } - bcopy((char *)brle, (char *)n, - sizeof(struct resource_list_entry)); - SLIST_INSERT_HEAD(&brl_rev, n, link); - } - - SLIST_FOREACH(brle, &brl_rev, link) { -#else STAILQ_FOREACH(brle, brl, link) { -#endif switch (brle->type) { case SYS_RES_IOPORT: prd->cprd_type = CmResourceTypePort; @@ -671,17 +619,7 @@ ndis_convert_res(arg) block->nmb_rlist = rl; -#if __FreeBSD_version < 600022 -bad: - - while (!SLIST_EMPTY(&brl_rev)) { - n = SLIST_FIRST(&brl_rev); - SLIST_REMOVE_HEAD(&brl_rev, link); - free (n, M_TEMP); - } -#endif - - return(error); + return (error); } /* @@ -711,7 +649,7 @@ ndis_ptom(m0, p) int diff; if (p == NULL || m0 == NULL) - return(EINVAL); + return (EINVAL); priv = &p->np_private; buf = priv->npp_head; @@ -729,7 +667,7 @@ ndis_ptom(m0, p) if (m == NULL) { m_freem(*m0); *m0 = NULL; - return(ENOBUFS); + return (ENOBUFS); } m->m_len = MmGetMdlByteCount(buf); m->m_data = MmGetMdlVirtualAddress(buf); @@ -765,7 +703,7 @@ ndis_ptom(m0, p) } (*m0)->m_pkthdr.len = totlen; - return(0); + return (0); } /* @@ -793,7 +731,7 @@ ndis_mtop(m0, p) ndis_packet_private *priv; if (p == NULL || *p == NULL || m0 == NULL) - return(EINVAL); + return (EINVAL); priv = &(*p)->np_private; priv->npp_totlen = m0->m_pkthdr.len; @@ -805,7 +743,7 @@ ndis_mtop(m0, p) if (buf == NULL) { ndis_free_packet(*p); *p = NULL; - return(ENOMEM); + return (ENOMEM); } MmBuildMdlForNonPagedPool(buf); @@ -818,7 +756,7 @@ ndis_mtop(m0, p) priv->npp_tail = buf; - return(0); + return (0); } int @@ -831,25 +769,25 @@ ndis_get_supported_oids(arg, oids, oidcn ndis_oid *o; if (arg == NULL || oids == NULL || oidcnt == NULL) - return(EINVAL); + return (EINVAL); len = 0; ndis_get_info(arg, OID_GEN_SUPPORTED_LIST, NULL, &len); o = malloc(len, M_DEVBUF, M_NOWAIT); if (o == NULL) - return(ENOMEM); + return (ENOMEM); rval = ndis_get_info(arg, OID_GEN_SUPPORTED_LIST, o, &len); if (rval) { free(o, M_DEVBUF); - return(rval); + return (rval); } *oids = o; *oidcnt = len / 4; - return(0); + return (0); } int @@ -893,7 +831,7 @@ ndis_set_info(arg, oid, buf, buflen) sc->ndis_block->nmb_devicectx == NULL) { sc->ndis_block->nmb_pendingreq = NULL; KeReleaseSpinLock(&sc->ndis_block->nmb_lock, irql); - return(ENXIO); + return (ENXIO); } rval = MSCALL6(setfunc, adapter, oid, buf, *buflen, @@ -917,19 +855,19 @@ ndis_set_info(arg, oid, buf, buflen) *buflen = bytesneeded; if (rval == NDIS_STATUS_INVALID_LENGTH) - return(ENOSPC); + return (ENOSPC); if (rval == NDIS_STATUS_INVALID_OID) - return(EINVAL); + return (EINVAL); if (rval == NDIS_STATUS_NOT_SUPPORTED || rval == NDIS_STATUS_NOT_ACCEPTED) - return(ENOTSUP); + return (ENOTSUP); if (rval != NDIS_STATUS_SUCCESS) - return(ENODEV); + return (ENODEV); - return(0); + return (0); } typedef void (*ndis_senddone_func)(ndis_handle, ndis_packet *, ndis_status); @@ -951,7 +889,7 @@ ndis_send_packets(arg, packets, cnt) sc = arg; adapter = sc->ndis_block->nmb_miniportadapterctx; if (adapter == NULL) - return(ENXIO); + return (ENXIO); sendfunc = sc->ndis_chars->nmc_sendmulti_func; senddonefunc = sc->ndis_block->nmb_senddone_func; @@ -976,7 +914,7 @@ ndis_send_packets(arg, packets, cnt) if (NDIS_SERIALIZED(sc->ndis_block)) KeReleaseSpinLock(&sc->ndis_block->nmb_lock, irql); - return(0); + return (0); } int @@ -994,7 +932,7 @@ ndis_send_packet(arg, packet) sc = arg; adapter = sc->ndis_block->nmb_miniportadapterctx; if (adapter == NULL) - return(ENXIO); + return (ENXIO); sendfunc = sc->ndis_chars->nmc_sendsingle_func; senddonefunc = sc->ndis_block->nmb_senddone_func; @@ -1006,7 +944,7 @@ ndis_send_packet(arg, packet) if (status == NDIS_STATUS_PENDING) { if (NDIS_SERIALIZED(sc->ndis_block)) KeReleaseSpinLock(&sc->ndis_block->nmb_lock, irql); - return(0); + return (0); } MSCALL3(senddonefunc, sc->ndis_block, packet, status); @@ -1014,7 +952,7 @@ ndis_send_packet(arg, packet) if (NDIS_SERIALIZED(sc->ndis_block)) KeReleaseSpinLock(&sc->ndis_block->nmb_lock, irql); - return(0); + return (0); } int @@ -1030,18 +968,18 @@ ndis_init_dma(arg) M_DEVBUF, M_NOWAIT|M_ZERO); if (sc->ndis_tmaps == NULL) - return(ENOMEM); + return (ENOMEM); for (i = 0; i < sc->ndis_maxpkts; i++) { error = bus_dmamap_create(sc->ndis_ttag, 0, &sc->ndis_tmaps[i]); if (error) { free(sc->ndis_tmaps, M_DEVBUF); - return(ENODEV); + return (ENODEV); } } - return(0); + return (0); } int @@ -1070,7 +1008,7 @@ ndis_destroy_dma(arg) bus_dma_tag_destroy(sc->ndis_ttag); - return(0); + return (0); } int @@ -1093,7 +1031,7 @@ ndis_reset_nic(arg) if (adapter == NULL || resetfunc == NULL || sc->ndis_block->nmb_devicectx == NULL) { NDIS_UNLOCK(sc); - return(EIO); + return (EIO); } NDIS_UNLOCK(sc); @@ -1112,7 +1050,7 @@ ndis_reset_nic(arg) KeWaitForSingleObject(&sc->ndis_block->nmb_resetevent, 0, 0, FALSE, NULL); - return(0); + return (0); } int @@ -1149,7 +1087,7 @@ ndis_halt_nic(arg) adapter = sc->ndis_block->nmb_miniportadapterctx; if (adapter == NULL) { NDIS_UNLOCK(sc); - return(EIO); + return (EIO); } sc->ndis_block->nmb_devicectx = NULL; @@ -1169,7 +1107,7 @@ ndis_halt_nic(arg) sc->ndis_block->nmb_miniportadapterctx = NULL; NDIS_UNLOCK(sc); - return(0); + return (0); } int @@ -1186,7 +1124,7 @@ ndis_shutdown_nic(arg) shutdownfunc = sc->ndis_chars->nmc_shutdown_handler; NDIS_UNLOCK(sc); if (adapter == NULL || shutdownfunc == NULL) - return(EIO); + return (EIO); if (sc->ndis_chars->nmc_rsvd0 == NULL) MSCALL1(shutdownfunc, adapter); @@ -1195,7 +1133,7 @@ ndis_shutdown_nic(arg) TAILQ_REMOVE(&ndis_devhead, sc->ndis_block, link); - return(0); + return (0); } int @@ -1215,7 +1153,7 @@ ndis_pnpevent_nic(arg, type) pnpeventfunc = sc->ndis_chars->nmc_pnpevent_handler; NDIS_UNLOCK(sc); if (adapter == NULL || pnpeventfunc == NULL) - return(EIO); + return (EIO); if (sc->ndis_chars->nmc_rsvd0 == NULL) MSCALL4(pnpeventfunc, adapter, type, NULL, 0); @@ -1237,7 +1175,7 @@ ndis_init_nic(arg) uint32_t chosenmedium, i; if (arg == NULL) - return(EINVAL); + return (EINVAL); sc = arg; NDIS_LOCK(sc); @@ -1262,7 +1200,7 @@ ndis_init_nic(arg) NDIS_LOCK(sc); sc->ndis_block->nmb_miniportadapterctx = NULL; NDIS_UNLOCK(sc); - return(ENXIO); + return (status); } /* @@ -1281,7 +1219,7 @@ ndis_init_nic(arg) sc->ndis_block->nmb_devicectx = sc; NDIS_UNLOCK(sc); - return(0); + return (0); } static void @@ -1305,8 +1243,6 @@ ndis_intrsetup(dpc, dobj, ip, sc) if (KeInsertQueueDpc(&intr->ni_dpc, NULL, NULL) == TRUE) intr->ni_dpccnt++; KeReleaseSpinLockFromDpcLevel(&intr->ni_dpccountlock); - - return; } int @@ -1343,7 +1279,7 @@ ndis_get_info(arg, oid, buf, buflen) sc->ndis_block->nmb_devicectx == NULL) { sc->ndis_block->nmb_pendingreq = NULL; KeReleaseSpinLock(&sc->ndis_block->nmb_lock, irql); - return(ENXIO); + return (ENXIO); } rval = MSCALL6(queryfunc, adapter, oid, buf, *buflen, @@ -1370,19 +1306,19 @@ ndis_get_info(arg, oid, buf, buflen) if (rval == NDIS_STATUS_INVALID_LENGTH || rval == NDIS_STATUS_BUFFER_TOO_SHORT) - return(ENOSPC); + return (ENOSPC); if (rval == NDIS_STATUS_INVALID_OID) - return(EINVAL); + return (EINVAL); if (rval == NDIS_STATUS_NOT_SUPPORTED || rval == NDIS_STATUS_NOT_ACCEPTED) - return(ENOTSUP); + return (ENOTSUP); if (rval != NDIS_STATUS_SUCCESS) - return(ENODEV); + return (ENODEV); - return(0); + return (0); } uint32_t @@ -1403,14 +1339,14 @@ NdisAddDevice(drv, pdo) INTR_TYPE_NET | INTR_MPSAFE, NULL, ntoskrnl_intr, NULL, &sc->ndis_intrhand); if (error) - return(NDIS_STATUS_FAILURE); + return (NDIS_STATUS_FAILURE); } status = IoCreateDevice(drv, sizeof(ndis_miniport_block), NULL, FILE_DEVICE_UNKNOWN, 0, FALSE, &fdo); if (status != STATUS_SUCCESS) - return(status); + return (status); block = fdo->do_devext; @@ -1446,7 +1382,7 @@ NdisAddDevice(drv, pdo) if (status != NDIS_STATUS_SUCCESS) { IoDetachDevice(block->nmb_nextdeviceobj); IoDeleteDevice(fdo); - return(status); + return (status); } InitializeListHead((&block->nmb_packetlist)); } @@ -1498,5 +1434,5 @@ ndis_unload_driver(arg) IoDetachDevice(sc->ndis_block->nmb_nextdeviceobj); IoDeleteDevice(fdo); - return(0); + return (0); } Modified: head/sys/compat/ndis/kern_windrv.c ============================================================================== --- head/sys/compat/ndis/kern_windrv.c Mon Nov 2 09:56:46 2009 (r198785) +++ head/sys/compat/ndis/kern_windrv.c Mon Nov 2 11:07:42 2009 (r198786) @@ -123,7 +123,7 @@ windrv_libinit(void) panic("failed to allocate thread info blocks"); smp_rendezvous(NULL, x86_newldt, NULL, NULL); #endif - return(0); + return (0); } int @@ -148,7 +148,7 @@ windrv_libfini(void) smp_rendezvous(NULL, x86_oldldt, NULL, NULL); ExFreePool(my_tids); #endif - return(0); + return (0); } /* @@ -172,7 +172,7 @@ windrv_lookup(img, name) if (name != NULL) { RtlInitAnsiString(&as, name); if (RtlAnsiStringToUnicodeString(&us, &as, TRUE)) - return(NULL); + return (NULL); } mtx_lock(&drvdb_mtx); @@ -183,7 +183,7 @@ windrv_lookup(img, name) mtx_unlock(&drvdb_mtx); if (name != NULL) ExFreePool(us.us_buf); - return(d->windrv_object); + return (d->windrv_object); } } mtx_unlock(&drvdb_mtx); @@ -191,7 +191,7 @@ windrv_lookup(img, name) if (name != NULL) RtlFreeUnicodeString(&us); - return(NULL); + return (NULL); } struct drvdb_ent * @@ -209,12 +209,12 @@ windrv_match(matchfunc, ctx) match = matchfunc(d->windrv_bustype, d->windrv_devlist, ctx); if (match == TRUE) { mtx_unlock(&drvdb_mtx); - return(d); + return (d); } } mtx_unlock(&drvdb_mtx); - return(NULL); + return (NULL); } /* @@ -283,7 +283,7 @@ windrv_unload(mod, img, len) return (ENOENT); if (drv == NULL) - return(ENOENT); + return (ENOENT); /* * Destroy any custom extensions that may have been added. @@ -306,7 +306,7 @@ windrv_unload(mod, img, len) /* Free our DB handle */ free(r, M_DEVBUF); - return(0); + return (0); } #define WINDRV_LOADED htonl(0x42534F44) @@ -345,28 +345,28 @@ windrv_load(mod, img, len, bustype, devl /* Perform text relocation */ if (pe_relocate(img)) - return(ENOEXEC); + return (ENOEXEC); /* Dynamically link the NDIS.SYS routines -- required. */ if (pe_patch_imports(img, "NDIS", ndis_functbl)) - return(ENOEXEC); + return (ENOEXEC); /* Dynamically link the HAL.dll routines -- optional. */ if (pe_get_import_descriptor(img, &imp_desc, "HAL") == 0) { if (pe_patch_imports(img, "HAL", hal_functbl)) - return(ENOEXEC); + return (ENOEXEC); } /* Dynamically link ntoskrnl.exe -- optional. */ if (pe_get_import_descriptor(img, &imp_desc, "ntoskrnl") == 0) { if (pe_patch_imports(img, "ntoskrnl", ntoskrnl_functbl)) - return(ENOEXEC); + return (ENOEXEC); } /* Dynamically link USBD.SYS -- optional */ if (pe_get_import_descriptor(img, &imp_desc, "USBD") == 0) { if (pe_patch_imports(img, "USBD", usbd_functbl)) - return(ENOEXEC); + return (ENOEXEC); } *ptr = WINDRV_LOADED; @@ -398,7 +398,7 @@ skipreloc: if (drv->dro_driverext == NULL) { free(new, M_DEVBUF); free(drv, M_DEVBUF); - return(ENOMEM); + return (ENOMEM); } InitializeListHead((&drv->dro_driverext->dre_usrext)); @@ -410,7 +410,7 @@ skipreloc: if (RtlAnsiStringToUnicodeString(&drv->dro_drivername, &as, TRUE)) { free(new, M_DEVBUF); free(drv, M_DEVBUF); - return(ENOMEM); + return (ENOMEM); } new->windrv_object = drv; @@ -426,7 +426,7 @@ skipreloc: RtlFreeUnicodeString(&drv->dro_drivername); free(drv, M_DEVBUF); free(new, M_DEVBUF); - return(ENODEV); + return (ENODEV); } mtx_lock(&drvdb_mtx); @@ -463,7 +463,7 @@ windrv_create_pdo(drv, bsddev) dev->do_devext = bsddev; - return(STATUS_SUCCESS); + return (STATUS_SUCCESS); } void @@ -482,8 +482,6 @@ windrv_destroy_pdo(drv, bsddev) mtx_lock(&drvdb_mtx); IoDeleteDevice(pdo); mtx_unlock(&drvdb_mtx); - - return; } /* @@ -503,13 +501,13 @@ windrv_find_pdo(drv, bsddev) while (pdo != NULL) { if (pdo->do_devext == bsddev) { mtx_unlock(&drvdb_mtx); - return(pdo); + return (pdo); } pdo = pdo->do_nextdev; } mtx_unlock(&drvdb_mtx); - return(NULL); + return (NULL); } /* @@ -533,7 +531,7 @@ windrv_bus_attach(drv, name) if (RtlAnsiStringToUnicodeString(&drv->dro_drivername, &as, TRUE)) { free(new, M_DEVBUF); - return(ENOMEM); + return (ENOMEM); } /* @@ -550,7 +548,7 @@ windrv_bus_attach(drv, name) STAILQ_INSERT_HEAD(&drvdb_head, new, link); mtx_unlock(&drvdb_mtx); - return(0); + return (0); } #ifdef __amd64__ @@ -578,7 +576,7 @@ windrv_wrap(func, wrap, argcnt, ftype) p = malloc((wrapend - wrapstart), M_DEVBUF, M_NOWAIT); if (p == NULL) - return(ENOMEM); + return (ENOMEM); /* Copy over the code. */ @@ -591,7 +589,7 @@ windrv_wrap(func, wrap, argcnt, ftype) *wrap = p; - return(0); + return (0); } #endif /* __amd64__ */ @@ -695,8 +693,6 @@ ctxsw_utow(void) x86_critical_exit(); /* Now entering Windows land, population: you. */ - - return; } /* @@ -722,7 +718,6 @@ ctxsw_wtou(void) if (t->tid_cpu != curthread->td_oncpu) panic("ctxsw GOT MOVED TO OTHER CPU!"); #endif - return; } static int windrv_wrap_stdcall(funcptr, funcptr *, int); @@ -754,7 +749,7 @@ windrv_wrap_fastcall(func, wrap, argcnt) p = malloc((wrapend - wrapstart), M_DEVBUF, M_NOWAIT); if (p == NULL) - return(ENOMEM); + return (ENOMEM); /* Copy over the code. */ @@ -774,7 +769,7 @@ windrv_wrap_fastcall(func, wrap, argcnt) *wrap = p; - return(0); + return (0); } extern void x86_stdcall_wrap(void); @@ -802,7 +797,7 @@ windrv_wrap_stdcall(func, wrap, argcnt) p = malloc((wrapend - wrapstart), M_DEVBUF, M_NOWAIT); if (p == NULL) - return(ENOMEM); + return (ENOMEM); /* Copy over the code. */ @@ -818,7 +813,7 @@ windrv_wrap_stdcall(func, wrap, argcnt) *wrap = p; - return(0); + return (0); } extern void x86_regparm_wrap(void); @@ -842,7 +837,7 @@ windrv_wrap_regparm(func, wrap) p = malloc((wrapend - wrapstart), M_DEVBUF, M_NOWAIT); if (p == NULL) - return(ENOMEM); + return (ENOMEM); /* Copy over the code. */ @@ -855,7 +850,7 @@ windrv_wrap_regparm(func, wrap) *wrap = p; - return(0); + return (0); } int @@ -867,18 +862,18 @@ windrv_wrap(func, wrap, argcnt, ftype) { switch(ftype) { case WINDRV_WRAP_FASTCALL: - return(windrv_wrap_fastcall(func, wrap, argcnt)); + return (windrv_wrap_fastcall(func, wrap, argcnt)); case WINDRV_WRAP_STDCALL: - return(windrv_wrap_stdcall(func, wrap, argcnt)); + return (windrv_wrap_stdcall(func, wrap, argcnt)); case WINDRV_WRAP_REGPARM: - return(windrv_wrap_regparm(func, wrap)); + return (windrv_wrap_regparm(func, wrap)); case WINDRV_WRAP_CDECL: - return(windrv_wrap_stdcall(func, wrap, 0)); + return (windrv_wrap_stdcall(func, wrap, 0)); default: break; } - return(EINVAL); + return (EINVAL); } static void @@ -909,8 +904,6 @@ x86_oldldt(dummy) x86_setldt(>able, ltable); mtx_unlock_spin(&dt_lock); - - return; } static void @@ -959,8 +952,6 @@ x86_newldt(dummy) mtx_unlock_spin(&dt_lock); /* Whew. */ - - return; } #endif /* __i386__ */ @@ -971,5 +962,5 @@ windrv_unwrap(func) { free(func, M_DEVBUF); - return(0); + return (0); } Modified: head/sys/compat/ndis/subr_hal.c ============================================================================== --- head/sys/compat/ndis/subr_hal.c Mon Nov 2 09:56:46 2009 (r198785) +++ head/sys/compat/ndis/subr_hal.c Mon Nov 2 11:07:42 2009 (r198786) @@ -102,8 +102,7 @@ hal_libinit() patch++; } - - return(0); + return (0); } int @@ -121,7 +120,7 @@ hal_libfini() patch++; } - return(0); + return (0); } static void @@ -129,7 +128,6 @@ KeStallExecutionProcessor(usecs) uint32_t usecs; { DELAY(usecs); - return; } static void @@ -138,21 +136,18 @@ WRITE_PORT_ULONG(port, val) uint32_t val; { bus_space_write_4(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val); - return; } static void WRITE_PORT_USHORT(uint16_t *port, uint16_t val) { bus_space_write_2(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val); - return; } static void WRITE_PORT_UCHAR(uint8_t *port, uint8_t val) { bus_space_write_1(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val); - return; } static void @@ -163,7 +158,6 @@ WRITE_PORT_BUFFER_ULONG(port, val, cnt) { bus_space_write_multi_4(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val, cnt); - return; } static void @@ -174,7 +168,6 @@ WRITE_PORT_BUFFER_USHORT(port, val, cnt) { bus_space_write_multi_2(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val, cnt); - return; } static void @@ -185,28 +178,27 @@ WRITE_PORT_BUFFER_UCHAR(port, val, cnt) { bus_space_write_multi_1(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val, cnt); - return; } static uint16_t READ_PORT_USHORT(port) uint16_t *port; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 12:03:05 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2B78C10656C1; Mon, 2 Nov 2009 12:03:05 +0000 (UTC) (envelope-from remko@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1B4D28FC1B; Mon, 2 Nov 2009 12:03:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2C347U056039; Mon, 2 Nov 2009 12:03:04 GMT (envelope-from remko@svn.freebsd.org) Received: (from remko@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2C34EL056037; Mon, 2 Nov 2009 12:03:04 GMT (envelope-from remko@svn.freebsd.org) Message-Id: <200911021203.nA2C34EL056037@svn.freebsd.org> From: Remko Lodder Date: Mon, 2 Nov 2009 12:03:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198787 - head/share/man/man5 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 12:03:05 -0000 Author: remko Date: Mon Nov 2 12:03:04 2009 New Revision: 198787 URL: http://svn.freebsd.org/changeset/base/198787 Log: Document the WWWSUPFILE variable. PR: 137723 Submitted by: Sofian Brabez Approved by: imp (mentor, implicit) MFC after: 3 days Facilitated by: Snow B.V. Modified: head/share/man/man5/make.conf.5 Modified: head/share/man/man5/make.conf.5 ============================================================================== --- head/share/man/man5/make.conf.5 Mon Nov 2 11:07:42 2009 (r198786) +++ head/share/man/man5/make.conf.5 Mon Nov 2 12:03:04 2009 (r198787) @@ -318,6 +318,14 @@ Set this to use .Xr cvsup 1 to update your ports with .Dq Li "make update" . +.It Va WWWSUPFILE +.Pq Vt str +The www +.Ar supfile +to use when doing a +.Dq Li "make update" +This defaults to +.Pa /usr/share/examples/cvsup/www\-supfile . .El .Ss "BUILDING THE KERNEL" The following list provides a name and short description for variables From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 12:35:39 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 97727106566C; Mon, 2 Nov 2009 12:35:39 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4EAE18FC20; Mon, 2 Nov 2009 12:35:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2CZc7U056832; Mon, 2 Nov 2009 12:35:38 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2CZc1R056811; Mon, 2 Nov 2009 12:35:38 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <200911021235.nA2CZc1R056811@svn.freebsd.org> From: Christian Brueffer Date: Mon, 2 Nov 2009 12:35:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198788 - in head: bin/getfacl lib/libc/gen lib/libpmc share/man/man4 share/man/man5 share/man/man7 usr.bin/tail usr.sbin/i2c usr.sbin/nfsd usr.sbin/wake X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 12:35:39 -0000 Author: brueffer Date: Mon Nov 2 12:35:38 2009 New Revision: 198788 URL: http://svn.freebsd.org/changeset/base/198788 Log: Use our canonical .Dd format. Submitted by: Ulrich Spoerlein Modified: head/bin/getfacl/getfacl.1 head/lib/libc/gen/posix_spawn.3 head/lib/libc/gen/posix_spawn_file_actions_addopen.3 head/lib/libc/gen/posix_spawn_file_actions_init.3 head/lib/libc/gen/posix_spawnattr_getflags.3 head/lib/libc/gen/posix_spawnattr_getpgroup.3 head/lib/libc/gen/posix_spawnattr_getschedparam.3 head/lib/libc/gen/posix_spawnattr_getschedpolicy.3 head/lib/libc/gen/posix_spawnattr_getsigdefault.3 head/lib/libc/gen/posix_spawnattr_getsigmask.3 head/lib/libc/gen/posix_spawnattr_init.3 head/lib/libpmc/pmc_attach.3 head/share/man/man4/tty.4 head/share/man/man5/ar.5 head/share/man/man5/msdosfs.5 head/share/man/man7/adding_user.7 head/usr.bin/tail/tail.1 head/usr.sbin/i2c/i2c.8 head/usr.sbin/nfsd/stablerestart.5 head/usr.sbin/wake/wake.8 Modified: head/bin/getfacl/getfacl.1 ============================================================================== --- head/bin/getfacl/getfacl.1 Mon Nov 2 12:03:04 2009 (r198787) +++ head/bin/getfacl/getfacl.1 Mon Nov 2 12:35:38 2009 (r198788) @@ -30,7 +30,7 @@ .\" Developed by the TrustedBSD Project. .\" Support for POSIX.1e access control lists. .\" -.Dd September 04, 2009 +.Dd September 4, 2009 .Dt GETFACL 1 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawn.3 ============================================================================== --- head/lib/libc/gen/posix_spawn.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawn.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWN 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawn_file_actions_addopen.3 ============================================================================== --- head/lib/libc/gen/posix_spawn_file_actions_addopen.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawn_file_actions_addopen.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWN_FILE_ACTIONS_ADDOPEN 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawn_file_actions_init.3 ============================================================================== --- head/lib/libc/gen/posix_spawn_file_actions_init.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawn_file_actions_init.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWN_FILE_ACTIONS_INIT 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_getflags.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_getflags.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_getflags.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_GETFLAGS 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_getpgroup.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_getpgroup.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_getpgroup.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_GETPGROUP 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_getschedparam.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_getschedparam.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_getschedparam.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_GETSCHEDPARAM 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_getschedpolicy.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_getschedpolicy.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_getschedpolicy.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_GETSCHEDPOLICY 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_getsigdefault.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_getsigdefault.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_getsigdefault.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_GETSIGDEFAULT 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_getsigmask.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_getsigmask.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_getsigmask.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_GETSIGMASK 3 .Os .Sh NAME Modified: head/lib/libc/gen/posix_spawnattr_init.3 ============================================================================== --- head/lib/libc/gen/posix_spawnattr_init.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libc/gen/posix_spawnattr_init.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Mar 24, 2008 +.Dd March 24, 2008 .Dt POSIX_SPAWNATTR_INIT 3 .Os .Sh NAME Modified: head/lib/libpmc/pmc_attach.3 ============================================================================== --- head/lib/libpmc/pmc_attach.3 Mon Nov 2 12:03:04 2009 (r198787) +++ head/lib/libpmc/pmc_attach.3 Mon Nov 2 12:35:38 2009 (r198788) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 25 2007 +.Dd November 25, 2007 .Os .Dt PMC_ATTACH 3 .Sh NAME Modified: head/share/man/man4/tty.4 ============================================================================== --- head/share/man/man4/tty.4 Mon Nov 2 12:03:04 2009 (r198787) +++ head/share/man/man4/tty.4 Mon Nov 2 12:35:38 2009 (r198788) @@ -32,7 +32,7 @@ .\" @(#)tty.4 8.3 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd Jun 27, 2007 +.Dd June 27, 2007 .Dt TTY 4 .Os .Sh NAME Modified: head/share/man/man5/ar.5 ============================================================================== --- head/share/man/man5/ar.5 Mon Nov 2 12:03:04 2009 (r198787) +++ head/share/man/man5/ar.5 Mon Nov 2 12:35:38 2009 (r198788) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 07, 2007 +.Dd September 7, 2007 .Os .Dt AR 5 .Sh NAME Modified: head/share/man/man5/msdosfs.5 ============================================================================== --- head/share/man/man5/msdosfs.5 Mon Nov 2 12:03:04 2009 (r198787) +++ head/share/man/man5/msdosfs.5 Mon Nov 2 12:35:38 2009 (r198788) @@ -2,7 +2,7 @@ .\" Written by Tom Rhodes .\" This file is in the public domain. .\" -.Dd Aug 22, 2007 +.Dd August 22, 2007 .Dt MSDOSFS 5 .Os .Sh NAME Modified: head/share/man/man7/adding_user.7 ============================================================================== --- head/share/man/man7/adding_user.7 Mon Nov 2 12:03:04 2009 (r198787) +++ head/share/man/man7/adding_user.7 Mon Nov 2 12:35:38 2009 (r198788) @@ -32,7 +32,7 @@ .\" @(#)adduser.8 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd Jan 30, 2009 +.Dd January 30, 2009 .Dt ADDING_USER 8 .Os .Sh NAME Modified: head/usr.bin/tail/tail.1 ============================================================================== --- head/usr.bin/tail/tail.1 Mon Nov 2 12:03:04 2009 (r198787) +++ head/usr.bin/tail/tail.1 Mon Nov 2 12:35:38 2009 (r198788) @@ -35,7 +35,7 @@ .\" @(#)tail.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd June 05, 2009 +.Dd June 5, 2009 .Dt TAIL 1 .Os .Sh NAME Modified: head/usr.sbin/i2c/i2c.8 ============================================================================== --- head/usr.sbin/i2c/i2c.8 Mon Nov 2 12:03:04 2009 (r198787) +++ head/usr.sbin/i2c/i2c.8 Mon Nov 2 12:35:38 2009 (r198788) @@ -26,7 +26,7 @@ .\" $FreeBSD$ .\" -.Dd Jan 23, 2009 +.Dd January 23, 2009 .Dt I2C 8 .Os .Sh NAME Modified: head/usr.sbin/nfsd/stablerestart.5 ============================================================================== --- head/usr.sbin/nfsd/stablerestart.5 Mon Nov 2 12:03:04 2009 (r198787) +++ head/usr.sbin/nfsd/stablerestart.5 Mon Nov 2 12:35:38 2009 (r198788) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Sept 7, 2007 +.Dd September 7, 2007 .Dt STABLERESTART 5 .Os .Sh NAME Modified: head/usr.sbin/wake/wake.8 ============================================================================== --- head/usr.sbin/wake/wake.8 Mon Nov 2 12:03:04 2009 (r198787) +++ head/usr.sbin/wake/wake.8 Mon Nov 2 12:35:38 2009 (r198788) @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd June 27 2009 +.Dd June 27, 2009 .Dt WAKE 8 .Os .Sh NAME From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 15:00:40 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 266A6106568D; Mon, 2 Nov 2009 15:00:40 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id F296E8FC1B; Mon, 2 Nov 2009 15:00:39 +0000 (UTC) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 8E32546B46; Mon, 2 Nov 2009 10:00:39 -0500 (EST) Date: Mon, 2 Nov 2009 15:00:39 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Colin Percival In-Reply-To: <200911020721.nA27LDq1048764@svn.freebsd.org> Message-ID: References: <200911020721.nA27LDq1048764@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="621616949-1518405475-1257174039=:37561" Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198781 - head/lib/libc/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 15:00:40 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --621616949-1518405475-1257174039=:37561 Content-Type: TEXT/PLAIN; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8BIT On Mon, 2 Nov 2009, Colin Percival wrote: > Attempt to reduce accidental foot-shooting by pointing out that > accept(2)ed sockets do not necessarily inherit O_NONBLOCK from > listening sockets on non-FreeBSD platforms. I wonder how much trouble we should go to to document bugs in other systems as non-portabilities for features that work in our system. This bug in Linux was brought to my attention recently: SO_RCVLOWAT and SO_SNDLOWAT Specify the minimum number of bytes in the buffer until the socket layer will pass the data to the protocol (SO_SNDLOWAT) or the user on receiving (SO_RCVLOWAT). These two values are ini‐ tialized to 1. SO_SNDLOWAT is not changeable on Linux (setsock‐ opt(2) fails with the error ENOPROTOOPT). SO_RCVLOWAT is changeable only since Linux 2.4. The select(2) and poll(2) sys‐ tem calls currently do not respect the SO_RCVLOWAT setting on Linux, and mark a socket readable when even a single byte of data is available. A subsequent read from the socket will block until SO_RCVLOWAT bytes are available. I think a more general caution for accept(2) might instead be: BUGS The inheritence of socket options from a listen socket to a newly accepted socket is inconsistent across protocols, and non-portable. Robert > > Feet shot: cperciva > MFC after: 1 month > > Modified: > head/lib/libc/sys/accept.2 > > Modified: head/lib/libc/sys/accept.2 > ============================================================================== > --- head/lib/libc/sys/accept.2 Mon Nov 2 06:36:54 2009 (r198780) > +++ head/lib/libc/sys/accept.2 Mon Nov 2 07:21:13 2009 (r198781) > @@ -126,6 +126,10 @@ new socket. > For some applications, performance may be enhanced by using an > .Xr accept_filter 9 > to pre-process incoming connections. > +.Pp > +Portable programs should not rely on the > +.Dv O_NONBLOCK > +property being inherited. > .Sh RETURN VALUES > The call returns \-1 on error. > If it succeeds, it returns a non-negative > --621616949-1518405475-1257174039=:37561-- From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 15:09:04 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5229310656C5; Mon, 2 Nov 2009 15:09:04 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from gizmo.2hip.net (gizmo.2hip.net [64.74.207.195]) by mx1.freebsd.org (Postfix) with ESMTP id 1067B8FC27; Mon, 2 Nov 2009 15:09:03 +0000 (UTC) Received: from [192.168.1.4] (adsl-150-102-19.bna.bellsouth.net [72.150.102.19]) (authenticated bits=0) by gizmo.2hip.net (8.14.3/8.14.3) with ESMTP id nA2F8wRT020125 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Mon, 2 Nov 2009 10:09:01 -0500 (EST) (envelope-from rnoland@FreeBSD.org) From: Robert Noland To: Robert Watson In-Reply-To: References: <200911020721.nA27LDq1048764@svn.freebsd.org> Content-Type: text/plain; charset="iso-2022-jp" Organization: FreeBSD Date: Mon, 02 Nov 2009 09:08:53 -0600 Message-Id: <1257174533.73292.10.camel@balrog.2hip.net> Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00, RCVD_IN_SORBS_DUL, RDNS_DYNAMIC, SPF_SOFTFAIL autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on gizmo.2hip.net Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Colin Percival Subject: Re: svn commit: r198781 - head/lib/libc/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 15:09:04 -0000 On Mon, 2009-11-02 at 15:00 +0000, Robert Watson wrote: > On Mon, 2 Nov 2009, Colin Percival wrote: > > > Attempt to reduce accidental foot-shooting by pointing out that > > accept(2)ed sockets do not necessarily inherit O_NONBLOCK from > > listening sockets on non-FreeBSD platforms. > > I wonder how much trouble we should go to to document bugs in other systems as > non-portabilities for features that work in our system. This bug in Linux was > brought to my attention recently: > > SO_RCVLOWAT and SO_SNDLOWAT > Specify the minimum number of bytes in the buffer until the > socket layer will pass the data to the protocol (SO_SNDLOWAT) or > the user on receiving (SO_RCVLOWAT). These two values are ini$B!>(B > tialized to 1. SO_SNDLOWAT is not changeable on Linux (setsock$B!>(B > opt(2) fails with the error ENOPROTOOPT). SO_RCVLOWAT is > changeable only since Linux 2.4. The select(2) and poll(2) sys$B!>(B > tem calls currently do not respect the SO_RCVLOWAT setting on > Linux, and mark a socket readable when even a single byte of > data is available. A subsequent read from the socket will block > until SO_RCVLOWAT bytes are available. > > I think a more general caution for accept(2) might instead be: > > BUGS > The inheritence of socket options from a listen socket to a newly > accepted socket is inconsistent across protocols, and non-portable. I don't think we have any business documenting what linux does or does not do. As much as I would hate to see someone wasting time finding this linux bug, we should only document our own behavior. Hopefully we at least have a hope of keeping that information accurate. robert. > Robert > > > > > Feet shot: cperciva > > MFC after: 1 month > > > > Modified: > > head/lib/libc/sys/accept.2 > > > > Modified: head/lib/libc/sys/accept.2 > > ============================================================================== > > --- head/lib/libc/sys/accept.2 Mon Nov 2 06:36:54 2009 (r198780) > > +++ head/lib/libc/sys/accept.2 Mon Nov 2 07:21:13 2009 (r198781) > > @@ -126,6 +126,10 @@ new socket. > > For some applications, performance may be enhanced by using an > > .Xr accept_filter 9 > > to pre-process incoming connections. > > +.Pp > > +Portable programs should not rely on the > > +.Dv O_NONBLOCK > > +property being inherited. > > .Sh RETURN VALUES > > The call returns \-1 on error. > > If it succeeds, it returns a non-negative > > -- Robert Noland FreeBSD From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 15:51:09 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 771331065676; Mon, 2 Nov 2009 15:51:09 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 343458FC13; Mon, 2 Nov 2009 15:51:09 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id nA2FjwNo071234; Mon, 2 Nov 2009 08:45:58 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Mon, 02 Nov 2009 08:46:16 -0700 (MST) Message-Id: <20091102.084616.-1258100553.imp@bsdimp.com> To: ed@80386.nl From: "M. Warner Losh" In-Reply-To: <20091102102404.GP1293@hoeg.nl> References: <20091101011212.GG1293@hoeg.nl> <20091102100435.GA67211@walton.maths.tcd.ie> <20091102102404.GP1293@hoeg.nl> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: dwmalone@maths.tcd.ie, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 15:51:09 -0000 In message: <20091102102404.GP1293@hoeg.nl> Ed Schouten writes: : Hello David, : : * David Malone wrote: : > Surely it is an API change, but not an ABI change? Code that used : > to do: : > : > d.d_uid = 3; : > : > will no longer compile, but code that was comipled with the old : > version will still run. I understand that the assignment doesn't : > do anything useful, but I suppose there still could be code that : > does it? : : Yes, in theory there could be pieces of code that do that, but keep in : mind that d_uid was never meant to be used by device drivers. It was : used by devfs internally, before cdevpriv existed. : : Looking at the SVN logs, it was introduced in March 2005, but it was : already rendered useless in September that same year, when devfs was : modified to just obtain the ownership/modes from the cdevpriv instead of : the cdevsw. : : Interesting commits: : : - http://svn.freebsd.org/viewvc/base?view=revision&revision=143746 : - http://svn.freebsd.org/viewvc/base?view=revision&revision=150342 True, but you've now spent way more time than a version bump would have taken on this. The first of these also does a version bump. :) And you haven't answered my question: Have you confirmed that there's no ABI changes on all platforms? Warner From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 15:54:15 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C103D106566B; Mon, 2 Nov 2009 15:54:15 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 605A58FC08; Mon, 2 Nov 2009 15:54:15 +0000 (UTC) Received: by palm.hoeg.nl (Postfix, from userid 1000) id 4B9351CF71; Mon, 2 Nov 2009 16:54:14 +0100 (CET) Date: Mon, 2 Nov 2009 16:54:14 +0100 From: Ed Schouten To: "M. Warner Losh" Message-ID: <20091102155414.GR1293@hoeg.nl> References: <20091101011212.GG1293@hoeg.nl> <20091102100435.GA67211@walton.maths.tcd.ie> <20091102102404.GP1293@hoeg.nl> <20091102.084616.-1258100553.imp@bsdimp.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6CpFlezhW0MxRmxw" Content-Disposition: inline In-Reply-To: <20091102.084616.-1258100553.imp@bsdimp.com> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: dwmalone@maths.tcd.ie, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 15:54:15 -0000 --6CpFlezhW0MxRmxw Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * M. Warner Losh wrote: > And you haven't answered my question: Have you confirmed that there's > no ABI changes on all platforms? Confirmed on all platforms? No. I've only tested it on i386 and amd64. I think someone also tested it on arm, so this makes me believe other architectures will also work as expected. --=20 Ed Schouten WWW: http://80386.nl/ --6CpFlezhW0MxRmxw Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrvAKYACgkQ52SDGA2eCwVQVQCfUf64ghgZLH/vCmNgUgq0CDGm SRgAn0lnQQWBKQ7U6onxfMP6Vr0zkoXb =E9No -----END PGP SIGNATURE----- --6CpFlezhW0MxRmxw-- From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 16:56:59 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 86307106568F; Mon, 2 Nov 2009 16:56:59 +0000 (UTC) (envelope-from ivoras@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 74D2F8FC19; Mon, 2 Nov 2009 16:56:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2Gux6h063689; Mon, 2 Nov 2009 16:56:59 GMT (envelope-from ivoras@svn.freebsd.org) Received: (from ivoras@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2GuxK1063687; Mon, 2 Nov 2009 16:56:59 GMT (envelope-from ivoras@svn.freebsd.org) Message-Id: <200911021656.nA2GuxK1063687@svn.freebsd.org> From: Ivan Voras Date: Mon, 2 Nov 2009 16:56:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198811 - head/sys/vm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 16:56:59 -0000 Author: ivoras Date: Mon Nov 2 16:56:59 2009 New Revision: 198811 URL: http://svn.freebsd.org/changeset/base/198811 Log: Add sysctl documentation strings. The descriptions are derived from tuning(7). One of the descriptions references tuning(7) because it is too complex to adequatly describe here (it is not a simple boolean sysctl) and users should be warned to that. Reviewed by: alc, kib Approved by: gnn (mentor) Modified: head/sys/vm/swap_pager.c Modified: head/sys/vm/swap_pager.c ============================================================================== --- head/sys/vm/swap_pager.c Mon Nov 2 16:55:33 2009 (r198810) +++ head/sys/vm/swap_pager.c Mon Nov 2 16:56:59 2009 (r198811) @@ -155,11 +155,15 @@ int swap_pager_avail; static int swdev_syscall_active = 0; /* serialize swap(on|off) */ static vm_ooffset_t swap_total; -SYSCTL_QUAD(_vm, OID_AUTO, swap_total, CTLFLAG_RD, &swap_total, 0, ""); +SYSCTL_QUAD(_vm, OID_AUTO, swap_total, CTLFLAG_RD, &swap_total, 0, + "Total amount of available swap storage."); static vm_ooffset_t swap_reserved; -SYSCTL_QUAD(_vm, OID_AUTO, swap_reserved, CTLFLAG_RD, &swap_reserved, 0, ""); +SYSCTL_QUAD(_vm, OID_AUTO, swap_reserved, CTLFLAG_RD, &swap_reserved, 0, + "Amount of swap storage needed to back all allocated anonymous memory."); static int overcommit = 0; -SYSCTL_INT(_vm, OID_AUTO, overcommit, CTLFLAG_RW, &overcommit, 0, ""); +SYSCTL_INT(_vm, OID_AUTO, overcommit, CTLFLAG_RW, &overcommit, 0, + "Configure virtual memory overcommit behavior. See tuning(7) " + "for details."); /* bits from overcommit */ #define SWAP_RESERVE_FORCE_ON (1 << 0) From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 17:45:40 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43CB3106568B; Mon, 2 Nov 2009 17:45:40 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 328638FC25; Mon, 2 Nov 2009 17:45:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2HjecS064715; Mon, 2 Nov 2009 17:45:40 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2Hjewx064713; Mon, 2 Nov 2009 17:45:40 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <200911021745.nA2Hjewx064713@svn.freebsd.org> From: Alan Cox Date: Mon, 2 Nov 2009 17:45:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198812 - head/sys/vm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 17:45:40 -0000 Author: alc Date: Mon Nov 2 17:45:39 2009 New Revision: 198812 URL: http://svn.freebsd.org/changeset/base/198812 Log: Avoid pointless calls to pmap_protect(). Reviewed by: kib Modified: head/sys/vm/vm_map.c Modified: head/sys/vm/vm_map.c ============================================================================== --- head/sys/vm/vm_map.c Mon Nov 2 16:56:59 2009 (r198811) +++ head/sys/vm/vm_map.c Mon Nov 2 17:45:39 2009 (r198812) @@ -1914,10 +1914,10 @@ vm_map_protect(vm_map_t map, vm_offset_t } /* - * Update physical map if necessary. Worry about copy-on-write - * here. + * When restricting access, update the physical map. Worry + * about copy-on-write here. */ - if (current->protection != old_prot) { + if ((old_prot & ~current->protection) != 0) { #define MASK(entry) (((entry)->eflags & MAP_ENTRY_COW) ? ~VM_PROT_WRITE : \ VM_PROT_ALL) pmap_protect(map->pmap, current->start, From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:08:20 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E39D0106566C; Mon, 2 Nov 2009 18:08:19 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtpout027.mac.com (asmtpout027.mac.com [17.148.16.102]) by mx1.freebsd.org (Postfix) with ESMTP id C979E8FC12; Mon, 2 Nov 2009 18:08:19 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=us-ascii; format=flowed; delsp=yes Received: from macbook-pro.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp027.mac.com (Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008; 32bit)) with ESMTPSA id <0KSH007F6UDT5F30@asmtp027.mac.com>; Mon, 02 Nov 2009 10:08:19 -0800 (PST) From: Marcel Moolenaar In-reply-to: <20091102155414.GR1293@hoeg.nl> Date: Mon, 02 Nov 2009 10:08:17 -0800 Message-id: References: <20091101011212.GG1293@hoeg.nl> <20091102100435.GA67211@walton.maths.tcd.ie> <20091102102404.GP1293@hoeg.nl> <20091102.084616.-1258100553.imp@bsdimp.com> <20091102155414.GR1293@hoeg.nl> To: Ed Schouten X-Mailer: Apple Mail (2.1076) Cc: dwmalone@maths.tcd.ie, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, "M. Warner Losh" Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:08:21 -0000 On Nov 2, 2009, at 7:54 AM, Ed Schouten wrote: > * M. Warner Losh wrote: >> And you haven't answered my question: Have you confirmed that there's >> no ABI changes on all platforms? > > Confirmed on all platforms? No. I've only tested it on i386 and > amd64. I > think someone also tested it on arm, so this makes me believe other > architectures will also work as expected. When you bank on alignment, don't just test i386 and amd64. Please put in the extra effort to contact platform owners to give you a thumbs up. While I'm responding: please do a version bump as Warner suggested. The pain of needing one without having done so, is infinitely more than the effort or repo bloat can be together. Oh, and no, I don't think this changes the ABI :-) For a change that does change the ABI: revision 198506 tcsh(1) dumps core with a sig 11... Trick or treat... -- Marcel Moolenaar xcllnt@mac.com From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:15:11 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EC401065672; Mon, 2 Nov 2009 18:15:11 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6D41B8FC0C; Mon, 2 Nov 2009 18:15:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2IFBj1065407; Mon, 2 Nov 2009 18:15:11 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2IFBPr065404; Mon, 2 Nov 2009 18:15:11 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <200911021815.nA2IFBPr065404@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 2 Nov 2009 18:15:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198813 - head/sys/dev/mii X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:15:11 -0000 Author: yongari Date: Mon Nov 2 18:15:11 2009 New Revision: 198813 URL: http://svn.freebsd.org/changeset/base/198813 Log: Add BCM5761 PHY id. Modified: head/sys/dev/mii/brgphy.c head/sys/dev/mii/miidevs Modified: head/sys/dev/mii/brgphy.c ============================================================================== --- head/sys/dev/mii/brgphy.c Mon Nov 2 17:45:39 2009 (r198812) +++ head/sys/dev/mii/brgphy.c Mon Nov 2 18:15:11 2009 (r198813) @@ -134,6 +134,7 @@ static const struct mii_phydesc brgphys[ MII_PHY_DESC(xxBROADCOM_ALT1, BCM5709CAX), MII_PHY_DESC(xxBROADCOM_ALT1, BCM5722), MII_PHY_DESC(xxBROADCOM_ALT1, BCM5709C), + MII_PHY_DESC(xxBROADCOM_ALT1, BCM5761), MII_PHY_DESC(BROADCOM2, BCM5906), MII_PHY_END }; Modified: head/sys/dev/mii/miidevs ============================================================================== --- head/sys/dev/mii/miidevs Mon Nov 2 17:45:39 2009 (r198812) +++ head/sys/dev/mii/miidevs Mon Nov 2 18:15:11 2009 (r198813) @@ -154,6 +154,7 @@ model xxBROADCOM_ALT1 BCM5708S 0x0015 BC model xxBROADCOM_ALT1 BCM5709CAX 0x002c BCM5709C(AX) 10/100/1000baseTX PHY model xxBROADCOM_ALT1 BCM5722 0x002d BCM5722 10/100/1000baseTX PHY model xxBROADCOM_ALT1 BCM5709C 0x003c BCM5709C 10/100/1000baseTX PHY +model xxBROADCOM_ALT1 BCM5761 0x003d BCM5761 10/100/1000baseTX PHY model BROADCOM2 BCM5906 0x0004 BCM5906 10/100baseTX PHY /* Cicada Semiconductor PHYs (now owned by Vitesse?) */ From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:20:25 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id C59EC10656A3 for ; Mon, 2 Nov 2009 18:20:25 +0000 (UTC) (envelope-from cperciva@freebsd.org) Received: from xps.daemonology.net (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx2.freebsd.org (Postfix) with SMTP id 25B37161BCC for ; Mon, 2 Nov 2009 18:20:20 +0000 (UTC) Received: (qmail 21282 invoked from network); 2 Nov 2009 18:20:19 -0000 Received: from unknown (HELO xps.daemonology.net) (127.0.0.1) by localhost with SMTP; 2 Nov 2009 18:20:19 -0000 Message-ID: <4AEF22E3.5070701@freebsd.org> Date: Mon, 02 Nov 2009 10:20:19 -0800 From: Colin Percival User-Agent: Thunderbird 2.0.0.23 (X11/20090919) MIME-Version: 1.0 To: Robert Watson References: <200911020721.nA27LDq1048764@svn.freebsd.org> In-Reply-To: X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r198781 - head/lib/libc/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:20:25 -0000 Robert Watson wrote: > On Mon, 2 Nov 2009, Colin Percival wrote: >> Attempt to reduce accidental foot-shooting by pointing out that >> accept(2)ed sockets do not necessarily inherit O_NONBLOCK from >> listening sockets on non-FreeBSD platforms. > > I wonder how much trouble we should go to to document bugs in other > systems as non-portabilities for features that work in our system. I don't think there's any simple rule to apply here except "use common sense". One can argue that FreeBSD man pages exist for the purpose of documenting FreeBSD; but I'd also like to think that FreeBSD is a good development platform for writing portable applications, so alerting our users to potentially non-portable code certainly has some value. (And there are many other examples of "portable programs should not..." in our man pages, not just the one I added.) The non-portability I just documented was a particularly obnoxious one, since in event-driven code it can go unnoticed for a long time -- as I just recently discovered. > I think a more general caution for accept(2) might instead be: > > BUGS > The inheritence of socket options from a listen socket to a newly > accepted socket is inconsistent across protocols, and non-portable. I was originally going to write it that way, but when I looked at the existing text I saw that it only mentioned inheriting O_NONBLOCK and said nothing about other options -- so I figured that it was appropriate to follow suit and only mention O_NONBLOCK in saying what was non-portable. -- Colin Percival Security Officer, FreeBSD | freebsd.org | The power to serve Founder / author, Tarsnap | tarsnap.com | Online backups for the truly paranoid From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:29:16 2009 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B22C4106568B; Mon, 2 Nov 2009 18:29:16 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 8B1948FC19; Mon, 2 Nov 2009 18:29:16 +0000 (UTC) Received: from [192.168.2.101] (host217-43-176-60.range217-43.btcentralplus.com [217.43.176.60]) by cyrus.watson.org (Postfix) with ESMTPSA id CCD7F46B06; Mon, 2 Nov 2009 13:29:14 -0500 (EST) Mime-Version: 1.0 (Apple Message framework v1076) Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes From: "Robert N. M. Watson" In-Reply-To: <4AEF22E3.5070701@freebsd.org> Date: Mon, 2 Nov 2009 18:29:12 +0000 Content-Transfer-Encoding: 7bit Message-Id: References: <200911020721.nA27LDq1048764@svn.freebsd.org> <4AEF22E3.5070701@freebsd.org> To: Colin Percival X-Mailer: Apple Mail (2.1076) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r198781 - head/lib/libc/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:29:16 -0000 On 2 Nov 2009, at 18:20, Colin Percival wrote: >> I think a more general caution for accept(2) might instead be: >> >> BUGS >> The inheritence of socket options from a listen socket to a newly >> accepted socket is inconsistent across protocols, and non- >> portable. > > I was originally going to write it that way, but when I looked at the > existing text I saw that it only mentioned inheriting O_NONBLOCK and > said > nothing about other options -- so I figured that it was appropriate to > follow suit and only mention O_NONBLOCK in saying what was non- > portable. We preserve a number of socket options and other properties across accept(2), but not all. For example, we do preserve most socket-level options, linger state, routing fib number, and socket buffer sizing/ watermarks, as well as many connection properties such as TCP_NODELAY. However, if history is anything to go by, we also fail to preserve quite a few properties, and we've had a number of bug fixes over the years topping up the list of things inherited over accept. Robert From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:35:07 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4681B106568F; Mon, 2 Nov 2009 18:35:06 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 34F588FC1A; Mon, 2 Nov 2009 18:35:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2IZ6e9065998; Mon, 2 Nov 2009 18:35:06 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2IZ6WI065996; Mon, 2 Nov 2009 18:35:06 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <200911021835.nA2IZ6WI065996@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 2 Nov 2009 18:35:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198814 - head/sys/dev/re X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:35:07 -0000 Author: yongari Date: Mon Nov 2 18:35:05 2009 New Revision: 198814 URL: http://svn.freebsd.org/changeset/base/198814 Log: Add a check to know whether driver is still running after reacquiring driver lock in Rx handler. re(4) drops a driver lock before passing received frame to upper stack and reacquire the lock. During the time window ioctl calls could be executed and if the ioctl was interface down request, driver will stop the controller and free allocated mbufs. After that when driver comes back to Rx handler again it does not know what was happend so it could access free mbufs which in turn cause panic. Reported by: Norbert Papke < npapk <> acm dot org > Tested by: Norbert Papke < npapk <> acm dot org > Modified: head/sys/dev/re/if_re.c Modified: head/sys/dev/re/if_re.c ============================================================================== --- head/sys/dev/re/if_re.c Mon Nov 2 18:15:11 2009 (r198813) +++ head/sys/dev/re/if_re.c Mon Nov 2 18:35:05 2009 (r198814) @@ -1817,6 +1817,8 @@ re_rxeof(struct rl_softc *sc, int *rx_np for (i = sc->rl_ldata.rl_rx_prodidx; maxpkt > 0; i = RL_RX_DESC_NXT(sc, i)) { + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + break; cur_rx = &sc->rl_ldata.rl_rx_list[i]; rxstat = le32toh(cur_rx->rl_cmdstat); if ((rxstat & RL_RDESC_STAT_OWN) != 0) From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:51:24 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CA71E106566B; Mon, 2 Nov 2009 18:51:24 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B94278FC18; Mon, 2 Nov 2009 18:51:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2IpOx9066446; Mon, 2 Nov 2009 18:51:24 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2IpOZ4066444; Mon, 2 Nov 2009 18:51:24 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200911021851.nA2IpOZ4066444@svn.freebsd.org> From: Rui Paulo Date: Mon, 2 Nov 2009 18:51:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198816 - head/sys/compat/ndis X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:51:24 -0000 Author: rpaulo Date: Mon Nov 2 18:51:24 2009 New Revision: 198816 URL: http://svn.freebsd.org/changeset/base/198816 Log: Fix a non-style change that snuck in. Spotted by: danfe Modified: head/sys/compat/ndis/kern_ndis.c Modified: head/sys/compat/ndis/kern_ndis.c ============================================================================== --- head/sys/compat/ndis/kern_ndis.c Mon Nov 2 18:44:01 2009 (r198815) +++ head/sys/compat/ndis/kern_ndis.c Mon Nov 2 18:51:24 2009 (r198816) @@ -1200,7 +1200,7 @@ ndis_init_nic(arg) NDIS_LOCK(sc); sc->ndis_block->nmb_miniportadapterctx = NULL; NDIS_UNLOCK(sc); - return (status); + return (ENXIO); } /* From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 18:55:05 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6088C1065679 for ; Mon, 2 Nov 2009 18:55:05 +0000 (UTC) (envelope-from max@love2party.net) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.188]) by mx1.freebsd.org (Postfix) with ESMTP id CA5BA8FC19 for ; Mon, 2 Nov 2009 18:55:04 +0000 (UTC) Received: from vampire.homelinux.org (dslb-088-067-242-013.pools.arcor-ip.net [88.67.242.13]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0MK5kP-1N3f0c2bZ7-001ar2; Mon, 02 Nov 2009 19:55:04 +0100 Received: (qmail 75869 invoked from network); 2 Nov 2009 18:55:02 -0000 Received: from kvm.laiers.local (HELO kvm.localnet) (192.168.4.188) by laiers.local with SMTP; 2 Nov 2009 18:55:02 -0000 From: Max Laier Organization: FreeBSD To: Colin Percival Date: Mon, 2 Nov 2009 19:55:02 +0100 User-Agent: KMail/1.12.2 (Linux/2.6.31-ARCH; KDE/4.3.2; x86_64; ; ) References: <200911020721.nA27LDq1048764@svn.freebsd.org> <4AEF22E3.5070701@freebsd.org> In-Reply-To: <4AEF22E3.5070701@freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <200911021955.02459.max@love2party.net> X-Provags-ID: V01U2FsdGVkX19lT60d67MWff0NG8MShq0Ojd7GlazduHrIsG1 OyM+0Bf/6st5ZBROKOr7PVKgQf9/muA2aaIXVgeA+wDQRCU9++ QADKpBwnCytBO6ivLPJMA== Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Robert Watson Subject: Re: svn commit: r198781 - head/lib/libc/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 18:55:05 -0000 On Monday 02 November 2009 19:20:19 Colin Percival wrote: > Robert Watson wrote: > > On Mon, 2 Nov 2009, Colin Percival wrote: > >> Attempt to reduce accidental foot-shooting by pointing out that > >> accept(2)ed sockets do not necessarily inherit O_NONBLOCK from > >> listening sockets on non-FreeBSD platforms. > > > > I wonder how much trouble we should go to to document bugs in other > > systems as non-portabilities for features that work in our system. > > I don't think there's any simple rule to apply here except "use common > sense". One can argue that FreeBSD man pages exist for the purpose of > documenting FreeBSD; but I'd also like to think that FreeBSD is a good > development platform for writing portable applications, so alerting our > users to potentially non-portable code certainly has some value. (And +1 ... FreeBSD is such a great development platform specifically because of the complete man page collection. I'd argue, however, that we should keep the portability notes to the fact that there might be a difference - without going into too much detail what/where and why that difference is. In addition, the more detail we add, the more likely it is that the information grows stale as others realize that they should follow our lead ;) > there are many other examples of "portable programs should not..." in > our man pages, not just the one I added.) > > The non-portability I just documented was a particularly obnoxious one, > since in event-driven code it can go unnoticed for a long time -- as I > just recently discovered. > > > I think a more general caution for accept(2) might instead be: > > > > BUGS > > The inheritence of socket options from a listen socket to a newly > > accepted socket is inconsistent across protocols, and non-portable. > > I was originally going to write it that way, but when I looked at the > existing text I saw that it only mentioned inheriting O_NONBLOCK and said > nothing about other options -- so I figured that it was appropriate to > follow suit and only mention O_NONBLOCK in saying what was non-portable. > -- /"\ Best regards, | mlaier@freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier@EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 19:02:32 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33156106568F; Mon, 2 Nov 2009 19:02:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 209228FC1F; Mon, 2 Nov 2009 19:02:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2J2WwL066785; Mon, 2 Nov 2009 19:02:32 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2J2Vvb066782; Mon, 2 Nov 2009 19:02:31 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200911021902.nA2J2Vvb066782@svn.freebsd.org> From: Alexander Motin Date: Mon, 2 Nov 2009 19:02:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198818 - in head/sys/dev/ata: . chipsets X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 19:02:32 -0000 Author: mav Date: Mon Nov 2 19:02:31 2009 New Revision: 198818 URL: http://svn.freebsd.org/changeset/base/198818 Log: Add IDs for nVidia MCP65/77/79/89 SATA conntrollers. Modified: head/sys/dev/ata/ata-pci.h head/sys/dev/ata/chipsets/ata-nvidia.c Modified: head/sys/dev/ata/ata-pci.h ============================================================================== --- head/sys/dev/ata/ata-pci.h Mon Nov 2 19:01:20 2009 (r198817) +++ head/sys/dev/ata/ata-pci.h Mon Nov 2 19:02:31 2009 (r198818) @@ -260,6 +260,15 @@ struct ata_pci_controller { #define ATA_NFORCE_MCP61_S2 0x03f610de #define ATA_NFORCE_MCP61_S3 0x03f710de #define ATA_NFORCE_MCP65 0x044810de +#define ATA_NFORCE_MCP65_A0 0x044c10de +#define ATA_NFORCE_MCP65_A1 0x044d10de +#define ATA_NFORCE_MCP65_A2 0x044e10de +#define ATA_NFORCE_MCP65_A3 0x044f10de +#define ATA_NFORCE_MCP65_A4 0x045c10de +#define ATA_NFORCE_MCP65_A5 0x045d10de +#define ATA_NFORCE_MCP65_A6 0x045e10de +#define ATA_NFORCE_MCP65_A7 0x045f10de +#define ATA_NFORCE_MCP67 0x056010de #define ATA_NFORCE_MCP67_A0 0x055010de #define ATA_NFORCE_MCP67_A1 0x055110de #define ATA_NFORCE_MCP67_A2 0x055210de @@ -273,7 +282,6 @@ struct ata_pci_controller { #define ATA_NFORCE_MCP67_AA 0x055A10de #define ATA_NFORCE_MCP67_AB 0x055B10de #define ATA_NFORCE_MCP67_AC 0x058410de -#define ATA_NFORCE_MCP67 0x056010de #define ATA_NFORCE_MCP73 0x056c10de #define ATA_NFORCE_MCP73_A0 0x07f010de #define ATA_NFORCE_MCP73_A1 0x07f110de @@ -288,6 +296,42 @@ struct ata_pci_controller { #define ATA_NFORCE_MCP73_AA 0x07fa10de #define ATA_NFORCE_MCP73_AB 0x07fb10de #define ATA_NFORCE_MCP77 0x075910de +#define ATA_NFORCE_MCP77_A0 0x0ad010de +#define ATA_NFORCE_MCP77_A1 0x0ad110de +#define ATA_NFORCE_MCP77_A2 0x0ad210de +#define ATA_NFORCE_MCP77_A3 0x0ad310de +#define ATA_NFORCE_MCP77_A4 0x0ad410de +#define ATA_NFORCE_MCP77_A5 0x0ad510de +#define ATA_NFORCE_MCP77_A6 0x0ad610de +#define ATA_NFORCE_MCP77_A7 0x0ad710de +#define ATA_NFORCE_MCP77_A8 0x0ad810de +#define ATA_NFORCE_MCP77_A9 0x0ad910de +#define ATA_NFORCE_MCP77_AA 0x0ada10de +#define ATA_NFORCE_MCP77_AB 0x0adb10de +#define ATA_NFORCE_MCP79_A0 0x0ab410de +#define ATA_NFORCE_MCP79_A1 0x0ab510de +#define ATA_NFORCE_MCP79_A2 0x0ab610de +#define ATA_NFORCE_MCP79_A3 0x0ab710de +#define ATA_NFORCE_MCP79_A4 0x0ab810de +#define ATA_NFORCE_MCP79_A5 0x0ab910de +#define ATA_NFORCE_MCP79_A6 0x0aba10de +#define ATA_NFORCE_MCP79_A7 0x0abb10de +#define ATA_NFORCE_MCP79_A8 0x0abc10de +#define ATA_NFORCE_MCP79_A9 0x0abd10de +#define ATA_NFORCE_MCP79_AA 0x0abe10de +#define ATA_NFORCE_MCP79_AB 0x0abf10de +#define ATA_NFORCE_MCP89_A0 0x0d8410de +#define ATA_NFORCE_MCP89_A1 0x0d8510de +#define ATA_NFORCE_MCP89_A2 0x0d8610de +#define ATA_NFORCE_MCP89_A3 0x0d8710de +#define ATA_NFORCE_MCP89_A4 0x0d8810de +#define ATA_NFORCE_MCP89_A5 0x0d8910de +#define ATA_NFORCE_MCP89_A6 0x0d8a10de +#define ATA_NFORCE_MCP89_A7 0x0d8b10de +#define ATA_NFORCE_MCP89_A8 0x0d8c10de +#define ATA_NFORCE_MCP89_A9 0x0d8d10de +#define ATA_NFORCE_MCP89_AA 0x0d8e10de +#define ATA_NFORCE_MCP89_AB 0x0d8f10de #define ATA_PROMISE_ID 0x105a #define ATA_PDC20246 0x4d33105a Modified: head/sys/dev/ata/chipsets/ata-nvidia.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-nvidia.c Mon Nov 2 19:01:20 2009 (r198817) +++ head/sys/dev/ata/chipsets/ata-nvidia.c Mon Nov 2 19:02:31 2009 (r198818) @@ -97,6 +97,14 @@ ata_nvidia_probe(device_t dev) { ATA_NFORCE_MCP61_S2, 0, NV4|NVQ, 0, ATA_SA300, "nForce MCP61" }, { ATA_NFORCE_MCP61_S3, 0, NV4|NVQ, 0, ATA_SA300, "nForce MCP61" }, { ATA_NFORCE_MCP65, 0, 0, 0, ATA_UDMA6, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A0, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A1, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A2, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A3, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A4, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A5, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A6, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, + { ATA_NFORCE_MCP65_A7, 0, NVAHCI, 0, ATA_SA300, "nForce MCP65" }, { ATA_NFORCE_MCP67, 0, 0, 0, ATA_UDMA6, "nForce MCP67" }, { ATA_NFORCE_MCP67_A0, 0, NVAHCI, 0, ATA_SA300, "nForce MCP67" }, { ATA_NFORCE_MCP67_A1, 0, NVAHCI, 0, ATA_SA300, "nForce MCP67" }, @@ -125,6 +133,42 @@ ata_nvidia_probe(device_t dev) { ATA_NFORCE_MCP73_AA, 0, NVAHCI, 0, ATA_SA300, "nForce MCP73" }, { ATA_NFORCE_MCP73_AB, 0, NVAHCI, 0, ATA_SA300, "nForce MCP73" }, { ATA_NFORCE_MCP77, 0, 0, 0, ATA_UDMA6, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A0, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A1, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A2, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A3, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A4, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A5, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A6, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A7, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A8, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_A9, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_AA, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP77_AB, 0, NVAHCI, 0, ATA_SA300, "nForce MCP77" }, + { ATA_NFORCE_MCP79_A0, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A1, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A2, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A3, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A4, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A5, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A6, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A7, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A8, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_A9, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_AA, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP79_AB, 0, NVAHCI, 0, ATA_SA300, "nForce MCP79" }, + { ATA_NFORCE_MCP89_A0, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A1, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A2, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A3, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A4, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A5, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A6, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A7, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A8, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_A9, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_AA, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, + { ATA_NFORCE_MCP89_AB, 0, NVAHCI, 0, ATA_SA300, "nForce MCP89" }, { 0, 0, 0, 0, 0, 0}} ; if (pci_get_vendor(dev) != ATA_NVIDIA_ID) From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 19:13:13 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47E0F106566C; Mon, 2 Nov 2009 19:13:13 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 36A998FC2A; Mon, 2 Nov 2009 19:13:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2JDDqV067091; Mon, 2 Nov 2009 19:13:13 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2JDDA8067089; Mon, 2 Nov 2009 19:13:13 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200911021913.nA2JDDA8067089@svn.freebsd.org> From: Rui Paulo Date: Mon, 2 Nov 2009 19:13:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198819 - head/sys/compat/ndis X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 19:13:13 -0000 Author: rpaulo Date: Mon Nov 2 19:13:12 2009 New Revision: 198819 URL: http://svn.freebsd.org/changeset/base/198819 Log: Revert a functional change that snuck in. Modified: head/sys/compat/ndis/subr_ndis.c Modified: head/sys/compat/ndis/subr_ndis.c ============================================================================== --- head/sys/compat/ndis/subr_ndis.c Mon Nov 2 19:02:31 2009 (r198818) +++ head/sys/compat/ndis/subr_ndis.c Mon Nov 2 19:13:12 2009 (r198819) @@ -1246,7 +1246,7 @@ NdisMQueryAdapterResources(status, adapt { ndis_miniport_block *block; struct ndis_softc *sc; - uint32_t rsclen; + int rsclen; block = (ndis_miniport_block *)adapter; sc = device_get_softc(block->nmb_physdeviceobj->do_devext); From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 20:18:52 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B507106566B; Mon, 2 Nov 2009 20:18:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6AAB98FC1B; Mon, 2 Nov 2009 20:18:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2KIpWP068435; Mon, 2 Nov 2009 20:18:51 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2KIp6Q068433; Mon, 2 Nov 2009 20:18:51 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <200911022018.nA2KIp6Q068433@svn.freebsd.org> From: John Baldwin Date: Mon, 2 Nov 2009 20:18:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198820 - head/sbin/ddb X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 20:18:52 -0000 Author: jhb Date: Mon Nov 2 20:18:50 2009 New Revision: 198820 URL: http://svn.freebsd.org/changeset/base/198820 Log: Ensure 'kvm' is always initialized. If "-M" was not specified and the garbage value on the stack was not zero, then 'ddb capture' would try to use the garbage value as a kvm_t pointer. MFC after: 1 week Modified: head/sbin/ddb/ddb_capture.c Modified: head/sbin/ddb/ddb_capture.c ============================================================================== --- head/sbin/ddb/ddb_capture.c Mon Nov 2 19:13:12 2009 (r198819) +++ head/sbin/ddb/ddb_capture.c Mon Nov 2 20:18:50 2009 (r198820) @@ -204,6 +204,7 @@ ddb_capture(int argc, char *argv[]) mflag = NULL; nflag = NULL; + kvm = NULL; while ((ch = getopt(argc, argv, "M:N:")) != -1) { switch (ch) { case 'M': From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 20:34:35 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66E5B106566C for ; Mon, 2 Nov 2009 20:34:35 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (skuns.zoral.com.ua [91.193.166.194]) by mx1.freebsd.org (Postfix) with ESMTP id BD8968FC1D for ; Mon, 2 Nov 2009 20:34:34 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id nA2KYK46030820 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 2 Nov 2009 22:34:20 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id nA2KYKuE032207; Mon, 2 Nov 2009 22:34:20 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id nA2KYJW1032206; Mon, 2 Nov 2009 22:34:19 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 2 Nov 2009 22:34:19 +0200 From: Kostik Belousov To: Marcel Moolenaar Message-ID: <20091102203419.GV2147@deviant.kiev.zoral.com.ua> References: <20091101011212.GG1293@hoeg.nl> <20091102100435.GA67211@walton.maths.tcd.ie> <20091102102404.GP1293@hoeg.nl> <20091102.084616.-1258100553.imp@bsdimp.com> <20091102155414.GR1293@hoeg.nl> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="BlkQeOBdElZ1aiuH" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: Ed Schouten , src-committers@freebsd.org, svn-src-all@freebsd.org, dwmalone@maths.tcd.ie, svn-src-head@freebsd.org, "M. Warner Losh" Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 20:34:35 -0000 --BlkQeOBdElZ1aiuH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Nov 02, 2009 at 10:08:17AM -0800, Marcel Moolenaar wrote: > For a change that does change the ABI: revision 198506 > tcsh(1) dumps core with a sig 11... Can you provide some details ? Which architecture is it ? What is the backtrace ? What is the ktrace before SIGSEGV ? --BlkQeOBdElZ1aiuH Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkrvQksACgkQC3+MBN1Mb4jy3wCg3SLnDSMWrM8GL3D3gRkubR0F fWYAoLSD18M2zezqKCsysncV18ARCqmD =6COr -----END PGP SIGNATURE----- --BlkQeOBdElZ1aiuH-- From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 20:45:42 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 093DE1065676; Mon, 2 Nov 2009 20:45:42 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtpout025.mac.com (asmtpout025.mac.com [17.148.16.100]) by mx1.freebsd.org (Postfix) with ESMTP id E37368FC13; Mon, 2 Nov 2009 20:45:41 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=us-ascii; format=flowed; delsp=yes Received: from macbook-pro.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp025.mac.com (Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008; 32bit)) with ESMTPSA id <0KSI007531O4UTA0@asmtp025.mac.com>; Mon, 02 Nov 2009 12:45:41 -0800 (PST) From: Marcel Moolenaar In-reply-to: <20091102203419.GV2147@deviant.kiev.zoral.com.ua> Date: Mon, 02 Nov 2009 12:45:39 -0800 Message-id: <5537A11F-92AC-4D73-BBE7-297A1575BE1B@mac.com> References: <20091101011212.GG1293@hoeg.nl> <20091102100435.GA67211@walton.maths.tcd.ie> <20091102102404.GP1293@hoeg.nl> <20091102.084616.-1258100553.imp@bsdimp.com> <20091102155414.GR1293@hoeg.nl> <20091102203419.GV2147@deviant.kiev.zoral.com.ua> To: Kostik Belousov X-Mailer: Apple Mail (2.1076) Cc: Ed Schouten , src-committers@freebsd.org, svn-src-all@freebsd.org, dwmalone@maths.tcd.ie, svn-src-head@freebsd.org, "M. Warner Losh" Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 20:45:42 -0000 On Nov 2, 2009, at 12:34 PM, Kostik Belousov wrote: > On Mon, Nov 02, 2009 at 10:08:17AM -0800, Marcel Moolenaar wrote: >> For a change that does change the ABI: revision 198506 >> tcsh(1) dumps core with a sig 11... > > Can you provide some details ? Which architecture is it ? > What is the backtrace ? What is the ktrace before SIGSEGV ? I'm working on it. I see it on ia64, so the root cause may be an ia64-specific bug. The sig 11 happens when csh calls sigsuspend: (gdb) l *$b0 0x20000000000483a0 is in pjwait (/nfs/freebsd/base/head/bin/csh/../../ contrib/tcsh/sh.proc.c:513). 508 while ((fp = (fp->p_friends)) != pp); 509 if ((jobflags & PRUNNING) == 0) 510 break; 511 jobdebug_xprintf(("%d starting to sigsuspend for SIGCHLD on %d\n", 512 getpid(), fp->p_procid)); 513 sigsuspend(&pause_mask); 514 } 515 cleanup_until(&oset); 516 jobdebug_xprintf(("%d returned from sigsuspend loop\n", getpid ())); 517 #ifdef BSDJOBS (gdb) FYI, -- Marcel Moolenaar xcllnt@mac.com From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 21:22:31 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 60FFB106568F; Mon, 2 Nov 2009 21:22:31 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 36F9B8FC22; Mon, 2 Nov 2009 21:22:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2LMUp3070118; Mon, 2 Nov 2009 21:22:30 GMT (envelope-from mjacob@svn.freebsd.org) Received: (from mjacob@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2LMUtt070116; Mon, 2 Nov 2009 21:22:30 GMT (envelope-from mjacob@svn.freebsd.org) Message-Id: <200911022122.nA2LMUtt070116@svn.freebsd.org> From: Matt Jacob Date: Mon, 2 Nov 2009 21:22:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198822 - head/sys/dev/isp X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 21:22:31 -0000 Author: mjacob Date: Mon Nov 2 21:22:30 2009 New Revision: 198822 URL: http://svn.freebsd.org/changeset/base/198822 Log: Unbreak SBus cards which have been broken (apparently) for a while. Most of the pieces came from Marius- correct settings for channels and resource management. The one piece missing was that you cannot for SBus cards replace 32 bit operations with A64 operations- not supported. Submitted by: marius MFC after: 3 days Modified: head/sys/dev/isp/isp_sbus.c Directory Properties: Modified: head/sys/dev/isp/isp_sbus.c ============================================================================== --- head/sys/dev/isp/isp_sbus.c Mon Nov 2 20:37:49 2009 (r198821) +++ head/sys/dev/isp/isp_sbus.c Mon Nov 2 21:22:30 2009 (r198822) @@ -193,6 +193,8 @@ isp_sbus_attach(device_t dev) isp->isp_param = &sbs->sbus_param; isp->isp_osinfo.pc.ptr = &sbs->sbus_spi; isp->isp_revision = 0; /* XXX */ + isp->isp_dev = dev; + isp->isp_nchan = 1; ISP_SET_PC(isp, 0, role, role); /* @@ -316,18 +318,16 @@ isp_sbus_attach(device_t dev) goto bad; } isp_init(isp); - if (role != ISP_ROLE_NONE && isp->isp_state != ISP_INITSTATE) { - isp_uninit(isp); - ISP_UNLOCK(isp); - goto bad; + if (isp->isp_state == ISP_INITSTATE) { + isp->isp_state = ISP_RUNSTATE; } - isp_attach(isp); - if (role != ISP_ROLE_NONE && isp->isp_state != ISP_RUNSTATE) { + ISP_UNLOCK(isp); + if (isp_attach(isp)) { + ISP_LOCK(isp); isp_uninit(isp); ISP_UNLOCK(isp); goto bad; } - ISP_UNLOCK(isp); return (0); bad: @@ -345,13 +345,10 @@ bad: } if (regs) { - (void) bus_release_resource(dev, 0, 0, regs); + (void) bus_release_resource(dev, SYS_RES_MEMORY, 0, regs); } if (sbs) { - if (sbs->sbus_isp.isp_param) { - free(sbs->sbus_isp.isp_param, M_DEVBUF); - } free(sbs, M_DEVBUF); } return (ENXIO); @@ -584,13 +581,6 @@ dma2(void *arg, bus_dma_segment_t *dm_se isp = mp->isp; rq = mp->rq; if (nseg) { - if (sizeof (bus_addr_t) > 4) { - if (rq->req_header.rqs_entry_type == RQSTYPE_T2RQS) { - rq->req_header.rqs_entry_type = RQSTYPE_T3RQS; - } else if (rq->req_header.rqs_entry_type == RQSTYPE_REQUEST) { - rq->req_header.rqs_entry_type = RQSTYPE_A64; - } - } if ((csio->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { bus_dmamap_sync(isp->isp_osinfo.dmat, PISP_PCMD(csio)->dmap, BUS_DMASYNC_PREREAD); ddir = ISP_FROM_DEVICE; From owner-svn-src-head@FreeBSD.ORG Mon Nov 2 21:44:10 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0226106566C; Mon, 2 Nov 2009 21:44:10 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AE3048FC15; Mon, 2 Nov 2009 21:44:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2LiAF7070740; Mon, 2 Nov 2009 21:44:10 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2LiAIx070736; Mon, 2 Nov 2009 21:44:10 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200911022144.nA2LiAIx070736@svn.freebsd.org> From: Edwin Groothuis Date: Mon, 2 Nov 2009 21:44:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r198825 - head/share/zoneinfo X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2009 21:44:10 -0000 Author: edwin Date: Mon Nov 2 21:44:10 2009 New Revision: 198825 URL: http://svn.freebsd.org/changeset/base/198825 Log: MFV of tzdata2009q: - New region: Asia/Novokuznetsk - Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on 29 March 2010 - Add historical data for Hongkong 1941 - 1980 - Syria will go to winter time in the last weekend of October 2009. MFC after: 2 days Modified: head/share/zoneinfo/asia head/share/zoneinfo/europe head/share/zoneinfo/zone.tab Directory Properties: head/share/zoneinfo/ (props changed) Modified: head/share/zoneinfo/asia ============================================================================== --- head/share/zoneinfo/asia Mon Nov 2 21:40:50 2009 (r198824) +++ head/share/zoneinfo/asia Mon Nov 2 21:44:10 2009 (r198825) @@ -1,5 +1,4 @@ -#
-# @(#)asia	8.42
+# @(#)asia	8.44
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -369,14 +368,84 @@ Zone	Asia/Kashgar	5:03:56	-	LMT	1928 # o
 			5:00	-	KAST	1980 May
 			8:00	PRC	C%sT
 
+
+# From Lee Yiu Chung (2009-10-24):
+# I found there are some mistakes for the historial DST rule for Hong
+# Kong. Accoring to the DST record from Hong Kong Observatory (actually,
+# it is not [an] observatory, but the official meteorological agency of HK,
+# and also serves as the official timing agency), there are some missing
+# and incorrect rules. Although the exact switch over time is missing, I
+# think 3:30 is correct. The official DST record for Hong Kong can be
+# obtained from
+# 
+# http://www.hko.gov.hk/gts/time/Summertime.htm
+# .
+
+# From Arthur David Olson (2009-10-28):
+# Here are the dates given at
+# 
+# http://www.hko.gov.hk/gts/time/Summertime.htm
+# 
+# as of 2009-10-28:
+# Year        Period
+# 1941        1 Apr to 30 Sep
+# 1942        Whole year 
+# 1943        Whole year
+# 1944        Whole year
+# 1945        Whole year
+# 1946        20 Apr to 1 Dec
+# 1947        13 Apr to 30 Dec
+# 1948        2 May to 31 Oct
+# 1949        3 Apr to 30 Oct
+# 1950        2 Apr to 29 Oct
+# 1951        1 Apr to 28 Oct
+# 1952        6 Apr to 25 Oct
+# 1953        5 Apr to 1 Nov
+# 1954        21 Mar to 31 Oct
+# 1955        20 Mar to 6 Nov
+# 1956        18 Mar to 4 Nov
+# 1957        24 Mar to 3 Nov
+# 1958        23 Mar to 2 Nov
+# 1959        22 Mar to 1 Nov
+# 1960        20 Mar to 6 Nov
+# 1961        19 Mar to 5 Nov
+# 1962        18 Mar to 4 Nov
+# 1963        24 Mar to 3 Nov
+# 1964        22 Mar to 1 Nov
+# 1965        18 Apr to 17 Oct
+# 1966        17 Apr to 16 Oct
+# 1967        16 Apr to 22 Oct
+# 1968        21 Apr to 20 Oct
+# 1969        20 Apr to 19 Oct
+# 1970        19 Apr to 18 Oct
+# 1971        18 Apr to 17 Oct
+# 1972        16 Apr to 22 Oct
+# 1973        22 Apr to 21 Oct
+# 1973/74     30 Dec 73 to 20 Oct 74
+# 1975        20 Apr to 19 Oct
+# 1976        18 Apr to 17 Oct
+# 1977        Nil
+# 1978        Nil
+# 1979        13 May to 21 Oct
+# 1980 to Now Nil
+# The page does not give start or end times of day.
+# The page does not give a start date for 1942.
+# The page does not givw an end date for 1945.
+# The Japanese occupation of Hong Kong began on 1941-12-25.
+# The Japanese surrender of Hong Kong was signed 1945-09-15.
+# For lack of anything better, use start of those days as the transition times.
+
 # Hong Kong (Xianggang)
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	HK	1941	only	-	Apr	1	3:30	1:00	S
+Rule	HK	1941	only	-	Sep	30	3:30	0	-
 Rule	HK	1946	only	-	Apr	20	3:30	1:00	S
 Rule	HK	1946	only	-	Dec	1	3:30	0	-
 Rule	HK	1947	only	-	Apr	13	3:30	1:00	S
 Rule	HK	1947	only	-	Dec	30	3:30	0	-
 Rule	HK	1948	only	-	May	2	3:30	1:00	S
-Rule	HK	1948	1952	-	Oct	lastSun	3:30	0	-
+Rule	HK	1948	1951	-	Oct	lastSun	3:30	0	-
+Rule	HK	1952	only	-	Oct	25	3:30	0	-
 Rule	HK	1949	1953	-	Apr	Sun>=1	3:30	1:00	S
 Rule	HK	1953	only	-	Nov	1	3:30	0	-
 Rule	HK	1954	1964	-	Mar	Sun>=18	3:30	1:00	S
@@ -384,13 +453,15 @@ Rule	HK	1954	only	-	Oct	31	3:30	0	-
 Rule	HK	1955	1964	-	Nov	Sun>=1	3:30	0	-
 Rule	HK	1965	1977	-	Apr	Sun>=16	3:30	1:00	S
 Rule	HK	1965	1977	-	Oct	Sun>=16	3:30	0	-
-Rule	HK	1979	1980	-	May	Sun>=8	3:30	1:00	S
-Rule	HK	1979	1980	-	Oct	Sun>=16	3:30	0	-
+Rule	HK	1973	only	-	Dec	30	3:30	1:00	S
+Rule	HK	1979	only	-	May	Sun>=8	3:30	1:00	S
+Rule	HK	1979	only	-	Oct	Sun>=16	3:30	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Hong_Kong	7:36:36 -	LMT	1904 Oct 30
+			8:00	HK	HK%sT	1941 Dec 25
+			9:00	-	JST	1945 Sep 15
 			8:00	HK	HK%sT
 
-
 ###############################################################################
 
 # Taiwan
@@ -2236,9 +2307,23 @@ Rule	Syria	2007	only	-	Nov	 Fri>=1	0:00	
 # http://www.timeanddate.com/news/time/syria-dst-starts-march-27-2009.html
 # 
 
+# From Steffen Thorsen (2009-10-27):
+# The Syrian Arab News Network on 2009-09-29 reported that Syria will 
+# revert back to winter (standard) time on midnight between Thursday 
+# 2009-10-29 and Friday 2009-10-30:
+# 
+# http://www.sana.sy/ara/2/2009/09/29/247012.htm (Arabic)
+# 
+
+# From Arthur David Olson (2009-10-28):
+# We'll see if future DST switching times turn out to be end of the last
+# Thursday of the month or the start of the last Friday of the month or
+# something else. For now, use the start of the last Friday.
+
 Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
-Rule	Syria	2008	max	-	Nov	1	0:00	0	-
+Rule	Syria	2008	only	-	Nov	1	0:00	0	-
 Rule	Syria	2009	max	-	Mar	lastFri	0:00	1:00	S
+Rule	Syria	2009	max	-	Oct	lastFri	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Damascus	2:25:12 -	LMT	1920	# Dimashq

Modified: head/share/zoneinfo/europe
==============================================================================
--- head/share/zoneinfo/europe	Mon Nov  2 21:40:50 2009	(r198824)
+++ head/share/zoneinfo/europe	Mon Nov  2 21:44:10 2009	(r198825)
@@ -1,5 +1,5 @@
 # 
-# @(#)europe	8.22
+# @(#)europe	8.24
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -2072,9 +2072,43 @@ Zone Asia/Novosibirsk	 5:31:40 -	LMT	191
 			 6:00	Russia	NOV%sT	1992 Jan 19 2:00s
 			 7:00	Russia	NOV%sT	1993 May 23 # say Shanks & P.
 			 6:00	Russia	NOV%sT
+
+# From Alexander Krivenyshev (2009-10-13):
+# Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on
+# March 28, 2010:
+# from current Russia Zone 6 - Krasnoyarsk Time Zone (KRA) UTC +0700
+# to Russia Zone 5 - Novosibirsk Time Zone (NOV) UTC +0600
+#
+# This is according to Government of Russia decree # 740, on September
+# 14, 2009 "Application in the territory of the Kemerovo region the Fifth
+# time zone." ("Russia Zone 5" or old "USSR Zone 5" is GMT +0600)
+#
+# Russian Government web site (Russian language)
+# 
+# http://www.government.ru/content/governmentactivity/rfgovernmentdecisions/archive/2009/09/14/991633.htm
+# 
+# or Russian-English translation by WorldTimeZone.com with reference
+# map to local region and new Russia Time Zone map after March 28, 2010
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_russia03.html
+# 
+#
+# Thus, when Russia will switch to DST on the night of March 28, 2010
+# Kemerovo region (Kemerovo oblast') will not change the clock.
+#
+# As a result, Kemerovo oblast' will be in the same time zone as
+# Novosibirsk, Omsk, Tomsk, Barnaul and Altai Republic.
+
+Zone Asia/Novokuznetsk	 5:48:48 -	NMT	1920 Jan  6
+			 6:00	-	KRAT	1930 Jun 21 # Krasnoyarsk Time
+			 7:00	Russia	KRA%sT	1991 Mar 31 2:00s
+			 6:00	Russia	KRA%sT	1992 Jan 19 2:00s
+			 7:00	Russia	KRA%sT	2010 Mar 28 2:00s
+			 6:00	Russia	NOV%sT # Novosibirsk/Novokuznetsk Time
+
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
-# Kemerovskaya oblast', Krasnoyarskij kraj,
+# Krasnoyarskij kraj,
 # Tajmyrskij (Dolgano-Nenetskij) avtonomnyj okrug,
 # Respublika Tuva, Respublika Khakasiya, Evenkijskij avtonomnyj okrug.
 Zone Asia/Krasnoyarsk	 6:11:20 -	LMT	1920 Jan  6

Modified: head/share/zoneinfo/zone.tab
==============================================================================
--- head/share/zoneinfo/zone.tab	Mon Nov  2 21:40:50 2009	(r198824)
+++ head/share/zoneinfo/zone.tab	Mon Nov  2 21:44:10 2009	(r198825)
@@ -1,5 +1,5 @@
 # 
-# @(#)zone.tab	8.28
+# @(#)zone.tab	8.29
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 #
@@ -330,6 +330,7 @@ RU	+5312+05009	Europe/Samara	Moscow+01 -
 RU	+5651+06036	Asia/Yekaterinburg	Moscow+02 - Urals
 RU	+5500+07324	Asia/Omsk	Moscow+03 - west Siberia
 RU	+5502+08255	Asia/Novosibirsk	Moscow+03 - Novosibirsk
+RU	+5345+08707	Asia/Novokuznetsk	Moscow+03 - Novokuznetsk
 RU	+5601+09250	Asia/Krasnoyarsk	Moscow+04 - Yenisei River
 RU	+5216+10420	Asia/Irkutsk	Moscow+05 - Lake Baikal
 RU	+6200+12940	Asia/Yakutsk	Moscow+06 - Lena River

From owner-svn-src-head@FreeBSD.ORG  Mon Nov  2 23:02:12 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2423C106566B;
	Mon,  2 Nov 2009 23:02:12 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 133078FC22;
	Mon,  2 Nov 2009 23:02:12 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2N2BNL072719;
	Mon, 2 Nov 2009 23:02:11 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2N2BBA072716;
	Mon, 2 Nov 2009 23:02:11 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200911022302.nA2N2BBA072716@svn.freebsd.org>
From: Edwin Groothuis 
Date: Mon, 2 Nov 2009 23:02:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198831 - head/usr.sbin/zic
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Mon, 02 Nov 2009 23:02:12 -0000

Author: edwin
Date: Mon Nov  2 23:02:11 2009
New Revision: 198831
URL: http://svn.freebsd.org/changeset/base/198831

Log:
  MFV of r198828, tzcode2009q
  
  - Cleanup unnecessary local variables in zdump.
  - Fix man-page
  
  MFC after:	1 week

Modified:
  head/usr.sbin/zic/zdump.c
  head/usr.sbin/zic/zic.8
Directory Properties:
  head/usr.sbin/zic/   (props changed)

Modified: head/usr.sbin/zic/zdump.c
==============================================================================
--- head/usr.sbin/zic/zdump.c	Mon Nov  2 22:50:39 2009	(r198830)
+++ head/usr.sbin/zic/zdump.c	Mon Nov  2 23:02:11 2009	(r198831)
@@ -6,7 +6,7 @@
 #ifndef lint
 static const char rcsid[] =
   "$FreeBSD$";
-static char	elsieid[] = "@(#)zdump.c	8.9";
+static char	elsieid[] = "@(#)zdump.c	8.10";
 #endif /* not lint */
 
 /*
@@ -152,7 +152,7 @@ static size_t	longest;
 static char *	progname;
 static int	warned;
 
-static void	usage(const char *progname, FILE *stream, int status);
+static void	usage(FILE *stream, int status);
 static char *	abbr(struct tm * tmp);
 static void	abbrok(const char * abbrp, const char * zone);
 static long	delta(struct tm * newp, struct tm * oldp);
@@ -273,7 +273,7 @@ char *	argv[];
 		if (strcmp(argv[i], "--version") == 0) {
 			errx(EXIT_SUCCESS, "%s", elsieid);
 		} else if (strcmp(argv[i], "--help") == 0) {
-			usage(progname, stdout, EXIT_SUCCESS);
+			usage(stdout, EXIT_SUCCESS);
 		}
 	vflag = 0;
 	cutarg = NULL;
@@ -283,7 +283,7 @@ char *	argv[];
 		else	cutarg = optarg;
 	if ((c != -1) ||
 		(optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
-			usage(progname, stderr, EXIT_FAILURE);
+			usage(stderr, EXIT_FAILURE);
 	}
 	if (vflag) {
 		if (cutarg != NULL) {
@@ -468,7 +468,7 @@ const long	y;
 }
 
 static void
-usage(const char *progname, FILE *stream, int status)
+usage(FILE *stream, int status)
 {
 	fprintf(stream,
 _("usage: %s [--version] [-v] [--help] [-c [loyear,]hiyear] zonename ...\n\

Modified: head/usr.sbin/zic/zic.8
==============================================================================
--- head/usr.sbin/zic/zic.8	Mon Nov  2 22:50:39 2009	(r198830)
+++ head/usr.sbin/zic/zic.8	Mon Nov  2 23:02:11 2009	(r198831)
@@ -260,7 +260,7 @@ the variable part is null.
 .El
 .Pp
 A zone line has the form:
-.Dl "Zone	NAME	GMTOFF	RULES/SAVE	FORMAT	[UNTILYEAR [MONTH [DAY [TIME]]]]
+.Dl "Zone	NAME	GMTOFF	RULES/SAVE	FORMAT	[UNTILYEAR [MONTH [DAY [TIME]]]]"
 For example:
 .Dl "Zone	Australia/Adelaide	9:30	Aus	CST	1971 Oct 31 2:00
 The fields that make up a zone line are:

From owner-svn-src-head@FreeBSD.ORG  Mon Nov  2 23:30:16 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1FC06106566B;
	Mon,  2 Nov 2009 23:30:16 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0ED248FC13;
	Mon,  2 Nov 2009 23:30:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2NUFnB073302;
	Mon, 2 Nov 2009 23:30:15 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2NUF3b073300;
	Mon, 2 Nov 2009 23:30:15 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200911022330.nA2NUF3b073300@svn.freebsd.org>
From: Andrew Thompson 
Date: Mon, 2 Nov 2009 23:30:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198832 - head/sys/cam/scsi
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Mon, 02 Nov 2009 23:30:16 -0000

Author: thompsa
Date: Mon Nov  2 23:30:15 2009
New Revision: 198832
URL: http://svn.freebsd.org/changeset/base/198832

Log:
  Provide the same sanity check on the sector size in dagetcapacity as when the
  disk is first probed. dagetcapacity is called whenever the disk is opened from
  geom via d_open(), a zero sector size will cause geom to panic later on.

Modified:
  head/sys/cam/scsi/scsi_da.c

Modified: head/sys/cam/scsi/scsi_da.c
==============================================================================
--- head/sys/cam/scsi/scsi_da.c	Mon Nov  2 23:02:11 2009	(r198831)
+++ head/sys/cam/scsi/scsi_da.c	Mon Nov  2 23:30:15 2009	(r198832)
@@ -1948,8 +1948,15 @@ dagetcapacity(struct cam_periph *periph)
 
 done:
 
-	if (error == 0)
-		dasetgeom(periph, block_len, maxsector);
+	if (error == 0) {
+		if (block_len >= MAXPHYS || block_len == 0) {
+			xpt_print(periph->path,
+			    "unsupportable block size %ju\n",
+			    (uintmax_t) block_len);
+			error = EINVAL;
+		} else
+			dasetgeom(periph, block_len, maxsector);
+	}
 
 	xpt_release_ccb(ccb);
 

From owner-svn-src-head@FreeBSD.ORG  Mon Nov  2 23:50:13 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2B3A61065672;
	Mon,  2 Nov 2009 23:50:13 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 00B3E8FC08;
	Mon,  2 Nov 2009 23:50:13 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA2NoCeO073695;
	Mon, 2 Nov 2009 23:50:12 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA2NoCcr073693;
	Mon, 2 Nov 2009 23:50:12 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200911022350.nA2NoCcr073693@svn.freebsd.org>
From: Andrew Thompson 
Date: Mon, 2 Nov 2009 23:50:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198833 - head/usr.sbin/usbconfig
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Mon, 02 Nov 2009 23:50:13 -0000

Author: thompsa
Date: Mon Nov  2 23:50:12 2009
New Revision: 198833
URL: http://svn.freebsd.org/changeset/base/198833

Log:
  Add more verbose output when dumping the configuration descriptor.
  
  Submitted by:	Hans Petter Selasky

Modified:
  head/usr.sbin/usbconfig/dump.c

Modified: head/usr.sbin/usbconfig/dump.c
==============================================================================
--- head/usr.sbin/usbconfig/dump.c	Mon Nov  2 23:30:15 2009	(r198832)
+++ head/usr.sbin/usbconfig/dump.c	Mon Nov  2 23:50:12 2009	(r198833)
@@ -100,21 +100,66 @@ dump_field(struct libusb20_device *pdev,
 
 	printf("%s%s = 0x%04x ", plevel, field, value);
 
-	if ((field[0] != 'i') || (field[1] == 'd')) {
-		printf("\n");
-		return;
-	}
-	if (value == 0) {
-		printf(" \n");
-		return;
+	if (strlen(plevel) == 8) {
+		/* Endpoint Descriptor */
+
+		if (strcmp(field, "bEndpointAddress") == 0) {
+			if (value & 0x80)
+				printf(" \n");
+			else
+				printf(" \n");
+			return;
+		}
+
+		if (strcmp(field, "bmAttributes") == 0) {
+			switch (value & 0x03) {
+			case 0:
+				printf(" \n");
+				break;
+			case 1:
+				switch (value & 0x0C) {
+				case 0x00:
+					printf(" \n");
+					break;
+				case 0x04:
+					printf(" \n");
+					break;
+				case 0x08:
+					printf(" \n");
+					break;
+				default:
+					printf(" \n");
+					break;
+				}
+				break;
+			case 2:
+				printf(" \n");
+				break;
+			default:
+				printf(" \n");
+				break;
+			}
+			return;
+		}
 	}
-	if (libusb20_dev_req_string_simple_sync(pdev, value,
-	    temp_string, sizeof(temp_string))) {
-		printf(" \n");
+
+	if ((field[0] == 'i') && (field[1] != 'd')) {
+		/* Indirect String Descriptor */
+		if (value == 0) {
+			printf(" \n");
+			return;
+		}
+		if (libusb20_dev_req_string_simple_sync(pdev, value,
+		    temp_string, sizeof(temp_string))) {
+			printf(" \n");
+			return;
+		}
+		printf(" <%s>\n", temp_string);
 		return;
 	}
-	printf(" <%s>\n", temp_string);
-	return;
+
+	/* No additional information */
+	printf("\n");
 }
 
 static void

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 08:41:15 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 22CFF1065670;
	Tue,  3 Nov 2009 08:41:15 +0000 (UTC)
	(envelope-from oleg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ECCFE8FC1E;
	Tue,  3 Nov 2009 08:41:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA38fEw3084565;
	Tue, 3 Nov 2009 08:41:14 GMT (envelope-from oleg@svn.freebsd.org)
Received: (from oleg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA38fEg3084563;
	Tue, 3 Nov 2009 08:41:14 GMT (envelope-from oleg@svn.freebsd.org)
Message-Id: <200911030841.nA38fEg3084563@svn.freebsd.org>
From: Oleg Bulyzhin 
Date: Tue, 3 Nov 2009 08:41:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198845 - head/sys/netinet/ipfw
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 08:41:15 -0000

Author: oleg
Date: Tue Nov  3 08:41:14 2009
New Revision: 198845
URL: http://svn.freebsd.org/changeset/base/198845

Log:
  Fix two issues that can lead to exceeding configured pipe bandwidth:
  - do not expire queues which are not ready to be expired.
  - properly calculate available burst size.
  
  MFC after:	3 days

Modified:
  head/sys/netinet/ipfw/ip_dummynet.c

Modified: head/sys/netinet/ipfw/ip_dummynet.c
==============================================================================
--- head/sys/netinet/ipfw/ip_dummynet.c	Tue Nov  3 07:29:58 2009	(r198844)
+++ head/sys/netinet/ipfw/ip_dummynet.c	Tue Nov  3 08:41:14 2009	(r198845)
@@ -244,6 +244,17 @@ void		dummynet_drain(void);
 static int	dummynet_io(struct mbuf **, int , struct ip_fw_args *);
 
 /*
+ * Flow queue is idle if:
+ *   1) it's empty for at least 1 tick
+ *   2) it has invalid timestamp (WF2Q case)
+ *   3) parent pipe has no 'exhausted' burst.
+ */
+#define QUEUE_IS_IDLE(q) ((q)->head == NULL && (q)->S == (q)->F + 1 && \
+	curr_time > (q)->idle_time + 1 && \
+	((q)->numbytes + (curr_time - (q)->idle_time - 1) * \
+	(q)->fs->pipe->bandwidth >= q->fs->pipe->burst))
+
+/*
  * Heap management functions.
  *
  * In the heap, first node is element 0. Children of i are 2i+1 and 2i+2.
@@ -1004,7 +1015,7 @@ expire_queues(struct dn_flow_set *fs)
     fs->last_expired = time_uptime ;
     for (i = 0 ; i <= fs->rq_size ; i++) /* last one is overflow */
 	for (prev=NULL, q = fs->rq[i] ; q != NULL ; )
-	    if (q->head != NULL || q->S != q->F+1) {
+	    if (!QUEUE_IS_IDLE(q)) {
   		prev = q ;
   	        q = q->next ;
   	    } else { /* entry is idle, expire it */
@@ -1134,7 +1145,7 @@ find_queue(struct dn_flow_set *fs, struc
 		break ; /* found */
 
 	    /* No match. Check if we can expire the entry */
-	    if (pipe_expire && q->head == NULL && q->S == q->F+1 ) {
+	    if (pipe_expire && QUEUE_IS_IDLE(q)) {
 		/* entry is idle and not in any heap, expire it */
 		struct dn_flow_queue *old_q = q ;
 
@@ -1408,7 +1419,7 @@ dummynet_io(struct mbuf **m0, int dir, s
 		if (q->idle_time < curr_time) {
 			/* Calculate available burst size. */
 			q->numbytes +=
-			    (curr_time - q->idle_time) * pipe->bandwidth;
+			    (curr_time - q->idle_time - 1) * pipe->bandwidth;
 			if (q->numbytes > pipe->burst)
 				q->numbytes = pipe->burst;
 			if (io_fast)
@@ -1418,8 +1429,8 @@ dummynet_io(struct mbuf **m0, int dir, s
 		if (pipe->idle_time < curr_time) {
 			/* Calculate available burst size. */
 			pipe->numbytes +=
-			    (curr_time - pipe->idle_time) * pipe->bandwidth;
-			if (pipe->numbytes > pipe->burst)
+			    (curr_time - pipe->idle_time - 1) * pipe->bandwidth;
+			if (pipe->numbytes > 0 && pipe->numbytes > pipe->burst)
 				pipe->numbytes = pipe->burst;
 			if (io_fast)
 				pipe->numbytes += pipe->bandwidth;

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 09:04:04 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4564E106566B;
	Tue,  3 Nov 2009 09:04:04 +0000 (UTC)
	(envelope-from oleg@lath.rinet.ru)
Received: from lath.rinet.ru (lath.rinet.ru [195.54.192.90])
	by mx1.freebsd.org (Postfix) with ESMTP id F3E0C8FC16;
	Tue,  3 Nov 2009 09:04:03 +0000 (UTC)
Received: by lath.rinet.ru (Postfix, from userid 222)
	id 2A422704C; Tue,  3 Nov 2009 11:45:18 +0300 (MSK)
Date: Tue, 3 Nov 2009 11:45:18 +0300
From: Oleg Bulyzhin 
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
Message-ID: <20091103084518.GA45306@lath.rinet.ru>
References: <200911030841.nA38fEg3084563@svn.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <200911030841.nA38fEg3084563@svn.freebsd.org>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: 
Subject: Re: svn commit: r198845 - head/sys/netinet/ipfw
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 09:04:04 -0000

On Tue, Nov 03, 2009 at 08:41:14AM +0000, Oleg Bulyzhin wrote:
> Author: oleg
> Date: Tue Nov  3 08:41:14 2009
> New Revision: 198845
> URL: http://svn.freebsd.org/changeset/base/198845
> 
> Log:
>   Fix two issues that can lead to exceeding configured pipe bandwidth:
>   - do not expire queues which are not ready to be expired.
>   - properly calculate available burst size.
>   
>   MFC after:	3 days
> 
> Modified:
>   head/sys/netinet/ipfw/ip_dummynet.c


Reviews are welcome, since i'm going to push this into 8.0-RELEASE.
Thanks.

-- 
Oleg.

================================================================
=== Oleg Bulyzhin -- OBUL-RIPN -- OBUL-RIPE -- oleg@rinet.ru ===
================================================================


From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 09:17:24 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 10A3E1065694;
	Tue,  3 Nov 2009 09:17:24 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 001928FC19;
	Tue,  3 Nov 2009 09:17:23 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA39HNWN085241;
	Tue, 3 Nov 2009 09:17:23 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA39HNCF085239;
	Tue, 3 Nov 2009 09:17:23 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200911030917.nA39HNCF085239@svn.freebsd.org>
From: Xin LI 
Date: Tue, 3 Nov 2009 09:17:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198846 - head/usr.sbin/crashinfo
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 09:17:24 -0000

Author: delphij
Date: Tue Nov  3 09:17:23 2009
New Revision: 198846
URL: http://svn.freebsd.org/changeset/base/198846

Log:
  Set umask to 0x077 instead of the default.  This prevents non-root user
  from reading crashinfo output, which could contain some sensitive
  information.
  
  Reviewed by:	jhb
  MFC after:	1 week

Modified:
  head/usr.sbin/crashinfo/crashinfo.sh

Modified: head/usr.sbin/crashinfo/crashinfo.sh
==============================================================================
--- head/usr.sbin/crashinfo/crashinfo.sh	Tue Nov  3 08:41:14 2009	(r198845)
+++ head/usr.sbin/crashinfo/crashinfo.sh	Tue Nov  3 09:17:23 2009	(r198846)
@@ -147,6 +147,8 @@ fi
 
 echo "Writing crash summary to $FILE."
 
+umask 077
+
 # Simulate uname
 ostype=$(echo -e printf '"%s", ostype' | gdb -x /dev/stdin -batch $KERNEL)
 osrelease=$(echo -e printf '"%s", osrelease' | gdb -x /dev/stdin -batch $KERNEL)

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 09:25:08 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C485C106566C;
	Tue,  3 Nov 2009 09:25:08 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B40B68FC16;
	Tue,  3 Nov 2009 09:25:08 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA39P8nv085488;
	Tue, 3 Nov 2009 09:25:08 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA39P8EM085486;
	Tue, 3 Nov 2009 09:25:08 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200911030925.nA39P8EM085486@svn.freebsd.org>
From: Xin LI 
Date: Tue, 3 Nov 2009 09:25:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198847 - head/usr.bin/leave
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 09:25:08 -0000

Author: delphij
Date: Tue Nov  3 09:25:08 2009
New Revision: 198847
URL: http://svn.freebsd.org/changeset/base/198847

Log:
  Static'ify signal handler which is not called from outside.

Modified:
  head/usr.bin/leave/leave.c

Modified: head/usr.bin/leave/leave.c
==============================================================================
--- head/usr.bin/leave/leave.c	Tue Nov  3 09:17:23 2009	(r198846)
+++ head/usr.bin/leave/leave.c	Tue Nov  3 09:25:08 2009	(r198847)
@@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-void doalarm(u_int);
+static void doalarm(u_int);
 static void usage(void);
 
 /*

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 09:28:46 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 073E61065670;
	Tue,  3 Nov 2009 09:28:46 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id EA9218FC16;
	Tue,  3 Nov 2009 09:28:45 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA39SjoZ085599;
	Tue, 3 Nov 2009 09:28:45 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA39SjLx085597;
	Tue, 3 Nov 2009 09:28:45 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200911030928.nA39SjLx085597@svn.freebsd.org>
From: Xin LI 
Date: Tue, 3 Nov 2009 09:28:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198848 - head/bin/ps
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 09:28:46 -0000

Author: delphij
Date: Tue Nov  3 09:28:45 2009
New Revision: 198848
URL: http://svn.freebsd.org/changeset/base/198848

Log:
  Increase width for %CPU, RSS and VSZ columns for now.  Modern systems
  tend to have larger memory, larger process, and more CPU.

Modified:
  head/bin/ps/keyword.c

Modified: head/bin/ps/keyword.c
==============================================================================
--- head/bin/ps/keyword.c	Tue Nov  3 09:25:08 2009	(r198847)
+++ head/bin/ps/keyword.c	Tue Nov  3 09:28:45 2009	(r198848)
@@ -70,7 +70,7 @@ static int  vcmp(const void *, const voi
 
 /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */
 static VAR var[] = {
-	{"%cpu", "%CPU", NULL, 0, pcpu, NULL, 4, 0, CHAR, NULL, 0},
+	{"%cpu", "%CPU", NULL, 0, pcpu, NULL, 5, 0, CHAR, NULL, 0},
 	{"%mem", "%MEM", NULL, 0, pmem, NULL, 4, 0, CHAR, NULL, 0},
 	{"acflag", "ACFLG", NULL, 0, kvar, NULL, 3, KOFF(ki_acflag), USHORT,
 		"x", 0},
@@ -159,7 +159,7 @@ static VAR var[] = {
 		UINT, UIDFMT, 0},
 	{"rgroup", "RGROUP", NULL, LJUST|DSIZ, rgroupname, s_rgroupname,
 		USERLEN, 0, CHAR, NULL, 0},
-	{"rss", "RSS", NULL, 0, kvar, NULL, 5, KOFF(ki_rssize), PGTOK, "ld", 0},
+	{"rss", "RSS", NULL, 0, kvar, NULL, 6, KOFF(ki_rssize), PGTOK, "ld", 0},
 	{"rtprio", "RTPRIO", NULL, 0, priorityr, NULL, 7, KOFF(ki_pri), CHAR,
 		NULL, 0},
 	{"ruid", "RUID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_ruid),
@@ -207,7 +207,7 @@ static VAR var[] = {
 		NULL, 0},
 	{"usrpri", "", "upr", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
 	{"vsize", "", "vsz", 0, NULL, NULL, 0, 0, CHAR, NULL, 0},
-	{"vsz", "VSZ", NULL, 0, vsize, NULL, 5, 0, CHAR, NULL, 0},
+	{"vsz", "VSZ", NULL, 0, vsize, NULL, 6, 0, CHAR, NULL, 0},
 	{"wchan", "WCHAN", NULL, LJUST, wchan, NULL, 6, 0, CHAR, NULL, 0},
 	{"xstat", "XSTAT", NULL, 0, kvar, NULL, 4, KOFF(ki_xstat), USHORT,
 		"x", 0},

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 11:19:06 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 153D9106566B;
	Tue,  3 Nov 2009 11:19:06 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 033EA8FC0C;
	Tue,  3 Nov 2009 11:19:06 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3BJ5I7090045;
	Tue, 3 Nov 2009 11:19:05 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3BJ50K090039;
	Tue, 3 Nov 2009 11:19:05 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911031119.nA3BJ50K090039@svn.freebsd.org>
From: Alexander Motin 
Date: Tue, 3 Nov 2009 11:19:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198849 - in head/sys/cam: . ata
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 11:19:06 -0000

Author: mav
Date: Tue Nov  3 11:19:05 2009
New Revision: 198849
URL: http://svn.freebsd.org/changeset/base/198849

Log:
  MFp4:
  Improve reporting ATA Status error details.

Modified:
  head/sys/cam/ata/ata_all.c
  head/sys/cam/ata/ata_all.h
  head/sys/cam/cam.c
  head/sys/cam/cam.h
  head/sys/cam/cam_periph.c

Modified: head/sys/cam/ata/ata_all.c
==============================================================================
--- head/sys/cam/ata/ata_all.c	Tue Nov  3 09:28:45 2009	(r198848)
+++ head/sys/cam/ata/ata_all.c	Tue Nov  3 11:19:05 2009	(r198849)
@@ -68,6 +68,185 @@ ata_version(int ver)
 	return 0;
 }
 
+char *
+ata_op_string(struct ata_cmd *cmd)
+{
+
+	switch (cmd->command) {
+	case 0x00: return ("NOP");
+	case 0x03: return ("CFA_REQUEST_EXTENDED_ERROR");
+	case 0x08: return ("DEVICE_RESET");
+	case 0x20: return ("READ");
+	case 0x24: return ("READ48");
+	case 0x25: return ("READ_DMA48");
+	case 0x26: return ("READ_DMA_QUEUED48");
+	case 0x27: return ("READ_NATIVE_MAX_ADDRESS48");
+	case 0x29: return ("READ_MUL48");
+	case 0x2a: return ("READ_STREAM_DMA48");
+	case 0x2b: return ("READ_STREAM48");
+	case 0x2f: return ("READ_LOG_EXT");
+	case 0x30: return ("WRITE");
+	case 0x34: return ("WRITE48");
+	case 0x35: return ("WRITE_DMA48");
+	case 0x36: return ("WRITE_DMA_QUEUED48");
+	case 0x37: return ("SET_MAX_ADDRESS48");
+	case 0x39: return ("WRITE_MUL48");
+	case 0x3a: return ("WRITE_STREAM_DMA48");
+	case 0x3b: return ("WRITE_STREAM48");
+	case 0x3d: return ("WRITE_DMA_FUA");
+	case 0x3e: return ("WRITE_DMA_FUA48");
+	case 0x3f: return ("WRITE_LOG_EXT");
+	case 0x40: return ("READ_VERIFY");
+	case 0x42: return ("READ_VERIFY48");
+	case 0x51: return ("CONFIGURE_STREAM");
+	case 0x60: return ("READ_FPDMA_QUEUED");
+	case 0x61: return ("WRITE_FPDMA_QUEUED");
+	case 0x70: return ("SEEK");
+	case 0x87: return ("CFA_TRANSLATE_SECTOR");
+	case 0x90: return ("EXECUTE_DEVICE_DIAGNOSTIC");
+	case 0x92: return ("DOWNLOAD_MICROCODE");
+	case 0xa0: return ("PACKET");
+	case 0xa1: return ("ATAPI_IDENTIFY");
+	case 0xa2: return ("SERVICE");
+	case 0xb0: return ("SMART");
+	case 0xb1: return ("DEVICE CONFIGURATION");
+	case 0xc0: return ("CFA_ERASE");
+	case 0xc4: return ("READ_MUL");
+	case 0xc5: return ("WRITE_MUL");
+	case 0xc6: return ("SET_MULTI");
+	case 0xc7: return ("READ_DMA_QUEUED");
+	case 0xc8: return ("READ_DMA");
+	case 0xca: return ("WRITE_DMA");
+	case 0xcc: return ("WRITE_DMA_QUEUED");
+	case 0xcd: return ("CFA_WRITE_MULTIPLE_WITHOUT_ERASE");
+	case 0xce: return ("WRITE_MULTIPLE_FUA48");
+	case 0xd1: return ("CHECK_MEDIA_CARD_TYPE");
+	case 0xda: return ("GET_MEDIA_STATUS");
+	case 0xde: return ("MEDIA_LOCK");
+	case 0xdf: return ("MEDIA_UNLOCK");
+	case 0xe0: return ("STANDBY_IMMEDIATE");
+	case 0xe1: return ("IDLE_IMMEDIATE");
+	case 0xe2: return ("STANDBY");
+	case 0xe3: return ("IDLE");
+	case 0xe4: return ("READ_BUFFER/PM");
+	case 0xe5: return ("CHECK_POWER_MODE");
+	case 0xe6: return ("SLEEP");
+	case 0xe7: return ("FLUSHCACHE");
+	case 0xe8: return ("WRITE_PM");
+	case 0xea: return ("FLUSHCACHE48");
+	case 0xec: return ("ATA_IDENTIFY");
+	case 0xed: return ("MEDIA_EJECT");
+	case 0xef:
+		switch (cmd->features) {
+	        case 0x03: return ("SETFEATURES SET TRANSFER MODE");
+	        case 0x02: return ("SETFEATURES ENABLE WCACHE");
+	        case 0x82: return ("SETFEATURES DISABLE WCACHE");
+	        case 0xaa: return ("SETFEATURES ENABLE RCACHE");
+	        case 0x55: return ("SETFEATURES DISABLE RCACHE");
+	        }
+	        return "SETFEATURES";
+	case 0xf1: return ("SECURITY_SET_PASSWORD");
+	case 0xf2: return ("SECURITY_UNLOCK");
+	case 0xf3: return ("SECURITY_ERASE_PREPARE");
+	case 0xf4: return ("SECURITY_ERASE_UNIT");
+	case 0xf5: return ("SECURITY_FREE_LOCK");
+	case 0xf6: return ("SECURITY DISABLE PASSWORD");
+	case 0xf8: return ("READ_NATIVE_MAX_ADDRESS");
+	case 0xf9: return ("SET_MAX_ADDRESS");
+	}
+	return "UNKNOWN";
+}
+
+char *
+ata_cmd_string(struct ata_cmd *cmd, char *cmd_string, size_t len)
+{
+
+	snprintf(cmd_string, len, "%02x %02x %02x %02x "
+	    "%02x %02x %02x %02x %02x %02x %02x %02x",
+	    cmd->command, cmd->features,
+	    cmd->lba_low, cmd->lba_mid, cmd->lba_high, cmd->device,
+	    cmd->lba_low_exp, cmd->lba_mid_exp, cmd->lba_high_exp,
+	    cmd->features_exp, cmd->sector_count, cmd->sector_count_exp);
+
+	return(cmd_string);
+}
+
+char *
+ata_res_string(struct ata_res *res, char *res_string, size_t len)
+{
+
+	snprintf(res_string, len, "%02x %02x %02x %02x "
+	    "%02x %02x %02x %02x %02x %02x %02x",
+	    res->status, res->error,
+	    res->lba_low, res->lba_mid, res->lba_high, res->device,
+	    res->lba_low_exp, res->lba_mid_exp, res->lba_high_exp,
+	    res->sector_count, res->sector_count_exp);
+
+	return(res_string);
+}
+
+/*
+ * ata_command_sbuf() returns 0 for success and -1 for failure.
+ */
+int
+ata_command_sbuf(struct ccb_ataio *ataio, struct sbuf *sb)
+{
+	char cmd_str[(12 * 3) + 1];
+
+	sbuf_printf(sb, "CMD: %s: %s",
+	    ata_op_string(&ataio->cmd),
+	    ata_cmd_string(&ataio->cmd, cmd_str, sizeof(cmd_str)));
+
+	return(0);
+}
+
+/*
+ * ata_status_abuf() returns 0 for success and -1 for failure.
+ */
+int
+ata_status_sbuf(struct ccb_ataio *ataio, struct sbuf *sb)
+{
+
+	sbuf_printf(sb, "ATA Status: %02x (%s%s%s%s%s%s%s%s)",
+	    ataio->res.status,
+	    (ataio->res.status & 0x80) ? "BSY " : "",
+	    (ataio->res.status & 0x40) ? "DRDY " : "",
+	    (ataio->res.status & 0x20) ? "DF " : "",
+	    (ataio->res.status & 0x10) ? "SERV " : "",
+	    (ataio->res.status & 0x08) ? "DRQ " : "",
+	    (ataio->res.status & 0x04) ? "CORR " : "",
+	    (ataio->res.status & 0x02) ? "IDX " : "",
+	    (ataio->res.status & 0x01) ? "ERR" : "");
+	if (ataio->res.status & 1) {
+	    sbuf_printf(sb, ", Error: %02x (%s%s%s%s%s%s%s%s)",
+		ataio->res.error,
+		(ataio->res.error & 0x80) ? "ICRC " : "",
+		(ataio->res.error & 0x40) ? "UNC " : "",
+		(ataio->res.error & 0x20) ? "MC " : "",
+		(ataio->res.error & 0x10) ? "IDNF " : "",
+		(ataio->res.error & 0x08) ? "MCR " : "",
+		(ataio->res.error & 0x04) ? "ABRT " : "",
+		(ataio->res.error & 0x02) ? "NM " : "",
+		(ataio->res.error & 0x01) ? "ILI" : "");
+	}
+
+	return(0);
+}
+
+/*
+ * ata_res_sbuf() returns 0 for success and -1 for failure.
+ */
+int
+ata_res_sbuf(struct ccb_ataio *ataio, struct sbuf *sb)
+{
+	char res_str[(11 * 3) + 1];
+
+	sbuf_printf(sb, "RES: %s",
+	    ata_res_string(&ataio->res, res_str, sizeof(res_str)));
+
+	return(0);
+}
+
 void
 ata_print_ident(struct ata_params *ident_data)
 {

Modified: head/sys/cam/ata/ata_all.h
==============================================================================
--- head/sys/cam/ata/ata_all.h	Tue Nov  3 09:28:45 2009	(r198848)
+++ head/sys/cam/ata/ata_all.h	Tue Nov  3 11:19:05 2009	(r198849)
@@ -81,6 +81,14 @@ struct ata_res {
 };
 
 int	ata_version(int ver);
+
+char *	ata_op_string(struct ata_cmd *cmd);
+char *	ata_cmd_string(struct ata_cmd *cmd, char *cmd_string, size_t len);
+char *	ata_res_string(struct ata_res *res, char *res_string, size_t len);
+int	ata_command_sbuf(struct ccb_ataio *ataio, struct sbuf *sb);
+int	ata_status_sbuf(struct ccb_ataio *ataio, struct sbuf *sb);
+int	ata_res_sbuf(struct ccb_ataio *ataio, struct sbuf *sb);
+
 void	ata_print_ident(struct ata_params *ident_data);
 
 void	ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,

Modified: head/sys/cam/cam.c
==============================================================================
--- head/sys/cam/cam.c	Tue Nov  3 09:28:45 2009	(r198848)
+++ head/sys/cam/cam.c	Tue Nov  3 11:19:05 2009	(r198849)
@@ -229,6 +229,21 @@ cam_error_string(struct cam_device *devi
 		return(NULL);
 
 	switch (ccb->ccb_h.func_code) {
+		case XPT_ATA_IO:
+			switch (proto_flags & CAM_EPF_LEVEL_MASK) {
+			case CAM_EPF_NONE:
+				break;
+			case CAM_EPF_ALL:
+			case CAM_EPF_NORMAL:
+				proto_flags |= CAM_EAF_PRINT_RESULT;
+				/* FALLTHROUGH */
+			case CAM_EPF_MINIMAL:
+				proto_flags |= CAM_EAF_PRINT_STATUS;
+				/* FALLTHROUGH */
+			default:
+				break;
+			}
+			break;
 		case XPT_SCSI_IO:
 			switch (proto_flags & CAM_EPF_LEVEL_MASK) {
 			case CAM_EPF_NONE:
@@ -256,10 +271,12 @@ cam_error_string(struct cam_device *devi
 	sbuf_new(&sb, str, str_len, 0);
 
 	if (flags & CAM_ESF_COMMAND) {
-
 		sbuf_cat(&sb, path_str);
-
 		switch (ccb->ccb_h.func_code) {
+		case XPT_ATA_IO:
+			ata_command_sbuf(&ccb->ataio, &sb);
+			sbuf_printf(&sb, "\n");
+			break;
 		case XPT_SCSI_IO:
 #ifdef _KERNEL
 			scsi_command_string(&ccb->csio, &sb);
@@ -267,7 +284,6 @@ cam_error_string(struct cam_device *devi
 			scsi_command_string(device, &ccb->csio, &sb);
 #endif /* _KERNEL/!_KERNEL */
 			sbuf_printf(&sb, "\n");
-			
 			break;
 		default:
 			break;
@@ -295,6 +311,22 @@ cam_error_string(struct cam_device *devi
 	if (flags & CAM_ESF_PROTO_STATUS) {
   
 		switch (ccb->ccb_h.func_code) {
+		case XPT_ATA_IO:
+			if ((ccb->ccb_h.status & CAM_STATUS_MASK) !=
+			     CAM_ATA_STATUS_ERROR)
+				break;
+			if (proto_flags & CAM_EAF_PRINT_STATUS) {
+				sbuf_cat(&sb, path_str);
+				ata_status_sbuf(&ccb->ataio, &sb);
+				sbuf_printf(&sb, "\n");
+			}
+			if (proto_flags & CAM_EAF_PRINT_RESULT) {
+				sbuf_cat(&sb, path_str);
+				ata_res_sbuf(&ccb->ataio, &sb);
+				sbuf_printf(&sb, "\n");
+			}
+
+			break;
 		case XPT_SCSI_IO:
 			if ((ccb->ccb_h.status & CAM_STATUS_MASK) !=
 			     CAM_SCSI_STATUS_ERROR)
@@ -302,10 +334,6 @@ cam_error_string(struct cam_device *devi
 
 			if (proto_flags & CAM_ESF_PRINT_STATUS) {
 				sbuf_cat(&sb, path_str);
-				/*
-				 * Print out the SCSI status byte as long as
-				 * the user wants some protocol output.
-				 */
 				sbuf_printf(&sb, "SCSI Status: %s\n",
 					    scsi_status_string(&ccb->csio));
 			}

Modified: head/sys/cam/cam.h
==============================================================================
--- head/sys/cam/cam.h	Tue Nov  3 09:28:45 2009	(r198848)
+++ head/sys/cam/cam.h	Tue Nov  3 11:19:05 2009	(r198849)
@@ -184,6 +184,12 @@ typedef enum {
 	CAM_ESF_PRINT_SENSE	= 0x20
 } cam_error_scsi_flags;
 
+typedef enum {
+	CAM_EAF_PRINT_NONE	= 0x00,
+	CAM_EAF_PRINT_STATUS	= 0x10,
+	CAM_EAF_PRINT_RESULT	= 0x20
+} cam_error_ata_flags;
+
 struct cam_status_entry
 {
 	cam_status  status_code;

Modified: head/sys/cam/cam_periph.c
==============================================================================
--- head/sys/cam/cam_periph.c	Tue Nov  3 09:28:45 2009	(r198848)
+++ head/sys/cam/cam_periph.c	Tue Nov  3 11:19:05 2009	(r198849)
@@ -1612,6 +1612,7 @@ cam_periph_error(union ccb *ccb, cam_fla
 		if (bootverbose && printed == 0) {
 			xpt_print(ccb->ccb_h.path,
 			    "Request completed with CAM_ATA_STATUS_ERROR\n");
+			cam_error_print(ccb, CAM_ESF_ALL, CAM_EPF_ALL);
 			printed++;
 		}
 		/* FALLTHROUGH */

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 11:31:55 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 78981106566C;
	Tue,  3 Nov 2009 11:31:55 +0000 (UTC)
	(envelope-from brde@optusnet.com.au)
Received: from mail01.syd.optusnet.com.au (mail01.syd.optusnet.com.au
	[211.29.132.182])
	by mx1.freebsd.org (Postfix) with ESMTP id 140D18FC13;
	Tue,  3 Nov 2009 11:31:54 +0000 (UTC)
Received: from c220-239-235-116.carlnfd3.nsw.optusnet.com.au
	(c220-239-235-116.carlnfd3.nsw.optusnet.com.au [220.239.235.116])
	by mail01.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id
	nA3BVoHl030841
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Tue, 3 Nov 2009 22:31:52 +1100
Date: Tue, 3 Nov 2009 22:31:49 +1100 (EST)
From: Bruce Evans 
X-X-Sender: bde@delplex.bde.org
To: Xin LI 
In-Reply-To: <200911030928.nA39SjLx085597@svn.freebsd.org>
Message-ID: <20091103214231.H23957@delplex.bde.org>
References: <200911030928.nA39SjLx085597@svn.freebsd.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198848 - head/bin/ps
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 11:31:55 -0000

On Tue, 3 Nov 2009, Xin LI wrote:

> Log:
>  Increase width for %CPU, RSS and VSZ columns for now.  Modern systems
>  tend to have larger memory, larger process, and more CPU.

This uses space that is not available.  Command names(+args) are now
truncated to 9 columns in "ps l" output :-(.  They used to be truncated to
11 columns recently (down from 12 columns in FreeBSD-5.2).

%CPU != CPU.  Modern systems don't really have more %CPU.  The maximum
percentage of anything is still 100.0.  However, there are various bugs
that result in a percentage of 100.0 being misdisplayed and "percentages"
of more than 100.0 occurring:
- ps used %4.1f format.  This works for all percentages <= 99.9 (after
   rounding), but not for 100.0.  Now ps uses %5.1 format, so 100.0 is
   displayed correctly, but all normal percentages are displayed worse
   than before (space that is not available is used to make them harder
   to read).
- %CPU is not divided by the number of CPUs.  Thus a multi-threaded
   process can have %CPU almost as large as  * 100.0.
   This might be a feature.  E.g., on mostly-idle systems, the idle
   process consists of  threads which take akmost
   100.0% CPU each, so the total %CPU for the idle process is almost
   the above maximum (it is now 799.2 on ref8.freebsd.org due to ref8
   having 8 mostly-idle CPUs).  Since ps now uses %5.1 format, it can
   display %CPU correctly on all systems with <= 9 CPUs, and on most
   systems with 10 CPUs (since the value of 1000.0 which is too wide
   for %5.1 format is even harder to reach on a 10-CPU system than
   the value of 100.0 which is too wide for %4.1 format is to reach on
   1 a-CPU system).  The format is still broken on systems with >= 11 CPUs.
- perhaps schedular bugs can result in %CPU being transiently slightly
   greater than 100.0 for an individual thread.

Expanding %CPU doesn't truncate "ps l" since "ps l" doesn't print %CPU.
Thus the recent truncation is only from 11 COMMAND columns to 9 instead
of to 8.

There seems to be no better fix than to further granulate and dehumanize
the numbers so that they fit in the available space.  E.g., a %CPU of
>= 100 and < 9999 should be displayed in %4.0f format; this only
involvues granulation, but above 9999 it needs to be dehumanized as
well and displayed in k or M or larger granularity (it can be > 9999
with 100 CPUs and > 999k with 10000 CPUs).  A VSZ of >= 10000 (k
implicit) needs to be displayed in M or larger granularity (M explicit).

Bruce

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 11:41:21 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9435D106568D;
	Tue,  3 Nov 2009 11:41:21 +0000 (UTC) (envelope-from ed@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8338B8FC13;
	Tue,  3 Nov 2009 11:41:21 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3BfLfc090453;
	Tue, 3 Nov 2009 11:41:21 GMT (envelope-from ed@svn.freebsd.org)
Received: (from ed@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3BfLNB090451;
	Tue, 3 Nov 2009 11:41:21 GMT (envelope-from ed@svn.freebsd.org)
Message-Id: <200911031141.nA3BfLNB090451@svn.freebsd.org>
From: Ed Schouten 
Date: Tue, 3 Nov 2009 11:41:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198850 - head/sbin/sysctl
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 11:41:21 -0000

Author: ed
Date: Tue Nov  3 11:41:21 2009
New Revision: 198850
URL: http://svn.freebsd.org/changeset/base/198850

Log:
  Just use devname(3) to print device names.
  
  Right now sysctl just prints the major/minor numbers of a device.
  Instead of rolling our own routine for this, we'd better just call
  devname(3) to perform a translation to a device name for us.

Modified:
  head/sbin/sysctl/sysctl.c

Modified: head/sbin/sysctl/sysctl.c
==============================================================================
--- head/sbin/sysctl/sysctl.c	Tue Nov  3 11:19:05 2009	(r198849)
+++ head/sbin/sysctl/sysctl.c	Tue Nov  3 11:41:21 2009	(r198850)
@@ -419,14 +419,7 @@ T_dev_t(int l2, void *p)
 		warnx("T_dev_T %d != %d", l2, sizeof(*d));
 		return (1);
 	}
-	if ((int)(*d) != -1) {
-		if (minor(*d) > 255 || minor(*d) < 0)
-			printf("{ major = %d, minor = 0x%x }",
-				major(*d), minor(*d));
-		else
-			printf("{ major = %d, minor = %d }",
-				major(*d), minor(*d));
-	}
+	printf("%s", devname(*d, S_IFCHR));
 	return (0);
 }
 

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 11:47:07 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9FC701065693;
	Tue,  3 Nov 2009 11:47:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8E5358FC2E;
	Tue,  3 Nov 2009 11:47:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3Bl7XR090604;
	Tue, 3 Nov 2009 11:47:07 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3Bl7PF090601;
	Tue, 3 Nov 2009 11:47:07 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911031147.nA3Bl7PF090601@svn.freebsd.org>
From: Alexander Motin 
Date: Tue, 3 Nov 2009 11:47:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198851 - head/sys/dev/ahci
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 11:47:07 -0000

Author: mav
Date: Tue Nov  3 11:47:07 2009
New Revision: 198851
URL: http://svn.freebsd.org/changeset/base/198851

Log:
  MFp4:
  - Handle timeouts and fatal errors with port hard-reset. The rest of
  recovery will be done by XPT on receiving async event. More gracefull
  per-device soft-reset recovery can be implemented later.
  - Add workaround for ATI SB600/SB700 PMP probe related bug, to speedup boot.

Modified:
  head/sys/dev/ahci/ahci.c
  head/sys/dev/ahci/ahci.h

Modified: head/sys/dev/ahci/ahci.c
==============================================================================
--- head/sys/dev/ahci/ahci.c	Tue Nov  3 11:41:21 2009	(r198850)
+++ head/sys/dev/ahci/ahci.c	Tue Nov  3 11:47:07 2009	(r198851)
@@ -1221,6 +1221,13 @@ ahci_execute_transaction(struct ahci_slo
 				et = AHCI_ERR_TFE;
 				break;
 			}
+			/* Workaround for ATI SB600/SB700 chipsets. */
+			if (ccb->ccb_h.target_id == 15 &&
+			    pci_get_vendor(device_get_parent(dev)) == 0x1002 &&
+			    (ATA_INL(ch->r_mem, AHCI_P_IS) & AHCI_P_IX_IPM)) {
+				et = AHCI_ERR_TIMEOUT;
+				break;
+			}
 		}
 		if (timeout && (count >= timeout)) {
 			device_printf(ch->dev,
@@ -1275,10 +1282,8 @@ ahci_timeout(struct ahci_slot *slot)
 	    ATA_INL(ch->r_mem, AHCI_P_IS), ATA_INL(ch->r_mem, AHCI_P_CI),
 	    ATA_INL(ch->r_mem, AHCI_P_SACT), ch->rslots,
 	    ATA_INL(ch->r_mem, AHCI_P_TFD), ATA_INL(ch->r_mem, AHCI_P_SERR));
-	/* Kick controller into sane state. */
-	ahci_stop(ch->dev);
-	ahci_start(ch->dev);
 
+	ch->fatalerr = 1;
 	/* Handle frozen command. */
 	if (ch->frozen) {
 		union ccb *fccb = ch->frozen;
@@ -1360,6 +1365,7 @@ ahci_end_transaction(struct ahci_slot *s
 			ccb->csio.scsi_status = SCSI_STATUS_OK;
 		break;
 	case AHCI_ERR_INVALID:
+		ch->fatalerr = 1;
 		ccb->ccb_h.status |= CAM_REQ_INVALID;
 		break;
 	case AHCI_ERR_INNOCENT:
@@ -1375,6 +1381,7 @@ ahci_end_transaction(struct ahci_slot *s
 		}
 		break;
 	case AHCI_ERR_SATA:
+		ch->fatalerr = 1;
 		if (!ch->readlog) {
 			xpt_freeze_simq(ch->sim, 1);
 			ccb->ccb_h.status &= ~CAM_STATUS_MASK;
@@ -1383,6 +1390,10 @@ ahci_end_transaction(struct ahci_slot *s
 		ccb->ccb_h.status |= CAM_UNCOR_PARITY;
 		break;
 	case AHCI_ERR_TIMEOUT:
+		/* Do no treat soft-reset timeout as fatal here. */
+		if (ccb->ccb_h.func_code != XPT_ATA_IO ||
+	            !(ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL))
+			ch->fatalerr = 1;
 		if (!ch->readlog) {
 			xpt_freeze_simq(ch->sim, 1);
 			ccb->ccb_h.status &= ~CAM_STATUS_MASK;
@@ -1391,6 +1402,7 @@ ahci_end_transaction(struct ahci_slot *s
 		ccb->ccb_h.status |= CAM_CMD_TIMEOUT;
 		break;
 	default:
+		ch->fatalerr = 1;
 		ccb->ccb_h.status |= CAM_REQ_CMP_ERR;
 	}
 	/* Free slot. */
@@ -1414,12 +1426,13 @@ ahci_end_transaction(struct ahci_slot *s
 		ahci_begin_transaction(dev, ccb);
 		return;
 	}
+	/* If it was our READ LOG command - process it. */
+	if (ch->readlog) {
+		ahci_process_read_log(dev, ccb);
 	/* If it was NCQ command error, put result on hold. */
-	if (et == AHCI_ERR_NCQ) {
+	} else if (et == AHCI_ERR_NCQ) {
 		ch->hold[slot->slot] = ccb;
-	} else if (ch->readlog)	/* If it was our READ LOG command - process it. */
-		ahci_process_read_log(dev, ccb);
-	else
+	} else
 		xpt_done(ccb);
 	/* Unfreeze frozen command. */
 	if (ch->frozen && ch->numrslots == 0) {
@@ -1428,6 +1441,13 @@ ahci_end_transaction(struct ahci_slot *s
 		ahci_begin_transaction(dev, fccb);
 		xpt_release_simq(ch->sim, TRUE);
 	}
+	/* If we have no other active commands, ... */
+	if (ch->rslots == 0) {
+		/* if there was fatal error - reset port. */
+		if (ch->fatalerr) {
+			ahci_reset(dev);
+		}
+	}
 	/* Start PM timer. */
 	if (ch->numrslots == 0 && ch->pm_level > 3) {
 		callout_schedule(&ch->pm_timer,
@@ -1674,6 +1694,13 @@ ahci_reset(device_t dev)
 		/* XXX; Commands in loading state. */
 		ahci_end_transaction(&ch->slot[i], AHCI_ERR_INNOCENT);
 	}
+	for (i = 0; i < ch->numslots; i++) {
+		if (!ch->hold[i])
+			continue;
+		xpt_done(ch->hold[i]);
+		ch->hold[i] = NULL;
+	}
+	ch->fatalerr = 0;
 	/* Tell the XPT about the event */
 	xpt_async(AC_BUS_RESET, ch->path, NULL);
 	/* Disable port interrupts */

Modified: head/sys/dev/ahci/ahci.h
==============================================================================
--- head/sys/dev/ahci/ahci.h	Tue Nov  3 11:41:21 2009	(r198850)
+++ head/sys/dev/ahci/ahci.h	Tue Nov  3 11:47:07 2009	(r198851)
@@ -366,6 +366,7 @@ struct ahci_channel {
 	int			numrslots;	/* Number of running slots */
 	int			numtslots;	/* Number of tagged slots */
 	int			readlog;	/* Our READ LOG active */
+	int			fatalerr;	/* Fatal error happend */
 	int			lastslot;	/* Last used slot */
 	int			taggedtarget;	/* Last tagged target */
 	union ccb		*frozen;	/* Frozen command */

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 12:03:13 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6967A106568B;
	Tue,  3 Nov 2009 12:03:13 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 56CE58FC19;
	Tue,  3 Nov 2009 12:03:13 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3C3DXc090942;
	Tue, 3 Nov 2009 12:03:13 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3C3DGn090939;
	Tue, 3 Nov 2009 12:03:13 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911031203.nA3C3DGn090939@svn.freebsd.org>
From: Alexander Motin 
Date: Tue, 3 Nov 2009 12:03:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198852 - head/sys/dev/siis
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 12:03:13 -0000

Author: mav
Date: Tue Nov  3 12:03:13 2009
New Revision: 198852
URL: http://svn.freebsd.org/changeset/base/198852

Log:
  MFp4:
  - Rework timeout handling, to make it more graceful for devices sharing
  controller port (with PMP). Wait for other commands completion/timeout
  before initiating recovery.
  - Handle timeouts and fatal errors with port hard-reset. The rest of
  recovery will be done by XPT on receiving async event. More gracefull
  per-device soft-reset recovery can be implemented later.

Modified:
  head/sys/dev/siis/siis.c
  head/sys/dev/siis/siis.h

Modified: head/sys/dev/siis/siis.c
==============================================================================
--- head/sys/dev/siis/siis.c	Tue Nov  3 11:47:07 2009	(r198851)
+++ head/sys/dev/siis/siis.c	Tue Nov  3 12:03:13 2009	(r198852)
@@ -511,7 +511,10 @@ siis_ch_resume(device_t dev)
 	/* Get port out of reset state. */
 	ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PORT_RESET);
 	ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_32BIT);
-	ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME);
+	if (ch->pm_present)
+		ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME);
+	else
+		ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME);
 	/* Enable port interrupts */
 	ATA_OUTL(ch->r_mem, SIIS_P_IESET, SIIS_P_IX_ENABLED);
 	return (0);
@@ -764,7 +767,7 @@ siis_ch_intr(void *data)
 		    estatus == SIIS_P_CMDERR_DATAFIS) {
 			tslots = ch->numtslots[port];
 			for (i = 0; i < SIIS_MAX_SLOTS; i++) {
-				/* XXX: reqests in loading state. */
+				/* XXX: requests in loading state. */
 				if (((ch->rslots >> i) & 1) == 0)
 					continue;
 				if (ch->slot[i].ccb->ccb_h.target_id != port)
@@ -796,7 +799,7 @@ siis_ch_intr(void *data)
 			} else
 				et = SIIS_ERR_INVALID;
 			for (i = 0; i < SIIS_MAX_SLOTS; i++) {
-				/* XXX: reqests in loading state. */
+				/* XXX: requests in loading state. */
 				if (((ch->rslots >> i) & 1) == 0)
 					continue;
 				siis_end_transaction(&ch->slot[i], et);
@@ -967,48 +970,51 @@ siis_execute_transaction(struct siis_slo
 	return;
 }
 
-/* Locked by callout mechanism. */
+/* Must be called with channel locked. */
 static void
-siis_timeout(struct siis_slot *slot)
+siis_process_timeout(device_t dev)
 {
-	device_t dev = slot->dev;
 	struct siis_channel *ch = device_get_softc(dev);
 	int i;
 
 	mtx_assert(&ch->mtx, MA_OWNED);
-	device_printf(dev, "Timeout on slot %d\n", slot->slot);
-device_printf(dev, "%s is %08x ss %08x rs %08x es %08x sts %08x serr %08x\n",
-    __func__, ATA_INL(ch->r_mem, SIIS_P_IS), ATA_INL(ch->r_mem, SIIS_P_SS), ch->rslots,
-    ATA_INL(ch->r_mem, SIIS_P_CMDERR), ATA_INL(ch->r_mem, SIIS_P_STS),
-    ATA_INL(ch->r_mem, SIIS_P_SERR));
-	/* Kick controller into sane state. */
-	siis_portinit(ch->dev);
-
-	if (!ch->readlog)
+	if (!ch->readlog && !ch->recovery) {
 		xpt_freeze_simq(ch->sim, ch->numrslots);
-	/* Handle frozen command. */
-	if (ch->frozen) {
-		union ccb *fccb = ch->frozen;
-		ch->frozen = NULL;
-		fccb->ccb_h.status &= ~CAM_STATUS_MASK;
-		fccb->ccb_h.status |= CAM_REQUEUE_REQ | CAM_RELEASE_SIMQ;
-		if (!(fccb->ccb_h.status & CAM_DEV_QFRZN)) {
-			xpt_freeze_devq(fccb->ccb_h.path, 1);
-			fccb->ccb_h.status |= CAM_DEV_QFRZN;
-		}
-		xpt_done(fccb);
+		ch->recovery = 1;
 	}
-	/* Handle command with timeout. */
-	siis_end_transaction(&ch->slot[slot->slot], SIIS_ERR_TIMEOUT);
 	/* Handle the rest of commands. */
 	for (i = 0; i < SIIS_MAX_SLOTS; i++) {
 		/* Do we have a running request on slot? */
 		if (ch->slot[i].state < SIIS_SLOT_RUNNING)
 			continue;
-		siis_end_transaction(&ch->slot[i], SIIS_ERR_INNOCENT);
+		siis_end_transaction(&ch->slot[i], SIIS_ERR_TIMEOUT);
 	}
 }
 
+/* Locked by callout mechanism. */
+static void
+siis_timeout(struct siis_slot *slot)
+{
+	device_t dev = slot->dev;
+	struct siis_channel *ch = device_get_softc(dev);
+
+	mtx_assert(&ch->mtx, MA_OWNED);
+	device_printf(dev, "Timeout on slot %d\n", slot->slot);
+device_printf(dev, "%s is %08x ss %08x rs %08x es %08x sts %08x serr %08x\n",
+    __func__, ATA_INL(ch->r_mem, SIIS_P_IS), ATA_INL(ch->r_mem, SIIS_P_SS), ch->rslots,
+    ATA_INL(ch->r_mem, SIIS_P_CMDERR), ATA_INL(ch->r_mem, SIIS_P_STS),
+    ATA_INL(ch->r_mem, SIIS_P_SERR));
+
+	if (ch->toslots == 0)
+		xpt_freeze_simq(ch->sim, 1);
+	ch->toslots |= (1 << slot->slot);
+	if ((ch->rslots & ~ch->toslots) == 0)
+		siis_process_timeout(dev);
+	else
+		device_printf(dev, " ... waiting for slots %08x\n",
+		    ch->rslots & ~ch->toslots);
+}
+
 /* Must be called with channel locked. */
 static void
 siis_end_transaction(struct siis_slot *slot, enum siis_err_type et)
@@ -1071,6 +1077,7 @@ siis_end_transaction(struct siis_slot *s
 			ccb->csio.scsi_status = SCSI_STATUS_OK;
 		break;
 	case SIIS_ERR_INVALID:
+		ch->fatalerr = 1;
 		ccb->ccb_h.status |= CAM_REQ_INVALID;
 		break;
 	case SIIS_ERR_INNOCENT:
@@ -1086,9 +1093,11 @@ siis_end_transaction(struct siis_slot *s
 		}
 		break;
 	case SIIS_ERR_SATA:
+		ch->fatalerr = 1;
 		ccb->ccb_h.status |= CAM_UNCOR_PARITY;
 		break;
 	case SIIS_ERR_TIMEOUT:
+		ch->fatalerr = 1;
 		ccb->ccb_h.status |= CAM_CMD_TIMEOUT;
 		break;
 	default:
@@ -1097,6 +1106,11 @@ siis_end_transaction(struct siis_slot *s
 	/* Free slot. */
 	ch->rslots &= ~(1 << slot->slot);
 	ch->aslots &= ~(1 << slot->slot);
+	if (et != SIIS_ERR_TIMEOUT) {
+		if (ch->toslots == (1 << slot->slot))
+			xpt_release_simq(ch->sim, TRUE);
+		ch->toslots &= ~(1 << slot->slot);
+	}
 	slot->state = SIIS_SLOT_EMPTY;
 	slot->ccb = NULL;
 	/* Update channel stats. */
@@ -1105,13 +1119,14 @@ siis_end_transaction(struct siis_slot *s
 	    (ccb->ataio.cmd.flags & CAM_ATAIO_FPDMA)) {
 		ch->numtslots[ccb->ccb_h.target_id]--;
 	}
+	/* If it was our READ LOG command - process it. */
+	if (ch->readlog) {
+		siis_process_read_log(dev, ccb);
 	/* If it was NCQ command error, put result on hold. */
-	if (et == SIIS_ERR_NCQ) {
+	} else if (et == SIIS_ERR_NCQ) {
 		ch->hold[slot->slot] = ccb;
 		ch->numhslots++;
-	} else if (ch->readlog)	/* If it was our READ LOG command - process it. */
-		siis_process_read_log(dev, ccb);
-	else
+	} else
 		xpt_done(ccb);
 	/* Unfreeze frozen command. */
 	if (ch->frozen && ch->numrslots == 0) {
@@ -1122,13 +1137,20 @@ siis_end_transaction(struct siis_slot *s
 	}
 	/* If we have no other active commands, ... */
 	if (ch->rslots == 0) {
-		/* if we have slots in error, we can reinit port. */
-		if (ch->eslots != 0)
-			siis_portinit(dev);
-		/* if there commands on hold, we can do READ LOG. */
-		if (!ch->readlog && ch->numhslots)
-			siis_issue_read_log(dev);
-	}
+		/* if there were timeouts or fatal error - reset port. */
+		if (ch->toslots != 0 || ch->fatalerr) {
+			siis_reset(dev);
+		} else {
+			/* if we have slots in error, we can reinit port. */
+			if (ch->eslots != 0)
+				siis_portinit(dev);
+			/* if there commands on hold, we can do READ LOG. */
+			if (!ch->readlog && ch->numhslots)
+				siis_issue_read_log(dev);
+		}
+	/* If all the reset of commands are in timeout - abort them. */
+	} else if ((ch->rslots & ~ch->toslots) == 0)
+		siis_process_timeout(dev);
 }
 
 static void
@@ -1296,13 +1318,14 @@ static void
 siis_reset(device_t dev)
 {
 	struct siis_channel *ch = device_get_softc(dev);
-	int i;
+	int i, retry = 0;
 	uint32_t val;
 
 	if (bootverbose)
 		device_printf(dev, "SIIS reset...\n");
-	xpt_freeze_simq(ch->sim, ch->numrslots);
-	/* Requeue freezed command. */
+	if (!ch->readlog && !ch->recovery)
+		xpt_freeze_simq(ch->sim, ch->numrslots);
+	/* Requeue frozen command. */
 	if (ch->frozen) {
 		union ccb *fccb = ch->frozen;
 		ch->frozen = NULL;
@@ -1322,6 +1345,20 @@ siis_reset(device_t dev)
 		/* XXX; Commands in loading state. */
 		siis_end_transaction(&ch->slot[i], SIIS_ERR_INNOCENT);
 	}
+	/* Finish all holden commands as-is. */
+	for (i = 0; i < SIIS_MAX_SLOTS; i++) {
+		if (!ch->hold[i])
+			continue;
+		xpt_done(ch->hold[i]);
+		ch->hold[i] = NULL;
+		ch->numhslots--;
+	}
+	if (ch->toslots != 0)
+		xpt_release_simq(ch->sim, TRUE);
+	ch->eslots = 0;
+	ch->recovery = 0;
+	ch->toslots = 0;
+	ch->fatalerr = 0;
 	/* Disable port interrupts */
 	ATA_OUTL(ch->r_mem, SIIS_P_IECLR, 0x0000FFFF);
 	/* Set speed limit. */
@@ -1336,6 +1373,7 @@ siis_reset(device_t dev)
 	ATA_OUTL(ch->r_mem, SIIS_P_SCTL,
 	    ATA_SC_DET_IDLE | val | ((ch->pm_level > 0) ? 0 :
 	    (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER)));
+retry:
 	siis_devreset(dev);
 	/* Reset and reconnect PHY, */
 	if (!siis_sata_connect(ch)) {
@@ -1350,8 +1388,25 @@ siis_reset(device_t dev)
 		return;
 	}
 	/* Wait for clearing busy status. */
-	if (siis_wait_ready(dev, 10000))
+	if (siis_wait_ready(dev, 10000)) {
 		device_printf(dev, "device ready timeout\n");
+		if (!retry) {
+			device_printf(dev, "trying full port reset ...\n");
+			/* Get port to the reset state. */
+			ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PORT_RESET);
+			DELAY(10000);
+			/* Get port out of reset state. */
+			ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PORT_RESET);
+			ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_32BIT);
+			if (ch->pm_present)
+				ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME);
+			else
+				ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME);
+			siis_wait_ready(dev, 5000);
+			retry = 1;
+			goto retry;
+		}
+	}
 	ch->devices = 1;
 	/* Enable port interrupts */
 	ATA_OUTL(ch->r_mem, SIIS_P_IS, 0xFFFFFFFF);
@@ -1487,7 +1542,8 @@ siisaction(struct cam_sim *sim, union cc
 		struct	ccb_trans_settings *cts = &ccb->cts;
 
 		if (cts->xport_specific.sata.valid & CTS_SATA_VALID_PM) {
-			if (cts->xport_specific.sata.pm_present)
+			ch->pm_present = cts->xport_specific.sata.pm_present;
+			if (ch->pm_present)
 				ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME);
 			else
 				ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME);
@@ -1522,9 +1578,7 @@ siisaction(struct cam_sim *sim, union cc
 			cts->xport_specific.sata.bitrate = 150000;
 			cts->xport_specific.sata.valid |= CTS_SATA_VALID_SPEED;
 		}
-		cts->xport_specific.sata.pm_present =
-			(ATA_INL(ch->r_mem, SIIS_P_STS) & SIIS_P_CTL_PME) ?
-			    1 : 0;
+		cts->xport_specific.sata.pm_present = ch->pm_present;
 		cts->xport_specific.sata.valid |= CTS_SATA_VALID_PM;
 		ccb->ccb_h.status = CAM_REQ_CMP;
 		xpt_done(ccb);

Modified: head/sys/dev/siis/siis.h
==============================================================================
--- head/sys/dev/siis/siis.h	Tue Nov  3 11:47:07 2009	(r198851)
+++ head/sys/dev/siis/siis.h	Tue Nov  3 12:03:13 2009	(r198852)
@@ -373,13 +373,14 @@ struct siis_channel {
 	uint32_t		rslots;		/* Running slots */
 	uint32_t		aslots;		/* Slots with atomic commands */
 	uint32_t		eslots;		/* Slots in error */
+	uint32_t		toslots;	/* Slots in timeout */
 	int			numrslots;	/* Number of running slots */
 	int			numtslots[SIIS_MAX_SLOTS]; /* Number of tagged slots */
 	int			numhslots;	/* Number of holden slots */
 	int			readlog;	/* Our READ LOG active */
+	int			fatalerr;	/* Fatal error happend */
 	int			recovery;	/* Some slots are in error */
 	int			lastslot;	/* Last used slot */
-	int			taggedtarget;	/* Last tagged target */
 	union ccb		*frozen;	/* Frozen command */
 };
 

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 12:52:35 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C7222106566B;
	Tue,  3 Nov 2009 12:52:35 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B623D8FC15;
	Tue,  3 Nov 2009 12:52:35 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3CqZgb092017;
	Tue, 3 Nov 2009 12:52:35 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3CqZdj092015;
	Tue, 3 Nov 2009 12:52:35 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200911031252.nA3CqZdj092015@svn.freebsd.org>
From: Konstantin Belousov 
Date: Tue, 3 Nov 2009 12:52:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198853 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 12:52:35 -0000

Author: kib
Date: Tue Nov  3 12:52:35 2009
New Revision: 198853
URL: http://svn.freebsd.org/changeset/base/198853

Log:
  If socket buffer space appears to be lower then sum of count of already
  prepared bytes and next portion of transfer, inner loop of kern_sendfile()
  aborts, not preparing next mbuf for socket buffer, and not modifying
  any outer loop invariants. The thread loops in the outer loop forever.
  
  Instead of breaking from inner loop, prepare only bytes that fit into
  the socket buffer space.
  
  In collaboration with:	pho
  Reviewed by:	bz
  PR:	kern/138999
  MFC after:	2 weeks

Modified:
  head/sys/kern/uipc_syscalls.c

Modified: head/sys/kern/uipc_syscalls.c
==============================================================================
--- head/sys/kern/uipc_syscalls.c	Tue Nov  3 12:03:13 2009	(r198852)
+++ head/sys/kern/uipc_syscalls.c	Tue Nov  3 12:52:35 2009	(r198853)
@@ -2037,20 +2037,12 @@ retry_space:
 				rem = obj->un_pager.vnp.vnp_size -
 				    uap->offset - fsbytes - loopbytes;
 			xfsize = omin(rem, xfsize);
+			xfsize = omin(space - loopbytes, xfsize);
 			if (xfsize <= 0) {
 				VM_OBJECT_UNLOCK(obj);
 				done = 1;		/* all data sent */
 				break;
 			}
-			/*
-			 * Don't overflow the send buffer.
-			 * Stop here and send out what we've
-			 * already got.
-			 */
-			if (space < loopbytes + xfsize) {
-				VM_OBJECT_UNLOCK(obj);
-				break;
-			}
 
 			/*
 			 * Attempt to look up the page.  Allocate

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 16:46:52 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D0C5E1065692;
	Tue,  3 Nov 2009 16:46:52 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BF02B8FC1D;
	Tue,  3 Nov 2009 16:46:52 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3GkqZr096845;
	Tue, 3 Nov 2009 16:46:52 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3GkqB4096838;
	Tue, 3 Nov 2009 16:46:52 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200911031646.nA3GkqB4096838@svn.freebsd.org>
From: Attilio Rao 
Date: Tue, 3 Nov 2009 16:46:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198854 - in head/sys: kern sys vm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 16:46:52 -0000

Author: attilio
Date: Tue Nov  3 16:46:52 2009
New Revision: 198854
URL: http://svn.freebsd.org/changeset/base/198854

Log:
  Split P_NOLOAD into a per-thread flag (TDF_NOLOAD).
  This improvements aims for avoiding further cache-misses in scheduler
  specific functions which need to keep track of average thread running
  time and further locking in places setting for this flag.
  
  Reported by:	jeff (originally), kris (currently)
  Reviewed by:	jhb
  Tested by:	Giuseppe Cocomazzi 

Modified:
  head/sys/kern/kern_idle.c
  head/sys/kern/kern_intr.c
  head/sys/kern/sched_4bsd.c
  head/sys/kern/sched_ule.c
  head/sys/sys/proc.h
  head/sys/vm/vm_zeroidle.c

Modified: head/sys/kern/kern_idle.c
==============================================================================
--- head/sys/kern/kern_idle.c	Tue Nov  3 12:52:35 2009	(r198853)
+++ head/sys/kern/kern_idle.c	Tue Nov  3 16:46:52 2009	(r198854)
@@ -74,10 +74,9 @@ idle_setup(void *dummy)
 		if (error)
 			panic("idle_setup: kproc_create error %d\n", error);
 
-		p->p_flag |= P_NOLOAD;
 		thread_lock(td);
 		TD_SET_CAN_RUN(td);
-		td->td_flags |= TDF_IDLETD;
+		td->td_flags |= TDF_IDLETD | TDF_NOLOAD;
 		sched_class(td, PRI_IDLE);
 		sched_prio(td, PRI_MAX_IDLE);
 		thread_unlock(td);

Modified: head/sys/kern/kern_intr.c
==============================================================================
--- head/sys/kern/kern_intr.c	Tue Nov  3 12:52:35 2009	(r198853)
+++ head/sys/kern/kern_intr.c	Tue Nov  3 16:46:52 2009	(r198854)
@@ -1061,6 +1061,7 @@ int
 swi_add(struct intr_event **eventp, const char *name, driver_intr_t handler,
 	    void *arg, int pri, enum intr_type flags, void **cookiep)
 {
+	struct thread *td;
 	struct intr_event *ie;
 	int error;
 
@@ -1085,11 +1086,10 @@ swi_add(struct intr_event **eventp, cons
 	if (error)
 		return (error);
 	if (pri == SWI_CLOCK) {
-		struct proc *p;
-		p = ie->ie_thread->it_thread->td_proc;
-		PROC_LOCK(p);
-		p->p_flag |= P_NOLOAD;
-		PROC_UNLOCK(p);
+		td = ie->ie_thread->it_thread;
+		thread_lock(td);
+		td->td_flags |= TDF_NOLOAD;
+		thread_unlock(td);
 	}
 	return (0);
 }

Modified: head/sys/kern/sched_4bsd.c
==============================================================================
--- head/sys/kern/sched_4bsd.c	Tue Nov  3 12:52:35 2009	(r198853)
+++ head/sys/kern/sched_4bsd.c	Tue Nov  3 16:46:52 2009	(r198854)
@@ -728,10 +728,10 @@ sched_exit_thread(struct thread *td, str
 	thread_lock(td);
 	td->td_estcpu = ESTCPULIM(td->td_estcpu + child->td_estcpu);
 	thread_unlock(td);
-	mtx_lock_spin(&sched_lock);
-	if ((child->td_proc->p_flag & P_NOLOAD) == 0)
+	thread_lock(child);
+	if ((child->td_flags & TDF_NOLOAD) == 0)
 		sched_load_rem();
-	mtx_unlock_spin(&sched_lock);
+	thread_unlock(child);
 }
 
 void
@@ -937,7 +937,7 @@ sched_switch(struct thread *td, struct t
 		thread_unlock(td);
 	}
 
-	if ((p->p_flag & P_NOLOAD) == 0)
+	if ((td->td_flags & TDF_NOLOAD) == 0)
 		sched_load_rem();
 
 	if (newtd)
@@ -980,7 +980,7 @@ sched_switch(struct thread *td, struct t
 			("trying to run inhibited thread"));
 		newtd->td_flags |= TDF_DIDRUN;
         	TD_SET_RUNNING(newtd);
-		if ((newtd->td_proc->p_flag & P_NOLOAD) == 0)
+		if ((newtd->td_flags & TDF_NOLOAD) == 0)
 			sched_load_add();
 	} else {
 		newtd = choosethread();
@@ -1289,7 +1289,7 @@ sched_add(struct thread *td, int flags)
 		}
 	}
 
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
+	if ((td->td_flags & TDF_NOLOAD) == 0)
 		sched_load_add();
 	runq_add(ts->ts_runq, td, flags);
 	if (cpu != NOCPU)
@@ -1338,7 +1338,7 @@ sched_add(struct thread *td, int flags)
 		if (maybe_preempt(td))
 			return;
 	}
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
+	if ((td->td_flags & TDF_NOLOAD) == 0)
 		sched_load_add();
 	runq_add(ts->ts_runq, td, flags);
 	maybe_resched(td);
@@ -1360,7 +1360,7 @@ sched_rem(struct thread *td)
 	    "prio:%d", td->td_priority, KTR_ATTR_LINKED,
 	    sched_tdname(curthread));
 
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
+	if ((td->td_flags & TDF_NOLOAD) == 0)
 		sched_load_rem();
 #ifdef SMP
 	if (ts->ts_runq != &runq)

Modified: head/sys/kern/sched_ule.c
==============================================================================
--- head/sys/kern/sched_ule.c	Tue Nov  3 12:52:35 2009	(r198853)
+++ head/sys/kern/sched_ule.c	Tue Nov  3 16:46:52 2009	(r198854)
@@ -495,7 +495,7 @@ tdq_load_add(struct tdq *tdq, struct thr
 	THREAD_LOCK_ASSERT(td, MA_OWNED);
 
 	tdq->tdq_load++;
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
+	if ((td->td_flags & TDF_NOLOAD) == 0)
 		tdq->tdq_sysload++;
 	KTR_COUNTER0(KTR_SCHED, "load", tdq->tdq_loadname, tdq->tdq_load);
 }
@@ -514,7 +514,7 @@ tdq_load_rem(struct tdq *tdq, struct thr
 	    ("tdq_load_rem: Removing with 0 load on queue %d", TDQ_ID(tdq)));
 
 	tdq->tdq_load--;
-	if ((td->td_proc->p_flag & P_NOLOAD) == 0)
+	if ((td->td_flags & TDF_NOLOAD) == 0)
 		tdq->tdq_sysload--;
 	KTR_COUNTER0(KTR_SCHED, "load", tdq->tdq_loadname, tdq->tdq_load);
 }

Modified: head/sys/sys/proc.h
==============================================================================
--- head/sys/sys/proc.h	Tue Nov  3 12:52:35 2009	(r198853)
+++ head/sys/sys/proc.h	Tue Nov  3 16:46:52 2009	(r198854)
@@ -322,7 +322,7 @@ do {									\
 #define	TDF_NEEDSUSPCHK	0x00008000 /* Thread may need to suspend. */
 #define	TDF_NEEDRESCHED	0x00010000 /* Thread needs to yield. */
 #define	TDF_NEEDSIGCHK	0x00020000 /* Thread may need signal delivery. */
-#define	TDF_UNUSED18	0x00040000 /* --available-- */
+#define	TDF_NOLOAD	0x00040000 /* Ignore during load avg calculations. */
 #define	TDF_UNUSED19	0x00080000 /* Thread is sleeping on a umtx. */
 #define	TDF_THRWAKEUP	0x00100000 /* Libthr thread must not suspend itself. */
 #define	TDF_UNUSED21	0x00200000 /* --available-- */
@@ -558,7 +558,7 @@ struct proc {
 #define	P_ADVLOCK	0x00001	/* Process may hold a POSIX advisory lock. */
 #define	P_CONTROLT	0x00002	/* Has a controlling terminal. */
 #define	P_KTHREAD	0x00004	/* Kernel thread (*). */
-#define	P_NOLOAD	0x00008	/* Ignore during load avg calculations. */
+#define	P_UNUSED0	0x00008	/* available. */
 #define	P_PPWAIT	0x00010	/* Parent is waiting for child to exec/exit. */
 #define	P_PROFIL	0x00020	/* Has started profiling. */
 #define	P_STOPPROF	0x00040	/* Has thread requesting to stop profiling. */

Modified: head/sys/vm/vm_zeroidle.c
==============================================================================
--- head/sys/vm/vm_zeroidle.c	Tue Nov  3 12:52:35 2009	(r198853)
+++ head/sys/vm/vm_zeroidle.c	Tue Nov  3 16:46:52 2009	(r198854)
@@ -139,26 +139,21 @@ vm_pagezero(void __unused *arg)
 	}
 }
 
-static struct proc *pagezero_proc;
-
 static void
 pagezero_start(void __unused *arg)
 {
 	int error;
+	struct proc *p;
 	struct thread *td;
 
-	error = kproc_create(vm_pagezero, NULL, &pagezero_proc, RFSTOPPED, 0,
-	    "pagezero");
+	error = kproc_create(vm_pagezero, NULL, &p, RFSTOPPED, 0, "pagezero");
 	if (error)
 		panic("pagezero_start: error %d\n", error);
-	/*
-	 * We're an idle task, don't count us in the load.
-	 */
-	PROC_LOCK(pagezero_proc);
-	pagezero_proc->p_flag |= P_NOLOAD;
-	PROC_UNLOCK(pagezero_proc);
-	td = FIRST_THREAD_IN_PROC(pagezero_proc);
+	td = FIRST_THREAD_IN_PROC(p);
 	thread_lock(td);
+
+	/* We're an idle task, don't count us in the load. */
+	td->td_flags |= TDF_NOLOAD;
 	sched_class(td, PRI_IDLE);
 	sched_prio(td, PRI_MAX_IDLE);
 	sched_add(td, SRQ_BORING);

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 17:15:16 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3623D1065695;
	Tue,  3 Nov 2009 17:15:16 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2528A8FC1F;
	Tue,  3 Nov 2009 17:15:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3HFGlU097554;
	Tue, 3 Nov 2009 17:15:16 GMT (envelope-from alc@svn.freebsd.org)
Received: (from alc@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3HFG7T097552;
	Tue, 3 Nov 2009 17:15:16 GMT (envelope-from alc@svn.freebsd.org)
Message-Id: <200911031715.nA3HFG7T097552@svn.freebsd.org>
From: Alan Cox 
Date: Tue, 3 Nov 2009 17:15:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198855 - head/sys/vm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 17:15:16 -0000

Author: alc
Date: Tue Nov  3 17:15:15 2009
New Revision: 198855
URL: http://svn.freebsd.org/changeset/base/198855

Log:
  Eliminate a bit of hackery from vm_fault().  The operations that this
  hackery sought to prevent are now properly supported by vm_map_protect().
  (See r198505.)
  
  Reviewed by:	kib

Modified:
  head/sys/vm/vm_fault.c

Modified: head/sys/vm/vm_fault.c
==============================================================================
--- head/sys/vm/vm_fault.c	Tue Nov  3 16:46:52 2009	(r198854)
+++ head/sys/vm/vm_fault.c	Tue Nov  3 17:15:15 2009	(r198855)
@@ -264,17 +264,6 @@ RetryFault:;
 			&fs.entry, &fs.first_object, &fs.first_pindex, &prot, &wired);
 		if (result != KERN_SUCCESS)
 			return (result);
-
-		/*
-		 * If we don't COW now, on a user wire, the user will never
-		 * be able to write to the mapping.  If we don't make this
-		 * restriction, the bookkeeping would be nearly impossible.
-		 *
-		 * XXX The following assignment modifies the map without
-		 * holding a write lock on it.
-		 */
-		if ((fs.entry->protection & VM_PROT_WRITE) == 0)
-			fs.entry->max_protection &= ~VM_PROT_WRITE;
 	}
 
 	map_generation = fs.map->timestamp;

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 18:40:42 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DD30E106566B;
	Tue,  3 Nov 2009 18:40:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CBBEE8FC13;
	Tue,  3 Nov 2009 18:40:42 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3IegLC099752;
	Tue, 3 Nov 2009 18:40:42 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3Iegir099750;
	Tue, 3 Nov 2009 18:40:42 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911031840.nA3Iegir099750@svn.freebsd.org>
From: John Baldwin 
Date: Tue, 3 Nov 2009 18:40:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198856 - head/secure/usr.bin/bdes
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 18:40:43 -0000

Author: jhb
Date: Tue Nov  3 18:40:42 2009
New Revision: 198856
URL: http://svn.freebsd.org/changeset/base/198856

Log:
  Fix a couple of comment typos.
  
  MFC after:	1 week

Modified:
  head/secure/usr.bin/bdes/bdes.c

Modified: head/secure/usr.bin/bdes/bdes.c
==============================================================================
--- head/secure/usr.bin/bdes/bdes.c	Tue Nov  3 17:15:15 2009	(r198855)
+++ head/secure/usr.bin/bdes/bdes.c	Tue Nov  3 18:40:42 2009	(r198856)
@@ -170,11 +170,11 @@ main(int argc, char *argv[])
 	int i;				/* counter in a for loop */
 	char *p;			/* used to obtain the key */
 	DES_cblock msgbuf;		/* I/O buffer */
-	int kflag;			/* command-line encryptiooon key */
+	int kflag;			/* command-line encryption key */
 
 	setproctitle("-");		/* Hide command-line arguments */
 
-	/* initialize the initialization vctor */
+	/* initialize the initialization vector */
 	MEMZERO(ivec, 8);
 
 	/* process the argument list */

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 19:05:06 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3C0C9106566C;
	Tue,  3 Nov 2009 19:05:06 +0000 (UTC) (envelope-from jh@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2A3A98FC17;
	Tue,  3 Nov 2009 19:05:06 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3J55Jh000743;
	Tue, 3 Nov 2009 19:05:05 GMT (envelope-from jh@svn.freebsd.org)
Received: (from jh@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3J55Wo000741;
	Tue, 3 Nov 2009 19:05:05 GMT (envelope-from jh@svn.freebsd.org)
Message-Id: <200911031905.nA3J55Wo000741@svn.freebsd.org>
From: Jaakko Heinonen 
Date: Tue, 3 Nov 2009 19:05:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198857 - head/sys/dev/fdc
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 19:05:06 -0000

Author: jh
Date: Tue Nov  3 19:05:05 2009
New Revision: 198857
URL: http://svn.freebsd.org/changeset/base/198857

Log:
  fdc(4) module unload fixes:
  
  - Tear down the interrupt handler before killing the worker thread.
  - Do geom withering as GEOM event to avoid acquiring the GEOM topology
    lock under Giant.
  
  PR:		kern/104079
  Reviewed by:	joerg
  Approved by:	trasz (mentor)

Modified:
  head/sys/dev/fdc/fdc.c

Modified: head/sys/dev/fdc/fdc.c
==============================================================================
--- head/sys/dev/fdc/fdc.c	Tue Nov  3 18:40:42 2009	(r198856)
+++ head/sys/dev/fdc/fdc.c	Tue Nov  3 19:05:05 2009	(r198857)
@@ -1734,6 +1734,10 @@ fdc_detach(device_t dev)
 	if ((error = bus_generic_detach(dev)))
 		return (error);
 
+	if (fdc->fdc_intr)
+		bus_teardown_intr(dev, fdc->res_irq, fdc->fdc_intr);
+	fdc->fdc_intr = NULL;
+
 	/* kill worker thread */
 	mtx_lock(&fdc->fdc_mtx);
 	fdc->flags |= FDC_KTHREAD_EXIT;
@@ -2031,15 +2035,22 @@ fd_attach(device_t dev)
 	return (0);
 }
 
+static void
+fd_detach_geom(void *arg, int flag)
+{
+	struct	fd_data *fd = arg;
+
+	g_topology_assert();
+	g_wither_geom(fd->fd_geom, ENXIO);
+}
+
 static int
 fd_detach(device_t dev)
 {
 	struct	fd_data *fd;
 
 	fd = device_get_softc(dev);
-	g_topology_lock();
-	g_wither_geom(fd->fd_geom, ENXIO);
-	g_topology_unlock();
+	g_waitfor_event(fd_detach_geom, fd, M_WAITOK, NULL);
 	while (device_get_state(dev) == DS_BUSY)
 		tsleep(fd, PZERO, "fdd", hz/10);
 	callout_drain(&fd->toffhandle);

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 19:30:36 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7CECA106568F;
	Tue,  3 Nov 2009 19:30:36 +0000 (UTC)
	(envelope-from tom@tomjudge.com)
Received: from tomjudge.vm.bytemark.co.uk (tomjudge.vm.bytemark.co.uk
	[80.68.91.100])
	by mx1.freebsd.org (Postfix) with ESMTP id CA5758FC1C;
	Tue,  3 Nov 2009 19:30:35 +0000 (UTC)
Received: from localhost (localhost.localdomain [127.0.0.1])
	by tomjudge.vm.bytemark.co.uk (Postfix) with ESMTP id 20AFE48A99;
	Tue,  3 Nov 2009 19:30:35 +0000 (GMT)
X-Virus-Scanned: Debian amavisd-new at tomjudge.vm.bytemark.co.uk
Received: from tomjudge.vm.bytemark.co.uk ([127.0.0.1])
	by localhost (tomjudge.vm.bytemark.co.uk [127.0.0.1]) (amavisd-new,
	port 10024)
	with ESMTP id 2SE2SJaUdzFw; Tue,  3 Nov 2009 19:30:26 +0000 (GMT)
Received: from rita.nodomain (unknown [192.168.205.6])
	by tomjudge.vm.bytemark.co.uk (Postfix) with ESMTP id DFA4848A7C;
	Tue,  3 Nov 2009 19:30:23 +0000 (GMT)
Message-ID: <4AF08495.5040507@tomjudge.com>
Date: Tue, 03 Nov 2009 19:29:25 +0000
From: Tom Judge 
User-Agent: Thunderbird 2.0.0.23 (X11/20090822)
MIME-Version: 1.0
To: Stanislav Sedov 
References: <200910211247.n9LCl9Ab099426@svn.freebsd.org>
In-Reply-To: <200910211247.n9LCl9Ab099426@svn.freebsd.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198320 - in head/sys: conf dev/bce
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 19:30:36 -0000

Hi Stanislav,

Any chance this can be MFC'd to stable/8, stable/7 and releng/8.0?

Tom


Stanislav Sedov wrote:
> Author: stas
> Date: Wed Oct 21 12:47:09 2009
> New Revision: 198320
> URL: http://svn.freebsd.org/changeset/base/198320
> 
> Log:
>   - Introduce new option BCE_JUMBO_HDRSPLIT that allows user to enable header
>     splitting in bce(4) instead of (ab)using ZERO_COPY_SOCKETS that was not
>     propagated into if_bce.c anyway.  It is disabled by default.
>   
>   Approved by:	davidch
>   MFC after:	3 days
> 
> Modified:
>   head/sys/conf/NOTES
>   head/sys/conf/options
>   head/sys/dev/bce/if_bce.c
>   head/sys/dev/bce/if_bcereg.h
> 
> Modified: head/sys/conf/NOTES
> ==============================================================================
> --- head/sys/conf/NOTES	Wed Oct 21 12:42:25 2009	(r198319)
> +++ head/sys/conf/NOTES	Wed Oct 21 12:47:09 2009	(r198320)
> @@ -1985,6 +1985,12 @@ device		lmc
>  # only works for Tigon II chips, and has no effect for Tigon I chips.
>  options 	TI_JUMBO_HDRSPLIT
>  
> +#
> +# Use header splitting feature on bce(4) adapters.
> +# This may help to reduce the amount of jumbo-sized memory buffers used.
> +#
> +options		BCE_JUMBO_HDRSPLIT
> +
>  # These two options allow manipulating the mbuf cluster size and mbuf size,
>  # respectively.  Be very careful with NIC driver modules when changing
>  # these from their default values, because that can potentially cause a
> 
> Modified: head/sys/conf/options
> ==============================================================================
> --- head/sys/conf/options	Wed Oct 21 12:42:25 2009	(r198319)
> +++ head/sys/conf/options	Wed Oct 21 12:47:09 2009	(r198320)
> @@ -511,6 +511,7 @@ DRM_DEBUG		opt_drm.h
>  ZERO_COPY_SOCKETS	opt_zero.h
>  TI_PRIVATE_JUMBOS	opt_ti.h
>  TI_JUMBO_HDRSPLIT	opt_ti.h
> +BCE_JUMBO_HDRSPLIT	opt_bce.h
>  
>  # XXX Conflict: # of devices vs network protocol (Native ATM).
>  # This makes "atm.h" unusable.
> 
> Modified: head/sys/dev/bce/if_bce.c
> ==============================================================================
> --- head/sys/dev/bce/if_bce.c	Wed Oct 21 12:42:25 2009	(r198319)
> +++ head/sys/dev/bce/if_bce.c	Wed Oct 21 12:47:09 2009	(r198320)
> @@ -293,12 +293,12 @@ static void bce_dump_enet           (str
>  static void bce_dump_mbuf 			(struct bce_softc *, struct mbuf *);
>  static void bce_dump_tx_mbuf_chain	(struct bce_softc *, u16, int);
>  static void bce_dump_rx_mbuf_chain	(struct bce_softc *, u16, int);
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  static void bce_dump_pg_mbuf_chain	(struct bce_softc *, u16, int);
>  #endif
>  static void bce_dump_txbd			(struct bce_softc *, int, struct tx_bd *);
>  static void bce_dump_rxbd			(struct bce_softc *, int, struct rx_bd *);
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  static void bce_dump_pgbd			(struct bce_softc *, int, struct rx_bd *);
>  #endif
>  static void bce_dump_l2fhdr			(struct bce_softc *, int, struct l2_fhdr *);
> @@ -306,7 +306,7 @@ static void bce_dump_ctx			(struct bce_s
>  static void bce_dump_ftqs			(struct bce_softc *);
>  static void bce_dump_tx_chain		(struct bce_softc *, u16, int);
>  static void bce_dump_rx_chain		(struct bce_softc *, u16, int);
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  static void bce_dump_pg_chain		(struct bce_softc *, u16, int);
>  #endif
>  static void bce_dump_status_block	(struct bce_softc *);
> @@ -393,7 +393,7 @@ static int  bce_init_rx_chain		(struct b
>  static void bce_fill_rx_chain		(struct bce_softc *);
>  static void bce_free_rx_chain		(struct bce_softc *);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  static int  bce_get_pg_buf			(struct bce_softc *, struct mbuf *, u16 *, u16 *);
>  static int  bce_init_pg_chain		(struct bce_softc *);
>  static void bce_fill_pg_chain		(struct bce_softc *);
> @@ -602,7 +602,7 @@ bce_print_adapter_info(struct bce_softc 
>  	/* Firmware version and device features. */
>  	printf("B/C (%s); Flags (", sc->bce_bc_ver);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	printf("SPLT ");
>      i++;
>  #endif
> @@ -1066,7 +1066,7 @@ bce_attach(device_t dev)
>  	 * This may change later if the MTU size is set to
>  	 * something other than 1500.
>  	 */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	sc->rx_bd_mbuf_alloc_size = MHLEN;
>  	/* Make sure offset is 16 byte aligned for hardware. */
>  	sc->rx_bd_mbuf_align_pad  = roundup2((MSIZE - MHLEN), 16) -
> @@ -2835,7 +2835,7 @@ bce_dma_free(struct bce_softc *sc)
>  	}
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	/* Free, unmap and destroy all page buffer descriptor chain pages. */
>  	for (i = 0; i < PG_PAGES; i++ ) {
>  		if (sc->pg_bd_chain[i] != NULL) {
> @@ -2899,7 +2899,7 @@ bce_dma_free(struct bce_softc *sc)
>  		sc->rx_mbuf_tag = NULL;
>  	}
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	/* Unload and destroy the page mbuf maps. */
>  	for (i = 0; i < TOTAL_PG_BD; i++) {
>  		if (sc->pg_mbuf_map[i] != NULL) {
> @@ -3345,7 +3345,7 @@ bce_dma_alloc(device_t dev)
>  	/*
>  	 * Create a DMA tag for RX mbufs.
>  	 */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	max_size = max_seg_size = ((sc->rx_bd_mbuf_alloc_size < MCLBYTES) ?
>  		MCLBYTES : sc->rx_bd_mbuf_alloc_size);
>  #else
> @@ -3386,7 +3386,7 @@ bce_dma_alloc(device_t dev)
>  		}
>  	}
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	/*
>  	 * Create a DMA tag for the page buffer descriptor chain,
>  	 * allocate and clear the memory, and fetch the physical
> @@ -4473,7 +4473,7 @@ bce_stop(struct bce_softc *sc)
>  	bce_disable_intr(sc);
>  
>  	/* Free RX buffers. */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	bce_free_pg_chain(sc);
>  #endif
>  	bce_free_rx_chain(sc);
> @@ -4910,7 +4910,7 @@ bce_get_rx_buf(struct bce_softc *sc, str
>  			goto bce_get_rx_buf_exit);
>  
>  		/* This is a new mbuf allocation. */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  		MGETHDR(m_new, M_DONTWAIT, MT_DATA);
>  #else
>  		if (sc->rx_bd_mbuf_alloc_size <= MCLBYTES)
> @@ -4991,7 +4991,7 @@ bce_get_rx_buf_exit:
>  }
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /****************************************************************************/
>  /* Encapsulate an mbuf cluster into the page chain.                        */
>  /*                                                                          */
> @@ -5100,7 +5100,7 @@ bce_get_pg_buf_exit:
>  
>  	return(rc);
>  }
> -#endif /* ZERO_COPY_SOCKETS */
> +#endif /* BCE_JUMBO_HDRSPLIT */
>  
>  /****************************************************************************/
>  /* Initialize the TX context memory.                                        */
> @@ -5456,7 +5456,7 @@ bce_free_rx_chain(struct bce_softc *sc)
>  }
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /****************************************************************************/
>  /* Allocate memory and initialize the page data structures.                 */
>  /* Assumes that bce_init_rx_chain() has not already been called.            */
> @@ -5620,7 +5620,7 @@ bce_free_pg_chain(struct bce_softc *sc)
>  
>  	DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_UNLOAD);
>  }
> -#endif /* ZERO_COPY_SOCKETS */
> +#endif /* BCE_JUMBO_HDRSPLIT */
>  
>  
>  /****************************************************************************/
> @@ -5793,7 +5793,7 @@ bce_rx_intr(struct bce_softc *sc)
>  	unsigned int pkt_len;
>  	u16 sw_rx_cons, sw_rx_cons_idx, hw_rx_cons;
>  	u32 status;
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	unsigned int rem_len;
>  	u16 sw_pg_cons, sw_pg_cons_idx;
>  #endif
> @@ -5809,7 +5809,7 @@ bce_rx_intr(struct bce_softc *sc)
>  		bus_dmamap_sync(sc->rx_bd_chain_tag,
>  		    sc->rx_bd_chain_map[i], BUS_DMASYNC_POSTREAD);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	/* Prepare the page chain pages to be accessed by the host CPU. */
>  	for (int i = 0; i < PG_PAGES; i++)
>  		bus_dmamap_sync(sc->pg_bd_chain_tag,
> @@ -5821,7 +5821,7 @@ bce_rx_intr(struct bce_softc *sc)
>  
>  	/* Get working copies of the driver's view of the consumer indices. */
>  	sw_rx_cons = sc->rx_cons;
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	sw_pg_cons = sc->pg_cons;
>  #endif
>  
> @@ -5882,7 +5882,7 @@ bce_rx_intr(struct bce_softc *sc)
>  		 */
>  		m_adj(m0, sizeof(struct l2_fhdr) + ETHER_ALIGN);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  		/*
>  		 * Check whether the received frame fits in a single
>  		 * mbuf or not (i.e. packet data + FCS <=
> @@ -6056,7 +6056,7 @@ bce_rx_int_next_rx:
>  		if (m0) {
>  			/* Make sure we don't lose our place when we release the lock. */
>  			sc->rx_cons = sw_rx_cons;
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  			sc->pg_cons = sw_pg_cons;
>  #endif
>  
> @@ -6066,7 +6066,7 @@ bce_rx_int_next_rx:
>  
>  			/* Recover our place. */
>  			sw_rx_cons = sc->rx_cons;
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  			sw_pg_cons = sc->pg_cons;
>  #endif
>  		}
> @@ -6077,7 +6077,7 @@ bce_rx_int_next_rx:
>  	}
>  
>  	/* No new packets to process.  Refill the RX and page chains and exit. */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	sc->pg_cons = sw_pg_cons;
>  	bce_fill_pg_chain(sc);
>  #endif
> @@ -6090,7 +6090,7 @@ bce_rx_int_next_rx:
>  		bus_dmamap_sync(sc->rx_bd_chain_tag,
>  		    sc->rx_bd_chain_map[i], BUS_DMASYNC_PREWRITE);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	for (int i = 0; i < PG_PAGES; i++)
>  		bus_dmamap_sync(sc->pg_bd_chain_tag,
>  		    sc->pg_bd_chain_map[i], BUS_DMASYNC_PREWRITE);
> @@ -6336,7 +6336,7 @@ bce_init_locked(struct bce_softc *sc)
>  	 * Calculate and program the hardware Ethernet MTU
>  	 * size. Be generous on the receive if we have room.
>  	 */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	if (ifp->if_mtu <= (sc->rx_bd_mbuf_data_len + sc->pg_bd_mbuf_alloc_size))
>  		ether_mtu = sc->rx_bd_mbuf_data_len + sc->pg_bd_mbuf_alloc_size;
>  #else
> @@ -6368,7 +6368,7 @@ bce_init_locked(struct bce_softc *sc)
>  	/* Program appropriate promiscuous/multicast filtering. */
>  	bce_set_rx_mode(sc);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	DBPRINT(sc, BCE_INFO_LOAD, "%s(): pg_bd_mbuf_alloc_size = %d\n",
>  		__FUNCTION__, sc->pg_bd_mbuf_alloc_size);
>  
> @@ -6881,7 +6881,7 @@ bce_ioctl(struct ifnet *ifp, u_long comm
>  			BCE_LOCK(sc);
>  			ifp->if_mtu = ifr->ifr_mtu;
>  			ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  			/* No buffer allocation size changes are necessary. */
>  #else
>  			/* Recalculate our buffer allocation sizes. */
> @@ -7584,7 +7584,7 @@ bce_tick(void *xsc)
>  	bce_stats_update(sc);
>  
>  	/* Top off the receive and page chains. */
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	bce_fill_pg_chain(sc);
>  #endif
>  	bce_fill_rx_chain(sc);
> @@ -7764,7 +7764,7 @@ bce_sysctl_dump_tx_chain(SYSCTL_HANDLER_
>  }
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /****************************************************************************/
>  /* Provides a sysctl interface to allow dumping the page chain.             */
>  /*                                                                          */
> @@ -8392,7 +8392,7 @@ bce_add_sysctls(struct bce_softc *sc)
>  		(void *)sc, 0,
>  		bce_sysctl_dump_tx_chain, "I", "Dump tx_bd chain");
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
>  		"dump_pg_chain", CTLTYPE_INT | CTLFLAG_RW,
>  		(void *)sc, 0,
> @@ -8687,7 +8687,7 @@ bce_dump_rx_mbuf_chain(struct bce_softc 
>  }
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /****************************************************************************/
>  /* Prints out the mbufs in the mbuf page chain.                             */
>  /*                                                                          */
> @@ -8811,7 +8811,7 @@ bce_dump_rxbd(struct bce_softc *sc, int 
>  }
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /****************************************************************************/
>  /* Prints out a rx_bd structure in the page chain.                          */
>  /*                                                                          */
> @@ -9298,7 +9298,7 @@ bce_dump_rx_chain(struct bce_softc *sc, 
>  }
>  
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /****************************************************************************/
>  /* Prints out the page chain.                                               */
>  /*                                                                          */
> @@ -9779,7 +9779,7 @@ bce_dump_driver_state(struct bce_softc *
>  		"0x%08X:%08X - (sc->rx_bd_chain) rx_bd chain virtual address\n",
>  		val_hi, val_lo);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	val_hi = BCE_ADDR_HI(sc->pg_bd_chain);
>  	val_lo = BCE_ADDR_LO(sc->pg_bd_chain);
>  	BCE_PRINTF(
> @@ -9799,7 +9799,7 @@ bce_dump_driver_state(struct bce_softc *
>  		"0x%08X:%08X - (sc->rx_mbuf_ptr) rx mbuf chain virtual address\n",
>  		val_hi, val_lo);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	val_hi = BCE_ADDR_HI(sc->pg_mbuf_ptr);
>  	val_lo = BCE_ADDR_LO(sc->pg_mbuf_ptr);
>  	BCE_PRINTF(
> @@ -9852,7 +9852,7 @@ bce_dump_driver_state(struct bce_softc *
>  	BCE_PRINTF("         0x%08X - (sc->free_rx_bd) free rx_bd's\n",
>  		sc->free_rx_bd);
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	BCE_PRINTF("     0x%04X(0x%04X) - (sc->pg_prod) page producer index\n",
>  		sc->pg_prod, (u16) PG_CHAIN_IDX(sc->pg_prod));
>  
> @@ -10358,7 +10358,7 @@ bce_breakpoint(struct bce_softc *sc)
>  		bce_dump_tpat_state(sc, 0);
>  		bce_dump_cp_state(sc, 0);
>  		bce_dump_com_state(sc, 0);
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  		bce_dump_pgbd(sc, 0, NULL);
>  		bce_dump_pg_mbuf_chain(sc, 0, USABLE_PG_BD);
>  		bce_dump_pg_chain(sc, 0, USABLE_PG_BD);
> 
> Modified: head/sys/dev/bce/if_bcereg.h
> ==============================================================================
> --- head/sys/dev/bce/if_bcereg.h	Wed Oct 21 12:42:25 2009	(r198319)
> +++ head/sys/dev/bce/if_bcereg.h	Wed Oct 21 12:47:09 2009	(r198320)
> @@ -6216,7 +6216,7 @@ struct l2_fhdr {
>  #define RX_PAGE(x) (((x) & ~USABLE_RX_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4))
>  #define RX_IDX(x) ((x) & USABLE_RX_BD_PER_PAGE)
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  /*
>   * To accomodate jumbo frames, the page chain should
>   * be 4 times larger than the receive chain.
> @@ -6238,7 +6238,7 @@ struct l2_fhdr {
>  #define PG_PAGE(x) (((x) & ~USABLE_PG_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4))
>  #define PG_IDX(x) ((x) & USABLE_PG_BD_PER_PAGE)
>  
> -#endif /* ZERO_COPY_SOCKETS */
> +#endif /* BCE_JUMBO_HDRSPLIT */
>  
>  #define CTX_INIT_RETRY_COUNT        10
>  
> @@ -6517,7 +6517,7 @@ struct bce_softc
>  	u16					tx_cons;
>  	u32					tx_prod_bseq;	/* Counts the bytes used.  */
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	u16					pg_prod;
>  	u16					pg_cons;
>  #endif
> @@ -6534,7 +6534,7 @@ struct bce_softc
>  	int					rx_bd_mbuf_data_len;
>  	int					rx_bd_mbuf_align_pad;
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	int					pg_bd_mbuf_alloc_size;
>  #endif
>  
> @@ -6556,7 +6556,7 @@ struct bce_softc
>  	struct rx_bd		*rx_bd_chain[RX_PAGES];
>  	bus_addr_t			rx_bd_chain_paddr[RX_PAGES];
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	/* H/W maintained page buffer descriptor chain structure. */
>  	bus_dma_tag_t		pg_bd_chain_tag;
>  	bus_dmamap_t		pg_bd_chain_map[PG_PAGES];
> @@ -6593,7 +6593,7 @@ struct bce_softc
>  	bus_dma_tag_t		rx_mbuf_tag;
>  	bus_dma_tag_t		tx_mbuf_tag;
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	bus_dma_tag_t		pg_mbuf_tag;
>  #endif
>  
> @@ -6605,7 +6605,7 @@ struct bce_softc
>  	bus_dmamap_t		rx_mbuf_map[TOTAL_RX_BD];
>  	struct mbuf			*rx_mbuf_ptr[TOTAL_RX_BD];
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	/* S/W maintained mbuf page chain structure. */
>  	bus_dmamap_t		pg_mbuf_map[TOTAL_PG_BD];
>  	struct mbuf			*pg_mbuf_ptr[TOTAL_PG_BD];
> @@ -6617,7 +6617,7 @@ struct bce_softc
>  	u16 used_tx_bd;
>  	u16 max_tx_bd;
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	u16 free_pg_bd;
>  	u16 max_pg_bd;
>  #endif
> @@ -6705,7 +6705,7 @@ struct bce_softc
>  	int	debug_tx_mbuf_alloc;
>  	int debug_rx_mbuf_alloc;
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	int debug_pg_mbuf_alloc;
>  #endif
>  
> @@ -6722,7 +6722,7 @@ struct bce_softc
>  	u32	rx_low_watermark;			/* Lowest number of rx_bd's free. */
>  	u32 rx_empty_count;				/* Number of times the RX chain was empty. */
>  
> -#ifdef ZERO_COPY_SOCKETS
> +#ifdef BCE_JUMBO_HDRSPLIT
>  	u32	pg_low_watermark;			/* Lowest number of pages free. */
>  	u32 pg_empty_count; 			/* Number of times the page chain was empty. */
>  #endif
> _______________________________________________
> svn-src-all@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"


From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 20:22:09 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7D9EB106566B;
	Tue,  3 Nov 2009 20:22:09 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6B06A8FC1C;
	Tue,  3 Nov 2009 20:22:09 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3KM9lB003438;
	Tue, 3 Nov 2009 20:22:09 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3KM96H003434;
	Tue, 3 Nov 2009 20:22:09 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911032022.nA3KM96H003434@svn.freebsd.org>
From: Jung-uk Kim 
Date: Tue, 3 Nov 2009 20:22:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198858 - in head/sys: dev/fb dev/syscons sys
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 20:22:09 -0000

Author: jkim
Date: Tue Nov  3 20:22:09 2009
New Revision: 198858
URL: http://svn.freebsd.org/changeset/base/198858

Log:
  Fix VESA color palette corruption:
  
  - VBE 3.0 says palette format resets to 6-bit mode when video mode changes.
  We simply set 8-bit mode when we switch modes if the adapter supports it.
  - VBE 3.0 also says if the mode is not VGA compatible, we must use VBE
  function to save/restore palette.  Otherwise, VGA function may be used.
  Thus, reinstate the save/load palette functions only for non-VGA compatible
  modes regardless of its palette format.
  - Let vesa(4) set VESA modes even if vga(4) claims to support it.
  - Reset default palette if VESA pixel mode is set initially.
  - Fix more style nits.

Modified:
  head/sys/dev/fb/vesa.c
  head/sys/dev/syscons/syscons.c
  head/sys/sys/fbio.h

Modified: head/sys/dev/fb/vesa.c
==============================================================================
--- head/sys/dev/fb/vesa.c	Tue Nov  3 19:05:05 2009	(r198857)
+++ head/sys/dev/fb/vesa.c	Tue Nov  3 20:22:09 2009	(r198858)
@@ -174,10 +174,8 @@ static int vesa_bios_save_palette2(int s
 				   u_char *b, int bits);
 static int vesa_bios_load_palette(int start, int colors, u_char *palette,
 				  int bits);
-#ifdef notyet
 static int vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g,
 				   u_char *b, int bits);
-#endif
 #define STATE_SIZE	0
 #define STATE_SAVE	1
 #define STATE_LOAD	2
@@ -415,9 +413,9 @@ vesa_bios_save_palette(int start, int co
 
 	bits = 8 - bits;
 	for (i = 0; i < colors; ++i) {
-		palette[i*3]     = p[i*4 + 2] << bits;
-		palette[i*3 + 1] = p[i*4 + 1] << bits;
-		palette[i*3 + 2] = p[i*4] << bits;
+		palette[i * 3] = p[i * 4 + 2] << bits;
+		palette[i * 3 + 1] = p[i * 4 + 1] << bits;
+		palette[i * 3 + 2] = p[i * 4] << bits;
 	}
 	x86bios_free(p, colors * 4);
 
@@ -455,9 +453,9 @@ vesa_bios_save_palette2(int start, int c
 
 	bits = 8 - bits;
 	for (i = 0; i < colors; ++i) {
-		r[i] = p[i*4 + 2] << bits;
-		g[i] = p[i*4 + 1] << bits;
-		b[i] = p[i*4] << bits;
+		r[i] = p[i * 4 + 2] << bits;
+		g[i] = p[i * 4 + 1] << bits;
+		b[i] = p[i * 4] << bits;
 	}
 	x86bios_free(p, colors * 4);
 
@@ -487,10 +485,10 @@ vesa_bios_load_palette(int start, int co
 
 	bits = 8 - bits;
 	for (i = 0; i < colors; ++i) {
-		p[i*4]	   = palette[i*3 + 2] >> bits;
-		p[i*4 + 1] = palette[i*3 + 1] >> bits;
-		p[i*4 + 2] = palette[i*3] >> bits;
-		p[i*4 + 3] = 0;
+		p[i * 4] = palette[i * 3 + 2] >> bits;
+		p[i * 4 + 1] = palette[i * 3 + 1] >> bits;
+		p[i * 4 + 2] = palette[i * 3] >> bits;
+		p[i * 4 + 3] = 0;
 	}
 	x86bios_intr(®s, 0x10);
 	x86bios_free(p, colors * 4);
@@ -498,7 +496,6 @@ vesa_bios_load_palette(int start, int co
 	return (regs.R_AX != 0x004f);
 }
 
-#ifdef notyet
 static int
 vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g, u_char *b,
 			int bits)
@@ -523,17 +520,16 @@ vesa_bios_load_palette2(int start, int c
 
 	bits = 8 - bits;
 	for (i = 0; i < colors; ++i) {
-		p[i*4]	   = b[i] >> bits;
-		p[i*4 + 1] = g[i] >> bits;
-		p[i*4 + 2] = r[i] >> bits;
-		p[i*4 + 3] = 0;
+		p[i * 4] = b[i] >> bits;
+		p[i * 4 + 1] = g[i] >> bits;
+		p[i * 4 + 2] = r[i] >> bits;
+		p[i * 4 + 3] = 0;
 	}
 	x86bios_intr(®s, 0x10);
 	x86bios_free(p, colors * 4);
 
 	return (regs.R_AX != 0x004f);
 }
-#endif
 
 static ssize_t
 vesa_bios_state_buf_size(void)
@@ -702,6 +698,7 @@ vesa_translate_flags(u_int16_t vflags)
 		{ V_MODECOLOR, V_INFO_COLOR, 0 },
 		{ V_MODEGRAPHICS, V_INFO_GRAPHICS, 0 },
 		{ V_MODELFB, V_INFO_LINEAR, 0 },
+		{ V_MODENONVGA, V_INFO_NONVGA, 0 },
 	};
 	int flags;
 	int i;
@@ -1275,7 +1272,8 @@ vesa_set_mode(video_adapter_t *adp, int 
 	 * the new mode correctly.
 	 */
 	if (VESA_MODE(adp->va_mode)) {
-		if ((*prevvidsw->get_info)(adp, mode, &info) == 0) {
+		if (!VESA_MODE(mode) &&
+		    (*prevvidsw->get_info)(adp, mode, &info) == 0) {
 			int10_set_mode(adp->va_initial_bios_mode);
 			if (adp->va_info.vi_flags & V_INFO_LINEAR)
 				vesa_unmap_buffer(adp->va_buffer,
@@ -1288,7 +1286,7 @@ vesa_set_mode(video_adapter_t *adp, int 
 	}
 
 	/* we may not need to handle this mode after all... */
-	if ((*prevvidsw->set_mode)(adp, mode) == 0)
+	if (!VESA_MODE(mode) && (*prevvidsw->set_mode)(adp, mode) == 0)
 		return (0);
 
 	/* is the new mode supported? */
@@ -1306,6 +1304,9 @@ vesa_set_mode(video_adapter_t *adp, int 
 	if (vesa_bios_set_mode(mode | ((info.vi_flags & V_INFO_LINEAR) ? 0x4000 : 0)))
 		return (1);
 
+	if ((vesa_adp_info->v_flags & V_DAC8) != 0)
+		vesa_bios_set_dac(8);
+
 	if (adp->va_info.vi_flags & V_INFO_LINEAR)
 		vesa_unmap_buffer(adp->va_buffer,
 				  vesa_adp_info->v_memsize*64*1024);
@@ -1382,17 +1383,11 @@ static int
 vesa_save_palette(video_adapter_t *adp, u_char *palette)
 {
 	int bits;
-	int error;
 
-	if ((adp == vesa_adp) && (vesa_adp_info->v_flags & V_DAC8)
-	    && VESA_MODE(adp->va_mode)) {
-		bits = vesa_bios_get_dac();
-		error = vesa_bios_save_palette(0, 256, palette, bits);
-		if (error == 0)
-			return (0);
-		if (bits != 6)
-			return (error);
-	}
+	if ((adp == vesa_adp) &&
+	    (adp->va_info.vi_flags & V_INFO_NONVGA) != 0 &&
+	    (bits = vesa_bios_get_dac()) >= 6)
+		return (vesa_bios_save_palette(0, 256, palette, bits));
 
 	return ((*prevvidsw->save_palette)(adp, palette));
 }
@@ -1400,19 +1395,12 @@ vesa_save_palette(video_adapter_t *adp, 
 static int
 vesa_load_palette(video_adapter_t *adp, u_char *palette)
 {
-#ifdef notyet
 	int bits;
-	int error;
 
-	if ((adp == vesa_adp) && (vesa_adp_info->v_flags & V_DAC8) 
-	    && VESA_MODE(adp->va_mode) && ((bits = vesa_bios_set_dac(8)) > 6)) {
-		error = vesa_bios_load_palette(0, 256, palette, bits);
-		if (error == 0)
-			return (0);
-		if (vesa_bios_set_dac(6) != 6)
-			return (1);
-	}
-#endif /* notyet */
+	if ((adp == vesa_adp) &&
+	    (adp->va_info.vi_flags & V_INFO_NONVGA) != 0 &&
+	    (bits = vesa_bios_get_dac()) >= 6)
+		return (vesa_bios_load_palette(0, 256, palette, bits));
 
 	return ((*prevvidsw->load_palette)(adp, palette));
 }
@@ -1637,14 +1625,11 @@ get_palette(video_adapter_t *adp, int ba
 		return (1);
 	if ((base + count) > 256)
 		return (1);
-	if (!(vesa_adp_info->v_flags & V_DAC8) || !VESA_MODE(adp->va_mode))
+	if ((adp->va_info.vi_flags & V_INFO_NONVGA) == 0 ||
+	    (bits = vesa_bios_get_dac()) < 6)
 		return (1);
 
-	bits = vesa_bios_get_dac();
-	if (bits <= 6)
-		return (1);
-
-	r = malloc(count*3, M_DEVBUF, M_WAITOK);
+	r = malloc(count * 3, M_DEVBUF, M_WAITOK);
 	g = r + count;
 	b = g + count;
 	error = vesa_bios_save_palette2(base, count, r, g, b, bits);
@@ -1659,7 +1644,6 @@ get_palette(video_adapter_t *adp, int ba
 	}
 	free(r, M_DEVBUF);
 
-	/* if error && bits != 6 at this point, we are in trouble... XXX */
 	return (error);
 }
 
@@ -1667,8 +1651,6 @@ static int
 set_palette(video_adapter_t *adp, int base, int count,
 	    u_char *red, u_char *green, u_char *blue, u_char *trans)
 {
-	return (1);
-#ifdef notyet
 	u_char *r;
 	u_char *g;
 	u_char *b;
@@ -1677,11 +1659,11 @@ set_palette(video_adapter_t *adp, int ba
 
 	if ((base < 0) || (base >= 256) || (base + count > 256))
 		return (1);
-	if (!(vesa_adp_info->v_flags & V_DAC8) || !VESA_MODE(adp->va_mode)
-		|| ((bits = vesa_bios_set_dac(8)) <= 6))
+	if ((adp->va_info.vi_flags & V_INFO_NONVGA) == 0 ||
+	    (bits = vesa_bios_get_dac()) < 6)
 		return (1);
 
-	r = malloc(count*3, M_DEVBUF, M_WAITOK);
+	r = malloc(count * 3, M_DEVBUF, M_WAITOK);
 	g = r + count;
 	b = g + count;
 	copyin(red, r, count);
@@ -1690,13 +1672,8 @@ set_palette(video_adapter_t *adp, int ba
 
 	error = vesa_bios_load_palette2(base, count, r, g, b, bits);
 	free(r, M_DEVBUF);
-	if (error == 0)
-		return (0);
 
-	/* if the following call fails, we are in trouble... XXX */
-	vesa_bios_set_dac(6);
-	return (1);
-#endif /* notyet */
+	return (error);
 }
 
 static int

Modified: head/sys/dev/syscons/syscons.c
==============================================================================
--- head/sys/dev/syscons/syscons.c	Tue Nov  3 19:05:05 2009	(r198857)
+++ head/sys/dev/syscons/syscons.c	Tue Nov  3 20:22:09 2009	(r198858)
@@ -414,6 +414,9 @@ sc_attach_unit(int unit, int flags)
 #endif
 	    sc_set_graphics_mode(scp, NULL, vmode);
 	    sc_set_pixel_mode(scp, NULL, 0, 0, 16, 8);
+#ifndef SC_NO_PALETTE_LOADING
+	    vidd_save_palette(sc->adp, sc->palette);
+#endif
 	    sc->initial_mode = vmode;
 #ifdef DEV_SPLASH
 	    /* put up the splash again! */

Modified: head/sys/sys/fbio.h
==============================================================================
--- head/sys/sys/fbio.h	Tue Nov  3 19:05:05 2009	(r198857)
+++ head/sys/sys/fbio.h	Tue Nov  3 20:22:09 2009	(r198858)
@@ -269,6 +269,7 @@ struct video_info {
 #define V_INFO_GRAPHICS	(1 << 1)
 #define V_INFO_LINEAR	(1 << 2)
 #define V_INFO_VESA	(1 << 3)
+#define	V_INFO_NONVGA	(1 << 4)
     int			vi_width;
     int			vi_height;
     int			vi_cwidth;

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 21:06:19 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 79ED91065670;
	Tue,  3 Nov 2009 21:06:19 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 68D0C8FC0A;
	Tue,  3 Nov 2009 21:06:19 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3L6JUQ004920;
	Tue, 3 Nov 2009 21:06:19 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3L6JCn004918;
	Tue, 3 Nov 2009 21:06:19 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200911032106.nA3L6JCn004918@svn.freebsd.org>
From: Andrew Thompson 
Date: Tue, 3 Nov 2009 21:06:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198859 - head
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 21:06:19 -0000

Author: thompsa
Date: Tue Nov  3 21:06:19 2009
New Revision: 198859
URL: http://svn.freebsd.org/changeset/base/198859

Log:
  Belatedly add an UPDATING message for the usb ethernet ifnet naming in r188412.
  
  MFC after:	3 days

Modified:
  head/UPDATING

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Tue Nov  3 20:22:09 2009	(r198858)
+++ head/UPDATING	Tue Nov  3 21:06:19 2009	(r198859)
@@ -537,6 +537,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 		# Map old usb library to new one for usb2 stack
 		libusb-0.1.so.8	libusb20.so.1
 
+20090209:
+	All USB ethernet devices now attach as interfaces under the name ueN
+	(eg. ue0). This is to provide a predictable name as vendors often
+	change usb chipsets in a product without notice.
+
 20090203:
 	The ichsmb(4) driver has been changed to require SMBus slave
 	addresses be left-justified (xxxxxxx0b) rather than right-justified.

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 21:06:20 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 12A6D106566B;
	Tue,  3 Nov 2009 21:06:20 +0000 (UTC) (envelope-from ed@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 00A9E8FC12;
	Tue,  3 Nov 2009 21:06:20 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3L6J8s004943;
	Tue, 3 Nov 2009 21:06:19 GMT (envelope-from ed@svn.freebsd.org)
Received: (from ed@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3L6Jhq004939;
	Tue, 3 Nov 2009 21:06:19 GMT (envelope-from ed@svn.freebsd.org)
Message-Id: <200911032106.nA3L6Jhq004939@svn.freebsd.org>
From: Ed Schouten 
Date: Tue, 3 Nov 2009 21:06:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198860 - in head/sys: kern sys
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 21:06:20 -0000

Author: ed
Date: Tue Nov  3 21:06:19 2009
New Revision: 198860
URL: http://svn.freebsd.org/changeset/base/198860

Log:
  Make /dev/klog and kern.msgbuf* MPSAFE.
  
  Normally msgbufp is locked using Giant. Switch it to use the
  msgbuf_lock. Instead of changing the tsleep() calls to msleep(), just
  convert it to condvar(9).
  
  In my opinion the locking around msgbuf_peekbytes() still remains
  questionable. It looks like locks are dropped while performing copies of
  multiple blocks to userspace, which may cause the msgbuf to be reset in
  the mean time. At least getting it underneath from Giant should make it
  a little easier for us to figure out how to solve that.
  
  Reminded by:	rdivacky

Modified:
  head/sys/kern/subr_log.c
  head/sys/kern/subr_prf.c
  head/sys/sys/msgbuf.h

Modified: head/sys/kern/subr_log.c
==============================================================================
--- head/sys/kern/subr_log.c	Tue Nov  3 21:06:19 2009	(r198859)
+++ head/sys/kern/subr_log.c	Tue Nov  3 21:06:19 2009	(r198860)
@@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
 #define LOG_RDPRI	(PZERO + 1)
 
 #define LOG_ASYNC	0x04
-#define LOG_RDWAIT	0x08
 
 static	d_open_t	logopen;
 static	d_close_t	logclose;
@@ -65,7 +64,6 @@ static	void logtimeout(void *arg);
 
 static struct cdevsw log_cdevsw = {
 	.d_version =	D_VERSION,
-	.d_flags =	D_NEEDGIANT,
 	.d_open =	logopen,
 	.d_close =	logclose,
 	.d_read =	logread,
@@ -81,7 +79,10 @@ static struct logsoftc {
 	struct	callout sc_callout;	/* callout to wakeup syslog  */
 } logsoftc;
 
-int	log_open;			/* also used in log() */
+int			log_open;	/* also used in log() */
+static struct cv	log_wakeup;
+struct mtx		msgbuf_lock;
+MTX_SYSINIT(msgbuf_lock, &msgbuf_lock, "msgbuf lock", MTX_DEF);
 
 /* Times per second to check for a pending syslog wakeup. */
 static int	log_wakeups_per_second = 5;
@@ -92,17 +93,23 @@ SYSCTL_INT(_kern, OID_AUTO, log_wakeups_
 static	int
 logopen(struct cdev *dev, int flags, int mode, struct thread *td)
 {
-	if (log_open)
-		return (EBUSY);
-	log_open = 1;
-	callout_init(&logsoftc.sc_callout, 0);
-	fsetown(td->td_proc->p_pid, &logsoftc.sc_sigio);	/* signal process only */
+
 	if (log_wakeups_per_second < 1) {
 		printf("syslog wakeup is less than one.  Adjusting to 1.\n");
 		log_wakeups_per_second = 1;
 	}
+
+	mtx_lock(&msgbuf_lock);
+	if (log_open) {
+		mtx_unlock(&msgbuf_lock);
+		return (EBUSY);
+	}
+	log_open = 1;
 	callout_reset(&logsoftc.sc_callout, hz / log_wakeups_per_second,
 	    logtimeout, NULL);
+	mtx_unlock(&msgbuf_lock);
+
+	fsetown(td->td_proc->p_pid, &logsoftc.sc_sigio);	/* signal process only */
 	return (0);
 }
 
@@ -111,10 +118,14 @@ static	int
 logclose(struct cdev *dev, int flag, int mode, struct thread *td)
 {
 
-	log_open = 0;
+	funsetown(&logsoftc.sc_sigio);
+
+	mtx_lock(&msgbuf_lock);
 	callout_stop(&logsoftc.sc_callout);
 	logsoftc.sc_state = 0;
-	funsetown(&logsoftc.sc_sigio);
+	log_open = 0;
+	mtx_unlock(&msgbuf_lock);
+
 	return (0);
 }
 
@@ -124,32 +135,32 @@ logread(struct cdev *dev, struct uio *ui
 {
 	char buf[128];
 	struct msgbuf *mbp = msgbufp;
-	int error = 0, l, s;
+	int error = 0, l;
 
-	s = splhigh();
+	mtx_lock(&msgbuf_lock);
 	while (msgbuf_getcount(mbp) == 0) {
 		if (flag & IO_NDELAY) {
-			splx(s);
+			mtx_unlock(&msgbuf_lock);
 			return (EWOULDBLOCK);
 		}
-		logsoftc.sc_state |= LOG_RDWAIT;
-		if ((error = tsleep(mbp, LOG_RDPRI | PCATCH, "klog", 0))) {
-			splx(s);
+		if ((error = cv_wait_sig(&log_wakeup, &msgbuf_lock)) != 0) {
+			mtx_unlock(&msgbuf_lock);
 			return (error);
 		}
 	}
-	splx(s);
-	logsoftc.sc_state &= ~LOG_RDWAIT;
 
 	while (uio->uio_resid > 0) {
 		l = imin(sizeof(buf), uio->uio_resid);
 		l = msgbuf_getbytes(mbp, buf, l);
 		if (l == 0)
 			break;
+		mtx_unlock(&msgbuf_lock);
 		error = uiomove(buf, l, uio);
-		if (error)
-			break;
+		if (error || uio->uio_resid == 0)
+			return (error);
+		mtx_lock(&msgbuf_lock);
 	}
+	mtx_unlock(&msgbuf_lock);
 	return (error);
 }
 
@@ -157,18 +168,16 @@ logread(struct cdev *dev, struct uio *ui
 static	int
 logpoll(struct cdev *dev, int events, struct thread *td)
 {
-	int s;
 	int revents = 0;
 
-	s = splhigh();
-
 	if (events & (POLLIN | POLLRDNORM)) {
+		mtx_lock(&msgbuf_lock);
 		if (msgbuf_getcount(msgbufp) > 0)
 			revents |= events & (POLLIN | POLLRDNORM);
 		else
 			selrecord(td, &logsoftc.sc_selp);
+		mtx_unlock(&msgbuf_lock);
 	}
-	splx(s);
 	return (revents);
 }
 
@@ -183,20 +192,16 @@ logtimeout(void *arg)
 		log_wakeups_per_second = 1;
 	}
 	if (msgbuftrigger == 0) {
-		callout_reset(&logsoftc.sc_callout,
-		    hz / log_wakeups_per_second, logtimeout, NULL);
+		callout_schedule(&logsoftc.sc_callout,
+		    hz / log_wakeups_per_second);
 		return;
 	}
 	msgbuftrigger = 0;
 	selwakeuppri(&logsoftc.sc_selp, LOG_RDPRI);
 	if ((logsoftc.sc_state & LOG_ASYNC) && logsoftc.sc_sigio != NULL)
 		pgsigio(&logsoftc.sc_sigio, SIGIO, 0);
-	if (logsoftc.sc_state & LOG_RDWAIT) {
-		wakeup(msgbufp);
-		logsoftc.sc_state &= ~LOG_RDWAIT;
-	}
-	callout_reset(&logsoftc.sc_callout, hz / log_wakeups_per_second,
-	    logtimeout, NULL);
+	cv_broadcastpri(&log_wakeup, LOG_RDPRI);
+	callout_schedule(&logsoftc.sc_callout, hz / log_wakeups_per_second);
 }
 
 /*ARGSUSED*/
@@ -215,10 +220,12 @@ logioctl(struct cdev *dev, u_long com, c
 		break;
 
 	case FIOASYNC:
+		mtx_lock(&msgbuf_lock);
 		if (*(int *)data)
 			logsoftc.sc_state |= LOG_ASYNC;
 		else
 			logsoftc.sc_state &= ~LOG_ASYNC;
+		mtx_unlock(&msgbuf_lock);
 		break;
 
 	case FIOSETOWN:
@@ -247,6 +254,8 @@ static void
 log_drvinit(void *unused)
 {
 
+	cv_init(&log_wakeup, "klog");
+	callout_init_mtx(&logsoftc.sc_callout, &msgbuf_lock, 0);
 	make_dev(&log_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "klog");
 }
 

Modified: head/sys/kern/subr_prf.c
==============================================================================
--- head/sys/kern/subr_prf.c	Tue Nov  3 21:06:19 2009	(r198859)
+++ head/sys/kern/subr_prf.c	Tue Nov  3 21:06:19 2009	(r198860)
@@ -923,16 +923,24 @@ sysctl_kern_msgbuf(SYSCTL_HANDLER_ARGS)
 	}
 
 	/* Read the whole buffer, one chunk at a time. */
+	mtx_lock(&msgbuf_lock);
 	msgbuf_peekbytes(msgbufp, NULL, 0, &seq);
-	while ((len = msgbuf_peekbytes(msgbufp, buf, sizeof(buf), &seq)) > 0) {
+	for (;;) {
+		len = msgbuf_peekbytes(msgbufp, buf, sizeof(buf), &seq);
+		mtx_unlock(&msgbuf_lock);
+		if (len == 0)
+			return (0);
+
 		error = sysctl_handle_opaque(oidp, buf, len, req);
 		if (error)
 			return (error);
+
+		mtx_lock(&msgbuf_lock);
 	}
-	return (0);
 }
 
-SYSCTL_PROC(_kern, OID_AUTO, msgbuf, CTLTYPE_STRING | CTLFLAG_RD,
+SYSCTL_PROC(_kern, OID_AUTO, msgbuf,
+    CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE,
     NULL, 0, sysctl_kern_msgbuf, "A", "Contents of kernel message buffer");
 
 static int msgbuf_clearflag;
@@ -943,15 +951,18 @@ sysctl_kern_msgbuf_clear(SYSCTL_HANDLER_
 	int error;
 	error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
 	if (!error && req->newptr) {
+		mtx_lock(&msgbuf_lock);
 		msgbuf_clear(msgbufp);
+		mtx_unlock(&msgbuf_lock);
 		msgbuf_clearflag = 0;
 	}
 	return (error);
 }
 
 SYSCTL_PROC(_kern, OID_AUTO, msgbuf_clear,
-    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_SECURE, &msgbuf_clearflag, 0,
-    sysctl_kern_msgbuf_clear, "I", "Clear kernel message buffer");
+    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_SECURE | CTLFLAG_MPSAFE,
+    &msgbuf_clearflag, 0, sysctl_kern_msgbuf_clear, "I",
+    "Clear kernel message buffer");
 
 #ifdef DDB
 

Modified: head/sys/sys/msgbuf.h
==============================================================================
--- head/sys/sys/msgbuf.h	Tue Nov  3 21:06:19 2009	(r198859)
+++ head/sys/sys/msgbuf.h	Tue Nov  3 21:06:19 2009	(r198860)
@@ -54,6 +54,7 @@ struct msgbuf {
 #ifdef _KERNEL
 extern int	msgbuftrigger;
 extern struct	msgbuf *msgbufp;
+extern struct	mtx msgbuf_lock;
 
 void	msgbufinit(void *ptr, int size);
 void	msgbuf_addchar(struct msgbuf *mbp, int c);

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 21:47:07 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EC5411065670;
	Tue,  3 Nov 2009 21:47:07 +0000 (UTC)
	(envelope-from weongyo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DB8108FC0C;
	Tue,  3 Nov 2009 21:47:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3Ll7hr006234;
	Tue, 3 Nov 2009 21:47:07 GMT (envelope-from weongyo@svn.freebsd.org)
Received: (from weongyo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3Ll7AA006232;
	Tue, 3 Nov 2009 21:47:07 GMT (envelope-from weongyo@svn.freebsd.org)
Message-Id: <200911032147.nA3Ll7AA006232@svn.freebsd.org>
From: Weongyo Jeong 
Date: Tue, 3 Nov 2009 21:47:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198862 - head/sys/dev/usb/wlan
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 21:47:08 -0000

Author: weongyo
Date: Tue Nov  3 21:47:07 2009
New Revision: 198862
URL: http://svn.freebsd.org/changeset/base/198862

Log:
  fixes a typo that value should be 0 not 10.

Modified:
  head/sys/dev/usb/wlan/if_urtw.c

Modified: head/sys/dev/usb/wlan/if_urtw.c
==============================================================================
--- head/sys/dev/usb/wlan/if_urtw.c	Tue Nov  3 21:24:37 2009	(r198861)
+++ head/sys/dev/usb/wlan/if_urtw.c	Tue Nov  3 21:47:07 2009	(r198862)
@@ -1688,7 +1688,7 @@ urtw_tx_start(struct urtw_softc *sc, str
 		ieee80211_radiotap_tx(vap, m0);
 	}
 
-	if ((wh->i_fc[10] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_MGT ||
+	if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_MGT ||
 	    (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL) {
 		tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)];
 		rate = tp->mgmtrate;

From owner-svn-src-head@FreeBSD.ORG  Tue Nov  3 23:26:58 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 90B8110656A4;
	Tue,  3 Nov 2009 23:26:58 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 80CE48FC25;
	Tue,  3 Nov 2009 23:26:58 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3NQwAD009241;
	Tue, 3 Nov 2009 23:26:58 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA3NQwqJ009239;
	Tue, 3 Nov 2009 23:26:58 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911032326.nA3NQwqJ009239@svn.freebsd.org>
From: Alexander Motin 
Date: Tue, 3 Nov 2009 23:26:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198865 - head/sys/sys
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 03 Nov 2009 23:26:58 -0000

Author: mav
Date: Tue Nov  3 23:26:58 2009
New Revision: 198865
URL: http://svn.freebsd.org/changeset/base/198865

Log:
  Fix constants.

Modified:
  head/sys/sys/ata.h

Modified: head/sys/sys/ata.h
==============================================================================
--- head/sys/sys/ata.h	Tue Nov  3 23:26:31 2009	(r198864)
+++ head/sys/sys/ata.h	Tue Nov  3 23:26:58 2009	(r198865)
@@ -207,8 +207,8 @@ struct ata_params {
 	u_int16_t       reserved104[2];
 /*106*/	u_int16_t       pss;
 #define ATA_PSS_LSPPS			0x000F
-#define ATA_PSS_LSSABOVE512		0x2000
-#define ATA_PSS_MULTLS			0x4000
+#define ATA_PSS_LSSABOVE512		0x1000
+#define ATA_PSS_MULTLS			0x2000
 /*107*/ u_int16_t       isd;
 /*108*/ u_int16_t       wwn[4];
 	u_int16_t       reserved112[5];

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 00:58:21 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EAABF1065672;
	Wed,  4 Nov 2009 00:58:21 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C00FC8FC16;
	Wed,  4 Nov 2009 00:58:21 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA40wK7C011759;
	Wed, 4 Nov 2009 00:58:20 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA40wKZp011756;
	Wed, 4 Nov 2009 00:58:20 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911040058.nA40wKZp011756@svn.freebsd.org>
From: Jung-uk Kim 
Date: Wed, 4 Nov 2009 00:58:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198866 - in head/sys: dev/fb isa
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 00:58:22 -0000

Author: jkim
Date: Wed Nov  4 00:58:20 2009
New Revision: 198866
URL: http://svn.freebsd.org/changeset/base/198866

Log:
  Save/restore VGA color palette while suspending and resuming.

Modified:
  head/sys/dev/fb/vgareg.h
  head/sys/isa/vga_isa.c

Modified: head/sys/dev/fb/vgareg.h
==============================================================================
--- head/sys/dev/fb/vgareg.h	Tue Nov  3 23:26:58 2009	(r198865)
+++ head/sys/dev/fb/vgareg.h	Wed Nov  4 00:58:20 2009	(r198866)
@@ -70,6 +70,7 @@ struct video_adapter;
 typedef struct vga_softc {
 	struct video_adapter	*adp;
 	void			*state_buf;
+	void			*pal_buf;
 #ifdef FB_INSTALL_CDEV
 	genfb_softc_t		gensc;
 #endif

Modified: head/sys/isa/vga_isa.c
==============================================================================
--- head/sys/isa/vga_isa.c	Tue Nov  3 23:26:58 2009	(r198865)
+++ head/sys/isa/vga_isa.c	Wed Nov  4 00:58:20 2009	(r198866)
@@ -179,17 +179,33 @@ isavga_suspend(device_t dev)
 	nbytes = vidd_save_state(sc->adp, NULL, 0);
 	if (nbytes <= 0)
 		return (0);
-	sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT | M_ZERO);
-	if (sc->state_buf == NULL)
-		return (0);
-	if (bootverbose)
-		device_printf(dev, "saving %d bytes of video state\n", nbytes);
-	if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
-		device_printf(dev, "failed to save state (nbytes=%d)\n",
-		    nbytes);
-		free(sc->state_buf, M_TEMP);
-		sc->state_buf = NULL;
+	sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT);
+	if (sc->state_buf != NULL) {
+		if (bootverbose)
+			device_printf(dev, "saving %d bytes of video state\n",
+			    nbytes);
+		if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
+			device_printf(dev, "failed to save state (nbytes=%d)\n",
+			    nbytes);
+			free(sc->state_buf, M_TEMP);
+			sc->state_buf = NULL;
+		}
 	}
+
+	/* Save the color palette across the suspend. */
+	if (sc->pal_buf != NULL)
+		free(sc->pal_buf, M_TEMP);
+	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
+	if (sc->pal_buf != NULL) {
+		if (bootverbose)
+			device_printf(dev, "saving color palette\n");
+		if (vidd_save_palette(sc->adp, sc->pal_buf) != 0) {
+			device_printf(dev, "failed to save palette\n");
+			free(sc->pal_buf, M_TEMP);
+			sc->pal_buf = NULL;
+		}
+	}
+
 	return (0);
 }
 
@@ -205,6 +221,12 @@ isavga_resume(device_t dev)
 		free(sc->state_buf, M_TEMP);
 		sc->state_buf = NULL;
 	}
+	if (sc->pal_buf != NULL) {
+		if (vidd_load_palette(sc->adp, sc->pal_buf) != 0)
+			device_printf(dev, "failed to reload palette\n");
+		free(sc->pal_buf, M_TEMP);
+		sc->pal_buf = NULL;
+	}
 
 	bus_generic_resume(dev);
 	return 0;

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 01:00:28 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D0406106568B;
	Wed,  4 Nov 2009 01:00:28 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BFEF98FC12;
	Wed,  4 Nov 2009 01:00:28 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA410SHq011885;
	Wed, 4 Nov 2009 01:00:28 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA410SsC011883;
	Wed, 4 Nov 2009 01:00:28 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911040100.nA410SsC011883@svn.freebsd.org>
From: Jung-uk Kim 
Date: Wed, 4 Nov 2009 01:00:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198867 - head/sys/dev/fb
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 01:00:28 -0000

Author: jkim
Date: Wed Nov  4 01:00:28 2009
New Revision: 198867
URL: http://svn.freebsd.org/changeset/base/198867

Log:
  Restore color palette format if we reset video mode.

Modified:
  head/sys/dev/fb/vesa.c

Modified: head/sys/dev/fb/vesa.c
==============================================================================
--- head/sys/dev/fb/vesa.c	Wed Nov  4 00:58:20 2009	(r198866)
+++ head/sys/dev/fb/vesa.c	Wed Nov  4 01:00:28 2009	(r198867)
@@ -1470,6 +1470,8 @@ vesa_load_state(video_adapter_t *adp, vo
 		    (flags & V_INFO_LINEAR) != 0)
 			mode |= 0x4000;
 		(void)vesa_bios_set_mode(mode);
+		if ((vesa_adp_info->v_flags & V_DAC8) != 0)
+			(void)vesa_bios_set_dac(8);
 		(void)(*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1);
 	}
 

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 01:33:00 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 23ED61065676;
	Wed,  4 Nov 2009 01:33:00 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1225E8FC0A;
	Wed,  4 Nov 2009 01:33:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA41Wxkc012753;
	Wed, 4 Nov 2009 01:32:59 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA41WxtQ012750;
	Wed, 4 Nov 2009 01:32:59 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200911040132.nA41WxtQ012750@svn.freebsd.org>
From: Attilio Rao 
Date: Wed, 4 Nov 2009 01:32:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 01:33:00 -0000

Author: attilio
Date: Wed Nov  4 01:32:59 2009
New Revision: 198868
URL: http://svn.freebsd.org/changeset/base/198868

Log:
  Opteron rev E family of processor expose a bug where, in very rare
  ocassions, memory barriers semantic is not honoured by the hardware
  itself. As a result, some random breakage can happen in uninvestigable
  ways (for further explanation see at the content of the commit itself).
  
  As long as just a specific familly is bugged of an entire architecture
  is broken, a complete fix-up is impratical without harming to some
  extents the other correct cases.
  Considering that (and considering the frequency of the bug exposure)
  just print out a warning message if the affected machine is identified.
  
  Pointed out by:	Samy Al Bahra 
  Help on wordings by:	jeff
  MFC:	3 days

Modified:
  head/sys/amd64/amd64/identcpu.c
  head/sys/i386/i386/identcpu.c

Modified: head/sys/amd64/amd64/identcpu.c
==============================================================================
--- head/sys/amd64/amd64/identcpu.c	Wed Nov  4 01:00:28 2009	(r198867)
+++ head/sys/amd64/amd64/identcpu.c	Wed Nov  4 01:32:59 2009	(r198868)
@@ -607,6 +607,24 @@ print_AMD_info(void)
 		printf(", %d lines/tag", (regs[2] >> 8) & 0x0f);
 		print_AMD_l2_assoc((regs[2] >> 12) & 0x0f);	
 	}
+
+	/*
+	 * Opteron Rev E shows a bug as in very rare occasions a read memory 
+	 * barrier is not performed as expected if it is followed by a 
+	 * non-atomic read-modify-write instruction.  
+	 * As long as that bug pops up very rarely (intensive machine usage
+	 * on other operating systems generally generates one unexplainable 
+	 * crash any 2 months) and as long as a model specific fix would be
+	 * impratical at this stage, print out a warning string if the broken
+	 * model and family are identified.
+	 */
+	if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 &&
+	    CPUID_TO_MODEL(cpu_id) <= 0x3f) {
+		printf("WARNING: This architecture revision has known SMP "
+		    "hardware bugs which may cause random instability\n");
+		printf("WARNING: For details see: "
+		    "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n");
+	}
 }
 
 static void

Modified: head/sys/i386/i386/identcpu.c
==============================================================================
--- head/sys/i386/i386/identcpu.c	Wed Nov  4 01:00:28 2009	(r198867)
+++ head/sys/i386/i386/identcpu.c	Wed Nov  4 01:32:59 2009	(r198868)
@@ -1303,6 +1303,24 @@ print_AMD_info(void)
 			    (amd_whcr & 0x0100) ? "Enable" : "Disable");
 		}
 	}
+
+	/*
+	 * Opteron Rev E shows a bug as in very rare occasions a read memory
+	 * barrier is not performed as expected if it is followed by a
+	 * non-atomic read-modify-write instruction.
+	 * As long as that bug pops up very rarely (intensive machine usage
+	 * on other operating systems generally generates one unexplainable
+	 * crash any 2 months) and as long as a model specific fix would be
+	 * impratical at this stage, print out a warning string if the broken
+	 * model and family are identified.
+	 */
+	if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 &&
+	    CPUID_TO_MODEL(cpu_id) <= 0x3f) {
+		printf("WARNING: This architecture revision has known SMP "
+		    "hardware bugs which may cause random instability\n");
+		printf("WARNING: For details see: "
+		    "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n");
+	}
 }
 
 static void

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 03:12:57 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6B74A106568F;
	Wed,  4 Nov 2009 03:12:57 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5AC678FC1C;
	Wed,  4 Nov 2009 03:12:57 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA43CvY7015912;
	Wed, 4 Nov 2009 03:12:57 GMT (envelope-from alc@svn.freebsd.org)
Received: (from alc@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA43CvCu015910;
	Wed, 4 Nov 2009 03:12:57 GMT (envelope-from alc@svn.freebsd.org)
Message-Id: <200911040312.nA43CvCu015910@svn.freebsd.org>
From: Alan Cox 
Date: Wed, 4 Nov 2009 03:12:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198870 - head/sys/vm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 03:12:57 -0000

Author: alc
Date: Wed Nov  4 03:12:56 2009
New Revision: 198870
URL: http://svn.freebsd.org/changeset/base/198870

Log:
  Eliminate an unnecessary #include.  (This #include should have been removed
  in r188331 when vnode_pager_lock() was eliminated.)

Modified:
  head/sys/vm/vm_fault.c

Modified: head/sys/vm/vm_fault.c
==============================================================================
--- head/sys/vm/vm_fault.c	Wed Nov  4 01:50:25 2009	(r198869)
+++ head/sys/vm/vm_fault.c	Wed Nov  4 03:12:56 2009	(r198870)
@@ -96,7 +96,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 
 #include 	/* XXX Temporary for VFS_LOCK_GIANT() */

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 04:12:56 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C904C1065676;
	Wed,  4 Nov 2009 04:12:56 +0000 (UTC)
	(envelope-from benno@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B7CAD8FC0C;
	Wed,  4 Nov 2009 04:12:56 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA44CuQY017607;
	Wed, 4 Nov 2009 04:12:56 GMT (envelope-from benno@svn.freebsd.org)
Received: (from benno@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA44CuSq017605;
	Wed, 4 Nov 2009 04:12:56 GMT (envelope-from benno@svn.freebsd.org)
Message-Id: <200911040412.nA44CuSq017605@svn.freebsd.org>
From: Benno Rice 
Date: Wed, 4 Nov 2009 04:12:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198871 - head/share/man/man3
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 04:12:56 -0000

Author: benno
Date: Wed Nov  4 04:12:56 2009
New Revision: 198871
URL: http://svn.freebsd.org/changeset/base/198871

Log:
  Fix typo (noded -> nodes).

Modified:
  head/share/man/man3/tree.3

Modified: head/share/man/man3/tree.3
==============================================================================
--- head/share/man/man3/tree.3	Wed Nov  4 03:12:56 2009	(r198870)
+++ head/share/man/man3/tree.3	Wed Nov  4 04:12:56 2009	(r198871)
@@ -384,7 +384,7 @@ macros, but should be used only once.
 Finally,
 the
 .Fa CMP
-argument is the name of a function used to compare tree noded
+argument is the name of a function used to compare tree nodes
 with each other.
 The function takes two arguments of type
 .Vt "struct TYPE *" .

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 04:41:03 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9B36F106568F;
	Wed,  4 Nov 2009 04:41:03 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 702008FC14;
	Wed,  4 Nov 2009 04:41:03 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA44f3cw018348;
	Wed, 4 Nov 2009 04:41:03 GMT (envelope-from alc@svn.freebsd.org)
Received: (from alc@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA44f3HN018343;
	Wed, 4 Nov 2009 04:41:03 GMT (envelope-from alc@svn.freebsd.org)
Message-Id: <200911040441.nA44f3HN018343@svn.freebsd.org>
From: Alan Cox 
Date: Wed, 4 Nov 2009 04:41:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198872 - in head/sys/arm: arm at91 mv sa11x0
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 04:41:03 -0000

Author: alc
Date: Wed Nov  4 04:41:03 2009
New Revision: 198872
URL: http://svn.freebsd.org/changeset/base/198872

Log:
  Eliminate an unnecessary vm include file.

Modified:
  head/sys/arm/arm/machdep.c
  head/sys/arm/at91/at91_machdep.c
  head/sys/arm/mv/mv_machdep.c
  head/sys/arm/sa11x0/assabet_machdep.c

Modified: head/sys/arm/arm/machdep.c
==============================================================================
--- head/sys/arm/arm/machdep.c	Wed Nov  4 04:12:56 2009	(r198871)
+++ head/sys/arm/arm/machdep.c	Wed Nov  4 04:41:03 2009	(r198872)
@@ -77,7 +77,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 
 #include 
 #include 

Modified: head/sys/arm/at91/at91_machdep.c
==============================================================================
--- head/sys/arm/at91/at91_machdep.c	Wed Nov  4 04:12:56 2009	(r198871)
+++ head/sys/arm/at91/at91_machdep.c	Wed Nov  4 04:41:03 2009	(r198872)
@@ -79,7 +79,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 

Modified: head/sys/arm/mv/mv_machdep.c
==============================================================================
--- head/sys/arm/mv/mv_machdep.c	Wed Nov  4 04:12:56 2009	(r198871)
+++ head/sys/arm/mv/mv_machdep.c	Wed Nov  4 04:41:03 2009	(r198872)
@@ -72,7 +72,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 

Modified: head/sys/arm/sa11x0/assabet_machdep.c
==============================================================================
--- head/sys/arm/sa11x0/assabet_machdep.c	Wed Nov  4 04:12:56 2009	(r198871)
+++ head/sys/arm/sa11x0/assabet_machdep.c	Wed Nov  4 04:41:03 2009	(r198872)
@@ -82,7 +82,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 05:58:14 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 01B40106566B;
	Wed,  4 Nov 2009 05:58:14 +0000 (UTC) (envelope-from ed@hoeg.nl)
Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211])
	by mx1.freebsd.org (Postfix) with ESMTP id 96E368FC08;
	Wed,  4 Nov 2009 05:58:13 +0000 (UTC)
Received: by palm.hoeg.nl (Postfix, from userid 1000)
	id 4B3FD1CD0A; Wed,  4 Nov 2009 06:58:12 +0100 (CET)
Date: Wed, 4 Nov 2009 06:58:12 +0100
From: Ed Schouten 
To: Attilio Rao 
Message-ID: <20091104055811.GY1293@hoeg.nl>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="jk5HhkA9Kov5Oxsi"
Content-Disposition: inline
In-Reply-To: <200911040132.nA41WxtQ012750@svn.freebsd.org>
User-Agent: Mutt/1.5.20 (2009-06-14)
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 05:58:14 -0000


--jk5HhkA9Kov5Oxsi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi Attilio,

* Attilio Rao  wrote:
> Opteron rev E family of processor expose a bug where, in very rare
> ocassions, memory barriers semantic is not honoured by the hardware
> itself. As a result, some random breakage can happen in uninvestigable
> ways (for further explanation see at the content of the commit itself).

Ooh. Sounds like an interesting bug.

The bug doesn't manifest itself on UP, right? If so, maybe we should add
some very short instructions to the warning on how to disable SMP.

--=20
 Ed Schouten 
 WWW: http://80386.nl/

--jk5HhkA9Kov5Oxsi
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkrxF/MACgkQ52SDGA2eCwUNSgCcDHBZ4U8o2uNTBWNKS19RrX2S
rbsAnA+J5C+IzGvklU+GJcZhBhLY9a8v
=TekQ
-----END PGP SIGNATURE-----

--jk5HhkA9Kov5Oxsi--

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 06:47:14 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 87C1D106566C;
	Wed,  4 Nov 2009 06:47:14 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 772848FC15;
	Wed,  4 Nov 2009 06:47:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA46lEI3021792;
	Wed, 4 Nov 2009 06:47:14 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA46lEUg021790;
	Wed, 4 Nov 2009 06:47:14 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200911040647.nA46lEUg021790@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Wed, 4 Nov 2009 06:47:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198873 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 06:47:14 -0000

Author: trasz
Date: Wed Nov  4 06:47:14 2009
New Revision: 198873
URL: http://svn.freebsd.org/changeset/base/198873

Log:
  While VAPPEND without VWRITE makes sense for VOP_ACCESSX(9) (e.g. to check
  for the permission to create subdirectory (ACE4_ADD_SUBDIRECTORY)), it doesn't
  really make sense for VOP_ACCESS(9).  Also, many VOP_ACCESS(9) implementations
  don't expect that.  Make sure we don't confuse them.

Modified:
  head/sys/kern/vfs_default.c

Modified: head/sys/kern/vfs_default.c
==============================================================================
--- head/sys/kern/vfs_default.c	Wed Nov  4 04:41:03 2009	(r198872)
+++ head/sys/kern/vfs_default.c	Wed Nov  4 06:47:14 2009	(r198873)
@@ -353,6 +353,14 @@ vop_stdaccessx(struct vop_accessx_args *
 	if (accmode == 0)
 		return (0);
 
+	/*
+	 * Many VOP_APPEND implementations don't expect VAPPEND without VWRITE
+	 * being set, e.g. they check whether the filesystem is read-only only
+	 * when VWRITE is set.  Make sure we don't confuse them.
+	 */
+	if (accmode & VAPPEND)
+		accmode |= VWRITE;
+
 	return (VOP_ACCESS(ap->a_vp, accmode, ap->a_cred, ap->a_td));
 }
 

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 06:48:34 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B8A4610656AD;
	Wed,  4 Nov 2009 06:48:34 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A834C8FC29;
	Wed,  4 Nov 2009 06:48:34 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA46mYin021864;
	Wed, 4 Nov 2009 06:48:34 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA46mYrb021862;
	Wed, 4 Nov 2009 06:48:34 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200911040648.nA46mYrb021862@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Wed, 4 Nov 2009 06:48:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198874 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 06:48:34 -0000

Author: trasz
Date: Wed Nov  4 06:48:34 2009
New Revision: 198874
URL: http://svn.freebsd.org/changeset/base/198874

Log:
  Make sure we don't end up with VAPPEND without VWRITE, if someone calls open(2)
  like this: open(..., O_APPEND).

Modified:
  head/sys/kern/vfs_vnops.c

Modified: head/sys/kern/vfs_vnops.c
==============================================================================
--- head/sys/kern/vfs_vnops.c	Wed Nov  4 06:47:14 2009	(r198873)
+++ head/sys/kern/vfs_vnops.c	Wed Nov  4 06:48:34 2009	(r198874)
@@ -213,7 +213,7 @@ restart:
 	if (fmode & FEXEC)
 		accmode |= VEXEC;
 	if (fmode & O_APPEND)
-		accmode |= VAPPEND;
+		accmode |= VWRITE | VAPPEND;
 #ifdef MAC
 	error = mac_vnode_check_open(cred, vp, accmode);
 	if (error)

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 07:04:16 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5D02D106566B;
	Wed,  4 Nov 2009 07:04:16 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 32DA18FC1A;
	Wed,  4 Nov 2009 07:04:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA474FSt022332;
	Wed, 4 Nov 2009 07:04:15 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA474FDo022330;
	Wed, 4 Nov 2009 07:04:15 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200911040704.nA474FDo022330@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Wed, 4 Nov 2009 07:04:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198875 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 07:04:16 -0000

Author: trasz
Date: Wed Nov  4 07:04:15 2009
New Revision: 198875
URL: http://svn.freebsd.org/changeset/base/198875

Log:
  Style fixes.

Modified:
  head/sys/kern/vfs_acl.c

Modified: head/sys/kern/vfs_acl.c
==============================================================================
--- head/sys/kern/vfs_acl.c	Wed Nov  4 06:48:34 2009	(r198874)
+++ head/sys/kern/vfs_acl.c	Wed Nov  4 07:04:15 2009	(r198875)
@@ -213,7 +213,7 @@ vacl_set_acl(struct thread *td, struct v
 
 	inkernelacl = acl_alloc(M_WAITOK);
 	error = acl_copyin(aclp, inkernelacl, type);
-	if (error)
+	if (error != 0)
 		goto out;
 	error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
 	if (error != 0)
@@ -233,7 +233,7 @@ out_unlock:
 	vn_finished_write(mp);
 out:
 	acl_free(inkernelacl);
-	return(error);
+	return (error);
 }
 
 /*
@@ -276,12 +276,12 @@ vacl_delete(struct thread *td, struct vn
 	int error;
 
 	error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
-	if (error)
+	if (error != 0)
 		return (error);
 	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 #ifdef MAC
 	error = mac_vnode_check_deleteacl(td->td_ucred, vp, type);
-	if (error)
+	if (error != 0)
 		goto out;
 #endif
 	error = VOP_SETACL(vp, acl_type_unold(type), 0, td->td_ucred, td);
@@ -305,7 +305,7 @@ vacl_aclcheck(struct thread *td, struct 
 
 	inkernelacl = acl_alloc(M_WAITOK);
 	error = acl_copyin(aclp, inkernelacl, type);
-	if (error)
+	if (error != 0)
 		goto out;
 	error = VOP_ACLCHECK(vp, type, inkernelacl, td->td_ucred, td);
 out:
@@ -501,7 +501,7 @@ __acl_delete_fd(struct thread *td, struc
 int
 __acl_aclcheck_file(struct thread *td, struct __acl_aclcheck_file_args *uap)
 {
-	struct nameidata	nd;
+	struct nameidata nd;
 	int vfslocked, error;
 
 	NDINIT(&nd, LOOKUP, MPSAFE|FOLLOW, UIO_USERSPACE, uap->path, td);
@@ -521,7 +521,7 @@ __acl_aclcheck_file(struct thread *td, s
 int
 __acl_aclcheck_link(struct thread *td, struct __acl_aclcheck_link_args *uap)
 {
-	struct nameidata	nd;
+	struct nameidat nd;
 	int vfslocked, error;
 
 	NDINIT(&nd, LOOKUP, MPSAFE|NOFOLLOW, UIO_USERSPACE, uap->path, td);

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 07:04:35 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 165DA10657C1;
	Wed,  4 Nov 2009 07:04:35 +0000 (UTC)
	(envelope-from pjd@garage.freebsd.pl)
Received: from mail.garage.freebsd.pl (chello089077035009.chello.pl
	[89.77.35.9]) by mx1.freebsd.org (Postfix) with ESMTP id 4FFDF8FC15;
	Wed,  4 Nov 2009 07:04:33 +0000 (UTC)
Received: by mail.garage.freebsd.pl (Postfix, from userid 65534)
	id 2F0C545E94; Wed,  4 Nov 2009 08:04:32 +0100 (CET)
Received: from localhost (chello089077035009.chello.pl [89.77.35.9])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mail.garage.freebsd.pl (Postfix) with ESMTP id E978745C8A;
	Wed,  4 Nov 2009 08:04:26 +0100 (CET)
Date: Wed, 4 Nov 2009 08:04:27 +0100
From: Pawel Jakub Dawidek 
To: Edward Tomasz Napierala 
Message-ID: <20091104070427.GE2073@garage.freebsd.pl>
References: <200911040648.nA46mYrb021862@svn.freebsd.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="ULyIDA2m8JTe+TiX"
Content-Disposition: inline
In-Reply-To: <200911040648.nA46mYrb021862@svn.freebsd.org>
User-Agent: Mutt/1.4.2.3i
X-PGP-Key-URL: http://people.freebsd.org/~pjd/pjd.asc
X-OS: FreeBSD 9.0-CURRENT i386
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on 
	mail.garage.freebsd.pl
X-Spam-Level: 
X-Spam-Status: No, score=-0.6 required=4.5 tests=BAYES_00,RCVD_IN_SORBS_DUL 
	autolearn=no version=3.0.4
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198874 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 07:04:35 -0000


--ULyIDA2m8JTe+TiX
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 04, 2009 at 06:48:34AM +0000, Edward Tomasz Napierala wrote:
> Author: trasz
> Date: Wed Nov  4 06:48:34 2009
> New Revision: 198874
> URL: http://svn.freebsd.org/changeset/base/198874
>=20
> Log:
>   Make sure we don't end up with VAPPEND without VWRITE, if someone calls=
 open(2)
>   like this: open(..., O_APPEND).
>=20
> Modified:
>   head/sys/kern/vfs_vnops.c
>=20
> Modified: head/sys/kern/vfs_vnops.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/kern/vfs_vnops.c	Wed Nov  4 06:47:14 2009	(r198873)
> +++ head/sys/kern/vfs_vnops.c	Wed Nov  4 06:48:34 2009	(r198874)
> @@ -213,7 +213,7 @@ restart:
>  	if (fmode & FEXEC)
>  		accmode |=3D VEXEC;
>  	if (fmode & O_APPEND)
> -		accmode |=3D VAPPEND;
> +		accmode |=3D VWRITE | VAPPEND;
>  #ifdef MAC
>  	error =3D mac_vnode_check_open(cred, vp, accmode);
>  	if (error)

Why? If someone does O_APPEND only we don't want to give him write
access...

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--ULyIDA2m8JTe+TiX
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD4DBQFK8Sd6ForvXbEpPzQRAgvmAJ9Qnz7Dl78+vfqBPmTQc+wk4dG0HgCYo9rI
OGyaT691cOXGNOven1BgRQ==
=cNJO
-----END PGP SIGNATURE-----

--ULyIDA2m8JTe+TiX--

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 07:07:50 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 595C7106566B;
	Wed,  4 Nov 2009 07:07:50 +0000 (UTC)
	(envelope-from pjd@garage.freebsd.pl)
Received: from mail.garage.freebsd.pl (chello089077035009.chello.pl
	[89.77.35.9]) by mx1.freebsd.org (Postfix) with ESMTP id 96A648FC12;
	Wed,  4 Nov 2009 07:07:49 +0000 (UTC)
Received: by mail.garage.freebsd.pl (Postfix, from userid 65534)
	id 432BF45E93; Wed,  4 Nov 2009 08:07:48 +0100 (CET)
Received: from localhost (chello089077035009.chello.pl [89.77.35.9])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mail.garage.freebsd.pl (Postfix) with ESMTP id 3032745C8A;
	Wed,  4 Nov 2009 08:07:41 +0100 (CET)
Date: Wed, 4 Nov 2009 08:07:41 +0100
From: Pawel Jakub Dawidek 
To: Edward Tomasz Napierala 
Message-ID: <20091104070741.GF2073@garage.freebsd.pl>
References: <200911040647.nA46lEUg021790@svn.freebsd.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="0z5c7mBtSy1wdr4F"
Content-Disposition: inline
In-Reply-To: <200911040647.nA46lEUg021790@svn.freebsd.org>
User-Agent: Mutt/1.4.2.3i
X-PGP-Key-URL: http://people.freebsd.org/~pjd/pjd.asc
X-OS: FreeBSD 9.0-CURRENT i386
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on 
	mail.garage.freebsd.pl
X-Spam-Level: 
X-Spam-Status: No, score=-0.6 required=4.5 tests=BAYES_00,RCVD_IN_SORBS_DUL 
	autolearn=no version=3.0.4
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198873 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 07:07:50 -0000


--0z5c7mBtSy1wdr4F
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 04, 2009 at 06:47:14AM +0000, Edward Tomasz Napierala wrote:
> Author: trasz
> Date: Wed Nov  4 06:47:14 2009
> New Revision: 198873
> URL: http://svn.freebsd.org/changeset/base/198873
>=20
> Log:
>   While VAPPEND without VWRITE makes sense for VOP_ACCESSX(9) (e.g. to ch=
eck
>   for the permission to create subdirectory (ACE4_ADD_SUBDIRECTORY)), it =
doesn't
>   really make sense for VOP_ACCESS(9).  Also, many VOP_ACCESS(9) implemen=
tations
>   don't expect that.  Make sure we don't confuse them.
>=20
> Modified:
>   head/sys/kern/vfs_default.c
>=20
> Modified: head/sys/kern/vfs_default.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/kern/vfs_default.c	Wed Nov  4 04:41:03 2009	(r198872)
> +++ head/sys/kern/vfs_default.c	Wed Nov  4 06:47:14 2009	(r198873)
> @@ -353,6 +353,14 @@ vop_stdaccessx(struct vop_accessx_args *
>  	if (accmode =3D=3D 0)
>  		return (0);
> =20
> +	/*
> +	 * Many VOP_APPEND implementations don't expect VAPPEND without VWRITE
> +	 * being set, e.g. they check whether the filesystem is read-only only
> +	 * when VWRITE is set.  Make sure we don't confuse them.

But O_APPEND alone is legal and doesn't provide write access. This is
fine for file systems to only check for read-only in VWRITE case.
If file system you're talking about is ZFS it was simply a bug in ZFS.

> +	 */
> +	if (accmode & VAPPEND)
> +		accmode |=3D VWRITE;
>  	return (VOP_ACCESS(ap->a_vp, accmode, ap->a_cred, ap->a_td));

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--0z5c7mBtSy1wdr4F
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFK8Sg8ForvXbEpPzQRAuwQAKCvuy9SrNfUQsILfjhgETmX7giKBwCggdnc
clSfwQHH8P2Zk3JvaBy79wM=
=r1yn
-----END PGP SIGNATURE-----

--0z5c7mBtSy1wdr4F--

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 07:14:18 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3AEBA106566B;
	Wed,  4 Nov 2009 07:14:18 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2A59D8FC17;
	Wed,  4 Nov 2009 07:14:18 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA47EG8c022621;
	Wed, 4 Nov 2009 07:14:16 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA47EGDc022619;
	Wed, 4 Nov 2009 07:14:16 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200911040714.nA47EGDc022619@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Wed, 4 Nov 2009 07:14:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198876 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 07:14:18 -0000

Author: trasz
Date: Wed Nov  4 07:14:16 2009
New Revision: 198876
URL: http://svn.freebsd.org/changeset/base/198876

Log:
  Revert r198874, pending further discussion.

Modified:
  head/sys/kern/vfs_vnops.c

Modified: head/sys/kern/vfs_vnops.c
==============================================================================
--- head/sys/kern/vfs_vnops.c	Wed Nov  4 07:04:15 2009	(r198875)
+++ head/sys/kern/vfs_vnops.c	Wed Nov  4 07:14:16 2009	(r198876)
@@ -213,7 +213,7 @@ restart:
 	if (fmode & FEXEC)
 		accmode |= VEXEC;
 	if (fmode & O_APPEND)
-		accmode |= VWRITE | VAPPEND;
+		accmode |= VAPPEND;
 #ifdef MAC
 	error = mac_vnode_check_open(cred, vp, accmode);
 	if (error)

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 08:25:58 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DC0AD106568B;
	Wed,  4 Nov 2009 08:25:58 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CBA298FC0C;
	Wed,  4 Nov 2009 08:25:58 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA48PwZU024362;
	Wed, 4 Nov 2009 08:25:58 GMT (envelope-from trasz@svn.freebsd.org)
Received: (from trasz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA48PwuI024360;
	Wed, 4 Nov 2009 08:25:58 GMT (envelope-from trasz@svn.freebsd.org)
Message-Id: <200911040825.nA48PwuI024360@svn.freebsd.org>
From: Edward Tomasz Napierala 
Date: Wed, 4 Nov 2009 08:25:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198877 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 08:25:59 -0000

Author: trasz
Date: Wed Nov  4 08:25:58 2009
New Revision: 198877
URL: http://svn.freebsd.org/changeset/base/198877

Log:
  Fix build.
  
  Submitted by:	Andrius Morkūnas 

Modified:
  head/sys/kern/vfs_acl.c

Modified: head/sys/kern/vfs_acl.c
==============================================================================
--- head/sys/kern/vfs_acl.c	Wed Nov  4 07:14:16 2009	(r198876)
+++ head/sys/kern/vfs_acl.c	Wed Nov  4 08:25:58 2009	(r198877)
@@ -521,7 +521,7 @@ __acl_aclcheck_file(struct thread *td, s
 int
 __acl_aclcheck_link(struct thread *td, struct __acl_aclcheck_link_args *uap)
 {
-	struct nameidat nd;
+	struct nameidata nd;
 	int vfslocked, error;
 
 	NDINIT(&nd, LOOKUP, MPSAFE|NOFOLLOW, UIO_USERSPACE, uap->path, td);

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 12:49:43 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2C178106566C;
	Wed,  4 Nov 2009 12:49:43 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com
	[209.85.218.213])
	by mx1.freebsd.org (Postfix) with ESMTP id 55FBC8FC13;
	Wed,  4 Nov 2009 12:49:41 +0000 (UTC)
Received: by bwz5 with SMTP id 5so9042286bwz.3
	for ; Wed, 04 Nov 2009 04:49:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to:cc
	:content-type; bh=XpNh1akFifabyW1zu5RBTwZW2CnpDJUbYHykLCw7ihs=;
	b=OsTNwiraP03cwRpbOIrgP2IbPQZLCEA5ArhXUdkYLXPTR1kvEZURIpeMsuXx679h55
	Ls8bHUx/g6Qqwe2mCyfv3tXA+rje+5ooKSnfWDeL4xXi5BK7c7on0HRuMJMR9V8EJ/zd
	naNPSFYPA4De8DdLwgDTQiI0qTBwEEbgWP4PM=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:cc:content-type;
	b=BeaoHFw9/VQzH3FaMdOQar58yoXJGGARJrKyirHxxCTitx07/JnjH6O5zexE+E1+ZE
	5+nlRCnzi2Olzgnf2GFLcjGeTFxQyeEKaL4WZQweA4LOX3EKzpl9Mc7LzHkWvydin0/b
	a5u2YR6pd02Qa1eXrvcijS7fYanJCHdUC+qBs=
MIME-Version: 1.0
Sender: asmrookie@gmail.com
Received: by 10.223.14.140 with SMTP id g12mr201744faa.50.1257338981090; Wed, 
	04 Nov 2009 04:49:41 -0800 (PST)
In-Reply-To: <20091104055811.GY1293@hoeg.nl>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<20091104055811.GY1293@hoeg.nl>
Date: Wed, 4 Nov 2009 13:49:41 +0100
X-Google-Sender-Auth: 531ed258d7574ae1
Message-ID: <3bbf2fe10911040449j5938ca7eqca5829ceced66f48@mail.gmail.com>
From: Attilio Rao 
To: Ed Schouten 
Content-Type: text/plain; charset=UTF-8
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 12:49:43 -0000

2009/11/4 Ed Schouten :
> Hi Attilio,
>
> * Attilio Rao  wrote:
>> Opteron rev E family of processor expose a bug where, in very rare
>> ocassions, memory barriers semantic is not honoured by the hardware
>> itself. As a result, some random breakage can happen in uninvestigable
>> ways (for further explanation see at the content of the commit itself).
>
> Ooh. Sounds like an interesting bug.
>
> The bug doesn't manifest itself on UP, right? If so, maybe we should add
> some very short instructions to the warning on how to disable SMP.

Due to the semantic of the bug, I think that it can manifest itself on
UP and a memory barrier failing on UP means that PREEMPTION can blow
up. Considering this I wouldn't suggest anything different between the
UP vs SMP case.

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 14:43:21 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 820F3106566B;
	Wed,  4 Nov 2009 14:43:21 +0000 (UTC)
	(envelope-from kostikbel@gmail.com)
Received: from mail.zoral.com.ua (skuns.zoral.com.ua [91.193.166.194])
	by mx1.freebsd.org (Postfix) with ESMTP id AC0808FC1D;
	Wed,  4 Nov 2009 14:43:20 +0000 (UTC)
Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua
	[10.1.1.148])
	by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id nA4EhFBE034497
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 4 Nov 2009 16:43:15 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1])
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id
	nA4EhFtc039704; Wed, 4 Nov 2009 16:43:15 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
Received: (from kostik@localhost)
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id nA4EhFfs039703; 
	Wed, 4 Nov 2009 16:43:15 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to
	kostikbel@gmail.com using -f
Date: Wed, 4 Nov 2009 16:43:15 +0200
From: Kostik Belousov 
To: Attilio Rao 
Message-ID: <20091104144315.GH2331@deviant.kiev.zoral.com.ua>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<20091104055811.GY1293@hoeg.nl>
	<3bbf2fe10911040449j5938ca7eqca5829ceced66f48@mail.gmail.com>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="54u2kuW9sGWg/X+X"
Content-Disposition: inline
In-Reply-To: <3bbf2fe10911040449j5938ca7eqca5829ceced66f48@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua
X-Virus-Status: Clean
X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
	autolearn=ham version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on
	skuns.kiev.zoral.com.ua
Cc: svn-src-head@freebsd.org, Ed Schouten ,
	svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 14:43:21 -0000


--54u2kuW9sGWg/X+X
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 04, 2009 at 01:49:41PM +0100, Attilio Rao wrote:
> 2009/11/4 Ed Schouten :
> > Hi Attilio,
> >
> > * Attilio Rao  wrote:
> >> Opteron rev E family of processor expose a bug where, in very rare
> >> ocassions, memory barriers semantic is not honoured by the hardware
> >> itself. As a result, some random breakage can happen in uninvestigable
> >> ways (for further explanation see at the content of the commit itself).
> >
> > Ooh. Sounds like an interesting bug.
> >
> > The bug doesn't manifest itself on UP, right? If so, maybe we should add
> > some very short instructions to the warning on how to disable SMP.
>=20
> Due to the semantic of the bug, I think that it can manifest itself on
> UP and a memory barrier failing on UP means that PREEMPTION can blow
> up. Considering this I wouldn't suggest anything different between the
> UP vs SMP case.

CPU is always self-consistent, isn't it ?

Also, I very much dislike idea of making our kernel a collection of
references to the man pages and URLs, esp. when URL point to the
resource not controlled by the project.

--54u2kuW9sGWg/X+X
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkrxkwIACgkQC3+MBN1Mb4isvACg5S8wnOv93nIr3CtXoN86fXrO
Em8AoLB0JX5z0jghg5cttbDKDdd+CfE9
=TN3q
-----END PGP SIGNATURE-----

--54u2kuW9sGWg/X+X--

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 15:07:56 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F23D3106568B;
	Wed,  4 Nov 2009 15:07:55 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42])
	by mx1.freebsd.org (Postfix) with ESMTP id CC70B8FC1F;
	Wed,  4 Nov 2009 15:07:55 +0000 (UTC)
Received: from fledge.watson.org (fledge.watson.org [65.122.17.41])
	by cyrus.watson.org (Postfix) with ESMTPS id 5080546B2E;
	Wed,  4 Nov 2009 10:07:55 -0500 (EST)
Date: Wed, 4 Nov 2009 15:07:55 +0000 (GMT)
From: Robert Watson 
X-X-Sender: robert@fledge.watson.org
To: Attilio Rao 
In-Reply-To: <200911040132.nA41WxtQ012750@svn.freebsd.org>
Message-ID: 
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
User-Agent: Alpine 2.00 (BSF 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 15:07:56 -0000


On Wed, 4 Nov 2009, Attilio Rao wrote:

> +	if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 &&
> +	    CPUID_TO_MODEL(cpu_id) <= 0x3f) {
> +		printf("WARNING: This architecture revision has known SMP "
> +		    "hardware bugs which may cause random instability\n");
> +		printf("WARNING: For details see: "
> +		    "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n");

I think the warning is a good idea, but I don't think we should include the 
URL.  We have no control over where it points or what information it will 
contain in the future.  Is there a hardware vendor errata number/document that 
we can point at instead, or alternatively, can we just leave it with the first 
warning line?

Robert

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 15:10:46 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EBC79106566C;
	Wed,  4 Nov 2009 15:10:46 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C1D4A8FC21;
	Wed,  4 Nov 2009 15:10:46 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4FAksa035765;
	Wed, 4 Nov 2009 15:10:46 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4FAkCA035763;
	Wed, 4 Nov 2009 15:10:46 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911041510.nA4FAkCA035763@svn.freebsd.org>
From: Alexander Motin 
Date: Wed, 4 Nov 2009 15:10:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198896 - head/sys/dev/siis
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 15:10:47 -0000

Author: mav
Date: Wed Nov  4 15:10:46 2009
New Revision: 198896
URL: http://svn.freebsd.org/changeset/base/198896

Log:
  Do not unarm callout on request completion and change slot selection
  algorithm as done in ahci(4). This saves some CPU time on high request
  rates.

Modified:
  head/sys/dev/siis/siis.c

Modified: head/sys/dev/siis/siis.c
==============================================================================
--- head/sys/dev/siis/siis.c	Wed Nov  4 15:05:51 2009	(r198895)
+++ head/sys/dev/siis/siis.c	Wed Nov  4 15:10:46 2009	(r198896)
@@ -641,6 +641,7 @@ siis_slotsfree(device_t dev)
 	for (i = 0; i < SIIS_MAX_SLOTS; i++) {
 		struct siis_slot *slot = &ch->slot[i];
 
+		callout_drain(&slot->timeout);
 		if (slot->dma.data_map) {
 			bus_dmamap_destroy(ch->dma.data_tag, slot->dma.data_map);
 			slot->dma.data_map = NULL;
@@ -838,15 +839,11 @@ siis_begin_transaction(device_t dev, uni
 	mtx_assert(&ch->mtx, MA_OWNED);
 	/* Choose empty slot. */
 	tag = ch->lastslot;
-	do {
-		tag++;
-		if (tag >= SIIS_MAX_SLOTS)
+	while (ch->slot[tag].state != SIIS_SLOT_EMPTY) {
+		if (++tag >= SIIS_MAX_SLOTS)
 			tag = 0;
-		if (ch->slot[tag].state == SIIS_SLOT_EMPTY)
-			break;
-	} while (tag != ch->lastslot);
-	if (ch->slot[tag].state != SIIS_SLOT_EMPTY)
-		device_printf(ch->dev, "ALL SLOTS BUSY!\n");
+		KASSERT(tag != ch->lastslot, ("siis: ALL SLOTS BUSY!"));
+	}
 	ch->lastslot = tag;
 	/* Occupy chosen slot. */
 	slot = &ch->slot[tag];
@@ -999,6 +996,9 @@ siis_timeout(struct siis_slot *slot)
 	struct siis_channel *ch = device_get_softc(dev);
 
 	mtx_assert(&ch->mtx, MA_OWNED);
+	/* Check for stale timeout. */
+	if (slot->state < SIIS_SLOT_RUNNING)
+		return;
 	device_printf(dev, "Timeout on slot %d\n", slot->slot);
 device_printf(dev, "%s is %08x ss %08x rs %08x es %08x sts %08x serr %08x\n",
     __func__, ATA_INL(ch->r_mem, SIIS_P_IS), ATA_INL(ch->r_mem, SIIS_P_SS), ch->rslots,
@@ -1024,8 +1024,6 @@ siis_end_transaction(struct siis_slot *s
 	union ccb *ccb = slot->ccb;
 
 	mtx_assert(&ch->mtx, MA_OWNED);
-	/* Cancel command execution timeout */
-	callout_stop(&slot->timeout);
 	bus_dmamap_sync(ch->dma.work_tag, ch->dma.work_map,
 	    BUS_DMASYNC_POSTWRITE);
 	/* Read result registers to the result struct

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 15:24:33 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0348C1065679;
	Wed,  4 Nov 2009 15:24:33 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E53298FC23;
	Wed,  4 Nov 2009 15:24:32 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4FOWpk036222;
	Wed, 4 Nov 2009 15:24:32 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4FOWP0036215;
	Wed, 4 Nov 2009 15:24:32 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911041524.nA4FOWP0036215@svn.freebsd.org>
From: Alexander Motin 
Date: Wed, 4 Nov 2009 15:24:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198897 - in head: sbin/camcontrol sys/cam/ata sys/sys
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 15:24:33 -0000

Author: mav
Date: Wed Nov  4 15:24:32 2009
New Revision: 198897
URL: http://svn.freebsd.org/changeset/base/198897

Log:
  MFp4:
  - Add support for sector size > 512 bytes and physical sector of several
  logical sectors, introduced by ATA-7 specification.
  - Remove some obsoleted code.

Modified:
  head/sbin/camcontrol/camcontrol.c
  head/sys/cam/ata/ata_all.c
  head/sys/cam/ata/ata_all.h
  head/sys/cam/ata/ata_da.c
  head/sys/cam/ata/ata_xpt.c
  head/sys/sys/ata.h

Modified: head/sbin/camcontrol/camcontrol.c
==============================================================================
--- head/sbin/camcontrol/camcontrol.c	Wed Nov  4 15:10:46 2009	(r198896)
+++ head/sbin/camcontrol/camcontrol.c	Wed Nov  4 15:24:32 2009	(r198897)
@@ -1061,6 +1061,10 @@ atacapprint(struct ata_params *parm)
 	printf("cylinders             %d\n", parm->cylinders);
 	printf("heads                 %d\n", parm->heads);
 	printf("sectors/track         %d\n", parm->sectors);
+	printf("sector size           logical %u, physical %lu, offset %lu\n",
+	    ata_logical_sector_size(parm),
+	    (unsigned long)ata_physical_sector_size(parm),
+	    (unsigned long)ata_logical_sector_offset(parm));
 
 	if (parm->config == ATA_PROTO_CFA ||
 	    (parm->support.command2 & ATA_SUPPORT_CFA))

Modified: head/sys/cam/ata/ata_all.c
==============================================================================
--- head/sys/cam/ata/ata_all.c	Wed Nov  4 15:10:46 2009	(r198896)
+++ head/sys/cam/ata/ata_all.c	Wed Nov  4 15:24:32 2009	(r198897)
@@ -271,6 +271,38 @@ ata_print_ident(struct ata_params *ident
 	printf(" device\n");
 }
 
+uint32_t
+ata_logical_sector_size(struct ata_params *ident_data)
+{
+	if ((ident_data->pss & 0xc000) == 0x4000 &&
+	    (ident_data->pss & ATA_PSS_LSSABOVE512)) {
+		return ((u_int32_t)ident_data->lss_1 |
+		    ((u_int32_t)ident_data->lss_2 << 16));
+	}
+	return (512);
+}
+
+uint64_t
+ata_physical_sector_size(struct ata_params *ident_data)
+{
+	if ((ident_data->pss & 0xc000) == 0x4000 &&
+	    (ident_data->pss & ATA_PSS_MULTLS)) {
+		return ((uint64_t)ata_logical_sector_size(ident_data) *
+		    (1 << (ident_data->pss & ATA_PSS_LSPPS)));
+	}
+	return (512);
+}
+
+uint64_t
+ata_logical_sector_offset(struct ata_params *ident_data)
+{
+	if ((ident_data->lsalign & 0xc000) == 0x4000) {
+		return ((uint64_t)ata_logical_sector_size(ident_data) *
+		    (ident_data->lsalign & 0x3fff));
+	}
+	return (0);
+}
+
 void
 ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,
     uint32_t lba, uint8_t sector_count)

Modified: head/sys/cam/ata/ata_all.h
==============================================================================
--- head/sys/cam/ata/ata_all.h	Wed Nov  4 15:10:46 2009	(r198896)
+++ head/sys/cam/ata/ata_all.h	Wed Nov  4 15:24:32 2009	(r198897)
@@ -91,6 +91,10 @@ int	ata_res_sbuf(struct ccb_ataio *ataio
 
 void	ata_print_ident(struct ata_params *ident_data);
 
+uint32_t	ata_logical_sector_size(struct ata_params *ident_data);
+uint64_t	ata_physical_sector_size(struct ata_params *ident_data);
+uint64_t	ata_logical_sector_offset(struct ata_params *ident_data);
+
 void	ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features,
     uint32_t lba, uint8_t sector_count);
 void	ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint16_t features,

Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c	Wed Nov  4 15:10:46 2009	(r198896)
+++ head/sys/cam/ata/ata_da.c	Wed Nov  4 15:24:32 2009	(r198897)
@@ -95,16 +95,14 @@ typedef enum {
 
 struct disk_params {
 	u_int8_t  heads;
-	u_int32_t cylinders;
 	u_int8_t  secs_per_track;
-	u_int32_t secsize;	/* Number of bytes/sector */
-	u_int64_t sectors;	/* total number sectors */
+	u_int32_t cylinders;
+	u_int32_t secsize;	/* Number of bytes/logical sector */
+	u_int64_t sectors;	/* Total number sectors */
 };
 
 struct ada_softc {
 	struct	 bio_queue_head bio_queue;
-	SLIST_ENTRY(ada_softc) links;
-	LIST_HEAD(, ccb_hdr) pending_ccbs;
 	ada_state state;
 	ada_flags flags;	
 	ada_quirks quirks;
@@ -142,7 +140,7 @@ static	void		adadone(struct cam_periph *
 			       union ccb *done_ccb);
 static  int		adaerror(union ccb *ccb, u_int32_t cam_flags,
 				u_int32_t sense_flags);
-static void		adasetgeom(struct cam_periph *periph,
+static void		adagetparams(struct cam_periph *periph,
 				struct ccb_getdev *cgd);
 static timeout_t	adasendorderedtag;
 static void		adashutdown(void *arg, int howto);
@@ -613,7 +611,6 @@ adaregister(struct cam_periph *periph, v
 		return(CAM_REQ_CMP_ERR);
 	}
 
-	LIST_INIT(&softc->pending_ccbs);
 	bioq_init(&softc->bio_queue);
 
 	if (cgd->ident_data.capabilities1 & ATA_SUPPORT_DMA)
@@ -658,6 +655,7 @@ adaregister(struct cam_periph *periph, v
 	 * Register this media as a disk
 	 */
 	mtx_unlock(periph->sim->mtx);
+	adagetparams(periph, cgd);
 	softc->disk = disk_alloc();
 	softc->disk->d_open = adaopen;
 	softc->disk->d_close = adaclose;
@@ -671,9 +669,9 @@ adaregister(struct cam_periph *periph, v
 	else if (maxio > MAXPHYS)
 		maxio = MAXPHYS;	/* for safety */
 	if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48)
-		maxio = min(maxio, 65536 * 512);
+		maxio = min(maxio, 65536 * softc->params.secsize);
 	else					/* 28bit ATA command limit */
-		maxio = min(maxio, 256 * 512);
+		maxio = min(maxio, 256 * softc->params.secsize);
 	softc->disk->d_maxsize = maxio;
 	softc->disk->d_unit = periph->unit_number;
 	softc->disk->d_flags = 0;
@@ -682,9 +680,12 @@ adaregister(struct cam_periph *periph, v
 	strlcpy(softc->disk->d_ident, cgd->serial_num,
 	    MIN(sizeof(softc->disk->d_ident), cgd->serial_num_len + 1));
 
-	adasetgeom(periph, cgd);
 	softc->disk->d_sectorsize = softc->params.secsize;
-	softc->disk->d_mediasize = softc->params.secsize * (off_t)softc->params.sectors;
+	softc->disk->d_mediasize = (off_t)softc->params.sectors *
+	    softc->params.secsize;
+	softc->disk->d_stripesize = ata_physical_sector_size(&cgd->ident_data);
+	softc->disk->d_stripeoffset = softc->disk->d_stripesize -
+	    ata_logical_sector_offset(&cgd->ident_data);
 	/* XXX: these are not actually "firmware" values, so they may be wrong */
 	softc->disk->d_fwsectors = softc->params.secs_per_track;
 	softc->disk->d_fwheads = softc->params.heads;
@@ -852,19 +853,10 @@ adastart(struct cam_periph *periph, unio
 				break;
 			}
 			start_ccb->ccb_h.ccb_state = ADA_CCB_BUFFER_IO;
-
-			/*
-			 * Block out any asyncronous callbacks
-			 * while we touch the pending ccb list.
-			 */
-			LIST_INSERT_HEAD(&softc->pending_ccbs,
-					 &start_ccb->ccb_h, periph_links.le);
-			softc->outstanding_cmds++;
-
 			start_ccb->ccb_h.ccb_bp = bp;
-			bp = bioq_first(&softc->bio_queue);
-
+			softc->outstanding_cmds++;
 			xpt_action(start_ccb);
+			bp = bioq_first(&softc->bio_queue);
 		}
 		
 		if (bp != NULL) {
@@ -941,12 +933,6 @@ adadone(struct cam_periph *periph, union
 			if (ataio->resid > 0)
 				bp->bio_flags |= BIO_ERROR;
 		}
-
-		/*
-		 * Block out any asyncronous callbacks
-		 * while we touch the pending ccb list.
-		 */
-		LIST_REMOVE(&done_ccb->ccb_h, periph_links.le);
 		softc->outstanding_cmds--;
 		if (softc->outstanding_cmds == 0)
 			softc->flags |= ADA_FLAG_WENT_IDLE;
@@ -983,14 +969,14 @@ adaerror(union ccb *ccb, u_int32_t cam_f
 }
 
 static void
-adasetgeom(struct cam_periph *periph, struct ccb_getdev *cgd)
+adagetparams(struct cam_periph *periph, struct ccb_getdev *cgd)
 {
 	struct ada_softc *softc = (struct ada_softc *)periph->softc;
 	struct disk_params *dp = &softc->params;
 	u_int64_t lbasize48;
 	u_int32_t lbasize;
 
-	dp->secsize = 512;
+	dp->secsize = ata_logical_sector_size(&cgd->ident_data);
 	if ((cgd->ident_data.atavalid & ATA_FLAG_54_58) &&
 		cgd->ident_data.current_heads && cgd->ident_data.current_sectors) {
 		dp->heads = cgd->ident_data.current_heads;

Modified: head/sys/cam/ata/ata_xpt.c
==============================================================================
--- head/sys/cam/ata/ata_xpt.c	Wed Nov  4 15:10:46 2009	(r198896)
+++ head/sys/cam/ata/ata_xpt.c	Wed Nov  4 15:24:32 2009	(r198897)
@@ -363,10 +363,12 @@ probestart(struct cam_periph *periph, un
 		cts.ccb_h.func_code = XPT_SET_TRAN_SETTINGS;
 		cts.type = CTS_TYPE_CURRENT_SETTINGS;
 		if (path->device->transport == XPORT_ATA) {
-			cts.xport_specific.ata.bytecount = sectors * 512;
+			cts.xport_specific.ata.bytecount = sectors *
+			    ata_logical_sector_size(ident_buf);
 			cts.xport_specific.ata.valid = CTS_ATA_VALID_BYTECOUNT;
 		} else {
-			cts.xport_specific.sata.bytecount = sectors * 512;
+			cts.xport_specific.sata.bytecount = sectors *
+			    ata_logical_sector_size(ident_buf);
 			cts.xport_specific.sata.valid = CTS_SATA_VALID_BYTECOUNT;
 		}
 		xpt_action((union ccb *)&cts);

Modified: head/sys/sys/ata.h
==============================================================================
--- head/sys/sys/ata.h	Wed Nov  4 15:10:46 2009	(r198896)
+++ head/sys/sys/ata.h	Wed Nov  4 15:24:32 2009	(r198897)
@@ -234,7 +234,7 @@ struct ata_params {
 /*176*/ u_int8_t        media_serial[60];
 /*206*/ u_int16_t       sct;
 	u_int16_t       reserved206[2];
-/*209*/ u_int16_t       lbalign;
+/*209*/ u_int16_t       lsalign;
 /*210*/ u_int16_t       wrv_sectors_m3_1;
 	u_int16_t       wrv_sectors_m3_2;
 /*212*/ u_int16_t       wrv_sectors_m2_1;

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 15:25:27 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0E01D1065672;
	Wed,  4 Nov 2009 15:25:27 +0000 (UTC) (envelope-from des@des.no)
Received: from tim.des.no (tim.des.no [194.63.250.121])
	by mx1.freebsd.org (Postfix) with ESMTP id BFCB18FC21;
	Wed,  4 Nov 2009 15:25:26 +0000 (UTC)
Received: from ds4.des.no (des.no [84.49.246.2])
	by smtp.des.no (Postfix) with ESMTP id 1206B6D41C;
	Wed,  4 Nov 2009 15:25:26 +0000 (UTC)
Received: by ds4.des.no (Postfix, from userid 1001)
	id E919D844E9; Wed,  4 Nov 2009 16:25:25 +0100 (CET)
From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= 
To: Attilio Rao 
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
Date: Wed, 04 Nov 2009 16:25:25 +0100
In-Reply-To: <200911040132.nA41WxtQ012750@svn.freebsd.org> (Attilio Rao's
	message of "Wed, 4 Nov 2009 01:32:59 +0000 (UTC)")
Message-ID: <863a4ugvmi.fsf@ds4.des.no>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.95 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 15:25:27 -0000

Attilio Rao  writes:
> Log:
>   Opteron rev E family of processor expose a bug where, in very rare
>   ocassions, memory barriers semantic is not honoured by the hardware
>   itself. As a result, some random breakage can happen in uninvestigable
>   ways (for further explanation see at the content of the commit itself).

According to the reference you gave, OpenSolaris has a workaround for
this issue.  Perhaps we should adopt it?

DES
--=20
Dag-Erling Sm=C3=B8rgrav - des@des.no

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 15:40:20 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8FC0D10656EF;
	Wed,  4 Nov 2009 15:40:20 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3CF058FC1B;
	Wed,  4 Nov 2009 15:40:20 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4FeKfx036744;
	Wed, 4 Nov 2009 15:40:20 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4FeKu3036739;
	Wed, 4 Nov 2009 15:40:20 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911041540.nA4FeKu3036739@svn.freebsd.org>
From: Alexander Motin 
Date: Wed, 4 Nov 2009 15:40:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198899 - in head/sys/cam: . ata scsi
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 15:40:20 -0000

Author: mav
Date: Wed Nov  4 15:40:19 2009
New Revision: 198899
URL: http://svn.freebsd.org/changeset/base/198899

Log:
  MFp4:
  - Remove CAM_PERIPH_POLLED flag. It is broken by design. Polling can't be
  periph flag. May be SIM, may be CCB, but now it works fine just without it.
  - Remove check unused for at least five years. If we will ever have non-BIO
  devices in CAM, this check is smallest of what we will need.
  - If several controllers complete requests same time, call swi_sched()
  only once.

Modified:
  head/sys/cam/ata/ata_da.c
  head/sys/cam/cam_periph.h
  head/sys/cam/cam_xpt.c
  head/sys/cam/scsi/scsi_da.c

Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c	Wed Nov  4 15:27:27 2009	(r198898)
+++ head/sys/cam/ata/ata_da.c	Wed Nov  4 15:40:19 2009	(r198899)
@@ -371,7 +371,6 @@ adadump(void *arg, void *virtual, vm_off
 	}
 
 	if (length > 0) {
-		periph->flags |= CAM_PERIPH_POLLED;
 		xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
 		ccb.ccb_h.ccb_state = ADA_CCB_DUMP;
 		cam_fill_ataio(&ccb.ataio,
@@ -431,7 +430,6 @@ adadump(void *arg, void *virtual, vm_off
 					 /*timeout*/0,
 					 /*getcount_only*/0);
 	}
-	periph->flags &= ~CAM_PERIPH_POLLED;
 	cam_periph_unlock(periph);
 	return (0);
 }

Modified: head/sys/cam/cam_periph.h
==============================================================================
--- head/sys/cam/cam_periph.h	Wed Nov  4 15:27:27 2009	(r198898)
+++ head/sys/cam/cam_periph.h	Wed Nov  4 15:40:19 2009	(r198899)
@@ -117,7 +117,6 @@ struct cam_periph {
 #define CAM_PERIPH_INVALID		0x08
 #define CAM_PERIPH_NEW_DEV_FOUND	0x10
 #define CAM_PERIPH_RECOVERY_INPROG	0x20
-#define CAM_PERIPH_POLLED		0x40
 	u_int32_t		 immediate_priority;
 	u_int32_t		 refcount;
 	SLIST_HEAD(, ccb_hdr)	 ccb_list;	/* For "immediate" requests */

Modified: head/sys/cam/cam_xpt.c
==============================================================================
--- head/sys/cam/cam_xpt.c	Wed Nov  4 15:27:27 2009	(r198898)
+++ head/sys/cam/cam_xpt.c	Wed Nov  4 15:40:19 2009	(r198899)
@@ -4238,6 +4238,7 @@ void
 xpt_done(union ccb *done_ccb)
 {
 	struct cam_sim *sim;
+	int	first;
 
 	CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("xpt_done\n"));
 	if ((done_ccb->ccb_h.func_code & XPT_FC_QUEUED) != 0) {
@@ -4246,25 +4247,17 @@ xpt_done(union ccb *done_ccb)
 		 * any of the "non-immediate" type of ccbs.
 		 */
 		sim = done_ccb->ccb_h.path->bus->sim;
-		switch (done_ccb->ccb_h.path->periph->type) {
-		case CAM_PERIPH_BIO:
-			TAILQ_INSERT_TAIL(&sim->sim_doneq, &done_ccb->ccb_h,
-					  sim_links.tqe);
-			done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX;
-			if ((sim->flags & CAM_SIM_ON_DONEQ) == 0) {
-				mtx_lock(&cam_simq_lock);
-				TAILQ_INSERT_TAIL(&cam_simq, sim,
-						  links);
-				mtx_unlock(&cam_simq_lock);
-				sim->flags |= CAM_SIM_ON_DONEQ;
-				if ((done_ccb->ccb_h.path->periph->flags &
-				    CAM_PERIPH_POLLED) == 0)
-					swi_sched(cambio_ih, 0);
-			}
-			break;
-		default:
-			panic("unknown periph type %d",
-			    done_ccb->ccb_h.path->periph->type);
+		TAILQ_INSERT_TAIL(&sim->sim_doneq, &done_ccb->ccb_h,
+		    sim_links.tqe);
+		done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX;
+		if ((sim->flags & CAM_SIM_ON_DONEQ) == 0) {
+			mtx_lock(&cam_simq_lock);
+			first = TAILQ_EMPTY(&cam_simq);
+			TAILQ_INSERT_TAIL(&cam_simq, sim, links);
+			mtx_unlock(&cam_simq_lock);
+			sim->flags |= CAM_SIM_ON_DONEQ;
+			if (first)
+				swi_sched(cambio_ih, 0);
 		}
 	}
 }

Modified: head/sys/cam/scsi/scsi_da.c
==============================================================================
--- head/sys/cam/scsi/scsi_da.c	Wed Nov  4 15:27:27 2009	(r198898)
+++ head/sys/cam/scsi/scsi_da.c	Wed Nov  4 15:40:19 2009	(r198899)
@@ -859,7 +859,6 @@ dadump(void *arg, void *virtual, vm_offs
 	}
 
 	if (length > 0) {
-		periph->flags |= CAM_PERIPH_POLLED;
 		xpt_setup_ccb(&csio.ccb_h, periph->path, CAM_PRIORITY_NORMAL);
 		csio.ccb_h.ccb_state = DA_CCB_DUMP;
 		scsi_read_write(&csio,
@@ -885,7 +884,6 @@ dadump(void *arg, void *virtual, vm_offs
 			else
 				printf("status == 0x%x, scsi status == 0x%x\n",
 				       csio.ccb_h.status, csio.scsi_status);
-			periph->flags |= CAM_PERIPH_POLLED;
 			return(EIO);
 		}
 		cam_periph_unlock(periph);
@@ -929,7 +927,6 @@ dadump(void *arg, void *virtual, vm_offs
 			}
 		}
 	}
-	periph->flags &= ~CAM_PERIPH_POLLED;
 	cam_periph_unlock(periph);
 	return (0);
 }

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:04:02 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 50EE91065693;
	Wed,  4 Nov 2009 16:04:02 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.156])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E61D8FC08;
	Wed,  4 Nov 2009 16:04:01 +0000 (UTC)
Received: by fg-out-1718.google.com with SMTP id d23so1607674fga.13
	for ; Wed, 04 Nov 2009 08:04:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to:cc
	:content-type; bh=4ZcGnqzb6dH7R2J02TkknhHIohhkmPbFUnGQrq7dFQg=;
	b=NLQYpeoB3EYPppt+BViaghNWJ+0fXlADc7ZC//afDxJrEZKylJEuFvgNG39EjnvIDz
	tVAEucUncd1bLACMd7ejNrHCldF7axG0A2vZlLbVI+xpG8av0yAVf5R9DnHTeCZm/yWu
	yzD9PkpRzrKuPLf2+H/WZ/XxvMGvD26yZ1a0I=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:cc:content-type;
	b=VaTvGFXZL1Gj2kv1wRcq81SPBsw5+SZrK0QoZ1ecs21/fS/GOQn7D0/EORBFy3+fNJ
	ezJ5i7bE443T5xOTT1BuTxxX61SaE7fWFbqdSzSuzPRc0ciJful9Un2PbH/MiTVuk23d
	l14rl2FZ1ZiHZqjUejOAaVmm2OGvGueS+tEno=
MIME-Version: 1.0
Sender: asmrookie@gmail.com
Received: by 10.223.17.144 with SMTP id s16mr222422faa.41.1257350640304; Wed, 
	04 Nov 2009 08:04:00 -0800 (PST)
In-Reply-To: 
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	
Date: Wed, 4 Nov 2009 17:04:00 +0100
X-Google-Sender-Auth: 2c0123bc7d3c7cc2
Message-ID: <3bbf2fe10911040804p6419778bgc363951104adb76e@mail.gmail.com>
From: Attilio Rao 
To: Robert Watson 
Content-Type: text/plain; charset=UTF-8
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:04:02 -0000

2009/11/4, Robert Watson :
>
> On Wed, 4 Nov 2009, Attilio Rao wrote:
>
> > +       if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >=
> 0x20 &&
> > +           CPUID_TO_MODEL(cpu_id) <= 0x3f) {
> > +               printf("WARNING: This architecture revision has known SMP
> "
> > +                   "hardware bugs which may cause random instability\n");
> > +               printf("WARNING: For details see: "
> > +
> "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n");
> >
>
> I think the warning is a good idea, but I don't think we should include the
> URL.  We have no control over where it points or what information it will
> contain in the future.  Is there a hardware vendor errata number/document
> that we can point at instead, or alternatively, can we just leave it with
> the first warning line?

I tried to look for an errata pdf from AMD, but I've been unable to
locate one and that's the only 'close' reference I could find.
I'm fine with stripping the link, through, I actually wasn't very
eager to add it, I just did for a complete reference.

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:06:02 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CA77C106568B;
	Wed,  4 Nov 2009 16:06:02 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com
	[209.85.218.213])
	by mx1.freebsd.org (Postfix) with ESMTP id 08F988FC29;
	Wed,  4 Nov 2009 16:06:01 +0000 (UTC)
Received: by bwz5 with SMTP id 5so9259480bwz.3
	for ; Wed, 04 Nov 2009 08:06:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to:cc
	:content-type:content-transfer-encoding;
	bh=2e/aYQ0xPnNW12fqq95fTDx7cEwhTpjXUb+dO74/qCw=;
	b=XPPxqErEH8NACQE3yyPlNQEA9zhjwtxvOzrTkF3vq6c8jhKd3Q5kRYA1w2kjl7mPkR
	EwxGE2ru4bW79IaD7dLEdN6mwU4leUt/MC+VjvEua9ixonVXKkYg1IUaeIvXr8nSF0qX
	PDpHzm14GXn0gS+YlR3WTKEsswwO6FFPWdHwU=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	b=g92b3sBLUeApJDHn9KunGyI+TSGZqf1nYZI+tP69JYxJzeXoueKlNtsxDZeu8MMTn4
	dy/F0FcxSVN4OFvkhN/BF78HkLwpdqoBr5pC4JLrbD0suJcy7MMnvvxY71hELuB1z7e1
	Am7eWBwBqc3Z9bJMNXAgKcR+oSKaTcQDzyQAk=
MIME-Version: 1.0
Sender: asmrookie@gmail.com
Received: by 10.223.4.137 with SMTP id 9mr245686far.95.1257350760732; Wed, 04 
	Nov 2009 08:06:00 -0800 (PST)
In-Reply-To: <863a4ugvmi.fsf@ds4.des.no>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<863a4ugvmi.fsf@ds4.des.no>
Date: Wed, 4 Nov 2009 17:06:00 +0100
X-Google-Sender-Auth: 369e3cebfc72c5eb
Message-ID: <3bbf2fe10911040806l7293ab6l99cce51ea9d7a64c@mail.gmail.com>
From: Attilio Rao 
To: =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= 
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:06:02 -0000

2009/11/4, Dag-Erling Sm=C3=B8rgrav :
> Attilio Rao  writes:
> > Log:
> >   Opteron rev E family of processor expose a bug where, in very rare
> >   ocassions, memory barriers semantic is not honoured by the hardware
> >   itself. As a result, some random breakage can happen in uninvestigabl=
e
> >   ways (for further explanation see at the content of the commit itself=
).
>
> According to the reference you gave, OpenSolaris has a workaround for
> this issue.  Perhaps we should adopt it?

IIRC, based on what I readed on-line, it could be still a WARNING msg,
but I didn't double-check for it.
On the other side, a possible complete solution would involve a
boot-time patching mechanism, but we don't have it right now
(differently from Linux) or disabling the SMP support, but it seems
mostly a too heavy loss of performance due to the rarely appearence of
the bug itself.

I think the WARNING msg is a good compromise to all these other approaches.

Attilio


--=20
Peace can only be achieved by understanding - A. Einstein

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:06:38 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BBB2910656A9;
	Wed,  4 Nov 2009 16:06:38 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com
	[209.85.218.213])
	by mx1.freebsd.org (Postfix) with ESMTP id D849B8FC30;
	Wed,  4 Nov 2009 16:06:37 +0000 (UTC)
Received: by bwz5 with SMTP id 5so9260169bwz.3
	for ; Wed, 04 Nov 2009 08:06:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to:cc
	:content-type; bh=zj1iyIXz2AWPAdorvE2ogt1ZSYMhLEALHRSHYmCUmko=;
	b=qWtIYdYRkQCzXEK6co4d9kFMnN678KnisWRUHOMoaRy0zlFCPb4IH4U8vZOr+ROSiu
	hP/uKUEWTM9yXVDCLi7eTncJoIwrd5PuYzR9rid254efmClrtyWuEsmwjeELMS7JN6JW
	E82Bc8ysFeOHp+x1MnpUIqllipR3pCLBdBnFI=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:cc:content-type;
	b=bN+i5alEOREHhhvpvUyEPvOo7hjRAtUz11Y3Qss+MWeul/WTsGK8x/ISUlFSP98F6D
	Kcoeum2CPbGVBlFPx8s2/ghugHYxu+cfEF4zazsP0XDZzAcvo3p/o0kS6IqM+SH1Atey
	FsVfESM1ZIUp2+8bePL+Ghg2FewxhQdp9tjtI=
MIME-Version: 1.0
Sender: asmrookie@gmail.com
Received: by 10.223.161.215 with SMTP id s23mr234223fax.44.1257350796479; Wed, 
	04 Nov 2009 08:06:36 -0800 (PST)
In-Reply-To: <20091104144315.GH2331@deviant.kiev.zoral.com.ua>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<20091104055811.GY1293@hoeg.nl>
	<3bbf2fe10911040449j5938ca7eqca5829ceced66f48@mail.gmail.com>
	<20091104144315.GH2331@deviant.kiev.zoral.com.ua>
Date: Wed, 4 Nov 2009 17:06:36 +0100
X-Google-Sender-Auth: 36394d47c77d16f5
Message-ID: <3bbf2fe10911040806r37f00a8dq2aa3ccd1e5c7b241@mail.gmail.com>
From: Attilio Rao 
To: Kostik Belousov 
Content-Type: text/plain; charset=UTF-8
Cc: svn-src-head@freebsd.org, Ed Schouten ,
	svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:06:38 -0000

2009/11/4, Kostik Belousov :
> On Wed, Nov 04, 2009 at 01:49:41PM +0100, Attilio Rao wrote:
> > 2009/11/4 Ed Schouten :
> > > Hi Attilio,
> > >
> > > * Attilio Rao  wrote:
> > >> Opteron rev E family of processor expose a bug where, in very rare
> > >> ocassions, memory barriers semantic is not honoured by the hardware
> > >> itself. As a result, some random breakage can happen in uninvestigable
> > >> ways (for further explanation see at the content of the commit itself).
> > >
> > > Ooh. Sounds like an interesting bug.
> > >
> > > The bug doesn't manifest itself on UP, right? If so, maybe we should add
> > > some very short instructions to the warning on how to disable SMP.
> >
> > Due to the semantic of the bug, I think that it can manifest itself on
> > UP and a memory barrier failing on UP means that PREEMPTION can blow
> > up. Considering this I wouldn't suggest anything different between the
> > UP vs SMP case.
>
> CPU is always self-consistent, isn't it ?
>
> Also, I very much dislike idea of making our kernel a collection of
> references to the man pages and URLs, esp. when URL point to the
> resource not controlled by the project.

Ok, as long as you are in favor of stripping the URL, I'm fine with it.

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:09:07 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D9A6F106566B;
	Wed,  4 Nov 2009 16:09:07 +0000 (UTC) (envelope-from des@des.no)
Received: from tim.des.no (tim.des.no [194.63.250.121])
	by mx1.freebsd.org (Postfix) with ESMTP id 97E578FC0C;
	Wed,  4 Nov 2009 16:09:07 +0000 (UTC)
Received: from ds4.des.no (des.no [84.49.246.2])
	by smtp.des.no (Postfix) with ESMTP id 26A476D44C;
	Wed,  4 Nov 2009 16:09:06 +0000 (UTC)
Received: by ds4.des.no (Postfix, from userid 1001)
	id 02215844E9; Wed,  4 Nov 2009 17:09:05 +0100 (CET)
From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= 
To: Attilio Rao 
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<863a4ugvmi.fsf@ds4.des.no>
	<3bbf2fe10911040806l7293ab6l99cce51ea9d7a64c@mail.gmail.com>
Date: Wed, 04 Nov 2009 17:09:05 +0100
In-Reply-To: <3bbf2fe10911040806l7293ab6l99cce51ea9d7a64c@mail.gmail.com>
	(Attilio Rao's message of "Wed, 4 Nov 2009 17:06:00 +0100")
Message-ID: <86y6mmff1a.fsf@ds4.des.no>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.95 (berkeley-unix)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:09:07 -0000

Attilio Rao  writes:
> Dag-Erling Sm=C3=B8rgrav  writes:
> > According to the reference you gave, OpenSolaris has a workaround for
> > this issue.  Perhaps we should adopt it?
> IIRC, based on what I readed on-line, it could be still a WARNING msg,
> but I didn't double-check for it.

Uh, apparently, it can be worked around with an additional lfence
instruction...  See the first couple of comments on that bugzilla page
you linked to.  If the cost is too high, we could make it conditional on
"options BROKEN_OPTERON_E" or something.

DES
--=20
Dag-Erling Sm=C3=B8rgrav - des@des.no

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:11:21 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A8CBB106568D;
	Wed,  4 Nov 2009 16:11:21 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42])
	by mx1.freebsd.org (Postfix) with ESMTP id 811D18FC16;
	Wed,  4 Nov 2009 16:11:21 +0000 (UTC)
Received: from fledge.watson.org (fledge.watson.org [65.122.17.41])
	by cyrus.watson.org (Postfix) with ESMTPS id EF8DE46B0D;
	Wed,  4 Nov 2009 11:11:20 -0500 (EST)
Date: Wed, 4 Nov 2009 16:11:20 +0000 (GMT)
From: Robert Watson 
X-X-Sender: robert@fledge.watson.org
To: Attilio Rao 
In-Reply-To: <3bbf2fe10911040804p6419778bgc363951104adb76e@mail.gmail.com>
Message-ID: 
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	
	<3bbf2fe10911040804p6419778bgc363951104adb76e@mail.gmail.com>
User-Agent: Alpine 2.00 (BSF 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:11:21 -0000


On Wed, 4 Nov 2009, Attilio Rao wrote:

>> I think the warning is a good idea, but I don't think we should include the 
>> URL.  We have no control over where it points or what information it will 
>> contain in the future.  Is there a hardware vendor errata number/document 
>> that we can point at instead, or alternatively, can we just leave it with 
>> the first warning line?
>
> I tried to look for an errata pdf from AMD, but I've been unable to locate 
> one and that's the only 'close' reference I could find. I'm fine with 
> stripping the link, through, I actually wasn't very eager to add it, I just 
> did for a complete reference.

I'm fine with it in a source comment, just not sure about kernel output.

Robert

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:15:30 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C8A44106566C;
	Wed,  4 Nov 2009 16:15:30 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: from mail-fx0-f227.google.com (mail-fx0-f227.google.com
	[209.85.220.227])
	by mx1.freebsd.org (Postfix) with ESMTP id 0DC418FC13;
	Wed,  4 Nov 2009 16:15:29 +0000 (UTC)
Received: by fxm27 with SMTP id 27so83255fxm.3
	for ; Wed, 04 Nov 2009 08:15:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to:cc
	:content-type:content-transfer-encoding;
	bh=gUndf19vxbMHV+XRcUU2OB5dXEasEOTVfqw+q4MlsCw=;
	b=qc/vRqlPQDl2+tADDbwiLeYrk2ikiALIjNFJNibAEfK+IHHc8vIIbqwlmuolYg0tKh
	CBraxu+RRVK08ZwdmkaHBgcv5eK5ZrimuL7uTIRax9jo6ZUiOlljiMnkb5Nr5iv7mVN9
	HG5JiHxwPbGqfwcRzu2gvOcnLSb2GXVM3pXpg=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	b=XeTAXgva8rsLx3+LMMuHbDnY1nbkYIaEXQFoTJOvIH0U5IUlt7s2a6FGKgVObm7xAk
	jlFCd4RpmknXrj8gbhOf+yMmuo2JGXnxq5H+b7Ewvymo5lz8Vv7Ki6oElt+jXq9QL2ut
	yOKIGynvjmK2uMGXyEEQEUy93Uvp9iJR0abm4=
MIME-Version: 1.0
Sender: asmrookie@gmail.com
Received: by 10.223.17.144 with SMTP id s16mr224504faa.41.1257351328909; Wed, 
	04 Nov 2009 08:15:28 -0800 (PST)
In-Reply-To: <86y6mmff1a.fsf@ds4.des.no>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<863a4ugvmi.fsf@ds4.des.no>
	<3bbf2fe10911040806l7293ab6l99cce51ea9d7a64c@mail.gmail.com>
	<86y6mmff1a.fsf@ds4.des.no>
Date: Wed, 4 Nov 2009 17:15:28 +0100
X-Google-Sender-Auth: 6b10b77bd85edd3a
Message-ID: <3bbf2fe10911040815u780ea5d5h8252b46ddf0c5de7@mail.gmail.com>
From: Attilio Rao 
To: =?UTF-8?Q?Dag=2DErling_Sm=C3=B8rgrav?= 
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:15:30 -0000

2009/11/4, Dag-Erling Sm=C3=B8rgrav :
> Attilio Rao  writes:
> > Dag-Erling Sm=C3=B8rgrav  writes:
> > > According to the reference you gave, OpenSolaris has a workaround for
> > > this issue.  Perhaps we should adopt it?
> > IIRC, based on what I readed on-line, it could be still a WARNING msg,
> > but I didn't double-check for it.
>
> Uh, apparently, it can be worked around with an additional lfence
> instruction...  See the first couple of comments on that bugzilla page
> you linked to.  If the cost is too high, we could make it conditional on
> "options BROKEN_OPTERON_E" or something.

Yeah but the lfence is completely impratical from the overhead POV --
and actually I don't like the idea to add a compile time option based
on family/model.
We could maybe do a mixed approach: printout the WARNING msg only if
the BROKEN_OPTERON_E is not used otherwise be ok.
I still don't like it because it is going to dirty the atomic.h code a
bit, but it can be an acceptable compromise.

Attilio


--=20
Peace can only be achieved by understanding - A. Einstein

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:16:51 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2AF83106568F;
	Wed,  4 Nov 2009 16:16:51 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1A3898FC1E;
	Wed,  4 Nov 2009 16:16:51 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4GGpfa037972;
	Wed, 4 Nov 2009 16:16:51 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4GGo1B037970;
	Wed, 4 Nov 2009 16:16:50 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911041616.nA4GGo1B037970@svn.freebsd.org>
From: Alexander Motin 
Date: Wed, 4 Nov 2009 16:16:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198904 - head/sys/cam/ata
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:16:51 -0000

Author: mav
Date: Wed Nov  4 16:16:50 2009
New Revision: 198904
URL: http://svn.freebsd.org/changeset/base/198904

Log:
  PMP commands use short format. PMP write doesn't return result.

Modified:
  head/sys/cam/ata/ata_all.c

Modified: head/sys/cam/ata/ata_all.c
==============================================================================
--- head/sys/cam/ata/ata_all.c	Wed Nov  4 16:05:18 2009	(r198903)
+++ head/sys/cam/ata/ata_all.c	Wed Nov  4 16:16:50 2009	(r198904)
@@ -368,30 +368,24 @@ void
 ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port)
 {
 	bzero(&ataio->cmd, sizeof(ataio->cmd));
-	ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT;
+	ataio->cmd.flags = CAM_ATAIO_NEEDRESULT;
 	ataio->cmd.command = ATA_READ_PM;
 	ataio->cmd.features = reg;
-	ataio->cmd.features_exp = reg >> 8;
 	ataio->cmd.device = port & 0x0f;
 }
 
 void
-ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val)
+ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val)
 {
 	bzero(&ataio->cmd, sizeof(ataio->cmd));
-	ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT;
+	ataio->cmd.flags = 0;
 	ataio->cmd.command = ATA_WRITE_PM;
 	ataio->cmd.features = reg;
+	ataio->cmd.sector_count = val;
 	ataio->cmd.lba_low = val >> 8;
 	ataio->cmd.lba_mid = val >> 16;
 	ataio->cmd.lba_high = val >> 24;
 	ataio->cmd.device = port & 0x0f;
-	ataio->cmd.lba_low_exp = val >> 40;
-	ataio->cmd.lba_mid_exp = val >> 48;
-	ataio->cmd.lba_high_exp = val >> 56;
-	ataio->cmd.features_exp = reg >> 8;
-	ataio->cmd.sector_count = val;
-	ataio->cmd.sector_count_exp = val >> 32;
 }
 
 void

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 16:37:13 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7EB03106566B;
	Wed,  4 Nov 2009 16:37:13 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6E0D38FC13;
	Wed,  4 Nov 2009 16:37:13 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4GbDZi038524;
	Wed, 4 Nov 2009 16:37:13 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4GbDCk038522;
	Wed, 4 Nov 2009 16:37:13 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911041637.nA4GbDCk038522@svn.freebsd.org>
From: Alexander Motin 
Date: Wed, 4 Nov 2009 16:37:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198905 - head/sys/cam/ata
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 16:37:13 -0000

Author: mav
Date: Wed Nov  4 16:37:13 2009
New Revision: 198905
URL: http://svn.freebsd.org/changeset/base/198905

Log:
  Fix protype.

Modified:
  head/sys/cam/ata/ata_all.h

Modified: head/sys/cam/ata/ata_all.h
==============================================================================
--- head/sys/cam/ata/ata_all.h	Wed Nov  4 16:16:50 2009	(r198904)
+++ head/sys/cam/ata/ata_all.h	Wed Nov  4 16:37:13 2009	(r198905)
@@ -103,7 +103,7 @@ void	ata_ncq_cmd(struct ccb_ataio *ataio
     uint64_t lba, uint16_t sector_count);
 void	ata_reset_cmd(struct ccb_ataio *ataio);
 void	ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port);
-void	ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val);
+void	ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val);
 
 void	ata_bswap(int8_t *buf, int len);
 void	ata_btrim(int8_t *buf, int len);

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 17:30:49 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 392B71065696;
	Wed,  4 Nov 2009 17:30:49 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 287E08FC0A;
	Wed,  4 Nov 2009 17:30:49 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4HUn12040152;
	Wed, 4 Nov 2009 17:30:49 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4HUnjW040150;
	Wed, 4 Nov 2009 17:30:49 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911041730.nA4HUnjW040150@svn.freebsd.org>
From: Jung-uk Kim 
Date: Wed, 4 Nov 2009 17:30:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198911 - head/sys/dev/fb
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 17:30:49 -0000

Author: jkim
Date: Wed Nov  4 17:30:48 2009
New Revision: 198911
URL: http://svn.freebsd.org/changeset/base/198911

Log:
  Do not probe video mode if we are not going to use it.

Modified:
  head/sys/dev/fb/vesa.c

Modified: head/sys/dev/fb/vesa.c
==============================================================================
--- head/sys/dev/fb/vesa.c	Wed Nov  4 17:00:24 2009	(r198910)
+++ head/sys/dev/fb/vesa.c	Wed Nov  4 17:30:48 2009	(r198911)
@@ -1450,10 +1450,11 @@ vesa_load_state(video_adapter_t *adp, vo
 	 * If the current mode is not the same, probably it was powered down.
 	 * Try BIOS POST to restore a sane state.
 	 */
-	mode = vesa_bios_get_current_mode();
-	if (mode >= 0 && (mode & 0x1ff) != adp->va_mode &&
-	    VESA_MODE(adp->va_mode))
-		(void)vesa_bios_post();
+	if (VESA_MODE(adp->va_mode)) {
+		mode = vesa_bios_get_current_mode();
+		if (mode >= 0 && (mode & 0x1ff) != adp->va_mode)
+			(void)vesa_bios_post();
+	}
 
 	ret = vesa_bios_save_restore(STATE_LOAD, ((adp_state_t *)p)->regs,
 	    vesa_state_buf_size);
@@ -1461,9 +1462,10 @@ vesa_load_state(video_adapter_t *adp, vo
 	/*
 	 * If the desired mode is not restored, force setting the mode.
 	 */
-	mode = vesa_bios_get_current_mode();
-	if (mode >= 0 && (mode & 0x1ff) != adp->va_mode &&
-	    VESA_MODE(adp->va_mode)) {
+	if (VESA_MODE(adp->va_mode)) {
+		mode = vesa_bios_get_current_mode();
+		if (mode < 0 || (mode & 0x1ff) == adp->va_mode)
+			return (ret);
 		mode = adp->va_mode;
 		flags = adp->va_info.vi_flags;
 		if ((flags & V_INFO_GRAPHICS) != 0 &&

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 18:16:13 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0B1F61065670;
	Wed,  4 Nov 2009 18:16:13 +0000 (UTC)
	(envelope-from trasz@FreeBSD.org)
Received: from mx1.wheel.pl (grom.wheel.pl [91.121.70.66])
	by mx1.freebsd.org (Postfix) with ESMTP id 94E028FC22;
	Wed,  4 Nov 2009 18:16:12 +0000 (UTC)
Received: from localhost (unknown [10.10.2.1])
	by mx1.wheel.pl (Postfix) with ESMTP id D9833C314;
	Wed,  4 Nov 2009 19:00:46 +0100 (CET)
X-Virus-Scanned: amavisd-new at mx1.wheel.pl
Received: from mx1.wheel.pl ([10.10.2.1])
	by localhost (mx1.wheel.pl [10.10.2.1]) (amavisd-new, port 10024)
	with ESMTP id LY3EAep3v02M; Wed,  4 Nov 2009 19:00:45 +0100 (CET)
Received: from mail.wheel.pl (ghf58.internetdsl.tpnet.pl [83.12.187.58])
	(using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx1.wheel.pl (Postfix) with ESMTPS id 4298CC30E;
	Wed,  4 Nov 2009 19:00:45 +0100 (CET)
Received: from localhost (unknown [10.0.2.3])
	by mail.wheel.pl (Postfix) with ESMTP id 507B13E3FE;
	Wed,  4 Nov 2009 19:00:44 +0100 (CET)
Received: from mail.wheel.pl ([10.0.2.3])
	by localhost (mx2.wheel.pl [10.0.2.3]) (amavisd-new, port 10024)
	with ESMTP id e0YDNhoKu7RA; Wed,  4 Nov 2009 19:00:41 +0100 (CET)
Received: from [192.168.1.100] (45.81.datacomsa.pl [195.34.81.45])
	(using TLSv1 with cipher AES128-SHA (128/128 bits))
	(No client certificate requested)
	by mail.wheel.pl (Postfix) with ESMTP id 717063E3F7;
	Wed,  4 Nov 2009 19:00:40 +0100 (CET)
Mime-Version: 1.0 (Apple Message framework v1076)
Content-Type: text/plain; charset=iso-8859-2; format=flowed; delsp=yes
From: =?iso-8859-2?Q?Edward_Tomasz_Napiera=B3a?= 
In-Reply-To: <20091104070427.GE2073@garage.freebsd.pl>
Date: Wed, 4 Nov 2009 19:00:38 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <32B76852-3EA3-4814-A8B8-954CC510DAA3@FreeBSD.org>
References: <200911040648.nA46mYrb021862@svn.freebsd.org>
	<20091104070427.GE2073@garage.freebsd.pl>
To: Pawel Jakub Dawidek 
X-Mailer: Apple Mail (2.1076)
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198874 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 18:16:13 -0000

Wiadomo=B6=E6 napisana przez Pawel Jakub Dawidek w dniu 2009-11-04, o =20=

godz. 08:04:
> On Wed, Nov 04, 2009 at 06:48:34AM +0000, Edward Tomasz Napierala =20
> wrote:
>> Author: trasz
>> Date: Wed Nov  4 06:48:34 2009
>> New Revision: 198874
>> URL: http://svn.freebsd.org/changeset/base/198874
>>
>> Log:
>>  Make sure we don't end up with VAPPEND without VWRITE, if someone =20=

>> calls open(2)
>>  like this: open(..., O_APPEND).
>>
>> Modified:
>>  head/sys/kern/vfs_vnops.c
>>
>> Modified: head/sys/kern/vfs_vnops.c
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=20
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> --- head/sys/kern/vfs_vnops.c	Wed Nov  4 06:47:14 2009	=
(r198873)
>> +++ head/sys/kern/vfs_vnops.c	Wed Nov  4 06:48:34 2009	=
(r198874)
>> @@ -213,7 +213,7 @@ restart:
>> 	if (fmode & FEXEC)
>> 		accmode |=3D VEXEC;
>> 	if (fmode & O_APPEND)
>> -		accmode |=3D VAPPEND;
>> +		accmode |=3D VWRITE | VAPPEND;
>> #ifdef MAC
>> 	error =3D mac_vnode_check_open(cred, vp, accmode);
>> 	if (error)
>
> Why? If someone does O_APPEND only we don't want to give him write
> access...

As it is now, VAPPEND is not a real V* flag - it's a kind of modifier =20=

to VWRITE.
Which means that it doesn't really make sense, from the conceptual =20
point of view,
to have VAPPEND without VWRITE being set at the same time.  This =20
doesn't break
things right now - at least I don't know about any such breakage - but =20=

in the
future I'd like to have a few KASSERTs to verify that VAPPEND is never =20=

specified
without VWRITE, just to make sure something unexpected doesn't happen =20=

somewhere.

As it is now, doing open(..., O_APPEND) will result in a =20
filedescriptor open
for... reading.  So, the change above would change the behaviour.  =20
What about
something like this instead:

Index: vfs_vnops.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- vfs_vnops.c (revision 198876)
+++ vfs_vnops.c (working copy)
@@ -212,7 +212,7 @@
                 accmode |=3D VREAD;
         if (fmode & FEXEC)
                 accmode |=3D VEXEC;
-       if (fmode & O_APPEND)
+       if ((fmode & O_APPEND) && (fmode & FWRITE))
                 accmode |=3D VAPPEND;
  #ifdef MAC
         error =3D mac_vnode_check_open(cred, vp, accmode);

--
If you cut off my head, what would I say?  Me and my head, or me and =20
my body?


From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 18:17:23 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 999C11065672;
	Wed,  4 Nov 2009 18:17:23 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42])
	by mx1.freebsd.org (Postfix) with ESMTP id 644E28FC15;
	Wed,  4 Nov 2009 18:17:23 +0000 (UTC)
Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net
	[66.111.2.69])
	by cyrus.watson.org (Postfix) with ESMTPSA id E0C1746B1A;
	Wed,  4 Nov 2009 13:17:22 -0500 (EST)
Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8])
	by bigwig.baldwin.cx (Postfix) with ESMTPA id 0CAD18A01B;
	Wed,  4 Nov 2009 13:17:19 -0500 (EST)
From: John Baldwin 
To: Attilio Rao 
Date: Wed, 4 Nov 2009 13:12:36 -0500
User-Agent: KMail/1.9.7
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<86y6mmff1a.fsf@ds4.des.no>
	<3bbf2fe10911040815u780ea5d5h8252b46ddf0c5de7@mail.gmail.com>
In-Reply-To: <3bbf2fe10911040815u780ea5d5h8252b46ddf0c5de7@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Message-Id: <200911041312.37676.jhb@freebsd.org>
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1
	(bigwig.baldwin.cx); Wed, 04 Nov 2009 13:17:19 -0500 (EST)
X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx
X-Virus-Status: Clean
X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE
	autolearn=no version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx
Cc: svn-src-head@freebsd.org, Dag-Erling =?utf-8?q?Sm=C3=B8rgrav?= ,
	svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 18:17:23 -0000

On Wednesday 04 November 2009 11:15:28 am Attilio Rao wrote:
> 2009/11/4, Dag-Erling Sm=C3=B8rgrav :
> > Attilio Rao  writes:
> > > Dag-Erling Sm=C3=B8rgrav  writes:
> > > > According to the reference you gave, OpenSolaris has a workaround f=
or
> > > > this issue.  Perhaps we should adopt it?
> > > IIRC, based on what I readed on-line, it could be still a WARNING msg,
> > > but I didn't double-check for it.
> >
> > Uh, apparently, it can be worked around with an additional lfence
> > instruction...  See the first couple of comments on that bugzilla page
> > you linked to.  If the cost is too high, we could make it conditional on
> > "options BROKEN_OPTERON_E" or something.
>=20
> Yeah but the lfence is completely impratical from the overhead POV --
> and actually I don't like the idea to add a compile time option based
> on family/model.
> We could maybe do a mixed approach: printout the WARNING msg only if
> the BROKEN_OPTERON_E is not used otherwise be ok.
> I still don't like it because it is going to dirty the atomic.h code a
> bit, but it can be an acceptable compromise.

We have had family/model specific hacks with an associated #ifdef in the pa=
st,=20
see NO_F00F_HACK (though that is probably less invasive).  Also, if it=20
affects atomic.h then you may need to leave it always enabled in userland t=
o=20
be truly safe.

=2D-=20
John Baldwin

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 18:40:07 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BDC87106566B;
	Wed,  4 Nov 2009 18:40:07 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ACC998FC14;
	Wed,  4 Nov 2009 18:40:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4Ie7Al042433;
	Wed, 4 Nov 2009 18:40:07 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4Ie5o4042431;
	Wed, 4 Nov 2009 18:40:05 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200911041840.nA4Ie5o4042431@svn.freebsd.org>
From: Doug Barton 
Date: Wed, 4 Nov 2009 18:40:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198921 - head/games/fortune/datfiles
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 18:40:07 -0000

Author: dougb
Date: Wed Nov  4 18:40:05 2009
New Revision: 198921
URL: http://svn.freebsd.org/changeset/base/198921

Log:
  Fix not only the grammar, but also the formatting that makes the gag

Modified:
  head/games/fortune/datfiles/fortunes

Modified: head/games/fortune/datfiles/fortunes
==============================================================================
--- head/games/fortune/datfiles/fortunes	Wed Nov  4 18:34:14 2009	(r198920)
+++ head/games/fortune/datfiles/fortunes	Wed Nov  4 18:40:05 2009	(r198921)
@@ -25228,7 +25228,8 @@ them scream.
 		-- Sylvestre Matuschka, "the Hungarian Train Wreck Freak",
 		   escaped prison 1937, not heard from since
 %
-Iam
+I
+am
 not
 very
 happy

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 19:59:05 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 43FF1106566C;
	Wed,  4 Nov 2009 19:59:05 +0000 (UTC)
	(envelope-from kostikbel@gmail.com)
Received: from mail.zoral.com.ua (skuns.zoral.com.ua [91.193.166.194])
	by mx1.freebsd.org (Postfix) with ESMTP id A48568FC16;
	Wed,  4 Nov 2009 19:59:04 +0000 (UTC)
Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua
	[10.1.1.148])
	by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id nA4Jwvb2056757
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 4 Nov 2009 21:58:57 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1])
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id
	nA4JwvAH041225; Wed, 4 Nov 2009 21:58:57 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
Received: (from kostik@localhost)
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id nA4Jwvuf041224; 
	Wed, 4 Nov 2009 21:58:57 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to
	kostikbel@gmail.com using -f
Date: Wed, 4 Nov 2009 21:58:57 +0200
From: Kostik Belousov 
To: Attilio Rao 
Message-ID: <20091104195857.GJ2331@deviant.kiev.zoral.com.ua>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<20091104055811.GY1293@hoeg.nl>
	<3bbf2fe10911040449j5938ca7eqca5829ceced66f48@mail.gmail.com>
	<20091104144315.GH2331@deviant.kiev.zoral.com.ua>
	<3bbf2fe10911040806r37f00a8dq2aa3ccd1e5c7b241@mail.gmail.com>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="+Hr//EUsa8//ouuB"
Content-Disposition: inline
In-Reply-To: <3bbf2fe10911040806r37f00a8dq2aa3ccd1e5c7b241@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua
X-Virus-Status: Clean
X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
	autolearn=ham version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on
	skuns.kiev.zoral.com.ua
Cc: svn-src-head@freebsd.org, Ed Schouten ,
	svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 19:59:05 -0000


--+Hr//EUsa8//ouuB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 04, 2009 at 05:06:36PM +0100, Attilio Rao wrote:
> 2009/11/4, Kostik Belousov :
> > On Wed, Nov 04, 2009 at 01:49:41PM +0100, Attilio Rao wrote:
> > > 2009/11/4 Ed Schouten :
> > > > Hi Attilio,
> > > >
> > > > * Attilio Rao  wrote:
> > > >> Opteron rev E family of processor expose a bug where, in very rare
> > > >> ocassions, memory barriers semantic is not honoured by the hardware
> > > >> itself. As a result, some random breakage can happen in uninvestig=
able
> > > >> ways (for further explanation see at the content of the commit its=
elf).
> > > >
> > > > Ooh. Sounds like an interesting bug.
> > > >
> > > > The bug doesn't manifest itself on UP, right? If so, maybe we shoul=
d add
> > > > some very short instructions to the warning on how to disable SMP.
> > >
> > > Due to the semantic of the bug, I think that it can manifest itself on
> > > UP and a memory barrier failing on UP means that PREEMPTION can blow
> > > up. Considering this I wouldn't suggest anything different between the
> > > UP vs SMP case.
> >
> > CPU is always self-consistent, isn't it ?
> >
> > Also, I very much dislike idea of making our kernel a collection of
> > references to the man pages and URLs, esp. when URL point to the
> > resource not controlled by the project.
>=20
> Ok, as long as you are in favor of stripping the URL, I'm fine with it.

I like des' proposal to have kernel config option to enable compile-time
workaround. This is how freebsd handled cyrix CPUs and Pentium f0 0f bug.

--+Hr//EUsa8//ouuB
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkrx3QAACgkQC3+MBN1Mb4hrrQCgrqEgeU0rfaE5IKEsI982uVO3
p3sAnRUUTmmnXfoq/6iaVd7Mb73ntrda
=0ujk
-----END PGP SIGNATURE-----

--+Hr//EUsa8//ouuB--

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 20:19:21 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A2D4A1065676;
	Wed,  4 Nov 2009 20:19:21 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 922D48FC20;
	Wed,  4 Nov 2009 20:19:21 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4KJL5o045224;
	Wed, 4 Nov 2009 20:19:21 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4KJLYw045222;
	Wed, 4 Nov 2009 20:19:21 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911042019.nA4KJLYw045222@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 4 Nov 2009 20:19:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198923 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 20:19:21 -0000

Author: yongari
Date: Wed Nov  4 20:19:21 2009
New Revision: 198923
URL: http://svn.freebsd.org/changeset/base/198923

Log:
  Use correct dma tag for jumbo buffer.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Wed Nov  4 19:01:35 2009	(r198922)
+++ head/sys/dev/bge/if_bge.c	Wed Nov  4 20:19:21 2009	(r198923)
@@ -1031,7 +1031,7 @@ bge_newbuf_jumbo(struct bge_softc *sc, i
 		panic("%s: %d segments\n", __func__, nsegs);
 	}
 
-	bus_dmamap_sync(sc->bge_cdata.bge_mtag,
+	bus_dmamap_sync(sc->bge_cdata.bge_mtag_jumbo,
 	    sc->bge_cdata.bge_rx_jumbo_dmamap[i],
 	    BUS_DMASYNC_PREREAD);
 

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 20:40:38 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BD816106568D;
	Wed,  4 Nov 2009 20:40:38 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AC66F8FC08;
	Wed,  4 Nov 2009 20:40:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4KecWr045812;
	Wed, 4 Nov 2009 20:40:38 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4KecVN045810;
	Wed, 4 Nov 2009 20:40:38 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911042040.nA4KecVN045810@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 4 Nov 2009 20:40:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198924 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 20:40:38 -0000

Author: yongari
Date: Wed Nov  4 20:40:38 2009
New Revision: 198924
URL: http://svn.freebsd.org/changeset/base/198924

Log:
  Covert bge_newbuf_std to use bus_dmamap_load_mbuf_sg(9). Note,
  bge_newbuf_std still has a bug for handling dma map load failure
  under high network load. Just reusing mbuf is not enough as driver
  already unloaded the dma map of the mbuf. Graceful recovery needs
  more work.
  Ideally we can just update dma address part of a Rx descriptor
  because the controller never overwrite the Rx descriptor. This
  requires some Rx initialization code changes and it would be done
  later after fixing other incorrect bus_dma(9) usages.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Wed Nov  4 20:19:21 2009	(r198923)
+++ head/sys/dev/bge/if_bge.c	Wed Nov  4 20:40:38 2009	(r198924)
@@ -916,8 +916,8 @@ bge_newbuf_std(struct bge_softc *sc, int
 {
 	struct mbuf *m_new = NULL;
 	struct bge_rx_bd *r;
-	struct bge_dmamap_arg ctx;
-	int error;
+	bus_dma_segment_t segs[1];
+	int error, nsegs;
 
 	if (m == NULL) {
 		m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
@@ -932,24 +932,21 @@ bge_newbuf_std(struct bge_softc *sc, int
 
 	if ((sc->bge_flags & BGE_FLAG_RX_ALIGNBUG) == 0)
 		m_adj(m_new, ETHER_ALIGN);
-	sc->bge_cdata.bge_rx_std_chain[i] = m_new;
-	r = &sc->bge_ldata.bge_rx_std_ring[i];
-	ctx.bge_maxsegs = 1;
-	ctx.sc = sc;
-	error = bus_dmamap_load(sc->bge_cdata.bge_mtag,
-	    sc->bge_cdata.bge_rx_std_dmamap[i], mtod(m_new, void *),
-	    m_new->m_len, bge_dma_map_addr, &ctx, BUS_DMA_NOWAIT);
-	if (error || ctx.bge_maxsegs == 0) {
+	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_mtag,
+	    sc->bge_cdata.bge_rx_std_dmamap[i], m_new, segs, &nsegs, 0);
+	if (error != 0) {
 		if (m == NULL) {
 			sc->bge_cdata.bge_rx_std_chain[i] = NULL;
 			m_freem(m_new);
 		}
-		return (ENOMEM);
+		return (error);
 	}
-	r->bge_addr.bge_addr_lo = BGE_ADDR_LO(ctx.bge_busaddr);
-	r->bge_addr.bge_addr_hi = BGE_ADDR_HI(ctx.bge_busaddr);
+	sc->bge_cdata.bge_rx_std_chain[i] = m_new;
+	r = &sc->bge_ldata.bge_rx_std_ring[i];
+	r->bge_addr.bge_addr_lo = BGE_ADDR_LO(segs[0].ds_addr);
+	r->bge_addr.bge_addr_hi = BGE_ADDR_HI(segs[0].ds_addr);
 	r->bge_flags = BGE_RXBDFLAG_END;
-	r->bge_len = m_new->m_len;
+	r->bge_len = segs[0].ds_len;
 	r->bge_idx = i;
 
 	bus_dmamap_sync(sc->bge_cdata.bge_mtag,

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 20:57:52 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A562F1065676;
	Wed,  4 Nov 2009 20:57:52 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 936F48FC16;
	Wed,  4 Nov 2009 20:57:52 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4KvqRU046417;
	Wed, 4 Nov 2009 20:57:52 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4KvqSo046414;
	Wed, 4 Nov 2009 20:57:52 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911042057.nA4KvqSo046414@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 4 Nov 2009 20:57:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198927 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 20:57:52 -0000

Author: yongari
Date: Wed Nov  4 20:57:52 2009
New Revision: 198927
URL: http://svn.freebsd.org/changeset/base/198927

Log:
  Remove common DMA tag used for TX/RX mbufs and create Tx DMA tag
  and Rx DMA tag separately. Previously it used a common mbuf DMA tag
  for both Tx and Rx path but Rx buffer(standard ring case) should
  have a single DMA segment and maximum buffer size of the segment
  should be less than or equal to MCLBYTES. This change also make it
  possible to add TSO with minor changes.

Modified:
  head/sys/dev/bge/if_bge.c
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Wed Nov  4 20:53:35 2009	(r198926)
+++ head/sys/dev/bge/if_bge.c	Wed Nov  4 20:57:52 2009	(r198927)
@@ -932,7 +932,7 @@ bge_newbuf_std(struct bge_softc *sc, int
 
 	if ((sc->bge_flags & BGE_FLAG_RX_ALIGNBUG) == 0)
 		m_adj(m_new, ETHER_ALIGN);
-	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_mtag,
+	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_rx_mtag,
 	    sc->bge_cdata.bge_rx_std_dmamap[i], m_new, segs, &nsegs, 0);
 	if (error != 0) {
 		if (m == NULL) {
@@ -949,7 +949,7 @@ bge_newbuf_std(struct bge_softc *sc, int
 	r->bge_len = segs[0].ds_len;
 	r->bge_idx = i;
 
-	bus_dmamap_sync(sc->bge_cdata.bge_mtag,
+	bus_dmamap_sync(sc->bge_cdata.bge_rx_mtag,
 	    sc->bge_cdata.bge_rx_std_dmamap[i],
 	    BUS_DMASYNC_PREREAD);
 
@@ -1068,10 +1068,10 @@ bge_free_rx_ring_std(struct bge_softc *s
 
 	for (i = 0; i < BGE_STD_RX_RING_CNT; i++) {
 		if (sc->bge_cdata.bge_rx_std_chain[i] != NULL) {
-			bus_dmamap_sync(sc->bge_cdata.bge_mtag,
+			bus_dmamap_sync(sc->bge_cdata.bge_rx_mtag,
 			    sc->bge_cdata.bge_rx_std_dmamap[i],
 			    BUS_DMASYNC_POSTREAD);
-			bus_dmamap_unload(sc->bge_cdata.bge_mtag,
+			bus_dmamap_unload(sc->bge_cdata.bge_rx_mtag,
 			    sc->bge_cdata.bge_rx_std_dmamap[i]);
 			m_freem(sc->bge_cdata.bge_rx_std_chain[i]);
 			sc->bge_cdata.bge_rx_std_chain[i] = NULL;
@@ -1138,10 +1138,10 @@ bge_free_tx_ring(struct bge_softc *sc)
 
 	for (i = 0; i < BGE_TX_RING_CNT; i++) {
 		if (sc->bge_cdata.bge_tx_chain[i] != NULL) {
-			bus_dmamap_sync(sc->bge_cdata.bge_mtag,
+			bus_dmamap_sync(sc->bge_cdata.bge_tx_mtag,
 			    sc->bge_cdata.bge_tx_dmamap[i],
 			    BUS_DMASYNC_POSTWRITE);
-			bus_dmamap_unload(sc->bge_cdata.bge_mtag,
+			bus_dmamap_unload(sc->bge_cdata.bge_tx_mtag,
 			    sc->bge_cdata.bge_tx_dmamap[i]);
 			m_freem(sc->bge_cdata.bge_tx_chain[i]);
 			sc->bge_cdata.bge_tx_chain[i] = NULL;
@@ -1976,7 +1976,7 @@ bge_dma_free(struct bge_softc *sc)
 	/* Destroy DMA maps for RX buffers. */
 	for (i = 0; i < BGE_STD_RX_RING_CNT; i++) {
 		if (sc->bge_cdata.bge_rx_std_dmamap[i])
-			bus_dmamap_destroy(sc->bge_cdata.bge_mtag,
+			bus_dmamap_destroy(sc->bge_cdata.bge_rx_mtag,
 			    sc->bge_cdata.bge_rx_std_dmamap[i]);
 	}
 
@@ -1990,12 +1990,14 @@ bge_dma_free(struct bge_softc *sc)
 	/* Destroy DMA maps for TX buffers. */
 	for (i = 0; i < BGE_TX_RING_CNT; i++) {
 		if (sc->bge_cdata.bge_tx_dmamap[i])
-			bus_dmamap_destroy(sc->bge_cdata.bge_mtag,
+			bus_dmamap_destroy(sc->bge_cdata.bge_tx_mtag,
 			    sc->bge_cdata.bge_tx_dmamap[i]);
 	}
 
-	if (sc->bge_cdata.bge_mtag)
-		bus_dma_tag_destroy(sc->bge_cdata.bge_mtag);
+	if (sc->bge_cdata.bge_rx_mtag)
+		bus_dma_tag_destroy(sc->bge_cdata.bge_rx_mtag);
+	if (sc->bge_cdata.bge_tx_mtag)
+		bus_dma_tag_destroy(sc->bge_cdata.bge_tx_mtag);
 
 
 	/* Destroy standard RX ring. */
@@ -2106,21 +2108,33 @@ bge_dma_alloc(device_t dev)
 	}
 
 	/*
-	 * Create tag for mbufs.
+	 * Create tag for Tx mbufs.
 	 */
 	error = bus_dma_tag_create(sc->bge_cdata.bge_parent_tag, 1,
 	    0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL,
 	    NULL, MCLBYTES * BGE_NSEG_NEW, BGE_NSEG_NEW, MCLBYTES,
-	    BUS_DMA_ALLOCNOW, NULL, NULL, &sc->bge_cdata.bge_mtag);
+	    BUS_DMA_ALLOCNOW, NULL, NULL, &sc->bge_cdata.bge_tx_mtag);
 
 	if (error) {
-		device_printf(sc->bge_dev, "could not allocate dma tag\n");
+		device_printf(sc->bge_dev, "could not allocate TX dma tag\n");
+		return (ENOMEM);
+	}
+
+	/*
+	 * Create tag for Rx mbufs.
+	 */
+	error = bus_dma_tag_create(sc->bge_cdata.bge_parent_tag, 1, 0,
+	    BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, 1,
+	    MCLBYTES, BUS_DMA_ALLOCNOW, NULL, NULL, &sc->bge_cdata.bge_rx_mtag);
+
+	if (error) {
+		device_printf(sc->bge_dev, "could not allocate RX dma tag\n");
 		return (ENOMEM);
 	}
 
 	/* Create DMA maps for RX buffers. */
 	for (i = 0; i < BGE_STD_RX_RING_CNT; i++) {
-		error = bus_dmamap_create(sc->bge_cdata.bge_mtag, 0,
+		error = bus_dmamap_create(sc->bge_cdata.bge_rx_mtag, 0,
 			    &sc->bge_cdata.bge_rx_std_dmamap[i]);
 		if (error) {
 			device_printf(sc->bge_dev,
@@ -2131,11 +2145,11 @@ bge_dma_alloc(device_t dev)
 
 	/* Create DMA maps for TX buffers. */
 	for (i = 0; i < BGE_TX_RING_CNT; i++) {
-		error = bus_dmamap_create(sc->bge_cdata.bge_mtag, 0,
+		error = bus_dmamap_create(sc->bge_cdata.bge_tx_mtag, 0,
 			    &sc->bge_cdata.bge_tx_dmamap[i]);
 		if (error) {
 			device_printf(sc->bge_dev,
-			    "can't create DMA map for RX\n");
+			    "can't create DMA map for TX\n");
 			return (ENOMEM);
 		}
 	}
@@ -3173,10 +3187,10 @@ bge_rxeof(struct bge_softc *sc)
 			}
 		} else {
 			BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT);
-			bus_dmamap_sync(sc->bge_cdata.bge_mtag,
+			bus_dmamap_sync(sc->bge_cdata.bge_rx_mtag,
 			    sc->bge_cdata.bge_rx_std_dmamap[rxidx],
 			    BUS_DMASYNC_POSTREAD);
-			bus_dmamap_unload(sc->bge_cdata.bge_mtag,
+			bus_dmamap_unload(sc->bge_cdata.bge_rx_mtag,
 			    sc->bge_cdata.bge_rx_std_dmamap[rxidx]);
 			m = sc->bge_cdata.bge_rx_std_chain[rxidx];
 			sc->bge_cdata.bge_rx_std_chain[rxidx] = NULL;
@@ -3306,10 +3320,10 @@ bge_txeof(struct bge_softc *sc)
 		if (cur_tx->bge_flags & BGE_TXBDFLAG_END)
 			ifp->if_opackets++;
 		if (sc->bge_cdata.bge_tx_chain[idx] != NULL) {
-			bus_dmamap_sync(sc->bge_cdata.bge_mtag,
+			bus_dmamap_sync(sc->bge_cdata.bge_tx_mtag,
 			    sc->bge_cdata.bge_tx_dmamap[idx],
 			    BUS_DMASYNC_POSTWRITE);
-			bus_dmamap_unload(sc->bge_cdata.bge_mtag,
+			bus_dmamap_unload(sc->bge_cdata.bge_tx_mtag,
 			    sc->bge_cdata.bge_tx_dmamap[idx]);
 			m_freem(sc->bge_cdata.bge_tx_chain[idx]);
 			sc->bge_cdata.bge_tx_chain[idx] = NULL;
@@ -3642,7 +3656,7 @@ bge_encap(struct bge_softc *sc, struct m
 	}
 
 	map = sc->bge_cdata.bge_tx_dmamap[idx];
-	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_mtag, map, m, segs,
+	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_tx_mtag, map, m, segs,
 	    &nsegs, BUS_DMA_NOWAIT);
 	if (error == EFBIG) {
 		m = m_collapse(m, M_DONTWAIT, BGE_NSEG_NEW);
@@ -3652,8 +3666,8 @@ bge_encap(struct bge_softc *sc, struct m
 			return (ENOBUFS);
 		}
 		*m_head = m;
-		error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_mtag, map, m,
-		    segs, &nsegs, BUS_DMA_NOWAIT);
+		error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_tx_mtag, map,
+		    m, segs, &nsegs, BUS_DMA_NOWAIT);
 		if (error) {
 			m_freem(m);
 			*m_head = NULL;
@@ -3667,11 +3681,11 @@ bge_encap(struct bge_softc *sc, struct m
 	 * of the end of the ring.
 	 */
 	if (nsegs > (BGE_TX_RING_CNT - sc->bge_txcnt - 16)) {
-		bus_dmamap_unload(sc->bge_cdata.bge_mtag, map);
+		bus_dmamap_unload(sc->bge_cdata.bge_tx_mtag, map);
 		return (ENOBUFS);
 	}
 
-	bus_dmamap_sync(sc->bge_cdata.bge_mtag, map, BUS_DMASYNC_PREWRITE);
+	bus_dmamap_sync(sc->bge_cdata.bge_tx_mtag, map, BUS_DMASYNC_PREWRITE);
 
 	for (i = 0; ; i++) {
 		d = &sc->bge_ldata.bge_tx_ring[idx];

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h	Wed Nov  4 20:53:35 2009	(r198926)
+++ head/sys/dev/bge/if_bgereg.h	Wed Nov  4 20:57:52 2009	(r198927)
@@ -2543,8 +2543,9 @@ struct bge_chain_data {
 	bus_dma_tag_t		bge_tx_ring_tag;
 	bus_dma_tag_t		bge_status_tag;
 	bus_dma_tag_t		bge_stats_tag;
-	bus_dma_tag_t		bge_mtag;	/* mbuf mapping tag */
-	bus_dma_tag_t		bge_mtag_jumbo;	/* mbuf mapping tag */
+	bus_dma_tag_t		bge_rx_mtag;	/* Rx mbuf mapping tag */
+	bus_dma_tag_t		bge_tx_mtag;	/* Tx mbuf mapping tag */
+	bus_dma_tag_t		bge_mtag_jumbo;	/* Jumbo mbuf mapping tag */
 	bus_dmamap_t		bge_tx_dmamap[BGE_TX_RING_CNT];
 	bus_dmamap_t		bge_rx_std_dmamap[BGE_STD_RX_RING_CNT];
 	bus_dmamap_t		bge_rx_jumbo_dmamap[BGE_JUMBO_RX_RING_CNT];

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 21:06:54 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C0F49106566C;
	Wed,  4 Nov 2009 21:06:54 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 967D48FC0C;
	Wed,  4 Nov 2009 21:06:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4L6sZt046694;
	Wed, 4 Nov 2009 21:06:54 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4L6s43046692;
	Wed, 4 Nov 2009 21:06:54 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911042106.nA4L6s43046692@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 4 Nov 2009 21:06:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198928 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 21:06:54 -0000

Author: yongari
Date: Wed Nov  4 21:06:54 2009
New Revision: 198928
URL: http://svn.freebsd.org/changeset/base/198928

Log:
  Make bge_newbuf_std()/bge_newbuf_jumbo() returns actual error code
  for buffer allocation. If driver know we are out of Rx buffers let
  controller stop. This should fix panic when interface is run even
  if it had no configured Rx buffers.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Wed Nov  4 20:57:52 2009	(r198927)
+++ head/sys/dev/bge/if_bge.c	Wed Nov  4 21:06:54 2009	(r198928)
@@ -1044,11 +1044,11 @@ bge_newbuf_jumbo(struct bge_softc *sc, i
 static int
 bge_init_rx_ring_std(struct bge_softc *sc)
 {
-	int i;
+	int error, i;
 
 	for (i = 0; i < BGE_SSLOTS; i++) {
-		if (bge_newbuf_std(sc, i, NULL) == ENOBUFS)
-			return (ENOBUFS);
+		if ((error = bge_newbuf_std(sc, i, NULL)) != 0)
+			return (error);
 	};
 
 	bus_dmamap_sync(sc->bge_cdata.bge_rx_std_ring_tag,
@@ -1085,11 +1085,11 @@ static int
 bge_init_rx_ring_jumbo(struct bge_softc *sc)
 {
 	struct bge_rcb *rcb;
-	int i;
+	int error, i;
 
 	for (i = 0; i < BGE_JUMBO_RX_RING_CNT; i++) {
-		if (bge_newbuf_jumbo(sc, i, NULL) == ENOBUFS)
-			return (ENOBUFS);
+		if ((error = bge_newbuf_jumbo(sc, i, NULL)) != 0)
+			return (error);
 	};
 
 	bus_dmamap_sync(sc->bge_cdata.bge_rx_jumbo_ring_tag,
@@ -3179,8 +3179,7 @@ bge_rxeof(struct bge_softc *sc)
 				bge_newbuf_jumbo(sc, sc->bge_jumbo, m);
 				continue;
 			}
-			if (bge_newbuf_jumbo(sc,
-			    sc->bge_jumbo, NULL) == ENOBUFS) {
+			if (bge_newbuf_jumbo(sc, sc->bge_jumbo, NULL) != 0) {
 				ifp->if_ierrors++;
 				bge_newbuf_jumbo(sc, sc->bge_jumbo, m);
 				continue;
@@ -3200,8 +3199,7 @@ bge_rxeof(struct bge_softc *sc)
 				bge_newbuf_std(sc, sc->bge_std, m);
 				continue;
 			}
-			if (bge_newbuf_std(sc, sc->bge_std,
-			    NULL) == ENOBUFS) {
+			if (bge_newbuf_std(sc, sc->bge_std, NULL) != 0) {
 				ifp->if_ierrors++;
 				bge_newbuf_std(sc, sc->bge_std, m);
 				continue;
@@ -3897,7 +3895,11 @@ bge_init_locked(struct bge_softc *sc)
 	bge_setvlan(sc);
 
 	/* Init RX ring. */
-	bge_init_rx_ring_std(sc);
+	if (bge_init_rx_ring_std(sc) != 0) {
+		device_printf(sc->bge_dev, "no memory for std Rx buffers.\n");
+		bge_stop(sc);
+		return;
+	}
 
 	/*
 	 * Workaround for a bug in 5705 ASIC rev A0. Poll the NIC's
@@ -3918,8 +3920,13 @@ bge_init_locked(struct bge_softc *sc)
 	}
 
 	/* Init jumbo RX ring. */
-	if (ifp->if_mtu > (ETHERMTU + ETHER_HDR_LEN + ETHER_CRC_LEN))
-		bge_init_rx_ring_jumbo(sc);
+	if (ifp->if_mtu > (ETHERMTU + ETHER_HDR_LEN + ETHER_CRC_LEN)) {
+		if (bge_init_rx_ring_jumbo(sc) != 0) {
+			device_printf(sc->bge_dev, "no memory for std Rx buffers.\n");
+			bge_stop(sc);
+			return;
+		}
+	}
 
 	/* Init our RX return ring index. */
 	sc->bge_rx_saved_considx = 0;

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 21:12:34 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 04C2F1065698;
	Wed,  4 Nov 2009 21:12:34 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E84518FC30;
	Wed,  4 Nov 2009 21:12:33 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4LCXdR046883;
	Wed, 4 Nov 2009 21:12:33 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4LCXla046881;
	Wed, 4 Nov 2009 21:12:33 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200911042112.nA4LCXla046881@svn.freebsd.org>
From: Xin LI 
Date: Wed, 4 Nov 2009 21:12:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198929 - head/share/examples/ses/srcs
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 21:12:34 -0000

Author: delphij
Date: Wed Nov  4 21:12:33 2009
New Revision: 198929
URL: http://svn.freebsd.org/changeset/base/198929

Log:
  Include string.h for prototype of strcmp().

Modified:
  head/share/examples/ses/srcs/getencstat.c

Modified: head/share/examples/ses/srcs/getencstat.c
==============================================================================
--- head/share/examples/ses/srcs/getencstat.c	Wed Nov  4 21:06:54 2009	(r198928)
+++ head/share/examples/ses/srcs/getencstat.c	Wed Nov  4 21:12:33 2009	(r198929)
@@ -35,6 +35,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include SESINC

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 22:39:18 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CE8DA1065676;
	Wed,  4 Nov 2009 22:39:18 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BD7938FC1F;
	Wed,  4 Nov 2009 22:39:18 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4MdIXX049173;
	Wed, 4 Nov 2009 22:39:18 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4MdILx049170;
	Wed, 4 Nov 2009 22:39:18 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911042239.nA4MdILx049170@svn.freebsd.org>
From: Jung-uk Kim 
Date: Wed, 4 Nov 2009 22:39:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198931 - in head/sys/amd64: acpica amd64
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 22:39:19 -0000

Author: jkim
Date: Wed Nov  4 22:39:18 2009
New Revision: 198931
URL: http://svn.freebsd.org/changeset/base/198931

Log:
  Tweak memory allocation for amd64 suspend/resume CPU context.

Modified:
  head/sys/amd64/acpica/acpi_wakeup.c
  head/sys/amd64/amd64/mp_machdep.c

Modified: head/sys/amd64/acpica/acpi_wakeup.c
==============================================================================
--- head/sys/amd64/acpica/acpi_wakeup.c	Wed Nov  4 21:28:50 2009	(r198930)
+++ head/sys/amd64/acpica/acpi_wakeup.c	Wed Nov  4 22:39:18 2009	(r198931)
@@ -65,9 +65,9 @@ extern int		acpi_resume_beep;
 extern int		acpi_reset_video;
 
 #ifdef SMP
-extern struct xpcb	*stopxpcbs;
+extern struct xpcb	**stopxpcbs;
 #else
-static struct xpcb	*stopxpcbs;
+static struct xpcb	**stopxpcbs;
 #endif
 
 int			acpi_restorecpu(struct xpcb *, vm_offset_t);
@@ -104,10 +104,10 @@ acpi_wakeup_ap(struct acpi_softc *sc, in
 	int		apic_id = cpu_apic_ids[cpu];
 	int		ms;
 
-	WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, &stopxpcbs[cpu]);
-	WAKECODE_FIXUP(wakeup_gdt, uint16_t, stopxpcbs[cpu].xpcb_gdt.rd_limit);
+	WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, stopxpcbs[cpu]);
+	WAKECODE_FIXUP(wakeup_gdt, uint16_t, stopxpcbs[cpu]->xpcb_gdt.rd_limit);
 	WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t,
-	    stopxpcbs[cpu].xpcb_gdt.rd_base);
+	    stopxpcbs[cpu]->xpcb_gdt.rd_base);
 	WAKECODE_FIXUP(wakeup_cpu, int, cpu);
 
 	/* do an INIT IPI: assert RESET */
@@ -245,8 +245,8 @@ acpi_sleep_machdep(struct acpi_softc *sc
 	cr3 = rcr3();
 	load_cr3(KPML4phys);
 
-	stopfpu = &stopxpcbs[0].xpcb_pcb.pcb_save;
-	if (acpi_savecpu(&stopxpcbs[0])) {
+	stopfpu = &stopxpcbs[0]->xpcb_pcb.pcb_save;
+	if (acpi_savecpu(stopxpcbs[0])) {
 		fpugetregs(curthread, stopfpu);
 
 #ifdef SMP
@@ -261,11 +261,11 @@ acpi_sleep_machdep(struct acpi_softc *sc
 		WAKECODE_FIXUP(resume_beep, uint8_t, (acpi_resume_beep != 0));
 		WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0));
 
-		WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, &stopxpcbs[0]);
+		WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, stopxpcbs[0]);
 		WAKECODE_FIXUP(wakeup_gdt, uint16_t,
-		    stopxpcbs[0].xpcb_gdt.rd_limit);
+		    stopxpcbs[0]->xpcb_gdt.rd_limit);
 		WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t,
-		    stopxpcbs[0].xpcb_gdt.rd_base);
+		    stopxpcbs[0]->xpcb_gdt.rd_base);
 		WAKECODE_FIXUP(wakeup_cpu, int, 0);
 
 		/* Call ACPICA to enter the desired sleep state */
@@ -320,6 +320,7 @@ static void *
 acpi_alloc_wakeup_handler(void)
 {
 	void		*wakeaddr;
+	int		i;
 
 	/*
 	 * Specify the region for our wakeup code.  We want it in the low 1 MB
@@ -334,12 +335,9 @@ acpi_alloc_wakeup_handler(void)
 		printf("%s: can't alloc wake memory\n", __func__);
 		return (NULL);
 	}
-	stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_NOWAIT);
-	if (stopxpcbs == NULL) {
-		contigfree(wakeaddr, 4 * PAGE_SIZE, M_DEVBUF);
-		printf("%s: can't alloc CPU state memory\n", __func__);
-		return (NULL);
-	}
+	stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_WAITOK);
+	for (i = 0; i < mp_ncpus; i++)
+		stopxpcbs[i] = malloc(sizeof(**stopxpcbs), M_DEVBUF, M_WAITOK);
 
 	return (wakeaddr);
 }

Modified: head/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- head/sys/amd64/amd64/mp_machdep.c	Wed Nov  4 21:28:50 2009	(r198930)
+++ head/sys/amd64/amd64/mp_machdep.c	Wed Nov  4 22:39:18 2009	(r198931)
@@ -105,7 +105,7 @@ extern pt_entry_t *KPTphys;
 extern pt_entry_t *SMPpt;
 
 struct pcb stoppcbs[MAXCPU];
-struct xpcb *stopxpcbs = NULL;
+struct xpcb **stopxpcbs = NULL;
 
 /* Variables needed for SMP tlb shootdown. */
 vm_offset_t smp_tlb_addr1;
@@ -1256,8 +1256,8 @@ cpususpend_handler(void)
 
 	rf = intr_disable();
 	cr3 = rcr3();
-	stopfpu = &stopxpcbs[cpu].xpcb_pcb.pcb_save;
-	if (savectx2(&stopxpcbs[cpu])) {
+	stopfpu = &stopxpcbs[cpu]->xpcb_pcb.pcb_save;
+	if (savectx2(stopxpcbs[cpu])) {
 		fpugetregs(curthread, stopfpu);
 		wbinvd();
 		atomic_set_int(&stopped_cpus, cpumask);

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 23:03:19 2009
Return-Path: 
Delivered-To: svn-src-head@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 71D8D106568B;
	Wed,  4 Nov 2009 23:03:19 +0000 (UTC) (envelope-from imp@bsdimp.com)
Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85])
	by mx1.freebsd.org (Postfix) with ESMTP id 3156B8FC16;
	Wed,  4 Nov 2009 23:03:19 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
	by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id nA4MvxS7053033;
	Wed, 4 Nov 2009 15:57:59 -0700 (MST) (envelope-from imp@bsdimp.com)
Date: Wed, 04 Nov 2009 15:57:59 -0700 (MST)
Message-Id: <20091104.155759.-545558145.imp@bsdimp.com>
To: ed@80386.nl
From: "M. Warner Losh" 
In-Reply-To: <20091104055811.GY1293@hoeg.nl>
References: <200911040132.nA41WxtQ012750@svn.freebsd.org>
	<20091104055811.GY1293@hoeg.nl>
X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Cc: attilio@FreeBSD.org, svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org,
	src-committers@FreeBSD.org
Subject: Re: svn commit: r198868 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 23:03:19 -0000

In message: <20091104055811.GY1293@hoeg.nl>
            Ed Schouten  writes:
: Hi Attilio,
: 
: * Attilio Rao  wrote:
: > Opteron rev E family of processor expose a bug where, in very rare
: > ocassions, memory barriers semantic is not honoured by the hardware
: > itself. As a result, some random breakage can happen in uninvestigable
: > ways (for further explanation see at the content of the commit itself).
: 
: Ooh. Sounds like an interesting bug.
: 
: The bug doesn't manifest itself on UP, right? If so, maybe we should add
: some very short instructions to the warning on how to disable SMP.

Or better yet: disable it unless specifically enabled...

Warner

From owner-svn-src-head@FreeBSD.ORG  Wed Nov  4 23:36:23 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8E0D61065698;
	Wed,  4 Nov 2009 23:36:23 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7C3668FC18;
	Wed,  4 Nov 2009 23:36:23 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4NaNnD050451;
	Wed, 4 Nov 2009 23:36:23 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA4NaN8Q050439;
	Wed, 4 Nov 2009 23:36:23 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200911042336.nA4NaN8Q050439@svn.freebsd.org>
From: Xin LI 
Date: Wed, 4 Nov 2009 23:36:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198934 - head/share/examples/ses/srcs
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 04 Nov 2009 23:36:23 -0000

Author: delphij
Date: Wed Nov  4 23:36:23 2009
New Revision: 198934
URL: http://svn.freebsd.org/changeset/base/198934

Log:
  Cleanup code to make it WARNS=6 clean:
  
   - ANSIfy prototypes;
   - Add __unused for parameters that is not being currently used;
   - Add a header for subrountines being called from other modules.
  
  Reviewed by:	mjacob

Added:
  head/share/examples/ses/srcs/eltsub.h   (contents, props changed)
Modified:
  head/share/examples/ses/srcs/chpmon.c
  head/share/examples/ses/srcs/eltsub.c
  head/share/examples/ses/srcs/getencstat.c
  head/share/examples/ses/srcs/getnobj.c
  head/share/examples/ses/srcs/getobjmap.c
  head/share/examples/ses/srcs/getobjstat.c
  head/share/examples/ses/srcs/inienc.c
  head/share/examples/ses/srcs/sesd.c
  head/share/examples/ses/srcs/setencstat.c
  head/share/examples/ses/srcs/setobjstat.c

Modified: head/share/examples/ses/srcs/chpmon.c
==============================================================================
--- head/share/examples/ses/srcs/chpmon.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/chpmon.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -47,9 +47,7 @@
 #define	BADSTAT	\
 	(SES_ENCSTAT_UNRECOV|SES_ENCSTAT_CRITICAL|SES_ENCSTAT_NONCRITICAL)
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	int fd, delay, dev;
 	ses_encstat stat, *carray;

Modified: head/share/examples/ses/srcs/eltsub.c
==============================================================================
--- head/share/examples/ses/srcs/eltsub.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/eltsub.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -38,9 +38,10 @@
 #include 
 #include SESINC
 
+#include "eltsub.h"
+
 char *
-geteltnm(type)
-	int type;
+geteltnm(int type)
 {
 	static char rbuf[132];
 
@@ -116,8 +117,7 @@ geteltnm(type)
 }
 
 static char *
-scode2ascii(code)
-	u_char code;
+scode2ascii(u_char code)
 {
 	static char rbuf[32];
 	switch (code & 0xf) {
@@ -154,9 +154,7 @@ scode2ascii(code)
 
 
 char *
-stat2ascii(eletype, cstat)
-	int eletype;
-	u_char *cstat;
+stat2ascii(int eletype __unused, u_char *cstat)
 {
 	static char ebuf[256], *scode;
 

Added: head/share/examples/ses/srcs/eltsub.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/examples/ses/srcs/eltsub.h	Wed Nov  4 23:36:23 2009	(r198934)
@@ -0,0 +1,36 @@
+/* $FreeBSD$ */
+/*
+ * Copyright (c) 2000 by Matthew Jacob
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions, and the following disclaimer,
+ *    without modification, immediately at the beginning of the file.
+ * 2. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * the GNU Public License ("GPL").
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * Matthew Jacob
+ * Feral Software
+ * mjacob@feral.com
+ */
+
+char * geteltnm(int);
+char * stat2ascii(int, u_char *);

Modified: head/share/examples/ses/srcs/getencstat.c
==============================================================================
--- head/share/examples/ses/srcs/getencstat.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/getencstat.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -40,13 +40,10 @@
 #include 
 #include SESINC
 
-extern char *geteltnm __P((int));
-extern char *stat2ascii __P((int, u_char *));
+#include "eltsub.h"
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	ses_object *objp;
 	ses_objstat ob;

Modified: head/share/examples/ses/srcs/getnobj.c
==============================================================================
--- head/share/examples/ses/srcs/getnobj.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/getnobj.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -41,9 +41,7 @@
 #include SESINC
 
 int
-main(argc, argv)
-	int argc;
-	char **argv;
+main(int argc, char **argv)
 {
 	unsigned int nobj;
 	int fd;

Modified: head/share/examples/ses/srcs/getobjmap.c
==============================================================================
--- head/share/examples/ses/srcs/getobjmap.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/getobjmap.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -39,12 +39,10 @@
 #include 
 #include SESINC
 
-extern char *geteltnm __P((int));
+#include "eltsub.h"
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	ses_object *objp;
 	int nobj, fd, i;

Modified: head/share/examples/ses/srcs/getobjstat.c
==============================================================================
--- head/share/examples/ses/srcs/getobjstat.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/getobjstat.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -39,9 +39,7 @@
 #include SESINC
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	int fd;
 	int i;

Modified: head/share/examples/ses/srcs/inienc.c
==============================================================================
--- head/share/examples/ses/srcs/inienc.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/inienc.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -40,9 +40,7 @@
 #include SESINC
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	int fd;
 

Modified: head/share/examples/ses/srcs/sesd.c
==============================================================================
--- head/share/examples/ses/srcs/sesd.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/sesd.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -49,13 +49,11 @@
  */
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
-	static char *usage =
+	static const char *usage =
 	    "usage: %s [ -d ] [ -t pollinterval ] device [ device ]\n";
-	int fd, polltime, dev, devbase, nodaemon, bpri;
+	int fd, polltime, dev, devbase, nodaemon;
 	ses_encstat stat, *carray;
 
 	if (a < 2) {
@@ -115,7 +113,6 @@ main(a, v)
 
 	for (;;) {
 		for (dev = devbase; dev < a; dev++) {
-			char buf[128];
 			fd = open(v[dev], O_RDWR);
 			if (fd < 0) {
 				syslog(LOG_ERR, "%s: %m", v[dev]);

Modified: head/share/examples/ses/srcs/setencstat.c
==============================================================================
--- head/share/examples/ses/srcs/setencstat.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/setencstat.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -40,9 +40,7 @@
 #include SESINC
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	int fd;
 	long val;

Modified: head/share/examples/ses/srcs/setobjstat.c
==============================================================================
--- head/share/examples/ses/srcs/setobjstat.c	Wed Nov  4 23:34:58 2009	(r198933)
+++ head/share/examples/ses/srcs/setobjstat.c	Wed Nov  4 23:36:23 2009	(r198934)
@@ -40,9 +40,7 @@
 #include SESINC
 
 int
-main(a, v)
-	int a;
-	char **v;
+main(int a, char **v)
 {
 	int fd;
 	int i;

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 04:51:39 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 519BB1065670;
	Thu,  5 Nov 2009 04:51:39 +0000 (UTC) (envelope-from jh@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 277FF8FC12;
	Thu,  5 Nov 2009 04:51:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA54pdXQ058340;
	Thu, 5 Nov 2009 04:51:39 GMT (envelope-from jh@svn.freebsd.org)
Received: (from jh@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA54pdgo058337;
	Thu, 5 Nov 2009 04:51:39 GMT (envelope-from jh@svn.freebsd.org)
Message-Id: <200911050451.nA54pdgo058337@svn.freebsd.org>
From: Jaakko Heinonen 
Date: Thu, 5 Nov 2009 04:51:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198940 - head/sys/gnu/fs/ext2fs
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 04:51:39 -0000

Author: jh
Date: Thu Nov  5 04:51:38 2009
New Revision: 198940
URL: http://svn.freebsd.org/changeset/base/198940

Log:
  File flags handling fixes for ext2fs:
  
  - Disallow setting of flags not supported by ext2fs.
  - Map EXT2_APPEND_FL to SF_APPEND.
  - Map EXT2_IMMUTABLE_FL to SF_IMMUTABLE.
  - Map EXT2_NODUMP_FL to UF_NODUMP.
  
  Note that ext2fs doesn't support user settable append and immutable flags.
  EXT2_NODUMP_FL is an user settable flag also on Linux.
  
  PR:		kern/122047
  Reported by:	Ighighi
  Submitted by:	Aditya Sarawgi (original version)
  Reviewed by:	bde
  Approved by:	trasz (mentor)

Modified:
  head/sys/gnu/fs/ext2fs/ext2_inode_cnv.c
  head/sys/gnu/fs/ext2fs/ext2_vnops.c

Modified: head/sys/gnu/fs/ext2fs/ext2_inode_cnv.c
==============================================================================
--- head/sys/gnu/fs/ext2fs/ext2_inode_cnv.c	Thu Nov  5 03:54:03 2009	(r198939)
+++ head/sys/gnu/fs/ext2fs/ext2_inode_cnv.c	Thu Nov  5 04:51:38 2009	(r198940)
@@ -83,8 +83,9 @@ ext2_ei2i(ei, ip)
 	ip->i_mtime = ei->i_mtime;
 	ip->i_ctime = ei->i_ctime;
 	ip->i_flags = 0;
-	ip->i_flags |= (ei->i_flags & EXT2_APPEND_FL) ? APPEND : 0;
-	ip->i_flags |= (ei->i_flags & EXT2_IMMUTABLE_FL) ? IMMUTABLE : 0;
+	ip->i_flags |= (ei->i_flags & EXT2_APPEND_FL) ? SF_APPEND : 0;
+	ip->i_flags |= (ei->i_flags & EXT2_IMMUTABLE_FL) ? SF_IMMUTABLE : 0;
+	ip->i_flags |= (ei->i_flags & EXT2_NODUMP_FL) ? UF_NODUMP : 0;
 	ip->i_blocks = ei->i_blocks;
 	ip->i_gen = ei->i_generation;
 	ip->i_uid = ei->i_uid;
@@ -121,8 +122,9 @@ ext2_i2ei(ip, ei)
 	ei->i_ctime = ip->i_ctime;
 	ei->i_flags = ip->i_flags;
 	ei->i_flags = 0;
-	ei->i_flags |= (ip->i_flags & APPEND) ? EXT2_APPEND_FL: 0;
-	ei->i_flags |= (ip->i_flags & IMMUTABLE) ? EXT2_IMMUTABLE_FL: 0;
+	ei->i_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND_FL: 0;
+	ei->i_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE_FL: 0;
+	ei->i_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP_FL : 0;
 	ei->i_blocks = ip->i_blocks;
 	ei->i_generation = ip->i_gen;
 	ei->i_uid = ip->i_uid;

Modified: head/sys/gnu/fs/ext2fs/ext2_vnops.c
==============================================================================
--- head/sys/gnu/fs/ext2fs/ext2_vnops.c	Thu Nov  5 03:54:03 2009	(r198939)
+++ head/sys/gnu/fs/ext2fs/ext2_vnops.c	Thu Nov  5 04:51:38 2009	(r198940)
@@ -391,6 +391,10 @@ ext2_setattr(ap)
 		return (EINVAL);
 	}
 	if (vap->va_flags != VNOVAL) {
+		/* Disallow flags not supported by ext2fs. */
+		if (vap->va_flags & ~(SF_APPEND | SF_IMMUTABLE | UF_NODUMP))
+			return (EOPNOTSUPP);
+
 		if (vp->v_mount->mnt_flag & MNT_RDONLY)
 			return (EROFS);
 		/*

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 06:08:05 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 08D88106566B;
	Thu,  5 Nov 2009 06:08:05 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id EC8F88FC08;
	Thu,  5 Nov 2009 06:08:04 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA56844s064366;
	Thu, 5 Nov 2009 06:08:04 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA5684TK064364;
	Thu, 5 Nov 2009 06:08:04 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200911050608.nA5684TK064364@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Thu, 5 Nov 2009 06:08:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198941 - head/lib/libstand
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 06:08:05 -0000

Author: marcel
Date: Thu Nov  5 06:08:04 2009
New Revision: 198941
URL: http://svn.freebsd.org/changeset/base/198941

Log:
  IP_TTL is an IP socket option, not a TTL value. Use IPDEFTTL
  instead.

Modified:
  head/lib/libstand/udp.c

Modified: head/lib/libstand/udp.c
==============================================================================
--- head/lib/libstand/udp.c	Thu Nov  5 04:51:38 2009	(r198940)
+++ head/lib/libstand/udp.c	Thu Nov  5 06:08:04 2009	(r198941)
@@ -90,7 +90,7 @@ sendudp(d, pkt, len)
 	ip->ip_hl = sizeof(*ip) >> 2;		/* half-char */
 	ip->ip_len = htons(len);
 	ip->ip_p = IPPROTO_UDP;			/* char */
-	ip->ip_ttl = IP_TTL;			/* char */
+	ip->ip_ttl = IPDEFTTL;			/* char */
 	ip->ip_src = d->myip;
 	ip->ip_dst = d->destip;
 	ip->ip_sum = in_cksum(ip, sizeof(*ip));	 /* short, but special */

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 06:23:02 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 66DAF106566C;
	Thu,  5 Nov 2009 06:23:02 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 56BCC8FC19;
	Thu,  5 Nov 2009 06:23:02 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA56N2l7064768;
	Thu, 5 Nov 2009 06:23:02 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA56N2PU064766;
	Thu, 5 Nov 2009 06:23:02 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200911050623.nA56N2PU064766@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Thu, 5 Nov 2009 06:23:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198942 - head/sys/arm/arm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 06:23:02 -0000

Author: marcel
Date: Thu Nov  5 06:23:02 2009
New Revision: 198942
URL: http://svn.freebsd.org/changeset/base/198942

Log:
  Implement db_trace_self() by calling db_stack_trace_cmd()
  and not db_trace_thread().

Modified:
  head/sys/arm/arm/db_trace.c

Modified: head/sys/arm/arm/db_trace.c
==============================================================================
--- head/sys/arm/arm/db_trace.c	Thu Nov  5 06:08:04 2009	(r198941)
+++ head/sys/arm/arm/db_trace.c	Thu Nov  5 06:23:02 2009	(r198942)
@@ -207,5 +207,8 @@ db_trace_thread(struct thread *thr, int 
 void
 db_trace_self(void)
 {
-	db_trace_thread(curthread, -1);
+	db_addr_t addr;
+
+	addr = (db_addr_t)__builtin_frame_address(1);
+	db_stack_trace_cmd(addr, -1);
 }

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 06:27:46 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CEB341065670;
	Thu,  5 Nov 2009 06:27:46 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BE5A58FC1E;
	Thu,  5 Nov 2009 06:27:46 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA56Rk0E064909;
	Thu, 5 Nov 2009 06:27:46 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA56RkZP064907;
	Thu, 5 Nov 2009 06:27:46 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200911050627.nA56RkZP064907@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Thu, 5 Nov 2009 06:27:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198943 - head/sys/arm/arm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 06:27:46 -0000

Author: marcel
Date: Thu Nov  5 06:27:46 2009
New Revision: 198943
URL: http://svn.freebsd.org/changeset/base/198943

Log:
  Implement db_trace_thread() by calling db_stack_trace_cmd() and
  passing a frame pointer that comes from the thread context. This
  fixes DDB backtraces by not unwinding debugger functions first.

Modified:
  head/sys/arm/arm/db_trace.c

Modified: head/sys/arm/arm/db_trace.c
==============================================================================
--- head/sys/arm/arm/db_trace.c	Thu Nov  5 06:23:02 2009	(r198942)
+++ head/sys/arm/arm/db_trace.c	Thu Nov  5 06:27:46 2009	(r198943)
@@ -194,13 +194,10 @@ db_md_set_watchpoint(db_expr_t addr, db_
 int
 db_trace_thread(struct thread *thr, int count)
 {
-	uint32_t addr;
+	struct pcb *ctx;
 
-	if (thr == curthread)
-		addr = (uint32_t)__builtin_frame_address(0);
-	else
-		addr = thr->td_pcb->un_32.pcb32_r11;
-	db_stack_trace_cmd(addr, -1);
+	ctx = kdb_thr_ctx(thr);
+	db_stack_trace_cmd(ctx->un_32.pcb32_r11, -1);
 	return (0);
 }
 

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 06:31:50 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E21B01065670;
	Thu,  5 Nov 2009 06:31:50 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D1EAF8FC13;
	Thu,  5 Nov 2009 06:31:50 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA56Vo7W065094;
	Thu, 5 Nov 2009 06:31:50 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA56VocI065092;
	Thu, 5 Nov 2009 06:31:50 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200911050631.nA56VocI065092@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Thu, 5 Nov 2009 06:31:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198944 - head/sys/arm/arm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 06:31:51 -0000

Author: marcel
Date: Thu Nov  5 06:31:50 2009
New Revision: 198944
URL: http://svn.freebsd.org/changeset/base/198944

Log:
  Fix gdb_cpu_getreg() to actually match GDB's register
  definition.

Modified:
  head/sys/arm/arm/gdb_machdep.c

Modified: head/sys/arm/arm/gdb_machdep.c
==============================================================================
--- head/sys/arm/arm/gdb_machdep.c	Thu Nov  5 06:27:46 2009	(r198943)
+++ head/sys/arm/arm/gdb_machdep.c	Thu Nov  5 06:31:50 2009	(r198944)
@@ -53,12 +53,15 @@ gdb_cpu_getreg(int regnum, size_t *regsz
 
 	*regsz = gdb_cpu_regsz(regnum);
 
-	if (kdb_thread  == curthread) {
-		if (regnum < 16)
-			return (&kdb_frame->tf_r0 + 4 * regnum);
+	if (kdb_thread == curthread) {
+		if (regnum < 15)
+			return (&kdb_frame->tf_r0 + regnum);
+		if (regnum == 15)
+			return (&kdb_frame->tf_pc);
 		if (regnum == 25)
 			return (&kdb_frame->tf_spsr);
 	}
+
 	switch (regnum) {
 	case 8:  return (&kdb_thrctx->un_32.pcb32_r8);
 	case 9:  return (&kdb_thrctx->un_32.pcb32_r9);
@@ -78,6 +81,7 @@ gdb_cpu_getreg(int regnum, size_t *regsz
 			  return (&kdb_thrctx->un_32.pcb32_pc);
 		  }
 	}
+
 	return (NULL);
 }
 

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 07:37:49 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 91BD2106566C;
	Thu,  5 Nov 2009 07:37:49 +0000 (UTC)
	(envelope-from netchild@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 80E128FC08;
	Thu,  5 Nov 2009 07:37:49 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA57bnpu066819;
	Thu, 5 Nov 2009 07:37:49 GMT (envelope-from netchild@svn.freebsd.org)
Received: (from netchild@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA57bnpG066817;
	Thu, 5 Nov 2009 07:37:49 GMT (envelope-from netchild@svn.freebsd.org)
Message-Id: <200911050737.nA57bnpG066817@svn.freebsd.org>
From: Alexander Leidinger 
Date: Thu, 5 Nov 2009 07:37:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198945 - head/sys/compat/linux
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 07:37:49 -0000

Author: netchild
Date: Thu Nov  5 07:37:48 2009
New Revision: 198945
URL: http://svn.freebsd.org/changeset/base/198945

Log:
  Fix typo in kernel message. The fix is based upon the patch in the PR.
  
  PR:		kern/140279
  Submitted by:	Alexander Best 
  MFC after:	1 week

Modified:
  head/sys/compat/linux/linux_ipc.c

Modified: head/sys/compat/linux/linux_ipc.c
==============================================================================
--- head/sys/compat/linux/linux_ipc.c	Thu Nov  5 06:31:50 2009	(r198944)
+++ head/sys/compat/linux/linux_ipc.c	Thu Nov  5 07:37:48 2009	(r198945)
@@ -872,7 +872,7 @@ linux_shmctl(struct thread *td, struct l
     case LINUX_SHM_LOCK:
     case LINUX_SHM_UNLOCK:
     default:
-	linux_msg(td, "ipc typ=%d not implemented", args->cmd & ~LINUX_IPC_64);
+	linux_msg(td, "ipc type %d not implemented", args->cmd & ~LINUX_IPC_64);
 	return EINVAL;
     }
 }

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 08:55:24 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C83E01065692;
	Thu,  5 Nov 2009 08:55:24 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B74C08FC0C;
	Thu,  5 Nov 2009 08:55:24 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA58tOqI068936;
	Thu, 5 Nov 2009 08:55:24 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA58tO43068934;
	Thu, 5 Nov 2009 08:55:24 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911050855.nA58tO43068934@svn.freebsd.org>
From: Alexander Motin 
Date: Thu, 5 Nov 2009 08:55:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198947 - head/sys/cam
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 08:55:24 -0000

Author: mav
Date: Thu Nov  5 08:55:24 2009
New Revision: 198947
URL: http://svn.freebsd.org/changeset/base/198947

Log:
  MFp4:
  Implement device stats accounting for ATA commands.

Modified:
  head/sys/cam/cam_periph.c

Modified: head/sys/cam/cam_periph.c
==============================================================================
--- head/sys/cam/cam_periph.c	Thu Nov  5 08:31:42 2009	(r198946)
+++ head/sys/cam/cam_periph.c	Thu Nov  5 08:55:24 2009	(r198947)
@@ -898,7 +898,8 @@ cam_periph_runccb(union ccb *ccb,
 	 * If the user has supplied a stats structure, and if we understand
 	 * this particular type of ccb, record the transaction start.
 	 */
-	if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO))
+	if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO ||
+	    ccb->ccb_h.func_code == XPT_ATA_IO))
 		devstat_start_transaction(ds, NULL);
 
 	xpt_action(ccb);
@@ -921,15 +922,27 @@ cam_periph_runccb(union ccb *ccb,
 				 /* timeout */0,
 				 /* getcount_only */ FALSE);
 
-	if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO))
-		devstat_end_transaction(ds,
+	if (ds != NULL) {
+		if (ccb->ccb_h.func_code == XPT_SCSI_IO) {
+			devstat_end_transaction(ds,
 					ccb->csio.dxfer_len,
-					ccb->csio.tag_action & 0xf,
+					ccb->csio.tag_action & 0x3,
 					((ccb->ccb_h.flags & CAM_DIR_MASK) ==
 					CAM_DIR_NONE) ?  DEVSTAT_NO_DATA : 
 					(ccb->ccb_h.flags & CAM_DIR_OUT) ?
 					DEVSTAT_WRITE : 
 					DEVSTAT_READ, NULL, NULL);
+		} else if (ccb->ccb_h.func_code == XPT_ATA_IO) {
+			devstat_end_transaction(ds,
+					ccb->ataio.dxfer_len,
+					ccb->ataio.tag_action & 0x3,
+					((ccb->ccb_h.flags & CAM_DIR_MASK) ==
+					CAM_DIR_NONE) ?  DEVSTAT_NO_DATA : 
+					(ccb->ccb_h.flags & CAM_DIR_OUT) ?
+					DEVSTAT_WRITE : 
+					DEVSTAT_READ, NULL, NULL);
+		}
+	}
 
 	return(error);
 }

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 10:01:16 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8969C106566C;
	Thu,  5 Nov 2009 10:01:16 +0000 (UTC) (envelope-from ru@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 783AE8FC22;
	Thu,  5 Nov 2009 10:01:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA5A1Gfv071242;
	Thu, 5 Nov 2009 10:01:16 GMT (envelope-from ru@svn.freebsd.org)
Received: (from ru@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA5A1GSx071241;
	Thu, 5 Nov 2009 10:01:16 GMT (envelope-from ru@svn.freebsd.org)
Message-Id: <200911051001.nA5A1GSx071241@svn.freebsd.org>
From: Ruslan Ermilov 
Date: Thu, 5 Nov 2009 10:01:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198948 - head/share/misc
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 10:01:16 -0000

Author: ru
Date: Thu Nov  5 10:01:15 2009
New Revision: 198948
URL: http://svn.freebsd.org/changeset/base/198948

Log:
  Revert the spelling of Taiwan to be politically neutral in accordance
  with the policy published at http://www.freebsd.org/internal/i18n.html.
  
  Requested by:	core (murray)

Modified:
  head/share/misc/iso3166

Modified: head/share/misc/iso3166
==============================================================================
--- head/share/misc/iso3166	Thu Nov  5 08:55:24 2009	(r198947)
+++ head/share/misc/iso3166	Thu Nov  5 10:01:15 2009	(r198948)
@@ -1,5 +1,8 @@
 # $FreeBSD$
 #
+# Please consult with http://www.FreeBSD.org/internal/i18n.html before
+# making changes to this file.
+#
 # ISO 3166 country codes
 # This includes many places that are not legally independent countries,
 # but which is it convenient to refer to separately from their
@@ -230,7 +233,7 @@ SZ	SWZ	748	Swaziland
 SE	SWE	752	Sweden
 CH	CHE	756	Switzerland
 SY	SYR	760	Syrian Arab Republic
-TW	TWN	158	Taiwan, Province of China
+TW	TWN	158	Taiwan
 TJ	TJK	762	Tajikistan
 TZ	TZA	834	Tanzania, United Republic of
 TH	THA	764	Thailand

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 13:28:09 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3FE8D106566C;
	Thu,  5 Nov 2009 13:28:09 +0000 (UTC)
	(envelope-from rpaulo@gmail.com)
Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com
	[209.85.218.213])
	by mx1.freebsd.org (Postfix) with ESMTP id 6E36E8FC0C;
	Thu,  5 Nov 2009 13:28:08 +0000 (UTC)
Received: by bwz5 with SMTP id 5so860549bwz.3
	for ; Thu, 05 Nov 2009 05:28:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:received:received:sender:references:in-reply-to
	:mime-version:content-type:message-id:content-transfer-encoding:cc
	:from:subject:date:to:x-mailer;
	bh=2TIJ7rHDkaaExH7+rqKwlfYnTt9YPVQY9Mmlx/0/IRk=;
	b=CuUmhTYVTqKsswQxb8rwobzHinkwoCs13zzYr1WUYOeWr8u+0HQc5tvR2i4jRvIxyG
	gZvjt2J3j2ICPmWHp1a1/knJAX4XB0xQolWZh2f88bqyP4hWIa7Z90wxTYZVNlp2uEQZ
	cVqSdLPvQQ9WMRw7ZFph62gZpGtCaX3Y/JiaY=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=sender:references:in-reply-to:mime-version:content-type:message-id
	:content-transfer-encoding:cc:from:subject:date:to:x-mailer;
	b=JdN1EQIIl8SAZneKo3yHuZPnTfZQC9rksHKE/vGZ5MHymoYT8+liK7nFHF3PP4xVKU
	TAxwMiFipUB5a/v7UlnoydV8Gf3a5S7JywNuxsW3gmm4VdwEamDk/NCiL4W1wxj8tEXk
	1nxPR9oYHgAGpA6S89AZh0KjSLtMeVUXcWE6E=
Received: by 10.204.35.11 with SMTP id n11mr3051240bkd.40.1257427687306;
	Thu, 05 Nov 2009 05:28:07 -0800 (PST)
Received: from rui-macbook.lan (bl7-119-248.dsl.telepac.pt [85.240.119.248])
	by mx.google.com with ESMTPS id 16sm693763bwz.3.2009.11.05.05.28.05
	(version=TLSv1/SSLv3 cipher=RC4-MD5);
	Thu, 05 Nov 2009 05:28:06 -0800 (PST)
Sender: Rui Paulo 
References: <200911050627.nA56RkZP064907@svn.freebsd.org>
In-Reply-To: <200911050627.nA56RkZP064907@svn.freebsd.org>
Mime-Version: 1.0 (Apple Message framework v1076)
Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes
Message-Id: <253E61DA-2F55-4801-8C08-E5C95DEF94BC@FreeBSD.org>
Content-Transfer-Encoding: 7bit
From: Rui Paulo 
Date: Thu, 5 Nov 2009 13:28:04 +0000
To: Marcel Moolenaar 
X-Mailer: Apple Mail (2.1076)
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198943 - head/sys/arm/arm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 13:28:09 -0000

On 5 Nov 2009, at 06:27, Marcel Moolenaar wrote:

> Author: marcel
> Date: Thu Nov  5 06:27:46 2009
> New Revision: 198943
> URL: http://svn.freebsd.org/changeset/base/198943
>
> Log:
>  Implement db_trace_thread() by calling db_stack_trace_cmd() and
>  passing a frame pointer that comes from the thread context. This
>  fixes DDB backtraces by not unwinding debugger functions first.

Woot! Nice :-) I've been wondering for ages why DDB bt would print  
wrong function names.

--
Rui Paulo


From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 14:34:40 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1093F1065670;
	Thu,  5 Nov 2009 14:34:40 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F3BB98FC13;
	Thu,  5 Nov 2009 14:34:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA5EYctQ080803;
	Thu, 5 Nov 2009 14:34:38 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA5EYcCV080800;
	Thu, 5 Nov 2009 14:34:38 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200911051434.nA5EYcCV080800@svn.freebsd.org>
From: Attilio Rao 
Date: Thu, 5 Nov 2009 14:34:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198950 - in head/sys: amd64/amd64 i386/i386
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 14:34:40 -0000

Author: attilio
Date: Thu Nov  5 14:34:38 2009
New Revision: 198950
URL: http://svn.freebsd.org/changeset/base/198950

Log:
  Strip from messages for users external URLs the project cannot directly
  control.
  
  Requested by:	kib, rwatson

Modified:
  head/sys/amd64/amd64/identcpu.c
  head/sys/i386/i386/identcpu.c

Modified: head/sys/amd64/amd64/identcpu.c
==============================================================================
--- head/sys/amd64/amd64/identcpu.c	Thu Nov  5 13:54:35 2009	(r198949)
+++ head/sys/amd64/amd64/identcpu.c	Thu Nov  5 14:34:38 2009	(r198950)
@@ -619,12 +619,9 @@ print_AMD_info(void)
 	 * model and family are identified.
 	 */
 	if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 &&
-	    CPUID_TO_MODEL(cpu_id) <= 0x3f) {
+	    CPUID_TO_MODEL(cpu_id) <= 0x3f)
 		printf("WARNING: This architecture revision has known SMP "
 		    "hardware bugs which may cause random instability\n");
-		printf("WARNING: For details see: "
-		    "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n");
-	}
 }
 
 static void

Modified: head/sys/i386/i386/identcpu.c
==============================================================================
--- head/sys/i386/i386/identcpu.c	Thu Nov  5 13:54:35 2009	(r198949)
+++ head/sys/i386/i386/identcpu.c	Thu Nov  5 14:34:38 2009	(r198950)
@@ -1315,12 +1315,9 @@ print_AMD_info(void)
 	 * model and family are identified.
 	 */
 	if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 &&
-	    CPUID_TO_MODEL(cpu_id) <= 0x3f) {
+	    CPUID_TO_MODEL(cpu_id) <= 0x3f)
 		printf("WARNING: This architecture revision has known SMP "
 		    "hardware bugs which may cause random instability\n");
-		printf("WARNING: For details see: "
-		    "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n");
-	}
 }
 
 static void

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 15:19:22 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 634E5106566C;
	Thu,  5 Nov 2009 15:19:22 +0000 (UTC)
	(envelope-from vanilla@fatpipi.com)
Received: from mail-pw0-f44.google.com (mail-pw0-f44.google.com
	[209.85.160.44])
	by mx1.freebsd.org (Postfix) with ESMTP id 303328FC17;
	Thu,  5 Nov 2009 15:19:22 +0000 (UTC)
Received: by pwj15 with SMTP id 15so45928pwj.3
	for ; Thu, 05 Nov 2009 07:19:22 -0800 (PST)
MIME-Version: 1.0
Received: by 10.114.86.2 with SMTP id j2mr4972163wab.159.1257432574734; Thu, 
	05 Nov 2009 06:49:34 -0800 (PST)
In-Reply-To: <200911051001.nA5A1GSx071241@svn.freebsd.org>
References: <200911051001.nA5A1GSx071241@svn.freebsd.org>
Date: Thu, 5 Nov 2009 22:49:34 +0800
Message-ID: 
From: Vanilla Hsu 
To: Ruslan Ermilov 
Content-Type: text/plain; charset=ISO-8859-1
X-Content-Filtered-By: Mailman/MimeDel 2.1.5
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r198948 - head/share/misc
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: v@fatpipi.com
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 15:19:22 -0000

Thanks.
--
I payed the tax to Taiwan's government, not China's government.

2009/11/5 Ruslan Ermilov 

> Author: ru
> Date: Thu Nov  5 10:01:15 2009
> New Revision: 198948
> URL: http://svn.freebsd.org/changeset/base/198948
>
> Log:
>  Revert the spelling of Taiwan to be politically neutral in accordance
>  with the policy published at http://www.freebsd.org/internal/i18n.html.
>
>  Requested by: core (murray)
>
> Modified:
>  head/share/misc/iso3166
>
> Modified: head/share/misc/iso3166
>
> ==============================================================================
> --- head/share/misc/iso3166     Thu Nov  5 08:55:24 2009        (r198947)
> +++ head/share/misc/iso3166     Thu Nov  5 10:01:15 2009        (r198948)
> @@ -1,5 +1,8 @@
>  # $FreeBSD$
>  #
> +# Please consult with http://www.FreeBSD.org/internal/i18n.html before
> +# making changes to this file.
> +#
>  # ISO 3166 country codes
>  # This includes many places that are not legally independent countries,
>  # but which is it convenient to refer to separately from their
> @@ -230,7 +233,7 @@ SZ  SWZ     748     Swaziland
>  SE     SWE     752     Sweden
>  CH     CHE     756     Switzerland
>  SY     SYR     760     Syrian Arab Republic
> -TW     TWN     158     Taiwan, Province of China
> +TW     TWN     158     Taiwan
>  TJ     TJK     762     Tajikistan
>  TZ     TZA     834     Tanzania, United Republic of
>  TH     THA     764     Thailand
> _______________________________________________
> svn-src-all@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
>

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 16:30:16 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 949301065692;
	Thu,  5 Nov 2009 16:30:16 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 836868FC2A;
	Thu,  5 Nov 2009 16:30:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA5GUGLp083625;
	Thu, 5 Nov 2009 16:30:16 GMT (envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA5GUGui083623;
	Thu, 5 Nov 2009 16:30:16 GMT (envelope-from brueffer@svn.freebsd.org)
Message-Id: <200911051630.nA5GUGui083623@svn.freebsd.org>
From: Christian Brueffer 
Date: Thu, 5 Nov 2009 16:30:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198952 - head/sys/contrib/altq/altq
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 16:30:16 -0000

Author: brueffer
Date: Thu Nov  5 16:30:16 2009
New Revision: 198952
URL: http://svn.freebsd.org/changeset/base/198952

Log:
  Fix two memory leaks in error cases.
  
  PR:		138378
  Submitted by:	Patroklos Argyroudis 
  Approved by:	mlaier
  MFC after:	1 week

Modified:
  head/sys/contrib/altq/altq/altq_hfsc.c

Modified: head/sys/contrib/altq/altq/altq_hfsc.c
==============================================================================
--- head/sys/contrib/altq/altq/altq_hfsc.c	Thu Nov  5 16:16:56 2009	(r198951)
+++ head/sys/contrib/altq/altq/altq_hfsc.c	Thu Nov  5 16:30:16 2009	(r198952)
@@ -1809,15 +1809,20 @@ hfsc_class_modify(cl, rsc, fsc, usc)
 	    cl->cl_fsc == NULL) {
 		fsc_tmp = malloc(sizeof(struct internal_sc),
 		    M_DEVBUF, M_WAITOK);
-		if (fsc_tmp == NULL)
+		if (fsc_tmp == NULL) {
+			free(rsc_tmp);
 			return (ENOMEM);
+		}
 	}
 	if (usc != NULL && (usc->m1 != 0 || usc->m2 != 0) &&
 	    cl->cl_usc == NULL) {
 		usc_tmp = malloc(sizeof(struct internal_sc),
 		    M_DEVBUF, M_WAITOK);
-		if (usc_tmp == NULL)
+		if (usc_tmp == NULL) {
+			free(rsc_tmp);
+			free(fsc_tmp);
 			return (ENOMEM);
+		}
 	}
 
 	cur_time = read_machclk();

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 20:44:39 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 64AEE106566B;
	Thu,  5 Nov 2009 20:44:39 +0000 (UTC)
	(envelope-from jilles@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 535238FC1B;
	Thu,  5 Nov 2009 20:44:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA5KidqM090204;
	Thu, 5 Nov 2009 20:44:39 GMT (envelope-from jilles@svn.freebsd.org)
Received: (from jilles@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA5KidiH090202;
	Thu, 5 Nov 2009 20:44:39 GMT (envelope-from jilles@svn.freebsd.org)
Message-Id: <200911052044.nA5KidiH090202@svn.freebsd.org>
From: Jilles Tjoelker 
Date: Thu, 5 Nov 2009 20:44:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198963 - head/bin/sh
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 20:44:39 -0000

Author: jilles
Date: Thu Nov  5 20:44:39 2009
New Revision: 198963
URL: http://svn.freebsd.org/changeset/base/198963

Log:
  sh: Fix memory leak when using a variable in arithmetic like $((x)).
  
  MFC after:	3 weeks

Modified:
  head/bin/sh/arith_lex.l

Modified: head/bin/sh/arith_lex.l
==============================================================================
--- head/bin/sh/arith_lex.l	Thu Nov  5 19:55:42 2009	(r198962)
+++ head/bin/sh/arith_lex.l	Thu Nov  5 20:44:39 2009	(r198963)
@@ -51,6 +51,13 @@ __FBSDID("$FreeBSD$");
 
 int yylex(void);
 
+struct varname
+{
+	struct varname *next;
+	char name[1];
+};
+static struct varname *varnames;
+
 #undef YY_INPUT
 #define YY_INPUT(buf,result,max) \
 	result = (*buf = *arith_buf++) ? 1 : YY_NULL;
@@ -80,11 +87,14 @@ int yylex(void);
 			 * If variable doesn't exist, we should initialize
 			 * it to zero.
 			 */
-			char *temp;
+			struct varname *temp;
 			if (lookupvar(yytext) == NULL)
 				setvarsafe(yytext, "0", 0);
-			temp = (char *)ckmalloc(strlen(yytext) + 1);
-			yylval.s_value = strcpy(temp, yytext);
+			temp = ckmalloc(sizeof(struct varname) +
+			    strlen(yytext));
+			temp->next = varnames;
+			varnames = temp;
+			yylval.s_value = strcpy(temp->name, yytext);
 
 			return ARITH_VAR;
 		}
@@ -130,5 +140,15 @@ int yylex(void);
 void
 arith_lex_reset(void)
 {
+	struct varname *name, *next;
+
 	YY_NEW_FILE;
+
+	name = varnames;
+	while (name != NULL) {
+		next = name->next;
+		ckfree(name);
+		name = next;
+	}
+	varnames = NULL;
 }

From owner-svn-src-head@FreeBSD.ORG  Thu Nov  5 22:58:50 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B8249106566B;
	Thu,  5 Nov 2009 22:58:50 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A5EFB8FC19;
	Thu,  5 Nov 2009 22:58:50 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA5MwoAc093650;
	Thu, 5 Nov 2009 22:58:50 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA5Mwo0S093646;
	Thu, 5 Nov 2009 22:58:50 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911052258.nA5Mwo0S093646@svn.freebsd.org>
From: Jung-uk Kim 
Date: Thu, 5 Nov 2009 22:58:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198964 - in head/sys: dev/fb dev/pci isa
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 05 Nov 2009 22:58:50 -0000

Author: jkim
Date: Thu Nov  5 22:58:50 2009
New Revision: 198964
URL: http://svn.freebsd.org/changeset/base/198964

Log:
  Save/restore VGA state from vga_pci.c instead of relying on vga_isa.c.
  It was not working because we were saving its state after the device was
  powered down.  Simplify vesa_load_state() as the culprit is fixed now.

Modified:
  head/sys/dev/fb/vesa.c
  head/sys/dev/pci/vga_pci.c
  head/sys/isa/vga_isa.c

Modified: head/sys/dev/fb/vesa.c
==============================================================================
--- head/sys/dev/fb/vesa.c	Thu Nov  5 20:44:39 2009	(r198963)
+++ head/sys/dev/fb/vesa.c	Thu Nov  5 22:58:50 2009	(r198964)
@@ -164,7 +164,6 @@ static char *vesa_revstr = NULL;
 static int int10_set_mode(int mode);
 static int vesa_bios_post(void);
 static int vesa_bios_get_mode(int mode, struct vesa_mode *vmode);
-static int vesa_bios_get_current_mode(void);
 static int vesa_bios_set_mode(int mode);
 static int vesa_bios_get_dac(void);
 static int vesa_bios_set_dac(int bits);
@@ -319,22 +318,6 @@ vesa_bios_get_mode(int mode, struct vesa
 }
 
 static int
-vesa_bios_get_current_mode(void)
-{
-	x86regs_t regs;
-
-	x86bios_init_regs(®s);
-	regs.R_AX = 0x4f03;
-
-	x86bios_intr(®s, 0x10);
-
-	if (regs.R_AX != 0x004f)
-		return (-1);
-
-	return (regs.R_BX);
-}
-
-static int
 vesa_bios_set_mode(int mode)
 {
 	x86regs_t regs;
@@ -1438,7 +1421,6 @@ vesa_save_state(video_adapter_t *adp, vo
 static int
 vesa_load_state(video_adapter_t *adp, void *p)
 {
-	int flags, mode, ret;
 
 	if ((adp != vesa_adp) || (((adp_state_t *)p)->sig != V_STATE_SIG))
 		return ((*prevvidsw->load_state)(adp, p));
@@ -1446,38 +1428,12 @@ vesa_load_state(video_adapter_t *adp, vo
 	if (vesa_state_buf_size <= 0)
 		return (1);
 
-	/*
-	 * If the current mode is not the same, probably it was powered down.
-	 * Try BIOS POST to restore a sane state.
-	 */
-	if (VESA_MODE(adp->va_mode)) {
-		mode = vesa_bios_get_current_mode();
-		if (mode >= 0 && (mode & 0x1ff) != adp->va_mode)
-			(void)vesa_bios_post();
-	}
-
-	ret = vesa_bios_save_restore(STATE_LOAD, ((adp_state_t *)p)->regs,
-	    vesa_state_buf_size);
+	/* Try BIOS POST to restore a sane state. */
+	(void)vesa_bios_post();
+	(void)int10_set_mode(adp->va_initial_bios_mode);
 
-	/*
-	 * If the desired mode is not restored, force setting the mode.
-	 */
-	if (VESA_MODE(adp->va_mode)) {
-		mode = vesa_bios_get_current_mode();
-		if (mode < 0 || (mode & 0x1ff) == adp->va_mode)
-			return (ret);
-		mode = adp->va_mode;
-		flags = adp->va_info.vi_flags;
-		if ((flags & V_INFO_GRAPHICS) != 0 &&
-		    (flags & V_INFO_LINEAR) != 0)
-			mode |= 0x4000;
-		(void)vesa_bios_set_mode(mode);
-		if ((vesa_adp_info->v_flags & V_DAC8) != 0)
-			(void)vesa_bios_set_dac(8);
-		(void)(*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1);
-	}
-
-	return (ret);
+	return (vesa_bios_save_restore(STATE_LOAD, ((adp_state_t *)p)->regs,
+	    vesa_state_buf_size));
 }
 
 #if 0

Modified: head/sys/dev/pci/vga_pci.c
==============================================================================
--- head/sys/dev/pci/vga_pci.c	Thu Nov  5 20:44:39 2009	(r198963)
+++ head/sys/dev/pci/vga_pci.c	Thu Nov  5 22:58:50 2009	(r198964)
@@ -40,12 +40,17 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 #include 
 #include 
 
+#include 
+#include 
+
 #include 
 #include 
 
@@ -63,7 +68,7 @@ SYSCTL_DECL(_hw_pci);
 
 int vga_pci_default_unit = -1;
 TUNABLE_INT("hw.pci.default_vgapci_unit", &vga_pci_default_unit);
-SYSCTL_INT(_hw_pci, OID_AUTO, default_vgapci_unit, CTLFLAG_RD,
+SYSCTL_INT(_hw_pci, OID_AUTO, default_vgapci_unit, CTLFLAG_RDTUN,
     &vga_pci_default_unit, -1, "Default VGA-compatible display");
 
 static int
@@ -112,13 +117,86 @@ vga_pci_attach(device_t dev)
 static int
 vga_pci_suspend(device_t dev)
 {
+	vga_softc_t *sc;
+	devclass_t dc;
+	int err, nbytes;
+
+	err = bus_generic_suspend(dev);
+	if (err)
+		return (err);
+
+	sc = NULL;
+	if (device_get_unit(dev) == vga_pci_default_unit) {
+		dc = devclass_find(VGA_DRIVER_NAME);
+		if (dc != NULL)
+			sc = devclass_get_softc(dc, 0);
+	}
+	if (sc == NULL)
+		return (0);
+
+	/* Save the video state across the suspend. */
+	if (sc->state_buf != NULL)
+		goto save_palette;
+	nbytes = vidd_save_state(sc->adp, NULL, 0);
+	if (nbytes <= 0)
+		goto save_palette;
+	sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT);
+	if (sc->state_buf == NULL)
+		goto save_palette;
+	if (bootverbose)
+		device_printf(dev, "saving %d bytes of video state\n", nbytes);
+	if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
+		device_printf(dev, "failed to save state (nbytes=%d)\n",
+		    nbytes);
+		free(sc->state_buf, M_TEMP);
+		sc->state_buf = NULL;
+	}
+
+save_palette:
+	/* Save the color palette across the suspend. */
+	if (sc->pal_buf != NULL)
+		return (0);
+	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
+	if (sc->pal_buf != NULL) {
+		if (bootverbose)
+			device_printf(dev, "saving color palette\n");
+		if (vidd_save_palette(sc->adp, sc->pal_buf) != 0) {
+			device_printf(dev, "failed to save palette\n");
+			free(sc->pal_buf, M_TEMP);
+			sc->pal_buf = NULL;
+		}
+	}
 
-	return (bus_generic_suspend(dev));
+	return (0);
 }
 
 static int
 vga_pci_resume(device_t dev)
 {
+	vga_softc_t *sc;
+	devclass_t dc;
+
+	sc = NULL;
+	if (device_get_unit(dev) == vga_pci_default_unit) {
+		dc = devclass_find(VGA_DRIVER_NAME);
+		if (dc != NULL)
+			sc = devclass_get_softc(dc, 0);
+	}
+	if (sc == NULL)
+		return (bus_generic_resume(dev));
+
+	if (sc->state_buf != NULL) {
+		if (vidd_load_state(sc->adp, sc->state_buf) != 0)
+			device_printf(dev, "failed to reload state\n");
+		free(sc->state_buf, M_TEMP);
+		sc->state_buf = NULL;
+	}
+	if (sc->pal_buf != NULL) {
+		if (vidd_load_palette(sc->adp, sc->pal_buf) != 0)
+			device_printf(dev, "failed to reload palette\n");
+		free(sc->pal_buf, M_TEMP);
+		sc->pal_buf = NULL;
+	}
 
 	return (bus_generic_resume(dev));
 }

Modified: head/sys/isa/vga_isa.c
==============================================================================
--- head/sys/isa/vga_isa.c	Thu Nov  5 20:44:39 2009	(r198963)
+++ head/sys/isa/vga_isa.c	Thu Nov  5 22:58:50 2009	(r198964)
@@ -166,35 +166,34 @@ isavga_suspend(device_t dev)
 	vga_softc_t *sc;
 	int err, nbytes;
 
-	sc = device_get_softc(dev);
 	err = bus_generic_suspend(dev);
 	if (err)
 		return (err);
 
+	sc = device_get_softc(dev);
+
 	/* Save the video state across the suspend. */
-	if (sc->state_buf != NULL) {
-		free(sc->state_buf, M_TEMP);
-		sc->state_buf = NULL;
-	}
+	if (sc->state_buf != NULL)
+		goto save_palette;
 	nbytes = vidd_save_state(sc->adp, NULL, 0);
 	if (nbytes <= 0)
-		return (0);
+		goto save_palette;
 	sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT);
-	if (sc->state_buf != NULL) {
-		if (bootverbose)
-			device_printf(dev, "saving %d bytes of video state\n",
-			    nbytes);
-		if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
-			device_printf(dev, "failed to save state (nbytes=%d)\n",
-			    nbytes);
-			free(sc->state_buf, M_TEMP);
-			sc->state_buf = NULL;
-		}
+	if (sc->state_buf == NULL)
+		goto save_palette;
+	if (bootverbose)
+		device_printf(dev, "saving %d bytes of video state\n", nbytes);
+	if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
+		device_printf(dev, "failed to save state (nbytes=%d)\n",
+		    nbytes);
+		free(sc->state_buf, M_TEMP);
+		sc->state_buf = NULL;
 	}
 
+save_palette:
 	/* Save the color palette across the suspend. */
 	if (sc->pal_buf != NULL)
-		free(sc->pal_buf, M_TEMP);
+		return (0);
 	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
 	if (sc->pal_buf != NULL) {
 		if (bootverbose)
@@ -215,6 +214,7 @@ isavga_resume(device_t dev)
 	vga_softc_t *sc;
 
 	sc = device_get_softc(dev);
+
 	if (sc->state_buf != NULL) {
 		if (vidd_load_state(sc->adp, sc->state_buf) != 0)
 			device_printf(dev, "failed to reload state\n");
@@ -228,8 +228,7 @@ isavga_resume(device_t dev)
 		sc->pal_buf = NULL;
 	}
 
-	bus_generic_resume(dev);
-	return 0;
+	return (bus_generic_resume(dev));
 }
 
 #ifdef FB_INSTALL_CDEV

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 01:12:01 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 005BD1065679;
	Fri,  6 Nov 2009 01:12:00 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E428E8FC1E;
	Fri,  6 Nov 2009 01:12:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA61C0h2097046;
	Fri, 6 Nov 2009 01:12:00 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA61C067097045;
	Fri, 6 Nov 2009 01:12:00 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911060112.nA61C067097045@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Fri, 6 Nov 2009 01:12:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198967 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 01:12:01 -0000

Author: yongari
Date: Fri Nov  6 01:11:59 2009
New Revision: 198967
URL: http://svn.freebsd.org/changeset/base/198967

Log:
  Correct MSI mode register bits.

Modified:
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h	Fri Nov  6 00:03:48 2009	(r198966)
+++ head/sys/dev/bge/if_bgereg.h	Fri Nov  6 01:11:59 2009	(r198967)
@@ -1705,11 +1705,8 @@
 /* MSI mode register */
 #define	BGE_MSIMODE_RESET		0x00000001
 #define	BGE_MSIMODE_ENABLE		0x00000002
-#define	BGE_MSIMODE_PCI_TGT_ABRT_ATTN	0x00000004
-#define	BGE_MSIMODE_PCI_MSTR_ABRT_ATTN	0x00000008
-#define	BGE_MSIMODE_PCI_PERR_ATTN	0x00000010
-#define	BGE_MSIMODE_MSI_FIFOUFLOW_ATTN	0x00000020
-#define	BGE_MSIMODE_MSI_FIFOOFLOW_ATTN	0x00000040
+#define	BGE_MSIMODE_ONE_SHOT_DISABLE	0x00000020
+#define	BGE_MSIMODE_MULTIVEC_ENABLE	0x00000080
 
 /* MSI status register */
 #define	BGE_MSISTAT_PCI_TGT_ABRT_ATTN	0x00000004

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 06:09:06 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6F053106566C;
	Fri,  6 Nov 2009 06:09:06 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E0808FC08;
	Fri,  6 Nov 2009 06:09:06 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA66952K004667;
	Fri, 6 Nov 2009 06:09:05 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6695t4004666;
	Fri, 6 Nov 2009 06:09:05 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200911060609.nA6695t4004666@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Fri, 6 Nov 2009 06:09:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198968 - head/sys/powerpc/powerpc
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 06:09:06 -0000

Author: marcel
Date: Fri Nov  6 06:09:04 2009
New Revision: 198968
URL: http://svn.freebsd.org/changeset/base/198968

Log:
  Unbreak E500 builds. The inline assembly for the 970 CPUs
  is invalid when compiling for BookE.

Modified:
  head/sys/powerpc/powerpc/cpu.c

Modified: head/sys/powerpc/powerpc/cpu.c
==============================================================================
--- head/sys/powerpc/powerpc/cpu.c	Fri Nov  6 01:11:59 2009	(r198967)
+++ head/sys/powerpc/powerpc/cpu.c	Fri Nov  6 06:09:04 2009	(r198968)
@@ -118,7 +118,9 @@ static void	cpu_print_speed(void);
 static void	cpu_6xx_setup(int cpuid, uint16_t vers);
 static void	cpu_6xx_print_cacheinfo(u_int, uint16_t);
 static void	cpu_e500_setup(int cpuid, uint16_t vers);
+#ifndef E500
 static void	cpu_970_setup(int cpuid, uint16_t vers);
+#endif
 
 void
 cpu_setup(u_int cpuid)
@@ -195,12 +197,14 @@ cpu_setup(u_int cpuid)
 			cpu_6xx_setup(cpuid, vers);
 			break;
 
+#ifndef E500
 		case IBM970:
 		case IBM970FX:
 		case IBM970GX:
 		case IBM970MP:
 			cpu_970_setup(cpuid, vers);
 			break;
+#endif
 
 		case FSL_E500v1:
 		case FSL_E500v2:
@@ -429,6 +433,7 @@ cpu_e500_setup(int cpuid, uint16_t vers)
 	printf("cpu%d: HID0 %b", cpuid, (int)hid0, HID0_E500_BITMASK);
 }
 
+#ifndef E500
 static void
 cpu_970_setup(int cpuid, uint16_t vers)
 {
@@ -458,4 +463,4 @@ cpu_970_setup(int cpuid, uint16_t vers)
 	    : "=r" (hid0_hi) : "K" (SPR_HID0));
 	printf("cpu%d: HID0 %b", cpuid, (int)(hid0_hi), HID0_970_BITMASK);
 }
-
+#endif

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 07:17:32 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 280BE1065672;
	Fri,  6 Nov 2009 07:17:32 +0000 (UTC) (envelope-from ed@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 173508FC0C;
	Fri,  6 Nov 2009 07:17:32 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA67HVga006553;
	Fri, 6 Nov 2009 07:17:31 GMT (envelope-from ed@svn.freebsd.org)
Received: (from ed@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA67HVou006550;
	Fri, 6 Nov 2009 07:17:31 GMT (envelope-from ed@svn.freebsd.org)
Message-Id: <200911060717.nA67HVou006550@svn.freebsd.org>
From: Ed Schouten 
Date: Fri, 6 Nov 2009 07:17:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198973 - in head: lib/libc/sys sys/sys
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 07:17:32 -0000

Author: ed
Date: Fri Nov  6 07:17:31 2009
New Revision: 198973
URL: http://svn.freebsd.org/changeset/base/198973

Log:
  Add MAP_ANONYMOUS.
  
  Many operating systems also provide MAP_ANONYMOUS. It's not hard to
  support this ourselves, we'd better add it to make it more likely for
  applications to work out of the box.
  
  Reviewed by:	alc (mman.h)

Modified:
  head/lib/libc/sys/mmap.2
  head/sys/sys/mman.h

Modified: head/lib/libc/sys/mmap.2
==============================================================================
--- head/lib/libc/sys/mmap.2	Fri Nov  6 07:02:16 2009	(r198972)
+++ head/lib/libc/sys/mmap.2	Fri Nov  6 07:17:31 2009	(r198973)
@@ -28,7 +28,7 @@
 .\"	@(#)mmap.2	8.4 (Berkeley) 5/11/95
 .\" $FreeBSD$
 .\"
-.Dd July 26, 2009
+.Dd November 6, 2009
 .Dt MMAP 2
 .Os
 .Sh NAME
@@ -108,6 +108,10 @@ The
 argument is ignored.
 .\".It Dv MAP_FILE
 .\"Mapped from a regular file or character-special device memory.
+.It Dv MAP_ANONYMOUS
+This flag is identical to
+.Dv MAP_ANON
+and is provided for compatibility.
 .It Dv MAP_FIXED
 Do not permit the system to select a different address than the one
 specified.

Modified: head/sys/sys/mman.h
==============================================================================
--- head/sys/sys/mman.h	Fri Nov  6 07:02:16 2009	(r198972)
+++ head/sys/sys/mman.h	Fri Nov  6 07:17:31 2009	(r198973)
@@ -82,6 +82,9 @@
  */
 #define	MAP_FILE	 0x0000	/* map from file (default) */
 #define	MAP_ANON	 0x1000	/* allocated from memory, swap space */
+#ifndef _KERNEL
+#define	MAP_ANONYMOUS	 MAP_ANON /* For compatibility. */
+#endif /* !_KERNEL */
 
 /*
  * Extended flags

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 10:07:39 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 34081106566B;
	Fri,  6 Nov 2009 10:07:39 +0000 (UTC) (envelope-from ume@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ACBEA8FC13;
	Fri,  6 Nov 2009 10:07:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6A7cSh012627;
	Fri, 6 Nov 2009 10:07:38 GMT (envelope-from ume@svn.freebsd.org)
Received: (from ume@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6A7cLg012625;
	Fri, 6 Nov 2009 10:07:38 GMT (envelope-from ume@svn.freebsd.org)
Message-Id: <200911061007.nA6A7cLg012625@svn.freebsd.org>
From: Hajimu UMEMOTO 
Date: Fri, 6 Nov 2009 10:07:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198976 - head/sys/netinet6
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 10:07:39 -0000

Author: ume
Date: Fri Nov  6 10:07:38 2009
New Revision: 198976
URL: http://svn.freebsd.org/changeset/base/198976

Log:
  Don't call LLE_FREE() after nd6_free().
  
  MFC after:	3 days

Modified:
  head/sys/netinet6/nd6.c

Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c	Fri Nov  6 09:39:35 2009	(r198975)
+++ head/sys/netinet6/nd6.c	Fri Nov  6 10:07:38 2009	(r198976)
@@ -513,6 +513,7 @@ nd6_llinfo_timer(void *arg)
 
 	if (ln->la_flags & LLE_DELETED) {
 		(void)nd6_free(ln, 0);
+		ln = NULL;
 		goto done;
 	}
 

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 11:17:34 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 38D4B106568B;
	Fri,  6 Nov 2009 11:17:34 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 27D1F8FC0C;
	Fri,  6 Nov 2009 11:17:34 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6BHYHd014923;
	Fri, 6 Nov 2009 11:17:34 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6BHY9M014921;
	Fri, 6 Nov 2009 11:17:34 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200911061117.nA6BHY9M014921@svn.freebsd.org>
From: Alexander Motin 
Date: Fri, 6 Nov 2009 11:17:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198983 - head/share/man/man4
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 11:17:34 -0000

Author: mav
Date: Fri Nov  6 11:17:33 2009
New Revision: 198983
URL: http://svn.freebsd.org/changeset/base/198983

Log:
  Document support for more chips.

Modified:
  head/share/man/man4/ata.4

Modified: head/share/man/man4/ata.4
==============================================================================
--- head/share/man/man4/ata.4	Fri Nov  6 10:56:43 2009	(r198982)
+++ head/share/man/man4/ata.4	Fri Nov  6 11:17:33 2009	(r198983)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd June 24, 2009
+.Dd November 6, 2009
 .Dt ATA 4
 .Os
 .Sh NAME
@@ -129,7 +129,7 @@ M5229, M5281, M5287, M5288, M5289.
 .It AMD:
 AMD756, AMD766, AMD768, AMD8111, CS5536.
 .It ATI:
-IXP200, IXP300, IXP400.
+IXP200, IXP300, IXP400, IXP600, IXP700, IXP800.
 .It CMD:
 CMD646, CMD646U2, CMD648, CMD649.
 .It Cypress:
@@ -145,13 +145,15 @@ IT8211F, IT8212F, IT8213F.
 .It JMicron:
 JMB360, JMB361, JMB363, JMB365, JMB366, JMB368.
 .It Marvell
-88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6081, 88SX6101, 88SX6141.
+88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6042, 88SX6081, 88SX6101,
+88SX6141, 88SX7042.
 .It National:
 SC1100.
 .It NetCell:
 NC3000, NC5000.
 .It nVidia:
-nForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4.
+nForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4,
+MCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89.
 .It Promise:
 PDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270, PDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375, PDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580, PDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519, PDC40718, PDC40719.
 .It ServerWorks:

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 13:10:12 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EFC69106566C;
	Fri,  6 Nov 2009 13:10:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DF3DC8FC21;
	Fri,  6 Nov 2009 13:10:12 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6DACmD017668;
	Fri, 6 Nov 2009 13:10:12 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6DACnm017666;
	Fri, 6 Nov 2009 13:10:12 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911061310.nA6DACnm017666@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 6 Nov 2009 13:10:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198986 - head/lib/libkvm
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 13:10:13 -0000

Author: jhb
Date: Fri Nov  6 13:10:12 2009
New Revision: 198986
URL: http://svn.freebsd.org/changeset/base/198986

Log:
  Fix a copy-paste bug when reading data from the last 3 (7 for PAE) bytes of
  a page mapped by a large page in the kernel.
  
  Submitted by:	Dorr H. Clark  dclark of engr.scu.edu
  MFC after:	1 week

Modified:
  head/lib/libkvm/kvm_i386.c

Modified: head/lib/libkvm/kvm_i386.c
==============================================================================
--- head/lib/libkvm/kvm_i386.c	Fri Nov  6 12:52:51 2009	(r198985)
+++ head/lib/libkvm/kvm_i386.c	Fri Nov  6 13:10:12 2009	(r198986)
@@ -295,9 +295,9 @@ _kvm_vatop(kvm_t *kd, u_long va, off_t *
 #define	PG_FRAME4M	(~PAGE4M_MASK)
 		pde_pa = ((u_long)pde & PG_FRAME4M) + (va & PAGE4M_MASK);
 		s = _kvm_pa2off(kd, pde_pa, &ofs);
-		if (s < sizeof pde) {
-			_kvm_syserr(kd, kd->program,
-			    "_kvm_vatop: pde_pa not found");
+		if (s == 0) {
+			_kvm_err(kd, kd->program,
+			    "_kvm_vatop: 4MB page address not in dump");
 			goto invalid;
 		}
 		*pa = ofs;
@@ -391,9 +391,9 @@ _kvm_vatop_pae(kvm_t *kd, u_long va, off
 #define	PG_FRAME2M	(~PAGE2M_MASK)
 		pde_pa = ((u_long)pde & PG_FRAME2M) + (va & PAGE2M_MASK);
 		s = _kvm_pa2off(kd, pde_pa, &ofs);
-		if (s < sizeof pde) {
-			_kvm_syserr(kd, kd->program,
-			    "_kvm_vatop_pae: pde_pa not found");
+		if (s == 0) {
+			_kvm_err(kd, kd->program,
+			    "_kvm_vatop: 2MB page address not in dump");
 			goto invalid;
 		}
 		*pa = ofs;

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 14:52:37 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EFA651065676;
	Fri,  6 Nov 2009 14:52:37 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DC3488FC18;
	Fri,  6 Nov 2009 14:52:37 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6EqbrT020079;
	Fri, 6 Nov 2009 14:52:37 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6Eqbxm020072;
	Fri, 6 Nov 2009 14:52:37 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911061452.nA6Eqbxm020072@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 6 Nov 2009 14:52:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198987 - in head/sys/dev: an ixgb vge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 14:52:38 -0000

Author: jhb
Date: Fri Nov  6 14:52:37 2009
New Revision: 198987
URL: http://svn.freebsd.org/changeset/base/198987

Log:
  Use device_printf() and if_printf() instead of printf() with an explicit
  unit number and remove 'unit' members from softc.

Modified:
  head/sys/dev/an/if_an.c
  head/sys/dev/an/if_anreg.h
  head/sys/dev/ixgb/if_ixgb.c
  head/sys/dev/ixgb/if_ixgb.h
  head/sys/dev/vge/if_vge.c
  head/sys/dev/vge/if_vgevar.h

Modified: head/sys/dev/an/if_an.c
==============================================================================
--- head/sys/dev/an/if_an.c	Fri Nov  6 13:10:12 2009	(r198986)
+++ head/sys/dev/an/if_an.c	Fri Nov  6 14:52:37 2009	(r198987)
@@ -349,7 +349,6 @@ an_probe(device_t dev)
 	 */
 	sc->an_bhandle = rman_get_bushandle(sc->port_res);
 	sc->an_btag = rman_get_bustag(sc->port_res);
-	sc->an_unit = device_get_unit(dev);
 
 	ssid.an_len = sizeof(ssid);
 	ssid.an_type = AN_RID_SSIDLIST;
@@ -600,8 +599,7 @@ an_init_mpi350_desc(struct an_softc *sc)
 	cmd_struct.an_parm1 = AN_RX_DESC_OFFSET;
 	cmd_struct.an_parm2 = AN_MAX_RX_DESC;
 	if (an_cmd_struct(sc, &cmd_struct, &reply)) {
-		printf("an%d: failed to allocate RX descriptor\n",
-		       sc->an_unit);
+		if_printf(sc->an_ifp, "failed to allocate RX descriptor\n");
 		return(EIO);
 	}
 
@@ -629,8 +627,7 @@ an_init_mpi350_desc(struct an_softc *sc)
 	cmd_struct.an_parm1 = AN_TX_DESC_OFFSET;
 	cmd_struct.an_parm2 = AN_MAX_TX_DESC;
 	if (an_cmd_struct(sc, &cmd_struct, &reply)) {
-		printf("an%d: failed to allocate TX descriptor\n",
-		       sc->an_unit);
+		if_printf(sc->an_ifp, "failed to allocate TX descriptor\n");
 		return(EIO);
 	}
 
@@ -659,8 +656,7 @@ an_init_mpi350_desc(struct an_softc *sc)
 	cmd_struct.an_parm1 = AN_HOST_DESC_OFFSET;
 	cmd_struct.an_parm2 = 1;
 	if (an_cmd_struct(sc, &cmd_struct, &reply)) {
-		printf("an%d: failed to allocate host descriptor\n",
-		       sc->an_unit);
+		if_printf(sc->an_ifp, "failed to allocate host descriptor\n");
 		return(EIO);
 	}
 
@@ -687,7 +683,7 @@ an_attach(struct an_softc *sc, int unit,
 
 	ifp = sc->an_ifp = if_alloc(IFT_ETHER);
 	if (ifp == NULL) {
-		printf("an%d: can not if_alloc()\n", sc->an_unit);
+		device_printf(sc->an_dev, "can not if_alloc()\n");
 		goto fail;
 	}
 
@@ -708,7 +704,7 @@ an_attach(struct an_softc *sc, int unit,
 
 	/* Load factory config */
 	if (an_cmd(sc, AN_CMD_READCFG, 0)) {
-		printf("an%d: failed to load config data\n", sc->an_unit);
+		device_printf(sc->an_dev, "failed to load config data\n");
 		goto fail;
 	}
 
@@ -716,7 +712,7 @@ an_attach(struct an_softc *sc, int unit,
 	sc->an_config.an_type = AN_RID_GENCONFIG;
 	sc->an_config.an_len = sizeof(struct an_ltv_genconfig);
 	if (an_read_record(sc, (struct an_ltv_gen *)&sc->an_config)) {
-		printf("an%d: read record failed\n", sc->an_unit);
+		device_printf(sc->an_dev, "read record failed\n");
 		goto fail;
 	}
 
@@ -724,7 +720,7 @@ an_attach(struct an_softc *sc, int unit,
 	sc->an_caps.an_type = AN_RID_CAPABILITIES;
 	sc->an_caps.an_len = sizeof(struct an_ltv_caps);
 	if (an_read_record(sc, (struct an_ltv_gen *)&sc->an_caps)) {
-		printf("an%d: read record failed\n", sc->an_unit);
+		device_printf(sc->an_dev, "read record failed\n");
 		goto fail;
 	}
 
@@ -732,7 +728,7 @@ an_attach(struct an_softc *sc, int unit,
 	sc->an_ssidlist.an_type = AN_RID_SSIDLIST;
 	sc->an_ssidlist.an_len = sizeof(struct an_ltv_ssidlist_new);
 	if (an_read_record(sc, (struct an_ltv_gen *)&sc->an_ssidlist)) {
-		printf("an%d: read record failed\n", sc->an_unit);
+		device_printf(sc->an_dev, "read record failed\n");
 		goto fail;
 	}
 
@@ -740,7 +736,7 @@ an_attach(struct an_softc *sc, int unit,
 	sc->an_aplist.an_type = AN_RID_APLIST;
 	sc->an_aplist.an_len = sizeof(struct an_ltv_aplist);
 	if (an_read_record(sc, (struct an_ltv_gen *)&sc->an_aplist)) {
-		printf("an%d: read record failed\n", sc->an_unit);
+		device_printf(sc->an_dev, "read record failed\n");
 		goto fail;
 	}
 
@@ -751,19 +747,19 @@ an_attach(struct an_softc *sc, int unit,
 		sc->an_rssimap.an_type = AN_RID_RSSI_MAP;
 		sc->an_rssimap.an_len = sizeof(struct an_ltv_rssi_map);
 		if (an_read_record(sc, (struct an_ltv_gen *)&sc->an_rssimap)) {
-			printf("an%d: unable to get RSSI <-> dBM map\n", sc->an_unit);
+			device_printf(sc->an_dev,
+			    "unable to get RSSI <-> dBM map\n");
 		} else {
-			printf("an%d: got RSSI <-> dBM map\n", sc->an_unit);
+			device_printf(sc->an_dev, "got RSSI <-> dBM map\n");
 			sc->an_have_rssimap = 1;
 		}
 	} else {
-		printf("an%d: no RSSI <-> dBM map\n", sc->an_unit);
+		device_printf(sc->an_dev, "no RSSI <-> dBM map\n");
 	}
 #endif
 	AN_UNLOCK(sc);
 
 	ifp->if_softc = sc;
-	sc->an_unit = unit;
 	if_initname(ifp, device_get_name(sc->an_dev),
 	    device_get_unit(sc->an_dev));
 	ifp->if_mtu = ETHERMTU;
@@ -907,9 +903,9 @@ an_rxeof(struct an_softc *sc)
 					+ sizeof(rx_frame);
 				/* Check for insane frame length */
 				if (len > sizeof(sc->buf_802_11)) {
-					printf("an%d: oversized packet "
+					if_printf(ifp, "oversized packet "
 					       "received (%d, %d)\n",
-					       sc->an_unit, len, MCLBYTES);
+					       len, MCLBYTES);
 					ifp->if_ierrors++;
 					return;
 				}
@@ -933,9 +929,9 @@ an_rxeof(struct an_softc *sc)
 					+ ieee80211_header_len;
 				/* Check for insane frame length */
 				if (len > sizeof(sc->buf_802_11)) {
-					printf("an%d: oversized packet "
+					if_printf(ifp, "oversized packet "
 					       "received (%d, %d)\n",
-					       sc->an_unit, len, MCLBYTES);
+					       len, MCLBYTES);
 					ifp->if_ierrors++;
 					return;
 				}
@@ -993,9 +989,9 @@ an_rxeof(struct an_softc *sc)
 			len = rx_frame_802_3.an_rx_802_3_payload_len;
 			if (len > sizeof(sc->buf_802_11)) {
 				m_freem(m);
-				printf("an%d: oversized packet "
+				if_printf(ifp, "oversized packet "
 				       "received (%d, %d)\n",
-				       sc->an_unit, len, MCLBYTES);
+				       len, MCLBYTES);
 				ifp->if_ierrors++;
 				return;
 			}
@@ -1073,9 +1069,9 @@ an_rxeof(struct an_softc *sc)
 				len = an_rx_desc.an_len + 12;
 				if (len > MCLBYTES) {
 					m_freem(m);
-					printf("an%d: oversized packet "
+					if_printf(ifp, "oversized packet "
 					       "received (%d, %d)\n",
-					       sc->an_unit, len, MCLBYTES);
+					       len, MCLBYTES);
 					ifp->if_ierrors++;
 					return;
 				}
@@ -1116,9 +1112,8 @@ an_rxeof(struct an_softc *sc)
 					    ((u_int32_t *)(void *)&an_rx_desc)[i]);
 
 			} else {
-				printf("an%d: Didn't get valid RX packet "
+				if_printf(ifp, "Didn't get valid RX packet "
 				       "%x %x %d\n",
-				       sc->an_unit,
 				       an_rx_desc.an_done,
 				       an_rx_desc.an_valid, an_rx_desc.an_len);
 			}
@@ -1393,7 +1388,7 @@ an_reset(struct an_softc *sc)
 	an_cmd(sc, AN_CMD_NOOP2, 0);
 
 	if (an_cmd(sc, AN_CMD_FORCE_SYNCLOSS, 0) == ETIMEDOUT)
-		printf("an%d: reset failed\n", sc->an_unit);
+		if_printf(sc->an_ifp, "reset failed\n");
 
 	an_cmd(sc, AN_CMD_DISABLE, 0);
 
@@ -1410,6 +1405,7 @@ an_read_record(struct an_softc *sc, stru
 	struct an_card_rid_desc an_rid_desc;
 	struct an_command	cmd;
 	struct an_reply		reply;
+	struct ifnet		*ifp;
 	u_int16_t		*ptr;
 	u_int8_t		*ptr2;
 	int			i, len;
@@ -1418,16 +1414,17 @@ an_read_record(struct an_softc *sc, stru
 	if (ltv->an_len < 4 || ltv->an_type == 0)
 		return(EINVAL);
 
+	ifp = sc->an_ifp;
 	if (!sc->mpi350){
 		/* Tell the NIC to enter record read mode. */
 		if (an_cmd(sc, AN_CMD_ACCESS|AN_ACCESS_READ, ltv->an_type)) {
-			printf("an%d: RID access failed\n", sc->an_unit);
+			if_printf(ifp, "RID access failed\n");
 			return(EIO);
 		}
 
 		/* Seek to the record. */
 		if (an_seek(sc, ltv->an_type, 0, AN_BAP1)) {
-			printf("an%d: seek to record failed\n", sc->an_unit);
+			if_printf(ifp, "seek to record failed\n");
 			return(EIO);
 		}
 
@@ -1439,8 +1436,8 @@ an_read_record(struct an_softc *sc, stru
 		 */
 		len = CSR_READ_2(sc, AN_DATA1);
 		if (len > (ltv->an_len - 2)) {
-			printf("an%d: record length mismatch -- expected %d, "
-			       "got %d for Rid %x\n", sc->an_unit,
+			if_printf(ifp, "record length mismatch -- expected %d, "
+			       "got %d for Rid %x\n",
 			       ltv->an_len - 2, len, ltv->an_type);
 			len = ltv->an_len - 2;
 		} else {
@@ -1476,8 +1473,8 @@ an_read_record(struct an_softc *sc, stru
 
 		if (an_cmd_struct(sc, &cmd, &reply)
 		    || reply.an_status & AN_CMD_QUAL_MASK) {
-			printf("an%d: failed to read RID %x %x %x %x %x, %d\n",
-			       sc->an_unit, ltv->an_type,
+			if_printf(ifp, "failed to read RID %x %x %x %x %x, %d\n",
+			       ltv->an_type,
 			       reply.an_status,
 			       reply.an_resp0,
 			       reply.an_resp1,
@@ -1493,8 +1490,8 @@ an_read_record(struct an_softc *sc, stru
 
 		len = an_rid_desc.an_len;
 		if (len > (ltv->an_len - 2)) {
-			printf("an%d: record length mismatch -- expected %d, "
-			       "got %d for Rid %x\n", sc->an_unit,
+			if_printf(ifp, "record length mismatch -- expected %d, "
+			       "got %d for Rid %x\n",
 			       ltv->an_len - 2, len, ltv->an_type);
 			len = ltv->an_len - 2;
 		} else {
@@ -1586,8 +1583,9 @@ an_write_record(struct an_softc *sc, str
 		DELAY(100000);
 
 		if ((i = an_cmd_struct(sc, &cmd, &reply))) {
-			printf("an%d: failed to write RID 1 %x %x %x %x %x, %d\n",
-			    sc->an_unit, ltv->an_type,
+			if_printf(sc->an_ifp,
+			    "failed to write RID 1 %x %x %x %x %x, %d\n",
+			    ltv->an_type,
 			    reply.an_status,
 			    reply.an_resp0,
 			    reply.an_resp1,
@@ -1598,8 +1596,9 @@ an_write_record(struct an_softc *sc, str
 
 
 		if (reply.an_status & AN_CMD_QUAL_MASK) {
-			printf("an%d: failed to write RID 2 %x %x %x %x %x, %d\n",
-			    sc->an_unit, ltv->an_type,
+			if_printf(sc->an_ifp,
+			    "failed to write RID 2 %x %x %x %x %x, %d\n",
+			    ltv->an_type,
 			    reply.an_status,
 			    reply.an_resp0,
 			    reply.an_resp1,
@@ -1623,11 +1622,11 @@ an_dump_record(struct an_softc *sc, stru
 	char			buf[17], temp;
 
 	len = ltv->an_len - 4;
-	printf("an%d: RID %4x, Length %4d, Mode %s\n",
-		sc->an_unit, ltv->an_type, ltv->an_len - 4, string);
+	if_printf(sc->an_ifp, "RID %4x, Length %4d, Mode %s\n",
+		ltv->an_type, ltv->an_len - 4, string);
 
 	if (an_dump == 1 || (an_dump == ltv->an_type)) {
-		printf("an%d:\t", sc->an_unit);
+		if_printf(sc->an_ifp, "\t");
 		bzero(buf,sizeof(buf));
 
 		ptr2 = (u_int8_t *)<v->an_val;
@@ -1642,7 +1641,7 @@ an_dump_record(struct an_softc *sc, stru
 			if (++count == 16) {
 				count = 0;
 				printf("%s\n",buf);
-				printf("an%d:\t", sc->an_unit);
+				if_printf(sc->an_ifp, "\t");
 				bzero(buf,sizeof(buf));
 			}
 		}
@@ -1669,7 +1668,7 @@ an_seek(struct an_softc *sc, int id, int
 		offreg = AN_OFF1;
 		break;
 	default:
-		printf("an%d: invalid data path: %x\n", sc->an_unit, chan);
+		if_printf(sc->an_ifp, "invalid data path: %x\n", chan);
 		return(EIO);
 	}
 
@@ -1743,8 +1742,8 @@ an_alloc_nicmem(struct an_softc *sc, int
 	int			i;
 
 	if (an_cmd(sc, AN_CMD_ALLOC_MEM, len)) {
-		printf("an%d: failed to allocate %d bytes on NIC\n",
-		    sc->an_unit, len);
+		if_printf(sc->an_ifp, "failed to allocate %d bytes on NIC\n",
+		    len);
 		return(ENOMEM);
 	}
 
@@ -1863,7 +1862,7 @@ an_setdef(struct an_softc *sc, struct an
 		}
 		break;
 	default:
-		printf("an%d: unknown RID: %x\n", sc->an_unit, areq->an_type);
+		if_printf(ifp, "unknown RID: %x\n", areq->an_type);
 		return;
 	}
 
@@ -2653,8 +2652,7 @@ an_init(void *xsc)
 		if (sc->mpi350)
 			an_init_mpi350_desc(sc);
 		if (an_init_tx_ring(sc)) {
-			printf("an%d: tx buffer allocation "
-			    "failed\n", sc->an_unit);
+			if_printf(ifp, "tx buffer allocation failed\n");
 			AN_UNLOCK(sc);
 			return;
 		}
@@ -2695,7 +2693,7 @@ an_init(void *xsc)
 	sc->an_ssidlist.an_type = AN_RID_SSIDLIST;
 	sc->an_ssidlist.an_len = sizeof(struct an_ltv_ssidlist_new);
 	if (an_write_record(sc, (struct an_ltv_gen *)&sc->an_ssidlist)) {
-		printf("an%d: failed to set ssid list\n", sc->an_unit);
+		if_printf(ifp, "failed to set ssid list\n");
 		AN_UNLOCK(sc);
 		return;
 	}
@@ -2704,7 +2702,7 @@ an_init(void *xsc)
 	sc->an_aplist.an_type = AN_RID_APLIST;
 	sc->an_aplist.an_len = sizeof(struct an_ltv_aplist);
 	if (an_write_record(sc, (struct an_ltv_gen *)&sc->an_aplist)) {
-		printf("an%d: failed to set AP list\n", sc->an_unit);
+		if_printf(ifp, "failed to set AP list\n");
 		AN_UNLOCK(sc);
 		return;
 	}
@@ -2713,14 +2711,14 @@ an_init(void *xsc)
 	sc->an_config.an_len = sizeof(struct an_ltv_genconfig);
 	sc->an_config.an_type = AN_RID_GENCONFIG;
 	if (an_write_record(sc, (struct an_ltv_gen *)&sc->an_config)) {
-		printf("an%d: failed to set configuration\n", sc->an_unit);
+		if_printf(ifp, "failed to set configuration\n");
 		AN_UNLOCK(sc);
 		return;
 	}
 
 	/* Enable the MAC */
 	if (an_cmd(sc, AN_CMD_ENABLE, 0)) {
-		printf("an%d: failed to enable MAC\n", sc->an_unit);
+		if_printf(ifp, "failed to enable MAC\n");
 		AN_UNLOCK(sc);
 		return;
 	}
@@ -2827,7 +2825,7 @@ an_start(struct ifnet *ifp)
 
 			sc->an_rdata.an_tx_ring[idx] = id;
 			if (an_cmd(sc, AN_CMD_TX, id))
-				printf("an%d: xmit failed\n", sc->an_unit);
+				if_printf(ifp, "xmit failed\n");
 
 			AN_INC(idx, AN_TX_RING_CNT);
 
@@ -2976,7 +2974,7 @@ an_watchdog(struct ifnet *ifp)
 		return;
 	}
 
-	printf("an%d: device timeout\n", sc->an_unit);
+	if_printf(ifp, "device timeout\n");
 
 	an_reset(sc);
 	if (sc->mpi350)
@@ -3127,7 +3125,7 @@ an_cache_store(struct an_softc *sc, stru
 	}
 
 #ifdef SIGDEBUG
-	printf("an: q value %x (MSB=0x%x, LSB=0x%x) \n",
+	if_printf(sc->an_ifp, "q value %x (MSB=0x%x, LSB=0x%x) \n",
 		rx_rssi & 0xffff, rx_rssi >> 8, rx_rssi & 0xff);
 #endif
 
@@ -3567,8 +3565,7 @@ cmdreset(struct ifnet *ifp)
 	an_cmd(sc, AN_CMD_DISABLE, 0);
 
 	if (!(status = WaitBusy(ifp, AN_TIMEOUT))) {
-		printf("an%d: Waitbusy hang b4 RESET =%d\n",
-		       sc->an_unit, status);
+		if_printf(ifp, "Waitbusy hang b4 RESET =%d\n", status);
 		AN_UNLOCK(sc);
 		return -EBUSY;
 	}
@@ -3578,8 +3575,7 @@ cmdreset(struct ifnet *ifp)
 
 
 	if (!(status = WaitBusy(ifp, 100))) {
-		printf("an%d: Waitbusy hang AFTER RESET =%d\n",
-		       sc->an_unit, status);
+		if_printf(ifp, "Waitbusy hang AFTER RESET =%d\n", status);
 		AN_UNLOCK(sc);
 		return -EBUSY;
 	}
@@ -3687,8 +3683,7 @@ flashpchar(struct ifnet *ifp, int byte, 
 	/* timeout for busy clear wait */
 
 	if (waittime <= 0) {
-		printf("an%d: flash putchar busywait timeout! \n",
-		       sc->an_unit);
+		if_printf(ifp, "flash putchar busywait timeout!\n");
 		return -1;
 	}
 	/*
@@ -3774,8 +3769,7 @@ flashcard(struct ifnet *ifp, struct airo
 
 	sc = ifp->if_softc;
 	if (sc->mpi350) {
-		printf("an%d: flashing not supported on MPI 350 yet\n",
-		       sc->an_unit);
+		if_printf(ifp, "flashing not supported on MPI 350 yet\n");
 		return(-1);
 	}
 	status = l_ioctl->command;
@@ -3820,7 +3814,7 @@ flashcard(struct ifnet *ifp, struct airo
 		break;
 	case AIROFLPUTBUF:	/* Send 32k to card */
 		if (l_ioctl->len > FLASH_SIZE) {
-			printf("an%d: Buffer to big, %x %x\n", sc->an_unit,
+			if_printf(ifp, "Buffer to big, %x %x\n",
 			       l_ioctl->len, FLASH_SIZE);
 			return -EINVAL;
 		}
@@ -3837,8 +3831,7 @@ flashcard(struct ifnet *ifp, struct airo
 		break;
 	case AIRORESTART:
 		if ((status = flashrestart(ifp)) != 0) {
-			printf("an%d: FLASHRESTART returned %d\n",
-			       sc->an_unit, status);
+			if_printf(ifp, "FLASHRESTART returned %d\n", status);
 			return -EIO;
 		} else
 			return 0;

Modified: head/sys/dev/an/if_anreg.h
==============================================================================
--- head/sys/dev/an/if_anreg.h	Fri Nov  6 13:10:12 2009	(r198986)
+++ head/sys/dev/an/if_anreg.h	Fri Nov  6 14:52:37 2009	(r198987)
@@ -442,8 +442,6 @@ struct an_tx_ring_data {
 struct an_softc	{
 	struct ifnet		*an_ifp;
 
-        int                     an_unit;
-
 	int	port_rid;	/* resource id for port range */
 	struct resource* port_res; /* resource for port range */
 	int     mem_rid;	/* resource id for memory range */

Modified: head/sys/dev/ixgb/if_ixgb.c
==============================================================================
--- head/sys/dev/ixgb/if_ixgb.c	Fri Nov  6 13:10:12 2009	(r198986)
+++ head/sys/dev/ixgb/if_ixgb.c	Fri Nov  6 14:52:37 2009	(r198987)
@@ -249,18 +249,17 @@ ixgb_attach(device_t dev)
 	int             tsize, rsize;
 	int             error = 0;
 
-	printf("ixgb%d: %s\n", device_get_unit(dev), ixgb_copyright);
+	device_printf(dev, "%s\n", ixgb_copyright);
 	INIT_DEBUGOUT("ixgb_attach: begin");
 
 	/* Allocate, clear, and link in our adapter structure */
 	if (!(adapter = device_get_softc(dev))) {
-		printf("ixgb: adapter structure allocation failed\n");
+		device_printf(dev, "adapter structure allocation failed\n");
 		return (ENOMEM);
 	}
 	bzero(adapter, sizeof(struct adapter));
 	adapter->dev = dev;
 	adapter->osdep.dev = dev;
-	adapter->unit = device_get_unit(dev);
 	IXGB_LOCK_INIT(adapter, device_get_nameunit(dev));
 
 	if (ixgb_adapter_list != NULL)
@@ -299,8 +298,7 @@ ixgb_attach(device_t dev)
 		ETHERMTU + ETHER_HDR_LEN + ETHER_CRC_LEN;
 
 	if (ixgb_allocate_pci_resources(adapter)) {
-		printf("ixgb%d: Allocation of PCI resources failed\n",
-		       adapter->unit);
+		device_printf(dev, "Allocation of PCI resources failed\n");
 		error = ENXIO;
 		goto err_pci;
 	}
@@ -309,8 +307,7 @@ ixgb_attach(device_t dev)
 
 	/* Allocate Transmit Descriptor ring */
 	if (ixgb_dma_malloc(adapter, tsize, &adapter->txdma, BUS_DMA_NOWAIT)) {
-		printf("ixgb%d: Unable to allocate TxDescriptor memory\n",
-		       adapter->unit);
+		device_printf(dev, "Unable to allocate TxDescriptor memory\n");
 		error = ENOMEM;
 		goto err_tx_desc;
 	}
@@ -321,8 +318,7 @@ ixgb_attach(device_t dev)
 
 	/* Allocate Receive Descriptor ring */
 	if (ixgb_dma_malloc(adapter, rsize, &adapter->rxdma, BUS_DMA_NOWAIT)) {
-		printf("ixgb%d: Unable to allocate rx_desc memory\n",
-		       adapter->unit);
+		device_printf(dev, "Unable to allocate rx_desc memory\n");
 		error = ENOMEM;
 		goto err_rx_desc;
 	}
@@ -330,8 +326,7 @@ ixgb_attach(device_t dev)
 
 	/* Initialize the hardware */
 	if (ixgb_hardware_init(adapter)) {
-		printf("ixgb%d: Unable to initialize the hardware\n",
-		       adapter->unit);
+		device_printf(dev, "Unable to initialize the hardware\n");
 		error = EIO;
 		goto err_hw_init;
 	}
@@ -628,7 +623,7 @@ ixgb_watchdog(struct ifnet * ifp)
 		ifp->if_timer = IXGB_TX_TIMEOUT;
 		return;
 	}
-	printf("ixgb%d: watchdog timeout -- resetting\n", adapter->unit);
+	if_printf(ifp, "watchdog timeout -- resetting\n");
 
 	ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
 
@@ -663,23 +658,22 @@ ixgb_init_locked(struct adapter *adapter
 	IXGB_LOCK_ASSERT(adapter);
 
 	ixgb_stop(adapter);
+	ifp = adapter->ifp;
 
 	/* Get the latest mac address, User can use a LAA */
-	bcopy(IF_LLADDR(adapter->ifp), adapter->hw.curr_mac_addr,
-	      IXGB_ETH_LENGTH_OF_ADDRESS);
+	bcopy(IF_LLADDR(ifp), adapter->hw.curr_mac_addr,
+	    IXGB_ETH_LENGTH_OF_ADDRESS);
 
 	/* Initialize the hardware */
 	if (ixgb_hardware_init(adapter)) {
-		printf("ixgb%d: Unable to initialize the hardware\n",
-		       adapter->unit);
+		if_printf(ifp, "Unable to initialize the hardware\n");
 		return;
 	}
 	ixgb_enable_vlans(adapter);
 
 	/* Prepare transmit descriptors and buffers */
 	if (ixgb_setup_transmit_structures(adapter)) {
-		printf("ixgb%d: Could not setup transmit structures\n",
-		       adapter->unit);
+		if_printf(ifp, "Could not setup transmit structures\n");
 		ixgb_stop(adapter);
 		return;
 	}
@@ -690,8 +684,7 @@ ixgb_init_locked(struct adapter *adapter
 
 	/* Prepare receive descriptors and buffers */
 	if (ixgb_setup_receive_structures(adapter)) {
-		printf("ixgb%d: Could not setup receive structures\n",
-		       adapter->unit);
+		if_printf(ifp, "Could not setup receive structures\n");
 		ixgb_stop(adapter);
 		return;
 	}
@@ -959,8 +952,8 @@ ixgb_encap(struct adapter * adapter, str
 					&nsegs, BUS_DMA_NOWAIT);
 	if (error != 0) {
 		adapter->no_tx_dma_setup++;
-		printf("ixgb%d: ixgb_encap: bus_dmamap_load_mbuf failed; "
-		       "error %u\n", adapter->unit, error);
+		if_printf(ifp, "ixgb_encap: bus_dmamap_load_mbuf failed; "
+		       "error %u\n", error);
 		bus_dmamap_destroy(adapter->txtag, map);
 		return (error);
 	}
@@ -1149,15 +1142,14 @@ ixgb_print_link_status(struct adapter * 
 {
 	if (adapter->hw.link_up) {
 		if (!adapter->link_active) {
-			printf("ixgb%d: Link is up %d Mbps %s \n",
-			       adapter->unit,
+			if_printf(adapter->ifp, "Link is up %d Mbps %s \n",
 			       10000,
 			       "Full Duplex");
 			adapter->link_active = 1;
 		}
 	} else {
 		if (adapter->link_active) {
-			printf("ixgb%d: Link is Down \n", adapter->unit);
+			if_printf(adapter->ifp, "Link is Down \n");
 			adapter->link_active = 0;
 		}
 	}
@@ -1213,8 +1205,8 @@ ixgb_identify_hardware(struct adapter * 
 	adapter->hw.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2);
 	if (!((adapter->hw.pci_cmd_word & PCIM_CMD_BUSMASTEREN) &&
 	      (adapter->hw.pci_cmd_word & PCIM_CMD_MEMEN))) {
-		printf("ixgb%d: Memory Access and/or Bus Master bits were not set!\n",
-		       adapter->unit);
+		device_printf(dev,
+		    "Memory Access and/or Bus Master bits were not set!\n");
 		adapter->hw.pci_cmd_word |=
 			(PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN);
 		pci_write_config(dev, PCIR_COMMAND, adapter->hw.pci_cmd_word, 2);
@@ -1234,7 +1226,8 @@ ixgb_identify_hardware(struct adapter * 
 		break;
 	default:
 		INIT_DEBUGOUT1("Unknown device if 0x%x", adapter->hw.device_id);
-		printf("ixgb%d: unsupported device id 0x%x\n", adapter->unit, adapter->hw.device_id);
+		device_printf(dev, "unsupported device id 0x%x\n",
+		    adapter->hw.device_id);
 	}
 
 	return;
@@ -1251,8 +1244,7 @@ ixgb_allocate_pci_resources(struct adapt
 						 &rid, 0, ~0, 1,
 						 RF_ACTIVE);
 	if (!(adapter->res_memory)) {
-		printf("ixgb%d: Unable to allocate bus resource: memory\n",
-		       adapter->unit);
+		device_printf(dev, "Unable to allocate bus resource: memory\n");
 		return (ENXIO);
 	}
 	adapter->osdep.mem_bus_space_tag =
@@ -1266,16 +1258,15 @@ ixgb_allocate_pci_resources(struct adapt
 						    &rid, 0, ~0, 1,
 						  RF_SHAREABLE | RF_ACTIVE);
 	if (!(adapter->res_interrupt)) {
-		printf("ixgb%d: Unable to allocate bus resource: interrupt\n",
-		       adapter->unit);
+		device_printf(dev,
+		    "Unable to allocate bus resource: interrupt\n");
 		return (ENXIO);
 	}
 	if (bus_setup_intr(dev, adapter->res_interrupt,
 			   INTR_TYPE_NET | INTR_MPSAFE,
 			   NULL, (void (*) (void *))ixgb_intr, adapter,
 			   &adapter->int_handler_tag)) {
-		printf("ixgb%d: Error registering interrupt handler!\n",
-		       adapter->unit);
+		device_printf(dev, "Error registering interrupt handler!\n");
 		return (ENXIO);
 	}
 	adapter->hw.back = &adapter->osdep;
@@ -1322,13 +1313,12 @@ ixgb_hardware_init(struct adapter * adap
 
 	/* Make sure we have a good EEPROM before we read from it */
 	if (!ixgb_validate_eeprom_checksum(&adapter->hw)) {
-		printf("ixgb%d: The EEPROM Checksum Is Not Valid\n",
-		       adapter->unit);
+		device_printf(adapter->dev,
+		    "The EEPROM Checksum Is Not Valid\n");
 		return (EIO);
 	}
 	if (!ixgb_init_hw(&adapter->hw)) {
-		printf("ixgb%d: Hardware Initialization Failed",
-		       adapter->unit);
+		device_printf(adapter->dev, "Hardware Initialization Failed");
 		return (EIO);
 	}
 
@@ -1352,7 +1342,7 @@ ixgb_setup_interface(device_t dev, struc
 #if __FreeBSD_version >= 502000
 	if_initname(ifp, device_get_name(dev), device_get_unit(dev));
 #else
-	ifp->if_unit = adapter->unit;
+	ifp->if_unit = device_get_unit(dev);
 	ifp->if_name = "ixgb";
 #endif
 	ifp->if_mtu = ETHERMTU;
@@ -1420,8 +1410,10 @@ static int
 ixgb_dma_malloc(struct adapter * adapter, bus_size_t size,
 		struct ixgb_dma_alloc * dma, int mapflags)
 {
+	device_t dev;
 	int             r;
 
+	dev = adapter->dev;
 	r = bus_dma_tag_create(NULL,	/* parent */
 			       PAGE_SIZE, 0,	/* alignment, bounds */
 			       BUS_SPACE_MAXADDR,	/* lowaddr */
@@ -1437,15 +1429,15 @@ ixgb_dma_malloc(struct adapter * adapter
 #endif
 			       &dma->dma_tag);
 	if (r != 0) {
-		printf("ixgb%d: ixgb_dma_malloc: bus_dma_tag_create failed; "
-		       "error %u\n", adapter->unit, r);
+		device_printf(dev, "ixgb_dma_malloc: bus_dma_tag_create failed; "
+		       "error %u\n", r);
 		goto fail_0;
 	}
 	r = bus_dmamem_alloc(dma->dma_tag, (void **)&dma->dma_vaddr,
 			     BUS_DMA_NOWAIT, &dma->dma_map);
 	if (r != 0) {
-		printf("ixgb%d: ixgb_dma_malloc: bus_dmamem_alloc failed; "
-		       "error %u\n", adapter->unit, r);
+		device_printf(dev, "ixgb_dma_malloc: bus_dmamem_alloc failed; "
+		       "error %u\n", r);
 		goto fail_1;
 	}
 	r = bus_dmamap_load(dma->dma_tag, dma->dma_map, dma->dma_vaddr,
@@ -1454,8 +1446,8 @@ ixgb_dma_malloc(struct adapter * adapter
 			    &dma->dma_paddr,
 			    mapflags | BUS_DMA_NOWAIT);
 	if (r != 0) {
-		printf("ixgb%d: ixgb_dma_malloc: bus_dmamap_load failed; "
-		       "error %u\n", adapter->unit, r);
+		device_printf(dev, "ixgb_dma_malloc: bus_dmamap_load failed; "
+		       "error %u\n", r);
 		goto fail_2;
 	}
 	dma->dma_size = size;
@@ -1493,8 +1485,8 @@ ixgb_allocate_transmit_structures(struct
 	      (struct ixgb_buffer *) malloc(sizeof(struct ixgb_buffer) *
 					    adapter->num_tx_desc, M_DEVBUF,
 					    M_NOWAIT | M_ZERO))) {
-		printf("ixgb%d: Unable to allocate tx_buffer memory\n",
-		       adapter->unit);
+		device_printf(adapter->dev,
+		    "Unable to allocate tx_buffer memory\n");
 		return ENOMEM;
 	}
 	bzero(adapter->tx_buffer_area,
@@ -1528,7 +1520,7 @@ ixgb_setup_transmit_structures(struct ad
 			       NULL,	/* lockfuncarg */
 #endif
 			       &adapter->txtag)) {
-		printf("ixgb%d: Unable to allocate TX DMA tag\n", adapter->unit);
+		device_printf(adapter->dev, "Unable to allocate TX DMA tag\n");
 		return (ENOMEM);
 	}
 	if (ixgb_allocate_transmit_structures(adapter))
@@ -1845,8 +1837,8 @@ ixgb_allocate_receive_structures(struct 
 	      (struct ixgb_buffer *) malloc(sizeof(struct ixgb_buffer) *
 					    adapter->num_rx_desc, M_DEVBUF,
 					    M_NOWAIT | M_ZERO))) {
-		printf("ixgb%d: Unable to allocate rx_buffer memory\n",
-		       adapter->unit);
+		device_printf(adapter->dev,
+		    "Unable to allocate rx_buffer memory\n");
 		return (ENOMEM);
 	}
 	bzero(adapter->rx_buffer_area,
@@ -1867,9 +1859,9 @@ ixgb_allocate_receive_structures(struct 
 #endif
 				   &adapter->rxtag);
 	if (error != 0) {
-		printf("ixgb%d: ixgb_allocate_receive_structures: "
+		device_printf(adapter->dev, "ixgb_allocate_receive_structures: "
 		       "bus_dma_tag_create failed; error %u\n",
-		       adapter->unit, error);
+		       error);
 		goto fail_0;
 	}
 	rx_buffer = adapter->rx_buffer_area;
@@ -1877,9 +1869,10 @@ ixgb_allocate_receive_structures(struct 
 		error = bus_dmamap_create(adapter->rxtag, BUS_DMA_NOWAIT,
 					  &rx_buffer->map);
 		if (error != 0) {
-			printf("ixgb%d: ixgb_allocate_receive_structures: "
+			device_printf(adapter->dev,
+			       "ixgb_allocate_receive_structures: "
 			       "bus_dmamap_create failed; error %u\n",
-			       adapter->unit, error);
+			       error);
 			goto fail_1;
 		}
 	}
@@ -2431,20 +2424,21 @@ ixgb_print_hw_stats(struct adapter * ada
 	char            buf_speed[100], buf_type[100];
 	ixgb_bus_speed  bus_speed;
 	ixgb_bus_type   bus_type;
-	int             unit = adapter->unit;
+	device_t dev;
 
+	dev = adapter->dev;
 #ifdef _SV_
-	printf("ixgb%d: Packets not Avail = %ld\n", unit,
+	device_printf(dev, "Packets not Avail = %ld\n",
 	       adapter->no_pkts_avail);
-	printf("ixgb%d: CleanTxInterrupts = %ld\n", unit,
+	device_printf(dev, "CleanTxInterrupts = %ld\n",
 	       adapter->clean_tx_interrupts);
-	printf("ixgb%d: ICR RXDMT0 = %lld\n", unit,
+	device_printf(dev, "ICR RXDMT0 = %lld\n",
 	       (long long)adapter->sv_stats.icr_rxdmt0);
-	printf("ixgb%d: ICR RXO = %lld\n", unit,
+	device_printf(dev, "ICR RXO = %lld\n",
 	       (long long)adapter->sv_stats.icr_rxo);
-	printf("ixgb%d: ICR RXT0 = %lld\n", unit,
+	device_printf(dev, "ICR RXT0 = %lld\n",
 	       (long long)adapter->sv_stats.icr_rxt0);
-	printf("ixgb%d: ICR TXDW = %lld\n", unit,
+	device_printf(dev, "ICR TXDW = %lld\n",
 	       (long long)adapter->sv_stats.icr_TXDW);
 #endif				/* _SV_ */
 
@@ -2456,55 +2450,55 @@ ixgb_print_hw_stats(struct adapter * ada
 		bus_speed == ixgb_bus_speed_100 ? "100MHz" :
 		bus_speed == ixgb_bus_speed_133 ? "133MHz" :
 		"UNKNOWN");
-	printf("ixgb%d: PCI_Bus_Speed = %s\n", unit,
+	device_printf(dev, "PCI_Bus_Speed = %s\n",
 	       buf_speed);
 
 	sprintf(buf_type,
 		bus_type == ixgb_bus_type_pci ? "PCI" :
 		bus_type == ixgb_bus_type_pcix ? "PCI-X" :
 		"UNKNOWN");
-	printf("ixgb%d: PCI_Bus_Type = %s\n", unit,
+	device_printf(dev, "PCI_Bus_Type = %s\n",
 	       buf_type);
 
-	printf("ixgb%d: Tx Descriptors not Avail1 = %ld\n", unit,
+	device_printf(dev, "Tx Descriptors not Avail1 = %ld\n",
 	       adapter->no_tx_desc_avail1);
-	printf("ixgb%d: Tx Descriptors not Avail2 = %ld\n", unit,
+	device_printf(dev, "Tx Descriptors not Avail2 = %ld\n",
 	       adapter->no_tx_desc_avail2);
-	printf("ixgb%d: Std Mbuf Failed = %ld\n", unit,
+	device_printf(dev, "Std Mbuf Failed = %ld\n",
 	       adapter->mbuf_alloc_failed);
-	printf("ixgb%d: Std Cluster Failed = %ld\n", unit,
+	device_printf(dev, "Std Cluster Failed = %ld\n",
 	       adapter->mbuf_cluster_failed);
 
-	printf("ixgb%d: Defer count = %lld\n", unit,
+	device_printf(dev, "Defer count = %lld\n",
 	       (long long)adapter->stats.dc);
-	printf("ixgb%d: Missed Packets = %lld\n", unit,
+	device_printf(dev, "Missed Packets = %lld\n",
 	       (long long)adapter->stats.mpc);
-	printf("ixgb%d: Receive No Buffers = %lld\n", unit,
+	device_printf(dev, "Receive No Buffers = %lld\n",
 	       (long long)adapter->stats.rnbc);
-	printf("ixgb%d: Receive length errors = %lld\n", unit,
+	device_printf(dev, "Receive length errors = %lld\n",
 	       (long long)adapter->stats.rlec);
-	printf("ixgb%d: Crc errors = %lld\n", unit,
+	device_printf(dev, "Crc errors = %lld\n",
 	       (long long)adapter->stats.crcerrs);
-	printf("ixgb%d: Driver dropped packets = %ld\n", unit,
+	device_printf(dev, "Driver dropped packets = %ld\n",
 	       adapter->dropped_pkts);
 
-	printf("ixgb%d: XON Rcvd = %lld\n", unit,
+	device_printf(dev, "XON Rcvd = %lld\n",
 	       (long long)adapter->stats.xonrxc);
-	printf("ixgb%d: XON Xmtd = %lld\n", unit,
+	device_printf(dev, "XON Xmtd = %lld\n",
 	       (long long)adapter->stats.xontxc);
-	printf("ixgb%d: XOFF Rcvd = %lld\n", unit,
+	device_printf(dev, "XOFF Rcvd = %lld\n",
 	       (long long)adapter->stats.xoffrxc);
-	printf("ixgb%d: XOFF Xmtd = %lld\n", unit,
+	device_printf(dev, "XOFF Xmtd = %lld\n",
 	       (long long)adapter->stats.xofftxc);
 
-	printf("ixgb%d: Good Packets Rcvd = %lld\n", unit,
+	device_printf(dev, "Good Packets Rcvd = %lld\n",
 	       (long long)adapter->stats.gprcl);
-	printf("ixgb%d: Good Packets Xmtd = %lld\n", unit,
+	device_printf(dev, "Good Packets Xmtd = %lld\n",
 	       (long long)adapter->stats.gptcl);
 
-	printf("ixgb%d: Jumbo frames recvd = %lld\n", unit,
+	device_printf(dev, "Jumbo frames recvd = %lld\n",
 	       (long long)adapter->stats.jprcl);
-	printf("ixgb%d: Jumbo frames Xmtd = %lld\n", unit,
+	device_printf(dev, "Jumbo frames Xmtd = %lld\n",
 	       (long long)adapter->stats.jptcl);
 
 	return;

Modified: head/sys/dev/ixgb/if_ixgb.h
==============================================================================
--- head/sys/dev/ixgb/if_ixgb.h	Fri Nov  6 13:10:12 2009	(r198986)
+++ head/sys/dev/ixgb/if_ixgb.h	Fri Nov  6 14:52:37 2009	(r198987)
@@ -284,7 +284,6 @@ struct adapter {
 	struct ifmedia  media;
 	struct callout 	timer;
 	int             io_rid;
-	u_int8_t        unit;
 	struct mtx	mtx;
 
 	/* Info about the board itself */

Modified: head/sys/dev/vge/if_vge.c
==============================================================================
--- head/sys/dev/vge/if_vge.c	Fri Nov  6 13:10:12 2009	(r198986)
+++ head/sys/dev/vge/if_vge.c	Fri Nov  6 14:52:37 2009	(r198987)
@@ -967,8 +967,6 @@ vge_attach(dev)
 	 */
 	vge_read_eeprom(sc, (caddr_t)eaddr, VGE_EE_EADDR, 3, 0);
 
-	sc->vge_unit = unit;
-
 	/*
 	 * Allocate the parent bus DMA tag appropriate for PCI.
 	 */
@@ -993,7 +991,7 @@ vge_attach(dev)
 
 	ifp = sc->vge_ifp = if_alloc(IFT_ETHER);
 	if (ifp == NULL) {
-		printf("vge%d: can not if_alloc()\n", sc->vge_unit);
+		device_printf(dev, "can not if_alloc()\n");
 		error = ENOSPC;
 		goto fail;
 	}
@@ -1001,7 +999,7 @@ vge_attach(dev)
 	/* Do MII setup */
 	if (mii_phy_probe(dev, &sc->vge_miibus,
 	    vge_ifmedia_upd, vge_ifmedia_sts)) {
-		printf("vge%d: MII without any phy!\n", sc->vge_unit);
+		device_printf(dev, "MII without any phy!\n");
 		error = ENXIO;
 		goto fail;
 	}
@@ -1736,8 +1734,7 @@ vge_encap(sc, m_head, idx)
 	    m_head, vge_dma_map_tx_desc, &arg, BUS_DMA_NOWAIT);
 
 	if (error && error != EFBIG) {
-		printf("vge%d: can't map mbuf (error %d)\n",
-		    sc->vge_unit, error);
+		if_printf(sc->vge_ifp, "can't map mbuf (error %d)\n", error);
 		return (ENOBUFS);
 	}
 
@@ -1758,8 +1755,8 @@ vge_encap(sc, m_head, idx)
 		error = bus_dmamap_load_mbuf(sc->vge_ldata.vge_mtag, map,
 		    m_head, vge_dma_map_tx_desc, &arg, BUS_DMA_NOWAIT);
 		if (error) {
-			printf("vge%d: can't map mbuf (error %d)\n",
-			    sc->vge_unit, error);
+			if_printf(sc->vge_ifp, "can't map mbuf (error %d)\n",
+			    error);
 			return (EFBIG);
 		}
 	}
@@ -2254,7 +2251,7 @@ vge_watchdog(ifp)
 
 	sc = ifp->if_softc;
 	VGE_LOCK(sc);
-	printf("vge%d: watchdog timeout\n", sc->vge_unit);
+	if_printf(ifp, "watchdog timeout\n");
 	ifp->if_oerrors++;
 
 	vge_txeof(sc);

Modified: head/sys/dev/vge/if_vgevar.h
==============================================================================
--- head/sys/dev/vge/if_vgevar.h	Fri Nov  6 13:10:12 2009	(r198986)
+++ head/sys/dev/vge/if_vgevar.h	Fri Nov  6 14:52:37 2009	(r198987)
@@ -108,7 +108,6 @@ struct vge_softc {
 	device_t		vge_miibus;
 	bus_dma_tag_t		vge_parent_tag;
 	bus_dma_tag_t		vge_tag;
-	u_int8_t		vge_unit;	/* interface number */
 	u_int8_t		vge_type;
 	int			vge_if_flags;
 	int			vge_rx_consumed;

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 14:55:02 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AB0791065670;
	Fri,  6 Nov 2009 14:55:02 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 923838FC16;
	Fri,  6 Nov 2009 14:55:02 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6Et28v020187;
	Fri, 6 Nov 2009 14:55:02 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6Et1Pu020171;
	Fri, 6 Nov 2009 14:55:01 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911061455.nA6Et1Pu020171@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 6 Nov 2009 14:55:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198988 - in head/sys: dev/ath dev/cxgb dev/hatm
	dev/ixgbe dev/nfe dev/patm dev/sk dev/stge net net80211 netgraph
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 14:55:02 -0000

Author: jhb
Date: Fri Nov  6 14:55:01 2009
New Revision: 198988
URL: http://svn.freebsd.org/changeset/base/198988

Log:
  Take a step towards removing if_watchdog/if_timer.  Don't explicitly set
  if_watchdog/if_timer to NULL/0 when initializing an ifnet.  if_alloc()
  sets those members to NULL/0 already.

Modified:
  head/sys/dev/ath/if_ath.c
  head/sys/dev/cxgb/cxgb_main.c
  head/sys/dev/hatm/if_hatm.c
  head/sys/dev/ixgbe/ixgbe.c
  head/sys/dev/nfe/if_nfe.c
  head/sys/dev/patm/if_patm_attach.c
  head/sys/dev/sk/if_sk.c
  head/sys/dev/stge/if_stge.c
  head/sys/net/if_ef.c
  head/sys/net80211/ieee80211.c
  head/sys/netgraph/ng_eiface.c
  head/sys/netgraph/ng_fec.c
  head/sys/netgraph/ng_iface.c
  head/sys/netgraph/ng_sppp.c

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/ath/if_ath.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -560,7 +560,6 @@ ath_attach(u_int16_t devid, struct ath_s
 	ifp->if_softc = sc;
 	ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST;
 	ifp->if_start = ath_start;
-	ifp->if_watchdog = NULL;
 	ifp->if_ioctl = ath_ioctl;
 	ifp->if_init = ath_init;
 	IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);

Modified: head/sys/dev/cxgb/cxgb_main.c
==============================================================================
--- head/sys/dev/cxgb/cxgb_main.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/cxgb/cxgb_main.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -1054,10 +1054,6 @@ cxgb_port_attach(device_t dev)
 	ifp->if_ioctl = cxgb_ioctl;
 	ifp->if_start = cxgb_start;
 
-
-	ifp->if_timer = 0;	/* Disable ifnet watchdog */
-	ifp->if_watchdog = NULL;
-
 	ifp->if_snd.ifq_drv_maxlen = cxgb_snd_queue_len;
 	IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
 	IFQ_SET_READY(&ifp->if_snd);

Modified: head/sys/dev/hatm/if_hatm.c
==============================================================================
--- head/sys/dev/hatm/if_hatm.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/hatm/if_hatm.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -1928,7 +1928,6 @@ hatm_attach(device_t dev)
 	ifp->if_flags = IFF_SIMPLEX;
 	ifp->if_ioctl = hatm_ioctl;
 	ifp->if_start = hatm_start;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = hatm_init;
 
 	utopia_attach(&sc->utopia, IFP2IFATM(sc->ifp), &sc->media, &sc->mtx,

Modified: head/sys/dev/ixgbe/ixgbe.c
==============================================================================
--- head/sys/dev/ixgbe/ixgbe.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/ixgbe/ixgbe.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -2508,8 +2508,6 @@ ixgbe_setup_interface(device_t dev, stru
 	ifp->if_transmit = ixgbe_mq_start;
 	ifp->if_qflush = ixgbe_qflush;
 #endif
-	ifp->if_timer = 0;
-	ifp->if_watchdog = NULL;
 	ifp->if_snd.ifq_maxlen = adapter->num_tx_desc - 2;
 
 	ether_ifattach(ifp, adapter->hw.mac.addr);

Modified: head/sys/dev/nfe/if_nfe.c
==============================================================================
--- head/sys/dev/nfe/if_nfe.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/nfe/if_nfe.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -567,7 +567,6 @@ nfe_attach(device_t dev)
 	ifp->if_start = nfe_start;
 	ifp->if_hwassist = 0;
 	ifp->if_capabilities = 0;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = nfe_init;
 	IFQ_SET_MAXLEN(&ifp->if_snd, NFE_TX_RING_COUNT - 1);
 	ifp->if_snd.ifq_drv_maxlen = NFE_TX_RING_COUNT - 1;

Modified: head/sys/dev/patm/if_patm_attach.c
==============================================================================
--- head/sys/dev/patm/if_patm_attach.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/patm/if_patm_attach.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -197,11 +197,9 @@ patm_attach(device_t dev)
 	ifp->if_softc = sc;
 	if_initname(ifp, device_get_name(dev), device_get_unit(dev));
 	ifp->if_flags = IFF_SIMPLEX;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = patm_init;
 	ifp->if_ioctl = patm_ioctl;
 	ifp->if_start = patm_start;
-	ifp->if_watchdog = NULL;
 
 	/* do this early so we can destroy unconditionally */
 	mtx_init(&sc->mtx, device_get_nameunit(dev),

Modified: head/sys/dev/sk/if_sk.c
==============================================================================
--- head/sys/dev/sk/if_sk.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/sk/if_sk.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -1372,8 +1372,6 @@ sk_attach(dev)
 	ifp->if_capenable = ifp->if_capabilities;
 	ifp->if_ioctl = sk_ioctl;
 	ifp->if_start = sk_start;
-	ifp->if_timer = 0;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = sk_init;
 	IFQ_SET_MAXLEN(&ifp->if_snd, SK_TX_RING_CNT - 1);
 	ifp->if_snd.ifq_drv_maxlen = SK_TX_RING_CNT - 1;

Modified: head/sys/dev/stge/if_stge.c
==============================================================================
--- head/sys/dev/stge/if_stge.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/dev/stge/if_stge.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -722,8 +722,6 @@ stge_attach(device_t dev)
 	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
 	ifp->if_ioctl = stge_ioctl;
 	ifp->if_start = stge_start;
-	ifp->if_timer = 0;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = stge_init;
 	ifp->if_mtu = ETHERMTU;
 	ifp->if_snd.ifq_drv_maxlen = STGE_TX_RING_CNT - 1;

Modified: head/sys/net/if_ef.c
==============================================================================
--- head/sys/net/if_ef.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/net/if_ef.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -128,7 +128,6 @@ ef_attach(struct efnet *sc)
 	struct ifnet *ifp = sc->ef_ifp;
 
 	ifp->if_start = ef_start;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = ef_init;
 	ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
 	ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);

Modified: head/sys/net80211/ieee80211.c
==============================================================================
--- head/sys/net80211/ieee80211.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/net80211/ieee80211.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -391,7 +391,6 @@ ieee80211_vap_setup(struct ieee80211com 
 	ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST;
 	ifp->if_start = ieee80211_start;
 	ifp->if_ioctl = ieee80211_ioctl;
-	ifp->if_watchdog = NULL;		/* NB: no watchdog routine */
 	ifp->if_init = ieee80211_init;
 	/* NB: input+output filled in by ether_ifattach */
 	IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);

Modified: head/sys/netgraph/ng_eiface.c
==============================================================================
--- head/sys/netgraph/ng_eiface.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/netgraph/ng_eiface.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -369,7 +369,6 @@ ng_eiface_constructor(node_p node)
 	ifp->if_output = ether_output;
 	ifp->if_start = ng_eiface_start;
 	ifp->if_ioctl = ng_eiface_ioctl;
-	ifp->if_watchdog = NULL;
 	ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
 	ifp->if_flags = (IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST);
 

Modified: head/sys/netgraph/ng_fec.c
==============================================================================
--- head/sys/netgraph/ng_fec.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/netgraph/ng_fec.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -1226,7 +1226,6 @@ ng_fec_constructor(node_p node)
 	ifp->if_start = ng_fec_start;
 	ifp->if_ioctl = ng_fec_ioctl;
 	ifp->if_init = ng_fec_init;
-	ifp->if_watchdog = NULL;
 	ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
 	ifp->if_mtu = NG_FEC_MTU_DEFAULT;
 	ifp->if_flags = (IFF_SIMPLEX|IFF_BROADCAST|IFF_MULTICAST);

Modified: head/sys/netgraph/ng_iface.c
==============================================================================
--- head/sys/netgraph/ng_iface.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/netgraph/ng_iface.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -558,7 +558,6 @@ ng_iface_constructor(node_p node)
 	ifp->if_output = ng_iface_output;
 	ifp->if_start = ng_iface_start;
 	ifp->if_ioctl = ng_iface_ioctl;
-	ifp->if_watchdog = NULL;
 	ifp->if_mtu = NG_IFACE_MTU_DEFAULT;
 	ifp->if_flags = (IFF_SIMPLEX|IFF_POINTOPOINT|IFF_NOARP|IFF_MULTICAST);
 	ifp->if_type = IFT_PROPVIRTUAL;		/* XXX */

Modified: head/sys/netgraph/ng_sppp.c
==============================================================================
--- head/sys/netgraph/ng_sppp.c	Fri Nov  6 14:52:37 2009	(r198987)
+++ head/sys/netgraph/ng_sppp.c	Fri Nov  6 14:55:01 2009	(r198988)
@@ -279,7 +279,6 @@ ng_sppp_constructor (node_p node)
 	if_initname (SP2IFP(pp), NG_SPPP_IFACE_NAME, priv->unit);
 	ifp->if_start = ng_sppp_start;
 	ifp->if_ioctl = ng_sppp_ioctl;
-	ifp->if_watchdog = NULL;
 	ifp->if_flags = (IFF_POINTOPOINT|IFF_MULTICAST);
 
 	/* Give this node the same name as the interface (if possible) */

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 16:55:05 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F16C11065670;
	Fri,  6 Nov 2009 16:55:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E09588FC24;
	Fri,  6 Nov 2009 16:55:05 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6Gt5Hd022832;
	Fri, 6 Nov 2009 16:55:05 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6Gt5HW022830;
	Fri, 6 Nov 2009 16:55:05 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911061655.nA6Gt5HW022830@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 6 Nov 2009 16:55:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198990 - head/sys/netinet
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 16:55:06 -0000

Author: jhb
Date: Fri Nov  6 16:55:05 2009
New Revision: 198990
URL: http://svn.freebsd.org/changeset/base/198990

Log:
  Several years ago a feature was added to TCP that casued soreceive() to
  send an ACK right away if data was drained from a TCP socket that had
  previously advertised a zero-sized window.  The current code requires the
  receive window to be exactly zero for this to kick in.  If window scaling is
  enabled and the window is smaller than the scale, then the effective window
  that is advertised is zero.  However, in that case the zero-sized window
  handling is not enabled because the window is not exactly zero.  The fix
  changes the code to check the raw window value against zero.
  
  Reviewed by:	bz
  MFC after:	1 week

Modified:
  head/sys/netinet/tcp_output.c

Modified: head/sys/netinet/tcp_output.c
==============================================================================
--- head/sys/netinet/tcp_output.c	Fri Nov  6 15:24:48 2009	(r198989)
+++ head/sys/netinet/tcp_output.c	Fri Nov  6 16:55:05 2009	(r198990)
@@ -992,7 +992,7 @@ send:
 	 * to read more data than can be buffered prior to transmitting on
 	 * the connection.
 	 */
-	if (recwin == 0)
+	if (th->th_win == 0)
 		tp->t_flags |= TF_RXWIN0SENT;
 	else
 		tp->t_flags &= ~TF_RXWIN0SENT;

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 17:34:27 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 18443106566B;
	Fri,  6 Nov 2009 17:34:27 +0000 (UTC) (envelope-from ume@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 075B98FC15;
	Fri,  6 Nov 2009 17:34:27 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6HYQR4023826;
	Fri, 6 Nov 2009 17:34:26 GMT (envelope-from ume@svn.freebsd.org)
Received: (from ume@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6HYQsZ023824;
	Fri, 6 Nov 2009 17:34:26 GMT (envelope-from ume@svn.freebsd.org)
Message-Id: <200911061734.nA6HYQsZ023824@svn.freebsd.org>
From: Hajimu UMEMOTO 
Date: Fri, 6 Nov 2009 17:34:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198993 - head/sys/netinet6
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 17:34:27 -0000

Author: ume
Date: Fri Nov  6 17:34:26 2009
New Revision: 198993
URL: http://svn.freebsd.org/changeset/base/198993

Log:
  Make nd6_llinfo_timer() does its job, again.  ln->la_expire was
  greater than time_second, in most cases.
  
  MFC after:	3 days

Modified:
  head/sys/netinet6/nd6.c

Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c	Fri Nov  6 17:11:58 2009	(r198992)
+++ head/sys/netinet6/nd6.c	Fri Nov  6 17:34:26 2009	(r198993)
@@ -507,7 +507,7 @@ nd6_llinfo_timer(void *arg)
 
 	ndi = ND_IFINFO(ifp);
 	dst = &L3_ADDR_SIN6(ln)->sin6_addr;
-	if ((ln->la_flags & LLE_STATIC) || (ln->la_expire > time_second)) {
+	if (ln->la_flags & LLE_STATIC) {
 		goto done;
 	}
 

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 18:28:14 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 605E7106566C;
	Fri,  6 Nov 2009 18:28:14 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4EF3B8FC0C;
	Fri,  6 Nov 2009 18:28:14 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6ISDkL025104;
	Fri, 6 Nov 2009 18:28:14 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6ISD8a025098;
	Fri, 6 Nov 2009 18:28:13 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911061828.nA6ISD8a025098@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 6 Nov 2009 18:28:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198995 - head/sys/dev/an
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 18:28:14 -0000

Author: jhb
Date: Fri Nov  6 18:28:13 2009
New Revision: 198995
URL: http://svn.freebsd.org/changeset/base/198995

Log:
  - Use device_printf() instead of printf() with an explicit unit number
    in the PCI attach routine.
  - Simplify PCI probe.
  - Remove no-longer-used 'unit' from an_attach() parameters.
  
  PR:		kern/126924
  Submitted by:	gavin

Modified:
  head/sys/dev/an/if_an.c
  head/sys/dev/an/if_an_isa.c
  head/sys/dev/an/if_an_pccard.c
  head/sys/dev/an/if_an_pci.c
  head/sys/dev/an/if_anreg.h

Modified: head/sys/dev/an/if_an.c
==============================================================================
--- head/sys/dev/an/if_an.c	Fri Nov  6 17:58:44 2009	(r198994)
+++ head/sys/dev/an/if_an.c	Fri Nov  6 18:28:13 2009	(r198995)
@@ -674,7 +674,7 @@ an_init_mpi350_desc(struct an_softc *sc)
 }
 
 int
-an_attach(struct an_softc *sc, int unit, int flags)
+an_attach(struct an_softc *sc, int flags)
 {
 	struct ifnet		*ifp;
 	int			error = EIO;

Modified: head/sys/dev/an/if_an_isa.c
==============================================================================
--- head/sys/dev/an/if_an_isa.c	Fri Nov  6 17:58:44 2009	(r198994)
+++ head/sys/dev/an/if_an_isa.c	Fri Nov  6 18:28:13 2009	(r198995)
@@ -115,7 +115,7 @@ an_attach_isa(device_t dev)
 	sc->an_btag = rman_get_bustag(sc->port_res);
 	sc->an_dev = dev;
 
-	error = an_attach(sc, device_get_unit(dev), flags);
+	error = an_attach(sc, flags);
 	if (error) {
 		an_release_resources(dev);
 		return (error);

Modified: head/sys/dev/an/if_an_pccard.c
==============================================================================
--- head/sys/dev/an/if_an_pccard.c	Fri Nov  6 17:58:44 2009	(r198994)
+++ head/sys/dev/an/if_an_pccard.c	Fri Nov  6 18:28:13 2009	(r198995)
@@ -145,7 +145,7 @@ an_pccard_attach(device_t dev)
 	sc->an_btag = rman_get_bustag(sc->port_res);
 	sc->an_dev = dev;
 
-	error = an_attach(sc, device_get_unit(dev), flags);
+	error = an_attach(sc, flags);
 	if (error)
 		goto fail;
 	

Modified: head/sys/dev/an/if_an_pci.c
==============================================================================
--- head/sys/dev/an/if_an_pci.c	Fri Nov  6 17:58:44 2009	(r198994)
+++ head/sys/dev/an/if_an_pci.c	Fri Nov  6 18:28:13 2009	(r198995)
@@ -103,6 +103,7 @@ struct an_type {
 
 static struct an_type an_devs[] = {
 	{ AIRONET_VENDORID, AIRONET_DEVICEID_35x, "Cisco Aironet 350 Series" },
+	{ AIRONET_VENDORID, AIRONET_DEVICEID_MPI350, "Cisco Aironet MPI350" },
 	{ AIRONET_VENDORID, AIRONET_DEVICEID_4500, "Aironet PCI4500" },
 	{ AIRONET_VENDORID, AIRONET_DEVICEID_4800, "Aironet PCI4800" },
 	{ AIRONET_VENDORID, AIRONET_DEVICEID_4xxx, "Aironet PCI4500/PCI4800" },
@@ -133,13 +134,6 @@ an_probe_pci(device_t dev)
 		t++;
 	}
 
-	if (pci_get_vendor(dev) == AIRONET_VENDORID &&
-	    pci_get_device(dev) == AIRONET_DEVICEID_MPI350) {
-		device_set_desc(dev, "Cisco Aironet MPI350");
-		an_pci_probe(dev);
-		return(BUS_PROBE_DEFAULT);
-	}
-
 	return(ENXIO);
 }
 
@@ -149,10 +143,9 @@ an_attach_pci(dev)
 {
 	u_int32_t		command;
 	struct an_softc		*sc;
-	int 			unit, flags, error = 0;
+	int 			flags, error = 0;
 
 	sc = device_get_softc(dev);
-	unit = device_get_unit(dev);
 	flags = device_get_flags(dev);
 
 	if (pci_get_vendor(dev) == AIRONET_VENDORID &&
@@ -169,7 +162,7 @@ an_attach_pci(dev)
 		command = pci_read_config(dev, PCIR_COMMAND, 4);
 
 		if (!(command & PCIM_CMD_PORTEN)) {
-			printf("an%d: failed to enable I/O ports!\n", unit);
+			device_printf(dev, "failed to enable I/O ports!\n");
 			error = ENXIO;
 			goto fail;
 		}
@@ -178,7 +171,7 @@ an_attach_pci(dev)
 	error = an_alloc_port(dev, sc->port_rid, 1);
 
 	if (error) {
-		printf("an%d: couldn't map ports\n", unit);
+		device_printf(dev, "couldn't map ports\n");
 		goto fail;
 	}
 
@@ -191,7 +184,7 @@ an_attach_pci(dev)
 		sc->mem_rid = PCIR_BAR(1);
 		error = an_alloc_memory(dev, sc->mem_rid, 1);
 		if (error) {
-			printf("an%d: couldn't map memory\n", unit);
+			device_printf(dev, "couldn't map memory\n");
 			goto fail;
 		}
 		sc->an_mem_btag = rman_get_bustag(sc->mem_res);
@@ -202,7 +195,7 @@ an_attach_pci(dev)
 		error = an_alloc_aux_memory(dev, sc->mem_aux_rid, 
 		    AN_AUX_MEM_SIZE);
 		if (error) {
-			printf("an%d: couldn't map aux memory\n", unit);
+			device_printf(dev, "couldn't map aux memory\n");
 			goto fail;
 		}
 		sc->an_mem_aux_btag = rman_get_bustag(sc->mem_aux_res);
@@ -222,7 +215,7 @@ an_attach_pci(dev)
 			       NULL,			/* lockarg */
 			       &sc->an_dtag);
 		if (error) {
-			printf("an%d: couldn't get DMA region\n", unit);
+			device_printf(dev, "couldn't get DMA region\n");
 			goto fail;
 		}
 	}
@@ -230,12 +223,14 @@ an_attach_pci(dev)
 	/* Allocate interrupt */
 	error = an_alloc_irq(dev, 0, RF_SHAREABLE);
 	if (error) {
+		device_printf(dev, "couldn't get interrupt\n");
 		goto fail;
 	}
 
 	sc->an_dev = dev;
-	error = an_attach(sc, device_get_unit(dev), flags);
+	error = an_attach(sc, flags);
 	if (error) {
+		device_printf(dev, "couldn't attach\n");
 		goto fail;
 	}
 
@@ -244,6 +239,8 @@ an_attach_pci(dev)
 	 */
 	error = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET,
 	    NULL, an_intr, sc, &sc->irq_handle);
+	if (error)
+		device_printf(dev, "couldn't setup interrupt\n");
 
 fail:
 	if (error)

Modified: head/sys/dev/an/if_anreg.h
==============================================================================
--- head/sys/dev/an/if_anreg.h	Fri Nov  6 17:58:44 2009	(r198994)
+++ head/sys/dev/an/if_anreg.h	Fri Nov  6 18:28:13 2009	(r198995)
@@ -511,7 +511,7 @@ int	an_pci_probe	(device_t);
 int	an_probe	(device_t);
 int	an_shutdown	(device_t);
 void	an_resume	(device_t);
-int	an_attach		(struct an_softc *, int, int);
+int	an_attach		(struct an_softc *, int);
 int	an_detach	(device_t);
 void    an_stop		(struct an_softc *);
 

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 18:36:10 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4F19D1065693;
	Fri,  6 Nov 2009 18:36:10 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id EFCCE8FC1A;
	Fri,  6 Nov 2009 18:36:09 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6Ia9oS025389;
	Fri, 6 Nov 2009 18:36:09 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6Ia98Z025387;
	Fri, 6 Nov 2009 18:36:09 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911061836.nA6Ia98Z025387@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Fri, 6 Nov 2009 18:36:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198996 - head/sys/dev/msk
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 18:36:10 -0000

Author: yongari
Date: Fri Nov  6 18:36:09 2009
New Revision: 198996
URL: http://svn.freebsd.org/changeset/base/198996

Log:
  Remove unnecessary header file.

Modified:
  head/sys/dev/msk/if_msk.c

Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c	Fri Nov  6 18:28:13 2009	(r198995)
+++ head/sys/dev/msk/if_msk.c	Fri Nov  6 18:36:09 2009	(r198996)
@@ -137,7 +137,6 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
-#include 
 
 #include 
 #include 

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 18:51:06 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 25F0A106566B;
	Fri,  6 Nov 2009 18:51:06 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 14DD28FC0C;
	Fri,  6 Nov 2009 18:51:06 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6Ip5nl025692;
	Fri, 6 Nov 2009 18:51:05 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6Ip5XF025690;
	Fri, 6 Nov 2009 18:51:05 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911061851.nA6Ip5XF025690@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Fri, 6 Nov 2009 18:51:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198997 - head/sys/dev/msk
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 18:51:06 -0000

Author: yongari
Date: Fri Nov  6 18:51:05 2009
New Revision: 198997
URL: http://svn.freebsd.org/changeset/base/198997

Log:
  It's normal to see Rx FIFO overruns under high network load and
  showing the message creates other side-effects. Remove the Rx
  FIFO overrun message in interrupt handler. msk(4) should recover
  from the FIFO overruns without any user intervention. Users can
  still check the Rx FIFO overrun counter from MAC MIB statistics
  maintained in driver(dev.msk.0.stats.rx.overflows).

Modified:
  head/sys/dev/msk/if_msk.c

Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c	Fri Nov  6 18:36:09 2009	(r198996)
+++ head/sys/dev/msk/if_msk.c	Fri Nov  6 18:51:05 2009	(r198997)
@@ -3217,11 +3217,9 @@ msk_intr_gmac(struct msk_if_softc *sc_if
 	status = CSR_READ_1(sc, MR_ADDR(sc_if->msk_port, GMAC_IRQ_SRC));
 
 	/* GMAC Rx FIFO overrun. */
-	if ((status & GM_IS_RX_FF_OR) != 0) {
+	if ((status & GM_IS_RX_FF_OR) != 0)
 		CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, RX_GMF_CTRL_T),
 		    GMF_CLI_RX_FO);
-		device_printf(sc_if->msk_if_dev, "Rx FIFO overrun!\n");
-	}
 	/* GMAC Tx FIFO underrun. */
 	if ((status & GM_IS_TX_FF_UR) != 0) {
 		CSR_WRITE_4(sc, MR_ADDR(sc_if->msk_port, TX_GMF_CTRL_T),

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 20:07:16 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 96D9A1065679;
	Fri,  6 Nov 2009 20:07:16 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 866F48FC13;
	Fri,  6 Nov 2009 20:07:16 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6K7G4d027263;
	Fri, 6 Nov 2009 20:07:16 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6K7GJ1027261;
	Fri, 6 Nov 2009 20:07:16 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200911062007.nA6K7GJ1027261@svn.freebsd.org>
From: John Baldwin 
Date: Fri, 6 Nov 2009 20:07:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r198999 - head/sys/dev/msk
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 20:07:16 -0000

Author: jhb
Date: Fri Nov  6 20:07:16 2009
New Revision: 198999
URL: http://svn.freebsd.org/changeset/base/198999

Log:
  Take a step towards removing if_watchdog/if_timer.  Don't explicitly set
  if_watchdog/if_timer to NULL/0 when initializing an ifnet.  if_alloc()
  sets those members to NULL/0 already.
  
  (Missed this driver in the earlier commit.)

Modified:
  head/sys/dev/msk/if_msk.c

Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c	Fri Nov  6 19:16:33 2009	(r198998)
+++ head/sys/dev/msk/if_msk.c	Fri Nov  6 20:07:16 2009	(r198999)
@@ -1518,8 +1518,6 @@ msk_attach(device_t dev)
 	ifp->if_capenable = ifp->if_capabilities;
 	ifp->if_ioctl = msk_ioctl;
 	ifp->if_start = msk_start;
-	ifp->if_timer = 0;
-	ifp->if_watchdog = NULL;
 	ifp->if_init = msk_init;
 	IFQ_SET_MAXLEN(&ifp->if_snd, MSK_TX_RING_CNT - 1);
 	ifp->if_snd.ifq_drv_maxlen = MSK_TX_RING_CNT - 1;

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 20:32:27 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7225D10656A6;
	Fri,  6 Nov 2009 20:32:27 +0000 (UTC)
	(envelope-from jkim@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 608A38FC25;
	Fri,  6 Nov 2009 20:32:27 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6KWRCE027880;
	Fri, 6 Nov 2009 20:32:27 GMT (envelope-from jkim@svn.freebsd.org)
Received: (from jkim@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6KWRXb027876;
	Fri, 6 Nov 2009 20:32:27 GMT (envelope-from jkim@svn.freebsd.org)
Message-Id: <200911062032.nA6KWRXb027876@svn.freebsd.org>
From: Jung-uk Kim 
Date: Fri, 6 Nov 2009 20:32:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199002 - in head/sys: dev/fb dev/pci isa
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 20:32:27 -0000

Author: jkim
Date: Fri Nov  6 20:32:26 2009
New Revision: 199002
URL: http://svn.freebsd.org/changeset/base/199002

Log:
  Remove duplicate suspend/resume code from vga_pci.c and let vga(4) register
  itself to an associated PCI device if it exists.  It is little bit hackish
  but it should fix build without frame buffer driver since r198964.
  Fix some style(9) nits in vga_isa.c while we are here.

Modified:
  head/sys/dev/fb/vgareg.h
  head/sys/dev/pci/vga_pci.c
  head/sys/isa/vga_isa.c

Modified: head/sys/dev/fb/vgareg.h
==============================================================================
--- head/sys/dev/fb/vgareg.h	Fri Nov  6 20:23:42 2009	(r199001)
+++ head/sys/dev/fb/vgareg.h	Fri Nov  6 20:32:26 2009	(r199002)
@@ -69,6 +69,7 @@
 struct video_adapter;
 typedef struct vga_softc {
 	struct video_adapter	*adp;
+	device_t		pci_dev;
 	void			*state_buf;
 	void			*pal_buf;
 #ifdef FB_INSTALL_CDEV

Modified: head/sys/dev/pci/vga_pci.c
==============================================================================
--- head/sys/dev/pci/vga_pci.c	Fri Nov  6 20:23:42 2009	(r199001)
+++ head/sys/dev/pci/vga_pci.c	Fri Nov  6 20:32:26 2009	(r199002)
@@ -40,15 +40,12 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
-#include 
 #include 
-#include 
 #include 
 #include 
 #include 
 #include 
 
-#include 
 #include 
 
 #include 
@@ -60,6 +57,7 @@ struct vga_resource {
 };
 
 struct vga_pci_softc {
+	device_t	vga_isa_dev;	/* Sister isavga driver. */
 	device_t	vga_msi_child;	/* Child driver using MSI. */
 	struct vga_resource vga_res[PCIR_MAX_BAR_0 + 1];
 };
@@ -117,86 +115,23 @@ vga_pci_attach(device_t dev)
 static int
 vga_pci_suspend(device_t dev)
 {
-	vga_softc_t *sc;
-	devclass_t dc;
-	int err, nbytes;
-
-	err = bus_generic_suspend(dev);
-	if (err)
-		return (err);
-
-	sc = NULL;
-	if (device_get_unit(dev) == vga_pci_default_unit) {
-		dc = devclass_find(VGA_DRIVER_NAME);
-		if (dc != NULL)
-			sc = devclass_get_softc(dc, 0);
-	}
-	if (sc == NULL)
-		return (0);
-
-	/* Save the video state across the suspend. */
-	if (sc->state_buf != NULL)
-		goto save_palette;
-	nbytes = vidd_save_state(sc->adp, NULL, 0);
-	if (nbytes <= 0)
-		goto save_palette;
-	sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT);
-	if (sc->state_buf == NULL)
-		goto save_palette;
-	if (bootverbose)
-		device_printf(dev, "saving %d bytes of video state\n", nbytes);
-	if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
-		device_printf(dev, "failed to save state (nbytes=%d)\n",
-		    nbytes);
-		free(sc->state_buf, M_TEMP);
-		sc->state_buf = NULL;
-	}
+	struct vga_pci_softc *sc;
 
-save_palette:
-	/* Save the color palette across the suspend. */
-	if (sc->pal_buf != NULL)
-		return (0);
-	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
-	if (sc->pal_buf != NULL) {
-		if (bootverbose)
-			device_printf(dev, "saving color palette\n");
-		if (vidd_save_palette(sc->adp, sc->pal_buf) != 0) {
-			device_printf(dev, "failed to save palette\n");
-			free(sc->pal_buf, M_TEMP);
-			sc->pal_buf = NULL;
-		}
-	}
+	sc = device_get_softc(dev);
+	if (sc->vga_isa_dev != NULL)
+		(void)DEVICE_SUSPEND(sc->vga_isa_dev);
 
-	return (0);
+	return (bus_generic_suspend(dev));
 }
 
 static int
 vga_pci_resume(device_t dev)
 {
-	vga_softc_t *sc;
-	devclass_t dc;
-
-	sc = NULL;
-	if (device_get_unit(dev) == vga_pci_default_unit) {
-		dc = devclass_find(VGA_DRIVER_NAME);
-		if (dc != NULL)
-			sc = devclass_get_softc(dc, 0);
-	}
-	if (sc == NULL)
-		return (bus_generic_resume(dev));
+	struct vga_pci_softc *sc;
 
-	if (sc->state_buf != NULL) {
-		if (vidd_load_state(sc->adp, sc->state_buf) != 0)
-			device_printf(dev, "failed to reload state\n");
-		free(sc->state_buf, M_TEMP);
-		sc->state_buf = NULL;
-	}
-	if (sc->pal_buf != NULL) {
-		if (vidd_load_palette(sc->adp, sc->pal_buf) != 0)
-			device_printf(dev, "failed to reload palette\n");
-		free(sc->pal_buf, M_TEMP);
-		sc->pal_buf = NULL;
-	}
+	sc = device_get_softc(dev);
+	if (sc->vga_isa_dev != NULL)
+		(void)DEVICE_RESUME(sc->vga_isa_dev);
 
 	return (bus_generic_resume(dev));
 }

Modified: head/sys/isa/vga_isa.c
==============================================================================
--- head/sys/isa/vga_isa.c	Fri Nov  6 20:23:42 2009	(r199001)
+++ head/sys/isa/vga_isa.c	Fri Nov  6 20:32:26 2009	(r199002)
@@ -117,13 +117,17 @@ isavga_probe(device_t dev)
 		isa_set_msize(dev, adp.va_mem_size);
 #endif
 	}
-	return error;
+	return (error);
 }
 
 static int
 isavga_attach(device_t dev)
 {
 	vga_softc_t *sc;
+	devclass_t dc;
+	device_t *devs;
+	void *vgapci_sc;
+	int count, i;
 	int unit;
 	int rid;
 	int error;
@@ -140,13 +144,13 @@ isavga_attach(device_t dev)
 
 	error = vga_attach_unit(unit, sc, device_get_flags(dev));
 	if (error)
-		return error;
+		return (error);
 
 #ifdef FB_INSTALL_CDEV
 	/* attach a virtual frame buffer device */
 	error = fb_attach(VGA_MKMINOR(unit), sc->adp, &isavga_cdevsw);
 	if (error)
-		return error;
+		return (error);
 #endif /* FB_INSTALL_CDEV */
 
 	if (0 && bootverbose)
@@ -157,20 +161,43 @@ isavga_attach(device_t dev)
 	bus_generic_attach(dev);
 #endif
 
-	return 0;
+	/* Find the matching PCI video controller. */
+	if (unit == 0) {
+		dc = devclass_find("vgapci");
+		if (dc != NULL &&
+		    devclass_get_devices(dc, &devs, &count) == 0) {
+			for (i = 0; i < count; i++)
+				if (device_get_flags(devs[i]) != 0) {
+					sc->pci_dev = devs[i];
+					break;
+				}
+			free(devs, M_TEMP);
+		}
+		if (sc->pci_dev != NULL) {
+			vgapci_sc = device_get_softc(sc->pci_dev);
+			*(device_t *)vgapci_sc = dev;
+			device_printf(dev, "associated with %s\n",
+			    device_get_nameunit(sc->pci_dev));
+		}
+	}
+
+	return (0);
 }
 
 static int
 isavga_suspend(device_t dev)
 {
 	vga_softc_t *sc;
+	device_t isa_dev;
 	int err, nbytes;
 
-	err = bus_generic_suspend(dev);
-	if (err)
-		return (err);
-
-	sc = device_get_softc(dev);
+	err = 0;
+	isa_dev = dev;
+	sc = device_get_softc(isa_dev);
+	if (sc->pci_dev != NULL)
+		dev = sc->pci_dev;
+	else
+		err = bus_generic_suspend(isa_dev);
 
 	/* Save the video state across the suspend. */
 	if (sc->state_buf != NULL)
@@ -193,7 +220,7 @@ isavga_suspend(device_t dev)
 save_palette:
 	/* Save the color palette across the suspend. */
 	if (sc->pal_buf != NULL)
-		return (0);
+		return (err);
 	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
 	if (sc->pal_buf != NULL) {
 		if (bootverbose)
@@ -205,15 +232,19 @@ save_palette:
 		}
 	}
 
-	return (0);
+	return (err);
 }
 
 static int
 isavga_resume(device_t dev)
 {
 	vga_softc_t *sc;
+	device_t isa_dev;
 
-	sc = device_get_softc(dev);
+	isa_dev = dev;
+	sc = device_get_softc(isa_dev);
+	if (sc->pci_dev != NULL)
+		dev = sc->pci_dev;
 
 	if (sc->state_buf != NULL) {
 		if (vidd_load_state(sc->adp, sc->state_buf) != 0)
@@ -228,7 +259,10 @@ isavga_resume(device_t dev)
 		sc->pal_buf = NULL;
 	}
 
-	return (bus_generic_resume(dev));
+	if (isa_dev != dev)
+		return (0);
+
+	return (bus_generic_resume(isa_dev));
 }
 
 #ifdef FB_INSTALL_CDEV
@@ -236,37 +270,37 @@ isavga_resume(device_t dev)
 static int
 isavga_open(struct cdev *dev, int flag, int mode, struct thread *td)
 {
-	return vga_open(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td);
+	return (vga_open(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td));
 }
 
 static int
 isavga_close(struct cdev *dev, int flag, int mode, struct thread *td)
 {
-	return vga_close(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td);
+	return (vga_close(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td));
 }
 
 static int
 isavga_read(struct cdev *dev, struct uio *uio, int flag)
 {
-	return vga_read(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag);
+	return (vga_read(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag));
 }
 
 static int
 isavga_write(struct cdev *dev, struct uio *uio, int flag)
 {
-	return vga_write(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag);
+	return (vga_write(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag));
 }
 
 static int
 isavga_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td)
 {
-	return vga_ioctl(dev, VGA_SOFTC(VGA_UNIT(dev)), cmd, arg, flag, td);
+	return (vga_ioctl(dev, VGA_SOFTC(VGA_UNIT(dev)), cmd, arg, flag, td));
 }
 
 static int
 isavga_mmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot)
 {
-	return vga_mmap(dev, VGA_SOFTC(VGA_UNIT(dev)), offset, paddr, prot);
+	return (vga_mmap(dev, VGA_SOFTC(VGA_UNIT(dev)), offset, paddr, prot));
 }
 
 #endif /* FB_INSTALL_CDEV */

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 21:50:56 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1375C1065670;
	Fri,  6 Nov 2009 21:50:56 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42])
	by mx1.freebsd.org (Postfix) with ESMTP id C67DF8FC16;
	Fri,  6 Nov 2009 21:50:55 +0000 (UTC)
Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net
	[66.111.2.69])
	by cyrus.watson.org (Postfix) with ESMTPSA id 488AB46B03;
	Fri,  6 Nov 2009 16:50:55 -0500 (EST)
Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8])
	by bigwig.baldwin.cx (Postfix) with ESMTPA id 7D0D68A01F;
	Fri,  6 Nov 2009 16:50:54 -0500 (EST)
From: John Baldwin 
To: Jung-uk Kim 
Date: Fri, 6 Nov 2009 16:47:00 -0500
User-Agent: KMail/1.9.7
References: <200911062032.nA6KWRXb027876@svn.freebsd.org>
In-Reply-To: <200911062032.nA6KWRXb027876@svn.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <200911061647.00983.jhb@freebsd.org>
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1
	(bigwig.baldwin.cx); Fri, 06 Nov 2009 16:50:54 -0500 (EST)
X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx
X-Virus-Status: Clean
X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE
	autolearn=no version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r199002 - in head/sys: dev/fb dev/pci isa
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 21:50:56 -0000

On Friday 06 November 2009 3:32:26 pm Jung-uk Kim wrote:
> Author: jkim
> Date: Fri Nov  6 20:32:26 2009
> New Revision: 199002
> URL: http://svn.freebsd.org/changeset/base/199002
> 
> Log:
>   Remove duplicate suspend/resume code from vga_pci.c and let vga(4) 
register
>   itself to an associated PCI device if it exists.  It is little bit hackish
>   but it should fix build without frame buffer driver since r198964.
>   Fix some style(9) nits in vga_isa.c while we are here.

Hmm, did you consider having vga_isa use an identify routine to attach itself 
as a child of vgapci0?  The hack of knowing the first thing in the softc is
a pointer is really gross and I'd rather avoid it.  Just creating a child of 
vgapci0 will automatically cause suspend and resume to work w/o vgapci having 
to have any special knowledge about vga_isa.

> Modified:
>   head/sys/dev/fb/vgareg.h
>   head/sys/dev/pci/vga_pci.c
>   head/sys/isa/vga_isa.c
> 
> Modified: head/sys/dev/fb/vgareg.h
> 
==============================================================================
> --- head/sys/dev/fb/vgareg.h	Fri Nov  6 20:23:42 2009	(r199001)
> +++ head/sys/dev/fb/vgareg.h	Fri Nov  6 20:32:26 2009	(r199002)
> @@ -69,6 +69,7 @@
>  struct video_adapter;
>  typedef struct vga_softc {
>  	struct video_adapter	*adp;
> +	device_t		pci_dev;
>  	void			*state_buf;
>  	void			*pal_buf;
>  #ifdef FB_INSTALL_CDEV
> 
> Modified: head/sys/dev/pci/vga_pci.c
> 
==============================================================================
> --- head/sys/dev/pci/vga_pci.c	Fri Nov  6 20:23:42 2009	(r199001)
> +++ head/sys/dev/pci/vga_pci.c	Fri Nov  6 20:32:26 2009	(r199002)
> @@ -40,15 +40,12 @@ __FBSDID("$FreeBSD$");
>  
>  #include 
>  #include 
> -#include 
>  #include 
> -#include 
>  #include 
>  #include 
>  #include 
>  #include 
>  
> -#include 
>  #include 
>  
>  #include 
> @@ -60,6 +57,7 @@ struct vga_resource {
>  };
>  
>  struct vga_pci_softc {
> +	device_t	vga_isa_dev;	/* Sister isavga driver. */
>  	device_t	vga_msi_child;	/* Child driver using MSI. */
>  	struct vga_resource vga_res[PCIR_MAX_BAR_0 + 1];
>  };
> @@ -117,86 +115,23 @@ vga_pci_attach(device_t dev)
>  static int
>  vga_pci_suspend(device_t dev)
>  {
> -	vga_softc_t *sc;
> -	devclass_t dc;
> -	int err, nbytes;
> -
> -	err = bus_generic_suspend(dev);
> -	if (err)
> -		return (err);
> -
> -	sc = NULL;
> -	if (device_get_unit(dev) == vga_pci_default_unit) {
> -		dc = devclass_find(VGA_DRIVER_NAME);
> -		if (dc != NULL)
> -			sc = devclass_get_softc(dc, 0);
> -	}
> -	if (sc == NULL)
> -		return (0);
> -
> -	/* Save the video state across the suspend. */
> -	if (sc->state_buf != NULL)
> -		goto save_palette;
> -	nbytes = vidd_save_state(sc->adp, NULL, 0);
> -	if (nbytes <= 0)
> -		goto save_palette;
> -	sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT);
> -	if (sc->state_buf == NULL)
> -		goto save_palette;
> -	if (bootverbose)
> -		device_printf(dev, "saving %d bytes of video state\n", nbytes);
> -	if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) {
> -		device_printf(dev, "failed to save state (nbytes=%d)\n",
> -		    nbytes);
> -		free(sc->state_buf, M_TEMP);
> -		sc->state_buf = NULL;
> -	}
> +	struct vga_pci_softc *sc;
>  
> -save_palette:
> -	/* Save the color palette across the suspend. */
> -	if (sc->pal_buf != NULL)
> -		return (0);
> -	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
> -	if (sc->pal_buf != NULL) {
> -		if (bootverbose)
> -			device_printf(dev, "saving color palette\n");
> -		if (vidd_save_palette(sc->adp, sc->pal_buf) != 0) {
> -			device_printf(dev, "failed to save palette\n");
> -			free(sc->pal_buf, M_TEMP);
> -			sc->pal_buf = NULL;
> -		}
> -	}
> +	sc = device_get_softc(dev);
> +	if (sc->vga_isa_dev != NULL)
> +		(void)DEVICE_SUSPEND(sc->vga_isa_dev);
>  
> -	return (0);
> +	return (bus_generic_suspend(dev));
>  }
>  
>  static int
>  vga_pci_resume(device_t dev)
>  {
> -	vga_softc_t *sc;
> -	devclass_t dc;
> -
> -	sc = NULL;
> -	if (device_get_unit(dev) == vga_pci_default_unit) {
> -		dc = devclass_find(VGA_DRIVER_NAME);
> -		if (dc != NULL)
> -			sc = devclass_get_softc(dc, 0);
> -	}
> -	if (sc == NULL)
> -		return (bus_generic_resume(dev));
> +	struct vga_pci_softc *sc;
>  
> -	if (sc->state_buf != NULL) {
> -		if (vidd_load_state(sc->adp, sc->state_buf) != 0)
> -			device_printf(dev, "failed to reload state\n");
> -		free(sc->state_buf, M_TEMP);
> -		sc->state_buf = NULL;
> -	}
> -	if (sc->pal_buf != NULL) {
> -		if (vidd_load_palette(sc->adp, sc->pal_buf) != 0)
> -			device_printf(dev, "failed to reload palette\n");
> -		free(sc->pal_buf, M_TEMP);
> -		sc->pal_buf = NULL;
> -	}
> +	sc = device_get_softc(dev);
> +	if (sc->vga_isa_dev != NULL)
> +		(void)DEVICE_RESUME(sc->vga_isa_dev);
>  
>  	return (bus_generic_resume(dev));
>  }
> 
> Modified: head/sys/isa/vga_isa.c
> 
==============================================================================
> --- head/sys/isa/vga_isa.c	Fri Nov  6 20:23:42 2009	(r199001)
> +++ head/sys/isa/vga_isa.c	Fri Nov  6 20:32:26 2009	(r199002)
> @@ -117,13 +117,17 @@ isavga_probe(device_t dev)
>  		isa_set_msize(dev, adp.va_mem_size);
>  #endif
>  	}
> -	return error;
> +	return (error);
>  }
>  
>  static int
>  isavga_attach(device_t dev)
>  {
>  	vga_softc_t *sc;
> +	devclass_t dc;
> +	device_t *devs;
> +	void *vgapci_sc;
> +	int count, i;
>  	int unit;
>  	int rid;
>  	int error;
> @@ -140,13 +144,13 @@ isavga_attach(device_t dev)
>  
>  	error = vga_attach_unit(unit, sc, device_get_flags(dev));
>  	if (error)
> -		return error;
> +		return (error);
>  
>  #ifdef FB_INSTALL_CDEV
>  	/* attach a virtual frame buffer device */
>  	error = fb_attach(VGA_MKMINOR(unit), sc->adp, &isavga_cdevsw);
>  	if (error)
> -		return error;
> +		return (error);
>  #endif /* FB_INSTALL_CDEV */
>  
>  	if (0 && bootverbose)
> @@ -157,20 +161,43 @@ isavga_attach(device_t dev)
>  	bus_generic_attach(dev);
>  #endif
>  
> -	return 0;
> +	/* Find the matching PCI video controller. */
> +	if (unit == 0) {
> +		dc = devclass_find("vgapci");
> +		if (dc != NULL &&
> +		    devclass_get_devices(dc, &devs, &count) == 0) {
> +			for (i = 0; i < count; i++)
> +				if (device_get_flags(devs[i]) != 0) {
> +					sc->pci_dev = devs[i];
> +					break;
> +				}
> +			free(devs, M_TEMP);
> +		}
> +		if (sc->pci_dev != NULL) {
> +			vgapci_sc = device_get_softc(sc->pci_dev);
> +			*(device_t *)vgapci_sc = dev;
> +			device_printf(dev, "associated with %s\n",
> +			    device_get_nameunit(sc->pci_dev));
> +		}
> +	}
> +
> +	return (0);
>  }
>  
>  static int
>  isavga_suspend(device_t dev)
>  {
>  	vga_softc_t *sc;
> +	device_t isa_dev;
>  	int err, nbytes;
>  
> -	err = bus_generic_suspend(dev);
> -	if (err)
> -		return (err);
> -
> -	sc = device_get_softc(dev);
> +	err = 0;
> +	isa_dev = dev;
> +	sc = device_get_softc(isa_dev);
> +	if (sc->pci_dev != NULL)
> +		dev = sc->pci_dev;
> +	else
> +		err = bus_generic_suspend(isa_dev);
>  
>  	/* Save the video state across the suspend. */
>  	if (sc->state_buf != NULL)
> @@ -193,7 +220,7 @@ isavga_suspend(device_t dev)
>  save_palette:
>  	/* Save the color palette across the suspend. */
>  	if (sc->pal_buf != NULL)
> -		return (0);
> +		return (err);
>  	sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT);
>  	if (sc->pal_buf != NULL) {
>  		if (bootverbose)
> @@ -205,15 +232,19 @@ save_palette:
>  		}
>  	}
>  
> -	return (0);
> +	return (err);
>  }
>  
>  static int
>  isavga_resume(device_t dev)
>  {
>  	vga_softc_t *sc;
> +	device_t isa_dev;
>  
> -	sc = device_get_softc(dev);
> +	isa_dev = dev;
> +	sc = device_get_softc(isa_dev);
> +	if (sc->pci_dev != NULL)
> +		dev = sc->pci_dev;
>  
>  	if (sc->state_buf != NULL) {
>  		if (vidd_load_state(sc->adp, sc->state_buf) != 0)
> @@ -228,7 +259,10 @@ isavga_resume(device_t dev)
>  		sc->pal_buf = NULL;
>  	}
>  
> -	return (bus_generic_resume(dev));
> +	if (isa_dev != dev)
> +		return (0);
> +
> +	return (bus_generic_resume(isa_dev));
>  }
>  
>  #ifdef FB_INSTALL_CDEV
> @@ -236,37 +270,37 @@ isavga_resume(device_t dev)
>  static int
>  isavga_open(struct cdev *dev, int flag, int mode, struct thread *td)
>  {
> -	return vga_open(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td);
> +	return (vga_open(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td));
>  }
>  
>  static int
>  isavga_close(struct cdev *dev, int flag, int mode, struct thread *td)
>  {
> -	return vga_close(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td);
> +	return (vga_close(dev, VGA_SOFTC(VGA_UNIT(dev)), flag, mode, td));
>  }
>  
>  static int
>  isavga_read(struct cdev *dev, struct uio *uio, int flag)
>  {
> -	return vga_read(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag);
> +	return (vga_read(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag));
>  }
>  
>  static int
>  isavga_write(struct cdev *dev, struct uio *uio, int flag)
>  {
> -	return vga_write(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag);
> +	return (vga_write(dev, VGA_SOFTC(VGA_UNIT(dev)), uio, flag));
>  }
>  
>  static int
>  isavga_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct 
thread *td)
>  {
> -	return vga_ioctl(dev, VGA_SOFTC(VGA_UNIT(dev)), cmd, arg, flag, td);
> +	return (vga_ioctl(dev, VGA_SOFTC(VGA_UNIT(dev)), cmd, arg, flag, td));
>  }
>  
>  static int
>  isavga_mmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int 
prot)
>  {
> -	return vga_mmap(dev, VGA_SOFTC(VGA_UNIT(dev)), offset, paddr, prot);
> +	return (vga_mmap(dev, VGA_SOFTC(VGA_UNIT(dev)), offset, paddr, prot));
>  }
>  
>  #endif /* FB_INSTALL_CDEV */
> 



-- 
John Baldwin

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 22:29:47 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2E0881065694;
	Fri,  6 Nov 2009 22:29:47 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1D5948FC1A;
	Fri,  6 Nov 2009 22:29:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6MTlK8030250;
	Fri, 6 Nov 2009 22:29:47 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6MTld2030248;
	Fri, 6 Nov 2009 22:29:47 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200911062229.nA6MTld2030248@svn.freebsd.org>
From: Attilio Rao 
Date: Fri, 6 Nov 2009 22:29:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199007 - head/sys/fs/fifofs
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 22:29:47 -0000

Author: attilio
Date: Fri Nov  6 22:29:46 2009
New Revision: 199007
URL: http://svn.freebsd.org/changeset/base/199007

Log:
  - Improve comments about locking of the "struct fifoinfo" which is a bit
    unclear.
  - Fix a memory leak [0]
  
  [0] Diagnosed by:	Dorr H. Clark 
  MFC:	1 week

Modified:
  head/sys/fs/fifofs/fifo_vnops.c

Modified: head/sys/fs/fifofs/fifo_vnops.c
==============================================================================
--- head/sys/fs/fifofs/fifo_vnops.c	Fri Nov  6 22:13:39 2009	(r199006)
+++ head/sys/fs/fifofs/fifo_vnops.c	Fri Nov  6 22:29:46 2009	(r199007)
@@ -78,6 +78,10 @@ struct fileops fifo_ops_f = {
 /*
  * This structure is associated with the FIFO vnode and stores
  * the state associated with the FIFO.
+ * Notes about locking:
+ *   - fi_readsock and fi_writesock are invariant since init time.
+ *   - fi_readers and fi_writers are vnode lock protected.
+ *   - fi_wgen is fif_mtx lock protected.
  */
 struct fifoinfo {
 	struct socket	*fi_readsock;
@@ -223,14 +227,9 @@ fail1:
 	}
 
 	/*
-	 * General access to fi_readers and fi_writers is protected using
-	 * the vnode lock.
-	 *
-	 * Protect the increment of fi_readers and fi_writers and the
-	 * associated calls to wakeup() with the fifo mutex in addition
-	 * to the vnode lock.  This allows the vnode lock to be dropped
-	 * for the msleep() calls below, and using the fifo mutex with
-	 * msleep() prevents the wakeup from being missed.
+	 * Use the fifo_mtx lock here, in addition to the vnode lock,
+	 * in order to allow vnode lock dropping before msleep() calls
+	 * and still avoiding missed wakeups.
 	 */
 	mtx_lock(&fifo_mtx);
 	if (ap->a_mode & FREAD) {
@@ -249,6 +248,8 @@ fail1:
 	if (ap->a_mode & FWRITE) {
 		if ((ap->a_mode & O_NONBLOCK) && fip->fi_readers == 0) {
 			mtx_unlock(&fifo_mtx);
+			if (fip->fi_writers == 0)
+				fifo_cleanup(vp);
 			return (ENXIO);
 		}
 		fip->fi_writers++;

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 22:33:04 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7BCE0106566B;
	Fri,  6 Nov 2009 22:33:04 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6B1C08FC12;
	Fri,  6 Nov 2009 22:33:04 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6MX4Wg030366;
	Fri, 6 Nov 2009 22:33:04 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6MX4v1030364;
	Fri, 6 Nov 2009 22:33:04 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200911062233.nA6MX4v1030364@svn.freebsd.org>
From: Attilio Rao 
Date: Fri, 6 Nov 2009 22:33:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199008 - head/sys/kern
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 22:33:04 -0000

Author: attilio
Date: Fri Nov  6 22:33:03 2009
New Revision: 199008
URL: http://svn.freebsd.org/changeset/base/199008

Log:
  Save the sack when doing a lockmgr_disown() call.
  
  Requested by:	kib
  MFC:		3 days

Modified:
  head/sys/kern/kern_lock.c

Modified: head/sys/kern/kern_lock.c
==============================================================================
--- head/sys/kern/kern_lock.c	Fri Nov  6 22:29:46 2009	(r199007)
+++ head/sys/kern/kern_lock.c	Fri Nov  6 22:33:03 2009	(r199008)
@@ -1086,6 +1086,7 @@ _lockmgr_disown(struct lock *lk, const c
 	LOCK_LOG_LOCK("XDISOWN", &lk->lock_object, 0, 0, file, line);
 	WITNESS_UNLOCK(&lk->lock_object, LOP_EXCLUSIVE, file, line);
 	TD_LOCKS_DEC(curthread);
+	STACK_SAVE(lk);
 
 	/*
 	 * In order to preserve waiters flags, just spin.

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 22:37:29 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 65FDD106566B;
	Fri,  6 Nov 2009 22:37:29 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 556B88FC08;
	Fri,  6 Nov 2009 22:37:29 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6MbTB3030498;
	Fri, 6 Nov 2009 22:37:29 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6MbTvk030496;
	Fri, 6 Nov 2009 22:37:29 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911062237.nA6MbTvk030496@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Fri, 6 Nov 2009 22:37:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199009 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 22:37:29 -0000

Author: yongari
Date: Fri Nov  6 22:37:29 2009
New Revision: 199009
URL: http://svn.freebsd.org/changeset/base/199009

Log:
  bge(4) already switched to use UMA backed page allocator and local
  memory allocator for jumbo frame was removed long time ago. Remove
  no more used macros.

Modified:
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h	Fri Nov  6 22:33:03 2009	(r199008)
+++ head/sys/dev/bge/if_bgereg.h	Fri Nov  6 22:37:29 2009	(r199009)
@@ -2481,13 +2481,6 @@ struct bge_gib {
 #define	BGE_MSLOTS	256
 #define	BGE_JSLOTS	384
 
-#define	BGE_JRAWLEN (BGE_JUMBO_FRAMELEN + ETHER_ALIGN)
-#define	BGE_JLEN (BGE_JRAWLEN + (sizeof(uint64_t) - \
-	(BGE_JRAWLEN % sizeof(uint64_t))))
-#define	BGE_JPAGESZ PAGE_SIZE
-#define	BGE_RESID (BGE_JPAGESZ - (BGE_JLEN * BGE_JSLOTS) % BGE_JPAGESZ)
-#define	BGE_JMEM ((BGE_JLEN * BGE_JSLOTS) + BGE_RESID)
-
 #define	BGE_NSEG_JUMBO	4
 #define	BGE_NSEG_NEW 32
 

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 23:49:20 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EC93F1065676;
	Fri,  6 Nov 2009 23:49:20 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DBAFE8FC1E;
	Fri,  6 Nov 2009 23:49:20 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA6NnKeq032017;
	Fri, 6 Nov 2009 23:49:20 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA6NnKMM032015;
	Fri, 6 Nov 2009 23:49:20 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911062349.nA6NnKMM032015@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Fri, 6 Nov 2009 23:49:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199010 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 23:49:21 -0000

Author: yongari
Date: Fri Nov  6 23:49:20 2009
New Revision: 199010
URL: http://svn.freebsd.org/changeset/base/199010

Log:
  Do bus_dmamap_sync call only if frame size is greater than
  standard buffer size. If controller is not capable of handling
  jumbo frame, interface MTU couldn't be larger than standard MTU
  which in turn the received should be fit in standard buffer. This
  fixes bus_dmamap_sync call for jumbo ring is called even if
  interface is configured to use standard MTU.
  Also if total frame size could be fit into standard buffer don't
  use jumbo buffers.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Fri Nov  6 22:37:29 2009	(r199009)
+++ head/sys/dev/bge/if_bge.c	Fri Nov  6 23:49:20 2009	(r199010)
@@ -3134,7 +3134,8 @@ bge_rxeof(struct bge_softc *sc)
 	    sc->bge_cdata.bge_rx_return_ring_map, BUS_DMASYNC_POSTREAD);
 	bus_dmamap_sync(sc->bge_cdata.bge_rx_std_ring_tag,
 	    sc->bge_cdata.bge_rx_std_ring_map, BUS_DMASYNC_POSTWRITE);
-	if (BGE_IS_JUMBO_CAPABLE(sc))
+	if (ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN >
+	    (MCLBYTES - ETHER_ALIGN))
 		bus_dmamap_sync(sc->bge_cdata.bge_rx_jumbo_ring_tag,
 		    sc->bge_cdata.bge_rx_jumbo_ring_map, BUS_DMASYNC_POSTWRITE);
 
@@ -3266,7 +3267,7 @@ bge_rxeof(struct bge_softc *sc)
 		bus_dmamap_sync(sc->bge_cdata.bge_rx_std_ring_tag,
 		    sc->bge_cdata.bge_rx_std_ring_map, BUS_DMASYNC_PREWRITE);
 
-	if (BGE_IS_JUMBO_CAPABLE(sc) && jumbocnt > 0)
+	if (jumbocnt > 0)
 		bus_dmamap_sync(sc->bge_cdata.bge_rx_jumbo_ring_tag,
 		    sc->bge_cdata.bge_rx_jumbo_ring_map, BUS_DMASYNC_PREWRITE);
 
@@ -3920,7 +3921,8 @@ bge_init_locked(struct bge_softc *sc)
 	}
 
 	/* Init jumbo RX ring. */
-	if (ifp->if_mtu > (ETHERMTU + ETHER_HDR_LEN + ETHER_CRC_LEN)) {
+	if (ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN >
+	    (MCLBYTES - ETHER_ALIGN)) {
 		if (bge_init_rx_ring_jumbo(sc) != 0) {
 			device_printf(sc->bge_dev, "no memory for std Rx buffers.\n");
 			bge_stop(sc);

From owner-svn-src-head@FreeBSD.ORG  Fri Nov  6 23:52:38 2009
Return-Path: 
Delivered-To: svn-src-head@FreeBSD.ORG
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C2F881065676;
	Fri,  6 Nov 2009 23:52:38 +0000 (UTC)
	(envelope-from delphij@delphij.net)
Received: from tarsier.geekcn.org (delphij-pt.tunnel.tserv2.fmt.ipv6.he.net
	[IPv6:2001:470:1f03:2c9::2])
	by mx1.freebsd.org (Postfix) with ESMTP id 7D96E8FC16;
	Fri,  6 Nov 2009 23:52:36 +0000 (UTC)
Received: from localhost (tarsier.geekcn.org [211.166.10.233])
	by tarsier.geekcn.org (Postfix) with ESMTP id EE39D55CD6A1;
	Sat,  7 Nov 2009 07:52:32 +0800 (CST)
X-Virus-Scanned: amavisd-new at geekcn.org
Received: from tarsier.geekcn.org ([211.166.10.233])
	by localhost (mail.geekcn.org [211.166.10.233]) (amavisd-new,
	port 10024)
	with ESMTP id NYgym4a96Lvf; Sat,  7 Nov 2009 07:52:25 +0800 (CST)
Received: from delta.delphij.net (unknown [206.40.55.131])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by tarsier.geekcn.org (Postfix) with ESMTPSA id F39EF55CD4D1;
	Sat,  7 Nov 2009 07:52:22 +0800 (CST)
DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns;
	h=message-id:date:from:reply-to:organization:user-agent:
	mime-version:to:cc:subject:references:in-reply-to:
	x-enigmail-version:openpgp:content-type;
	b=iVzDQRmId8y2my54txdG5HEFoGWTIn9iUUvwXgaJpdaVmgO7W3Kf6k81nPytmt2gf
	CRrBiKnKMyKRzSovHmcIw==
Message-ID: <4AF4B6B2.3090706@delphij.net>
Date: Fri, 06 Nov 2009 15:52:18 -0800
From: Xin LI 
Organization: The Geek China Organization
User-Agent: Thunderbird 2.0.0.23 (X11/20091022)
MIME-Version: 1.0
To: Bruce Evans 
References: <200911030928.nA39SjLx085597@svn.freebsd.org>
	<20091103214231.H23957@delplex.bde.org>
In-Reply-To: <20091103214231.H23957@delplex.bde.org>
X-Enigmail-Version: 0.95.7
OpenPGP: id=18EDEBA0;
	url=http://www.delphij.net/delphij.asc
Content-Type: multipart/mixed; boundary="------------000600040007090308040408"
Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG,
	src-committers@FreeBSD.ORG, Xin LI 
Subject: Re: svn commit: r198848 - head/bin/ps
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: d@delphij.net
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 06 Nov 2009 23:52:38 -0000

This is a multi-part message in MIME format.
--------------000600040007090308040408
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bruce Evans wrote:
> On Tue, 3 Nov 2009, Xin LI wrote:
> 
>> Log:
>>  Increase width for %CPU, RSS and VSZ columns for now.  Modern systems
>>  tend to have larger memory, larger process, and more CPU.
> 
> This uses space that is not available.  Command names(+args) are now
> truncated to 9 columns in "ps l" output :-(.  They used to be truncated to
> 11 columns recently (down from 12 columns in FreeBSD-5.2).

I think we may have to live with this, even if we can cut down CPU
percentage part, the memory column's width is still too narrow for
modern systems.  I have actually thought about having the numbers
humanized but I'm afraid it would break some existing scripts :(

[...]
> There seems to be no better fix than to further granulate and dehumanize
> the numbers so that they fit in the available space.  E.g., a %CPU of
>> = 100 and < 9999 should be displayed in %4.0f format; this only
> involvues granulation, but above 9999 it needs to be dehumanized as
> well and displayed in k or M or larger granularity (it can be > 9999
> with 100 CPUs and > 999k with 10000 CPUs).  A VSZ of >= 10000 (k
> implicit) needs to be displayed in M or larger granularity (M explicit).

Will it sound reasonable to divide pcpu by ncpu and cap the number at 100?

Cheers,
- --
Xin LI 	http://www.delphij.net/
FreeBSD - The Power to Serve!	       Live free or die
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.13 (FreeBSD)

iEYEARECAAYFAkr0trIACgkQi+vbBBjt66CxkwCeLjSGhfB438LAsqFcK6vCgdmY
0OIAn2OmQLRttIhvMYVjqQvYviLzgVBc
=C87q
-----END PGP SIGNATURE-----

--------------000600040007090308040408
Content-Type: text/plain;
 name="ps.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ps.diff"

Index: keyword.c
===================================================================
--- keyword.c	(revision 199006)
+++ keyword.c	(working copy)
@@ -70,7 +70,7 @@
 
 /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */
 static VAR var[] = {
-	{"%cpu", "%CPU", NULL, 0, pcpu, NULL, 5, 0, CHAR, NULL, 0},
+	{"%cpu", "%CPU", NULL, 0, pcpu, NULL, 4, 0, CHAR, NULL, 0},
 	{"%mem", "%MEM", NULL, 0, pmem, NULL, 4, 0, CHAR, NULL, 0},
 	{"acflag", "ACFLG", NULL, 0, kvar, NULL, 3, KOFF(ki_acflag), USHORT,
 		"x", 0},
Index: nlist.c
===================================================================
--- nlist.c	(revision 199006)
+++ nlist.c	(working copy)
@@ -47,6 +47,7 @@
 int	nlistread;			/* if nlist already read. */
 unsigned long	mempages;		/* number of pages of phys. memory */
 int	fscale;				/* kernel _fscale variable */
+int	ncpu;				/* number of cpus */
 
 int
 donlist(void)
@@ -62,6 +63,9 @@
 	oldlen = sizeof(mempages);
 	if (sysctlbyname("hw.availpages", &mempages, &oldlen, NULL, 0) == -1)
 		return (1);
+	oldlen = sizeof(ncpu);
+	if (sysctlbyname("hw.ncpu", &ncpu, &oldlen, NULL, 0) == -1)
+		return (1);
 	nlistread = 1;
 	return (0);
 }
Index: extern.h
===================================================================
--- extern.h	(revision 199006)
+++ extern.h	(working copy)
@@ -36,7 +36,7 @@
 struct varent;
 
 extern fixpt_t ccpu;
-extern int cflag, eval, fscale, nlistread, rawcpu;
+extern int cflag, eval, fscale, ncpu, nlistread, rawcpu;
 extern unsigned long mempages;
 extern time_t now;
 extern int showthreads, sumrusage, termwidth, totwidth;
Index: print.c
===================================================================
--- print.c	(revision 199006)
+++ print.c	(working copy)
@@ -642,10 +642,13 @@
 void
 pcpu(KINFO *k, VARENT *ve)
 {
-	VAR *v;
+	VAR *v = ve->var;
+	double pctcpu = getpcpu(k);
 
-	v = ve->var;
-	(void)printf("%*.1f", v->width, getpcpu(k));
+	if (pctcpu / ncpu >= 100.0)
+		(void)printf(" 100");
+	else
+		(void)printf("%*.1f", v->width, pctcpu / ncpu);
 }
 
 static double

--------------000600040007090308040408--

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 01:01:34 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 19B2E1065679;
	Sat,  7 Nov 2009 01:01:34 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 074D08FC0A;
	Sat,  7 Nov 2009 01:01:34 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA711XF8033385;
	Sat, 7 Nov 2009 01:01:33 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA711Xnh033382;
	Sat, 7 Nov 2009 01:01:33 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911070101.nA711Xnh033382@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Sat, 7 Nov 2009 01:01:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199011 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 01:01:34 -0000

Author: yongari
Date: Sat Nov  7 01:01:33 2009
New Revision: 199011
URL: http://svn.freebsd.org/changeset/base/199011

Log:
  Reimplement Rx buffer allocation to handle dma map load failure.
  Introduce two spare dma maps for standard buffer and jumbo buffer
  respectively. If loading a dma map failed reuse previously loaded
  dma map. This should fix unloaded dma map is used in case of dma
  map load failure. Also don't blindly unload dma map and defer
  dma map sync and unloading operation until we know dma map for new
  buffer is successfully loaded. This change saves unnecessary dma
  load/unload operation. Previously bge(4) tried to reuse mbuf
  with unloaded dma map which is really bad thing in bus_dma(9)
  perspective.
  While I'm here update if_iqdrops if we can't allocate Rx buffers.

Modified:
  head/sys/dev/bge/if_bge.c
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Fri Nov  6 23:49:20 2009	(r199010)
+++ head/sys/dev/bge/if_bge.c	Sat Nov  7 01:01:33 2009	(r199011)
@@ -393,8 +393,8 @@ static void bge_setpromisc(struct bge_so
 static void bge_setmulti(struct bge_softc *);
 static void bge_setvlan(struct bge_softc *);
 
-static int bge_newbuf_std(struct bge_softc *, int, struct mbuf *);
-static int bge_newbuf_jumbo(struct bge_softc *, int, struct mbuf *);
+static int bge_newbuf_std(struct bge_softc *, int);
+static int bge_newbuf_jumbo(struct bge_softc *, int);
 static int bge_init_rx_ring_std(struct bge_softc *);
 static void bge_free_rx_ring_std(struct bge_softc *);
 static int bge_init_rx_ring_jumbo(struct bge_softc *);
@@ -912,37 +912,38 @@ bge_miibus_statchg(device_t dev)
  * Intialize a standard receive ring descriptor.
  */
 static int
-bge_newbuf_std(struct bge_softc *sc, int i, struct mbuf *m)
+bge_newbuf_std(struct bge_softc *sc, int i)
 {
-	struct mbuf *m_new = NULL;
+	struct mbuf *m;
 	struct bge_rx_bd *r;
 	bus_dma_segment_t segs[1];
+	bus_dmamap_t map;
 	int error, nsegs;
 
-	if (m == NULL) {
-		m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
-		if (m_new == NULL)
-			return (ENOBUFS);
-		m_new->m_len = m_new->m_pkthdr.len = MCLBYTES;
-	} else {
-		m_new = m;
-		m_new->m_len = m_new->m_pkthdr.len = MCLBYTES;
-		m_new->m_data = m_new->m_ext.ext_buf;
-	}
-
+	m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
+	if (m == NULL)
+		return (ENOBUFS);
+	m->m_len = m->m_pkthdr.len = MCLBYTES;
 	if ((sc->bge_flags & BGE_FLAG_RX_ALIGNBUG) == 0)
-		m_adj(m_new, ETHER_ALIGN);
+		m_adj(m, ETHER_ALIGN);
+
 	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_rx_mtag,
-	    sc->bge_cdata.bge_rx_std_dmamap[i], m_new, segs, &nsegs, 0);
+	    sc->bge_cdata.bge_rx_std_sparemap, m, segs, &nsegs, 0);
 	if (error != 0) {
-		if (m == NULL) {
-			sc->bge_cdata.bge_rx_std_chain[i] = NULL;
-			m_freem(m_new);
-		}
+		m_freem(m);
 		return (error);
 	}
-	sc->bge_cdata.bge_rx_std_chain[i] = m_new;
-	r = &sc->bge_ldata.bge_rx_std_ring[i];
+	if (sc->bge_cdata.bge_rx_std_chain[i] != NULL) {
+		bus_dmamap_sync(sc->bge_cdata.bge_rx_mtag,
+		    sc->bge_cdata.bge_rx_std_dmamap[i], BUS_DMASYNC_POSTREAD);
+		bus_dmamap_unload(sc->bge_cdata.bge_rx_mtag,
+		    sc->bge_cdata.bge_rx_std_dmamap[i]);
+	}
+	map = sc->bge_cdata.bge_rx_std_dmamap[i];
+	sc->bge_cdata.bge_rx_std_dmamap[i] = sc->bge_cdata.bge_rx_std_sparemap;
+	sc->bge_cdata.bge_rx_std_sparemap = map;
+	sc->bge_cdata.bge_rx_std_chain[i] = m;
+	r = &sc->bge_ldata.bge_rx_std_ring[sc->bge_std];
 	r->bge_addr.bge_addr_lo = BGE_ADDR_LO(segs[0].ds_addr);
 	r->bge_addr.bge_addr_hi = BGE_ADDR_HI(segs[0].ds_addr);
 	r->bge_flags = BGE_RXBDFLAG_END;
@@ -950,8 +951,7 @@ bge_newbuf_std(struct bge_softc *sc, int
 	r->bge_idx = i;
 
 	bus_dmamap_sync(sc->bge_cdata.bge_rx_mtag,
-	    sc->bge_cdata.bge_rx_std_dmamap[i],
-	    BUS_DMASYNC_PREREAD);
+	    sc->bge_cdata.bge_rx_std_dmamap[i], BUS_DMASYNC_PREREAD);
 
 	return (0);
 }
@@ -961,48 +961,49 @@ bge_newbuf_std(struct bge_softc *sc, int
  * a jumbo buffer from the pool managed internally by the driver.
  */
 static int
-bge_newbuf_jumbo(struct bge_softc *sc, int i, struct mbuf *m)
+bge_newbuf_jumbo(struct bge_softc *sc, int i)
 {
 	bus_dma_segment_t segs[BGE_NSEG_JUMBO];
+	bus_dmamap_t map;
 	struct bge_extrx_bd *r;
-	struct mbuf *m_new = NULL;
-	int nsegs;
-	int error;
+	struct mbuf *m;
+	int error, nsegs;
 
-	if (m == NULL) {
-		MGETHDR(m_new, M_DONTWAIT, MT_DATA);
-		if (m_new == NULL)
-			return (ENOBUFS);
+	MGETHDR(m, M_DONTWAIT, MT_DATA);
+	if (m == NULL)
+		return (ENOBUFS);
 
-		m_cljget(m_new, M_DONTWAIT, MJUM9BYTES);
-		if (!(m_new->m_flags & M_EXT)) {
-			m_freem(m_new);
-			return (ENOBUFS);
-		}
-		m_new->m_len = m_new->m_pkthdr.len = MJUM9BYTES;
-	} else {
-		m_new = m;
-		m_new->m_len = m_new->m_pkthdr.len = MJUM9BYTES;
-		m_new->m_data = m_new->m_ext.ext_buf;
+	m_cljget(m, M_DONTWAIT, MJUM9BYTES);
+	if (!(m->m_flags & M_EXT)) {
+		m_freem(m);
+		return (ENOBUFS);
 	}
-
+	m->m_len = m->m_pkthdr.len = MJUM9BYTES;
 	if ((sc->bge_flags & BGE_FLAG_RX_ALIGNBUG) == 0)
-		m_adj(m_new, ETHER_ALIGN);
+		m_adj(m, ETHER_ALIGN);
 
 	error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_mtag_jumbo,
-	    sc->bge_cdata.bge_rx_jumbo_dmamap[i],
-	    m_new, segs, &nsegs, BUS_DMA_NOWAIT);
-	if (error) {
-		if (m == NULL)
-			m_freem(m_new);
+	    sc->bge_cdata.bge_rx_jumbo_sparemap, m, segs, &nsegs, 0);
+	if (error != 0) {
+		m_freem(m);
 		return (error);
 	}
-	sc->bge_cdata.bge_rx_jumbo_chain[i] = m_new;
 
+	if (sc->bge_cdata.bge_rx_jumbo_chain[i] == NULL) {
+		bus_dmamap_sync(sc->bge_cdata.bge_mtag_jumbo,
+		    sc->bge_cdata.bge_rx_jumbo_dmamap[i], BUS_DMASYNC_POSTREAD);
+		bus_dmamap_unload(sc->bge_cdata.bge_mtag_jumbo,
+		    sc->bge_cdata.bge_rx_jumbo_dmamap[i]);
+	}
+	map = sc->bge_cdata.bge_rx_jumbo_dmamap[i];
+	sc->bge_cdata.bge_rx_jumbo_dmamap[i] =
+	    sc->bge_cdata.bge_rx_jumbo_sparemap;
+	sc->bge_cdata.bge_rx_jumbo_sparemap = map;
+	sc->bge_cdata.bge_rx_jumbo_chain[i] = m;
 	/*
 	 * Fill in the extended RX buffer descriptor.
 	 */
-	r = &sc->bge_ldata.bge_rx_jumbo_ring[i];
+	r = &sc->bge_ldata.bge_rx_jumbo_ring[sc->bge_jumbo];
 	r->bge_flags = BGE_RXBDFLAG_JUMBO_RING | BGE_RXBDFLAG_END;
 	r->bge_idx = i;
 	r->bge_len3 = r->bge_len2 = r->bge_len1 = 0;
@@ -1029,8 +1030,7 @@ bge_newbuf_jumbo(struct bge_softc *sc, i
 	}
 
 	bus_dmamap_sync(sc->bge_cdata.bge_mtag_jumbo,
-	    sc->bge_cdata.bge_rx_jumbo_dmamap[i],
-	    BUS_DMASYNC_PREREAD);
+	    sc->bge_cdata.bge_rx_jumbo_dmamap[i], BUS_DMASYNC_PREREAD);
 
 	return (0);
 }
@@ -1047,7 +1047,7 @@ bge_init_rx_ring_std(struct bge_softc *s
 	int error, i;
 
 	for (i = 0; i < BGE_SSLOTS; i++) {
-		if ((error = bge_newbuf_std(sc, i, NULL)) != 0)
+		if ((error = bge_newbuf_std(sc, i)) != 0)
 			return (error);
 	};
 
@@ -1088,7 +1088,7 @@ bge_init_rx_ring_jumbo(struct bge_softc 
 	int error, i;
 
 	for (i = 0; i < BGE_JUMBO_RX_RING_CNT; i++) {
-		if ((error = bge_newbuf_jumbo(sc, i, NULL)) != 0)
+		if ((error = bge_newbuf_jumbo(sc, i)) != 0)
 			return (error);
 	};
 
@@ -1979,6 +1979,9 @@ bge_dma_free(struct bge_softc *sc)
 			bus_dmamap_destroy(sc->bge_cdata.bge_rx_mtag,
 			    sc->bge_cdata.bge_rx_std_dmamap[i]);
 	}
+	if (sc->bge_cdata.bge_rx_std_sparemap)
+		bus_dmamap_destroy(sc->bge_cdata.bge_rx_mtag,
+		    sc->bge_cdata.bge_rx_std_sparemap);
 
 	/* Destroy DMA maps for jumbo RX buffers. */
 	for (i = 0; i < BGE_JUMBO_RX_RING_CNT; i++) {
@@ -1986,6 +1989,9 @@ bge_dma_free(struct bge_softc *sc)
 			bus_dmamap_destroy(sc->bge_cdata.bge_mtag_jumbo,
 			    sc->bge_cdata.bge_rx_jumbo_dmamap[i]);
 	}
+	if (sc->bge_cdata.bge_rx_jumbo_sparemap)
+		bus_dmamap_destroy(sc->bge_cdata.bge_mtag_jumbo,
+		    sc->bge_cdata.bge_rx_jumbo_sparemap);
 
 	/* Destroy DMA maps for TX buffers. */
 	for (i = 0; i < BGE_TX_RING_CNT; i++) {
@@ -2133,6 +2139,13 @@ bge_dma_alloc(device_t dev)
 	}
 
 	/* Create DMA maps for RX buffers. */
+	error = bus_dmamap_create(sc->bge_cdata.bge_rx_mtag, 0,
+	    &sc->bge_cdata.bge_rx_std_sparemap);
+	if (error) {
+		device_printf(sc->bge_dev,
+		    "can't create spare DMA map for RX\n");
+		return (ENOMEM);
+	}
 	for (i = 0; i < BGE_STD_RX_RING_CNT; i++) {
 		error = bus_dmamap_create(sc->bge_cdata.bge_rx_mtag, 0,
 			    &sc->bge_cdata.bge_rx_std_dmamap[i]);
@@ -2234,6 +2247,13 @@ bge_dma_alloc(device_t dev)
 		sc->bge_ldata.bge_rx_jumbo_ring_paddr = ctx.bge_busaddr;
 
 		/* Create DMA maps for jumbo RX buffers. */
+		error = bus_dmamap_create(sc->bge_cdata.bge_mtag_jumbo,
+		    0, &sc->bge_cdata.bge_rx_jumbo_sparemap);
+		if (error) {
+			device_printf(sc->bge_dev,
+			    "can't create sapre DMA map for jumbo RX\n");
+			return (ENOMEM);
+		}
 		for (i = 0; i < BGE_JUMBO_RX_RING_CNT; i++) {
 			error = bus_dmamap_create(sc->bge_cdata.bge_mtag_jumbo,
 				    0, &sc->bge_cdata.bge_rx_jumbo_dmamap[i]);
@@ -3166,43 +3186,29 @@ bge_rxeof(struct bge_softc *sc)
 		}
 
 		if (cur_rx->bge_flags & BGE_RXBDFLAG_JUMBO_RING) {
-			BGE_INC(sc->bge_jumbo, BGE_JUMBO_RX_RING_CNT);
-			bus_dmamap_sync(sc->bge_cdata.bge_mtag_jumbo,
-			    sc->bge_cdata.bge_rx_jumbo_dmamap[rxidx],
-			    BUS_DMASYNC_POSTREAD);
-			bus_dmamap_unload(sc->bge_cdata.bge_mtag_jumbo,
-			    sc->bge_cdata.bge_rx_jumbo_dmamap[rxidx]);
-			m = sc->bge_cdata.bge_rx_jumbo_chain[rxidx];
-			sc->bge_cdata.bge_rx_jumbo_chain[rxidx] = NULL;
 			jumbocnt++;
+			m = sc->bge_cdata.bge_rx_jumbo_chain[rxidx];
 			if (cur_rx->bge_flags & BGE_RXBDFLAG_ERROR) {
+				BGE_INC(sc->bge_jumbo, BGE_JUMBO_RX_RING_CNT);
 				ifp->if_ierrors++;
-				bge_newbuf_jumbo(sc, sc->bge_jumbo, m);
 				continue;
 			}
-			if (bge_newbuf_jumbo(sc, sc->bge_jumbo, NULL) != 0) {
-				ifp->if_ierrors++;
-				bge_newbuf_jumbo(sc, sc->bge_jumbo, m);
+			if (bge_newbuf_jumbo(sc, rxidx) != 0) {
+				BGE_INC(sc->bge_jumbo, BGE_JUMBO_RX_RING_CNT);
+				ifp->if_iqdrops++;
 				continue;
 			}
 		} else {
-			BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT);
-			bus_dmamap_sync(sc->bge_cdata.bge_rx_mtag,
-			    sc->bge_cdata.bge_rx_std_dmamap[rxidx],
-			    BUS_DMASYNC_POSTREAD);
-			bus_dmamap_unload(sc->bge_cdata.bge_rx_mtag,
-			    sc->bge_cdata.bge_rx_std_dmamap[rxidx]);
-			m = sc->bge_cdata.bge_rx_std_chain[rxidx];
-			sc->bge_cdata.bge_rx_std_chain[rxidx] = NULL;
 			stdcnt++;
 			if (cur_rx->bge_flags & BGE_RXBDFLAG_ERROR) {
+				BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT);
 				ifp->if_ierrors++;
-				bge_newbuf_std(sc, sc->bge_std, m);
 				continue;
 			}
-			if (bge_newbuf_std(sc, sc->bge_std, NULL) != 0) {
-				ifp->if_ierrors++;
-				bge_newbuf_std(sc, sc->bge_std, m);
+			m = sc->bge_cdata.bge_rx_std_chain[rxidx];
+			if (bge_newbuf_std(sc, rxidx) != 0) {
+				BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT);
+				ifp->if_iqdrops++;
 				continue;
 			}
 		}

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h	Fri Nov  6 23:49:20 2009	(r199010)
+++ head/sys/dev/bge/if_bgereg.h	Sat Nov  7 01:01:33 2009	(r199011)
@@ -2537,7 +2537,9 @@ struct bge_chain_data {
 	bus_dma_tag_t		bge_tx_mtag;	/* Tx mbuf mapping tag */
 	bus_dma_tag_t		bge_mtag_jumbo;	/* Jumbo mbuf mapping tag */
 	bus_dmamap_t		bge_tx_dmamap[BGE_TX_RING_CNT];
+	bus_dmamap_t		bge_rx_std_sparemap;
 	bus_dmamap_t		bge_rx_std_dmamap[BGE_STD_RX_RING_CNT];
+	bus_dmamap_t		bge_rx_jumbo_sparemap;
 	bus_dmamap_t		bge_rx_jumbo_dmamap[BGE_JUMBO_RX_RING_CNT];
 	bus_dmamap_t		bge_rx_std_ring_map;
 	bus_dmamap_t		bge_rx_jumbo_ring_map;

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 01:14:10 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5C1541065670;
	Sat,  7 Nov 2009 01:14:10 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 40A208FC13;
	Sat,  7 Nov 2009 01:14:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA71E9gM033627;
	Sat, 7 Nov 2009 01:14:09 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA71E9e5033624;
	Sat, 7 Nov 2009 01:14:09 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911070114.nA71E9e5033624@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Sat, 7 Nov 2009 01:14:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199012 - head/sys/dev/msk
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 01:14:10 -0000

Author: yongari
Date: Sat Nov  7 01:14:09 2009
New Revision: 199012
URL: http://svn.freebsd.org/changeset/base/199012

Log:
  Add preliminary Yukon Ultra 2 support(88E8057). The controller
  looks very similar to Yukon EC Ultra.
  
  Tested by:	 kalin m ( kalin <> el dot net )

Modified:
  head/sys/dev/msk/if_msk.c
  head/sys/dev/msk/if_mskreg.h

Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c	Sat Nov  7 01:01:33 2009	(r199011)
+++ head/sys/dev/msk/if_msk.c	Sat Nov  7 01:14:09 2009	(r199012)
@@ -222,6 +222,8 @@ static struct msk_product {
 	    "Marvell Yukon 88E8071 Gigabit Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_436C,
 	    "Marvell Yukon 88E8072 Gigabit Ethernet" },
+	{ VENDORID_MARVELL, DEVICEID_MRVL_4380,
+	    "Marvell Yukon 88E8057 Gigabit Ethernet" },
 	{ VENDORID_DLINK, DEVICEID_DLINK_DGE550SX,
 	    "D-Link 550SX Gigabit Ethernet" },
 	{ VENDORID_DLINK, DEVICEID_DLINK_DGE560SX,
@@ -236,7 +238,9 @@ static const char *model_name[] = {
         "Yukon EX",
         "Yukon EC",
         "Yukon FE",
-        "Yukon FE+"
+        "Yukon FE+",
+        "Yukon Supreme",
+        "Yukon Ultra 2"
 };
 
 static int mskc_probe(device_t);
@@ -1143,6 +1147,7 @@ msk_phy_power(struct msk_softc *sc, int 
 		case CHIP_ID_YUKON_EC_U:
 		case CHIP_ID_YUKON_EX:
 		case CHIP_ID_YUKON_FE_P:
+		case CHIP_ID_YUKON_UL_2:
 			CSR_WRITE_2(sc, B0_CTST, Y2_HW_WOL_OFF);
 
 			/* Enable all clocks. */
@@ -1644,7 +1649,8 @@ mskc_attach(device_t dev)
 	sc->msk_hw_rev = (CSR_READ_1(sc, B2_MAC_CFG) >> 4) & 0x0f;
 	/* Bail out if chip is not recognized. */
 	if (sc->msk_hw_id < CHIP_ID_YUKON_XL ||
-	    sc->msk_hw_id > CHIP_ID_YUKON_FE_P) {
+	    sc->msk_hw_id > CHIP_ID_YUKON_UL_2 ||
+	    sc->msk_hw_id == CHIP_ID_YUKON_SUPR) {
 		device_printf(dev, "unknown device: id=0x%02x, rev=0x%02x\n",
 		    sc->msk_hw_id, sc->msk_hw_rev);
 		mtx_destroy(&sc->msk_mtx);
@@ -1743,6 +1749,10 @@ mskc_attach(device_t dev)
 		sc->msk_clock = 156;	/* 156 Mhz */
 		sc->msk_pflags |= MSK_FLAG_JUMBO;
 		break;
+	case CHIP_ID_YUKON_UL_2:
+		sc->msk_clock = 156;	/* 156 Mhz */
+		sc->msk_pflags |= MSK_FLAG_JUMBO;
+		break;
 	default:
 		sc->msk_clock = 156;	/* 156 Mhz */
 		break;

Modified: head/sys/dev/msk/if_mskreg.h
==============================================================================
--- head/sys/dev/msk/if_mskreg.h	Sat Nov  7 01:01:33 2009	(r199011)
+++ head/sys/dev/msk/if_mskreg.h	Sat Nov  7 01:14:09 2009	(r199012)
@@ -144,6 +144,7 @@
 #define DEVICEID_MRVL_436A	0x436A
 #define DEVICEID_MRVL_436B	0x436B
 #define DEVICEID_MRVL_436C	0x436C
+#define DEVICEID_MRVL_4380	0x4380
 
 /*
  * D-Link gigabit ethernet device ID
@@ -891,6 +892,8 @@
 #define CHIP_ID_YUKON_EC	0xb6 /* Chip ID for YUKON-2 EC */
 #define CHIP_ID_YUKON_FE	0xb7 /* Chip ID for YUKON-2 FE */
 #define CHIP_ID_YUKON_FE_P	0xb8 /* Chip ID for YUKON-2 FE+ */
+#define CHIP_ID_YUKON_SUPR	0xb9 /* Chip ID for YUKON-2 Supreme */
+#define CHIP_ID_YUKON_UL_2	0xba /* Chip ID for YUKON-2 Ultra 2 */
 
 #define	CHIP_REV_YU_XL_A0	0 /* Chip Rev. for Yukon-2 A0 */
 #define	CHIP_REV_YU_XL_A1	1 /* Chip Rev. for Yukon-2 A1 */

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 01:18:03 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6ED9C1065679;
	Sat,  7 Nov 2009 01:18:03 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E2DC8FC19;
	Sat,  7 Nov 2009 01:18:03 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA71I3mh033746;
	Sat, 7 Nov 2009 01:18:03 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA71I33M033744;
	Sat, 7 Nov 2009 01:18:03 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911070118.nA71I33M033744@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Sat, 7 Nov 2009 01:18:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199013 - head/share/man/man4
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 01:18:03 -0000

Author: yongari
Date: Sat Nov  7 01:18:03 2009
New Revision: 199013
URL: http://svn.freebsd.org/changeset/base/199013

Log:
  88E8057(Ultra 2) is now supported.

Modified:
  head/share/man/man4/msk.4

Modified: head/share/man/man4/msk.4
==============================================================================
--- head/share/man/man4/msk.4	Sat Nov  7 01:14:09 2009	(r199012)
+++ head/share/man/man4/msk.4	Sat Nov  7 01:18:03 2009	(r199013)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 28, 2009
+.Dd November 6, 2009
 .Dt MSK 4
 .Os
 .Sh NAME
@@ -204,6 +204,8 @@ Marvell Yukon 88E8055 Gigabit Ethernet
 .It
 Marvell Yukon 88E8056 Gigabit Ethernet
 .It
+Marvell Yukon 88E8057 Gigabit Ethernet
+.It
 Marvell Yukon 88E8058 Gigabit Ethernet
 .It
 Marvell Yukon 88E8070 Gigabit Ethernet

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 02:10:59 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6AA4C1065676;
	Sat,  7 Nov 2009 02:10:59 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 59B848FC28;
	Sat,  7 Nov 2009 02:10:59 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA72AxId034703;
	Sat, 7 Nov 2009 02:10:59 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA72AxTm034701;
	Sat, 7 Nov 2009 02:10:59 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911070210.nA72AxTm034701@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Sat, 7 Nov 2009 02:10:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199014 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 02:10:59 -0000

Author: yongari
Date: Sat Nov  7 02:10:59 2009
New Revision: 199014
URL: http://svn.freebsd.org/changeset/base/199014

Log:
  Fix I mssied in r199011. Rx ring index also should be updated.
  If we fill Rx ring full instead of half we can simplify this logic
  but this requires more experimentation.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Sat Nov  7 01:18:03 2009	(r199013)
+++ head/sys/dev/bge/if_bge.c	Sat Nov  7 02:10:59 2009	(r199014)
@@ -1046,9 +1046,11 @@ bge_init_rx_ring_std(struct bge_softc *s
 {
 	int error, i;
 
+	sc->bge_std = 0;
 	for (i = 0; i < BGE_SSLOTS; i++) {
 		if ((error = bge_newbuf_std(sc, i)) != 0)
 			return (error);
+		BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT);
 	};
 
 	bus_dmamap_sync(sc->bge_cdata.bge_rx_std_ring_tag,
@@ -1087,9 +1089,11 @@ bge_init_rx_ring_jumbo(struct bge_softc 
 	struct bge_rcb *rcb;
 	int error, i;
 
+	sc->bge_jumbo = 0;
 	for (i = 0; i < BGE_JUMBO_RX_RING_CNT; i++) {
 		if ((error = bge_newbuf_jumbo(sc, i)) != 0)
 			return (error);
+		BGE_INC(sc->bge_jumbo, BGE_JUMBO_RX_RING_CNT);
 	};
 
 	bus_dmamap_sync(sc->bge_cdata.bge_rx_jumbo_ring_tag,
@@ -3198,6 +3202,7 @@ bge_rxeof(struct bge_softc *sc)
 				ifp->if_iqdrops++;
 				continue;
 			}
+			BGE_INC(sc->bge_jumbo, BGE_JUMBO_RX_RING_CNT);
 		} else {
 			stdcnt++;
 			if (cur_rx->bge_flags & BGE_RXBDFLAG_ERROR) {
@@ -3211,6 +3216,7 @@ bge_rxeof(struct bge_softc *sc)
 				ifp->if_iqdrops++;
 				continue;
 			}
+			BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT);
 		}
 
 		ifp->if_ipackets++;

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 11:41:23 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D50B41065670;
	Sat,  7 Nov 2009 11:41:23 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C41208FC1B;
	Sat,  7 Nov 2009 11:41:23 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7BfN3n046820;
	Sat, 7 Nov 2009 11:41:23 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7BfNXX046817;
	Sat, 7 Nov 2009 11:41:23 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200911071141.nA7BfNXX046817@svn.freebsd.org>
From: Andriy Gapon 
Date: Sat, 7 Nov 2009 11:41:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199015 - in head/sys: dev/ichwd modules/ichwd
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 11:41:23 -0000

Author: avg
Date: Sat Nov  7 11:41:23 2009
New Revision: 199015
URL: http://svn.freebsd.org/changeset/base/199015

Log:
  ichwd: don't attach to isa pnp device(s) by accident
  
  Reviewed by:	imp, des
  MFC after:	1 week

Modified:
  head/sys/dev/ichwd/ichwd.c
  head/sys/modules/ichwd/Makefile

Modified: head/sys/dev/ichwd/ichwd.c
==============================================================================
--- head/sys/dev/ichwd/ichwd.c	Sat Nov  7 02:10:59 2009	(r199014)
+++ head/sys/dev/ichwd/ichwd.c	Sat Nov  7 11:41:23 2009	(r199015)
@@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+#include 
 #include 
 
 #include 
@@ -393,7 +394,9 @@ static int
 ichwd_probe(device_t dev)
 {
 
-	(void)dev;
+	/* Do not claim some ISA PnP device by accident. */
+	if (isa_get_logicalid(dev) != 0)
+		return (ENXIO);
 	return (0);
 }
 

Modified: head/sys/modules/ichwd/Makefile
==============================================================================
--- head/sys/modules/ichwd/Makefile	Sat Nov  7 02:10:59 2009	(r199014)
+++ head/sys/modules/ichwd/Makefile	Sat Nov  7 11:41:23 2009	(r199015)
@@ -3,6 +3,6 @@
 .PATH: ${.CURDIR}/../../dev/ichwd
 
 KMOD=	ichwd
-SRCS=	ichwd.c device_if.h bus_if.h pci_if.h
+SRCS=	ichwd.c device_if.h bus_if.h pci_if.h isa_if.h
 
 .include 

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 11:46:41 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E96B7106566C;
	Sat,  7 Nov 2009 11:46:39 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F2F228FC14;
	Sat,  7 Nov 2009 11:46:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7BkcxX046963;
	Sat, 7 Nov 2009 11:46:38 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7BkcJn046957;
	Sat, 7 Nov 2009 11:46:38 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200911071146.nA7BkcJn046957@svn.freebsd.org>
From: Andriy Gapon 
Date: Sat, 7 Nov 2009 11:46:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199016 - head/sys/dev/acpica
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 11:46:41 -0000

Author: avg
Date: Sat Nov  7 11:46:38 2009
New Revision: 199016
URL: http://svn.freebsd.org/changeset/base/199016

Log:
  acpi: remove 'magic' ivar
  
  o acpi_hpet: auto-added 'wildcard' devices can be identified by
    non-NULL handle attribute.
  o acpi_ec: auto-add 'wildcard' devices can be identified by
    unset (NULL) private attribute.
  o acpi_cpu: use private instead of magic to store cpu id.
  
  Reviewed by:	jhb
  Silence from:	acpi@
  MFC after:	2 weeks
  X-MFC-Note:	perhaps the ivar should stay for ABI stability

Modified:
  head/sys/dev/acpica/acpi.c
  head/sys/dev/acpica/acpi_cpu.c
  head/sys/dev/acpica/acpi_ec.c
  head/sys/dev/acpica/acpi_hpet.c
  head/sys/dev/acpica/acpivar.h

Modified: head/sys/dev/acpica/acpi.c
==============================================================================
--- head/sys/dev/acpica/acpi.c	Sat Nov  7 11:41:23 2009	(r199015)
+++ head/sys/dev/acpica/acpi.c	Sat Nov  7 11:46:38 2009	(r199016)
@@ -900,9 +900,6 @@ acpi_read_ivar(device_t dev, device_t ch
     case ACPI_IVAR_HANDLE:
 	*(ACPI_HANDLE *)result = ad->ad_handle;
 	break;
-    case ACPI_IVAR_MAGIC:
-	*(uintptr_t *)result = ad->ad_magic;
-	break;
     case ACPI_IVAR_PRIVATE:
 	*(void **)result = ad->ad_private;
 	break;
@@ -938,9 +935,6 @@ acpi_write_ivar(device_t dev, device_t c
     case ACPI_IVAR_HANDLE:
 	ad->ad_handle = (ACPI_HANDLE)value;
 	break;
-    case ACPI_IVAR_MAGIC:
-	ad->ad_magic = (uintptr_t)value;
-	break;
     case ACPI_IVAR_PRIVATE:
 	ad->ad_private = (void *)value;
 	break;

Modified: head/sys/dev/acpica/acpi_cpu.c
==============================================================================
--- head/sys/dev/acpica/acpi_cpu.c	Sat Nov  7 11:41:23 2009	(r199015)
+++ head/sys/dev/acpica/acpi_cpu.c	Sat Nov  7 11:46:38 2009	(r199016)
@@ -255,7 +255,7 @@ acpi_cpu_probe(device_t dev)
 
     /* Mark this processor as in-use and save our derived id for attach. */
     cpu_softc[cpu_id] = (void *)1;
-    acpi_set_magic(dev, cpu_id);
+    acpi_set_private(dev, (void*)(intptr_t)cpu_id);
     device_set_desc(dev, "ACPI CPU");
 
     return (0);
@@ -286,7 +286,7 @@ acpi_cpu_attach(device_t dev)
     sc = device_get_softc(dev);
     sc->cpu_dev = dev;
     sc->cpu_handle = acpi_get_handle(dev);
-    cpu_id = acpi_get_magic(dev);
+    cpu_id = (int)(intptr_t)acpi_get_private(dev);
     cpu_softc[cpu_id] = sc;
     pcpu_data = pcpu_find(cpu_id);
     pcpu_data->pc_device = dev;

Modified: head/sys/dev/acpica/acpi_ec.c
==============================================================================
--- head/sys/dev/acpica/acpi_ec.c	Sat Nov  7 11:41:23 2009	(r199015)
+++ head/sys/dev/acpica/acpi_ec.c	Sat Nov  7 11:46:38 2009	(r199016)
@@ -129,9 +129,6 @@ struct acpi_ec_params {
     int		uid;
 };
 
-/* Indicate that this device has already been probed via ECDT. */
-#define DEV_ECDT(x)	(acpi_get_magic(x) == (uintptr_t)&acpi_ec_devclass)
-
 /*
  * Driver softc.
  */
@@ -332,7 +329,6 @@ acpi_ec_ecdt_probe(device_t parent)
     params->uid = ecdt->Uid;
     acpi_GetInteger(h, "_GLK", ¶ms->glk);
     acpi_set_private(child, params);
-    acpi_set_magic(child, (uintptr_t)&acpi_ec_devclass);
 
     /* Finish the attach process. */
     if (device_probe_and_attach(child) != 0)
@@ -348,6 +344,7 @@ acpi_ec_probe(device_t dev)
     ACPI_STATUS status;
     device_t	peer;
     char	desc[64];
+    int		ecdt;
     int		ret;
     struct acpi_ec_params *params;
     static char *ec_ids[] = { "PNP0C09", NULL };
@@ -362,11 +359,12 @@ acpi_ec_probe(device_t dev)
      * duplicate probe.
      */
     ret = ENXIO;
-    params = NULL;
+    ecdt = 0;
     buf.Pointer = NULL;
     buf.Length = ACPI_ALLOCATE_BUFFER;
-    if (DEV_ECDT(dev)) {
-	params = acpi_get_private(dev);
+    params = acpi_get_private(dev);
+    if (params != NULL) {
+	ecdt = 1;
 	ret = 0;
     } else if (!acpi_disabled("ec") &&
 	ACPI_ID_PROBE(device_get_parent(dev), dev, ec_ids)) {
@@ -439,7 +437,7 @@ out:
     if (ret == 0) {
 	snprintf(desc, sizeof(desc), "Embedded Controller: GPE %#x%s%s",
 		 params->gpe_bit, (params->glk) ? ", GLK" : "",
-		 DEV_ECDT(dev) ? ", ECDT" : "");
+		 ecdt ? ", ECDT" : "");
 	device_set_desc_copy(dev, desc);
     }
 

Modified: head/sys/dev/acpica/acpi_hpet.c
==============================================================================
--- head/sys/dev/acpica/acpi_hpet.c	Sat Nov  7 11:41:23 2009	(r199015)
+++ head/sys/dev/acpica/acpi_hpet.c	Sat Nov  7 11:46:38 2009	(r199016)
@@ -61,8 +61,6 @@ static void acpi_hpet_test(struct acpi_h
 
 static char *hpet_ids[] = { "PNP0103", NULL };
 
-#define DEV_HPET(x)	(acpi_get_magic(x) == (uintptr_t)&acpi_hpet_devclass)
-
 struct timecounter hpet_timecounter = {
 	.tc_get_timecount =	hpet_get_timecount,
 	.tc_counter_mask =	~0u,
@@ -133,8 +131,6 @@ acpi_hpet_identify(driver_t *driver, dev
 		return;
 	}
 
-	/* Record a magic value so we can detect this device later. */
-	acpi_set_magic(child, (uintptr_t)&acpi_hpet_devclass);
 	bus_set_resource(child, SYS_RES_MEMORY, 0, hpet->Address.Address,
 	    HPET_MEM_WIDTH);
 }
@@ -146,7 +142,7 @@ acpi_hpet_probe(device_t dev)
 
 	if (acpi_disabled("hpet"))
 		return (ENXIO);
-	if (!DEV_HPET(dev) &&
+	if (acpi_get_handle(dev) != NULL &&
 	    (ACPI_ID_PROBE(device_get_parent(dev), dev, hpet_ids) == NULL ||
 	    device_get_unit(dev) != 0))
 		return (ENXIO);

Modified: head/sys/dev/acpica/acpivar.h
==============================================================================
--- head/sys/dev/acpica/acpivar.h	Sat Nov  7 11:41:23 2009	(r199015)
+++ head/sys/dev/acpica/acpivar.h	Sat Nov  7 11:46:38 2009	(r199016)
@@ -88,7 +88,6 @@ struct acpi_softc {
 struct acpi_device {
     /* ACPI ivars */
     ACPI_HANDLE			ad_handle;
-    uintptr_t			ad_magic;
     void			*ad_private;
     int				ad_flags;
 
@@ -224,7 +223,7 @@ extern int	acpi_quirks;
  * attach to ACPI.
  */
 #define ACPI_IVAR_HANDLE	0x100
-#define ACPI_IVAR_MAGIC		0x101
+#define ACPI_IVAR_UNUSED	0x101	/* Unused/reserved. */
 #define ACPI_IVAR_PRIVATE	0x102
 #define ACPI_IVAR_FLAGS		0x103
 
@@ -250,7 +249,6 @@ static __inline void varp ## _set_ ## va
 }
 
 __ACPI_BUS_ACCESSOR(acpi, handle, ACPI, HANDLE, ACPI_HANDLE)
-__ACPI_BUS_ACCESSOR(acpi, magic, ACPI, MAGIC, uintptr_t)
 __ACPI_BUS_ACCESSOR(acpi, private, ACPI, PRIVATE, void *)
 __ACPI_BUS_ACCESSOR(acpi, flags, ACPI, FLAGS, int)
 

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 17:29:03 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C314D1065679;
	Sat,  7 Nov 2009 17:29:03 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A62BA8FC15;
	Sat,  7 Nov 2009 17:29:03 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7HT3vu059028;
	Sat, 7 Nov 2009 17:29:03 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7HT3Gn059027;
	Sat, 7 Nov 2009 17:29:03 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200911071729.nA7HT3Gn059027@svn.freebsd.org>
From: Robert Noland 
Date: Sat, 7 Nov 2009 17:29:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199017 - head/sys/geom/part
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 17:29:03 -0000

Author: rnoland
Date: Sat Nov  7 17:29:03 2009
New Revision: 199017
URL: http://svn.freebsd.org/changeset/base/199017

Log:
  Fix handling of GPT headers when size is > 92 bytes.
  
  It is valid for an on-disk GPT header to report a header size which is
  greater than 92 bytes.  Previously, we would read in the sector and copy
  only the 92 bytes that we know how to deal with before calculating the
  checksum for comparison.  This meant that when we did the checksum, we
  overshot the buffer and took in random memory, so the checksum would fail.
  
  We now determine the size of the header and allocate enough space to
  preserve the entire on-disk contents.  This allows us to be correctly
  calculate the checksum and be able to modify and write the header back
  to the disk, while preserving data that we might not understand.
  
  Reported by:	Kris Weston
  Approved by:	marcel@
  MFC after:	2 weeks

Modified:
  head/sys/geom/part/g_part_gpt.c

Modified: head/sys/geom/part/g_part_gpt.c
==============================================================================
--- head/sys/geom/part/g_part_gpt.c	Sat Nov  7 11:46:38 2009	(r199016)
+++ head/sys/geom/part/g_part_gpt.c	Sat Nov  7 17:29:03 2009	(r199017)
@@ -73,7 +73,7 @@ enum gpt_state {
 struct g_part_gpt_table {
 	struct g_part_table	base;
 	u_char			mbr[MBRSIZE];
-	struct gpt_hdr		hdr;
+	struct gpt_hdr		*hdr;
 	quad_t			lba[GPT_ELT_COUNT];
 	enum gpt_state		state[GPT_ELT_COUNT];
 };
@@ -143,13 +143,12 @@ static struct uuid gpt_uuid_linux_swap =
 static struct uuid gpt_uuid_mbr = GPT_ENT_TYPE_MBR;
 static struct uuid gpt_uuid_unused = GPT_ENT_TYPE_UNUSED;
 
-static void
+static struct gpt_hdr *
 gpt_read_hdr(struct g_part_gpt_table *table, struct g_consumer *cp,
-    enum gpt_elt elt, struct gpt_hdr *hdr)
+    enum gpt_elt elt)
 {
-	struct uuid uuid;
+	struct gpt_hdr *buf, *hdr;
 	struct g_provider *pp;
-	char *buf;
 	quad_t lba, last;
 	int error;
 	uint32_t crc, sz;
@@ -161,63 +160,75 @@ gpt_read_hdr(struct g_part_gpt_table *ta
 	buf = g_read_data(cp, table->lba[elt] * pp->sectorsize, pp->sectorsize,
 	    &error);
 	if (buf == NULL)
-		return;
-	bcopy(buf, hdr, sizeof(*hdr));
-	if (memcmp(hdr->hdr_sig, GPT_HDR_SIG, sizeof(hdr->hdr_sig)) != 0)
-		return;
+		return (NULL);
+	hdr = NULL;
+	if (memcmp(buf->hdr_sig, GPT_HDR_SIG, sizeof(buf->hdr_sig)) != 0)
+		goto fail;
 
 	table->state[elt] = GPT_STATE_CORRUPT;
-	sz = le32toh(hdr->hdr_size);
+	sz = le32toh(buf->hdr_size);
 	if (sz < 92 || sz > pp->sectorsize)
-		return;
-	crc = le32toh(hdr->hdr_crc_self);
-	hdr->hdr_crc_self = 0;
-	if (crc32(hdr, sz) != crc)
-		return;
+		goto fail;
+
+	hdr = g_malloc(sz, M_WAITOK | M_ZERO);
+	bcopy(buf, hdr, sz);
 	hdr->hdr_size = sz;
+
+	crc = le32toh(buf->hdr_crc_self);
+	buf->hdr_crc_self = 0;
+	if (crc32(buf, sz) != crc)
+		goto fail;
 	hdr->hdr_crc_self = crc;
 
 	table->state[elt] = GPT_STATE_INVALID;
-	hdr->hdr_revision = le32toh(hdr->hdr_revision);
+	hdr->hdr_revision = le32toh(buf->hdr_revision);
 	if (hdr->hdr_revision < 0x00010000)
-		return;
-	hdr->hdr_lba_self = le64toh(hdr->hdr_lba_self);
+		goto fail;
+	hdr->hdr_lba_self = le64toh(buf->hdr_lba_self);
 	if (hdr->hdr_lba_self != table->lba[elt])
-		return;
-	hdr->hdr_lba_alt = le64toh(hdr->hdr_lba_alt);
+		goto fail;
+	hdr->hdr_lba_alt = le64toh(buf->hdr_lba_alt);
 
 	/* Check the managed area. */
-	hdr->hdr_lba_start = le64toh(hdr->hdr_lba_start);
+	hdr->hdr_lba_start = le64toh(buf->hdr_lba_start);
 	if (hdr->hdr_lba_start < 2 || hdr->hdr_lba_start >= last)
-		return;
-	hdr->hdr_lba_end = le64toh(hdr->hdr_lba_end);
+		goto fail;
+	hdr->hdr_lba_end = le64toh(buf->hdr_lba_end);
 	if (hdr->hdr_lba_end < hdr->hdr_lba_start || hdr->hdr_lba_end >= last)
-		return;
+		goto fail;
 
 	/* Check the table location and size of the table. */
-	hdr->hdr_entries = le32toh(hdr->hdr_entries);
-	hdr->hdr_entsz = le32toh(hdr->hdr_entsz);
+	hdr->hdr_entries = le32toh(buf->hdr_entries);
+	hdr->hdr_entsz = le32toh(buf->hdr_entsz);
 	if (hdr->hdr_entries == 0 || hdr->hdr_entsz < 128 ||
 	    (hdr->hdr_entsz & 7) != 0)
-		return;
-	hdr->hdr_lba_table = le64toh(hdr->hdr_lba_table);
+		goto fail;
+	hdr->hdr_lba_table = le64toh(buf->hdr_lba_table);
 	if (hdr->hdr_lba_table < 2 || hdr->hdr_lba_table >= last)
-		return;
+		goto fail;
 	if (hdr->hdr_lba_table >= hdr->hdr_lba_start &&
 	    hdr->hdr_lba_table <= hdr->hdr_lba_end)
-		return;
+		goto fail;
 	lba = hdr->hdr_lba_table +
 	    (hdr->hdr_entries * hdr->hdr_entsz + pp->sectorsize - 1) /
 	    pp->sectorsize - 1;
 	if (lba >= last)
-		return;
+		goto fail;
 	if (lba >= hdr->hdr_lba_start && lba <= hdr->hdr_lba_end)
-		return;
+		goto fail;
 
 	table->state[elt] = GPT_STATE_OK;
-	le_uuid_dec(&hdr->hdr_uuid, &uuid);
-	hdr->hdr_uuid = uuid;
-	hdr->hdr_crc_table = le32toh(hdr->hdr_crc_table);
+	le_uuid_dec(&buf->hdr_uuid, &hdr->hdr_uuid);
+	hdr->hdr_crc_table = le32toh(buf->hdr_crc_table);
+
+	g_free(buf);
+	return (hdr);
+
+ fail:
+	if (hdr != NULL)
+		g_free(hdr);
+	g_free(buf);
+	return (NULL);
 }
 
 static struct gpt_ent *
@@ -230,6 +241,9 @@ gpt_read_tbl(struct g_part_gpt_table *ta
 	unsigned int idx, sectors, tblsz;
 	int error;
 
+	if (hdr == NULL)
+		return (NULL);
+
 	pp = cp->provider;
 	table->lba[elt] = hdr->hdr_lba_table;
 
@@ -271,6 +285,9 @@ static int
 gpt_matched_hdrs(struct gpt_hdr *pri, struct gpt_hdr *sec)
 {
 
+	if (pri == NULL || sec == NULL)
+		return (0);
+
 	if (!EQUUID(&pri->hdr_uuid, &sec->hdr_uuid))
 		return (0);
 	return ((pri->hdr_revision == sec->hdr_revision &&
@@ -427,17 +444,17 @@ g_part_gpt_create(struct g_part_table *b
 	table->lba[GPT_ELT_SECHDR] = last;
 	table->lba[GPT_ELT_SECTBL] = last - tblsz;
 
-	bcopy(GPT_HDR_SIG, table->hdr.hdr_sig, sizeof(table->hdr.hdr_sig));
-	table->hdr.hdr_revision = GPT_HDR_REVISION;
-	table->hdr.hdr_size = offsetof(struct gpt_hdr, padding);
-	table->hdr.hdr_lba_start = 2 + tblsz;
-	table->hdr.hdr_lba_end = last - tblsz - 1;
-	kern_uuidgen(&table->hdr.hdr_uuid, 1);
-	table->hdr.hdr_entries = basetable->gpt_entries;
-	table->hdr.hdr_entsz = sizeof(struct gpt_ent);
+	bcopy(GPT_HDR_SIG, table->hdr->hdr_sig, sizeof(table->hdr->hdr_sig));
+	table->hdr->hdr_revision = GPT_HDR_REVISION;
+	table->hdr->hdr_size = offsetof(struct gpt_hdr, padding);
+	table->hdr->hdr_lba_start = 2 + tblsz;
+	table->hdr->hdr_lba_end = last - tblsz - 1;
+	kern_uuidgen(&table->hdr->hdr_uuid, 1);
+	table->hdr->hdr_entries = basetable->gpt_entries;
+	table->hdr->hdr_entsz = sizeof(struct gpt_ent);
 
-	basetable->gpt_first = table->hdr.hdr_lba_start;
-	basetable->gpt_last = table->hdr.hdr_lba_end;
+	basetable->gpt_first = table->hdr->hdr_lba_start;
+	basetable->gpt_last = table->hdr->hdr_lba_end;
 	return (0);
 }
 
@@ -582,7 +599,7 @@ g_part_gpt_probe(struct g_part_table *ta
 static int
 g_part_gpt_read(struct g_part_table *basetable, struct g_consumer *cp)
 {
-	struct gpt_hdr prihdr, sechdr;
+	struct gpt_hdr *prihdr, *sechdr;
 	struct gpt_ent *tbl, *pritbl, *sectbl;
 	struct g_provider *pp;
 	struct g_part_gpt_table *table;
@@ -601,18 +618,18 @@ g_part_gpt_read(struct g_part_table *bas
 	g_free(buf);
 
 	/* Read the primary header and table. */
-	gpt_read_hdr(table, cp, GPT_ELT_PRIHDR, &prihdr);
+	prihdr = gpt_read_hdr(table, cp, GPT_ELT_PRIHDR);
 	if (table->state[GPT_ELT_PRIHDR] == GPT_STATE_OK) {
-		pritbl = gpt_read_tbl(table, cp, GPT_ELT_PRITBL, &prihdr);
+		pritbl = gpt_read_tbl(table, cp, GPT_ELT_PRITBL, prihdr);
 	} else {
 		table->state[GPT_ELT_PRITBL] = GPT_STATE_MISSING;
 		pritbl = NULL;
 	}
 
 	/* Read the secondary header and table. */
-	gpt_read_hdr(table, cp, GPT_ELT_SECHDR, &sechdr);
+	sechdr = gpt_read_hdr(table, cp, GPT_ELT_SECHDR);
 	if (table->state[GPT_ELT_SECHDR] == GPT_STATE_OK) {
-		sectbl = gpt_read_tbl(table, cp, GPT_ELT_SECTBL, &sechdr);
+		sectbl = gpt_read_tbl(table, cp, GPT_ELT_SECTBL, sechdr);
 	} else {
 		table->state[GPT_ELT_SECTBL] = GPT_STATE_MISSING;
 		sectbl = NULL;
@@ -635,13 +652,17 @@ g_part_gpt_read(struct g_part_table *bas
 	 */
 	if (table->state[GPT_ELT_PRIHDR] == GPT_STATE_OK &&
 	    table->state[GPT_ELT_SECHDR] == GPT_STATE_OK &&
-	    !gpt_matched_hdrs(&prihdr, &sechdr)) {
+	    !gpt_matched_hdrs(prihdr, sechdr)) {
 		if (table->state[GPT_ELT_PRITBL] == GPT_STATE_OK) {
 			table->state[GPT_ELT_SECHDR] = GPT_STATE_INVALID;
 			table->state[GPT_ELT_SECTBL] = GPT_STATE_MISSING;
+			g_free(sechdr);
+			sechdr = NULL;
 		} else {
 			table->state[GPT_ELT_PRIHDR] = GPT_STATE_INVALID;
 			table->state[GPT_ELT_PRITBL] = GPT_STATE_MISSING;
+			g_free(prihdr);
+			prihdr = NULL;
 		}
 	}
 
@@ -651,6 +672,8 @@ g_part_gpt_read(struct g_part_table *bas
 		printf("GEOM: %s: using the secondary instead -- recovery "
 		    "strongly advised.\n", pp->name);
 		table->hdr = sechdr;
+		if (prihdr != NULL)
+			g_free(prihdr);
 		tbl = sectbl;
 		if (pritbl != NULL)
 			g_free(pritbl);
@@ -662,14 +685,16 @@ g_part_gpt_read(struct g_part_table *bas
 			    "suggested.\n", pp->name);
 		}
 		table->hdr = prihdr;
+		if (sechdr != NULL)
+			g_free(sechdr);
 		tbl = pritbl;
 		if (sectbl != NULL)
 			g_free(sectbl);
 	}
 
-	basetable->gpt_first = table->hdr.hdr_lba_start;
-	basetable->gpt_last = table->hdr.hdr_lba_end;
-	basetable->gpt_entries = table->hdr.hdr_entries;
+	basetable->gpt_first = table->hdr->hdr_lba_start;
+	basetable->gpt_last = table->hdr->hdr_lba_end;
+	basetable->gpt_entries = table->hdr->hdr_entries;
 
 	for (index = basetable->gpt_entries - 1; index >= 0; index--) {
 		if (EQUUID(&tbl[index].ent_type, &gpt_uuid_unused))
@@ -727,7 +752,7 @@ g_part_gpt_write(struct g_part_table *ba
 
 	pp = cp->provider;
 	table = (struct g_part_gpt_table *)basetable;
-	tlbsz = (table->hdr.hdr_entries * table->hdr.hdr_entsz +
+	tlbsz = (table->hdr->hdr_entries * table->hdr->hdr_entsz +
 	    pp->sectorsize - 1) / pp->sectorsize;
 
 	/* Write the PMBR */
@@ -741,21 +766,21 @@ g_part_gpt_write(struct g_part_table *ba
 	/* Allocate space for the header and entries. */
 	buf = g_malloc((tlbsz + 1) * pp->sectorsize, M_WAITOK | M_ZERO);
 
-	memcpy(buf, table->hdr.hdr_sig, sizeof(table->hdr.hdr_sig));
-	le32enc(buf + 8, table->hdr.hdr_revision);
-	le32enc(buf + 12, table->hdr.hdr_size);
-	le64enc(buf + 40, table->hdr.hdr_lba_start);
-	le64enc(buf + 48, table->hdr.hdr_lba_end);
-	le_uuid_enc(buf + 56, &table->hdr.hdr_uuid);
-	le32enc(buf + 80, table->hdr.hdr_entries);
-	le32enc(buf + 84, table->hdr.hdr_entsz);
+	memcpy(buf, table->hdr->hdr_sig, sizeof(table->hdr->hdr_sig));
+	le32enc(buf + 8, table->hdr->hdr_revision);
+	le32enc(buf + 12, table->hdr->hdr_size);
+	le64enc(buf + 40, table->hdr->hdr_lba_start);
+	le64enc(buf + 48, table->hdr->hdr_lba_end);
+	le_uuid_enc(buf + 56, &table->hdr->hdr_uuid);
+	le32enc(buf + 80, table->hdr->hdr_entries);
+	le32enc(buf + 84, table->hdr->hdr_entsz);
 
 	LIST_FOREACH(baseentry, &basetable->gpt_entry, gpe_entry) {
 		if (baseentry->gpe_deleted)
 			continue;
 		entry = (struct g_part_gpt_entry *)baseentry;
 		index = baseentry->gpe_index - 1;
-		bp = buf + pp->sectorsize + table->hdr.hdr_entsz * index;
+		bp = buf + pp->sectorsize + table->hdr->hdr_entsz * index;
 		le_uuid_enc(bp, &entry->ent.ent_type);
 		le_uuid_enc(bp + 16, &entry->ent.ent_uuid);
 		le64enc(bp + 32, entry->ent.ent_lba_start);
@@ -766,7 +791,7 @@ g_part_gpt_write(struct g_part_table *ba
 	}
 
 	crc = crc32(buf + pp->sectorsize,
-	    table->hdr.hdr_entries * table->hdr.hdr_entsz);
+	    table->hdr->hdr_entries * table->hdr->hdr_entsz);
 	le32enc(buf + 88, crc);
 
 	/* Write primary meta-data. */
@@ -774,7 +799,7 @@ g_part_gpt_write(struct g_part_table *ba
 	le64enc(buf + 24, table->lba[GPT_ELT_PRIHDR]);	/* hdr_lba_self. */
 	le64enc(buf + 32, table->lba[GPT_ELT_SECHDR]);	/* hdr_lba_alt. */
 	le64enc(buf + 72, table->lba[GPT_ELT_PRITBL]);	/* hdr_lba_table. */
-	crc = crc32(buf, table->hdr.hdr_size);
+	crc = crc32(buf, table->hdr->hdr_size);
 	le32enc(buf + 16, crc);
 
 	error = g_write_data(cp, table->lba[GPT_ELT_PRITBL] * pp->sectorsize,
@@ -791,7 +816,7 @@ g_part_gpt_write(struct g_part_table *ba
 	le64enc(buf + 24, table->lba[GPT_ELT_SECHDR]);	/* hdr_lba_self. */
 	le64enc(buf + 32, table->lba[GPT_ELT_PRIHDR]);	/* hdr_lba_alt. */
 	le64enc(buf + 72, table->lba[GPT_ELT_SECTBL]);	/* hdr_lba_table. */
-	crc = crc32(buf, table->hdr.hdr_size);
+	crc = crc32(buf, table->hdr->hdr_size);
 	le32enc(buf + 16, crc);
 
 	error = g_write_data(cp, table->lba[GPT_ELT_SECTBL] * pp->sectorsize,

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 18:25:38 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8EA99106566B;
	Sat,  7 Nov 2009 18:25:38 +0000 (UTC) (envelope-from xcllnt@mac.com)
Received: from asmtpout030.mac.com (asmtpout030.mac.com [17.148.16.105])
	by mx1.freebsd.org (Postfix) with ESMTP id 74A198FC13;
	Sat,  7 Nov 2009 18:25:38 +0000 (UTC)
MIME-version: 1.0
Content-transfer-encoding: 7BIT
Content-type: text/plain; charset=us-ascii; format=flowed
Received: from macbook-pro.lan.xcllnt.net (mail.xcllnt.net [75.101.29.67])
	by asmtp030.mac.com
	(Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008;
	32bit)) with ESMTPSA id <0KSR004234HT7A00@asmtp030.mac.com>; Sat,
	07 Nov 2009 10:25:08 -0800 (PST)
From: Marcel Moolenaar 
In-reply-to: <200911071729.nA7HT3Gn059027@svn.freebsd.org>
Date: Sat, 07 Nov 2009 10:25:05 -0800
Message-id: <537B322D-426E-4876-94FF-902EE9E3826D@mac.com>
References: <200911071729.nA7HT3Gn059027@svn.freebsd.org>
To: Robert Noland 
X-Mailer: Apple Mail (2.1076)
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r199017 - head/sys/geom/part
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 18:25:38 -0000


On Nov 7, 2009, at 9:29 AM, Robert Noland wrote:

> Author: rnoland
> Date: Sat Nov  7 17:29:03 2009
> New Revision: 199017
> URL: http://svn.freebsd.org/changeset/base/199017
>
> Log:
>  Fix handling of GPT headers when size is > 92 bytes.

Thanks!

-- 
Marcel Moolenaar
xcllnt@mac.com




From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 18:42:54 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 876EA1065670;
	Sat,  7 Nov 2009 18:42:54 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 76D328FC08;
	Sat,  7 Nov 2009 18:42:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7Igsp0060382;
	Sat, 7 Nov 2009 18:42:54 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7IgsNn060380;
	Sat, 7 Nov 2009 18:42:54 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200911071842.nA7IgsNn060380@svn.freebsd.org>
From: Doug Barton 
Date: Sat, 7 Nov 2009 18:42:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199018 - head/sys/dev/wpi
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 18:42:54 -0000

Author: dougb
Date: Sat Nov  7 18:42:53 2009
New Revision: 199018
URL: http://svn.freebsd.org/changeset/base/199018

Log:
  Turn off WPI_DEBUG by default as the driver seems sufficiently stable
  at this point.
  
  Reviewed by:	benjsc, thompsa

Modified:
  head/sys/dev/wpi/if_wpi.c

Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c	Sat Nov  7 17:29:03 2009	(r199017)
+++ head/sys/dev/wpi/if_wpi.c	Sat Nov  7 18:42:53 2009	(r199018)
@@ -103,8 +103,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-#define WPI_DEBUG
-
 #ifdef WPI_DEBUG
 #define DPRINTF(x)	do { if (wpi_debug != 0) printf x; } while (0)
 #define DPRINTFN(n, x)	do { if (wpi_debug & n) printf x; } while (0)

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 18:55:40 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1121E106568D;
	Sat,  7 Nov 2009 18:55:40 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0031D8FC12;
	Sat,  7 Nov 2009 18:55:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7ItdH0060746;
	Sat, 7 Nov 2009 18:55:39 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7Itd9b060744;
	Sat, 7 Nov 2009 18:55:39 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200911071855.nA7Itd9b060744@svn.freebsd.org>
From: Doug Barton 
Date: Sat, 7 Nov 2009 18:55:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199019 - head/contrib/bind9/bin/dig
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 18:55:40 -0000

Author: dougb
Date: Sat Nov  7 18:55:39 2009
New Revision: 199019
URL: http://svn.freebsd.org/changeset/base/199019

Log:
  Wrap some socket handling code in a !NULL bow
  
  This patch or something similar will likely be included in a future
  BIND release.
  
  PR:		bin/138061
  Submitted by:	Michael Baker 
  Original patch submitted by:	Volker 
  Patch reviewed and tweaked by:	ISC

Modified:
  head/contrib/bind9/bin/dig/dighost.c

Modified: head/contrib/bind9/bin/dig/dighost.c
==============================================================================
--- head/contrib/bind9/bin/dig/dighost.c	Sat Nov  7 18:42:53 2009	(r199018)
+++ head/contrib/bind9/bin/dig/dighost.c	Sat Nov  7 18:55:39 2009	(r199019)
@@ -2604,10 +2604,12 @@ connect_done(isc_task_t *task, isc_event
 
 	if (sevent->result == ISC_R_CANCELED) {
 		debug("in cancel handler");
-		isc_socket_detach(&query->sock);
-		sockcount--;
-		INSIST(sockcount >= 0);
-		debug("sockcount=%d", sockcount);
+		if (query->sock != NULL) {
+			isc_socket_detach(&query->sock);
+			sockcount--;
+			INSIST(sockcount >= 0);
+			debug("sockcount=%d", sockcount);
+		}
 		query->waiting_connect = ISC_FALSE;
 		isc_event_free(&event);
 		l = query->lookup;

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 19:00:24 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 136A8106568F;
	Sat,  7 Nov 2009 19:00:24 +0000 (UTC) (envelope-from sam@freebsd.org)
Received: from ebb.errno.com (ebb.errno.com [69.12.149.25])
	by mx1.freebsd.org (Postfix) with ESMTP id DCEE08FC15;
	Sat,  7 Nov 2009 19:00:23 +0000 (UTC)
Received: from Macintosh-4.local ([10.0.0.198]) (authenticated bits=0)
	by ebb.errno.com (8.13.6/8.12.6) with ESMTP id nA7J0NPg087853
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Sat, 7 Nov 2009 11:00:23 -0800 (PST) (envelope-from sam@freebsd.org)
Message-ID: <4AF5C3C7.1020806@freebsd.org>
Date: Sat, 07 Nov 2009 11:00:23 -0800
From: Sam Leffler 
Organization: FreeBSD Project
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: Doug Barton 
References: <200911071842.nA7IgsNn060380@svn.freebsd.org>
In-Reply-To: <200911071842.nA7IgsNn060380@svn.freebsd.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-DCC-x.dcc-servers-Metrics: ebb.errno.com; whitelist
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r199018 - head/sys/dev/wpi
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 19:00:24 -0000

Doug Barton wrote:
> Author: dougb
> Date: Sat Nov  7 18:42:53 2009
> New Revision: 199018
> URL: http://svn.freebsd.org/changeset/base/199018
> 
> Log:
>   Turn off WPI_DEBUG by default as the driver seems sufficiently stable
>   at this point.
>   
>   Reviewed by:	benjsc, thompsa
> 
> Modified:
>   head/sys/dev/wpi/if_wpi.c
> 
> Modified: head/sys/dev/wpi/if_wpi.c
> ==============================================================================
> --- head/sys/dev/wpi/if_wpi.c	Sat Nov  7 17:29:03 2009	(r199017)
> +++ head/sys/dev/wpi/if_wpi.c	Sat Nov  7 18:42:53 2009	(r199018)
> @@ -103,8 +103,6 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  
> -#define WPI_DEBUG
> -
>  #ifdef WPI_DEBUG
>  #define DPRINTF(x)	do { if (wpi_debug != 0) printf x; } while (0)
>  #define DPRINTFN(n, x)	do { if (wpi_debug & n) printf x; } while (0)
> 
> 

The right thing to do is to set wpi_debug to 0 and leave the messages
compiled in.

	Sam


From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 20:37:39 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5CD121065670;
	Sat,  7 Nov 2009 20:37:39 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4BE678FC18;
	Sat,  7 Nov 2009 20:37:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7KbcP0062582;
	Sat, 7 Nov 2009 20:37:38 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7KbcWH062580;
	Sat, 7 Nov 2009 20:37:38 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200911072037.nA7KbcWH062580@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Sat, 7 Nov 2009 20:37:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199020 - head/sys/dev/bge
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 20:37:39 -0000

Author: yongari
Date: Sat Nov  7 20:37:38 2009
New Revision: 199020
URL: http://svn.freebsd.org/changeset/base/199020

Log:
  Tell upper layer we support long frames. ether_ifattach()
  initializes it to ETHER_HDR_LEN so we have to override it after
  calling ether_ifattch().
  While I'm here remove setting if_mtu value, it's initialized in
  ether_ifattach().

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c	Sat Nov  7 18:55:39 2009	(r199019)
+++ head/sys/dev/bge/if_bge.c	Sat Nov  7 20:37:38 2009	(r199020)
@@ -2723,7 +2723,6 @@ bge_attach(device_t dev)
 	ifp->if_ioctl = bge_ioctl;
 	ifp->if_start = bge_start;
 	ifp->if_init = bge_init;
-	ifp->if_mtu = ETHERMTU;
 	ifp->if_snd.ifq_drv_maxlen = BGE_TX_RING_CNT - 1;
 	IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
 	IFQ_SET_READY(&ifp->if_snd);
@@ -2838,6 +2837,9 @@ again:
 	ether_ifattach(ifp, eaddr);
 	callout_init_mtx(&sc->bge_stat_ch, &sc->bge_mtx, 0);
 
+	/* Tell upper layer we support long frames. */
+	ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
+
 	/*
 	 * Hookup IRQ last.
 	 */

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 20:52:05 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F2A7C106566B
	for ; Sat,  7 Nov 2009 20:52:05 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from mail2.fluidhosting.com (mx21.fluidhosting.com [204.14.89.4])
	by mx1.freebsd.org (Postfix) with ESMTP id 5A2898FC25
	for ; Sat,  7 Nov 2009 20:52:05 +0000 (UTC)
Received: (qmail 9658 invoked by uid 399); 7 Nov 2009 20:52:04 -0000
Received: from localhost (HELO foreign.dougb.net)
	(dougb@dougbarton.us@127.0.0.1)
	by localhost with ESMTPAM; 7 Nov 2009 20:52:04 -0000
X-Originating-IP: 127.0.0.1
X-Sender: dougb@dougbarton.us
Message-ID: <4AF5DDFB.10107@FreeBSD.org>
Date: Sat, 07 Nov 2009 12:52:11 -0800
From: Doug Barton 
Organization: http://SupersetSolutions.com/
User-Agent: Thunderbird 2.0.0.23 (X11/20090822)
MIME-Version: 1.0
To: Sam Leffler 
References: <200911071842.nA7IgsNn060380@svn.freebsd.org>
	<4AF5C3C7.1020806@freebsd.org>
In-Reply-To: <4AF5C3C7.1020806@freebsd.org>
X-Enigmail-Version: 0.96.0
OpenPGP: id=D5B2F0FB
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r199018 - head/sys/dev/wpi
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 20:52:06 -0000

Sam Leffler wrote:
> The right thing to do is to set wpi_debug to 0 and leave the messages
> compiled in.

Well as you can see from the diff I did leave the messages in the
source so that anyone who wants to enable debugging again can just
define WPI_DEBUG at build time to get it.

However defining WPI_DEBUG to 0 resulted in the debug messages being
printed on the console again so if I'm understanding what you're
suggesting correctly it seems that it would require a lot more changes
in the code to accomplish. (I did see other examples of what I think
you're suggesting in sys/ but this driver doesn't seem to have that
support.)

If I'm not understanding something or you have a better solution feel
free to implement it. My goal was just to get a less noisy console at
boot time.


Doug

-- 

	Improve the effectiveness of your Internet presence with
	a domain name makeover!    http://SupersetSolutions.com/


From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 21:02:41 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 360BD106566B;
	Sat,  7 Nov 2009 21:02:41 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0BFDE8FC0C;
	Sat,  7 Nov 2009 21:02:41 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7L2ebF063174;
	Sat, 7 Nov 2009 21:02:40 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7L2e6H063173;
	Sat, 7 Nov 2009 21:02:40 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200911072102.nA7L2e6H063173@svn.freebsd.org>
From: Doug Barton 
Date: Sat, 7 Nov 2009 21:02:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199021 - head/games/fortune/datfiles
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 21:02:41 -0000

Author: dougb
Date: Sat Nov  7 21:02:40 2009
New Revision: 199021
URL: http://svn.freebsd.org/changeset/base/199021

Log:
  Remove the svn:executable property from this file

Modified:
Directory Properties:
  head/games/fortune/datfiles/gerrold.limerick   (props changed)

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 21:28:23 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AA740106566B;
	Sat,  7 Nov 2009 21:28:23 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7F9388FC1B;
	Sat,  7 Nov 2009 21:28:23 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7LSN1L063803;
	Sat, 7 Nov 2009 21:28:23 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7LSLYX063800;
	Sat, 7 Nov 2009 21:28:21 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200911072128.nA7LSLYX063800@svn.freebsd.org>
From: Doug Barton 
Date: Sat, 7 Nov 2009 21:28:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199023 - head/games/fortune/datfiles
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 21:28:23 -0000

Author: dougb
Date: Sat Nov  7 21:28:21 2009
New Revision: 199023
URL: http://svn.freebsd.org/changeset/base/199023

Log:
  Move Warner's very funny comparison of VCS to anal sex into fortunes-o

Modified:
  head/games/fortune/datfiles/fortunes
  head/games/fortune/datfiles/fortunes-o.real

Modified: head/games/fortune/datfiles/fortunes
==============================================================================
--- head/games/fortune/datfiles/fortunes	Sat Nov  7 21:10:48 2009	(r199022)
+++ head/games/fortune/datfiles/fortunes	Sat Nov  7 21:28:21 2009	(r199023)
@@ -2516,12 +2516,6 @@ other people to screw things up when you
 yourself for far less money.  This article can help you.
 		-- Dave Barry, "The Taming of the Screw"
 %
-	I'd say that VCS is more like the anal sex of the software
-world: Everybody talks about it, some people do it, some people enjoy
-it, but typically only vague implications about the best techniques
-are ever voiced in public.
-              -- Warner Losh, on Version Control Systems
-%
 	"I'll tell you what I know, then," he decided.  "The pin I'm wearing
 means I'm a member of the IA.  That's Inamorati Anonymous.  An inamorato is
 somebody in love.  That's the worst addiction of all."

Modified: head/games/fortune/datfiles/fortunes-o.real
==============================================================================
--- head/games/fortune/datfiles/fortunes-o.real	Sat Nov  7 21:10:48 2009	(r199022)
+++ head/games/fortune/datfiles/fortunes-o.real	Sat Nov  7 21:28:21 2009	(r199023)
@@ -1153,6 +1153,12 @@ and stuck it in my back."
 	"Gabriel's trumpet will produce you from the ass of a pig."
 		-- Al Swearingen, E. B. Farnum, _Deadwood_
 %
+	I'd say that VCS is more like the anal sex of the software
+world: Everybody talks about it, some people do it, some people enjoy
+it, but typically only vague implications about the best techniques
+are ever voiced in public.
+              -- Warner Losh, on Version Control Systems
+%
 	"I'll tell ya, Jeb," Wilbur said to his friend, "the tractor
 business ain't doin' too well.  I ain't sold one all month.
 	"You think you've got problems?" Jeb replied.  "The other day, I went

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 21:46:34 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 913DD1065670;
	Sat,  7 Nov 2009 21:46:34 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7FF338FC0C;
	Sat,  7 Nov 2009 21:46:34 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7LkYR3064302;
	Sat, 7 Nov 2009 21:46:34 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7LkYAr064300;
	Sat, 7 Nov 2009 21:46:34 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200911072146.nA7LkYAr064300@svn.freebsd.org>
From: Attilio Rao 
Date: Sat, 7 Nov 2009 21:46:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199024 - head/usr.bin/kdump
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 21:46:34 -0000

Author: attilio
Date: Sat Nov  7 21:46:34 2009
New Revision: 199024
URL: http://svn.freebsd.org/changeset/base/199024

Log:
  Use a safety belt for cases where corrupted narg can be passed to the
  ktrsyscall(). print_number() does decrement the number of arguments,
  leading to infinite loops for negative values.
  
  Reported by:	Patrick Lamaiziere ,
  		Jonathan Pascal 
  Submitted by:	jh
  PR:		bin/120055, kern/119564
  MFC:		1 week

Modified:
  head/usr.bin/kdump/kdump.c

Modified: head/usr.bin/kdump/kdump.c
==============================================================================
--- head/usr.bin/kdump/kdump.c	Sat Nov  7 21:28:21 2009	(r199023)
+++ head/usr.bin/kdump/kdump.c	Sat Nov  7 21:46:34 2009	(r199024)
@@ -799,7 +799,7 @@ ktrsyscall(struct ktr_syscall *ktr)
 				narg--;
 			}
 		}
-		while (narg) {
+		while (narg > 0) {
 			print_number(ip,narg,c);
 		}
 		(void)putchar(')');

From owner-svn-src-head@FreeBSD.ORG  Sat Nov  7 22:13:32 2009
Return-Path: 
Delivered-To: svn-src-head@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 04EA71065679;
	Sat,  7 Nov 2009 22:13:32 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DD2A48FC0C;
	Sat,  7 Nov 2009 22:13:31 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nA7MDV9c064991;
	Sat, 7 Nov 2009 22:13:31 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nA7MDU4W064988;
	Sat, 7 Nov 2009 22:13:30 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200911072213.nA7MDU4W064988@svn.freebsd.org>
From: Doug Barton 
Date: Sat, 7 Nov 2009 22:13:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r199025 - head/games/fortune/datfiles
X-BeenThere: svn-src-head@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for the src tree for head/-current
	
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Sat, 07 Nov 2009 22:13:32 -0000

Author: dougb
Date: Sat Nov  7 22:13:29 2009
New Revision: 199025
URL: http://svn.freebsd.org/changeset/base/199025

Log:
  Properly sort a math fortune after the changes in r193486
  
  Properly sort fortunes added in r174879 and r174959

Modified:
  head/games/fortune/datfiles/fortunes

Modified: head/games/fortune/datfiles/fortunes
==============================================================================
--- head/games/fortune/datfiles/fortunes	Sat Nov  7 21:46:34 2009	(r199024)
+++ head/games/fortune/datfiles/fortunes	Sat Nov  7 22:13:29 2009	(r199025)
@@ -69,6 +69,17 @@ either.  If you need some help, give us 
 
 		-- CommUNIXque 1:1, ASCAR Business Systems
 %
+			   1/2
+	12 + 144 + 20 + 3*4                    2
+	----------------------  +  5 * 11  =  9  +  0
+		  7
+
+A dozen, a gross and a score,
+Plus three times the square root of four,
+	Divided by seven,
+	Plus five times eleven,
+Equals nine squared plus zero, no more!
+%
 			-- Gifts for Children --
 
 This is easy.  You never have to figure out what to get for children,
@@ -674,17 +685,6 @@ Liza Minnelli.
 %
 	... with liberty and justice for all who can afford it.
 %
-			   1/2
-	12 + 144 + 20 + 3*4                    2
-	----------------------  +  5 * 11  =  9  +  0
-		  7
-
-A dozen, a gross and a score,
-Plus three times the square root of four,
-	Divided by seven,
-	Plus five times eleven,
-Equals nine squared plus zero, no more!
-%
 	7,140	pounds on the Sun
 	   97	pounds on Mercury or Mars
 	  255	pounds on Earth
@@ -33065,6 +33065,10 @@ versions of songs from The Wizard of Oz.
 %
 May a Misguided Platypus lay its Eggs in your Jockey Shorts
 %
+May all your Emus lay soft boiled eggs, and may all your
+Kangaroos be born with iPods already fitted.
+		-- Aussie New Years wish, found on hasselbladinfo.com
+%
 May all your PUSHes be POPped.
 %
 May Euell Gibbons eat your only copy of the manual!
@@ -59764,6 +59768,17 @@ You've been telling me to relax all the 
 and now you're telling me just to be myself?
 		-- The Return of the Secaucus Seven
 %
+You've decked the halls with a dozen miles' length of electric lights. 
+Your front lawn is a gleaming testament of incandescent wonder. The neighbors 
+wear sunglasses 24/7,  and orbiting satellites have officially picked up 
+and pinpointed your house as the brightest spot on earth.
+        
+You've finally put together the Christmas wonderland of your dreams... now 
+if only you could get a good picture of it.
+        
+Photographing holiday lights is no easy task. 
+		-- from an email sent by photojojo.com
+%
 You've got to have a gimmick if your band sucks.
 		-- Gary Giddens
 %
@@ -59804,18 +59819,3 @@ since I first called my brother's father
 Zymurgy's Law of Volunteer Labor:
 	People are always available for work in the past tense.
 %
-You've decked the halls with a dozen miles' length of electric lights. 
-Your front lawn is a gleaming testament of incandescent wonder. The neighbors 
-wear sunglasses 24/7,  and orbiting satellites have officially picked up 
-and pinpointed your house as the brightest spot on earth.
-        
-You've finally put together the Christmas wonderland of your dreams... now 
-if only you could get a good picture of it.
-        
-Photographing holiday lights is no easy task. 
-		-- from an email sent by photojojo.com
-%
-May all your Emus lay soft boiled eggs, and may all your
-Kangaroos be born with iPods already fitted.
-		-- Aussie New Years wish, found on hasselbladinfo.com
-%