diff options
| author | Ian Abbott <[email protected]> | 2025-07-25 14:10:34 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2025-08-19 10:57:01 +0000 |
| commit | 7afba9221f70d4cbce0f417c558879cba0eb5e66 (patch) | |
| tree | 29da11034d2297d40e4972083ab6f8594c791578 /fs/btrfs/dev-replace.c | |
| parent | comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_io... (diff) | |
| download | kernel-7afba9221f70d4cbce0f417c558879cba0eb5e66.tar.gz kernel-7afba9221f70d4cbce0f417c558879cba0eb5e66.zip | |
comedi: Make insn_rw_emulate_bits() do insn->n samples
The `insn_rw_emulate_bits()` function is used as a default handler for
`INSN_READ` instructions for subdevices that have a handler for
`INSN_BITS` but not for `INSN_READ`. Similarly, it is used as a default
handler for `INSN_WRITE` instructions for subdevices that have a handler
for `INSN_BITS` but not for `INSN_WRITE`. It works by emulating the
`INSN_READ` or `INSN_WRITE` instruction handling with a constructed
`INSN_BITS` instruction. However, `INSN_READ` and `INSN_WRITE`
instructions are supposed to be able read or write multiple samples,
indicated by the `insn->n` value, but `insn_rw_emulate_bits()` currently
only handles a single sample. For `INSN_READ`, the comedi core will
copy `insn->n` samples back to user-space. (That triggered KASAN
kernel-infoleak errors when `insn->n` was greater than 1, but that is
being fixed more generally elsewhere in the comedi core.)
Make `insn_rw_emulate_bits()` either handle `insn->n` samples, or return
an error, to conform to the general expectation for `INSN_READ` and
`INSN_WRITE` handlers.
Fixes: ed9eccbe8970 ("Staging: add comedi core")
Cc: stable <[email protected]> # 5.13+
Signed-off-by: Ian Abbott <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions
