The NetBSD Project

CVS log for src/sys/dev/dkwedge/dk.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / dev / dkwedge

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.124.4.1 / (download) - annotate - [select for diffs], Tue Aug 1 14:49:06 2023 UTC (6 months, 3 weeks ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1
Changes since 1.124: +375 -248 lines
Diff to previous 1.124 (colored) next main 1.125 (colored)

Pull up following revision(s) (requested by riastradh in ticket #284):

	sys/dev/dkwedge/dk.c				1.125-1.158
	sys/kern/subr_disk.c				1.135-1.137
	sys/sys/disk.h					1.78

dk(4): Explain why dk_rawopens can't overflow and assert it.

dk(4): Restore assertions in dklastclose.

We only enter dklastclose if the wedge is open (sc->sc_dk.dk_openmask
!= 0), which can happen only if dkfirstopen has succeeded, in which
case we hold a dk_rawopens reference to the parent that prevents
anyone else from closing it.  Hence sc->sc_parent->dk_rawopens > 0.

On open, sc->sc_parent->dk_rawvp is set to nonnull, and it is only
reset to null on close.  Hence if the parent is still open, as it
must be here, sc->sc_parent->dk_rawvp must be nonnull.

dk(4): Avoid holding dkwedges_lock while allocating array.

This is not great -- we shouldn't be choosing the unit number here
anyway; we should just let autoconf do it for us -- but it's better
than potentially blocking any dk_openlock or dk_rawlock (which are
sometimes held when waiting for dkwedges_lock) for memory allocation.

dk(4): KNF: return (v) -> return v.
No functional change intended.

dk(4): KNF: Whitespace.
No functional change intended.

dk(4): Omit needless void * cast.
No functional change intended.

dk(4): Fix typo in comment: dkstrategy, not dkstragegy.
No functional change intended.

dk(4): ENXIO, not ENODEV, means no such device.
ENXIO is `device not configured', meaning there is no such device.
ENODEV is `operation not supported by device', meaning the device is
there but refuses the operation, like writing to a read-only medium.

Exception: For undefined ioctl commands, it's not ENODEV _or_ ENXIO,
but rather ENOTTY, because why make any of this obvious when you
could make it obscure Unix lore?

dk(4): KNF: Sort includes.
No functional change intended.

dk(4): <sys/rwlock.h> for rwlock(9).

dk(4): Prevent races in access to struct dkwedge_softc::sc_size.
Rules:
1. Only ever increases, never decreases.
   (Decreases require removing and readding the wedge.)
2. Increases are serialized by dk_openlock.
3. Reads can happen unlocked in any context where the softc is valid.

Access is gathered into dkwedge_size* subroutines -- don't touch
sc_size outside these.  For now, we use rwlock(9) to keep the
reasoning simple.  This should be done with atomics on 64-bit
platforms and a seqlock on 32-bit platforms to avoid contention.

However, we can do that in a later change.

dk(4): Move CFDRIVER_DECL and CFATTACH_DECL3_NEW earlier in file.

Follows the pattern of most drivers, and will be necessary for
referencing dk_cd in dk_bdevsw and dk_cdevsw soon, to prevent
open/detach races.
No functional change intended.

dk(4): Don't touch dkwedges or ndkwedges outside dkwedges_lock.

dk(4): Assert parent vp is nonnull before we stash it away.

Let's enable early attribution if this goes wrong.

If it's not the parent's first open, also assert the parent vp is
already nonnull.

dk(4): Assert dkwedges[unit] is the sc we're about to free.

dk(4): Require dk_openlock in dk_set_geometry.

Not strictly necessary but this makes reasoning easier and documents
with an assertion how disk_set_info is serialized.

disk(9): Fix use-after-free race with concurrent disk_set_info.

This can happen with dk(4), which allows wedges to have their size
increased without destroying and recreating the device instance.

Drivers which allow concurrent disk_set_info and disk_ioctl must
serialize disk_set_info with dk_openlock.

dk(4): Add null d_cancel routine to devsw.

This way, dkclose is guaranteed that dkopen, dkread, dkwrite,
dkioctl, &c., have all returned before it runs.  For block opens,
setting d_cancel also guarantees that any buffered writes are flushed
with vinvalbuf before dkclose is called.

dk(4): Fix callout detach race.
1. Set a flag sc_iostop under the lock sc_iolock so dkwedge_detach
   and dkstart don't race over it.
2. Decline to schedule the callout if sc_iostop is set.  The callout
   is already only ever scheduled while the lock is held.
3. Use callout_halt to wait for any concurrent callout to complete.
   At this point, it can't reschedule itself.

Without this change, the callout could be concurrently rescheduling
itself as we issue callout_stop, leading to use-after-free later.

dk(4): Use disk_begindetach and rely on vdevgone to close instances.

The first step is to decide whether we can detach (if forced, yes; if
not forced, only if not already open), and prevent new opens if so.

There's no need to start closing open instances at this point --
we're just making a decision to detach, and preventing new opens by
transitioning state that dkopen will respect[*].

The second step is to force all open instances to close.  This is
done by vdevgone.  By the time vdevgone returns, there can be no open
instances, so if there _were_ any, closing them via vdevgone will
have passed through dklastclose.

After that point, there can be no opens and no I/O operations, so
dk_openmask must already be zero and the bufq must be empty.

Thus, there's no need to have an explicit call to dklastclose (via
dkwedge_cleanup_parent) before or after making the decision to
detach.
[*] Currently access to this state is racy: nothing serializes
    dkwedge_detach's state transition with dkopen's test.  TBD in a
    separate commit shortly.

dk(4): Set .d_cfdriver and .d_devtounit to plug open/detach race.

This way, opening dkN or rdkN will wait if attach or detach is still
in progress, and vdevgone will wake up such pending opens and make
them fail.  So it is no longer possible for a wedge to be detached
after dkopen has already started using it.

For now, we use a custom .d_devtounit function that looks up the
autoconf unit number via the dkwedges array, which conceivably may
use an independent unit numbering system -- nothing guarantees they
match up.  (In practice they will mostly match up, but concurrent
wedge creation could lead to different numbering.)  Eventually this
should be changed so the two numbering systems match, which would let
us delete the new dkunit function and just use dev_minor_unit like
many other drivers can.

dk(4): Take a read-lock on dkwedges_lock if we're only reading.
- dkwedge_find_by_name
- dkwedge_find_by_parent
- dkwedge_print_wnames

dk(4): Omit needless locking in dksize, dkdump.

All the members these use are stable after initialization, except for
the wedge size, which dkwedge_size safely reads a snapshot of without
locking in the caller.

dk(4): dkdump: Simplify.  No functional change intended.

dk(4): Narrow the scope of the device numbering lookup on detach.

Just need it for vdevgone, order relative to other things in detach
doesn't matter.
No functional change intended.

disk(9): Fix missing unlock in error branch in previous change.

dk(4): Fix racy access to sc->sc_dk.dk_openmask in dkwedge_delall1.
Need sc->sc_parent->dk_rawlock for this, as used in dkopen/dkclose.

dk(4): Convert tests to assertions in various devsw operations.
.d_cancel, .d_strategy, .d_read, .d_write, .d_ioctl, and .d_discard
are only ever used between successful .d_open return and entry to
.d_close.  .d_open doesn't return until sc is nonnull and sc_state is
RUNNING, and dkwedge_detach waits for the last .d_close before
setting sc_state to DEAD.  So there is no possibility for sc to be
null or for sc_state to be anything other than RUNNING or DYING.

There is a small functional change here but only in the event of a
race: in the short window between when dkwedge_detach is entered, and
when .d_close runs, any I/O operations (read, write, ioctl, &c.) may
be issued that would have failed with ENXIO before.

This shouldn't matter for anything: disk I/O operations are supposed
to complete reasonably promptly, and these operations _could_ have
begun milliseconds prior, before dkwedge_detach was entered, so it's
not a significant distinction.

Notes:
- .d_open must still contend with trying to open a nonexistent wedge,
  of course.
- .d_close must also contend with closing a nonexistent wedge, in
  case there were two calls to open in quick succession and the first
  failed while the second hadn't yet determined it would fail.
- .d_size and .d_dump are used from ddb without any open/close.

dk(4): Fix lock assertion in size increase: parent's, not wedge's.

dk(4): Rename label for consistency.  No functional change intended.

dk(4): dkclose must handle a dying wedge too to close the parent.

Otherwise the parent open leaks on detach (or revoke) when the wedge
was open and had to be forcibly closed.

Fixes assertion sc->sc_dk.dk_openmask == 0.
ioctl(DIOCRMWEDGES): Delete only idle wedges.

Don't forcibly delete busy wedges.

Fixes accidental destruction of the busy wedge that the root file
system is mounted on, triggered by syzbot's ioctl(DIOCRMWEDGES).

dk(4): Omit needless sc_iopend, sc_dkdrn mechanism.
vdevgone guarantees that all instances are closed by the time it
returns, which in turn guarantees all I/O operations (read, write,
ioctl, &c.) have completed, and, if the block device is open,
vinvalbuf(V_SAVE) -> vflushbuf has completed, which forces all
buffered transfers to be issued and waits for them to complete.
So by the time vdevgone returns, no further transfers can be
submitted and the bufq must be empty.

dk(4): Fix typo: sc_state, not sc_satte.

Had tested a patch series, but not every patch in it, and I
inadvertently fixed the typo in a later patch in the series, not in
the one I committed.

dk(4): Make it clearer that dkopen EROFS branch doesn't leak.
It looked like we may need to sometimes call dklastclose in error
branch for the case of (flags & ~sc->sc_mode & FWRITE) != 0, but it
is not actually possible to reach that case: if the caller requested
read/write, and the parent is read-only, and it is the first time
we've opened the parent, then dkfirstopen will fail with EROFS so we
never get there.

But this is confusing and it looked like the error branch is wrong,
so let's rearrange the conditional to make it clearer that we cannot
goto out after dkfirstopen has succeeded.  And then assert that the
case cannot happen when we do call dkfirstopen.

dk(4): Need pdk->dk_openlock to read pdk->dk_wedges.

Revision 1.171 / (download) - annotate - [select for diffs], Mon May 22 15:00:17 2023 UTC (9 months ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.170: +51 -15 lines
Diff to previous 1.170 (colored)

dk(4): Add locking notes.

Revision 1.170 / (download) - annotate - [select for diffs], Mon May 22 15:00:06 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.169: +11 -2 lines
Diff to previous 1.169 (colored)

dk(4): Explain why no need for device reference in dksize, dkdump.

Revision 1.169 / (download) - annotate - [select for diffs], Mon May 22 14:59:58 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.168: +13 -2 lines
Diff to previous 1.168 (colored)

dk(4): Strengthen preconditions of various devsw operations.

These can only happen between dkopen and dkclose, so there's no need
to test -- we can assert instead that the wedge exists and is fully
initialized.

Revision 1.168 / (download) - annotate - [select for diffs], Mon May 22 14:59:50 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.167: +10 -5 lines
Diff to previous 1.167 (colored)

dk(4): Strengthen dkclose preconditions.

Like dkopen, except it is possible for this to be called after the
wedge has transitioned to dying.

XXX sc_state read here races with sc_state write in dkwedge_detach.
Could change this to atomic_load/store.

Revision 1.167 / (download) - annotate - [select for diffs], Mon May 22 14:59:42 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.166: +4 -4 lines
Diff to previous 1.166 (colored)

dk(4): Strengthen dkopen preconditions.

This cannot be called before dkwedge_attach for the same unit
returns, so sc->sc_dev is guaranteed to be set to a nonnull device_t
and the state is guaranteed not to be larval.

And this cannot be called concurrently with dkwedge_detach, or after
dkwedge_detach does vdevgone until another wedge with the same number
is attached (which can't happen until dkwedge_detach completes), so
the state is guaranteed not to be dying or dead.

Hence sc->sc_dev != NULL and sc->sc_state == DKW_STATE_RUNNING.

Revision 1.166 / (download) - annotate - [select for diffs], Mon May 22 14:59:34 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.165: +17 -4 lines
Diff to previous 1.165 (colored)

dk(4): Prevent race between dkwedge_get_parent_name and wedge detach.

Still races with parent detach but maybe this is better.

XXX Maybe we should ditch dkwedge_get_parent_name -- it's used only
by rf_containsboot, which kinda suggests it shouldn't exist.

Revision 1.165 / (download) - annotate - [select for diffs], Mon May 22 14:59:25 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.164: +50 -8 lines
Diff to previous 1.164 (colored)

dk(4): Split unsafe lookups into safe subroutines and unsafe wrappers.

No functional change intended.

Eventually we should adjust the callers to use the safe subroutines
instead and device_release when done.

Revision 1.164 / (download) - annotate - [select for diffs], Mon May 22 14:59:16 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.163: +12 -2 lines
Diff to previous 1.163 (colored)

dk(4): Don't hold lock around uiomove in dkwedge_list.

Instead, hold a device reference.  dkwedge_detach will not run until
the device reference is released.

Revision 1.163 / (download) - annotate - [select for diffs], Mon May 22 14:59:07 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.162: +7 -7 lines
Diff to previous 1.162 (colored)

dk(4): Skip larval wedges in various lookup routines.

These have not yet finished a concurent dkwedge_attach, so there's
nothing we can safely do with them.  Just pretend they don't exist --
as if we had arrived at the lookup a moment earlier.

Revision 1.162 / (download) - annotate - [select for diffs], Mon May 22 14:58:59 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.161: +14 -8 lines
Diff to previous 1.161 (colored)

dk(4): Simplify dkwedge_delall by detaching directly.

No need for O(n^2) algorithm and potentially racy lookups -- not that
n is large enough for n^2 to matter, but the mechanism is simpler
this way.

Revision 1.161 / (download) - annotate - [select for diffs], Mon May 22 14:58:50 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.160: +3 -12 lines
Diff to previous 1.160 (colored)

dk(4): Use device_lookup_private for dkwedge_lookup.

No longer necessary to go through the dkwedges array.

Currently device_lookup_private still involves touching other global
locks, but that will change eventually to a lockless pserialized fast
path.

Revision 1.160 / (download) - annotate - [select for diffs], Mon May 22 14:58:41 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.159: +4 -36 lines
Diff to previous 1.159 (colored)

dk(4): dkunit is no longer needed; nix it.

dkwedges array indexing now coincides with autoconf device numbering.

Revision 1.159 / (download) - annotate - [select for diffs], Mon May 22 14:58:32 2023 UTC (9 months ago) by riastradh
Branch: MAIN
Changes since 1.158: +55 -40 lines
Diff to previous 1.158 (colored)

dk(4): Use config_attach_pseudo_acquire to create wedges.

This way, indexing of the dkwedges array coincides with numbering of
autoconf dk(4) instances.

As a side effect, this plugs a race in dkwedge_add with concurrent
drvctl -r.  There are a lot of such races in dk(4) left -- to be
addressed with more device references.

Revision 1.158 / (download) - annotate - [select for diffs], Sat May 13 10:11:36 2023 UTC (9 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.157: +4 -2 lines
Diff to previous 1.157 (colored)

dk(4): Need pdk->dk_openlock to read pdk->dk_wedges.

Revision 1.157 / (download) - annotate - [select for diffs], Wed May 10 23:08:24 2023 UTC (9 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.156: +15 -5 lines
Diff to previous 1.156 (colored)

dk(4): Make it clearer that dkopen EROFS branch doesn't leak.

It looked like we may need to sometimes call dklastclose in error
branch for the case of (flags & ~sc->sc_mode & FWRITE) != 0, but it
is not actually possible to reach that case: if the caller requested
read/write, and the parent is read-only, and it is the first time
we've opened the parent, then dkfirstopen will fail with EROFS so we
never get there.

But this is confusing and it looked like the error branch is wrong,
so let's rearrange the conditional to make it clearer that we cannot
goto out after dkfirstopen has succeeded.  And then assert that the
case cannot happen when we do call dkfirstopen.

Revision 1.156 / (download) - annotate - [select for diffs], Tue May 9 13:14:14 2023 UTC (9 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.155: +3 -3 lines
Diff to previous 1.155 (colored)

dk(4): Fix typo: sc_state, not sc_satte.

Had tested a patch series, but not every patch in it, and I
inadvertently fixed the typo in a later patch in the series, not in
the one I committed.

Revision 1.155 / (download) - annotate - [select for diffs], Tue May 9 12:49:00 2023 UTC (9 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.154: +2 -38 lines
Diff to previous 1.154 (colored)

dk(4): Omit needless sc_iopend, sc_dkdrn mechanism.

vdevgone guarantees that all instances are closed by the time it
returns, which in turn guarantees all I/O operations (read, write,
ioctl, &c.) have completed, and, if the block device is open,
vinvalbuf(V_SAVE) -> vflushbuf has completed, which forces all
buffered transfers to be issued and waits for them to complete.

So by the time vdevgone returns, no further transfers can be
submitted and the bufq must be empty.

Revision 1.154 / (download) - annotate - [select for diffs], Tue May 9 12:04:04 2023 UTC (9 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.153: +19 -6 lines
Diff to previous 1.153 (colored)

ioctl(DIOCRMWEDGES): Delete only idle wedges.

Don't forcibly delete busy wedges.

Reported-by: syzbot+e46f31fe56e04f567d88@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=8a00fd7f2e7459748d7a274098180a4708ff0f61

Fixes accidental destruction of the busy wedge that the root file
system is mounted on, triggered by syzbot's ioctl(DIOCRMWEDGES).

Revision 1.153 / (download) - annotate - [select for diffs], Tue May 9 12:03:55 2023 UTC (9 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.152: +4 -3 lines
Diff to previous 1.152 (colored)

dk(4): dkclose must handle a dying wedge too to close the parent.

Otherwise the parent open leaks on detach (or revoke) when the wedge
was open and had to be forcibly closed.

Reported-by: syzbot+e46f31fe56e04f567d88@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=8a00fd7f2e7459748d7a274098180a4708ff0f61

Fixes assertion sc->sc_dk.dk_openmask == 0.

Revision 1.152 / (download) - annotate - [select for diffs], Sat Apr 29 13:00:17 2023 UTC (9 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.151: +5 -6 lines
Diff to previous 1.151 (colored)

dk(4): Rename label for consistency.  No functional change intended.

Revision 1.151 / (download) - annotate - [select for diffs], Sat Apr 29 06:23:37 2023 UTC (9 months, 3 weeks ago) by riastradh
Branch: MAIN
Changes since 1.150: +3 -3 lines
Diff to previous 1.150 (colored)

dk(4): Fix lock assertion in size increase: parent's, not wedge's.

Reported-by: syzbot+d4dc610473cacc5183dd@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=e18ddae8283d6fab44cfb1ac7e3f8e791f8c0700

Revision 1.150 / (download) - annotate - [select for diffs], Sat Apr 22 13:11:50 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.149: +24 -34 lines
Diff to previous 1.149 (colored)

dk(4): Convert tests to assertions in various devsw operations.

.d_cancel, .d_strategy, .d_read, .d_write, .d_ioctl, and .d_discard
are only ever used between successful .d_open return and entry to
.d_close.  .d_open doesn't return until sc is nonnull and sc_state is
RUNNING, and dkwedge_detach waits for the last .d_close before
setting sc_state to DEAD.  So there is no possibility for sc to be
null or for sc_state to be anything other than RUNNING or DYING.

There is a small functional change here but only in the event of a
race: in the short window between when dkwedge_detach is entered, and
when .d_close runs, any I/O operations (read, write, ioctl, &c.) may
be issued that would have failed with ENXIO before.

This shouldn't matter for anything: disk I/O operations are supposed
to complete reasonably promptly, and these operations _could_ have
begun milliseconds prior, before dkwedge_detach was entered, so it's
not a significant distinction.

Notes:

- .d_open must still contend with trying to open a nonexistent wedge,
  of course.

- .d_close must also contend with closing a nonexistent wedge, in
  case there were two calls to open in quick succession and the first
  failed while the second hadn't yet determined it would fail.

- .d_size and .d_dump are used from ddb without any open/close.

Revision 1.149 / (download) - annotate - [select for diffs], Sat Apr 22 12:33:46 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.148: +5 -2 lines
Diff to previous 1.148 (colored)

dk(4): Fix racy access to sc->sc_dk.dk_openmask in dkwedge_delall1.

Need sc->sc_parent->dk_rawlock for this, as used in dkopen/dkclose.

Revision 1.148 / (download) - annotate - [select for diffs], Fri Apr 21 18:54:09 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.147: +6 -6 lines
Diff to previous 1.147 (colored)

dk(4): Narrow the scope of the device numbering lookup on detach.

Just need it for vdevgone, order relative to other things in detach
doesn't matter.

No functional change intended.

Revision 1.147 / (download) - annotate - [select for diffs], Fri Apr 21 18:45:13 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.146: +8 -17 lines
Diff to previous 1.146 (colored)

dk(4): dkdump: Simplify.  No functional change intended.

Revision 1.146 / (download) - annotate - [select for diffs], Fri Apr 21 18:44:58 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.145: +2 -14 lines
Diff to previous 1.145 (colored)

dk(4): Omit needless locking in dksize, dkdump.

All the members these use are stable after initialization, except for
the wedge size, which dkwedge_size safely reads a snapshot of without
locking in the caller.

Revision 1.145 / (download) - annotate - [select for diffs], Fri Apr 21 18:44:18 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.144: +5 -5 lines
Diff to previous 1.144 (colored)

dk(4): Take a read-lock on dkwedges_lock if we're only reading.

- dkwedge_find_by_name
- dkwedge_find_by_parent
- dkwedge_print_wnames

Revision 1.144 / (download) - annotate - [select for diffs], Fri Apr 21 18:31:00 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.143: +38 -2 lines
Diff to previous 1.143 (colored)

dk(4): Set .d_cfdriver and .d_devtounit to plug open/detach race.

This way, opening dkN or rdkN will wait if attach or detach is still
in progress, and vdevgone will wake up such pending opens and make
them fail.  So it is no longer possible for a wedge to be detached
after dkopen has already started using it.

For now, we use a custom .d_devtounit function that looks up the
autoconf unit number via the dkwedges array, which conceivably may
use an independent unit numbering system -- nothing guarantees they
match up.  (In practice they will mostly match up, but concurrent
wedge creation could lead to different numbering.)  Eventually this
should be changed so the two numbering systems match, which would let
us delete the new dkunit function and just use dev_minor_unit like
many other drivers can.

Revision 1.143 / (download) - annotate - [select for diffs], Fri Apr 21 18:30:52 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.142: +15 -28 lines
Diff to previous 1.142 (colored)

dk(4): Use disk_begindetach and rely on vdevgone to close instances.

The first step is to decide whether we can detach (if forced, yes; if
not forced, only if not already open), and prevent new opens if so.
There's no need to start closing open instances at this point --
we're just making a decision to detach, and preventing new opens by
transitioning state that dkopen will respect[*].

The second step is to force all open instances to close.  This is
done by vdevgone.  By the time vdevgone returns, there can be no open
instances, so if there _were_ any, closing them via vdevgone will
have passed through dklastclose.

After that point, there can be no opens and no I/O operations, so
dk_openmask must already be zero and the bufq must be empty.

Thus, there's no need to have an explicit call to dklastclose (via
dkwedge_cleanup_parent) before or after making the decision to
detach.

[*] Currently access to this state is racy: nothing serializes
    dkwedge_detach's state transition with dkopen's test.  TBD in a
    separate commit shortly.

Revision 1.142 / (download) - annotate - [select for diffs], Fri Apr 21 18:30:32 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.141: +10 -5 lines
Diff to previous 1.141 (colored)

dk(4): Fix callout detach race.

1. Set a flag sc_iostop under the lock sc_iolock so dkwedge_detach
   and dkstart don't race over it.

2. Decline to schedule the callout if sc_iostop is set.  The callout
   is already only ever scheduled while the lock is held.

3. Use callout_halt to wait for any concurrent callout to complete.
   At this point, it can't reschedule itself.

Without this change, the callout could be concurrently rescheduling
itself as we issue callout_stop, leading to use-after-free later.

Revision 1.141 / (download) - annotate - [select for diffs], Fri Apr 21 18:30:21 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.140: +31 -2 lines
Diff to previous 1.140 (colored)

dk(4): Add null d_cancel routine to devsw.

This way, dkclose is guaranteed that dkopen, dkread, dkwrite,
dkioctl, &c., have all returned before it runs.  For block opens,
setting d_cancel also guarantees that any buffered writes are flushed
with vinvalbuf before dkclose is called.

Revision 1.140 / (download) - annotate - [select for diffs], Fri Apr 21 18:29:43 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.139: +6 -2 lines
Diff to previous 1.139 (colored)

dk(4): Require dk_openlock in dk_set_geometry.

Not strictly necessary but this makes reasoning easier and documents
with an assertion how disk_set_info is serialized.

Revision 1.139 / (download) - annotate - [select for diffs], Fri Apr 21 18:29:33 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.138: +4 -2 lines
Diff to previous 1.138 (colored)

dk(4): Assert dkwedges[unit] is the sc we're about to free.

Revision 1.138 / (download) - annotate - [select for diffs], Fri Apr 21 18:29:26 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.137: +4 -2 lines
Diff to previous 1.137 (colored)

dk(4): Assert parent vp is nonnull before we stash it away.

Let's enable early attribution if this goes wrong.

If it's not the parent's first open, also assert the parent vp is
already nonnull.

Revision 1.137 / (download) - annotate - [select for diffs], Fri Apr 21 18:29:18 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.136: +12 -9 lines
Diff to previous 1.136 (colored)

dk(4): Don't touch dkwedges or ndkwedges outside dkwedges_lock.

Revision 1.136 / (download) - annotate - [select for diffs], Fri Apr 21 18:26:35 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.135: +11 -7 lines
Diff to previous 1.135 (colored)

dk(4): Move CFDRIVER_DECL and CFATTACH_DECL3_NEW earlier in file.

Follows the pattern of most drivers, and will be necessary for
referencing dk_cd in dk_bdevsw and dk_cdevsw soon, to prevent
open/detach races.

No functional change intended.

Revision 1.135 / (download) - annotate - [select for diffs], Fri Apr 21 18:25:49 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.134: +71 -20 lines
Diff to previous 1.134 (colored)

dk(4): Prevent races in access to struct dkwedge_softc::sc_size.

Rules:

1. Only ever increases, never decreases.

   (Decreases require removing and readding the wedge.)

2. Increases are serialized by dk_openlock.

3. Reads can happen unlocked in any context where the softc is valid.

Access is gathered into dkwedge_size* subroutines -- don't touch
sc_size outside these.  For now, we use rwlock(9) to keep the
reasoning simple.  This should be done with atomics on 64-bit
platforms and a seqlock on 32-bit platforms to avoid contention.
However, we can do that in a later change.

Revision 1.134 / (download) - annotate - [select for diffs], Fri Apr 21 18:25:30 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.133: +3 -2 lines
Diff to previous 1.133 (colored)

dk(4): <sys/rwlock.h> for rwlock(9).

Revision 1.133 / (download) - annotate - [select for diffs], Fri Apr 21 18:25:22 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.132: +17 -15 lines
Diff to previous 1.132 (colored)

dk(4): KNF: Sort includes.

No functional change intended.

Revision 1.132 / (download) - annotate - [select for diffs], Fri Apr 21 18:25:09 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.131: +14 -14 lines
Diff to previous 1.131 (colored)

dk(4): ENXIO, not ENODEV, means no such device.

ENXIO is `device not configured', meaning there is no such device.

ENODEV is `operation not supported by device', meaning the device is
there but refuses the operation, like writing to a read-only medium.

Exception: For undefined ioctl commands, it's not ENODEV _or_ ENXIO,
but rather ENOTTY, because why make any of this obvious when you
could make it obscure Unix lore?

Revision 1.131 / (download) - annotate - [select for diffs], Fri Apr 21 18:24:56 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.130: +3 -3 lines
Diff to previous 1.130 (colored)

dk(4): Fix typo in comment: dkstrategy, not dkstragegy.

No functional change intended.

Revision 1.130 / (download) - annotate - [select for diffs], Fri Apr 21 18:24:47 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.129: +3 -3 lines
Diff to previous 1.129 (colored)

dk(4): Omit needless void * cast.

No functional change intended.

Revision 1.129 / (download) - annotate - [select for diffs], Fri Apr 21 18:24:39 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.128: +30 -28 lines
Diff to previous 1.128 (colored)

dk(4): KNF: Whitespace.

No functional change intended.

Revision 1.128 / (download) - annotate - [select for diffs], Fri Apr 21 18:24:31 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.127: +41 -41 lines
Diff to previous 1.127 (colored)

dk(4): KNF: return (v) -> return v.

No functional change intended.

Revision 1.127 / (download) - annotate - [select for diffs], Fri Apr 21 18:24:19 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.126: +39 -9 lines
Diff to previous 1.126 (colored)

dk(4): Avoid holding dkwedges_lock while allocating array.

This is not great -- we shouldn't be choosing the unit number here
anyway; we should just let autoconf do it for us -- but it's better
than potentially blocking any dk_openlock or dk_rawlock (which are
sometimes held when waiting for dkwedges_lock) for memory allocation.

Revision 1.126 / (download) - annotate - [select for diffs], Fri Apr 21 18:09:38 2023 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.125: +4 -2 lines
Diff to previous 1.125 (colored)

dk(4): Restore assertions in dklastclose.

We only enter dklastclose if the wedge is open (sc->sc_dk.dk_openmask
!= 0), which can happen only if dkfirstopen has succeeded, in which
case we hold a dk_rawopens reference to the parent that prevents
anyone else from closing it.  Hence sc->sc_parent->dk_rawopens > 0.

On open, sc->sc_parent->dk_rawvp is set to nonnull, and it is only
reset to null on close.  Hence if the parent is still open, as it
must be here, sc->sc_parent->dk_rawvp must be nonnull.

Revision 1.125 / (download) - annotate - [select for diffs], Thu Apr 13 08:30:40 2023 UTC (10 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.124: +8 -2 lines
Diff to previous 1.124 (colored)

dk(4): Explain why dk_rawopens can't overflow and assert it.

Revision 1.124 / (download) - annotate - [select for diffs], Tue Sep 27 17:04:52 2022 UTC (16 months, 3 weeks ago) by mlelstv
Branch: MAIN
CVS Tags: netbsd-10-base, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Branch point for: netbsd-10
Changes since 1.123: +2 -4 lines
Diff to previous 1.123 (colored)

Remove bogus assertions.

Revision 1.123 / (download) - annotate - [select for diffs], Mon Aug 22 00:32:30 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.122: +4 -4 lines
Diff to previous 1.122 (colored)

dk(4): Assert about dk_openmask under the lock.

This serves two purposes:

1. Pacifies data race sanitizers.

2. Ensures that we don't spuriously trip over the assertion if
   dkclose happens concurrently with dkopen due to a revoke call.

Revision 1.122 / (download) - annotate - [select for diffs], Mon Aug 22 00:31:57 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.121: +4 -4 lines
Diff to previous 1.121 (colored)

Revert "dk(4): Narrow scope of dk_rawlock on close to dklastclose."

dkfirstopen relies on reading from dk_openmask of _other_ wedges,
writes to dk_openmask must be serialized by dk_rawlock in addition to
dk_openlock.  (However, reads from dk_openlock only require one or
the other).

Revision 1.121 / (download) - annotate - [select for diffs], Mon Aug 22 00:20:36 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.120: +9 -12 lines
Diff to previous 1.120 (colored)

dk(4): dklastclose never fails.  Make it return void.

Revision 1.120 / (download) - annotate - [select for diffs], Mon Aug 22 00:20:27 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.119: +9 -16 lines
Diff to previous 1.119 (colored)

dk(4): Simplify dklastclose.

No functional change intended.

Revision 1.119 / (download) - annotate - [select for diffs], Mon Aug 22 00:20:18 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.118: +3 -2 lines
Diff to previous 1.118 (colored)

dk(4): Assert parent is open in dklastclose.

It is not possible for us to be closing a wedge whose parent is not
open by at least this wedge.

Revision 1.118 / (download) - annotate - [select for diffs], Mon Aug 22 00:20:03 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.117: +50 -34 lines
Diff to previous 1.117 (colored)

dk(4): Move first-open logic to new dkfirstopen function.

Makes the logic more clearly pair with dklastclose.

Revision 1.117 / (download) - annotate - [select for diffs], Mon Aug 22 00:19:53 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.116: +5 -5 lines
Diff to previous 1.116 (colored)

dk(4): Turn locking contract comment into assertions in dklastclose.

Revision 1.116 / (download) - annotate - [select for diffs], Mon Aug 22 00:19:43 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.115: +4 -4 lines
Diff to previous 1.115 (colored)

dk(4): Narrow scope of dk_rawlock on close to dklastclose.

No need to take it if we're not actually going to close the parent.

No functional change intended; dk_rawlock is only supposed to
serialize dk_rawopens access and open/close of the parent, after all.

Revision 1.115 / (download) - annotate - [select for diffs], Mon Aug 22 00:19:33 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.114: +8 -12 lines
Diff to previous 1.114 (colored)

dk(4): Factor common mutex_exit out of branches to keep it balanced.

No functional change intended.

Revision 1.114 / (download) - annotate - [select for diffs], Mon Aug 22 00:19:22 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.113: +8 -7 lines
Diff to previous 1.113 (colored)

dk(4): Move lock release out of dklastclose into caller.

No longer necessary to have this unbalanced logic now that
dk_close_parent correctly happens under the lock in order to
serialize with dk_open_parent.

No functional change intended.

Revision 1.113 / (download) - annotate - [select for diffs], Mon Aug 22 00:19:12 2022 UTC (18 months ago) by riastradh
Branch: MAIN
Changes since 1.112: +5 -5 lines
Diff to previous 1.112 (colored)

dk(4): Serialize closing parent's dk_rawvp with opening it.

Otherwise, the following events might happen:

- process 123 had /dev/rdkN open, starts close, enters dk_close_parent
- process 456 opens /dev/rdkM (same parent, different wedge), calls
  dk_open_parent

At this point, the block device hasn't yet closed, so dk_open_parent
will fail with EBUSY.  This is incorrect -- the chardev is never
supposed to fail with EBUSY, and dkopen/dkclose carefully manage
state to avoid opening the block device while it's still open.  The
problem is that dkopen in process 456 didn't wait for vn_close
in process 123 to finish before calling VOP_OPEN.

(Note: If it were the _same_ chardev /dev/rdkN in both processes,
then spec_open/close would prevent this.  But since it's a
_different_ chardev, spec_open/close assume that concurrency is OK,
and it's the driver's responsibility to serialize access to the
parent disk which, unbeknownst to spec_open/close, is shared between
dkN and dkM.)

It appears that the vn_close call was previously moved outside
dk_rawlock in 2010 to work around an unrelated bug in raidframe that
had already been fixed in HEAD:

Crash pointing to dk_rawlock and raidclose:
https://mail-index.netbsd.org/tech-kern/2010/07/27/msg008612.html

Change working around that crash:
https://mail-index.netbsd.org/source-changes/2010/08/04/msg012270.html

Change removing raidclose -> mutex_destroy(&dk_rawlock) path:
https://mail-index.netbsd.org/source-changes/2009/07/23/msg223381.html

Revision 1.112 / (download) - annotate - [select for diffs], Sat Jun 11 18:17:00 2022 UTC (20 months, 1 week ago) by martin
Branch: MAIN
Changes since 1.111: +6 -6 lines
Diff to previous 1.111 (colored)

Since rev 1.101 DIOCAWEDGE could return success without filling in the
wedge device name - which is quite confusing for userland.
Always fill the name if we return success.

Revision 1.111 / (download) - annotate - [select for diffs], Sat Apr 23 16:22:23 2022 UTC (22 months ago) by hannken
Branch: MAIN
Changes since 1.110: +9 -3 lines
Diff to previous 1.110 (colored)

Need vnode locked fot VOP_FDISCARD().

Revision 1.110 / (download) - annotate - [select for diffs], Sat Jan 15 19:34:11 2022 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.109: +5 -15 lines
Diff to previous 1.109 (colored)

dk(4): Omit redundant microoptimization around cv_broadcast.

cv_broadcast already has a fast path for the no-waiter case.

Revision 1.109 / (download) - annotate - [select for diffs], Mon Oct 18 11:40:56 2021 UTC (2 years, 4 months ago) by simonb
Branch: MAIN
Changes since 1.108: +3 -4 lines
Diff to previous 1.108 (colored)

Whitespace nits.

Revision 1.108 / (download) - annotate - [select for diffs], Sat Oct 16 07:05:45 2021 UTC (2 years, 4 months ago) by simonb
Branch: MAIN
Changes since 1.107: +2 -3 lines
Diff to previous 1.107 (colored)

Remove funny straggling blank line.

Revision 1.107 / (download) - annotate - [select for diffs], Sat Aug 21 11:55:25 2021 UTC (2 years, 6 months ago) by andvar
Branch: MAIN
Changes since 1.106: +3 -3 lines
Diff to previous 1.106 (colored)

fix some more typos in comments/log messages, improve wording as well.

Revision 1.106 / (download) - annotate - [select for diffs], Wed Aug 4 21:44:41 2021 UTC (2 years, 6 months ago) by mlelstv
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-futex2-base, thorpej-futex2
Changes since 1.105: +15 -8 lines
Diff to previous 1.105 (colored)

Swap and Dump uses DEV_BSIZE units. Translate from device sectors like
regular I/O (strategy).

Revision 1.102.6.1 / (download) - annotate - [select for diffs], Thu Jun 17 04:46:27 2021 UTC (2 years, 8 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.102: +39 -7 lines
Diff to previous 1.102 (colored) next main 1.103 (colored)

Sync w/ HEAD.

Revision 1.103.2.1 / (download) - annotate - [select for diffs], Sun Jun 6 20:30:51 2021 UTC (2 years, 8 months ago) by cjep
Branch: cjep_sun2x
Changes since 1.103: +25 -10 lines
Diff to previous 1.103 (colored) next main 1.104 (colored)

sync with head

Revision 1.105 / (download) - annotate - [select for diffs], Wed Jun 2 17:56:40 2021 UTC (2 years, 8 months ago) by mlelstv
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf-base, thorpej-cfargs2-base, thorpej-cfargs2, cjep_sun2x-base1
Changes since 1.104: +3 -4 lines
Diff to previous 1.104 (colored)

Clear sc_mode only on last close.

Revision 1.104 / (download) - annotate - [select for diffs], Wed Jun 2 15:59:08 2021 UTC (2 years, 8 months ago) by mlelstv
Branch: MAIN
Changes since 1.103: +26 -10 lines
Diff to previous 1.103 (colored)

Copy mode of open wedges with the same parent and validate it.
Remove race on mode value when closing.

Revision 1.102.8.1 / (download) - annotate - [select for diffs], Mon May 31 22:15:17 2021 UTC (2 years, 8 months ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.102: +21 -4 lines
Diff to previous 1.102 (colored) next main 1.103 (colored)

sync with head

Revision 1.103 / (download) - annotate - [select for diffs], Sat May 22 13:43:50 2021 UTC (2 years, 9 months ago) by mlelstv
Branch: MAIN
CVS Tags: cjep_sun2x-base, cjep_staticlib_x-base1
Branch point for: cjep_sun2x
Changes since 1.102: +21 -4 lines
Diff to previous 1.102 (colored)

Handle read-only parent devices.

Currently this only affects xbd(4). Other disk drivers succeed opening
read-only disks as read-write and only fail subsequent write requests.

Revision 1.97.8.4 / (download) - annotate - [select for diffs], Sun Oct 11 12:34:29 2020 UTC (3 years, 4 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE
Changes since 1.97.8.3: +6 -3 lines
Diff to previous 1.97.8.3 (colored) to branchpoint 1.97 (colored) next main 1.98 (colored)

Pull up following revision(s) (requested by mlelstv in ticket #1110):

	sys/dev/dkwedge/dk.c: revision 1.102
	sys/dev/ccd.c: revision 1.185
	sbin/ccdconfig/ccdconfig.c: revision 1.58

Use raw device for configuring units. This is necessary as
having a block device opened prevents autodiscovery of wedges.

Fix ioctl locking. Add dkdriver.

Check dkdriver before calling a driver function.

Revision 1.102 / (download) - annotate - [select for diffs], Tue Oct 6 15:05:54 2020 UTC (3 years, 4 months ago) by mlelstv
Branch: MAIN
CVS Tags: thorpej-futex-base, thorpej-futex, thorpej-cfargs-base, thorpej-cfargs, cjep_staticlib_x-base
Branch point for: thorpej-i2c-spi-conf, cjep_staticlib_x
Changes since 1.101: +6 -3 lines
Diff to previous 1.101 (colored)

Check dkdriver before calling a driver function.

Revision 1.101 / (download) - annotate - [select for diffs], Sun May 24 14:40:21 2020 UTC (3 years, 9 months ago) by jmcneill
Branch: MAIN
Changes since 1.100: +31 -2 lines
Diff to previous 1.100 (colored)

dkwedge_add: Allow for expanding the size of an existing wedge without
having to delete it first, provided that no other parameters have changed.

Revision 1.97.8.3 / (download) - annotate - [select for diffs], Fri Apr 24 17:42:53 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-9
Changes since 1.97.8.2: +12 -10 lines
Diff to previous 1.97.8.2 (colored) to branchpoint 1.97 (colored)

Pull up following revision(s) (requested by maya in ticket #850):

	sys/dev/dkwedge/dk.c: revision 1.98

Update sc->sc_parent->dk_rawvp while the lock named dk_rawlock held
to prevent a race condition

Fixes PR kern/55026

OKed by mlelstv@, thanks

Revision 1.96.6.1 / (download) - annotate - [select for diffs], Fri Apr 24 16:15:24 2020 UTC (3 years, 10 months ago) by martin
Branch: netbsd-8
Changes since 1.96: +12 -10 lines
Diff to previous 1.96 (colored) next main 1.97 (colored)

Pull up following revision(s) (requested by maya in ticket #1541):

	sys/dev/dkwedge/dk.c: revision 1.98

Update sc->sc_parent->dk_rawvp while the lock named dk_rawlock held
to prevent a race condition

Fixes PR kern/55026

OKed by mlelstv@, thanks

Revision 1.97.2.1 / (download) - annotate - [select for diffs], Wed Apr 8 14:08:03 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.97: +31 -11 lines
Diff to previous 1.97 (colored) next main 1.98 (colored)

Merge changes from current as of 20200406

Revision 1.97.8.2 / (download) - annotate - [select for diffs], Mon Apr 6 14:53:33 2020 UTC (3 years, 10 months ago) by martin
Branch: netbsd-9
Changes since 1.97.8.1: +4 -3 lines
Diff to previous 1.97.8.1 (colored) to branchpoint 1.97 (colored)

Pull up following revision(s) (requested by riastradh in ticket #822):

	sys/dev/dkwedge/dk.c: revision 1.99

Allow dumping to cgd(4) on a dk(4).

(Technically this also allows dumping to a dk(4) on which there
happens to be a cgd(4) configured, but I'm not sure how to
distinguish that case here.  So don't do that!)

Revision 1.97.8.1 / (download) - annotate - [select for diffs], Sat Mar 21 15:18:57 2020 UTC (3 years, 11 months ago) by martin
Branch: netbsd-9
Changes since 1.97: +19 -2 lines
Diff to previous 1.97 (colored)

Pull up following revision(s) (requested by riastradh in ticket #788):

	sys/sys/dkio.h: revision 1.26
	sys/dev/dkwedge/dk.c: revision 1.100
	sys/sys/disk.h: revision 1.75
	external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.14
	external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.15
	sys/dev/cgd.c: revision 1.121
	sys/dev/ata/wdvar.h: revision 1.50
	sys/kern/subr_disk_open.c: revision 1.15
	sys/dev/ata/wd.c: revision 1.459

New ioctl DIOCGSECTORALIGN returns sector alignment parameters.

struct disk_sectoralign {
        /* First aligned sector number.  */
        uint32_t dsa_firstaligned;
        /* Number of sectors per aligned unit.  */
        uint32_t dsa_alignment;
};

- Teach wd(4) to get it from ATA.
- Teach cgd(4) to pass it through from the underlying disk.
- Teach dk(4) to pass it through with adjustments.
- Teach zpool (zfs) to take advantage of it.
  => XXX zpool doesn't seem to understand when the vdev's starting
     sector is misaligned.

Missing:
- ccd(4) and raidframe(4) support -- these should support _using_
  DIOCGSECTORALIGN to decide where to start putting ccd or raid
  stripes on disk, and these should perhaps _implement_
  DIOCGSECTORALIGN by reporting the stripe/interleave factor.
- sd(4) support -- I don't know any obvious way to get it from SCSI,
  but if any SCSI wizards know better than I, please feel free to
  teach sd(4) about it!
- any ld(4) attachments -- might be worth teaching the ld drivers for
  nvme and various raid controllers to get the aligned sector size

There's some duplicate logic here for now.  I'm doing it this way,
rather than gathering the logic into a new disklabel_sectoralign
function or something, so that this change is limited to adding a new
ioctl, without any new kernel symbols, in order to make it easy to
pull up to netbsd-9 without worrying about the module ABI.

Make getdiskinfo() compatible with a DIOCGWEDGEINFO.

dkw_parent is defined to hold the disk name as used by disk_find(), not
a partition (i.e. no partition letter appended).

Use utility functions to handle disk geometry.

Revision 1.100 / (download) - annotate - [select for diffs], Mon Mar 2 16:01:56 2020 UTC (3 years, 11 months ago) by riastradh
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Changes since 1.99: +19 -2 lines
Diff to previous 1.99 (colored)

New ioctl DIOCGSECTORALIGN returns sector alignment parameters.

struct disk_sectoralign {
	/* First aligned sector number.  */
	uint32_t dsa_firstaligned;

	/* Number of sectors per aligned unit.  */
	uint32_t dsa_alignment;
};

- Teach wd(4) to get it from ATA.
- Teach cgd(4) to pass it through from the underlying disk.
- Teach dk(4) to pass it through with adjustments.
- Teach zpool (zfs) to take advantage of it.
  => XXX zpool doesn't seem to understand when the vdev's starting
     sector is misaligned.

Missing:

- ccd(4) and raidframe(4) support -- these should support _using_
  DIOCGSECTORALIGN to decide where to start putting ccd or raid
  stripes on disk, and these should perhaps _implement_
  DIOCGSECTORALIGN by reporting the stripe/interleave factor.

- sd(4) support -- I don't know any obvious way to get it from SCSI,
  but if any SCSI wizards know better than I, please feel free to
  teach sd(4) about it!

- any ld(4) attachments -- might be worth teaching the ld drivers for
  nvme and various raid controllers to get the aligned sector size

There's some duplicate logic here for now.  I'm doing it this way,
rather than gathering the logic into a new disklabel_sectoralign
function or something, so that this change is limited to adding a new
ioctl, without any new kernel symbols, in order to make it easy to
pull up to netbsd-9 without worrying about the module ABI.

Revision 1.99 / (download) - annotate - [select for diffs], Sun Mar 1 03:19:46 2020 UTC (3 years, 11 months ago) by riastradh
Branch: MAIN
Changes since 1.98: +4 -3 lines
Diff to previous 1.98 (colored)

Allow dumping to cgd(4) on a dk(4).

(Technically this also allows dumping to a dk(4) on which there
happens to be a cgd(4) configured, but I'm not sure how to
distinguish that case here.  So don't do that!)

Revision 1.97.10.1 / (download) - annotate - [select for diffs], Sat Feb 29 20:19:07 2020 UTC (3 years, 11 months ago) by ad
Branch: ad-namecache
Changes since 1.97: +12 -10 lines
Diff to previous 1.97 (colored) next main 1.98 (colored)

Sync with head.

Revision 1.98 / (download) - annotate - [select for diffs], Fri Feb 28 06:01:23 2020 UTC (3 years, 11 months ago) by yamaguchi
Branch: MAIN
CVS Tags: ad-namecache-base3
Changes since 1.97: +12 -10 lines
Diff to previous 1.97 (colored)

Update sc->sc_parent->dk_rawvp while the lock named dk_rawlock held
to prevent a race condition

Fixes PR kern/55026

OKed by mlelstv@, thanks

Revision 1.96.12.1 / (download) - annotate - [select for diffs], Mon May 21 04:36:05 2018 UTC (5 years, 9 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.96: +3 -3 lines
Diff to previous 1.96 (colored) next main 1.97 (colored)

Sync with HEAD

Revision 1.97 / (download) - annotate - [select for diffs], Sat May 12 10:33:06 2018 UTC (5 years, 9 months ago) by mlelstv
Branch: MAIN
CVS Tags: phil-wifi-base, phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, netbsd-9-base, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, jdolecek-ncqfixes-base, jdolecek-ncqfixes, isaki-audio2-base, isaki-audio2, ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: phil-wifi, netbsd-9, ad-namecache
Changes since 1.96: +3 -3 lines
Diff to previous 1.96 (colored)

Support dump on wedges.

Revision 1.64.2.5 / (download) - annotate - [select for diffs], Sun Dec 3 11:37:00 2017 UTC (6 years, 2 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.64.2.4: +319 -129 lines
Diff to previous 1.64.2.4 (colored) next main 1.65 (colored)

update from HEAD

Revision 1.75.2.8 / (download) - annotate - [select for diffs], Mon Aug 28 17:52:01 2017 UTC (6 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.7: +6 -11 lines
Diff to previous 1.75.2.7 (colored) to branchpoint 1.75 (colored) next main 1.76 (colored)

Sync with HEAD

Revision 1.96.4.2 / (download) - annotate - [select for diffs], Wed May 17 01:44:17 2017 UTC (6 years, 9 months ago) by pgoyette
Branch: prg-localcount2
Changes since 1.96.4.1: +3 -2 lines
Diff to previous 1.96.4.1 (colored) to branchpoint 1.96 (colored) next main 1.97 (colored)

At suggestion of chuq@, modify config_attach_pseudo() to return with a
reference held on the device.

Adapt callers to expect the reference to exist, and to ensure that the
reference is released.

Revision 1.96.4.1 / (download) - annotate - [select for diffs], Thu Apr 27 05:36:35 2017 UTC (6 years, 9 months ago) by pgoyette
Branch: prg-localcount2
Changes since 1.96: +4 -3 lines
Diff to previous 1.96 (colored)

Restore all work from the former pgoyette-localcount branch (which is
now abandoned doe to cvs merge botch).

The branch now builds, and installs via anita.  There are still some
problems (cgd is non-functional and all atf tests time-out) but they
will get resolved soon.

Revision 1.93.2.1 / (download) - annotate - [select for diffs], Fri Apr 21 16:53:45 2017 UTC (6 years, 10 months ago) by bouyer
Branch: bouyer-socketcan
Changes since 1.93: +13 -16 lines
Diff to previous 1.93 (colored) next main 1.94 (colored)

Sync with HEAD

Revision 1.91.2.3 / (download) - annotate - [select for diffs], Mon Mar 20 06:57:27 2017 UTC (6 years, 11 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.91.2.2: +13 -16 lines
Diff to previous 1.91.2.2 (colored) to branchpoint 1.91 (colored) next main 1.92 (colored)

Sync with HEAD

Revision 1.96 / (download) - annotate - [select for diffs], Sun Mar 5 23:07:12 2017 UTC (6 years, 11 months ago) by mlelstv
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-compat-base, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Branch point for: prg-localcount2, pgoyette-compat, netbsd-8
Changes since 1.95: +3 -2 lines
Diff to previous 1.95 (colored)

Enhance disk metrics by calculating a weighted sum that is incremented
by the number of concurrent I/O requests. Also introduce a new disk_wait()
function to measure requests waiting in a bufq.
iostat -y now reports data about waiting and active requests.

So far only drivers using dksubr and dk, ccd, wd and xbd collect data about
waiting requests.

Revision 1.95 / (download) - annotate - [select for diffs], Mon Feb 27 21:27:07 2017 UTC (6 years, 11 months ago) by jdolecek
Branch: MAIN
Changes since 1.94: +5 -11 lines
Diff to previous 1.94 (colored)

pass also DIOCGCACHE to underlying device, so that upper layers would be able
to get the device cache properties without knowing the topology; while here also
pass down DIOCGSTRATEGY for neater dkctl(8) output

Revision 1.75.2.7 / (download) - annotate - [select for diffs], Sun Feb 5 13:40:27 2017 UTC (7 years ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.6: +69 -33 lines
Diff to previous 1.75.2.6 (colored) to branchpoint 1.75 (colored)

Sync with HEAD

Revision 1.94 / (download) - annotate - [select for diffs], Thu Jan 19 00:44:40 2017 UTC (7 years, 1 month ago) by maya
Branch: MAIN
CVS Tags: nick-nhusb-base-20170204
Changes since 1.93: +9 -7 lines
Diff to previous 1.93 (colored)

use a bounded copy. NFCI

Revision 1.91.2.2 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:31 2017 UTC (7 years, 1 month ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.91.2.1: +62 -28 lines
Diff to previous 1.91.2.1 (colored) to branchpoint 1.91 (colored)

Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.93 / (download) - annotate - [select for diffs], Sat Dec 24 16:39:55 2016 UTC (7 years, 2 months ago) by mlelstv
Branch: MAIN
CVS Tags: pgoyette-localcount-20170107, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.92: +6 -0 lines
Diff to previous 1.92 (colored)

add missing mutex/cv cleanup to error paths.

Revision 1.92 / (download) - annotate - [select for diffs], Fri Dec 16 15:06:39 2016 UTC (7 years, 2 months ago) by mlelstv
Branch: MAIN
Changes since 1.91: +56 -28 lines
Diff to previous 1.91 (colored)

Make dk(4) device mpsafe.

Revision 1.91.2.1 / (download) - annotate - [select for diffs], Wed Jul 20 23:47:56 2016 UTC (7 years, 7 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.91: +4 -3 lines
Diff to previous 1.91 (colored)

Adapt machine-independant code to the new {b,c}devsw reference-counting
(using localcount(9)).  All callers of {b,c}devsw_lookup() now call
{b,c}devsw_lookup_acquire() which retains a reference on the 'struct
{b,c}devsw'.  This reference must be released by the caller once it is
finished with the structure's content (or other data that would disappear
if the 'struct {b,c}devsw' were to disappear).

Revision 1.75.2.6 / (download) - annotate - [select for diffs], Sat Jul 9 20:25:01 2016 UTC (7 years, 7 months ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.5: +13 -11 lines
Diff to previous 1.75.2.5 (colored) to branchpoint 1.75 (colored)

Sync with HEAD

Revision 1.91 / (download) - annotate - [select for diffs], Sun May 29 13:11:21 2016 UTC (7 years, 8 months ago) by mlelstv
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, localcount-20160914
Branch point for: pgoyette-localcount
Changes since 1.90: +4 -3 lines
Diff to previous 1.90 (colored)

missed one exit path with the previous change.

Revision 1.90 / (download) - annotate - [select for diffs], Sun May 29 12:48:40 2016 UTC (7 years, 8 months ago) by mlelstv
Branch: MAIN
Changes since 1.89: +11 -10 lines
Diff to previous 1.89 (colored)

release openlock mutex before closing parent device.

Revision 1.75.2.5 / (download) - annotate - [select for diffs], Sun May 29 08:44:20 2016 UTC (7 years, 8 months ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.4: +19 -2 lines
Diff to previous 1.75.2.4 (colored) to branchpoint 1.75 (colored)

Sync with HEAD

Revision 1.89 / (download) - annotate - [select for diffs], Wed Apr 27 02:19:12 2016 UTC (7 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529
Changes since 1.88: +19 -2 lines
Diff to previous 1.88 (colored)

Add dkwedge_find_by_parent()

Revision 1.75.2.4 / (download) - annotate - [select for diffs], Sat Mar 19 11:30:09 2016 UTC (7 years, 11 months ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.3: +19 -15 lines
Diff to previous 1.75.2.3 (colored) to branchpoint 1.75 (colored)

Sync with HEAD

Revision 1.88 / (download) - annotate - [select for diffs], Fri Jan 15 07:48:22 2016 UTC (8 years, 1 month ago) by mlelstv
Branch: MAIN
CVS Tags: nick-nhusb-base-20160422, nick-nhusb-base-20160319
Changes since 1.87: +4 -3 lines
Diff to previous 1.87 (colored)

Allow dump to raidframe component which is a wedge.

N.B. ordinary devices check the partition type only in the xxxsize routine.

Revision 1.75.2.3 / (download) - annotate - [select for diffs], Sun Dec 27 12:09:49 2015 UTC (8 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.2: +9 -9 lines
Diff to previous 1.75.2.2 (colored) to branchpoint 1.75 (colored)

Sync with HEAD (as of 26th Dec)

Revision 1.87 / (download) - annotate - [select for diffs], Sun Dec 27 00:47:47 2015 UTC (8 years, 1 month ago) by mlelstv
Branch: MAIN
Changes since 1.86: +17 -14 lines
Diff to previous 1.86 (colored)

Return error in dkopen when dk_open_parent fails. Also change dk_open_parent
to pass error code to caller.
XXX: Pullups

Revision 1.86 / (download) - annotate - [select for diffs], Sat Nov 28 13:41:31 2015 UTC (8 years, 2 months ago) by mlelstv
Branch: MAIN
CVS Tags: nick-nhusb-base-20151226
Changes since 1.85: +3 -3 lines
Diff to previous 1.85 (colored)

sc_size is already measured in sectors.

Revision 1.85 / (download) - annotate - [select for diffs], Sat Oct 10 23:39:43 2015 UTC (8 years, 4 months ago) by christos
Branch: MAIN
Changes since 1.84: +2 -4 lines
Diff to previous 1.84 (colored)

remove incorrect comment (from kre)

Revision 1.84 / (download) - annotate - [select for diffs], Tue Oct 6 11:22:40 2015 UTC (8 years, 4 months ago) by jmcneill
Branch: MAIN
Changes since 1.83: +8 -6 lines
Diff to previous 1.83 (colored)

print wedge announcement in one line instead of two

Revision 1.75.2.2 / (download) - annotate - [select for diffs], Tue Sep 22 12:05:57 2015 UTC (8 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.75.2.1: +85 -33 lines
Diff to previous 1.75.2.1 (colored) to branchpoint 1.75 (colored)

Sync with HEAD

Revision 1.72.2.4 / (download) - annotate - [select for diffs], Tue Sep 8 12:02:33 2015 UTC (8 years, 5 months ago) by martin
Branch: netbsd-7
CVS Tags: netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0
Changes since 1.72.2.3: +83 -31 lines
Diff to previous 1.72.2.3 (colored) to branchpoint 1.72 (colored) next main 1.73 (colored)

Pull up following revision(s) (requested by mlelstv in ticket #967):
	sys/dev/dkwedge/dk.c: revision 1.82
No longer access the disk driver directly.
If there is an open wedge, temporarily reference its vnode.
Otherwise try to open the block device.

Revision 1.83 / (download) - annotate - [select for diffs], Tue Aug 25 11:08:59 2015 UTC (8 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: nick-nhusb-base-20150921
Changes since 1.82: +9 -9 lines
Diff to previous 1.82 (colored)

Rename variable to avoid -Wshadow warnings with some compilers.

Revision 1.82 / (download) - annotate - [select for diffs], Sat Aug 22 07:48:14 2015 UTC (8 years, 6 months ago) by mlelstv
Branch: MAIN
Changes since 1.81: +83 -31 lines
Diff to previous 1.81 (colored)

No longer access the disk driver directly.
If there is an open wedge, temporarily reference its vnode.
Otherwise try to open the block device.

Revision 1.81 / (download) - annotate - [select for diffs], Sat Aug 22 07:42:46 2015 UTC (8 years, 6 months ago) by mlelstv
Branch: MAIN
Changes since 1.80: +2 -9 lines
Diff to previous 1.80 (colored)

revert the previous

Revision 1.80 / (download) - annotate - [select for diffs], Thu Aug 20 23:08:33 2015 UTC (8 years, 6 months ago) by mlelstv
Branch: MAIN
Changes since 1.79: +11 -4 lines
Diff to previous 1.79 (colored)

when scanning for disklabels, close block device only when this was
the first open. The device driver doesn't do reference counting.

This is still subject to race conditions.

Revision 1.75.2.1 / (download) - annotate - [select for diffs], Mon Apr 6 15:18:08 2015 UTC (8 years, 10 months ago) by skrll
Branch: nick-nhusb
Changes since 1.75: +17 -12 lines
Diff to previous 1.75 (colored)

Sync with HEAD

Revision 1.79 / (download) - annotate - [select for diffs], Fri Jan 2 01:14:22 2015 UTC (9 years, 1 month ago) by christos
Branch: MAIN
CVS Tags: nick-nhusb-base-20150606, nick-nhusb-base-20150406
Changes since 1.78: +4 -4 lines
Diff to previous 1.78 (colored)

- Use NODEV instead of 0
- Return EBUSY if there was no label

Revision 1.78 / (download) - annotate - [select for diffs], Wed Dec 31 19:52:05 2014 UTC (9 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.77: +7 -3 lines
Diff to previous 1.77 (colored)

make more drivers use disk_ioctl, and add a dev parameter to it so that
we can merge the "easy" disklabel ioctls to it. Ultimately all this will
go do dk_ioctl once all the drivers have been converted.

Revision 1.77 / (download) - annotate - [select for diffs], Wed Dec 31 08:24:50 2014 UTC (9 years, 1 month ago) by mlelstv
Branch: MAIN
Changes since 1.76: +9 -10 lines
Diff to previous 1.76 (colored)

disk_blocksize and disk_set_info relay the same information
to the disk subsystem.

Make disk_set_info also set blocksize shift values.
Remove every call to disk_blocksize.

Keep disk_blocksize for ABI compatibility, make it also set dg_secsize.

Revision 1.72.2.3 / (download) - annotate - [select for diffs], Tue Dec 9 20:17:16 2014 UTC (9 years, 2 months ago) by martin
Branch: netbsd-7
CVS Tags: netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1
Changes since 1.72.2.2: +17 -12 lines
Diff to previous 1.72.2.2 (colored) to branchpoint 1.72 (colored)

Pull up following revision(s) (requested by mlelstv in ticket #304):
	sys/dev/dkwedge/dk.c: revision 1.75
	sys/dev/dkwedge/dk.c: revision 1.76
fix iobuf setup, cleanup
Really provide disk properties, the old code computed values that were
never attached to the device.

Revision 1.76 / (download) - annotate - [select for diffs], Mon Dec 8 17:45:12 2014 UTC (9 years, 2 months ago) by mlelstv
Branch: MAIN
Changes since 1.75: +10 -8 lines
Diff to previous 1.75 (colored)

Really provide disk properties, the old code computed values that were
never attached to the device.

Revision 1.75 / (download) - annotate - [select for diffs], Sat Nov 22 11:59:33 2014 UTC (9 years, 3 months ago) by mlelstv
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.74: +9 -6 lines
Diff to previous 1.74 (colored)

fix iobuf setup, cleanup

Revision 1.72.2.2 / (download) - annotate - [select for diffs], Tue Nov 11 10:36:41 2014 UTC (9 years, 3 months ago) by martin
Branch: netbsd-7
Changes since 1.72.2.1: +102 -46 lines
Diff to previous 1.72.2.1 (colored) to branchpoint 1.72 (colored)

Pull up following revision(s) (requested by mlelstv in ticket #201):
	sbin/dkctl/dkctl.8: revision 1.24
	sbin/dkctl/dkctl.8: revision 1.25
	sys/dev/scsipi/sd.c: revision 1.310
	sys/dev/ata/wd.c: revision 1.415
	sbin/dkctl/dkctl.c: revision 1.21
	sys/dev/raidframe/rf_netbsdkintf.c: revision 1.315
	sys/dev/ld.c: revision 1.78
	sys/dev/vnd.c: revision 1.234
	sys/dev/dksubr.c: revision 1.54
	sys/sys/dkio.h: revision 1.20
	sys/dev/dkwedge/dk.c: revision 1.74
Add ioctl to autodiscover wedges.
Implement DIOCMWEDGES ioctl that triggers wedge autodiscovery.
Also fix a reference counting bug and clean up some code.
support DIOCMWEDGES ioctl.
Add 'makewedges' option to autodiscover wedges from a changed label.
New sentence, new line. Bump date for previous.

Revision 1.74 / (download) - annotate - [select for diffs], Tue Nov 4 07:50:39 2014 UTC (9 years, 3 months ago) by mlelstv
Branch: MAIN
Changes since 1.73: +102 -46 lines
Diff to previous 1.73 (colored)

Implement DIOCMWEDGES ioctl that triggers wedge autodiscovery.
Also fix a reference counting bug and clean up some code.

Revision 1.72.2.1 / (download) - annotate - [select for diffs], Fri Aug 29 11:49:41 2014 UTC (9 years, 5 months ago) by martin
Branch: netbsd-7
Changes since 1.72: +19 -2 lines
Diff to previous 1.72 (colored)

Pull up following revision(s) (requested by riastradh in ticket #65):
	sys/dev/dkwedge/dk.c: revision 1.73
Make dk(4) discard from partition start, not from disk start.
Otherwise, anything mounted with `-o discard' will pretty quickly
munch itself up and barf up an unrecoverably corrupted file system!
XXX pullup to netbsd-7

Revision 1.73 / (download) - annotate - [select for diffs], Thu Aug 28 19:37:46 2014 UTC (9 years, 5 months ago) by riastradh
Branch: MAIN
Changes since 1.72: +19 -2 lines
Diff to previous 1.72 (colored)

Make dk(4) discard from partition start, not from disk start.

Otherwise, anything mounted with `-o discard' will pretty quickly
munch itself up and barf up an unrecoverably corrupted file system!

XXX pullup to netbsd-7

Revision 1.64.2.4 / (download) - annotate - [select for diffs], Wed Aug 20 00:03:36 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-maxphys
Changes since 1.64.2.3: +57 -5 lines
Diff to previous 1.64.2.3 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.69.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:54:50 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.69: +25 -2 lines
Diff to previous 1.69 (colored) next main 1.70 (colored)

Rebase.

Revision 1.72 / (download) - annotate - [select for diffs], Fri Jul 25 08:23:56 2014 UTC (9 years, 7 months ago) by dholland
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.71: +25 -4 lines
Diff to previous 1.71 (colored)

Implement d_discard for dk. This closes PR 47940.

Revision 1.71 / (download) - annotate - [select for diffs], Fri Jul 25 08:10:36 2014 UTC (9 years, 7 months ago) by dholland
Branch: MAIN
Changes since 1.70: +3 -2 lines
Diff to previous 1.70 (colored)

Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.

Revision 1.70 / (download) - annotate - [select for diffs], Fri Jul 25 08:02:19 2014 UTC (9 years, 7 months ago) by dholland
Branch: MAIN
Changes since 1.69: +3 -2 lines
Diff to previous 1.69 (colored)

Add d_discard to all struct bdevsw instances I could find.

I've set them all to nodiscard. Some of them (wd, dk, vnd, ld,
raidframe, maybe cgd) should be implemented for real.

Revision 1.62.2.3 / (download) - annotate - [select for diffs], Thu May 22 11:40:20 2014 UTC (9 years, 9 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.62.2.2: +45 -33 lines
Diff to previous 1.62.2.2 (colored) to branchpoint 1.62 (colored) next main 1.63 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.66.2.2 / (download) - annotate - [select for diffs], Sun May 18 17:45:36 2014 UTC (9 years, 9 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.66.2.1: +33 -5 lines
Diff to previous 1.66.2.1 (colored) to branchpoint 1.66 (colored) next main 1.67 (colored)

sync with head

Revision 1.69 / (download) - annotate - [select for diffs], Thu Apr 3 15:24:20 2014 UTC (9 years, 10 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base
Branch point for: tls-earlyentropy
Changes since 1.68: +15 -2 lines
Diff to previous 1.68 (colored)

add dkwedge_get_parent_name().

Revision 1.68 / (download) - annotate - [select for diffs], Sun Mar 16 05:20:27 2014 UTC (9 years, 11 months ago) by dholland
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Changes since 1.67: +20 -5 lines
Diff to previous 1.67 (colored)

Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.

Revision 1.66.2.1 / (download) - annotate - [select for diffs], Wed Aug 28 23:59:25 2013 UTC (10 years, 5 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.66: +5 -4 lines
Diff to previous 1.66 (colored)

sync with head

Revision 1.67 / (download) - annotate - [select for diffs], Sat Aug 3 18:30:57 2013 UTC (10 years, 6 months ago) by soren
Branch: MAIN
Changes since 1.66: +5 -4 lines
Diff to previous 1.66 (colored)

Don't complain about not being able to open empty removable media drives.

Revision 1.64.2.3 / (download) - annotate - [select for diffs], Sun Jun 23 06:20:16 2013 UTC (10 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.64.2.2: +11 -28 lines
Diff to previous 1.64.2.2 (colored)

resync from head

Revision 1.66 / (download) - annotate - [select for diffs], Wed May 29 00:47:48 2013 UTC (10 years, 8 months ago) by christos
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Branch point for: rmind-smpnet
Changes since 1.65: +11 -28 lines
Diff to previous 1.65 (colored)

phase 1 of disk geometry cleanup:
	- centralize the geometry -> plist code so that we don't have
	  n useless copies of it.

Revision 1.64.2.2 / (download) - annotate - [select for diffs], Sun Dec 2 05:46:40 2012 UTC (11 years, 2 months ago) by tls
Branch: tls-maxphys
Changes since 1.64.2.1: +5 -3 lines
Diff to previous 1.64.2.1 (colored)


Don't pass NULL struct dkdriver to disk_init.  That's seriously bogus.

Revision 1.64.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:02:00 2012 UTC (11 years, 3 months ago) by tls
Branch: tls-maxphys
Changes since 1.64: +4 -5 lines
Diff to previous 1.64 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.62.2.2 / (download) - annotate - [select for diffs], Tue Oct 30 17:20:55 2012 UTC (11 years, 3 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.62.2.1: +34 -100 lines
Diff to previous 1.62.2.1 (colored) to branchpoint 1.62 (colored)

sync with head

Revision 1.65 / (download) - annotate - [select for diffs], Sat Oct 27 17:18:15 2012 UTC (11 years, 3 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, khorben-n900, agc-symver-base, agc-symver
Changes since 1.64: +4 -5 lines
Diff to previous 1.64 (colored)

split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.

Revision 1.62.8.1 / (download) - annotate - [select for diffs], Thu Jul 5 18:12:47 2012 UTC (11 years, 7 months ago) by riz
Branch: netbsd-6
CVS Tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus
Changes since 1.62: +32 -97 lines
Diff to previous 1.62 (colored) next main 1.63 (colored)

Pull up following revision(s) (requested by mlelstv in ticket #402):
	sys/dev/vnd.c: revision 1.221
	sys/kern/init_main.c: revision 1.443
	sys/kern/init_main.c: revision 1.444
	sys/dev/dkwedge/dk.c: revision 1.64
	sys/arch/x86/x86/x86_autoconf.c: revision 1.63
	sys/arch/sparc64/sparc64/autoconf.c: revision 1.187
	sys/sys/device.h: revision 1.141
	sys/dev/dkwedge/dkwedge_bsdlabel.c: revision 1.17
	sys/kern/kern_subr.c: revision 1.213
	sys/arch/zaurus/zaurus/autoconf.c: revision 1.11
	sys/arch/xen/x86/autoconf.c: revision 1.14
	sys/sys/disk.h: revision 1.57
Use the label's packname to create wedge names instead of the classic
device names. Fall back to classic device names when the label has an
empty name or the default name 'fictitious'.
autodiscover wedges
Make detection of root on wedges (dk(4)) machine independent. Remove
MD code for x86, xen, sparc64.
Make detection of root on wedges (dk(4)) machine independent. Remove
MD code for zaurus.
Do not try to find the wedge we booted from if opendisk(booted_device)
failed.

Revision 1.64 / (download) - annotate - [select for diffs], Sun Jun 10 17:05:19 2012 UTC (11 years, 8 months ago) by mlelstv
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.63: +32 -97 lines
Diff to previous 1.63 (colored)

Make detection of root on wedges (dk(4)) machine independent. Remove
MD code for x86, xen, sparc64.

Revision 1.62.2.1 / (download) - annotate - [select for diffs], Wed May 23 10:07:55 2012 UTC (11 years, 9 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.62: +5 -4 lines
Diff to previous 1.62 (colored)

sync with head.

Revision 1.62.6.1 / (download) - annotate - [select for diffs], Sun Apr 29 23:04:49 2012 UTC (11 years, 9 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.62: +5 -4 lines
Diff to previous 1.62 (colored) next main 1.63 (colored)

sync to latest -current.

Revision 1.63 / (download) - annotate - [select for diffs], Fri Apr 27 18:15:55 2012 UTC (11 years, 9 months ago) by drochner
Branch: MAIN
CVS Tags: yamt-pagecache-base5, jmcneill-usbmp-base9, jmcneill-usbmp-base10
Changes since 1.62: +5 -4 lines
Diff to previous 1.62 (colored)

minor mostly cosmetical fixes: use designated type for device major
numbers, typo in comment, misuse of minor()
(the latter one is not cosmetical, but would only affect systems
with more than 256 disk wedges)

Revision 1.62 / (download) - annotate - [select for diffs], Sat Jul 30 12:08:36 2011 UTC (12 years, 6 months ago) by jmcneill
Branch: MAIN
CVS Tags: yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, netbsd-6, jmcneill-usbmp
Changes since 1.61: +3 -3 lines
Diff to previous 1.61 (colored)

Add an FSILENT flag and use it to suppress "Medium Not Present" scsipi
spam when trying to access offline drives at boot.

Revision 1.60.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:19:58 2011 UTC (12 years, 8 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.60: +6 -6 lines
Diff to previous 1.60 (colored) next main 1.61 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:52 2011 UTC (12 years, 8 months ago) by rmind
Branch: MAIN
Changes since 1.60: +6 -6 lines
Diff to previous 1.60 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.58.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:07:47 2011 UTC (12 years, 8 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.58: +23 -7 lines
Diff to previous 1.58 (colored) next main 1.59 (colored)

Sync with HEAD.

Revision 1.55.4.3 / (download) - annotate - [select for diffs], Sat Mar 5 20:53:07 2011 UTC (12 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.55.4.2: +41 -19 lines
Diff to previous 1.55.4.2 (colored) to branchpoint 1.55 (colored) next main 1.56 (colored)

sync with head

Revision 1.58.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 15:10:17 2011 UTC (12 years, 11 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.58: +23 -7 lines
Diff to previous 1.58 (colored) next main 1.59 (colored)

Sync with HEAD

Revision 1.60 / (download) - annotate - [select for diffs], Thu Mar 3 03:39:08 2011 UTC (12 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, bouyer-quota2-nbase
Branch point for: cherry-xenmp
Changes since 1.59: +7 -3 lines
Diff to previous 1.59 (colored)

check rawvp before doing ioctl or strategy.

Revision 1.59 / (download) - annotate - [select for diffs], Mon Feb 28 18:28:20 2011 UTC (12 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.58: +18 -6 lines
Diff to previous 1.58 (colored)

Make error checking consistent, possibly fixes PR/44652.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Dec 23 14:22:03 2010 UTC (13 years, 2 months ago) by mlelstv
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.57: +6 -4 lines
Diff to previous 1.57 (colored)

Make wedges aware of underlying physical block size.

Revision 1.42.6.3 / (download) - annotate - [select for diffs], Sun Nov 21 18:50:17 2010 UTC (13 years, 3 months ago) by riz
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, matt-nb5-pq3-base, matt-nb5-pq3
Changes since 1.42.6.2: +10 -8 lines
Diff to previous 1.42.6.2 (colored) to branchpoint 1.42 (colored) next main 1.43 (colored)

Pull up following revision(s) (requested by bouyer in ticket #1435):
	sys/dev/dkwedge/dk.c: revision 1.57
Make sure to release sc_parent->dk_rawlock before calling
vn_close(sc->sc_parent->dk_rawvp). Avoids a lockdebug panic:
error: mutex_destroy: assertion failed: !MUTEX_OWNED(mtx->mtx_owner) && !MUTEX_HAS_WAITERS(mtx)
when the parent is a raidframe device.
See also:
http://mail-index.netbsd.org/tech-kern/2010/07/27/msg008612.html

Revision 1.55.2.1 / (download) - annotate - [select for diffs], Tue Aug 17 06:46:05 2010 UTC (13 years, 6 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.55: +18 -14 lines
Diff to previous 1.55 (colored) next main 1.56 (colored)

Sync with HEAD.

Revision 1.37.4.8 / (download) - annotate - [select for diffs], Wed Aug 11 22:53:20 2010 UTC (13 years, 6 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.7: +18 -14 lines
Diff to previous 1.37.4.7 (colored) to branchpoint 1.37 (colored) next main 1.38 (colored)

sync with head.

Revision 1.57 / (download) - annotate - [select for diffs], Wed Aug 4 12:34:00 2010 UTC (13 years, 6 months ago) by bouyer
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2
Changes since 1.56: +16 -12 lines
Diff to previous 1.56 (colored)

Make sure to release sc_parent->dk_rawlock before calling
vn_close(sc->sc_parent->dk_rawvp). Avoids a lockdebug panic:
error: mutex_destroy: assertion failed: !MUTEX_OWNED(mtx->mtx_owner) && !MUTEX_HAS_WAITERS(mtx)
when the parent is a raidframe device.
See also:
http://mail-index.netbsd.org/tech-kern/2010/07/27/msg008612.html

Revision 1.55.4.2 / (download) - annotate - [select for diffs], Sat Jul 3 01:19:35 2010 UTC (13 years, 7 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.55.4.1: +4 -4 lines
Diff to previous 1.55.4.1 (colored) to branchpoint 1.55 (colored)

sync with head

Revision 1.56 / (download) - annotate - [select for diffs], Thu Jun 24 13:03:08 2010 UTC (13 years, 8 months ago) by hannken
Branch: MAIN
Changes since 1.55: +4 -4 lines
Diff to previous 1.55 (colored)

Clean up vnode lock operations pass 2:

VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.

Welcome to 5.99.32.

Discussed on tech-kern.

Revision 1.42.12.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:27:35 2010 UTC (13 years, 10 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.42: +25 -7 lines
Diff to previous 1.42 (colored) next main 1.43 (colored)

sync to netbsd-5

Revision 1.55.4.1 / (download) - annotate - [select for diffs], Tue Mar 16 15:38:05 2010 UTC (13 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.55: +6 -6 lines
Diff to previous 1.55 (colored)

Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc().  It allows us to share the locks among UVM objects.

Revision 1.37.4.7 / (download) - annotate - [select for diffs], Thu Mar 11 15:03:25 2010 UTC (13 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.6: +33 -11 lines
Diff to previous 1.37.4.6 (colored) to branchpoint 1.37 (colored)

sync with head

Revision 1.55 / (download) - annotate - [select for diffs], Sun Feb 7 16:04:31 2010 UTC (14 years ago) by mlelstv
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1, uebayasi-xip-base
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.54: +4 -4 lines
Diff to previous 1.54 (colored)

d_psize routine returns a number of blocks or -1 on error.
d_dump routine returns 0 or an error code.

Revision 1.42.10.1 / (download) - annotate - [select for diffs], Sat Jan 30 19:05:04 2010 UTC (14 years ago) by snj
Branch: netbsd-5-0
CVS Tags: netbsd-5-0-2-RELEASE
Changes since 1.42: +5 -3 lines
Diff to previous 1.42 (colored) next main 1.43 (colored)

Pull up following revision(s) (requested by bouyer in ticket #1269):
	sys/dev/dkwedge/dk.c: revision 1.53
	sys/dev/cgd.c: revision 1.69
	sys/dev/vnd.c: revision 1.206
struct buf::b_iodone is not called at splbio() any more.
Make sure non-MPsafe iodone callbacks raise the SPL as appropriate.
Fix buffer corruption issue I noticed in dk(4), and probable similar
issues in vnd(4) and cgd(4).

Revision 1.42.6.2 / (download) - annotate - [select for diffs], Sat Jan 30 19:00:46 2010 UTC (14 years ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1
Changes since 1.42.6.1: +5 -3 lines
Diff to previous 1.42.6.1 (colored) to branchpoint 1.42 (colored)

Pull up following revision(s) (requested by bouyer in ticket #1269):
	sys/dev/cgd.c: revision 1.69
	sys/dev/vnd.c: revision 1.206
	sys/dev/dkwedge/dk.c: revision 1.53
struct buf::b_iodone is not called at splbio() any more.
Make sure non-MPsafe iodone callbacks raise the SPL as appropriate.
Fix buffer corruption issue I noticed in dk(4), and probable similar
issues in vnd(4) and cgd(4).

Revision 1.54 / (download) - annotate - [select for diffs], Mon Jan 25 14:51:03 2010 UTC (14 years, 1 month ago) by mlelstv
Branch: MAIN
Changes since 1.53: +8 -4 lines
Diff to previous 1.53 (colored)

GPTs are defined in terms of physical blocks.
- Fix reading of GPT for devices with non-512byte sectors
- Fix bounds check to use DEV_BSIZE units.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Jan 23 18:31:04 2010 UTC (14 years, 1 month ago) by bouyer
Branch: MAIN
Changes since 1.52: +5 -3 lines
Diff to previous 1.52 (colored)

struct buf::b_iodone is not called at splbio() any more.
Make sure non-MPsafe iodone callbacks raise the SPL as appropriate.
Fix buffer corruption issue I noticed in dk(4), and probable similar
issues in vnd(4) and cgd(4).

Revision 1.42.6.1 / (download) - annotate - [select for diffs], Sat Jan 9 01:25:10 2010 UTC (14 years, 1 month ago) by snj
Branch: netbsd-5
Changes since 1.42: +22 -6 lines
Diff to previous 1.42 (colored)

Pull up following revision(s) (requested by jakllsch in ticket #1213):
	sys/dev/dkwedge/dk.c: revision 1.52
Implement and use a dkminphys() that calls the parent device's minphys
function with b_dev temporarily adjusted to the parent device's dev_t.
Fixes PR/37390.

Revision 1.52 / (download) - annotate - [select for diffs], Sun Dec 27 01:37:17 2009 UTC (14 years, 1 month ago) by jakllsch
Branch: MAIN
Changes since 1.51: +22 -6 lines
Diff to previous 1.51 (colored)

Implement and use a dkminphys() that calls the parent device's minphys
function with b_dev temporarily adjusted to the parent device's dev_t.

Fixes PR/37390.

Revision 1.37.4.6 / (download) - annotate - [select for diffs], Wed Sep 16 13:37:46 2009 UTC (14 years, 5 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.5: +73 -16 lines
Diff to previous 1.37.4.5 (colored) to branchpoint 1.37 (colored)

sync with head

Revision 1.51 / (download) - annotate - [select for diffs], Tue Sep 8 21:14:33 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, matt-premerge-20091211, jym-xensuspend-nbase
Changes since 1.50: +4 -16 lines
Diff to previous 1.50 (colored)

dkwedge_list() is currently called only from ioctl routines where
l == curlwp.  Since there is no perceived case where we'd ever want
to copy the list to non-curlwp, simplify the code a bit.
(the struct lwp * argument could probably be dropped too, but
that's another commit)

Revision 1.50 / (download) - annotate - [select for diffs], Mon Sep 7 13:59:38 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.49: +4 -2 lines
Diff to previous 1.49 (colored)

grow some _KERNEL_POT

Revision 1.49 / (download) - annotate - [select for diffs], Sun Sep 6 16:18:55 2009 UTC (14 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.48: +69 -2 lines
Diff to previous 1.48 (colored)

Remove autoconf dependency on vfs and dk:
opendisk() -> kern/subr_disk_open.c
config_handle_wedges -> dev/dkwedge/dk.c

Revision 1.37.4.5 / (download) - annotate - [select for diffs], Wed Aug 19 18:47:05 2009 UTC (14 years, 6 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.4: +132 -32 lines
Diff to previous 1.37.4.4 (colored) to branchpoint 1.37 (colored)

sync with head.

Revision 1.48 / (download) - annotate - [select for diffs], Thu Aug 6 16:00:49 2009 UTC (14 years, 6 months ago) by haad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base7
Changes since 1.47: +43 -3 lines
Diff to previous 1.47 (colored)

Add support for DIOCGDISKINFO for wedges. This fixes regression after my
DIOCGDISKINFO commit to fsck/partutil.c.

Tested by me and adegroot@.

Revision 1.43.2.2 / (download) - annotate - [select for diffs], Thu Jul 23 23:31:46 2009 UTC (14 years, 7 months ago) by jym
Branch: jym-xensuspend
Changes since 1.43.2.1: +112 -39 lines
Diff to previous 1.43.2.1 (colored) to branchpoint 1.43 (colored) next main 1.44 (colored)

Sync with HEAD.

Revision 1.47 / (download) - annotate - [select for diffs], Tue Jul 21 19:41:00 2009 UTC (14 years, 7 months ago) by dyoung
Branch: MAIN
CVS Tags: jymxensuspend-base
Changes since 1.46: +91 -31 lines
Diff to previous 1.46 (colored)

Extract a lot of code from dkwedge_del(), and move it to dkwedge_detach()
to create a comprehensive detachment hook.  Let that hook run at
shutdown.  Now, 'drvctl -d dk0' actually deletes a wedge if it is
not in-use (otherwise fails w/ EBUSY), and wedges are gracefully
detached from their "parent" at shutdown.

Revision 1.37.4.4 / (download) - annotate - [select for diffs], Sat Jul 18 14:53:00 2009 UTC (14 years, 7 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.3: +23 -10 lines
Diff to previous 1.37.4.3 (colored) to branchpoint 1.37 (colored)

sync with head.

Revision 1.46 / (download) - annotate - [select for diffs], Thu Jul 2 00:56:48 2009 UTC (14 years, 7 months ago) by dyoung
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6
Changes since 1.45: +23 -10 lines
Diff to previous 1.45 (colored)

Extract subroutine dklastclose().  This is a step toward detachable
dk(4).

Revision 1.37.4.3 / (download) - annotate - [select for diffs], Sat May 16 10:41:20 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.2: +6 -6 lines
Diff to previous 1.37.4.2 (colored) to branchpoint 1.37 (colored)

sync with head

Revision 1.43.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:19:16 2009 UTC (14 years, 9 months ago) by jym
Branch: jym-xensuspend
Changes since 1.43: +6 -6 lines
Diff to previous 1.43 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.45 / (download) - annotate - [select for diffs], Tue May 12 14:19:40 2009 UTC (14 years, 9 months ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base5, yamt-nfs-mp-base4, jym-xensuspend-base
Changes since 1.44: +6 -6 lines
Diff to previous 1.44 (colored)

struct device * -> device_t, no functional changes intended.

Revision 1.44 / (download) - annotate - [select for diffs], Tue May 12 12:12:26 2009 UTC (14 years, 9 months ago) by cegger
Branch: MAIN
Changes since 1.43: +3 -3 lines
Diff to previous 1.43 (colored)

struct cfdata * -> cfdata_t, no functional changes intended.

Revision 1.37.4.2 / (download) - annotate - [select for diffs], Mon May 4 08:12:36 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37.4.1: +21 -17 lines
Diff to previous 1.37.4.1 (colored) to branchpoint 1.37 (colored)

sync with head.

Revision 1.42.4.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:17:52 2009 UTC (15 years, 1 month ago) by skrll
Branch: nick-hppapmap
Changes since 1.42: +6 -6 lines
Diff to previous 1.42 (colored) next main 1.43 (colored)

Sync with HEAD.

Revision 1.33.6.6 / (download) - annotate - [select for diffs], Sat Jan 17 13:28:53 2009 UTC (15 years, 1 month ago) by mjf
Branch: mjf-devfs2
Changes since 1.33.6.5: +4 -4 lines
Diff to previous 1.33.6.5 (colored) to branchpoint 1.33 (colored) next main 1.34 (colored)

Sync with HEAD.

Revision 1.43 / (download) - annotate - [select for diffs], Tue Jan 13 13:35:53 2009 UTC (15 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, mjf-devfs2-base
Branch point for: jym-xensuspend
Changes since 1.42: +6 -6 lines
Diff to previous 1.42 (colored)

g/c BUFQ_FOO() macros and use bufq_foo() directly.

Revision 1.33.6.5 / (download) - annotate - [select for diffs], Sun Jun 29 09:33:06 2008 UTC (15 years, 7 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.33.6.4: +1 -0 lines
Diff to previous 1.33.6.4 (colored) to branchpoint 1.33 (colored)

Sync with HEAD.

Revision 1.39.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:31:01 2008 UTC (15 years, 8 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.39: +17 -13 lines
Diff to previous 1.39 (colored) next main 1.40 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.41.2.1 / (download) - annotate - [select for diffs], Wed Jun 18 16:33:09 2008 UTC (15 years, 8 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.41: +3 -2 lines
Diff to previous 1.41 (colored) next main 1.42 (colored)

Sync with head.

Revision 1.42 / (download) - annotate - [select for diffs], Tue Jun 17 14:53:10 2008 UTC (15 years, 8 months ago) by reinoud
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, netbsd-5-base, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-1-RELEASE, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5-0, netbsd-5, matt-nb5-mips64
Changes since 1.41: +3 -2 lines
Diff to previous 1.41 (colored)

Mark a buffer `busy` in getnewbuf() when it came from the pool_cache since
its not on a free list.

Also change buf_init() to not automatically mark buffers `busy' since this
only makes sense for bufcache buffers.

Mark all buf_init'd buffers 'busy' on the places where they ought to be
flagged as such to not confuse the buffer cache.

Fixes PR 38923.

Revision 1.33.6.4 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:35 2008 UTC (15 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.33.6.3: +13 -13 lines
Diff to previous 1.33.6.3 (colored) to branchpoint 1.33 (colored)

Sync with HEAD.

Also fix build.

Revision 1.37.2.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:05:10 2008 UTC (15 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.37.2.1: +16 -13 lines
Diff to previous 1.37.2.1 (colored) to branchpoint 1.37 (colored) next main 1.38 (colored)

sync with head

Revision 1.41 / (download) - annotate - [select for diffs], Tue Jun 3 12:14:08 2008 UTC (15 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3
Branch point for: simonb-wapbl
Changes since 1.40: +15 -15 lines
Diff to previous 1.40 (colored)

dkwedge_read: don't place struct buf on the stack.

Revision 1.33.6.3 / (download) - annotate - [select for diffs], Mon Jun 2 13:23:15 2008 UTC (15 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.33.6.2: +24 -23 lines
Diff to previous 1.33.6.2 (colored) to branchpoint 1.33 (colored)

Sync with HEAD.

Revision 1.40 / (download) - annotate - [select for diffs], Sun Jun 1 11:38:26 2008 UTC (15 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.39: +6 -3 lines
Diff to previous 1.39 (colored)

Call buf_destroy when finished with an on-stack struct buf.

Spotted by LOCKDEBUG, because the condvars were already initialised.

Revision 1.37.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:33:35 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.37: +3 -9 lines
Diff to previous 1.37 (colored)

sync with head.

Revision 1.37.4.1 / (download) - annotate - [select for diffs], Fri May 16 02:23:57 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.37: +3 -9 lines
Diff to previous 1.37 (colored)

sync with head.

Revision 1.39 / (download) - annotate - [select for diffs], Sat May 3 08:23:41 2008 UTC (15 years, 9 months ago) by plunky
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.38: +3 -2 lines
Diff to previous 1.38 (colored)

after the "struct disk" is finished with, it should be
destroyed with disk_destroy(9) to stave off LOCKDEBUG
panics.

Revision 1.38 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:48 2008 UTC (15 years, 9 months ago) by martin
Branch: MAIN
Changes since 1.37: +2 -9 lines
Diff to previous 1.37 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.37 / (download) - annotate - [select for diffs], Thu Apr 10 09:31:51 2008 UTC (15 years, 10 months ago) by agc
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base
Branch point for: yamt-pf42, yamt-nfs-mp
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

Fix a minor nit in a comment

Revision 1.33.6.2 / (download) - annotate - [select for diffs], Sun Apr 6 09:58:50 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.33.6.1: +13 -2 lines
Diff to previous 1.33.6.1 (colored) to branchpoint 1.33 (colored)

- after some discussion with agc@ i agreed it would be a good idea to move
  device_unregister_* to device_deregister_* to be more like the pmf(9)
  functions, especially since a lot of the time the function calls are next
  to each other.

- add device_register_name() support for dk(4).

Revision 1.36 / (download) - annotate - [select for diffs], Sun Apr 6 08:33:31 2008 UTC (15 years, 10 months ago) by cegger
Branch: MAIN
Changes since 1.35: +18 -14 lines
Diff to previous 1.35 (colored)

use aprint_*_dev and device_xname

Revision 1.33.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:42:39 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.33: +6 -6 lines
Diff to previous 1.33 (colored)

Sync with HEAD.

Revision 1.7.2.10 / (download) - annotate - [select for diffs], Mon Mar 24 09:38:49 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.9: +5 -5 lines
Diff to previous 1.7.2.9 (colored) next main 1.8 (colored)

sync with head.

Revision 1.33.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:15:15 2008 UTC (15 years, 11 months ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.33: +3 -3 lines
Diff to previous 1.33 (colored) next main 1.34 (colored)

sync with head.

Revision 1.28.6.3 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:36 2008 UTC (15 years, 11 months ago) by matt
Branch: matt-armv6
Changes since 1.28.6.2: +5 -3 lines
Diff to previous 1.28.6.2 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored)

sync with HEAD

Revision 1.35 / (download) - annotate - [select for diffs], Fri Mar 21 21:54:59 2008 UTC (15 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, ad-socklock-base1
Changes since 1.34: +5 -5 lines
Diff to previous 1.34 (colored)

Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.

Revision 1.7.2.9 / (download) - annotate - [select for diffs], Mon Mar 17 09:14:40 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.8: +3 -3 lines
Diff to previous 1.7.2.8 (colored)

sync with head.

Revision 1.34 / (download) - annotate - [select for diffs], Tue Mar 4 13:51:18 2008 UTC (15 years, 11 months ago) by cube
Branch: MAIN
CVS Tags: matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base
Changes since 1.33: +3 -3 lines
Diff to previous 1.33 (colored)

Split device_t/softc.  Well, there's not much to split there, as the
device_t didn't contain the softc anyway.

This driver should be re-structured so it doesn't have to manage its own
set of softcs.

Revision 1.29.4.3 / (download) - annotate - [select for diffs], Mon Feb 18 21:05:37 2008 UTC (16 years ago) by mjf
Branch: mjf-devfs
Changes since 1.29.4.2: +17 -10 lines
Diff to previous 1.29.4.2 (colored) to branchpoint 1.29 (colored) next main 1.30 (colored)

Sync with HEAD.

Revision 1.7.2.8 / (download) - annotate - [select for diffs], Mon Feb 4 09:23:20 2008 UTC (16 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.7: +4 -2 lines
Diff to previous 1.7.2.7 (colored)

sync with head.

Revision 1.33 / (download) - annotate - [select for diffs], Wed Jan 30 15:42:52 2008 UTC (16 years ago) by ad
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.32: +4 -2 lines
Diff to previous 1.32 (colored)

Hold v_interlock when adjust v_writecount.

Revision 1.7.2.7 / (download) - annotate - [select for diffs], Mon Jan 21 09:42:42 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.6: +18 -11 lines
Diff to previous 1.7.2.6 (colored)

sync with head

Revision 1.28.6.2 / (download) - annotate - [select for diffs], Wed Jan 9 01:52:31 2008 UTC (16 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.28.6.1: +21 -14 lines
Diff to previous 1.28.6.1 (colored) to branchpoint 1.28 (colored)

sync with HEAD

Revision 1.31.2.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:53:59 2008 UTC (16 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.31: +15 -10 lines
Diff to previous 1.31 (colored) next main 1.32 (colored)

Sync with HEAD

Revision 1.32 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:37 2008 UTC (16 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.31: +15 -10 lines
Diff to previous 1.31 (colored)

Merge vmlocking2 to head.

Revision 1.29.4.2 / (download) - annotate - [select for diffs], Thu Dec 27 00:44:59 2007 UTC (16 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.29.4.1: +5 -3 lines
Diff to previous 1.29.4.1 (colored) to branchpoint 1.29 (colored)

Sync with HEAD.

Revision 1.30.2.2 / (download) - annotate - [select for diffs], Wed Dec 26 21:39:24 2007 UTC (16 years, 2 months ago) by ad
Branch: vmlocking2
Changes since 1.30.2.1: +5 -3 lines
Diff to previous 1.30.2.1 (colored) to branchpoint 1.30 (colored) next main 1.31 (colored)

Sync with head.

Revision 1.30.4.1 / (download) - annotate - [select for diffs], Tue Dec 11 15:25:38 2007 UTC (16 years, 2 months ago) by yamt
Branch: yamt-kmem
Changes since 1.30: +5 -3 lines
Diff to previous 1.30 (colored) next main 1.31 (colored)

sync with head.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Dec 9 20:27:56 2007 UTC (16 years, 2 months ago) by jmcneill
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, vmlocking2-base3, cube-autoconf-base, cube-autoconf
Branch point for: bouyer-xeni386
Changes since 1.30: +5 -3 lines
Diff to previous 1.30 (colored)

Merge jmcneill-pm branch.

Revision 1.29.4.1 / (download) - annotate - [select for diffs], Sat Dec 8 18:19:26 2007 UTC (16 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.29: +5 -5 lines
Diff to previous 1.29 (colored)

Sync with HEAD.

Revision 1.28.4.4 / (download) - annotate - [select for diffs], Sat Dec 8 16:21:09 2007 UTC (16 years, 2 months ago) by jmcneill
Branch: jmcneill-pm
Changes since 1.28.4.3: +4 -4 lines
Diff to previous 1.28.4.3 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored)

Rename pnp(9) -> pmf(9), as requested by many.

Revision 1.7.2.6 / (download) - annotate - [select for diffs], Fri Dec 7 17:29:42 2007 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.5: +5 -5 lines
Diff to previous 1.7.2.5 (colored)

sync with head

Revision 1.30.2.1 / (download) - annotate - [select for diffs], Tue Dec 4 13:02:57 2007 UTC (16 years, 2 months ago) by ad
Branch: vmlocking2
Changes since 1.30: +15 -10 lines
Diff to previous 1.30 (colored)

Pull the vmlocking changes into a new branch.

Revision 1.28.4.3 / (download) - annotate - [select for diffs], Tue Nov 27 19:37:03 2007 UTC (16 years, 2 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.28.4.2: +5 -5 lines
Diff to previous 1.28.4.2 (colored) to branchpoint 1.28 (colored)

Sync with HEAD. amd64 Xen support needs testing.

Revision 1.30 / (download) - annotate - [select for diffs], Mon Nov 26 19:01:37 2007 UTC (16 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-kmem-base, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base
Branch point for: yamt-kmem, vmlocking2
Changes since 1.29: +5 -5 lines
Diff to previous 1.29 (colored)

Remove the "struct lwp *" argument from all VFS and VOP interfaces.
The general trend is to remove it from all kernel interfaces and
this is a start.  In case the calling lwp is desired, curlwp should
be used.

quick consensus on tech-kern

Revision 1.28.6.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:25:57 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

sync with HEAD

Revision 1.28.4.2 / (download) - annotate - [select for diffs], Tue Nov 6 14:27:16 2007 UTC (16 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.28.4.1: +5 -3 lines
Diff to previous 1.28.4.1 (colored) to branchpoint 1.28 (colored)

Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
  three layers (class logic, device logic, bus logic), all of them being
  optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
  not suspended (even partially), device_is_enabled returns true if the
  device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
  pnp_system_resume. Before running any suspend/resume handlers, check
  that all currently attached devices support power management and bail
  out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
  can register what events they are interested in and whether the handler
  should be global or not.
- Introduce device_active API for devices to mark themselve in use from
  either the system or the device. Use this to implement the idle handling
  for audio and input devices. This is intended to replace most ad-hoc
  watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
  shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
  well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
  break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.

Revision 1.7.2.5 / (download) - annotate - [select for diffs], Sat Oct 27 11:30:13 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.4: +3 -3 lines
Diff to previous 1.7.2.4 (colored)

sync with head.

Revision 1.28.4.1 / (download) - annotate - [select for diffs], Fri Oct 26 15:44:23 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.28.8.1 / (download) - annotate - [select for diffs], Sun Oct 14 11:48:06 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored) next main 1.29 (colored)

sync with head.

Revision 1.22.2.10 / (download) - annotate - [select for diffs], Tue Oct 9 15:22:10 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.9: +4 -3 lines
Diff to previous 1.22.2.9 (colored) to branchpoint 1.22 (colored) next main 1.23 (colored)

Sync with head.

Revision 1.29 / (download) - annotate - [select for diffs], Mon Oct 8 16:41:11 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base, jmcneill-base, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: mjf-devfs
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

Merge disk init changes from the vmlocking branch. These seperate init /
destroy of 'struct disk' from attach / detach.

Revision 1.7.2.4 / (download) - annotate - [select for diffs], Mon Sep 3 14:33:34 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.3: +144 -100 lines
Diff to previous 1.7.2.3 (colored)

sync with head.

Revision 1.22.2.9 / (download) - annotate - [select for diffs], Fri Aug 24 23:28:36 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.8: +6 -5 lines
Diff to previous 1.22.2.8 (colored) to branchpoint 1.22 (colored)

Sync with buffer cache locking changes. See buf.h/vfs_bio.c for details.
Some minor portions are incomplete and needs to be verified as a whole.

Revision 1.22.2.8 / (download) - annotate - [select for diffs], Mon Aug 20 18:16:12 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.7: +37 -38 lines
Diff to previous 1.22.2.7 (colored) to branchpoint 1.22 (colored)

- Alter disk attach/detach to fix a panic when closing a vnd device.
- Sync with HEAD.

Revision 1.22.2.7 / (download) - annotate - [select for diffs], Sun Aug 19 19:24:23 2007 UTC (16 years, 6 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.6: +14 -11 lines
Diff to previous 1.22.2.6 (colored) to branchpoint 1.22 (colored)

- Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).

Revision 1.26.2.1 / (download) - annotate - [select for diffs], Wed Aug 15 13:48:15 2007 UTC (16 years, 6 months ago) by skrll
Branch: nick-csl-alignment
Changes since 1.26: +68 -101 lines
Diff to previous 1.26 (colored) next main 1.27 (colored)

Sync with HEAD.

Revision 1.28.10.2 / (download) - annotate - [select for diffs], Sun Jul 29 12:50:21 2007 UTC (16 years, 6 months ago) by ad
Branch: matt-mips64
Changes since 1.28.10.1: +1304 -0 lines
Diff to previous 1.28.10.1 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored)

It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.

Revision 1.28.10.1, Sun Jul 29 12:50:20 2007 UTC (16 years, 6 months ago) by ad
Branch: matt-mips64
Changes since 1.28: +0 -1304 lines
FILE REMOVED

file dk.c was added on branch matt-mips64 on 2007-07-29 12:50:21 +0000

Revision 1.28 / (download) - annotate - [select for diffs], Sun Jul 29 12:50:20 2007 UTC (16 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base2, yamt-x86pmap-base, nick-csl-alignment-base5, matt-mips64-base, hpcarm-cleanup
Branch point for: yamt-x86pmap, matt-mips64, matt-armv6, jmcneill-pm
Changes since 1.27: +3 -7 lines
Diff to previous 1.27 (colored)

It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.

Revision 1.27 / (download) - annotate - [select for diffs], Sat Jul 21 19:51:47 2007 UTC (16 years, 7 months ago) by ad
Branch: MAIN
Changes since 1.26: +67 -96 lines
Diff to previous 1.26 (colored)

Replace some uses of lockmgr().

Revision 1.22.2.6 / (download) - annotate - [select for diffs], Sun Jul 15 15:52:42 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.5: +95 -63 lines
Diff to previous 1.22.2.5 (colored) to branchpoint 1.22 (colored)

Sync with head.

Revision 1.22.4.1 / (download) - annotate - [select for diffs], Wed Jul 11 20:05:25 2007 UTC (16 years, 7 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.22: +85 -8 lines
Diff to previous 1.22 (colored) next main 1.23 (colored)

Sync with head.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Jul 9 21:00:32 2007 UTC (16 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: nick-csl-alignment-base, mjf-ufs-trans-base
Branch point for: nick-csl-alignment
Changes since 1.25: +3 -3 lines
Diff to previous 1.25 (colored)

Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.22.2.5 / (download) - annotate - [select for diffs], Sun Jul 1 21:47:44 2007 UTC (16 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.4: +3 -3 lines
Diff to previous 1.22.2.4 (colored) to branchpoint 1.22 (colored)

Adapt to callout API change.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jun 24 01:43:34 2007 UTC (16 years, 8 months ago) by dyoung
Branch: MAIN
Changes since 1.24: +43 -2 lines
Diff to previous 1.24 (colored)

Extract common code from i386, xen, and sparc64, creating
config_handle_wedges() and read_disk_sectors().  On x86, handle_wedges()
is a thin wrapper for config_handle_wedges().  Share opendisk()
across architectures.

Add kernel code in support of specifying a root partition by wedge
name.  E.g., root specifications "wedge:wd0a", "wedge:David's Root
Volume" are possible.  (Patches for config(1) coming soon.)

In support of moving disks between architectures (esp. i386 <->
evbmips), I've written a routine convertdisklabel() that ensures
that the raw partition is at RAW_DISK by following these steps:

        0 If we have read a disklabel that has a RAW_PART with
          p_offset == 0 and p_size != 0, then use that raw partition.

        1 If we have read a disklabel that has both partitions 'c'
          and 'd', and RAW_PART has p_offset != 0 or p_size == 0,
          but the other partition is suitable for a raw partition
          (p_offset == 0, p_size != 0), then swap the two partitions
          and use the new raw partition.

        2 If the architecture's raw partition is 'd', and if there
          is no partition 'd', but there is a partition 'c' that
          is suitable for a raw partition, then copy partition 'c'
          to partition 'd'.

        3 Determine the drive's last sector, using either the
          d_secperunit the drive reported, or by guessing (0x1fffffff).
          If we cannot read the drive's last sector, then fail.

        4 If we have read a disklabel that has no partition slot
          RAW_PART, then create a partition RAW_PART.  Make it span
          the whole drive.

        5 If there are fewer than MAXPARTITIONS partitions,
          then "slide" the unsuitable raw partition RAW_PART, and
          subsequent partitions, into partition slots RAW_PART+1
          and subsequent slots.  Create a raw partition at RAW_PART.
          Make it span the whole drive.

The convertdisklabel() procedure can probably stand to be simplified,
but it ought to deal with all but an extraordinarily broken disklabel,
now.

i386: compiled and tested, sparc64: compiled, evbmips: compiled.

Revision 1.22.2.4 / (download) - annotate - [select for diffs], Sat Jun 23 18:06:02 2007 UTC (16 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.3: +10 -5 lines
Diff to previous 1.22.2.3 (colored) to branchpoint 1.22 (colored)

- Lock v_cleanblkhd, v_dirtyblkhd, v_numoutput with the vnode's interlock.
  Get rid of global_v_numoutput_lock. Partially incomplete as the buffer
  cache locking doesn't work very well and needs an overhaul.
- Some changes to try and make softdep MP safe. Untested.

Revision 1.22.2.3 / (download) - annotate - [select for diffs], Sun Jun 17 21:30:56 2007 UTC (16 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.2: +3 -4 lines
Diff to previous 1.22.2.2 (colored) to branchpoint 1.22 (colored)

- Increase the number of thread priorities from 128 to 256. How the space
  is set up is to be revisited.
- Implement soft interrupts as kernel threads. A generic implementation
  is provided, with hooks for fast-path MD code that can run the interrupt
  threads over the top of other threads executing in the kernel.
- Split vnode::v_flag into three fields, depending on how the flag is
  locked (by the interlock, by the vnode lock, by the file system).
- Miscellaneous locking fixes and improvements.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Jun 16 18:11:33 2007 UTC (16 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored)

Unwedge the previous change. Always increment the number of rawopens if the
open is successful.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Jun 9 02:26:27 2007 UTC (16 years, 8 months ago) by dyoung
Branch: MAIN
Changes since 1.22: +43 -7 lines
Diff to previous 1.22 (colored)

Fix two bugs:

1 In dkopen(), do not leave dk_rawopens > 0 if the open ultimately
  failed for some reason.

2 Add a dkdump() implementation by Martin Husemann for writing
  system dumps to wedges.  Tiny modifications by me.  Lightly tested
  on an evbmips box.

Revision 1.22.2.2 / (download) - annotate - [select for diffs], Sun May 13 17:36:23 2007 UTC (16 years, 9 months ago) by ad
Branch: vmlocking
Changes since 1.22.2.1: +11 -19 lines
Diff to previous 1.22.2.1 (colored) to branchpoint 1.22 (colored)

- Pass the error number and residual count to biodone(), and let it handle
  setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
  of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
  create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.

Revision 1.22.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 17:50:28 2007 UTC (16 years, 11 months ago) by ad
Branch: vmlocking
Changes since 1.22: +43 -26 lines
Diff to previous 1.22 (colored)

Pull in the initial set of changes for the vmlocking branch.

Revision 1.21.2.1 / (download) - annotate - [select for diffs], Mon Mar 12 05:53:10 2007 UTC (16 years, 11 months ago) by rmind
Branch: yamt-idlelwp
Changes since 1.21: +4 -4 lines
Diff to previous 1.21 (colored) next main 1.22 (colored)

Sync with HEAD.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Mar 4 06:01:45 2007 UTC (16 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup
Branch point for: vmlocking, mjf-ufs-trans
Changes since 1.21: +4 -4 lines
Diff to previous 1.21 (colored)

Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.7.2.3 / (download) - annotate - [select for diffs], Mon Feb 26 09:10:00 2007 UTC (17 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.2: +4 -6 lines
Diff to previous 1.7.2.2 (colored)

sync with head.

Revision 1.21 / (download) - annotate - [select for diffs], Thu Feb 15 16:04:12 2007 UTC (17 years ago) by yamt
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp
Changes since 1.20: +4 -6 lines
Diff to previous 1.20 (colored)

dkwedge_discover: open a device as read-only.

Revision 1.7.2.2 / (download) - annotate - [select for diffs], Sat Dec 30 20:47:57 2006 UTC (17 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7.2.1: +18 -15 lines
Diff to previous 1.7.2.1 (colored)

sync with head.

Revision 1.18.2.3 / (download) - annotate - [select for diffs], Sun Dec 10 07:17:01 2006 UTC (17 years, 2 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.18.2.2: +14 -14 lines
Diff to previous 1.18.2.2 (colored) to branchpoint 1.18 (colored) next main 1.19 (colored)

sync with head.

Revision 1.17.2.1 / (download) - annotate - [select for diffs], Sat Nov 18 21:34:04 2006 UTC (17 years, 3 months ago) by ad
Branch: newlock2
Changes since 1.17: +11 -8 lines
Diff to previous 1.17 (colored) next main 1.18 (colored)

Sync with head.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Nov 16 01:32:50 2006 UTC (17 years, 3 months ago) by christos
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, post-newlock2-merge, newlock2-nbase, newlock2-base, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm
Changes since 1.19: +14 -14 lines
Diff to previous 1.19 (colored)

__unused removal on arguments; approved by core.

Revision 1.18.2.2 / (download) - annotate - [select for diffs], Sun Oct 22 06:05:35 2006 UTC (17 years, 4 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.18.2.1: +1262 -0 lines
Diff to previous 1.18.2.1 (colored) to branchpoint 1.18 (colored)

sync with head

Revision 1.19 / (download) - annotate - [select for diffs], Thu Oct 12 01:30:57 2006 UTC (17 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2
Changes since 1.18: +15 -12 lines
Diff to previous 1.18 (colored)

- sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386

Revision 1.18.2.1, Mon Sep 18 07:47:13 2006 UTC (17 years, 5 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.18: +0 -1259 lines
FILE REMOVED

file dk.c was added on branch yamt-splraiseipl on 2006-10-22 06:05:35 +0000

Revision 1.18 / (download) - annotate - [select for diffs], Mon Sep 18 07:47:13 2006 UTC (17 years, 5 months ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-splraiseipl-base
Branch point for: yamt-splraiseipl
Changes since 1.17: +3 -3 lines
Diff to previous 1.17 (colored)

Typo in comment.

Revision 1.11.2.1 / (download) - annotate - [select for diffs], Sat Sep 9 02:49:44 2006 UTC (17 years, 5 months ago) by rpaulo
Branch: rpaulo-netinet-merge-pcb
Changes since 1.11: +54 -24 lines
Diff to previous 1.11 (colored) next main 1.12 (colored)

sync with head

Revision 1.12.2.4 / (download) - annotate - [select for diffs], Sun Sep 3 15:23:56 2006 UTC (17 years, 5 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.12.2.3: +8 -8 lines
Diff to previous 1.12.2.3 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored)

sync with head.

Revision 1.17 / (download) - annotate - [select for diffs], Thu Aug 24 21:57:11 2006 UTC (17 years, 6 months ago) by dbj
Branch: MAIN
CVS Tags: yamt-pdpolicy-base9, yamt-pdpolicy-base8, rpaulo-netinet-merge-pcb-base
Branch point for: newlock2
Changes since 1.16: +8 -8 lines
Diff to previous 1.16 (colored)

avoid diagnostic panic if both blk and chr wedge are open at the same time

Revision 1.12.2.3 / (download) - annotate - [select for diffs], Fri Aug 11 15:43:59 2006 UTC (17 years, 6 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.12.2.2: +3 -3 lines
Diff to previous 1.12.2.2 (colored) to branchpoint 1.12 (colored)

sync with head

Revision 1.16 / (download) - annotate - [select for diffs], Fri Jul 21 16:48:48 2006 UTC (17 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pdpolicy-base7, abandoned-netbsd-4-base, abandoned-netbsd-4
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored)

- Use the LWP cached credentials where sane.
- Minor cosmetic changes.

Revision 1.7.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 15:02:46 2006 UTC (17 years, 8 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.7: +68 -38 lines
Diff to previous 1.7 (colored)

sync with head.

Revision 1.11.4.2 / (download) - annotate - [select for diffs], Thu Jun 1 22:36:20 2006 UTC (17 years, 8 months ago) by kardel
Branch: simonb-timecounters
CVS Tags: simonb-timcounters-final
Changes since 1.11.4.1: +4 -3 lines
Diff to previous 1.11.4.1 (colored) to branchpoint 1.11 (colored) next main 1.12 (colored)

Sync with head.

Revision 1.12.6.1 / (download) - annotate - [select for diffs], Wed May 24 15:50:07 2006 UTC (17 years, 9 months ago) by tron
Branch: peter-altq
Changes since 1.12: +34 -16 lines
Diff to previous 1.12 (colored) next main 1.13 (colored)

Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.

Revision 1.12.2.2 / (download) - annotate - [select for diffs], Wed May 24 10:57:37 2006 UTC (17 years, 9 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.12.2.1: +4 -3 lines
Diff to previous 1.12.2.1 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.15 / (download) - annotate - [select for diffs], Sun May 14 21:42:27 2006 UTC (17 years, 9 months ago) by elad
Branch: MAIN
CVS Tags: yamt-pdpolicy-base6, yamt-pdpolicy-base5, simonb-timecounters-base, gdamore-uart-base, gdamore-uart, chap-midi-nbase, chap-midi-base, chap-midi
Changes since 1.14: +4 -3 lines
Diff to previous 1.14 (colored)

integrate kauth.

Revision 1.12.4.3 / (download) - annotate - [select for diffs], Sat May 6 23:31:27 2006 UTC (17 years, 9 months ago) by christos
Branch: elad-kernelauth
Changes since 1.12.4.2: +3 -2 lines
Diff to previous 1.12.4.2 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored)

- Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
  that need it.

Approved by core.

Revision 1.11.4.1 / (download) - annotate - [select for diffs], Sat Apr 22 11:38:51 2006 UTC (17 years, 10 months ago) by simonb
Branch: simonb-timecounters
Changes since 1.11: +46 -17 lines
Diff to previous 1.11 (colored)

Sync with head.

Revision 1.12.4.2 / (download) - annotate - [select for diffs], Wed Apr 19 03:24:34 2006 UTC (17 years, 10 months ago) by elad
Branch: elad-kernelauth
Changes since 1.12.4.1: +32 -15 lines
Diff to previous 1.12.4.1 (colored) to branchpoint 1.12 (colored)

sync with head.

Revision 1.12.2.1 / (download) - annotate - [select for diffs], Tue Apr 11 11:55:13 2006 UTC (17 years, 10 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.12: +32 -15 lines
Diff to previous 1.12 (colored)

sync with head

Revision 1.14 / (download) - annotate - [select for diffs], Thu Apr 6 17:55:43 2006 UTC (17 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-pdpolicy-base4, elad-kernelauth-base
Changes since 1.13: +7 -13 lines
Diff to previous 1.13 (colored)

A couple of fixes from dbj@:
- dkwedge_del(): Don't compute a minor number based on partitions, because
  wedges don't have partitions.  Just provide the unit number to vdevgone().
- dkopen(): Make sure we release all of the locks we've acquired should
  opening the parent device fail.

Revision 1.13 / (download) - annotate - [select for diffs], Thu Apr 6 17:17:45 2006 UTC (17 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.12: +27 -4 lines
Diff to previous 1.12 (colored)

Implement dksize().

Revision 1.12.4.1 / (download) - annotate - [select for diffs], Wed Mar 8 01:44:48 2006 UTC (17 years, 11 months ago) by elad
Branch: elad-kernelauth
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored)

Adapt to kernel authorization KPI.

Revision 1.12 / (download) - annotate - [select for diffs], Wed Mar 1 12:38:13 2006 UTC (17 years, 11 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, peter-altq, elad-kernelauth
Changes since 1.11: +16 -4 lines
Diff to previous 1.11 (colored)

merge yamt-uio_vmspace branch.

- use vmspace rather than proc or lwp where appropriate.
  the latter is more natural to specify an address space.
  (and less likely to be abused for random purposes.)
- fix a swdmover race.

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Sun Jan 15 10:02:48 2006 UTC (18 years, 1 month ago) by yamt
Branch: yamt-uio_vmspace
Changes since 1.10.2.1: +4 -4 lines
Diff to previous 1.10.2.1 (colored) next main 1.11 (colored)

sync with head.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Jan 4 10:13:05 2006 UTC (18 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5
Branch point for: simonb-timecounters, rpaulo-netinet-merge-pcb
Changes since 1.10: +4 -4 lines
Diff to previous 1.10 (colored)

- add simple functions to allocate/free a buffer for i/o.
- make bufpool static.

Revision 1.10.2.1 / (download) - annotate - [select for diffs], Sat Dec 31 12:37:20 2005 UTC (18 years, 1 month ago) by yamt
Branch: yamt-uio_vmspace
Changes since 1.10: +16 -4 lines
Diff to previous 1.10 (colored)

adapt some random parts of kernel to uio_vmspace.

Revision 1.10 / (download) - annotate - [select for diffs], Sun Dec 11 12:21:20 2005 UTC (18 years, 2 months ago) by christos
Branch: MAIN
Branch point for: yamt-uio_vmspace
Changes since 1.9: +12 -12 lines
Diff to previous 1.9 (colored)

merge ktrace-lwp.

Revision 1.2.2.5 / (download) - annotate - [select for diffs], Thu Nov 10 14:03:54 2005 UTC (18 years, 3 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.4: +15 -15 lines
Diff to previous 1.2.2.4 (colored) next main 1.3 (colored)

Sync with HEAD. Here we go again...

Revision 1.9 / (download) - annotate - [select for diffs], Sat Oct 15 17:29:12 2005 UTC (18 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, thorpej-vnode-attr-base, thorpej-vnode-attr, ktrace-lwp-base
Changes since 1.8: +12 -12 lines
Diff to previous 1.8 (colored)

- change the way to specify a bufq strategy.  (by string rather than by number)
- rather than embedding bufq_state in driver softc,
  have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
  from sys/bufq.h to sys/bufq_impl.h.
  (is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c.  (not tested)

Revision 1.8 / (download) - annotate - [select for diffs], Wed Sep 28 18:25:19 2005 UTC (18 years, 4 months ago) by nathanw
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored)

Set sc->sc_cfdata.cf_fstate to FSTATE_STAR rather than FSTATE_NOTFOUND
so that config_detach() doesn't panic.

(XXX this points to some disagreement between config_attach_pseudo()
and config_detach() over the correct role of pseudo-device cfdata)

Revision 1.7 / (download) - annotate - [select for diffs], Sun May 29 22:13:33 2005 UTC (18 years, 8 months ago) by christos
Branch: MAIN
Branch point for: yamt-lazymbuf
Changes since 1.6: +4 -4 lines
Diff to previous 1.6 (colored)

avoid variable shadowing.

Revision 1.5.4.1 / (download) - annotate - [select for diffs], Fri Apr 29 11:28:46 2005 UTC (18 years, 9 months ago) by kent
Branch: kent-audio2
Changes since 1.5: +6 -6 lines
Diff to previous 1.5 (colored) next main 1.6 (colored)

sync with -current

Revision 1.5.6.1 / (download) - annotate - [select for diffs], Sat Mar 19 08:33:58 2005 UTC (18 years, 11 months ago) by yamt
Branch: yamt-km
Changes since 1.5: +6 -6 lines
Diff to previous 1.5 (colored) next main 1.6 (colored)

sync with head.  xen and whitespace.  xen part is not finished.

Revision 1.2.2.4 / (download) - annotate - [select for diffs], Fri Mar 4 16:41:05 2005 UTC (18 years, 11 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.3: +6 -6 lines
Diff to previous 1.2.2.3 (colored)

Sync with HEAD.

Hi Perry!

Revision 1.6 / (download) - annotate - [select for diffs], Sun Feb 27 00:26:59 2005 UTC (18 years, 11 months ago) by perry
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, kent-audio2-base
Changes since 1.5: +6 -6 lines
Diff to previous 1.5 (colored)

nuke trailing whitespace

Revision 1.2.2.3 / (download) - annotate - [select for diffs], Tue Nov 2 07:51:19 2004 UTC (19 years, 3 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.2: +86 -16 lines
Diff to previous 1.2.2.2 (colored)

Sync with HEAD.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Oct 28 07:07:40 2004 UTC (19 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-km-base2, yamt-km-base, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Changes since 1.4: +4 -2 lines
Diff to previous 1.4 (colored)

move buffer queue related stuffs from buf.h to their own header, bufq.h.

Revision 1.4 / (download) - annotate - [select for diffs], Tue Oct 26 22:50:16 2004 UTC (19 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.3: +14 -2 lines
Diff to previous 1.3 (colored)

Implement the DIOCCACHESYNC ioctl; we just pass it along to the parent.

Revision 1.3 / (download) - annotate - [select for diffs], Sat Oct 23 17:16:45 2004 UTC (19 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.2: +72 -16 lines
Diff to previous 1.2 (colored)

- Adjust minor number usage for wedges; minor number directly maps to
  unit now.  Don't pretend wedges have "partitions".
- Fix a buglet related to opening char and block devices of a wedge
  at the same time.
- Add dkwedge_set_bootwedge(), that MD code can call to set booted_device
  and booted_wedge appropriately when MD code knows the parent disk and
  the start/size of the wedge that was booted from.

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Tue Oct 19 15:56:45 2004 UTC (19 years, 4 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2.2.1: +1159 -0 lines
Diff to previous 1.2.2.1 (colored)

Sync with HEAD

Revision 1.2.2.1, Fri Oct 15 04:42:09 2004 UTC (19 years, 4 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.2: +0 -1159 lines
FILE REMOVED

file dk.c was added on branch ktrace-lwp on 2004-10-19 15:56:45 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Fri Oct 15 04:42:09 2004 UTC (19 years, 4 months ago) by thorpej
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.1: +116 -17 lines
Diff to previous 1.1 (colored)

Use config_attach_pseudo() to create device instances in the device
tree for created wedges.  This is necessary for setroot().

Revision 1.1 / (download) - annotate - [select for diffs], Mon Oct 4 01:07:25 2004 UTC (19 years, 4 months ago) by thorpej
Branch: MAIN

Move wedge code to a subdirectory, as suggested by Christos.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>