[go: up one dir, main page]

Skip to content
In progress

Changes

Progress:

Summary

  1. fusefs: Fix warning formatting (details)
  2. rangelock: Fix an off-by-one error (details)
  3. rangelock: Disable cheat mode by default (details)
  4. nfsd: Fix handling of NFSv4 setable attributes (details)
  5. open(2): mandoc -T lint (details)
  6. rename(2): Extend EINVAL's description (details)
  7. open(2): Extend EINVAL's description (details)
  8. open(2): devfs is in section 4 on HEAD (details)
  9. ixl(4): Use GL_RXERR1 register for correct oversize packet count (details)
  10. ixl(4): Add more debug information for queues' config (details)
  11. linuxkpi: chase spinlock_t in DECLARE_WAIT_QUEUE_HEAD (details)
  12. netipsec: add probe points for the ipsec/esp/ah/ipcomp counters (details)
  13. rangelocks: extract the cheat mode drain code (details)
  14. Add rangelock_may_recurse(9) (details)
  15. kern_copy_file_range(): handle rangelock recursion (details)
  16. rangelocks: re-enable cheat mode (details)
  17. rangelocks: remove unneeded cast of the atomic_load_ptr() result (details)
Commit 705008fbfdbeff147fe624ae506f3781b5ba10bf by markj
fusefs: Fix warning formatting

Reviewed by: asomers
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D46456
The file was modifiedsys/fs/fuse/fuse_internal.c (diff)
Commit e6651546c2dd72e028b9422f1695c432dbf47d75 by markj
rangelock: Fix an off-by-one error

A rangelock entry covers the range [start, end), so entries e1 and e2
with e1->end == e2->start do not overlap.

PR: 281073
Fixes: 5badbeeaf061 ("Re-implement rangelocks part 2")
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D46458
The file was modifiedsys/kern/kern_rangelock.c (diff)
Commit fe66e4caf4561ee3349ad7a29cc9976108c3b04f by markj
rangelock: Disable cheat mode by default

Cheat mode is incompatible with code which locks multiple ranges in the
same vnode, with at least one range being write-locked.  This can arise
in kern_copy_file_range().  Until that's handled somehow, avoid the
problem to make the fusefs tests stable.

PR: 281073
Fixes: 9ef425e560a9 ("rangelocks: add fast cheating mode")
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D46457
The file was modifiedsys/kern/kern_rangelock.c (diff)
Commit 5037c6398b2327366494a0434a894dc17ba8d023 by rmacklem
nfsd: Fix handling of NFSv4 setable attributes

Commit d8a5961 made a change to nfsv4_sattr() that broke
parsing of the setable attributes for a NFSv4 SETATTR.
(It broke out of the code by setting "error" and returning
right away, instead of noting the error in nd_repstat and
allowing parsing of the attributes to continue.)
By returning prematurely, it was possible for SETATTR to return
the error, but with a bogus set of attribute bits set, since
"retbits" had not yet been set to all zeros.
(I am not sure if any client could be affected by this bug.
The patch was done for a failure case detected by a pynfs test
suite and not an actual client.)

While here, the patch also fixes a
few cases where the value of attributes gets set for attributes
after an error has been set in nd_repstat.  This would not really
break the protocol, since a SETATTR is allowed to set some attributes
and still return an failure, but should not really be done.

MFC after: 2 weeks
The file was modifiedsys/fs/nfsserver/nfs_nfsdserv.c (diff)
The file was modifiedsys/fs/nfsserver/nfs_nfsdport.c (diff)
Commit f5a37f8dd319e3007b126b77376e61ad96f44d8b by kib
open(2): mandoc -T lint

Lint the manual, addressing almost all requests.

Differential revision: https://reviews.freebsd.org/D46450
MFC after:   1 week
The file was modifiedlib/libsys/open.2 (diff)
Commit 33f58ac0795b2b02593ad0a8bf8a1ea24c1dc5e1 by kib
rename(2): Extend EINVAL's description

On some file systems, the last component of the destination path can
contain invalid characters and return EINVAL.

PR: 281033
Differential revision: https://reviews.freebsd.org/D46450
MFC after:   1 week
The file was modifiedlib/libsys/rename.2 (diff)
Commit 02c23c3b5ac9c9c1115c8b892034bb5d67b05c06 by kib
open(2): Extend EINVAL's description

If O_CREAT is specified, the last component of the path argument can
contain invalid characters, and return EINVAL on some file systems.

PR: 281033
Differential revision: https://reviews.freebsd.org/D46450
MFC after:   1 week
The file was modifiedlib/libsys/open.2 (diff)
Commit 37bb98841099a4c23c0b8990a988a3324b902c39 by kib
open(2): devfs is in section 4 on HEAD

Noted by: yuripv
Fixes: f5a37f8dd319e3007b126b77376e61ad96f44d8b
The file was modifiedlib/libsys/open.2 (diff)
Commit fef4249f07287374b10087f597a62b8e00dedabc by erj
ixl(4): Use GL_RXERR1 register for correct oversize packet count

The driver sets the Maximum Transmission Unit (MTU) at the Virtual Station
Interface (VSI) level, which leads to a discrepancy in the GLPRT_ROC counter's
ability to accurately tally oversized packets, as this counter operates at the
physical port level. To rectify this issue, it is necessary to take an
additional register (GL_RXERR1) into account to obtain the correct count of
oversized packets.

Signed-off-by: Yogesh Bhosale <yogesh.bhosale@intel.com>
Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by: erj@
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D45870
The file was modifiedsys/dev/ixl/i40e_register.h (diff)
The file was modifiedsys/dev/ixl/ixl_pf.h (diff)
The file was modifiedsys/dev/ixl/ixl_pf_main.c (diff)
The file was modifiedsys/dev/ixl/i40e_type.h (diff)
Commit 4fecb70154322fb8160da10d87c633cefaff7db3 by erj
ixl(4): Add more debug information for queues' config

Include information about interrupt linked lists in
queue_interrupt_table sysctl and add new debug sysctl queue_int_ctln
allowing to check current interrupt state.

Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by: erj@
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D45403
The file was modifiedsys/dev/ixl/ixl_pf_main.c (diff)
Commit 84f46335ab5da086c74032579799c0a74aa27447 by manu
linuxkpi: chase spinlock_t in DECLARE_WAIT_QUEUE_HEAD

Remove member m to unbreak consumers, e.g. drm-kmod 5.10-lts branch.

[...]
/tmp/drm-kmod/drivers/gpu/drm/ttm/ttm_module.c:38:8: error: no member named 'm' in 'struct mtx'
   38 | static DECLARE_WAIT_QUEUE_HEAD(exit_q);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/src/sys/compat/linuxkpi/common/include/linux/wait.h:113:33: note: expanded from macro 'DECLARE_WAIT_QUEUE_HEAD'
  113 |         MTX_SYSINIT(name, &(name).lock.m, spin_lock_name("wqhead"), MTX_DEF)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/src/sys/sys/mutex.h:528:4: note: expanded from macro 'MTX_SYSINIT'
  528 |                 (mtx),                                                  \
      |                  ^~~
/tmp/drm-kmod/drivers/gpu/drm/ttm/ttm_module.c:38:8: error: no member named 'm' in 'struct mtx'
   38 | static DECLARE_WAIT_QUEUE_HEAD(exit_q);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/src/sys/compat/linuxkpi/common/include/linux/wait.h:113:33: note: expanded from macro 'DECLARE_WAIT_QUEUE_HEAD'
  113 |         MTX_SYSINIT(name, &(name).lock.m, spin_lock_name("wqhead"), MTX_DEF)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]

Fixes: ae38a1a1bfdf ("linuxkpi: spinlock: Simplify code")
MFC after: ?
The file was modifiedsys/compat/linuxkpi/common/include/linux/wait.h (diff)
Commit b1c3a4d75f4ff74218434a11cdd4e56632e13711 by kp
netipsec: add probe points for the ipsec/esp/ah/ipcomp counters

Extend what we did for netinet counters in 60d8dbbef075 (netinet: add a probe
point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters, 2024-01-18) to the
IPsec code.

Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D46416
The file was modifiedsys/netinet/in_kdtrace.c (diff)
The file was modifiedsys/netipsec/xform_ipcomp.c (diff)
The file was modifiedsys/netinet/in_kdtrace.h (diff)
The file was modifiedsys/netipsec/esp_var.h (diff)
The file was modifiedsys/netipsec/xform_esp.c (diff)
The file was modifiedsys/netipsec/ipcomp_var.h (diff)
The file was modifiedsys/netipsec/xform_ah.c (diff)
The file was modifiedsys/netipsec/ah_var.h (diff)
The file was modifiedsys/netipsec/ipsec.h (diff)
Commit 75447afca868f82f1c53c5be32dccd777813ec1a by kib
rangelocks: extract the cheat mode drain code

Reviewed by: markj
Tested by: lwhsu
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D46465
The file was modifiedsys/kern/kern_rangelock.c (diff)
Commit 0b6b1c285920563ba0c119d3190ac25af4731d02 by kib
Add rangelock_may_recurse(9)

Reviewed by: markj
Tested by: lwhsu
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D46465
The file was modifiedsys/kern/kern_rangelock.c (diff)
The file was modifiedsys/sys/rangelock.h (diff)
Commit 4e1f29b92dc5fdc84d646eb3c16a4155b6ec688d by kib
kern_copy_file_range(): handle rangelock recursion

PR: 281073
Reviewed by: markj
Tested by: lwhsu
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D46465
The file was modifiedsys/kern/vfs_syscalls.c (diff)
Commit 5378962154e08e9af43a9e8e832d0dc81a4f4517 by kib
rangelocks: re-enable cheat mode

Tested by: lwhsu
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D46465
The file was modifiedsys/kern/kern_rangelock.c (diff)
Commit e1f4d623779df3b05b58ca06aaa8ae0b0a1c9ef7 by kib
rangelocks: remove unneeded cast of the atomic_load_ptr() result

Noted and reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D46465
The file was modifiedsys/kern/kern_rangelock.c (diff)