Commit graph

1105317 commits

Author SHA1 Message Date
Stefan Roesch
7a51e5b44b io_uring: support CQE32 in io_uring_cqe
This adds the big_cqe array to the struct io_uring_cqe to support large
CQE's.

Co-developed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Stefan Roesch <shr@fb.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Link: https://lore.kernel.org/r/20220426182134.136504-2-shr@fb.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:35:33 -06:00
Jens Axboe
ebdeb7c01d io_uring: add support for 128-byte SQEs
Normal SQEs are 64-bytes in length, which is fine for all the commands
we support. However, in preparation for supporting passthrough IO,
provide an option for setting up a ring with 128-byte SQEs.

We continue to use the same type for io_uring_sqe, it's marked and
commented with a zero sized array pad at the end. This provides up
to 80 bytes of data for a passthrough command - 64 bytes for the
extra added data, and 16 bytes available at the end of the existing
SQE.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:35:33 -06:00
Jens Axboe
b5ba65df47 Merge branch 'for-5.19/io_uring-socket' into for-5.19/io_uring-passthrough
* for-5.19/io_uring-socket:
  io_uring: use the text representation of ops in trace
  io_uring: rename op -> opcode
  io_uring: add io_uring_get_opcode
  io_uring: add type to op enum
  io_uring: add socket(2) support
  net: add __sys_socket_file()
  io_uring: fix trace for reduced sqe padding
  io_uring: add fgetxattr and getxattr support
  io_uring: add fsetxattr and setxattr support
  fs: split off do_getxattr from getxattr
  fs: split off setxattr_copy and do_setxattr function from setxattr
2022-05-09 06:35:28 -06:00
Jens Axboe
1308689906 Merge branch 'for-5.19/io_uring' into for-5.19/io_uring-passthrough
* for-5.19/io_uring: (85 commits)
  io_uring: don't clear req->kbuf when buffer selection is done
  io_uring: eliminate the need to track provided buffer ID separately
  io_uring: move provided buffer state closer to submit state
  io_uring: move provided and fixed buffers into the same io_kiocb area
  io_uring: abstract out provided buffer list selection
  io_uring: never call io_buffer_select() for a buffer re-select
  io_uring: get rid of hashed provided buffer groups
  io_uring: always use req->buf_index for the provided buffer group
  io_uring: ignore ->buf_index if REQ_F_BUFFER_SELECT isn't set
  io_uring: kill io_rw_buffer_select() wrapper
  io_uring: make io_buffer_select() return the user address directly
  io_uring: kill io_recv_buffer_select() wrapper
  io_uring: use 'sr' vs 'req->sr_msg' consistently
  io_uring: add POLL_FIRST support for send/sendmsg and recv/recvmsg
  io_uring: check IOPOLL/ioprio support upfront
  io_uring: replace smp_mb() with smp_mb__after_atomic() in io_sq_thread()
  io_uring: add IORING_SETUP_TASKRUN_FLAG
  io_uring: use TWA_SIGNAL_NO_IPI if IORING_SETUP_COOP_TASKRUN is used
  io_uring: set task_work notify method at init time
  io-wq: use __set_notify_signal() to wake workers
  ...
2022-05-09 06:35:11 -06:00
Arnd Bergmann
3d09c0dfd0 i.MX dt-bindings update for 5.19:
- Various board compatible additions to fsl.yaml.
 - Update fsl-imx-dma bindings to deprecate '#dma-channels' and
   '#dma-requests'.
 - Add bindings for i.MX8MP HDMI and media block control.
 - Add vendor prefix for Storopack.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmJ3IAcUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM5THgf+JCUpc9SFNqU2LbfFofRnMn6X0W6M
 /eFUX6gxSs6GfsZQkZyDRWHwF7gS3W/iBO8cLlDaXmnnggn8/7e5b5TI9z0UmlQ+
 56N0Hlt9AhpURwknz/CLHbgywFPCXoOHJhlrTYJAATpnJweoN/7yN1Yt2lSXfHcy
 OapUYJC33rZjQFFSA3VF+e+VTuSkS0fOfyAqrC1A3Ye0miUeuJN6BXpPttjrvRj3
 ehuv91MMCv8al9sEbo1HWNkrReWrBbxsgCXE0G/H5EaQRxpW7JluvfK21DUWIxHK
 aolcwPS3+ihW8B68PTWGGty9PC9KaeqAidCoJmOFakvtRsw/O9V6vIGb+g==
 =/kl/
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJ5CfkACgkQmmx57+YA
 GNmvbRAAuTtAdltAxpvP+M+QDcWfEm4/g3W2JJmVMwpM/rG+J8EcKQZPYp7ihL7C
 DTiI/aFd6wLTWemLS6Al3obpqJtiWXtZcpziF03G0bHDuCrYlNYa3o8ygqX88I4K
 xadecY8c72GhfCWGRyensr/jYp/l8iZNQ9w/4B14veZeqhU1Dwu/w/y+JeVBNfGc
 6dIkZ7kdTKetM9rvsv+cajFCyWstKktHdJoAqk1+a/0mGUALk0Qk3+KKJCF8Y7to
 wgvbftq/Raq4fPqTiNBPfXc7Uq20ByL7xT568UbxVvr/1BG7RAtkuBpaU/hyDrMM
 Bnh/EtV15dub8u2/AN+1jgnBiC2aZmmpDI0kofBWE6F/XkDqJ2oB4eSDROorzCby
 RXCnwk+sUni3MOpRHNY2NlSaZkaGjqGVYkVqWtMaqYRpEt2eJGFUOGgwWPyD1q22
 6Tyy2QORhUtn8DdW7fcqgIcJ2QK7umLIVlc0OV1wuf30KksxRbNPmEQZTmaKXoyV
 1SnRdS3cXzLi7FvVloyY45HlSV1iHxFywpMUiwb7WlpNxIlVSsJpF2xEvQoeRRdZ
 dswWlNHMjKCB0Nb93OjFCbUzINRLm1j78bMs1l6ST15Yt7R35oyInWdavJXtvHmc
 ZePoSzDaWGRK2kF0XUZxE4hlBoHtAJezav+kc+daY3LshBPJws0=
 =//D3
 -----END PGP SIGNATURE-----

Merge tag 'imx-bindings-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt

i.MX dt-bindings update for 5.19:

- Various board compatible additions to fsl.yaml.
- Update fsl-imx-dma bindings to deprecate '#dma-channels' and
  '#dma-requests'.
- Add bindings for i.MX8MP HDMI and media block control.
- Add vendor prefix for Storopack.

* tag 'imx-bindings-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  dt-bindings: arm: Add bosch acc board
  dt-bindings: arm: fsl: Add Storopack i.MX7D SMEGW01 board
  dt-bindings: vendor-prefixes: Add prefix for Storopack
  dt-bindings: dmaengine: fsl-imx: deprecate '#dma-channels' and '#dma-requests'
  dt-bindings: arm: fsl: add toradex,colibri-imx6ull
  dt-bindings: arm: fsl: Add Engicam i.Core MX8M Plus EDIMM2.2 Starter Kit
  dt-bindings: arm: fsl: add ls1021a-iot board
  dt-bindings: arm: Add i.MX8M Mini Toradex Verdin based Menlo board
  dt-bindings: arm: Add i.MX8M Plus Gateworks GW74xx board
  dt-bindings: arm: fsl: add IMX8MN DDR3L eval board
  dt-bindings: arm: fsl: Add carriers for toradex,colibri-imx6dl
  dt-bindings: arm: fsl: imx6dl-colibri: Drop dedicated v1.1 bindings
  dt-bindings: arm: fsl: add toradex,verdin-imx8mp et al.
  dt-bindings: arm: Add i.MX53 based Menlo board comment
  dt-bindings: arm: fsl: add PHYTEC phyGATE Tauri i.MX6 ULL
  dt-bindings: arm: fsl: add TQ Systems boards based on i.MX6UL(L)
  dt-bindings: arm: Add Data Modul i.MX8M Mini eDM SBC
  dt-bindings: soc: add binding for i.MX8MP HDMI blk-ctrl
  dt-bindings: power: imx8mp: add defines for HDMI blk-ctrl domains
  dt-bindings: soc: Add i.MX8MP media block control DT bindings

Link: https://lore.kernel.org/r/20220508033843.2773685-1-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-09 14:32:57 +02:00
Jens Axboe
7ccba24d3b io_uring: don't clear req->kbuf when buffer selection is done
It's not needed as the REQ_F_BUFFER_SELECTED flag tracks the state of
whether or not kbuf is valid, so just drop it.

Suggested-by: Dylan Yudaken <dylany@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
1dbd023eb0 io_uring: eliminate the need to track provided buffer ID separately
We have io_kiocb->buf_index which is used for either fixed buffers, or
for provided buffers. For the latter, it's used to hold the buffer group
ID for buffer selection. Post selection, req->kbuf->bid is used to get
the buffer ID.

Store the buffer ID, when selected, in req->buf_index. If we do end up
recycling the buffer, reset it back to the buffer group ID.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
660cbfa234 io_uring: move provided buffer state closer to submit state
The timeout and other items that follow are less hot, so let's move the
provided buffer state above that.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
a4f8d94cfb io_uring: move provided and fixed buffers into the same io_kiocb area
These are mutually exclusive - if you use provided buffers, then you
cannot use fixed buffers and vice versa. Move them into the same spot
in the io_kiocb, which is also advantageous for provided buffers as
they get near the submit side hot cacheline.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
149c69b04a io_uring: abstract out provided buffer list selection
In preparation for providing another way to select a buffer, move the
existing logic into a helper.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
b66e65f414 io_uring: never call io_buffer_select() for a buffer re-select
Callers already have room to store the addr and length information,
clean it up by having the caller just assign the previously provided
data.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
9cfc7e94e4 io_uring: get rid of hashed provided buffer groups
Use a plain array for any group ID that's less than 64, and punt
anything beyond that to an xarray. 64 fits in a page even for 4KB
page sizes and with the planned additions.

This makes the expected group usage faster by avoiding a hash and lookup
to find our list, and it uses less memory upfront by not allocating any
memory for provided buffers unless it's actually being used.

Suggested-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
4e90670252 io_uring: always use req->buf_index for the provided buffer group
The read/write opcodes use it already, but the recv/recvmsg do not. If
we switch them over and read and validate this at init time while we're
checking if the opcode supports it anyway, then we can do it in one spot
and we don't have to pass in a separate group ID for io_buffer_select().

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
bb68d504f7 io_uring: ignore ->buf_index if REQ_F_BUFFER_SELECT isn't set
There's no point in validity checking buf_index if the request doesn't
have REQ_F_BUFFER_SELECT set, as we will never use it for that case.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
e5b003495e io_uring: kill io_rw_buffer_select() wrapper
After the recent changes, this is direct call to io_buffer_select()
anyway. With this change, there are no wrappers left for provided
buffer selection.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:06 -06:00
Jens Axboe
c54d52c2d6 io_uring: make io_buffer_select() return the user address directly
There's no point in having callers provide a kbuf, we're just returning
the address anyway.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-09 06:29:02 -06:00
Arnd Bergmann
168b43ac21 TI K3 device tree updates for v5.19
New Features:
 J721e:
 * Enable DSS, DP, HDMI on J721e EVM and SK
 AM62:
 * MCAN, MCU GPIO, ECAP APWM, DMA, Etherent and several peripheral on AM62 SK EVM
 AM64:
 * Enable Wireless LAN support
 
 Fixes:
 Drop incorrect MCU UART clock rates
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEEyRC2zAhGcGjrhiNExEYeRXyRFuMFAmJ09SgQHHZpZ25lc2hy
 QHRpLmNvbQAKCRDERh5FfJEW4xthB/0XAFR46Pzyb4EX09hhFyEmjei6y+ZcQ2EC
 aH0Ynu+WTnHlD1NkX9SoMSfrU+VtBxQCFJFgoljrb6BnubEcwldfg2uzFVCoi5VN
 3qS55SCjJJQV0u57UadytF+AU0qdcRsCpIiumtoTiImVeTaIc7UU1s64ErlYthKF
 RJCvoWYKXvfIuhz3u72jIb7OGmUtSa6jtpTXBoIchZXGaCFeQw9fHKKO/0sjtFAk
 a4lQa64TvS20SJ4iPFd6gK0befZQHG7+fm5v00RkyGqwqKuI4vwZv0CRKROuyIoD
 rk44ifIReSufneRwqWhHggQlP7OmI+Ly233hxW4q12UT6CUEWWpC
 =e3yn
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJ5BsIACgkQmmx57+YA
 GNnr5hAAmxH43IjNRfJT5GbITOf0hIaoG9ygWNRiuIvnQD8HIVD8KCQ402zpb/OK
 VP9Gq7G1CQ22mT0rNipjvZE15WdN2CVRrmc+PInGlhCgkzjwOtDjCKs5IjSpbS7z
 QvI/oCxSWPnVbSrGRyND8xGdfDC3Tnd4U4RxOE1nHZ35d7GMTIX/tjDLrL35NDqK
 lf8bgHEL5c3Mdcep1vURZ7hlLwKP+zxtfKJ8fe0A0GjmFfKJXWcZA8/JvM8Id+8+
 m+BwyMAvupacb3l8aDxmsz8bE0ulz/B9yAlzun8IYZwHqRUN82sQkKoj/fX5eSdH
 wi1jhDpEpse0ElOrIWAX7/FCdVN2CvCaKGG7yYlD+bH7V4qx5O4btTGE7zWIRfuc
 lNx6t2yE+bF0YZOS1BQ6MSFlAtOFV5Cd9PX5qyJAlo+s0M85r0ckzORD3EzgOMaW
 dUERlRTSozAuI/7pqYXmEKIcNku7hDDanlt4mOsaWvoZO8HvAqkoepxo8omPkCwm
 BQa/2dT1kvvNk9plqVLghfxWl/fp2r3Ra764+kSVAObCb1AW9AEJfmua9xLg+kCA
 S7/Tu6gH5Gf2PiQFFNSzLJAiOWzPSIAynLoreA8uPt2p2NEnbHvMN7rQUaXELttm
 5qbxsPpp4yb4VaBwy32hZmSoJGa+8xBlAAILfIzlLhxPtzTyW2s=
 =sY5d
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-dt-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into arm/dt

TI K3 device tree updates for v5.19

New Features:
J721e:
* Enable DSS, DP, HDMI on J721e EVM and SK
AM62:
* MCAN, MCU GPIO, ECAP APWM, DMA, Etherent and several peripheral on AM62 SK EVM
AM64:
* Enable Wireless LAN support

Fixes:
Drop incorrect MCU UART clock rates

* tag 'ti-k3-dt-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: dts: ti: k3-j721e-sk: Enable HDMI
  arm64: dts: ti: k3-j721e-sk: Enable DisplayPort
  arm64: dts: ti: k3-j721e-common-proc-board: add DP to j7 evm
  arm64: dts: ti: k3-j721e-*: add DP & DP PHY
  arm64: dts: ti: k3-am62: Add SA3UL ranges in cbass_main
  arm64: dts: ti: k3-am62: Add support for MCAN
  arm64: dts: ti: k3-am62-mcu: Enable MCU GPIO module
  arm64: dts: ti: k3-am625-sk: Add ECAP APWM nodes
  arm64: dts: ti: k3-am625-sk: Enable on board peripherals
  arm64: dts: ti: k3-am62: Add more peripheral nodes
  arm64: dts: ti: k3-am642-sk: Enable WLAN connected to SDHCI0
  arm64: dts: ti: k3-am64-mcu: remove incorrect UART base clock rates

Link: https://lore.kernel.org/r/3dc2011b-eb6d-dcd5-3921-57f6a1cf6d8e@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-09 14:19:14 +02:00
Arnd Bergmann
7665a85a69 Keystone2 device tree updates for v5.19
* Cleanups for SPI NOR / flash
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmJ2nHYACgkQ3bWEnRc2
 JJ0v1A/+K4ty/ZIrPljjE6YJOS4nHANov3qBMUHM8occk9MwuStt/n/9NmlSAZQD
 KkAU7yrYNSWQyDV4C+sFmBN4HPWQ8EJmbxOAKA0tS5UV0PaqTGqkYuZsAHFduk2Z
 cdnmBVMGtZkqWNs9Ao2Grjb67M3vNy1zkrNsr9ri+J+sV2HzC6UFJ+efvycw4keJ
 4+vZYpt7rtKiKgWrs9nYlAqNucwcuGqESd0xdv+dBLvUKoUur4jNkZLH5RWTh8o9
 JYvP0j9G2LGq/KihUJU2FYzJHHXOmNNhAH3Wyo1PdAcOqCboBkVBd+qzrsLYHAwG
 IEgnK8vQtleU7bBhWTRlKlxSQATiY/YsqAj0MhtCAYRnZDIoCmUdgALTQ5dgzoJI
 Gr7fUJM9HqZwzBumLx2UlPQYMPVyoGuK9ILd22DhUUMMGjD1UcVK+AttjaMsx0j6
 8cPHnEX0KttYxIQR2V+9cPRxmHx60kxkgyDKZqnsHSxTRQ0+t+tBfhMq8Dl9mLXW
 5/DjlkzgcIFosl+j0QLU/VDgryt3ao59pHYmYMHclgev4/On+Hly2NTCH2lWLf+x
 Zf9icVV40Sjpa54FgVCpJGqmxYGPkhUu3B1MdEoMtVjMCcRO59uxy4rqieL3u6VT
 paAjIDdBZHBSKEeJSlk6BfCjXvOU0Qxx16IyJOwVGPEAoYGM7ZM=
 =GE1q
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmJ5BR0ACgkQmmx57+YA
 GNnqoRAAvwqTXyTeElO4Es5UVbMhiE8YKlKbiD9kLhAs2MDXhKbHsyFi9ypcWsFg
 pTjzKb7cOSz4dD2yiWKQp7s39pK65CwfNLH7tY842vaZVrIAxJ3qBwpTyG/g7WKI
 W8pUYBAQ2XF5ytkFqL3DU+udwxanCWUfMfx4sk+87KeNCBKGd5b9Cqtla9cimzq2
 uwWnSpwD6pKZVG9AuJt5ILBmuUb+kzpKZrVVPJOWsTgROUfhardGKrhiprTqDlW4
 I4bUo5cTdda6LpYb35bgKi7bASzxJBlHjSm6/sNuTN5uaylcyRStL7eznyJwtal5
 tfgTG8vBPs6CN9wKlJDZEuD0eQ68KrlN9EXv6O9nY2VO5cmPtY1uU15tEFfEwA2O
 h+WAep/R3ckjIjSbjNOEkL9LGbMCfRukTPUcO1hzqt78ku80sus5g9q7liebaUol
 Osck00b7TjvwCD0J9EoNy+xZsxsWq7wGY0Mca9Xi2YgYX4+Wl652e9CQkF+3QhNc
 s+MgdLBtS/V33lvpyRdfYr73bzmbJXLceDAofStbbXZFjUdCk07TUU6Hmyvp285Q
 m/H1rULaztJlJy+B9i1RzFbaChnp3Ji1Bcf3mqV7Z/ePZEAF7BaSSDn+eXBplV64
 qgZadJdjwvlZSxYIEYgi85j+XfMj3QpEIdnVAOVZmG9Sc2t6Lyo=
 =nzZG
 -----END PGP SIGNATURE-----

Merge tag 'ti-keystone-dt-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into arm/dt

Keystone2 device tree updates for v5.19

* Cleanups for SPI NOR / flash

* tag 'ti-keystone-dt-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  ARM: dts: keystone: Fix missing fallback and case in SPI NOR node compatible
  ARM: dts: keystone: Align SPI NOR node name with dtschema

Link: https://lore.kernel.org/r/20220507163435.tcg46cacwqhe7n64@busily
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-09 14:12:13 +02:00
Bob Pearson
4703b4f0d9 RDMA/rxe: Enforce IBA C11-17
Add a counter to keep track of the number of WQs connected to a CQ and
return an error if destroy_cq() is called while the counter is non zero.

Link: https://lore.kernel.org/r/20220421014042.26985-8-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2022-05-09 09:03:45 -03:00
Bob Pearson
cde3f5d682 RDMA/rxe: Move mw cleanup code to rxe_mw_cleanup()
Move code from rxe_dealloc_mw() to rxe_mw_cleanup() to allow flows which
hold a reference to mw to complete.

Link: https://lore.kernel.org/r/20220421014042.26985-7-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2022-05-09 09:03:45 -03:00
Bob Pearson
cf40367961 RDMA/rxe: Move mr cleanup code to rxe_mr_cleanup()
Move the code which tears down an mr to rxe_mr_cleanup to allow operations
holding a reference to the mr to complete.

Link: https://lore.kernel.org/r/20220421014042.26985-6-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2022-05-09 09:03:45 -03:00
Bob Pearson
ed2b5dd0f8 RDMA/rxe: Move qp cleanup code to rxe_qp_do_cleanup()
Move the code from rxe_qp_destroy() to rxe_qp_do_cleanup().  This allows
flows holding references to qp to complete before the qp object is torn
down.

Link: https://lore.kernel.org/r/20220421014042.26985-5-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2022-05-09 09:03:45 -03:00
Bob Pearson
4e05a4b329 RDMA/rxe: Check rxe_get() return value
In the tasklets (completer, responder, and requester) check the return
value from rxe_get() to detect failures to get a reference.  This only
occurs if the qp has had its reference count drop to zero which indicates
that it no longer should be used.

The ref is never 0 today because the tasklets are flushed before the ref
is dropped. The next patch changes this so that the ref is dropped then
the tasklets are flushed.

Link: https://lore.kernel.org/r/20220421014042.26985-4-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2022-05-09 09:03:45 -03:00
Bob Pearson
b2a41678fc RDMA/rxe: Add rxe_srq_cleanup()
Move cleanup code from rxe_destroy_srq() to rxe_srq_cleanup() which is
called after all references are dropped to allow code depending on the srq
object to complete.

Link: https://lore.kernel.org/r/20220421014042.26985-3-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2022-05-09 09:03:39 -03:00
Gleb Fotengauer-Malinovskiy
a36e07dfe6 rfkill: uapi: fix RFKILL_IOCTL_MAX_SIZE ioctl request definition
The definition of RFKILL_IOCTL_MAX_SIZE introduced by commit
54f586a915 ("rfkill: make new event layout opt-in") is unusable
since it is based on RFKILL_IOC_EXT_SIZE which has not been defined.
Fix that by replacing the undefined constant with the constant which
is intended to be used in this definition.

Fixes: 54f586a915 ("rfkill: make new event layout opt-in")
Cc: stable@vger.kernel.org # 5.11+
Signed-off-by: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Link: https://lore.kernel.org/r/20220506172454.120319-1-glebfm@altlinux.org
[add commit message provided later by Dmitry]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2022-05-09 14:00:07 +02:00
Johannes Berg
f971e1887f nl80211: fix locking in nl80211_set_tx_bitrate_mask()
This accesses the wdev's chandef etc., so cannot safely
be used without holding the lock.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20220506102136.06b7205419e6.I2a87c05fbd8bc5e565e84d190d4cfd2e92695a90@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2022-05-09 14:00:07 +02:00
Johannes Berg
9e2db50f1e mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
This is needed since it might use (and pass out) pointers to
e.g. keys protected by RCU. Can't really happen here as the
frames aren't encrypted, but we need to still adhere to the
rules.

Fixes: cacfddf82b ("mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20220505230421.5f139f9de173.I77ae111a28f7c0e9fd1ebcee7f39dbec5c606770@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2022-05-09 14:00:07 +02:00
Johannes Berg
a59d55568d mac80211_hwsim: fix RCU protected chanctx access
We need to RCU protect the chanctx_conf access, so
do that.

Fixes: 585625c955 ("mac80211_hwsim: check TX and STA bandwidth")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20220505230421.fb8055c081a2.Ic6da3307c77a909bd61a0ea25dc2a4b08fe1b03f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2022-05-09 14:00:07 +02:00
Wen Gong
9497b7880f ath11k: reset 11d state in process of recovery
When doing simulate_fw_crash operation periodically with a short interval
time such as 10 seconds, it is easy happened WMI command timed out for
WMI_SCAN_CHAN_LIST_CMDID in ath11k_reg_update_chan_list().

log:
[42287.610053] ath11k_pci 0000:01:00.0: wmi command 12291 timeout
[42287.610064] ath11k_pci 0000:01:00.0: failed to send WMI_SCAN_CHAN_LIST cmd
[42287.610073] ath11k_pci 0000:01:00.0: failed to perform regd update : -11

Note that this issue does not occur with a longer interval such as 20 seconds.

The reason the issue occurs with a shorter interval is the following steps:
1) Upon initial boot, or after device recovery, the initial hw scan plus
the 11d scan will run, and when 6 GHz support is present, these scans
can take up to 12 seconds to complete, so ath11k_reg_update_chan_list()
is still waiting the completion of ar->completed_11d_scan.
2) If a simulate_fw_crash operation is received during this time, those
scans do not complete, and ath11k_core_pre_reconfigure_recovery()
complete the ar->completed_11d_scan, then ath11k_reg_update_chan_list()
wakeup and start to send WMI_SCAN_CHAN_LIST_CMDID, but firmware is crashed
at this moment, so wmi timed out occur.

To address this issue, reset the 11d state during device recovery so that
WMI_SCAN_CHAN_LIST_CMDID does not timed out for short interval time such
as 10 seconds.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3

Fixes: 1f682dc9fb ("ath11k: reduce the wait time of 11d scan and hw scan while add interface")
Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220505034636.29582-1-quic_wgong@quicinc.com
2022-05-09 14:54:37 +03:00
Yang Yingliang
a2b331ac11
spi: spi-fsl-qspi: check return value after calling platform_get_resource_byname()
It will cause null-ptr-deref if platform_get_resource_byname() returns NULL,
we need check the return value.

Fixes: 858e26a515 ("spi: spi-fsl-qspi: Reduce devm_ioremap size to 4 times AHB buffer size")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20220505093954.1285615-1-yangyingliang@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:48:47 +01:00
Marek Vasut
5c422f0b97
regmap: Add missing map->bus check
The map->bus can be NULL here, add the missing NULL pointer check.

Fixes: d77e745613 ("regmap: Add bulk read/write callbacks into regmap_config")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mark Brown <broonie@kernel.org>
To: linux-kernel@vger.kernel.org
Link: https://lore.kernel.org/r/20220509003035.225272-1-marex@denx.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:48:45 +01:00
Minghao Chi
5cb3bdd6bd
ASoC: pcm186x: simplify the return expression of pcm186x_power_off()
Simplify the return expression.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Link: https://lore.kernel.org/r/20220505022102.54650-1-chi.minghao@zte.com.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:48:43 +01:00
Minghao Chi
74eaa8126f
ASoC: mediatek: simplify the return expression of mtk_dai_pcm_prepare()
Simplify the return expression.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Link: https://lore.kernel.org/r/20220505021808.54337-1-chi.minghao@zte.com.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:48:42 +01:00
Minghao Chi
ef1258a782
ASoC: uniphier: simplify the return expression of uniphier_aio_compr_set_params()
Simplify the return expression.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Link: https://lore.kernel.org/r/20220505021733.54275-1-chi.minghao@zte.com.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:48:41 +01:00
Andy Shevchenko
85437018eb pinctrl: microchip-sgpio: Switch to use fwnode instead of of_node
GPIO library now accepts fwnode as a firmware node, so
switch the driver to use it.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220503151517.59115-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-05-09 13:47:49 +02:00
Nícolas F. R. A. Prado
0adccaf1ea
ASoC: dt-bindings: rt5682: Add #sound-dai-cells
The rt5682 codec can be pointed to through a sound-dai property to be
used as part of a machine sound driver. dtc expects #sound-dai-cells to
be defined in the codec's node in those cases, so add it in the
dt-binding and set it to 0.

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20220429203039.2207848-4-nfraprado@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:47:00 +01:00
Nícolas F. R. A. Prado
2f45536587
ASoC: dt-bindings: rt1015p: Add #sound-dai-cells
The rt1015p codec can be pointed to through a sound-dai property to be
used as part of a machine sound driver. dtc expects #sound-dai-cells to
be defined in the codec's node in those cases, so add it in the
dt-binding and set it to 0.

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20220429203039.2207848-3-nfraprado@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:59 +01:00
Nícolas F. R. A. Prado
e056cf4341
ASoC: dt-bindings: mediatek: mt8192: Add i2s-share properties
The Mediatek AFE PCM controller for MT8192 allows sharing of an I2S bus
between two busses. Add a pattern for these properties in the
dt-binding.

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20220429203039.2207848-2-nfraprado@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:58 +01:00
Charles Keepax
e2d61f6255
ASoC: sdw-mockup: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-39-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:53 +01:00
Charles Keepax
96bc59d097
ASoC: wsa881x: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-38-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:52 +01:00
Andy Shevchenko
8f6a83daf7 pinctrl: equilibrium: Switch to use fwnode instead of of_node
GPIO library now accepts fwnode as a firmware node, so
switch the driver to use it.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220503151321.58800-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-05-09 13:46:51 +02:00
Charles Keepax
ff7f9aa523
ASoC: wcd938x: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-37-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:51 +01:00
Charles Keepax
7fb6f48351
ASoC: rt1316-sdw: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-36-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:50 +01:00
Charles Keepax
9b536b3469
ASoC: rt1308-sdw: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-35-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:49 +01:00
Charles Keepax
e8f4ddcb33
ASoC: rt715-sdca: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-34-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:48 +01:00
Charles Keepax
1a6750123b
ASoC: rt715: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-33-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:47 +01:00
Charles Keepax
3e50a50010
ASoC: rt711-sdca: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-32-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:46 +01:00
Charles Keepax
33f06beac3
ASoC: rt711: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-31-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:45 +01:00
Charles Keepax
4982fc1def
ASoC: rt700: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SoundWire DAI and as such
should have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-30-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:44 +01:00
Charles Keepax
e230b1b181
ASoC: wcd9335: Add endianness flag in snd_soc_component_driver
The endianness flag is used on the CODEC side to specify an
ambivalence to endian, typically because it is lost over the hardware
link. This device receives audio over a SLIMbus DAI and as such should
have endianness applied.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220504170905.332415-29-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-09 12:46:42 +01:00