6 years agokernel - Fix missing B_ORDERED inheritance
Matthew Dillon [Thu, 13 Dec 2012 04:09:45 +0000 (20:09 -0800)]
kernel - Fix missing B_ORDERED inheritance

* The cluster code was not inheriting B_ORDERED on buffers when constructing
  the rollup buffer due to a coding error.

* I don't think anything uses B_ORDERED so this shouldn't matter, but fix
  it anyway.

Reported-by: vsrinivas
6 years agokernel - Reduce the size of the callout wheel
Matthew Dillon [Mon, 10 Dec 2012 23:11:46 +0000 (15:11 -0800)]
kernel - Reduce the size of the callout wheel

* The callout wheel is per-cpu but ncallout is calculated based on memory.
  A system with many cpus tended to allocate an excessive amount of memory
  in aggregate for the callout wheels.

* Reduce the size of the per-cpu callout wheel by approximately a factor
  of (ncpus).  On a 16G machine with 8 cores, aggregate callout wheel
  allocations is reduced from 128MB to 16MB.

6 years agokernel - Fix softupdates panic with UFS
Matthew Dillon [Mon, 10 Dec 2012 23:02:01 +0000 (15:02 -0800)]
kernel - Fix softupdates panic with UFS

* If getdirtybuf() was unable to lookup a dirty buffer from the
  flush_pagedep_deps path, we need to retry the lookup, rather than
  proceeding through processing the diradd.

Reported-by: marino@
Submitted-by: vsrinivas
6 years agokernel - Fix bug (not reached in normal operation) in vm_map_set_wired_quick()
Matthew Dillon [Mon, 10 Dec 2012 22:37:28 +0000 (14:37 -0800)]
kernel - Fix bug (not reached in normal operation) in vm_map_set_wired_quick()

* Fix a bug where vm_map_set_wired_quick() only operated on the first
  vm_map_entry of a slab, and would panic if there were more.

* Slab allocations are only going to have one vm_map_entry anyway so the
  bug was never hit.  But we fix it anyway.

6 years agokernel - Fix debug output label
Matthew Dillon [Mon, 10 Dec 2012 22:35:39 +0000 (14:35 -0800)]
kernel - Fix debug output label

* Fix "rflags" to "eflags" in i386 kprintf() for smp_invltlb() debugging.

Reported-by: swildner
6 years agokernel - Fix improper assertion panic in vinvalbuf()
Matthew Dillon [Sat, 8 Dec 2012 22:22:15 +0000 (14:22 -0800)]
kernel - Fix improper assertion panic in vinvalbuf()

* Related to the removal of vhold/vdrop from buffer cache buffers, the
  state of a vnode being cleaned can now contain more active buffers and
  I/O's at the time of the vinvalbuf() call.

* Remove the 'vinvalbuf: dirty bufs' assertion and panic.  It is no longer
  a correct assertion.  Note that we've also had sporatic reports of this
  panic even prior to the work so it might not have been a completely
  correct assertion before either.

* Rework the vinvalbuf buffer-flushing and I/O-waiting code a bit.  We
  have to wait for I/O at least once and it is probably a good idea to
  wait for I/O after each buffer flush pass too, to avoid live-locks.

Reported-by: vsrinivas
6 years agokernel - Adjust NFS server for new allocvnode() code
Matthew Dillon [Sat, 8 Dec 2012 05:21:55 +0000 (21:21 -0800)]
kernel - Adjust NFS server for new allocvnode() code

* Adjust the NFS server to check for LWP_MP_VNLRU garbage collection
  requests and act on them.

  This prevents excessive allocation of vnodes by the nfsd's.

6 years agokernel - Change allocvnode() to not recursively block freeing vnodes
Matthew Dillon [Sat, 8 Dec 2012 02:52:30 +0000 (18:52 -0800)]
kernel - Change allocvnode() to not recursively block freeing vnodes

allocvnode() has caused many deadlock issues over the years, including
recent issues with softupdates, because it is often called from deep
within VFS modules and attempts to clean and free unrelated vnodes when
the vnode limit is reached to make room for the new one.

* numvnodes is not protected by any locks and needs atomic ops.

* Change allocvnode() to always allocate and not attempt to free
  other vnodes.

* allocvnode() now flags the LWP to handle reducing the number of vnodes
  in the system as of when it returns to userland instead.  Consolidate
  several flags into a single conditional function call, lwpuserret().

  When triggered, this code will do a limited scan of the free list to
  try to find vnodes to free.

* The vnlru_proc_wait() code existed to handle a separate algorithm
  related to vnodes with cached buffers and VM pages but represented
  a major bottleneck in the system.

  Remove vnlru_proc_wait() and allow vnodes with buffers and/or non-empty
  VM objects to be placed on the free list.

  This also requires not vhold()ing the vnode for related buffer cache
  buffer since the vnode will not go away until related buffers have been
  cleaned out.  We shouldn't need those holds.

Testing-by: vsrinivas
6 years agokernel - Fix filesystem lookup error due to parent directory recyclement race
Matthew Dillon [Fri, 7 Dec 2012 22:44:26 +0000 (14:44 -0800)]
kernel - Fix filesystem lookup error due to parent directory recyclement race

* When looking up a path the parent ncp's vnode is needed to pass into
  the VFS code as the directory vnode (dvp) for the element being looked up.

* Fix a timing race whereby a system under extreme vnode pressure (such as
  when kern.maxvnodes is set to a very low value) can squeek in recyclement
  of this directory vnode when there are no children under it in the

  We fix the problem by holding the directory vnode during the nlookup() and

6 years agokernel - Fix issues where tmpfs loses file data
Matthew Dillon [Fri, 7 Dec 2012 22:20:31 +0000 (14:20 -0800)]
kernel - Fix issues where tmpfs loses file data

* For TMPFS, UIO_NOCOPY writes must use bawrite() or bwrite() and must NEVER
  used buwrite() because these operations are being called via the VM page
  cleaning code via the pageout daemon or the vnode termination code
  (when maxvnodes is reached), and the underlying pages are about to be

* vm_object_terminate() must call vinvalbuf() both before (for normal
  filesystems) and also after (for tmpfs style filesystems).  Otherwise
  buffers potentially not disposed of during the page cleaning might
  get left hanging.  This is a safety feature.

* Remove post-flush test code from vm_object_page_collect_flush() entirely.
  The IO's are in progress at this point so it makes no sense to set

* vm_page_need_commit() must make the object writeable and dirty, I think.

* Fix multiple places where m->dirty is tested and PG_NEED_COMMIT is not.

Reported-by: vsrinivas, others
6 years agokernel - Fix memory starvation issue w/tmpfs
Matthew Dillon [Wed, 5 Dec 2012 19:40:01 +0000 (11:40 -0800)]
kernel - Fix memory starvation issue w/tmpfs

* TMPFS relies on the pagedaemon to retire dirty pages to swap.  The normal
  buffer cache flushing won't do the job (nor do we want it to).  To avoid
  starving the system we change bio_page_alloc() to not dig into the
  system reserve when allocating pages for TMPFS.

Reported-by: tuxillo (Antonio Huete)
6 years agoUPDATING: Note that aic(4) was deISAized (forgot to mention at the time).
Sascha Wildner [Sat, 1 Dec 2012 22:54:54 +0000 (23:54 +0100)]
UPDATING: Note that aic(4) was deISAized (forgot to mention at the time).

6 years agoint64_t is long on x86_64, and not always equivalent to long long.
Sascha Wildner [Thu, 29 Nov 2012 20:57:05 +0000 (21:57 +0100)]
int64_t is long on x86_64, and not always equivalent to long long.

Similarly, uint64_t is unsigned long.

For their min/max value definitions, change LL/ULL suffixes to L/UL.

The bug report has some C++ sample code that show issues resulting
from treating them as long long.

Reported-by: David Shao <davshao@gmail.com>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2461>

6 years ago<sys/errno.h>: Try to fix errno's declaration a bit better for C++.
Sascha Wildner [Wed, 28 Nov 2012 23:26:41 +0000 (00:26 +0100)]
<sys/errno.h>: Try to fix errno's declaration a bit better for C++.

The test code from the bug ticket seems to work with it at least.

Reported-by: David Shao <davshao@gmail.com>
Dragonfly-bug:      <http://bugs.dragonflybsd.org/issues/2463>
In-discussion-with: vsrinivas

6 years agokernel - Fix proc_reparent() race/assertion panic
Matthew Dillon [Wed, 28 Nov 2012 18:21:38 +0000 (10:21 -0800)]
kernel - Fix proc_reparent() race/assertion panic

* Fix proc_reparent() race/assertion panic.  p_pptr changes can race,
  and the procedure had an assertion for the case.  Recode the procedure
  to retry on a mismatch instead of assert.

* Also move the old-parent-wakeup code into the procedure so it is
  properly executed in all cases.

Reported-by: Peter Avalos
6 years agoinstaller: Clarity language when asking the user for time-date info.
Matthew Dillon [Tue, 27 Nov 2012 21:50:54 +0000 (13:50 -0800)]
installer: Clarity language when asking the user for time-date info.

* Clarity language when asking the user for time-date info so the
  user is not confused between UTC vs his or her selected timezone.
  The program wants the user to enter the time and date in his or her
  selected timezone.

6 years agoinstaller: Fix handling of CMOS set to UTC vs. CMOS set to wall time.
Sascha Wildner [Mon, 26 Nov 2012 18:39:57 +0000 (19:39 +0100)]
installer: Fix handling of CMOS set to UTC vs. CMOS set to wall time.

It was reversed in the installer (compared to tzsetup(8)).

/etc/wall_cmos_clock needs to be created when the CMOS is set to the
time of the clock on the wall. While here, also add removing the file
in case the user selects 'CMOS set to UTC'. This is if he chose the
other setting previously and then tried again.

Reported-by: many
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/39>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2060>

6 years agovkernel: Make "options IPX" compilable into the vkernel.
Sascha Wildner [Thu, 22 Nov 2012 19:44:23 +0000 (20:44 +0100)]
vkernel: Make "options IPX" compilable into the vkernel.

Usage of "errno" in userspace as a variable name results in sad code.
Rename them to "error" instead.

Reported-by: tuxillo
6 years agoaac(4): Add a missing unlock.
Sascha Wildner [Tue, 20 Nov 2012 05:23:49 +0000 (06:23 +0100)]
aac(4): Add a missing unlock.

6 years agoext2fs - Clear CNP_PDIRUNLOCK flag after a lookup.
Antonio Huete Jimenez [Mon, 19 Nov 2012 22:32:16 +0000 (23:32 +0100)]
ext2fs - Clear CNP_PDIRUNLOCK flag after a lookup.

vop_compat_nresolve() unlocks the vnode when flag CNP_PDIRUNLOCK
is set, so either we clear the flag or avoid unlocking the vnode
after an ext2_lookup().

DragonFly-bug: http://bugs.dragonflybsd.org/issues/2454

Reported by: Skylar Hawk

6 years ago/usr/Makefile: Add pkgsrc-create-shallow option
John Marino [Mon, 19 Nov 2012 17:43:52 +0000 (18:43 +0100)]
/usr/Makefile: Add pkgsrc-create-shallow option

6 years agomake distribution: Remove some symlinks before (re-)creating them.
Sascha Wildner [Mon, 19 Nov 2012 16:59:05 +0000 (17:59 +0100)]
make distribution: Remove some symlinks before (re-)creating them.

Reported-by: marino
6 years agompt(4): Fix a panic in RAID operation.
Sascha Wildner [Sun, 18 Nov 2012 19:46:15 +0000 (20:46 +0100)]
mpt(4): Fix a panic in RAID operation.

I ported it wrongly. FreeBSD uses callout_init_mtx() here.

6 years agokernel - Fix off-by-1 error in semexit
Matthew Dillon [Thu, 15 Nov 2012 20:30:51 +0000 (12:30 -0800)]
kernel - Fix off-by-1 error in semexit

* Fix an off-by-1 error that was preventing semexit from properly undoing
  all the semaphores controlled by the exiting process.

Reported-by: lentferj, vsrinivas, others
6 years agobug 2450: Allow build of RELEASE 3.2 from master's bmake
John Marino [Thu, 15 Nov 2012 12:49:05 +0000 (13:49 +0100)]
bug 2450: Allow build of RELEASE 3.2 from master's bmake

It was not possible to build RELEASE 3.2 once the world was updated to
the 3.3 development branch.  The makefiles were incompatible with bmake.
It was possible to build RELEASE 3.2 with only a change to bsd.cpu.mk,
but parallel builds still failed.  The remaining changes and the previous
cherry-pick were all done to support parallel builds when building this
release branch from a system equipped with bmake as the system make.


6 years agoTweak some makefiles to prepare for bmake
John Marino [Sat, 27 Oct 2012 09:13:14 +0000 (11:13 +0200)]
Tweak some makefiles to prepare for bmake

These makefiles build fine with legacy make but contain (or lack)
information that causes the build to fail when used with bmake.  Make
small tweaks to makefiles to ensure they are compatible with both make

6 years agomount{,_ufs}: Fix wrong mountctl(2) error check.
Sascha Wildner [Wed, 14 Nov 2012 10:06:26 +0000 (11:06 +0100)]
mount{,_ufs}: Fix wrong mountctl(2) error check.

mountctl(2) returns the number of copied bytes when successful, and -1
if there was an error. This prevented ", local" from being printed in
mount output.

Reported-by: YONETANI Tomokazu
6 years agoSync zoneinfo database with tzdata2012j from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Tue, 13 Nov 2012 18:41:51 +0000 (19:41 +0100)]
Sync zoneinfo database with tzdata2012j from ftp://ftp.iana.org/tz/releases

* africa: Lybia set their time one hour back at 02:00 on November 10
    (last Saturday).

* Additional miscellaneous fixes in various comments.

6 years agoipcs(1): Fix the "ipcs: kvm_nlist: No such file or directory" error.
Sascha Wildner [Tue, 13 Nov 2012 17:35:17 +0000 (18:35 +0100)]
ipcs(1): Fix the "ipcs: kvm_nlist: No such file or directory" error.

The "semu" variable was removed in 79757ed082, causing this breakage.
Strangely, even before its removal it wasn't used for anything in

Reported-by: beket
6 years agoReally fix systat(1).
Sascha Wildner [Mon, 12 Nov 2012 20:59:30 +0000 (21:59 +0100)]
Really fix systat(1).

6 years agosystat - Do not use ccpu for %cpu calculation in pigs view.
Antonio Huete Jimenez [Sun, 11 Nov 2012 23:18:01 +0000 (00:18 +0100)]
systat - Do not use ccpu for %cpu calculation in pigs view.

- ccpu went away after the new scheduler work so sync with
  the current status of the kernel.
- Also remove all the unused kvm* stuff and get fscale via sysctl.

Reported-by: tpchin <tpchin@telstra.com>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2245>

6 years agohammer.8: Add back an .El that was removed by mistake.
Sascha Wildner [Sun, 11 Nov 2012 09:26:17 +0000 (10:26 +0100)]
hammer.8: Add back an .El that was removed by mistake.

6 years agogetline(3): Fix segfault caused by NULL pointer
John Marino [Wed, 7 Nov 2012 20:15:35 +0000 (21:15 +0100)]
getline(3): Fix segfault caused by NULL pointer

This fixes a segfault seen with pkg's audit function, and effectively syncs
getdelim with FreeBSD.

Taken-from: FreeBSD SVN 197752 (04 OCT 2009)

- Tolerate applications that pass a NULL pointer for the buffer and
  claim that the capacity of the buffer is nonzero.

- If an application passes in a non-NULL buffer pointer and claims the
  buffer has zero capacity, we should free (well, realloc) it anyway.
  It could have been obtained from malloc(0), so failing to free it
  would be a small memory leak.

6 years agoboot - some VIA processors also have long mode!
Alex Hornung [Sun, 4 Nov 2012 15:53:22 +0000 (15:53 +0000)]
boot - some VIA processors also have long mode!

6 years agoigb: Configure TX head write back before turn enable bit in TXDCTL
Sepherosa Ziehau [Wed, 7 Nov 2012 13:47:59 +0000 (21:47 +0800)]
igb: Configure TX head write back before turn enable bit in TXDCTL

The original configure sequence works on 82575 and 82576.  However,
it does not work on i350 and probably will not work on 82580.  For
these two chips TX head write back _must_ be configured before
turning on enable bit in TXDCTL according to their datasheet.

Reported-by: ftigeot@
Tested-by: ftigeot@ (i350), me w/ (82575, 82576)
6 years agoSync zoneinfo database with tzdata2012i from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Sun, 4 Nov 2012 13:00:36 +0000 (14:00 +0100)]
Sync zoneinfo database with tzdata2012i from ftp://ftp.iana.org/tz/releases

* asia: Comment typo fix.

* northamerica: Cuba switched back to standard time on 2012-11-04, 01:00.

6 years agobge: Fix a bug in the polling code when status tag is used
Sepherosa Ziehau [Sat, 3 Nov 2012 14:49:32 +0000 (22:49 +0800)]
bge: Fix a bug in the polling code when status tag is used

Status tag always needs to be written even if interrupt is not enabled.

6 years agoRevert "bge: Always configure MII mode register"
Sepherosa Ziehau [Sat, 3 Nov 2012 14:26:12 +0000 (22:26 +0800)]
Revert "bge: Always configure MII mode register"

This reverts commit dda43ff2bc5975a3cbd91838e7a46332039962f4.

Forcefully configure seems to break at least BCM5761 NIC auto-negotiation

6 years agokernel: Fix some wrong cam_simq_release() calls.
Sascha Wildner [Sat, 3 Nov 2012 11:08:13 +0000 (12:08 +0100)]
kernel: Fix some wrong cam_simq_release() calls.

Our (refcounted) simq can be released right after allocating the sim.
These drivers were not doing it correctly.

6 years ago/usr/Makefile: Bring back creating a master branch.
Sascha Wildner [Fri, 2 Nov 2012 02:47:18 +0000 (03:47 +0100)]
/usr/Makefile: Bring back creating a master branch.

It is useful to have it available, such as for MFC'ing changes from it
or upgrading to it, but it won't be checked out by default.

6 years agoMake sure that upgrading to master doesn't happen automatically/accidentally.
Justin C. Sherrill [Thu, 1 Nov 2012 02:39:50 +0000 (22:39 -0400)]
Make sure that upgrading to master doesn't happen automatically/accidentally.
Users will stay with a stable release unless they choose to change.
Also, nrelease builds will build the correct release.

6 years agoioapic/i386: Allow GSI > 191
Sepherosa Ziehau [Thu, 1 Nov 2012 01:29:53 +0000 (09:29 +0800)]
ioapic/i386: Allow GSI > 191

6 years agoioapic/x86_64: Allow GSI > 191
Sepherosa Ziehau [Tue, 30 Oct 2012 02:53:59 +0000 (10:53 +0800)]
ioapic/x86_64: Allow GSI > 191

Some BIOSes seem to assume that all 256 IDT vectors could be used,
while we limit the available IDT vectors percpu to 192.   Find an
unused IRQ for these GSIs, if this ever happens.

Reported-by: thowe on EFnet #dragonflybsd
6 years agoSync zoneinfo database with tzdata2012h from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Sat, 27 Oct 2012 09:15:46 +0000 (11:15 +0200)]
Sync zoneinfo database with tzdata2012h from ftp://ftp.iana.org/tz/releases

* asia:
    Israel has new DST rules next year (thanks to Ephraim Silverberg).
    Jordan stays on DST this winter (thanks to Steffen Thorsen).

* southamerica:
    Bahia no longer has DST (thanks to Kelley Cook).
    Tocantins has DST (thanks to Rodrigo Severo).

6 years agomdoc: Fix .Os version.
Sascha Wildner [Fri, 26 Oct 2012 22:50:54 +0000 (00:50 +0200)]
mdoc: Fix .Os version.

6 years agolibssp47, libobjc47: install headers
John Marino [Fri, 26 Oct 2012 14:35:25 +0000 (16:35 +0200)]
libssp47, libobjc47: install headers

Headers for both libssp and libobjc were not getting installed for the
gcc47 library set.  As an aside, the gcc44 libobjc is also missing these
headers.  There installation required an mtree change, but it can be
built with quickworld.

Additionally, CFLAGS were moved to above an include for libobjc which
should ensure the local config.h is included before a different version
and this in turn likely improves libobjc functionality.

6 years agolibgomp47: Install libgomp.spec and omp.h
John Marino [Fri, 26 Oct 2012 13:52:09 +0000 (15:52 +0200)]
libgomp47: Install libgomp.spec and omp.h

It was reported these files are needed by libgomp, so generate and
install them.

6 years agovkernel64: Add a missing 'break'.
Sascha Wildner [Sun, 21 Oct 2012 20:09:15 +0000 (22:09 +0200)]
vkernel64: Add a missing 'break'.

6 years agoUPDATING: Fix a typo and mention that for usb4bsd, w&k need rebuilding.
Sascha Wildner [Sun, 21 Oct 2012 16:45:32 +0000 (18:45 +0200)]
UPDATING: Fix a typo and mention that for usb4bsd, w&k need rebuilding.

Sigh, I had written 'loader.conf' instead of 'make.conf'. It will need
a mention on the release page/errata.

6 years agoUPDATING: Add some words about usb4bsd. v3.2.1
Sascha Wildner [Sun, 21 Oct 2012 13:52:36 +0000 (15:52 +0200)]
UPDATING: Add some words about usb4bsd.

6 years agocondvar(9): adjust manpage to reflect reality
Markus Pfeiffer [Sat, 20 Oct 2012 20:50:17 +0000 (20:50 +0000)]
condvar(9): adjust manpage to reflect reality

also fix a typo while I am here

6 years agousb4bsd: Add a commented out line to our configs for enabling usb4bsd.
Sascha Wildner [Thu, 18 Oct 2012 07:14:53 +0000 (09:14 +0200)]
usb4bsd: Add a commented out line to our configs for enabling usb4bsd.

In addition to this, WANT_USB4BSD needs to be put into /etc/make.conf
for the userland part.

6 years agousb4bsd/libusb: Remove an unused variable and mark a dummy variable unused.
Sascha Wildner [Wed, 17 Oct 2012 16:25:30 +0000 (18:25 +0200)]
usb4bsd/libusb: Remove an unused variable and mark a dummy variable unused.

6 years agousb4bsd/ukbd: Adjust comment style a bit.
Sascha Wildner [Tue, 16 Oct 2012 08:28:52 +0000 (10:28 +0200)]
usb4bsd/ukbd: Adjust comment style a bit.

6 years agousb: Fix a typo in ukbd.
Markus Pfeiffer [Tue, 16 Oct 2012 09:00:03 +0000 (09:00 +0000)]
usb: Fix a typo in ukbd.

6 years agousb4bsd: Fix attach/detach for ukbd.
Markus Pfeiffer [Tue, 16 Oct 2012 08:59:23 +0000 (08:59 +0000)]
usb4bsd: Fix attach/detach for ukbd.

This still needs work to make it function with the debugger

6 years agousb4bsd: Regenerate usbdevs.h and usbdevs_data.h.
Sascha Wildner [Sun, 14 Oct 2012 21:41:33 +0000 (23:41 +0200)]
usb4bsd: Regenerate usbdevs.h and usbdevs_data.h.

6 years agousb4bsd: Sync usbdevs with FreeBSD.
Sascha Wildner [Sun, 14 Oct 2012 21:38:08 +0000 (23:38 +0200)]
usb4bsd: Sync usbdevs with FreeBSD.

6 years agousb4bsd: Add usb_quirk module.
Sascha Wildner [Sun, 14 Oct 2012 20:10:30 +0000 (22:10 +0200)]
usb4bsd: Add usb_quirk module.

6 years agousb4bsd: Makefile cleanup.
Sascha Wildner [Sun, 14 Oct 2012 19:40:29 +0000 (21:40 +0200)]
usb4bsd: Makefile cleanup.

6 years agousb4bsd: Sort files a bit better in 'files' (from FreeBSD).
Sascha Wildner [Sun, 14 Oct 2012 19:13:28 +0000 (21:13 +0200)]
usb4bsd: Sort files a bit better in 'files' (from FreeBSD).

6 years agousb4bsd/controller: Use device_delete_children().
Sascha Wildner [Sun, 14 Oct 2012 13:12:08 +0000 (15:12 +0200)]
usb4bsd/controller: Use device_delete_children().

6 years agokernel: add device_delete_children()
Fran├žois Tigeot [Thu, 5 Jul 2012 07:05:18 +0000 (09:05 +0200)]
kernel: add device_delete_children()

Obtained-from: FreeBSD

6 years agomake upgrade: Remove more new USB stuff if it is not requested.
Sascha Wildner [Sun, 14 Oct 2012 12:35:43 +0000 (14:35 +0200)]
make upgrade: Remove more new USB stuff if it is not requested.

To reduce confusion when switching.

6 years agousb4bsd: Pull up libusb and usbcontrol to FreeBSD current's.
Sascha Wildner [Sun, 14 Oct 2012 12:18:21 +0000 (14:18 +0200)]
usb4bsd: Pull up libusb and usbcontrol to FreeBSD current's.

I stopped before their recent streams commit.

6 years agoBring in USB4BSD userspace libraries and utilities.
Markus Pfeiffer [Sun, 14 Oct 2012 11:00:18 +0000 (11:00 +0000)]
Bring in USB4BSD userspace libraries and utilities.

The following will now be built and installed if WANT_USB4BSD is defined.

* libusb
* usbconfig

6 years agousb4bsd/ehci: Fix EHCI resetting (and thus, intialization & attach).
Sascha Wildner [Fri, 12 Oct 2012 19:29:22 +0000 (21:29 +0200)]
usb4bsd/ehci: Fix EHCI resetting (and thus, intialization & attach).

No need for PINTERLOCKED here.

Reported-by: ftigeot, tuxillo
In-discussion-with: vsrinivas

6 years agousb4bsd/ehci: Ouch, fix a bug in the Makefile.
Sascha Wildner [Fri, 12 Oct 2012 17:56:15 +0000 (19:56 +0200)]
usb4bsd/ehci: Ouch, fix a bug in the Makefile.

It was taking a wrong file and this caused ehci to not properly initialize
when loaded as a module (like it is our default).

Note that this is my fault, not Markus Pfeiffer's. I had messed with the
Makefiles and it was a copy/paste error.

Reported-by: ftigeot, tuxillo
6 years agousb4bsd: Use NULL for pointers.
Sascha Wildner [Fri, 12 Oct 2012 16:59:04 +0000 (18:59 +0200)]
usb4bsd: Use NULL for pointers.

6 years agousb4bsd/controller: Remove some unused module declarations.
Sascha Wildner [Fri, 12 Oct 2012 16:52:41 +0000 (18:52 +0200)]
usb4bsd/controller: Remove some unused module declarations.

6 years agousb4bsd: Remove more unused files.
Sascha Wildner [Fri, 12 Oct 2012 16:46:01 +0000 (18:46 +0200)]
usb4bsd: Remove more unused files.

6 years agousb4bsd: Remove unused ARM related files.
Sascha Wildner [Fri, 12 Oct 2012 16:32:29 +0000 (18:32 +0200)]
usb4bsd: Remove unused ARM related files.

6 years agoFix 'make upgrade', it was broken.
Sascha Wildner [Fri, 12 Oct 2012 15:15:44 +0000 (17:15 +0200)]
Fix 'make upgrade', it was broken.

6 years agousb4bsd/audio: Some porting work in uaudio_pcm.c.
Sascha Wildner [Fri, 12 Oct 2012 09:05:13 +0000 (11:05 +0200)]
usb4bsd/audio: Some porting work in uaudio_pcm.c.

* Locking fixes (by ftigeot).

* Comment out unknown methods for now.

* Adjust include path.

With this it only whines on mixer_get_lock() which we don't have.

6 years agokernel/sound: Add PCMTRIG_COMMON (from FreeBSD).
Sascha Wildner [Fri, 12 Oct 2012 09:03:36 +0000 (11:03 +0200)]
kernel/sound: Add PCMTRIG_COMMON (from FreeBSD).

6 years agokernel: Comment out the new uaudio_pcm.c for now, it doesn't build yet.
Sascha Wildner [Fri, 12 Oct 2012 09:03:06 +0000 (11:03 +0200)]
kernel: Comment out the new uaudio_pcm.c for now, it doesn't build yet.

6 years agokernel: Add KOBJMETHOD_END and use it.
Sascha Wildner [Fri, 12 Oct 2012 07:34:00 +0000 (09:34 +0200)]
kernel: Add KOBJMETHOD_END and use it.

6 years agousb4bsd/uether: Missing argument in usb_ether_method's ue_ioctl() member.
Sascha Wildner [Fri, 12 Oct 2012 06:25:36 +0000 (08:25 +0200)]
usb4bsd/uether: Missing argument in usb_ether_method's ue_ioctl() member.

6 years agousb4bsd/if_udav: Comment out a variable (usage is not yet enabled).
Sascha Wildner [Fri, 12 Oct 2012 06:24:06 +0000 (08:24 +0200)]
usb4bsd/if_udav: Comment out a variable (usage is not yet enabled).

6 years agousb4bsd/audio: 'static' has to be at the beginning of the declaration.
Sascha Wildner [Fri, 12 Oct 2012 06:23:02 +0000 (08:23 +0200)]
usb4bsd/audio: 'static' has to be at the beginning of the declaration.

6 years agoRemove old USB stuff when the new stack is requested.
Sascha Wildner [Fri, 12 Oct 2012 05:44:34 +0000 (07:44 +0200)]
Remove old USB stuff when the new stack is requested.

6 years agousb4bsd: Add uether dependency for compiling udav into the kernel.
Sascha Wildner [Thu, 11 Oct 2012 13:40:41 +0000 (15:40 +0200)]
usb4bsd: Add uether dependency for compiling udav into the kernel.

6 years agousb4bsd: Fix the compilation of the remaining drivers into the kernel.
Sascha Wildner [Thu, 11 Oct 2012 13:35:38 +0000 (15:35 +0200)]
usb4bsd: Fix the compilation of the remaining drivers into the kernel.

6 years agousb4bsd: Fix some compilation warnings.
Sascha Wildner [Thu, 11 Oct 2012 13:35:22 +0000 (15:35 +0200)]
usb4bsd: Fix some compilation warnings.

6 years agousb4bsd: Allow some parts to be built into the kernel.
Sascha Wildner [Thu, 11 Oct 2012 09:24:08 +0000 (11:24 +0200)]
usb4bsd: Allow some parts to be built into the kernel.

This is for the core support, and for uhci, ohci, ehci and xhci.

To do this, replace:

  device usb


  device "usb4bsd"

in the config. The quotes are needed at the moment to cope with a
weakness in our config(8) that needs fixing.

Based-on-patch-submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agokernel/mii_layer: Little indentation fix.
Sascha Wildner [Thu, 11 Oct 2012 09:18:50 +0000 (11:18 +0200)]
kernel/mii_layer: Little indentation fix.

6 years agousb4bsd: Port network devices (uether, udav, axe) and hook into build.
Sascha Wildner [Thu, 11 Oct 2012 09:18:06 +0000 (11:18 +0200)]
usb4bsd: Port network devices (uether, udav, axe) and hook into build.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Port input devices (uep, uhid, ukbd, ums) and hook into build.
Sascha Wildner [Wed, 10 Oct 2012 22:55:15 +0000 (00:55 +0200)]
usb4bsd: Port input devices (uep, uhid, ukbd, ums) and hook into build.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Fixes, fixes, fixes.
Sascha Wildner [Wed, 10 Oct 2012 22:06:44 +0000 (00:06 +0200)]
usb4bsd: Fixes, fixes, fixes.

* Fix a panic when trying to free null pointer in usb_free_device.

* Fix a panic due to wrong assignment of locks.

* Fix kqueue handling.

* Add debug helpers.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Implement umass scsi probing on attach.
Sascha Wildner [Wed, 10 Oct 2012 21:46:53 +0000 (23:46 +0200)]
usb4bsd: Implement umass scsi probing on attach.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Bring in FreeBSD's uaudio driver.
Sascha Wildner [Sun, 7 Oct 2012 15:25:03 +0000 (17:25 +0200)]
usb4bsd: Bring in FreeBSD's uaudio driver.

This is based on FreeBSD SVN r231881.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Separate building of the old USB modules.
Sascha Wildner [Tue, 2 Oct 2012 04:21:24 +0000 (06:21 +0200)]
usb4bsd: Separate building of the old USB modules.

Don't build the old USB driver modules when WANT_USB4BSD is set.

Also, do some cleanup in some of the Makefiles, while I'm here.

6 years agousb4bsd: Cleanup pass.
Sascha Wildner [Mon, 1 Oct 2012 04:04:09 +0000 (06:04 +0200)]
usb4bsd: Cleanup pass.

* Adjust indentation, whitespace and typos.

* Uniformly use #if 0 to deactivate code instead of C comments.

6 years agousb4bsd: Hook usb, ehci, ohci, uhci, xhci, umass, and usfs into the build.
Sascha Wildner [Thu, 27 Sep 2012 07:51:55 +0000 (09:51 +0200)]
usb4bsd: Hook usb, ehci, ohci, uhci, xhci, umass, and usfs into the build.

Adds some missing Makefiles and adjusts others.

With this commit, the corresponding modules all build when WANT_USB4BSD
is set, but they are not guaranteed to work. More bugs will be fixed in
subsequent commits.

The new USB code can't yet be built into the kernel.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Perform the usual porting on the controller, storage and core code.
Sascha Wildner [Wed, 26 Sep 2012 17:31:51 +0000 (19:31 +0200)]
usb4bsd: Perform the usual porting on the controller, storage and core code.

malloc -> kmalloc, printf -> kprintf, locking, and so forth.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Generate usbdevs.h and usbdevs_data.h.
Sascha Wildner [Wed, 26 Sep 2012 16:00:13 +0000 (18:00 +0200)]
usb4bsd: Generate usbdevs.h and usbdevs_data.h.

Also, rename devlist2h.awk to usbdevs2h.awk and remove our CVS ID in

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years ago<bus/pci/pcireg.h>: Add a definition for XHCI programming interface.
Sascha Wildner [Wed, 26 Sep 2012 07:27:25 +0000 (09:27 +0200)]
<bus/pci/pcireg.h>: Add a definition for XHCI programming interface.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Hook the userland part into the build.
Sascha Wildner [Wed, 26 Sep 2012 00:00:09 +0000 (02:00 +0200)]
usb4bsd: Hook the userland part into the build.

Define a new make.conf(5) variable, WANT_USB4BSD, which (if set) causes
the new USB's userland to be built (similar to WANT_NETGRAPH7).

6 years agousb4bsd: Adjust header paths in libusbhid, usbhidctl, and public headers.
Sascha Wildner [Tue, 25 Sep 2012 21:15:43 +0000 (23:15 +0200)]
usb4bsd: Adjust header paths in libusbhid, usbhidctl, and public headers.

Also remove some __FBSDID's.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>
6 years agousb4bsd: Bring in FreeBSD's libusbhid, usbhidctl and USB kernel code.
Sascha Wildner [Tue, 25 Sep 2012 21:11:40 +0000 (23:11 +0200)]
usb4bsd: Bring in FreeBSD's libusbhid, usbhidctl and USB kernel code.

In order to make it live peacefully along with our old USB code, name
all directories with new USB code *u4b* instead of *usb*.

This is FreeBSD SVN r231881.

Submitted-by: Markus Pfeiffer <markus.pfeiffer@morphism.de>