<feed xmlns='http://www.w3.org/2005/Atom'>
<title>netbsd/sys/dev/fss.c, branch lockdoc-10.99.5-vfs</title>
<subtitle>NetBSD fork for lockdoc analysis</subtitle>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/'/>
<entry>
<title>Reorganize b_cache logging, un-deprecate variable name logging</title>
<updated>2023-08-20T16:36:09+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2023-08-20T16:36:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=6545533869a1eba7272e380cbf5ca103e9181251'/>
<id>6545533869a1eba7272e380cbf5ca103e9181251</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add logging for buf-&gt;b_cflags BC_BUSY changes</title>
<updated>2023-08-19T17:16:22+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2023-08-19T17:16:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=e7b3826cda40b7e543318c19b9093dcceb8b4237'/>
<id>e7b3826cda40b7e543318c19b9093dcceb8b4237</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pass B_PHYS when reading from device.  Xbd(4) at least checks</title>
<updated>2023-03-22T21:14:46+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2023-03-22T21:14:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=141185f67e84a9f8bcc9fa8a12ca6b96f4361a80'/>
<id>141185f67e84a9f8bcc9fa8a12ca6b96f4361a80</id>
<content type='text'>
this flag and may trigger an assertion.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this flag and may trigger an assertion.</pre>
</div>
</content>
</entry>
<entry>
<title>malloc(9) -&gt; kmem(9)</title>
<updated>2022-09-24T23:16:37+00:00</updated>
<author>
<name>thorpej</name>
<email>thorpej@NetBSD.org</email>
</author>
<published>2022-09-24T23:16:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=2a59bafe35b2bfb4cc5f3a87c9746c4018f4cba5'/>
<id>2a59bafe35b2bfb4cc5f3a87c9746c4018f4cba5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>For device modules that provide both auto-config and /dev/xxx</title>
<updated>2022-03-31T19:30:15+00:00</updated>
<author>
<name>pgoyette</name>
<email>pgoyette@NetBSD.org</email>
</author>
<published>2022-03-31T19:30:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=74849b7b725a6b694bebdbb34a7b9cc04de02a3a'/>
<id>74849b7b725a6b694bebdbb34a7b9cc04de02a3a</id>
<content type='text'>
interfaces, make sure that initialization and destruction
follow the proper sequence.  This is triggered by the recent
changes to the devsw stuff; per riastradh@ the required call
sequence is:

	devsw_attach()
	config_init_component() or config_cf*_attach()
	...
	config_fini_component() or config_cf*_detach()
	devsw_detach()

While here, add a few missing calls to some of the detach
routines.

Testing of these changes has been limited to:
	1. compile without build break
	2. no related test failures from atf
	3. modload/modunload work as well as
	   before.

No functional device testing done, since I don't have any
of these devices.  Let me know of any damage I might cause
here!

XXX Some of the modules affected by this commit are already
XXX broken;  see kern/56772.  This commit does not break
any additional modules (as far as I know).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
interfaces, make sure that initialization and destruction
follow the proper sequence.  This is triggered by the recent
changes to the devsw stuff; per riastradh@ the required call
sequence is:

	devsw_attach()
	config_init_component() or config_cf*_attach()
	...
	config_fini_component() or config_cf*_detach()
	devsw_detach()

While here, add a few missing calls to some of the detach
routines.

Testing of these changes has been limited to:
	1. compile without build break
	2. no related test failures from atf
	3. modload/modunload work as well as
	   before.

No functional device testing done, since I don't have any
of these devices.  Let me know of any damage I might cause
here!

XXX Some of the modules affected by this commit are already
XXX broken;  see kern/56772.  This commit does not break
any additional modules (as far as I know).</pre>
</div>
</content>
</entry>
<entry>
<title>Add containment for the cloning devices hack in vn_open.</title>
<updated>2021-06-29T22:40:53+00:00</updated>
<author>
<name>dholland</name>
<email>dholland@NetBSD.org</email>
</author>
<published>2021-06-29T22:40:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=c3e886adfa3ed5eaaf798d07ae03d6dee7b33895'/>
<id>c3e886adfa3ed5eaaf798d07ae03d6dee7b33895</id>
<content type='text'>
Cloning devices (and also things like /dev/stderr) work by allocating
a struct file, stuffing it in the file table (which is a layer
violation), stuffing the file descriptor number for it in a magic
field of struct lwp (which is gross), and then "failing" with one of
two magic errnos, EDUPFD or EMOVEFD.

Before this commit, all callers of vn_open in the kernel (there are
quite a few) were expected to check for these errors and handle the
situation. Needless to say, none of them except for open() itself did,
resulting in internal negative errnos being returned to userspace.

This hack is fairly deeply rooted and cannot be eliminated all at
once. This commit adds logic to handle the magic errnos inside
vn_open; now on success vn_open returns either a vnode or an integer
file descriptor, along with a flag that says whether the underlying
code requested EDUPFD or EMOVEFD. Callers not prepared to cope with
file descriptors can pass NULL for the extra return values, in which
case if a file descriptor would be produced vn_open fails with
EOPNOTSUPP.

Since I'm rearranging vn_open's signature anyway, stop exposing struct
nameidata. Instead, take three arguments: an optional vnode to use as
the starting point (like openat()), the path, and additional namei
flags to use, restricted to NOCHROOT and TRYEMULROOT. (Other namei
behavior, e.g. NOFOLLOW, can be requested via the open flags.)

This change requires a kernel bump. Ride the one an hour ago.
(That was supposed to be coordinated; did not intend to let an hour
slip by. My fault.)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cloning devices (and also things like /dev/stderr) work by allocating
a struct file, stuffing it in the file table (which is a layer
violation), stuffing the file descriptor number for it in a magic
field of struct lwp (which is gross), and then "failing" with one of
two magic errnos, EDUPFD or EMOVEFD.

Before this commit, all callers of vn_open in the kernel (there are
quite a few) were expected to check for these errors and handle the
situation. Needless to say, none of them except for open() itself did,
resulting in internal negative errnos being returned to userspace.

This hack is fairly deeply rooted and cannot be eliminated all at
once. This commit adds logic to handle the magic errnos inside
vn_open; now on success vn_open returns either a vnode or an integer
file descriptor, along with a flag that says whether the underlying
code requested EDUPFD or EMOVEFD. Callers not prepared to cope with
file descriptors can pass NULL for the extra return values, in which
case if a file descriptor would be produced vn_open fails with
EOPNOTSUPP.

Since I'm rearranging vn_open's signature anyway, stop exposing struct
nameidata. Instead, take three arguments: an optional vnode to use as
the starting point (like openat()), the path, and additional namei
flags to use, restricted to NOCHROOT and TRYEMULROOT. (Other namei
behavior, e.g. NOFOLLOW, can be requested via the open flags.)

This change requires a kernel bump. Ride the one an hour ago.
(That was supposed to be coordinated; did not intend to let an hour
slip by. My fault.)</pre>
</div>
</content>
</entry>
<entry>
<title>Check the return value of device_lookup_private against NULL.</title>
<updated>2020-12-26T14:50:50+00:00</updated>
<author>
<name>nia</name>
<email>nia@NetBSD.org</email>
</author>
<published>2020-12-26T14:50:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=04369c6342dbd422a3600bd7a1cda304d964521d'/>
<id>04369c6342dbd422a3600bd7a1cda304d964521d</id>
<content type='text'>
Reported-by: syzbot+06561ba90b6e618ce6d0@syzkaller.appspotmail.com</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported-by: syzbot+06561ba90b6e618ce6d0@syzkaller.appspotmail.com</pre>
</div>
</content>
</entry>
<entry>
<title>UVM locking changes, proposed on tech-kern:</title>
<updated>2020-02-23T15:46:38+00:00</updated>
<author>
<name>ad</name>
<email>ad@NetBSD.org</email>
</author>
<published>2020-02-23T15:46:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=b4dac1827c2c469374a65dca7f0299eec7b980b9'/>
<id>b4dac1827c2c469374a65dca7f0299eec7b980b9</id>
<content type='text'>
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock.
- Break v_interlock and vmobjlock apart.  v_interlock remains a mutex.
- Do partial PV list locking in the x86 pmap.  Others to follow later.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock.
- Break v_interlock and vmobjlock apart.  v_interlock remains a mutex.
- Do partial PV list locking in the x86 pmap.  Others to follow later.</pre>
</div>
</content>
</entry>
<entry>
<title>Check fc_type before fc_cluster, because the latter may not be initialized.</title>
<updated>2019-08-07T10:36:19+00:00</updated>
<author>
<name>maxv</name>
<email>maxv@NetBSD.org</email>
</author>
<published>2019-08-07T10:36:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=2e7c08d9d9c7cbe655c4dbe7a949dea0e52eeec3'/>
<id>2e7c08d9d9c7cbe655c4dbe7a949dea0e52eeec3</id>
<content type='text'>
This is harmless because fc_type is always initialized properly, so the
next branch wouldn't have been taken.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is harmless because fc_type is always initialized properly, so the
next branch wouldn't have been taken.</pre>
</div>
</content>
</entry>
<entry>
<title>Make FSS_ERROR a flag to prevent bogus fscow_disestablish() after error.</title>
<updated>2019-02-20T10:03:25+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2019-02-20T10:03:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=d3d92310055584ce2ced1f2c54e944ca53a488dc'/>
<id>d3d92310055584ce2ced1f2c54e944ca53a488dc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
