Commit 6670ee2e authored by J. Bruce Fields's avatar J. Bruce Fields
Browse files

Merge branch 'nfsd-5.8' of git://linux-nfs.org/~cel/cel-2.6 into for-5.8-incoming

Highlights of this series:
* Remove serialization of sending RPC/RDMA Replies
* Convert the TCP socket send path to use xdr_buf::bvecs (pre-requisite for
RPC-on-TLS)
* Fix svcrdma backchannel sendto return code
* Convert a number of dprintk call sites to use tracepoints
* Fix the "suggest braces around empty body in an 'else' statement" warning
parents 746c6237 f2453978
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -112,6 +112,20 @@ used when printing stack backtraces. The specifier takes into
consideration the effect of compiler optimisations which may occur
when tail-calls are used and marked with the noreturn GCC attribute.

Probed Pointers from BPF / tracing
----------------------------------

::

	%pks	kernel string
	%pus	user string

The ``k`` and ``u`` specifiers are used for printing prior probed memory from
either kernel memory (k) or user memory (u). The subsequent ``s`` specifier
results in printing a string. For direct use in regular vsnprintf() the (k)
and (u) annotation is ignored, however, when used out of BPF's bpf_trace_printk(),
for example, it reads the memory it is pointing to without faulting.

Kernel Pointers
---------------

+2 −1
Original line number Diff line number Diff line
@@ -10,7 +10,8 @@ Required properties:
- compatible :
	- "fsl,vf610-edma" for eDMA used similar to that on Vybrid vf610 SoC
	- "fsl,imx7ulp-edma" for eDMA2 used similar to that on i.mx7ulp
	- "fsl,fsl,ls1028a-edma" for eDMA used similar to that on Vybrid vf610 SoC
	- "fsl,ls1028a-edma" followed by "fsl,vf610-edma" for eDMA used on the
	  LS1028A SoC.
- reg : Specifies base physical address(s) and size of the eDMA registers.
	The 1st region is eDMA control register's address and size.
	The 2nd and the 3rd regions are programmable channel multiplexing
+2 −2
Original line number Diff line number Diff line
@@ -61,8 +61,8 @@ The ``ice`` driver reports the following versions
      - running
      - ICE OS Default Package
      - The name of the DDP package that is active in the device. The DDP
        package is loaded by the driver during initialization. Each varation
        of DDP package shall have a unique name.
        package is loaded by the driver during initialization. Each
        variation of the DDP package has a unique name.
    * - ``fw.app``
      - running
      - 1.3.1.0
+30 −7
Original line number Diff line number Diff line
@@ -27,9 +27,8 @@ differences are:
3. Raw Gadget provides a way to select a UDC device/driver to bind to,
   while GadgetFS currently binds to the first available UDC.

4. Raw Gadget uses predictable endpoint names (handles) across different
   UDCs (as long as UDCs have enough endpoints of each required transfer
   type).
4. Raw Gadget explicitly exposes information about endpoints addresses and
   capabilities allowing a user to write UDC-agnostic gadgets.

5. Raw Gadget has ioctl-based interface instead of a filesystem-based one.

@@ -50,12 +49,36 @@ The typical usage of Raw Gadget looks like:
   Raw Gadget and react to those depending on what kind of USB device
   needs to be emulated.

Note, that some UDC drivers have fixed addresses assigned to endpoints, and
therefore arbitrary endpoint addresses can't be used in the descriptors.
Nevertheles, Raw Gadget provides a UDC-agnostic way to write USB gadgets.
Once a USB_RAW_EVENT_CONNECT event is received via USB_RAW_IOCTL_EVENT_FETCH,
the USB_RAW_IOCTL_EPS_INFO ioctl can be used to find out information about
endpoints that the UDC driver has. Based on that information, the user must
chose UDC endpoints that will be used for the gadget being emulated, and
properly assign addresses in endpoint descriptors.

You can find usage examples (along with a test suite) here:

https://github.com/xairy/raw-gadget

Internal details
~~~~~~~~~~~~~~~~

Currently every endpoint read/write ioctl submits a USB request and waits until
its completion. This is the desired mode for coverage-guided fuzzing (as we'd
like all USB request processing happen during the lifetime of a syscall),
and must be kept in the implementation. (This might be slow for real world
applications, thus the O_NONBLOCK improvement suggestion below.)

Potential future improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Implement ioctl's for setting/clearing halt status on endpoints.

- Reporting more events (suspend, resume, etc.) through
  USB_RAW_IOCTL_EVENT_FETCH.
- Report more events (suspend, resume, etc.) through USB_RAW_IOCTL_EVENT_FETCH.

- Support O_NONBLOCK I/O.

- Support USB 3 features (accept SS endpoint companion descriptor when
  enabling endpoints; allow providing stream_id for bulk transfers).

- Support ISO transfer features (expose frame_number for completed requests).
+2 −0
Original line number Diff line number Diff line
@@ -28,3 +28,5 @@ KVM
   arm/index

   devices/index

   running-nested-guests
Loading