ANDROID: trusty-ipc: correct data_source flag of struct iov_iter in filp_send_ioctl()

Upstream commit a41dad905e5a3 ("iov_iter: saner checks for attempt
to copy to/from iterator") introduced a strict check of data_source
flag when copy to/from iterator is done.
This led to the following one-time warning in kernel logs:

WARNING: CPU: 6 PID: 749 at lib/iov_iter.c:623 _copy_from_iter+0xe4/0x4f0
...
pc : _copy_from_iter+0xe4/0x4f0
lr : tipc_ioctl+0x6f8/0xb04 [trusty_ipc]
sp : ffffffc012433b10
...
Call trace:
 _copy_from_iter+0xe4/0x4f0
 tipc_ioctl+0x6f8/0xb04 [trusty_ipc]
 __arm64_sys_ioctl+0xb0/0xf0
 invoke_syscall+0x60/0x130
 el0_svc_common+0xbc/0x100
 do_el0_svc+0x38/0xb0
 el0_svc+0x34/0xc4
 el0t_64_sync_handler+0x8c/0xfc
 el0t_64_sync+0x1a8/0x1ac
---[ end trace 0000000000000000 ]---

and not working communication with trusted application(s) in TEE.
Drivers that rely on this also stopped working i.e. fingerprint.

When copying from iterator we should use WRITE flag for data_source
in filp_send_ioctl() which eventually calls txbuf_write_iter().

Bug: 267276067
Test: manually
Change-Id: If3dc73737a03eb76b6e696dd976f58e73fe8de02
Signed-off-by: Alexey Klimov <klimova@google.com>
(cherry picked from commit b05efd30832632617922ec172da4b4fb418b48be)
1 file changed
tree: a756cbef4ab7d02a241ddee3b23f16adf3f6e64a
  1. Documentation/
  2. drivers/
  3. include/