openbsd
2 years agoUpdate libexpat to 2.4.6. This fixes CVE-2022-25235, CVE-2022-25236
bluhm [Tue, 22 Feb 2022 10:53:10 +0000 (10:53 +0000)]
Update libexpat to 2.4.6.  This fixes CVE-2022-25235, CVE-2022-25236
CVE-2022-25313, CVE-2022-25314, and CVE-2022-25315.  Relevant for
OpenBSD are security fixes #558 #559 #560 #561 #562 and bug fixes
#566.  No library bump necessary.
OK tb@

2 years agodon't hide the mtu on "bridge" interfaces.
dlg [Tue, 22 Feb 2022 09:55:54 +0000 (09:55 +0000)]
don't hide the mtu on "bridge" interfaces.

interfaces like vxlan and nvgre have bridges inside them and respond
to bridge ioctls, but they are still interfaces that handle l3
traffic so the mtu means something on them. if we don't want bridge
to show an mtu, that can be done by bridge(4) instead of having
ifconfig make assumptions like this.

noticed by jason tubnor
ok deraadt@ claudio@

2 years agodisable further calls to unveil(2)
mestre [Tue, 22 Feb 2022 08:20:35 +0000 (08:20 +0000)]
disable further calls to unveil(2)

pointed out by brynet@

2 years agoClear frame pointer in cpu_fork() on riscv64
visa [Tue, 22 Feb 2022 07:47:46 +0000 (07:47 +0000)]
Clear frame pointer in cpu_fork() on riscv64

This ensures the chain of call frames is terminated properly, preventing
errors when unwinding kernel stacks.

OK miod@ kettenis@

2 years agoddb: Improve stack unwinding on riscv64
visa [Tue, 22 Feb 2022 07:46:04 +0000 (07:46 +0000)]
ddb: Improve stack unwinding on riscv64

Add logic to navigate across trapframes. Stop unwinding if the frame
pointer is clearly bad. Adjust output, and tweak details.

OK miod@ kettenis@

2 years agoMake audio(4) event filters MP-safe
visa [Tue, 22 Feb 2022 07:34:06 +0000 (07:34 +0000)]
Make audio(4) event filters MP-safe

Add f_modify and f_process callbacks, and initialize the knote lists
to use audio_lock. This makes audio_lock cover the device's knote
processing.

OK mpi@

2 years agoadd some more tunnels to the list of interfaces that rely on routing.
dlg [Tue, 22 Feb 2022 06:44:40 +0000 (06:44 +0000)]
add some more tunnels to the list of interfaces that rely on routing.

2 years agoBump the number of wait_until iterations, in the hopes of making the
anton [Tue, 22 Feb 2022 06:04:46 +0000 (06:04 +0000)]
Bump the number of wait_until iterations, in the hopes of making the
tests less flaky.

2 years agorepair sys/param.h namespace list
deraadt [Tue, 22 Feb 2022 03:40:55 +0000 (03:40 +0000)]
repair sys/param.h namespace list

2 years agoThe include of sys/ktrace.h will require sys/types.h, so document this.
deraadt [Tue, 22 Feb 2022 03:35:36 +0000 (03:35 +0000)]
The include of sys/ktrace.h will require sys/types.h, so document this.

2 years agoThe FILL_KPROC() macro should be useable in situations where sys/param.h
deraadt [Tue, 22 Feb 2022 03:34:51 +0000 (03:34 +0000)]
The FILL_KPROC() macro should be useable in situations where sys/param.h
hasn't been included, so the use of MIN() is not legit, and a local
version is required.

2 years agoneed a local nitems() definition
deraadt [Tue, 22 Feb 2022 03:33:12 +0000 (03:33 +0000)]
need a local nitems() definition

2 years agoneed a local nitems() definition
deraadt [Tue, 22 Feb 2022 03:31:50 +0000 (03:31 +0000)]
need a local nitems() definition

2 years agoDelete unnecessary #includes of <netinet6/ip6protosw.h>: some never
guenther [Tue, 22 Feb 2022 01:35:40 +0000 (01:35 +0000)]
Delete unnecessary #includes of <netinet6/ip6protosw.h>: some never
needed it and some no longer need it after moving the externs from
there to <sys/protosw.h>

ok jsg@

2 years agoDelete unnecessary #includes of <sys/domain.h> and/or <sys/protosw.h>
guenther [Tue, 22 Feb 2022 01:15:01 +0000 (01:15 +0000)]
Delete unnecessary #includes of <sys/domain.h> and/or <sys/protosw.h>

net/if_pppx.c pointed out by jsg@
ok gnezdo@ deraadt@ jsg@ mpi@ millert@

2 years agoMove declarations of ip6_protox[] and inet6sw[] to <sys/protosw.h>
guenther [Tue, 22 Feb 2022 01:02:57 +0000 (01:02 +0000)]
Move declarations of ip6_protox[] and inet6sw[] to <sys/protosw.h>
where the IPv4 versions have been forever

ok gnezdo@ deraadt@ jsg@ mpi@ millert@

2 years agopfctlinput() is already declared in <sys/protosw.h>, which is
guenther [Tue, 22 Feb 2022 01:01:02 +0000 (01:01 +0000)]
pfctlinput() is already declared in <sys/protosw.h>, which is
more specific and appropriate, so delete it here

ok gnezdo@ deraadt@ jsg@ mpi@ millert@

2 years agounveil(2) "/dev" read-only instead of using chroot(2)/chdir(2). after calling
mestre [Mon, 21 Feb 2022 19:49:46 +0000 (19:49 +0000)]
unveil(2) "/dev" read-only instead of using chroot(2)/chdir(2). after calling
the latter the program then also calls stat(2) and therefore it never actually
worked correctly since they were added almost 20 years now.

while here remove an implementation detail from the manpage which covered the
chroot part.

pointed out by and ok deraadt@

2 years agoConvert KVA allocation to km_alloc(9).
kettenis [Mon, 21 Feb 2022 19:22:21 +0000 (19:22 +0000)]
Convert KVA allocation to km_alloc(9).

ok mpi@

2 years agoConvert KVA allocation to km_alloc(9).
kettenis [Mon, 21 Feb 2022 19:18:52 +0000 (19:18 +0000)]
Convert KVA allocation to km_alloc(9).

ok mpi@

2 years agoConvert KVA allocation to km_alloc(9).
kettenis [Mon, 21 Feb 2022 19:17:51 +0000 (19:17 +0000)]
Convert KVA allocation to km_alloc(9).

ok gkoehler@

2 years agoConvert KVA allocation to km_alloc(9).
kettenis [Mon, 21 Feb 2022 19:15:58 +0000 (19:15 +0000)]
Convert KVA allocation to km_alloc(9).

ok mpi@

2 years agoFactor out alert handing code in the legacy stack.
jsing [Mon, 21 Feb 2022 18:22:20 +0000 (18:22 +0000)]
Factor out alert handing code in the legacy stack.

Pull out the code that processes incoming alerts - a chunk of the
complexity is due to the fact that in TLSv1.2 and earlier, alerts can be
fragmented across multiple records or multiple alerts can be delivered
in a single record.

In DTLS there is no way that we can reassemble fragmented alerts (although
the RFC is silent on this), however we could have multiple alerts in the
same record. This change means that we will handle this situation more
appropriately and if we encounter a fragmented alert we will now treat this
as a decode error (instead of silently ignoring it).

ok beck@ tb@

2 years agoGrab vmobjlocks with RW_DUPOK in vm_obj_wire() to silence WITNESS
kn [Mon, 21 Feb 2022 16:08:36 +0000 (16:08 +0000)]
Grab vmobjlocks with RW_DUPOK in vm_obj_wire() to silence WITNESS

The drm subsystem implements graphics buffers as uvm objects backed by
anonymous memory, thus drm locks and aobj locks share the same "vmobjlock"
type.

uvm_obj_wire() is only called from sys/dev/pci/drm/, so instead of changing
drm's lock init/alloc routines to mark allow duplicate locks in general,
enter uvm's vmobjlock with RW_DUPOK in this function to allow duplicate
lock types per thread in this specific call path alone.

Fixes the following WITNESS report when booting/starting X (as seen already
in other unrelated bugs@ reports):

wsdisplay0: screen 1-5 added (std, vt100 emulation)
witness: acquiring duplicate lock of same type: "&uobj->vmobjlock"
1st uobjlk
2nd uobjlk
Starting stack trace...
witness_checkorder(fffffd83b625f9b0,9,0) at witness_checkorder+0x8ac
rw_enter(fffffd83b625f9a0,1) at rw_enter+0x68
uvm_obj_wire(fffffd843c39e948,0,40000,ffff800033b70428) at uvm_obj_wire+0x46
shmem_get_pages(ffff800008008500) at shmem_get_pages+0xb8
__i915_gem_object_get_pages(ffff800008008500) at __i915_gem_object_get_pages+0x6d
i915_gem_fault(ffff800008008500,ffff800033b707c0,10009b000,a43d6b1c000,ffff800033b70740,1,35ba896911df1241,ffff8000000aa078,ffff8000000aa178) at i915_gem_fault+0x203
drm_fault(ffff800033b707c0,a43d6b1c000,ffff800033b70740,1,0,0,7eca45006f70ee0,ffff800033b707c0) at drm_fault+0x156
uvm_fault(fffffd843a7cf480,a43d6b1c000,0,2) at uvm_fault+0x179
upageflttrap(ffff800033b70920,a43d6b1c000) at upageflttrap+0x62
usertrap(ffff800033b70920) at usertrap+0x129
recall_trap() at recall_trap+0x8
end of kernel
end trace frame: 0x7f7ffffdc7c0, count: 246
End of stack trace.

Input kettenis
OK mpi

2 years agoaligend -> aligned
jsg [Mon, 21 Feb 2022 14:26:19 +0000 (14:26 +0000)]
aligend -> aligned

2 years agoambigus -> ambiguous
jsg [Mon, 21 Feb 2022 14:21:58 +0000 (14:21 +0000)]
ambigus -> ambiguous

2 years agoanscestors -> ancestors
jsg [Mon, 21 Feb 2022 14:16:49 +0000 (14:16 +0000)]
anscestors -> ancestors

2 years agoconsisitent -> consistent
jsg [Mon, 21 Feb 2022 13:51:04 +0000 (13:51 +0000)]
consisitent -> consistent

2 years agocululative -> cumulative
jsg [Mon, 21 Feb 2022 13:32:45 +0000 (13:32 +0000)]
cululative -> cumulative

2 years agodifferenent -> different
jsg [Mon, 21 Feb 2022 12:53:39 +0000 (12:53 +0000)]
differenent -> different

2 years agodisatcher -> dispatcher
jsg [Mon, 21 Feb 2022 12:46:59 +0000 (12:46 +0000)]
disatcher -> dispatcher

2 years agodiviedr -> divider
jsg [Mon, 21 Feb 2022 12:41:39 +0000 (12:41 +0000)]
diviedr -> divider

2 years agodmammem -> dmamem
jsg [Mon, 21 Feb 2022 12:36:21 +0000 (12:36 +0000)]
dmammem -> dmamem

2 years agoenries -> entries
jsg [Mon, 21 Feb 2022 12:22:21 +0000 (12:22 +0000)]
enries -> entries

2 years agoentried -> entries
jsg [Mon, 21 Feb 2022 12:18:54 +0000 (12:18 +0000)]
entried -> entries

2 years agoentris -> entries
jsg [Mon, 21 Feb 2022 12:16:55 +0000 (12:16 +0000)]
entris -> entries

2 years agoexpliclitly -> explicitly
jsg [Mon, 21 Feb 2022 12:09:15 +0000 (12:09 +0000)]
expliclitly -> explicitly

2 years agofutther -> further
jsg [Mon, 21 Feb 2022 11:43:02 +0000 (11:43 +0000)]
futther -> further

2 years agoignorint -> ignoring
jsg [Mon, 21 Feb 2022 11:20:34 +0000 (11:20 +0000)]
ignorint -> ignoring

2 years agoimplenent -> implement
jsg [Mon, 21 Feb 2022 11:15:09 +0000 (11:15 +0000)]
implenent -> implement

2 years agoindependednt -> independent, let's -> lets
jsg [Mon, 21 Feb 2022 11:09:52 +0000 (11:09 +0000)]
independednt -> independent, let's -> lets

2 years agoConstify struct cfattach.
mpi [Mon, 21 Feb 2022 11:03:39 +0000 (11:03 +0000)]
Constify struct cfattach.

2 years agoinitializion -> initialization
jsg [Mon, 21 Feb 2022 10:57:58 +0000 (10:57 +0000)]
initializion -> initialization

2 years agoinitiailze -> initialize
jsg [Mon, 21 Feb 2022 10:51:36 +0000 (10:51 +0000)]
initiailze -> initialize

2 years agoinstructinos -> instructions
jsg [Mon, 21 Feb 2022 10:44:58 +0000 (10:44 +0000)]
instructinos -> instructions

2 years agointerrunts -> interrupts
jsg [Mon, 21 Feb 2022 10:38:50 +0000 (10:38 +0000)]
interrunts -> interrupts

2 years agointerting -> inserting
jsg [Mon, 21 Feb 2022 10:26:20 +0000 (10:26 +0000)]
interting -> inserting

2 years agoConstify struct cfattach.
mpi [Mon, 21 Feb 2022 10:24:28 +0000 (10:24 +0000)]
Constify struct cfattach.

2 years agoiommmu -> iommu
jsg [Mon, 21 Feb 2022 10:20:51 +0000 (10:20 +0000)]
iommmu -> iommu

2 years agolenghy -> lengthy
jsg [Mon, 21 Feb 2022 10:06:35 +0000 (10:06 +0000)]
lenghy -> lengthy

2 years agomappiing -> mapping
jsg [Mon, 21 Feb 2022 09:57:18 +0000 (09:57 +0000)]
mappiing -> mapping

2 years agosplitted -> split, necesssary -> necessary
jsg [Mon, 21 Feb 2022 08:50:18 +0000 (08:50 +0000)]
splitted -> split, necesssary -> necessary

2 years agoonbard -> onboard
jsg [Mon, 21 Feb 2022 08:27:51 +0000 (08:27 +0000)]
onbard -> onboard

2 years agoopearting -> operating
jsg [Mon, 21 Feb 2022 08:16:08 +0000 (08:16 +0000)]
opearting -> operating

2 years agoreceice -> receive
jsg [Mon, 21 Feb 2022 07:15:42 +0000 (07:15 +0000)]
receice -> receive

2 years agocap the daemon login class' datasize at either 1G or 4G depending on
robert [Mon, 21 Feb 2022 06:38:57 +0000 (06:38 +0000)]
cap the daemon login class' datasize at either 1G or 4G depending on
the architecture and set the bgpd class' datasize to either 16G or 1G

ok sthen@ and discussed with many

2 years agotempterature -> temperature
jsg [Mon, 21 Feb 2022 05:54:35 +0000 (05:54 +0000)]
tempterature -> temperature

2 years agoin input, clear the address union before putting an ipv4 address in it.
dlg [Mon, 21 Feb 2022 05:19:07 +0000 (05:19 +0000)]
in input, clear the address union before putting an ipv4 address in it.

the whole vxlan address is used for lookups in the RB tree, so any
garbage on the stack where the address sits could confuse the lookup.
it looks like i was lucky before, but if you receive vxlan over
ipsec you are less lucky.

found by and fix tested by jason tubnor.

2 years agoIf the signature on an icmp echo reply doesn't match, don't count it as
jmatthew [Mon, 21 Feb 2022 03:50:46 +0000 (03:50 +0000)]
If the signature on an icmp echo reply doesn't match, don't count it as
a reply we've received, and print out the source address and sequence number
as that might help the user understand what's going on.

ok florian@ dlg@

2 years agosync
deraadt [Mon, 21 Feb 2022 00:56:06 +0000 (00:56 +0000)]
sync

2 years agoUSE_CCACHE does not add a dependency
kn [Mon, 21 Feb 2022 00:37:47 +0000 (00:37 +0000)]
USE_CCACHE does not add a dependency

OK jca sthen

2 years agovxlan sending to a mcast group needs an interface specified for that group
dlg [Mon, 21 Feb 2022 00:36:22 +0000 (00:36 +0000)]
vxlan sending to a mcast group needs an interface specified for that group

ok anton@

2 years agomutibyte -> multibyte
jsg [Mon, 21 Feb 2022 00:22:03 +0000 (00:22 +0000)]
mutibyte -> multibyte

2 years agodmameme -> dmamem
jsg [Sun, 20 Feb 2022 23:14:36 +0000 (23:14 +0000)]
dmameme -> dmamem

2 years agoi missed a word.
dlg [Sun, 20 Feb 2022 23:11:01 +0000 (23:11 +0000)]
i missed a word.

some other tweaks for readability or brevity while here

2 years agosync
deraadt [Sun, 20 Feb 2022 22:50:49 +0000 (22:50 +0000)]
sync

2 years agoOnly use /snapshots dir when -current
afresh1 [Sun, 20 Feb 2022 21:53:04 +0000 (21:53 +0000)]
Only use /snapshots dir when -current

Not during release, -stable, or -beta.

This diverges from how packages work and how things were done in the past
where -beta also looked in /snapshots.

Discussed in icb.
OK deraadt@

2 years agowe should be 7.1-beta not 7.1-current
sthen [Sun, 20 Feb 2022 20:54:29 +0000 (20:54 +0000)]
we should be 7.1-beta not 7.1-current

2 years ago7.2 packages key
naddy [Sun, 20 Feb 2022 20:28:57 +0000 (20:28 +0000)]
7.2 packages key

2 years agospace required between macro argument and punctuation;
jmc [Sun, 20 Feb 2022 20:01:04 +0000 (20:01 +0000)]
space required between macro argument and punctuation;

2 years agoAdd missing newlines in two DPRINTFs (from Matthew Martin)
tb [Sun, 20 Feb 2022 19:59:29 +0000 (19:59 +0000)]
Add missing newlines in two DPRINTFs (from Matthew Martin)
Tweak capitalization (from jmc)

2 years agoFix vi recovery mode.
tb [Sun, 20 Feb 2022 19:45:51 +0000 (19:45 +0000)]
Fix vi recovery mode.

From trondd, tested by various

ok afresh1

2 years agoaplcpu(4)
kettenis [Sun, 20 Feb 2022 19:33:48 +0000 (19:33 +0000)]
aplcpu(4)

2 years agoAdd aplcpu(4), a driver to control the CPU performance levels on Apple SoCs.
kettenis [Sun, 20 Feb 2022 19:25:57 +0000 (19:25 +0000)]
Add aplcpu(4), a driver to control the CPU performance levels on Apple SoCs.

ok gnezdo@

2 years agoRemove downloaded SHA256.sig if signature validation fails
afresh1 [Sun, 20 Feb 2022 19:24:19 +0000 (19:24 +0000)]
Remove downloaded SHA256.sig if signature validation fails

Without the "noclobber" setting we would have overwitten with an empty
file and best not to leave a failed file around.

Noticed by florian@

2 years agoNameservers in router advertisements are struct in6_addr, not
florian [Sun, 20 Feb 2022 19:18:16 +0000 (19:18 +0000)]
Nameservers in router advertisements are struct in6_addr, not
struct sockaddr_in6. Copy the right amount of data so that we don't
overflow the destination and potentially crash when we receive more
than 7 nameservers.

This is going to be 7.0 errata 014.

OK deraadt

2 years agoFix a buffer overread in OAEP padding removal
tb [Sun, 20 Feb 2022 19:16:34 +0000 (19:16 +0000)]
Fix a buffer overread in OAEP padding removal

This only occurs on very small payloads and tightly allocated buffers
that don't usually occur in practice.

This is OpenSSL f61c6804

ok inoguchi jsing

2 years agosync
deraadt [Sun, 20 Feb 2022 18:23:28 +0000 (18:23 +0000)]
sync

2 years agoShow summary even if no firmware are detected or installed
afresh1 [Sun, 20 Feb 2022 18:06:05 +0000 (18:06 +0000)]
Show summary even if no firmware are detected or installed

OK florian@

2 years ago7.2 base key
deraadt [Sun, 20 Feb 2022 17:21:56 +0000 (17:21 +0000)]
7.2 base key

2 years agomove to 7.1-beta
deraadt [Sun, 20 Feb 2022 17:11:05 +0000 (17:11 +0000)]
move to 7.1-beta

2 years agoaudo -> audio
jsg [Sun, 20 Feb 2022 15:39:55 +0000 (15:39 +0000)]
audo -> audio

2 years agoJohn P. Wittkowski -> John P. Wittkoski
jsg [Sun, 20 Feb 2022 15:21:15 +0000 (15:21 +0000)]
John P. Wittkowski -> John P. Wittkoski
matches adb.c and adb(4)

2 years agoWildire -> Wildfire
jsg [Sun, 20 Feb 2022 15:01:03 +0000 (15:01 +0000)]
Wildire -> Wildfire

2 years agoTest OBJ_obj2txt() with NULL and short buffers.
jsing [Sun, 20 Feb 2022 13:47:53 +0000 (13:47 +0000)]
Test OBJ_obj2txt() with NULL and short buffers.

2 years agoAproximate realpath on the expected output by deduping leading slashes.
dtucker [Sun, 20 Feb 2022 03:47:26 +0000 (03:47 +0000)]
Aproximate realpath on the expected output by deduping leading slashes.
Fixes test failure when user's home dir is / which is possible in some
portable configurations.

2 years agosys/proc.h requires sys/signal.h (will become visible when sys/param.h
deraadt [Sun, 20 Feb 2022 00:09:29 +0000 (00:09 +0000)]
sys/proc.h requires sys/signal.h (will become visible when sys/param.h
is removed)

2 years agoThe suspend/resume code sleeps-not-allowed phases are protected with
deraadt [Sat, 19 Feb 2022 23:57:09 +0000 (23:57 +0000)]
The suspend/resume code sleeps-not-allowed phases are protected with
cold=2.  Use the same strategy in a a similar phase during hibernate.

2 years agotsleep() prints a stack trace when cold==2. The suspend/resume code has
deraadt [Sat, 19 Feb 2022 23:56:18 +0000 (23:56 +0000)]
tsleep() prints a stack trace when cold==2.  The suspend/resume code has
phases where sleeps are not allowed, and this used to discover it.
msleep() needs the same check.

2 years agodon't refer to disks as daughter devices
jsg [Sat, 19 Feb 2022 23:45:51 +0000 (23:45 +0000)]
don't refer to disks as daughter devices
ok jmc@

2 years agoThe 'e' command of the simple editor has not provided editing of
krw [Sat, 19 Feb 2022 22:08:27 +0000 (22:08 +0000)]
The 'e' command of the simple editor has not provided editing of
'interleave' or 'rpm' since the disklabel fields d_interleave and
d_rpm were 'recycled' to make room for duid's in April, 2010.

2 years agoAdd memory BIO small I/O tests.
jsing [Sat, 19 Feb 2022 16:00:57 +0000 (16:00 +0000)]
Add memory BIO small I/O tests.

2 years agoRemove references to performance issues caused by frequent memmove().
jsing [Sat, 19 Feb 2022 16:00:14 +0000 (16:00 +0000)]
Remove references to performance issues caused by frequent memmove().

ok inoguchi@ tb@

2 years agoReduce memmoves in memory BIOs.
jsing [Sat, 19 Feb 2022 15:59:12 +0000 (15:59 +0000)]
Reduce memmoves in memory BIOs.

Currently, a read/write memory BIO pulls up the data via memmove() on each
read. This becomes very expensive when a lot of small reads are performed,
especially if there is a reasonable amount of data stored in the memory
BIO.

Instead, store a read offset into the buffer and only perform a memmove()
to pull up the data on a write, if we have read more than 4096 bytes. This
way we only perform memmove() when the space saving will potentially be of
benefit, while avoiding frequent memmove() in the case of small interleaved
reads and writes.

Should address oss-fuzz #19881.

ok inoguchi@ tb@

2 years agocertificiate -> certificate
jsg [Sat, 19 Feb 2022 13:09:36 +0000 (13:09 +0000)]
certificiate -> certificate

2 years agomininumu -> minimum
jsg [Sat, 19 Feb 2022 12:23:45 +0000 (12:23 +0000)]
mininumu -> minimum

2 years agoremove outdated contact details for ActivCard and CRYPTOCard
jsg [Sat, 19 Feb 2022 10:17:39 +0000 (10:17 +0000)]
remove outdated contact details for ActivCard and CRYPTOCard

2 years agoremove redundant swap encryption text
jsg [Sat, 19 Feb 2022 09:12:09 +0000 (09:12 +0000)]
remove redundant swap encryption text

2 years agoUse installboot(8) in install.md of armv7.
visa [Sat, 19 Feb 2022 08:33:28 +0000 (08:33 +0000)]
Use installboot(8) in install.md of armv7.

OK kettenis@ deraadt@

2 years agoProvide a struct bio_mem for memory BIO specific data.
jsing [Sat, 19 Feb 2022 08:11:16 +0000 (08:11 +0000)]
Provide a struct bio_mem for memory BIO specific data.

In order to fix and improve the memory BIO, we need to be able to track
more than just a single BUF_MEM *. Provide a struct bio_mem (which
currently only contains a BUF_MEM *) and rework the internals to use this
struct.

ok inoguchi@ tb@