Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Apr 2023 19:36:38 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        "src-committers@freebsd.org" <src-committers@freebsd.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@freebsd.org>, dev-commits-src-branches@freebsd.org
Subject:   stable/13 - planned merge from main - USB and mlx5 related
Message-ID:  <44b1072c-c4ac-ad2f-1475-4904312ef860@selasky.org>

index | next in thread | raw e-mail

[-- Attachment #1 --]
Hi,

Heads up: I'm planning to 38 patches from main to stable/13 around 08:00 
CEST 30th of April 2023.

If there is any breakage I plan to be available from 12:30 CEST and on 
to catch that. Hopefully everything will be smooth, but just in case.

I'm currently doing a universe build for stable/13 .

See attachment.

If you see anything which shouldn't be there let me know by tomorrow!

Thank you!

--HPS
[-- Attachment #2 --]
commit 5df3b962fb7e7480f3f666abb59939e1fb4ae0b7
Author: Elliott Mitchell <ehem+freebsd@m5p.com>
Date:   Wed Jun 22 17:53:47 2022 -0700

    mlx4: purge EOL release compatibility
    
    Remove FreeBSD 10 support code.
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/603
    Differential Revision: https://reviews.freebsd.org/D35560
    
    (cherry picked from commit 026babd427e6511e53478814ce0aa1cc3f7a9988)

commit 66c3dcf8aec744626c065d46e069490f55cbb9f0
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Wed Apr 19 12:22:11 2023 +0200

    libc: Add missing object size check to qsort_s(3)
    
    When sorting, both the C11 standard (ISO/IEC 9899:2011, K.3.6.3.2) and
    the ISO/IEC JTC1 SC22 WG14 N1172 standard, does not define objects of
    zero size as undefined behaviour. However Microsoft's cpp-docs does.
    
    Add proper checks for this. Found while working on bsort(3).
    
    Reviewed by:    kib@ and emaste@
    Sponsored by:   NVIDIA Networking
    Differential Revision:  https://reviews.freebsd.org/D39687
    
    (cherry picked from commit 27bb0d337c0d82a1a4f310315840236eb239963c)

commit 997184464b54232bce42cfea2a3728bb0a9d528d
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Wed Apr 19 12:18:56 2023 +0200

    libc: Sorting is not needed when there are less than two elements
    
    If there are less than two elements avoid executing the first
    sorting loop. No functional change intended.
    
    Reviewed by:    kib@
    Sponsored by:   NVIDIA Networking
    Differential Revision:  https://reviews.freebsd.org/D39691
    
    (cherry picked from commit ecb2ce3a51e9b09a57cd42262fc798ae089c0758)

commit cc169a73f17dff91b0c6c3f624122c1f75cfdf5f
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:40:22 2023 +0200

    mlx5: Remove unused debugfs node pointers.
    
    No functional change intended.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 80b4ef6d10544d30b6cfeddca12ae28d81816201)

commit 5f866fe4b9ed2d439de1dc0116fa6c4ae78d192e
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:22:41 2023 +0200

    mlx5: Don't give zero number of pages to the firmware.
    
    Can happen when using virtual mlx5_core<N> functions, VFs.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 95bf70a4bf7982091bb59200bc2db2cb5cd840d7)

commit 09db7a99894b584b360e946406f65d22cec4c1b4
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:21:28 2023 +0200

    mlx5: Implement mlx5_core_modify_cq_by_mask().
    
    Implement one CQ modify function supporting all firmware versions,
    instead of having more variants of CQ modify.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 273bfac08ff838786c8b48bc7d3d7180b5f6a3be)

commit 5868a081916869c3981ad2aa6118e4721ebfcd1a
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:11:02 2023 +0200

    mlx5: Make MLX5_COMP_EQ_SIZE tunable.
    
    When using hardware pacing, this value can be increased, because more SQ's
    means more EQ events aswell. Make it tunable, hw.mlx5.comp_eq_size .
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 3bb3e4768ff854b88ba0a7d129edad49f15d7ce3)

commit 8c5ae02876dfc292c20a9d9be1b1f76a09e9b7b2
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:17:38 2023 +0200

    mlx5: Fix duplicate free of default flow rule in error case.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 2f7e9a8a21367393b613f0f150d49009fa74dd5c)

commit 83da7a2238498a89763c369dfcfebc3df5c971bc
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:16:16 2023 +0200

    mlx5: Make mlx5_del_flow_rule() NULL safe.
    
    This change factors out repeated NULL checks.
    
    No functional change intended.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit b0b87d9151456e71fd6a14736e132d67114db4aa)

commit dfdbd2f66ad06353b98f1d531c0784b95b5fcdb1
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:42:17 2023 +0200

    mlx5en(4): Don't wait for receive queue to fill up with mbufs during open channels.
    
    Failure to get mbufs may be transient.
    Don't permanently fail to open the channels due to lack of mbufs.
    This also makes modifying channel parameters faster.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 1943c40cd655b7259b9b21849f328362c97a2657)

commit b42efb989b6f6d5ca2af64b871b51595f4e7cbbc
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:12:32 2023 +0200

    mlx5en(4): Explain why CQE zipping is off.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 6bd4bb9bdbadb76c5502c7972df9f525b909e2f5)

commit 91ed407c01998024040b7ce1b381775b30468597
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 18 13:38:59 2023 +0200

    mlx5: Implement diagostic counters as sysctl(8) nodes.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit aa7bbdabde890676d54a22eeec3af9b7681d19b7)

commit 69ec6d5f538de5e65a50e4406668044f0b1d1ee3
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Jul 6 12:29:57 2021 +0200

    Implement an API for sending a zero-length-packet. The purpose of such a
    USB packet is to toggle the binary packet counter for USB 1.0/2.0 protocols,
    without sending any data, so that the first packet sent after opening
    a USB BULK endpoint doesn't get lost. This is for devices not supporting
    the USB standard defined clear-stall handling.
    
    Tested by:      jmg
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit f83f5d58394db57576bbed6dc7531997cabeb102)
    (cherry picked from commit ec97e9ca1fa543a4a803e84706564d41cd492065)

commit 9498717f34a682fb11d47d7c43ab4b6f4b85eb12
Author: Warner Losh <imp@FreeBSD.org>
Date:   Thu Mar 11 08:23:32 2021 -0700

    usb: tiny formatting nit
    
    Format 300 baud like all the others here. No functional change.
    
    (cherry picked from commit 1645a4ae645fa9b9e3571b7512caa92e73b20635)

commit fbd10cb7a96f59af5b3e0ede889534755bc1dddd
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Sat Apr 2 02:27:48 2022 +0200

    ulpt(4): Add support for Epson TM-U220B.
    
    Submitted by:           Archimedes Gaviola <archimedes.gaviola@gmail.com>
    Sponsored by:           NVIDIA Networking
    
    (cherry picked from commit 88162f7abd61206c98432f2c0de869a59be13854)

commit 49b9463f64928cdbb2b3b5525fa0be489189d263
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Wed Aug 18 11:41:49 2021 +0200

    Make sure the uftdi(4) driver doesn't start a USB transfer when being cancelled.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 8a46f021c2408c82375a1f5127efb7ac6b78596e)

commit 8c1582c6b5dc0128a141f33f3d961acbff4c96ce
Author: Vladimir Kondratyev <wulf@FreeBSD.org>
Date:   Tue Feb 9 00:26:42 2021 +0300

    wsp: Add sysctl tunable for Z-Axis inversion
    
    This adds a new sysctl to Wellspring Touchpad driver for controlling
    Z-Axis (2-finger vertical scroll) direction "hw.usb.wsp.z_invert".
    
    Submitted by:   James Wright <james.wright_AT_digital-chaos_DOT_com>
    Reviewed by:    wulf
    PR:             253321
    Differential revision:  https://reviews.freebsd.org/D28521
    
    (cherry picked from commit d8c6d4c7321d4c969216bda8f792b45ed00afd64)

commit 35eba1eac9792500ee004ab620e676efb4951200
Author: Jessica Clarke <jrtc27@FreeBSD.org>
Date:   Sun Oct 24 19:48:46 2021 +0100

    xhci: Rework 64-byte context support to avoid pointer abuse
    
    Currently, to support 64-byte contexts, xhci_ctx_[gs]et_le(32|64) take a
    pointer to the field within a 32-byte context and, if 64-byte contexts
    are in use, compute where the 64-byte context field is and use that
    instead by deriving a pointer from the 32-byte field pointer. This is
    done by exploiting a combination of 64-byte contexts being the same
    layout as their 32-byte counterparts, just with 32 bytes of padding at
    the end, and that all individual contexts are either in a device
    context or an input context which itself is page-aligned. By masking out
    the low 4 bits (which is the offset of the field within the 32-byte
    contxt) of the offset within the page, the offset of the invididual
    context within the containing device/input context can be determined,
    which is itself 32 times the number of preceding contexts. Thus, adding
    this value to the pointer again gets 64 times the number of preceding
    contexts plus the field offset, which gives the offset of the 64-byte
    context plus the field offset, which is the address of the field in the
    64-byte context.
    
    However, this involves a fair amount of lying to the compiler when
    constructing these intermediate pointers, and is rather difficult to
    reason about. In particular, this is problematic for CHERI, where we
    compile the kernel with subobject bounds enabled; that is, unless
    annotated to opt out (e.g. for C struct inheritance reasons where you
    need to be able to downcast, or containerof idioms), a pointer to a
    member of a struct is a capability whose bounds only cover that field,
    and any attempt to dereference outside those bounds will fault,
    protecting against intra-object buffer overflows. Thus the pointer given
    to xhci_ctx_[gs]et_le(32|64) is a capability whose bounds only cover the
    field in the 32-byte context, and computing the pointer to the 64-byte
    context field takes the address out of bounds, resulting in a fault when
    later dereferenced.
    
    This can be cleaned up by using a different abstraction. Instead of
    doing the 32-byte to 64-byte conversion on access to the field, we can
    do the conversion when getting a pointer to the context itself, and
    define proper 64-byte versions of contexts in order to let the compiler
    do all the necessary arithmetic rather than do it manually ourselves.
    This provides a cleaner implementation, works for CHERI and may even be
    slightly more performant as it avoids the need to mess with masking
    pointers (which cannot in the general case be optimised by compilers to
    be reused across accesses to different fields within the same context,
    since it does not know that the contexts are over-aligned compared with
    the C ABI requirements).
    
    Reviewed by:    hselasky
    Differential Revision:  https://reviews.freebsd.org/D32554
    
    (cherry picked from commit 29863d1effe20da3cc75ae10bd52d96edafe9e59)

commit 5b5079165852de0f0ea0c547b4473c55c2e12c22
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
Date:   Fri Oct 1 13:37:01 2021 +0000

    USB: adjust the Generic XHCI ACPI probe return value
    
    Change the probe return value from BUS_PROBE_DEFAULT to BUS_PROBE_GENERIC
    given this is the "generic" attach method.  This allows individual
    drivers using XHCI generic but needing their own intialisation to
    gain priority for attaching over the generic implementation.
    
    Reviewed by:    hselasky
    Differential Revision: https://reviews.freebsd.org/D32257
    
    (cherry picked from commit 76f3b8cb640536de2c370cc2bd60382bbc35cf5d)

commit 0c443dd2fbfff492871b7f5309f3762fb62bc8e6
Author: Søren Schmidt <sos@FreeBSD.org>
Date:   Tue Dec 20 08:53:58 2022 +0000

    Get clocks for Rockchip RK3568.
    
    (cherry picked from commit 1d8c07b7ab7bc123ec62e97176beffef4052eba8)

commit 0b41dac9a951ae9d827c496f4cd6bd99b1a48721
Author: Val Packett <val@packett.cool>
Date:   Tue Apr 25 12:20:53 2023 +0300

    bcm5974(4): add Magic Trackpad 2 (USB only) support
    
    The MT2 uses a compact report format, but otherwise is similar in many
    ways to the internal trackpads, it even uses the same mode switching
    commands.
    
    Reviewed by:    wulf
    Differential revision:  https://reviews.freebsd.org/D34437
    
    (cherry picked from commit ef8397c28e981e0115d435aabcf57cee7ea5f5ee)

commit 546f394dbfc1f52046accf3d9cd00442fcdd8ce0
Author: John Baldwin <jhb@FreeBSD.org>
Date:   Mon Apr 10 10:35:48 2023 -0700

    if_mos: Remove set but unused variable.
    
    Reviewed by:    hselasky
    Reported by:    GCC
    Differential Revision:  https://reviews.freebsd.org/D39356
    
    (cherry picked from commit 5328efb3d0a54df20779d82319c3eebd49aa2993)

commit 97ad263a1a943c2e96a8527c22696725c8e6fe35
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Fri Mar 31 19:14:18 2023 +0200

    usb(4): Separate the fast path and the slow path to avoid races and use-after-free for the USB FS interface.
    
    Bad behaving user-space USB applicatoins may crash the kernel by issuing
    USB FS related ioctl(2)'s out of their expected order. By default
    the USB FS ioctl(2) interface is only available to the
    administrator, root, and driver applications like webcamd(8) needs
    to be hijacked in order for this to happen.
    
    The issue is the fast-path code does not always see updates made
    by the slow-path code, and may then work on freed memory.
    
    This is easily fixed by using an EPOCH(9) type of synchronization
    mechanism. A SX(9) lock will be used as a substitute for EPOCH(9),
    due to the need for sleepability. In addition most calls going into
    the fast-path originate from a single user-space process and the
    need for multi-thread performance is not present.
    
    Differential Revision:  https://reviews.freebsd.org/D39373
    Reviewed by:    markj@
    Reported by:    C Turt <ecturt@gmail.com>
    admbugs:        994
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 9b077d72bcc313baea2b9283afc7f568739eaadc)

commit 1d3e83611642b7558687663cddd03c50c2ac6c2a
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Tue Apr 4 17:15:38 2023 +0200

    usb(4): Code refactoring as a pre-step for adding missing synchronization mechanism.
    
    Move code in switch cases into own functions to make later changes easier to track.
    
    No functional change, except for removing a superfluous break statement when
    range checking USB_FS_MAX_FRAMES, in the USB_FS_OPEN case.
    It should not have been there at all.
    
    Suggested by:   emaste@
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 03a2e432d5cc2eedb9304faea2b19051c84caecf)

commit c4a56312b20bcc37704395e100f3c69fa0ad4e6f
Author: Joerg Wunsch <joerg@FreeBSD.org>
Date:   Wed Mar 8 20:59:29 2023 +0100

    usb: dwc3: add <sys/mutex.h>
    
    Commit 5e54bb1ea9e90 added USB_BUS_LOCK/USB_BUS_UNLOCK. They, in
    consequence, require mutexes so <sys/mutex.h> is needed.
    
    (cherry picked from commit 175a584e501e19c90fd2241c505d1797de603a5c)

commit cdd8abe242f86dc8ff7af19a1636a92c9c19b78f
Author: Kyle Evans <kevans@FreeBSD.org>
Date:   Mon Feb 27 19:59:43 2023 -0600

    usb: dwc3: implement hw.usb.xhci.use_polling
    
    Polling is currently only implemented in the xhci pci attachment.
    Adding it to dwc3 doesn't make it much uglier, and supporting it can be
    useful for confirming that hardware's otherwise functional when
    interrupts are apparently not firing.
    
    Reviewed by:    manu
    Differential Revision:  https://reviews.freebsd.org/D38816
    
    (cherry picked from commit 5e54bb1ea9e904075225dc96641c2ede3fc3273c)

commit d1601b767c13026a8ea9ed84d15cbed147cab97a
Author: Elliott Mitchell <ehem+freebsd@m5p.com>
Date:   Wed Jun 22 17:53:47 2022 -0700

    wmt: purge EOL release compatibility
    
    Remove FreeBSD 11 support
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/603
    Differential Revision: https://reviews.freebsd.org/D35560
    
    (cherry picked from commit 5fa183351459996cfb86f8621de1a0e1bf985d67)

commit f02d3a39acd5001aca7035bf4a870f9b4866b4ae
Author: Elliott Mitchell <ehem+freebsd@m5p.com>
Date:   Wed Jun 22 17:53:47 2022 -0700

    usb: purge EOL release compatibility
    
    Remove conditionsals for FreeBSD 6, 7, 8 and 9 compatibility.
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/603
    Differential Revision: https://reviews.freebsd.org/D35560
    
    (cherry picked from commit 336fbb23def7a6b3dc44ce5c76bbc07a701c0a69)

commit 1d8ea238438f5da56c825c8ab471ef8bba77b85c
Author: Cheng, Huiming <Huiming.Cheng@dellteam.com>
Date:   Thu Dec 15 23:30:11 2022 +0100

    xhci(4): Make sure allocated bandwidth is freed in hardware by unconfiguring endpoint.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 8685d7b5cb759b4f688dea93dbe1c38f9e833e4e)

commit 92eaad8d14264a0909a6c5084501895c051be334
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Thu Dec 15 23:32:47 2022 +0100

    usb(4): Call optional endpoint_uninit() when changing configuration or alternate setting.
    
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit e4611d26265fb9e3bd2a345cf4776863f49a2587)

commit db33193e86042339d9b505ed3d368afc95aa9ef9
Author: Poul-Henning Kamp <phk@FreeBSD.org>
Date:   Sun Aug 28 17:21:38 2022 +0000

    USB id of yet another Lenovo USB-C ethernet dongle.
    
    (cherry picked from commit 31937f7e843da8be685557d513fc1af58079eda3)

commit 8ffd006b388184dcf670a344f0ef3a673d2a2341
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Sat Apr 30 11:21:54 2022 +0200

    uath(4): Fix incorrect byte-swapping and a buffer length check.
    
    PR:                     263638
    Reported by:            Jeff Gibbons <jgibbons@protogate.com>
    Sponsored by:           NVIDIA Networking
    
    (cherry picked from commit 6eb6aeef7e670bddc9cd52aaf32765a9ea85eee3)

commit d6d1a388013bbf7753ab1c19a4790bed822356a1
Author: Kornel Duleba <mindal@semihalf.com>
Date:   Tue Apr 26 14:07:21 2022 +0200

    usb: Respect NO_INQUIRY quirk during device enumeration
    
    Both usb_iface_is_cdrom and usb_msc_auto_quirk functions use SCSI INQUIRY
    command to probe various properties of usb mass storage devices.
    The problem here is that some very broken devices don't like this command.
    Check if UQ_MSC_NO_INQUIRY quirk is set and skip cdrom and quirk
    autodetection in that case.
    
    Sponsored by: Stormshield
    Obtained from: Semihalf
    Reviewed by: hps, wma
    Differential Revision: https://reviews.freebsd.org/D35075
    
    (cherry picked from commit 3ee943868c74ce917820fe9ddbcfeab338704d90)

commit b274958d26ab3830ad909639015c45e52c7a1d9c
Author: John Baldwin <jhb@FreeBSD.org>
Date:   Mon Apr 18 12:27:48 2022 -0700

    uhid_snes: Remove USB_ST_TRANSFERRED handling for the status request.
    
    The result of the request computed in new_status was never returned to
    the caller leaving new_status as a set-but-unused variable.  Removing
    new_status leaves sc->previous_status as a write-only variable.
    Removing sc->previous_status leaves current_status as a write-only
    variable, so it collapses down to removing the entire
    USB_ST_TRANSFERRED case.
    
    Arguably, all of the support for UHID_SNES_STATUS_DT_RD should be
    removed as it doesn't return anything to the caller.  If the request
    should be fixed instead then this commit should be reverted and
    new_status should be returned to whoever submitted the request.
    
    Differential Revision:  https://reviews.freebsd.org/D34840
    
    (cherry picked from commit 540ac338d5575131d134d2c033f31b5d6d576c68)

commit be776e051868c14e957a6ef83d0c411af81d1798
Author: Brooks Davis <brooks@FreeBSD.org>
Date:   Fri Dec 17 21:28:14 2021 +0000

    libusb: remove use of COMPAT_32BIT
    
    This codepath used uint64_t's in place of pointers in structs and
    arrays to allow 32-bit code to use 64-bit version of ioctls.  Now
    that we support 32-bit compat natively this is no longer needed.
    
    Reviewed by:    hselasky, jrtc27 (prior version)
    
    (cherry picked from commit 8010f4ad21b6120e929bda4eed27696e63514677)

commit f724978d784d9d744e21dbb8f06ed7c47f005b58
Author: Brooks Davis <brooks@FreeBSD.org>
Date:   Fri Dec 17 21:28:14 2021 +0000

    usb: remove COMPAT_32BIT ifdefs
    
    Now that we have proper 32-bit compat support, remove COMPAT_32BIT
    ifdefs to allow 32-bit code to use the 64-bit layout of USB ioctl
    structs and struct usb_fs_endpoint.
    
    This includes the removal of redundant alignment directives that had
    no effect in practice.
    
    Reviewed by:    hselasky, jrtc27 (prior version)
    
    (cherry picked from commit ea972feea2d2589ee1317a19eeada0598332defa)

commit 053afe1fd3584a79d4fc5f4c33fbfa173beedf40
Author: Brooks Davis <brooks@FreeBSD.org>
Date:   Fri Dec 17 21:28:14 2021 +0000

    usb: add 32-bit compat for FIFOs
    
    Unlike most 32-bit compatability code, this isn't just a simple thunk
    in the ioctl code.  An ioctl (USB_FS_INIT) is used to install a
    pointer to an array of usb_fs_endpoint structs which are then used
    by the ugen fifo code.  These struct contains an array of pointers
    which requires translation.  We change the interfaces around
    struct usb_fs_endpoint as follows:
     - We store the size of struct usb_fs_endpoint in struct usb_fifo
       in the USB_FS_INIT handler so we know the ABI of the userspace
       array.
     - APIs to manipulate userspace struct usb_fs_endpoint objects now
       take a struct usb_fifo and an index rather than a pointer to
       the object.  This allows most code to remain oblivious to the
       different struct usb_fs_endpoint sizes.
     - Add ugen_fs_copyin() which copies the struct usb_fs_endpoint
       from userspace, thunking it to the native size if required.
     - Uses of struct usb_fs_endpoint's ppBuffer member are now
       via ugen_fs_getbuffer() which produces a native pointer.
     - Updates to userspace are now handled by ugen_fs_update().
    
    For clarity, single, fixed-sized members now are accessed with
    fueword/suword rather than copyin/copyout.
    
    Reviewed by:    hselasky, jrtc27 (prior version)
    
    (cherry picked from commit 0ec590d24e415dd36e38648630a0b963412ad87e)
    (cherry picked from commit 8b60419b798ae9049988c529e6af3f313a5cce55)

commit 51861e58205213a5fa585a0cc91713b5fa75f1cd
Author: Hans Petter Selasky <hselasky@FreeBSD.org>
Date:   Thu Jan 26 13:56:51 2023 +0100

    libusb(3): Implement libusb_init_context() and the needed structures and definitions.
    
    Differential Revision:  https://reviews.freebsd.org/D38212
    Sponsored by:   NVIDIA Networking
    
    (cherry picked from commit 4c6bcffd04f9d0b6cb57af0ffcc9be3098fe950c)
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44b1072c-c4ac-ad2f-1475-4904312ef860>