Commit Graph

8444 Commits

Author SHA1 Message Date
Alistair Popple
52b66f8189 mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
commit 87c01d57fa23de82fff593a7d070933d08755801 upstream.

hmm_range_fault() can be used instead of get_user_pages() for devices
which allow faulting however unlike get_user_pages() it will return an
error when used on a VM_MIXEDMAP range.

To make hmm_range_fault() more closely match get_user_pages() remove
this restriction.  This requires dealing with the !ARCH_HAS_PTE_SPECIAL
case in hmm_vma_handle_pte().  Rather than replicating the logic of
vm_normal_page() call it directly and do a check for the zero pfn
similar to what get_user_pages() currently does.

Also add a test to hmm selftest to verify functionality.

Link: https://lkml.kernel.org/r/20211104012001.2555676-1-apopple@nvidia.com
Fixes: da4c3c735e ("mm/hmm/mirror: helper to snapshot CPU page table")
Signed-off-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Zi Yan <ziy@nvidia.com>
Cc: Ralph Campbell <rcampbell@nvidia.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-27 11:05:43 +01:00
Michael Ellerman
843fff4287 selftests/powerpc: Add a test of sigreturning to the kernel
[ Upstream commit a8968521cfdc3e339fe69473d6632e0aa8d7202a ]

We have a general signal fuzzer, sigfuz, which can modify the MSR & NIP
before sigreturn. But the chance of it hitting a kernel address and also
clearing MSR_PR is fairly slim.

So add a specific test of sigreturn to a kernel address, both with and
without attempting to clear MSR_PR (which the kernel must block).

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211209115944.4062384-1-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:05:03 +01:00
Thadeu Lima de Souza Cascardo
6a0a06c9b1 selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
[ Upstream commit 3c42e9542050d49610077e083c7c3f5fd5e26820 ]

A mis-match between reported and actual mitigation is not restricted to the
Vulnerable case. The guest might also report the mitigation as "Software
count cache flush" and the host will still mitigate with branch cache
disabled.

So, instead of skipping depending on the detected mitigation, simply skip
whenever the detected miss_percent is the expected one for a fully
mitigated system, that is, above 95%.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211207130557.40566-1-cascardo@canonical.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:05:01 +01:00
Jiri Olsa
0415b84eee bpf/selftests: Fix namespace mount setup in tc_redirect
[ Upstream commit 5e22dd18626726028a93ff1350a8a71a00fd843d ]

The tc_redirect umounts /sys in the new namespace, which can be
mounted as shared and cause global umount. The lazy umount also
takes down mounted trees under /sys like debugfs, which won't be
available after sysfs mounts again and could cause fails in other
tests.

  # cat /proc/self/mountinfo | grep debugfs
  34 23 0:7 / /sys/kernel/debug rw,nosuid,nodev,noexec,relatime shared:14 - debugfs debugfs rw
  # cat /proc/self/mountinfo | grep sysfs
  23 86 0:22 / /sys rw,nosuid,nodev,noexec,relatime shared:2 - sysfs sysfs rw
  # mount | grep debugfs
  debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)

  # ./test_progs -t tc_redirect
  #164 tc_redirect:OK
  Summary: 1/4 PASSED, 0 SKIPPED, 0 FAILED

  # mount | grep debugfs
  # cat /proc/self/mountinfo | grep debugfs
  # cat /proc/self/mountinfo | grep sysfs
  25 86 0:22 / /sys rw,relatime shared:2 - sysfs sysfs rw

Making the sysfs private under the new namespace so the umount won't
trigger the global sysfs umount.

Reported-by: Hangbin Liu <haliu@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Jussi Maki <joamaki@gmail.com>
Link: https://lore.kernel.org/bpf/20220104121030.138216-1-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:04:53 +01:00
Heiko Carstens
271842c326 selftests/ftrace: make kprobe profile testcase description unique
[ Upstream commit e5992f373c6eed6d09e5858e9623df1259b3ce30 ]

Commit 32f6e5da83 ("selftests/ftrace: Add kprobe profile testcase")
added a new kprobes testcase, but has a description which does not
describe what the test case is doing and is duplicating the description
of another test case.

Therefore change the test case description, so it is unique and then
allows easily to tell which test case actually passed or failed.

Reported-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:04:39 +01:00
Andrii Nakryiko
1f1161c9bb selftests/bpf: Fix bpf_object leak in skb_ctx selftest
[ Upstream commit 8c7a95520184b6677ca6075e12df9c208d57d088 ]

skb_ctx selftest didn't close bpf_object implicitly allocated by
bpf_prog_test_load() helper. Fix the problem by explicitly calling
bpf_object__close() at the end of the test.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Hengqi Chen <hengqi.chen@gmail.com>
Link: https://lore.kernel.org/bpf/20211107165521.9240-10-andrii@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:04:23 +01:00
Andrii Nakryiko
57d3ec1106 selftests/bpf: Destroy XDP link correctly
[ Upstream commit f91231eeeed752119f49eb6620cae44ec745a007 ]

bpf_link__detach() was confused with bpf_link__destroy() and leaves
leaked FD in the process. Fix the problem.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Hengqi Chen <hengqi.chen@gmail.com>
Link: https://lore.kernel.org/bpf/20211107165521.9240-9-andrii@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:04:23 +01:00
Andrii Nakryiko
7ffd2af808 selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
[ Upstream commit 8ba285874913da21ca39a46376e9cc5ce0f45f94 ]

Free up memory and resources used by temporary allocated memstream and
btf_dump instance.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Hengqi Chen <hengqi.chen@gmail.com>
Link: https://lore.kernel.org/bpf/20211107165521.9240-4-andrii@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:04:23 +01:00
Jakub Kicinski
f857f6cc5f selftests: harness: avoid false negatives if test has no ASSERTs
[ Upstream commit 3abedf4646fdc0036fcb8ebbc3b600667167fafe ]

Test can fail either immediately when ASSERT() failed or at the
end if one or more EXPECT() was not met. The exact return code
is decided based on the number of successful ASSERT()s.

If test has no ASSERT()s, however, the return code will be 0,
as if the test did not fail. Start counting ASSERT()s from 1.

Fixes: 369130b631 ("selftests: Enhance kselftest_harness.h to print which assert failed")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:03:33 +01:00
Anders Roxell
c0dbfef7e6 selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
[ Upstream commit a531b0c23c0fc68ad758cc31a74cf612a4dafeb0 ]

Building selftests/clone3 with clang warns about enumeration not handled
in switch case:

clone3.c:54:10: warning: enumeration value 'CLONE3_ARGS_NO_TEST' not handled in switch [-Wswitch]
        switch (test_mode) {
                ^

Add the missing switch case with a comment.

Fixes: 17a810699c ("selftests: add tests for clone3()")
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:03:33 +01:00
Maxim Mikityanskiy
48419bc90e bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
[ Upstream commit da54ab14953c38d98cb3e34c564c06c3739394b2 ]

The test for bpf_iter_task_vma assumes that the output will be longer
than 1 kB, as the comment above the loop says. Due to this assumption,
the loop becomes infinite if the output turns to be shorter than 1 kB.
The return value of read_fd_into_buffer is 0 when the end of file was
reached, and len isn't being increased any more.

This commit adds a break on EOF to handle short output correctly. For
the reference, this is the contents that I get when running test_progs
under vmtest.sh, and it's shorter than 1 kB:

00400000-00401000 r--p 00000000 fe:00 25867     /root/bpf/test_progs
00401000-00674000 r-xp 00001000 fe:00 25867     /root/bpf/test_progs
00674000-0095f000 r--p 00274000 fe:00 25867     /root/bpf/test_progs
0095f000-00983000 r--p 0055e000 fe:00 25867     /root/bpf/test_progs
00983000-00a8a000 rw-p 00582000 fe:00 25867     /root/bpf/test_progs
00a8a000-0484e000 rw-p 00000000 00:00 0
7f6c64000000-7f6c64021000 rw-p 00000000 00:00 0
7f6c64021000-7f6c68000000 ---p 00000000 00:00 0
7f6c6ac8f000-7f6c6ac90000 r--s 00000000 00:0d 8032
anon_inode:bpf-map
7f6c6ac90000-7f6c6ac91000 ---p 00000000 00:00 0
7f6c6ac91000-7f6c6b491000 rw-p 00000000 00:00 0
7f6c6b491000-7f6c6b492000 r--s 00000000 00:0d 8032
anon_inode:bpf-map
7f6c6b492000-7f6c6b493000 rw-s 00000000 00:0d 8032
anon_inode:bpf-map
7ffc1e23d000-7ffc1e25e000 rw-p 00000000 00:00 0
7ffc1e3b8000-7ffc1e3bc000 r--p 00000000 00:00 0
7ffc1e3bc000-7ffc1e3bd000 r-xp 00000000 00:00 0
7fffffffe000-7ffffffff000 --xp 00000000 00:00 0

Fixes: e8168840e1 ("selftests/bpf: Add test for bpf_iter_task_vma")
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211130181811.594220-1-maximmi@nvidia.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:03:27 +01:00
Tadeusz Struk
eb0da4d29a ANDROID: selftests: fix incfs_test
Fix incfs test build error:

incfs_test.c:4441:19: error: argument 2 is null but the corresponding
                      size argument 3 value is 1 [-Werror=nonnull]
 4441 |         TESTEQUAL(read(fd, NULL, 1), -1);
      |                   ^

Bug: 211066171

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I028d02aef9938a9abe6c529756b89d7cb07507f2
2022-01-26 09:02:17 +00:00
Greg Kroah-Hartman
173de0c81d Merge 5.15.14 into android13-5.15
Changes in 5.15.14
	fscache_cookie_enabled: check cookie is valid before accessing it
	selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv()
	tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
	tracing: Tag trace_percpu_buffer as a percpu pointer
	Revert "RDMA/mlx5: Fix releasing unallocated memory in dereg MR flow"
	ieee802154: atusb: fix uninit value in atusb_set_extended_addr
	i40e: Fix to not show opcode msg on unsuccessful VF MAC change
	iavf: Fix limit of total number of queues to active queues of VF
	RDMA/core: Don't infoleak GRH fields
	Revert "net: usb: r8152: Add MAC passthrough support for more Lenovo Docks"
	netrom: fix copying in user data in nr_setsockopt
	RDMA/uverbs: Check for null return of kmalloc_array
	mac80211: initialize variable have_higher_than_11mbit
	mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
	sfc: The RX page_ring is optional
	i40e: fix use-after-free in i40e_sync_filters_subtask()
	i40e: Fix for displaying message regarding NVM version
	i40e: Fix incorrect netdev's real number of RX/TX queues
	ftrace/samples: Add missing prototypes direct functions
	ipv4: Check attribute length for RTA_GATEWAY in multipath route
	ipv4: Check attribute length for RTA_FLOW in multipath route
	ipv6: Check attribute length for RTA_GATEWAY in multipath route
	ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route
	lwtunnel: Validate RTA_ENCAP_TYPE attribute length
	selftests: net: udpgro_fwd.sh: explicitly checking the available ping feature
	sctp: hold endpoint before calling cb in sctp_transport_lookup_process
	batman-adv: mcast: don't send link-local multicast to mcast routers
	sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
	net: ena: Fix undefined state when tx request id is out of bounds
	net: ena: Fix wrong rx request id by resetting device
	net: ena: Fix error handling when calculating max IO queues number
	md/raid1: fix missing bitmap update w/o WriteMostly devices
	EDAC/i10nm: Release mdev/mbase when failing to detect HBM
	KVM: x86: Check for rmaps allocation
	cgroup: Use open-time credentials for process migraton perm checks
	cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
	cgroup: Use open-time cgroup namespace for process migration perm checks
	Revert "i2c: core: support bus regulator controlling in adapter"
	i2c: mpc: Avoid out of bounds memory access
	xfs: map unwritten blocks in XFS_IOC_{ALLOC,FREE}SP just like fallocate
	power: supply: core: Break capacity loop
	power: reset: ltc2952: Fix use of floating point literals
	reset: renesas: Fix Runtime PM usage
	rndis_host: support Hytera digital radios
	gpio: gpio-aspeed-sgpio: Fix wrong hwirq base in irq handler
	net ticp:fix a kernel-infoleak in __tipc_sendmsg()
	phonet: refcount leak in pep_sock_accep
	fbdev: fbmem: add a helper to determine if an aperture is used by a fw fb
	drm/amdgpu: disable runpm if we are the primary adapter
	power: bq25890: Enable continuous conversion for ADC at charging
	ipv6: Continue processing multipath route even if gateway attribute is invalid
	ipv6: Do cleanup if attribute validation fails in multipath route
	auxdisplay: charlcd: checking for pointer reference before dereferencing
	drm/amdgpu: fix dropped backing store handling in amdgpu_dma_buf_move_notify
	drm/amd/pm: Fix xgmi link control on aldebaran
	usb: mtu3: fix interval value for intr and isoc
	scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
	ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
	net: udp: fix alignment problem in udp4_seq_show()
	atlantic: Fix buff_ring OOB in aq_ring_rx_clean
	drm/amd/pm: skip setting gfx cgpg in the s0ix suspend-resume
	drm/amdgpu: always reset the asic in suspend (v2)
	drm/amdgpu: put SMU into proper state on runpm suspending for BOCO capable platform
	mISDN: change function names to avoid conflicts
	drm/amd/display: fix B0 TMDS deepcolor no dislay issue
	drm/amd/display: Added power down for DCN10
	ipv6: raw: check passed optlen before reading
	userfaultfd/selftests: fix hugetlb area allocations
	ARM: dts: gpio-ranges property is now required
	Input: zinitix - make sure the IRQ is allocated before it gets enabled
	Revert "drm/amdgpu: stop scheduler when calling hw_fini (v2)"
	drm/amd/pm: keep the BACO feature enabled for suspend
	Linux 5.15.14

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ifc22d4db0c3aa2164c4769981847e0634f2ad463
2022-01-12 09:00:42 +01:00
Mike Kravetz
2f66e0976b userfaultfd/selftests: fix hugetlb area allocations
[ Upstream commit f5c73297181c6b3ad76537bad98eaad6d29b9333 ]

Currently, userfaultfd selftest for hugetlb as run from run_vmtests.sh
or any environment where there are 'just enough' hugetlb pages will
always fail with:

  testing events (fork, remap, remove):
		ERROR: UFFDIO_COPY error: -12 (errno=12, line=616)

The ENOMEM error code implies there are not enough hugetlb pages.
However, there are free hugetlb pages but they are all reserved.  There
is a basic problem with the way the test allocates hugetlb pages which
has existed since the test was originally written.

Due to the way 'cleanup' was done between different phases of the test,
this issue was masked until recently.  The issue was uncovered by commit
8ba6e86408 ("userfaultfd/selftests: reinitialize test context in each
test").

For the hugetlb test, src and dst areas are allocated as PRIVATE
mappings of a hugetlb file.  This means that at mmap time, pages are
reserved for the src and dst areas.  At the start of event testing (and
other tests) the src area is populated which results in allocation of
huge pages to fill the area and consumption of reserves associated with
the area.  Then, a child is forked to fault in the dst area.  Note that
the dst area was allocated in the parent and hence the parent owns the
reserves associated with the mapping.  The child has normal access to
the dst area, but can not use the reserves created/owned by the parent.
Thus, if there are no other huge pages available allocation of a page
for the dst by the child will fail.

Fix by not creating reserves for the dst area.  In this way the child
can use free (non-reserved) pages.

Also, MAP_PRIVATE of a file only makes sense if you are interested in
the contents of the file before making a COW copy.  The test does not do
this.  So, just use MAP_ANONYMOUS | MAP_HUGETLB to create an anonymous
hugetlb mapping.  There is no need to create a hugetlb file in the
non-shared case.

Link: https://lkml.kernel.org/r/20211217172919.7861-1-mike.kravetz@oracle.com
Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Mina Almasry <almasrymina@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-11 15:35:18 +01:00
Jianguo Wu
3c5c81d1e3 selftests: net: udpgro_fwd.sh: explicitly checking the available ping feature
commit 5e75d0b215b868337e7a193f28a543ec00e858b1 upstream.

As Paolo pointed out, the result of ping IPv6 address depends on
the running distro. So explicitly checking the available ping feature,
as e.g. do the bareudp.sh self-tests.

Fixes: 8b3170e07539 ("selftests: net: using ping6 for IPv6 in udpgro_fwd.sh")
Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
Link: https://lore.kernel.org/r/825ee22b-4245-dbf7-d2f7-a230770d6e21@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-11 15:35:14 +01:00
Shuah Khan
3cf50a3728 selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv()
commit dd40f44eabe1e122c6852fabb298aac05b083fce upstream.

Fix the following [-Wstringop-overread] by passing in the variable
instead of the value.

test_vsyscall.c: In function ‘test_process_vm_readv’:
test_vsyscall.c:500:22: warning: ‘__builtin_memcmp_eq’ specified bound 4096 exceeds source size 0 [-Wstringop-overread]
  500 |                 if (!memcmp(buf, (const void *)0xffffffffff600000, 4096)) {
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-11 15:35:12 +01:00
David Brazdil
fa6ad0bcb8 ANDROID: KVM: arm64: Add S2MPU kselftest
Add a kselftest which exercises the S2MPU's MPT logic. The functions are
included into a kernel module and exercised in EL1. This is because
testing the EL2 driver itself would require generating DMA traffic and
probing the S2MPU without crashing the system. Instead, the logic is
used on a local FMPT/SMPT and the results are inspected.

Test: run kvm/aarch64/s2mpu kselftest
Bug: 190463801
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: Ib1e572e3247d864e59fad8a4960e38956237ef8c
2022-01-10 18:24:20 +00:00
Greg Kroah-Hartman
009596c521 Merge 5.15.13 into android13-5.15
Changes in 5.15.13
	Input: i8042 - add deferred probe support
	Input: i8042 - enable deferred probe quirk for ASUS UM325UA
	tomoyo: Check exceeded quota early in tomoyo_domain_quota_is_ok().
	tomoyo: use hwight16() in tomoyo_domain_quota_is_ok()
	net/sched: Extend qdisc control block with tc control block
	parisc: Clear stale IIR value on instruction access rights trap
	platform/mellanox: mlxbf-pmc: Fix an IS_ERR() vs NULL bug in mlxbf_pmc_map_counters
	platform/x86: apple-gmux: use resource_size() with res
	memblock: fix memblock_phys_alloc() section mismatch error
	ALSA: hda: intel-sdw-acpi: harden detection of controller
	ALSA: hda: intel-sdw-acpi: go through HDAS ACPI at max depth of 2
	recordmcount.pl: fix typo in s390 mcount regex
	powerpc/ptdump: Fix DEBUG_WX since generic ptdump conversion
	efi: Move efifb_setup_from_dmi() prototype from arch headers
	selinux: initialize proto variable in selinux_ip_postroute_compat()
	scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
	net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources
	net/mlx5: Fix error print in case of IRQ request failed
	net/mlx5: Fix SF health recovery flow
	net/mlx5: Fix tc max supported prio for nic mode
	net/mlx5e: Wrap the tx reporter dump callback to extract the sq
	net/mlx5e: Fix interoperability between XSK and ICOSQ recovery flow
	net/mlx5e: Fix ICOSQ recovery flow for XSK
	net/mlx5e: Use tc sample stubs instead of ifdefs in source file
	net/mlx5e: Delete forward rule for ct or sample action
	udp: using datalen to cap ipv6 udp max gso segments
	selftests: Calculate udpgso segment count without header adjustment
	sctp: use call_rcu to free endpoint
	net/smc: fix using of uninitialized completions
	net: usb: pegasus: Do not drop long Ethernet frames
	net: ag71xx: Fix a potential double free in error handling paths
	net: lantiq_xrx200: fix statistics of received bytes
	NFC: st21nfca: Fix memory leak in device probe and remove
	net/smc: don't send CDC/LLC message if link not ready
	net/smc: fix kernel panic caused by race of smc_sock
	igc: Do not enable crosstimestamping for i225-V models
	igc: Fix TX timestamp support for non-MSI-X platforms
	drm/amd/display: Send s0i2_rdy in stream_count == 0 optimization
	drm/amd/display: Set optimize_pwr_state for DCN31
	ionic: Initialize the 'lif->dbid_inuse' bitmap
	net/mlx5e: Fix wrong features assignment in case of error
	net: bridge: mcast: add and enforce query interval minimum
	net: bridge: mcast: add and enforce startup query interval minimum
	selftests/net: udpgso_bench_tx: fix dst ip argument
	selftests: net: Fix a typo in udpgro_fwd.sh
	net: bridge: mcast: fix br_multicast_ctx_vlan_global_disabled helper
	net/ncsi: check for error return from call to nla_put_u32
	selftests: net: using ping6 for IPv6 in udpgro_fwd.sh
	fsl/fman: Fix missing put_device() call in fman_port_probe
	i2c: validate user data in compat ioctl
	nfc: uapi: use kernel size_t to fix user-space builds
	uapi: fix linux/nfc.h userspace compilation errors
	drm/nouveau: wait for the exclusive fence after the shared ones v2
	drm/amdgpu: When the VCN(1.0) block is suspended, powergating is explicitly enabled
	drm/amdgpu: add support for IP discovery gc_info table v2
	drm/amd/display: Changed pipe split policy to allow for multi-display pipe split
	xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
	usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
	usb: mtu3: add memory barrier before set GPD's HWO
	usb: mtu3: fix list_head check warning
	usb: mtu3: set interval of FS intr and isoc endpoint
	nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assert
	binder: fix async_free_space accounting for empty parcels
	scsi: vmw_pvscsi: Set residual data length conditionally
	Input: appletouch - initialize work before device registration
	Input: spaceball - fix parsing of movement data packets
	mm/damon/dbgfs: fix 'struct pid' leaks in 'dbgfs_target_ids_write()'
	net: fix use-after-free in tw_timer_handler
	fs/mount_setattr: always cleanup mount_kattr
	perf intel-pt: Fix parsing of VM time correlation arguments
	perf script: Fix CPU filtering of a script's switch events
	perf scripts python: intel-pt-events.py: Fix printing of switch events
	Linux 5.15.13

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ie0d5130643ce211d5e21ea9d11bc5577efeddc90
2022-01-05 15:36:44 +01:00
Jianguo Wu
20426341c0 selftests: net: using ping6 for IPv6 in udpgro_fwd.sh
[ Upstream commit 8b3170e07539855ee91bc5e2fa7780a4c9b5c7aa ]

udpgro_fwd.sh output following message:
  ping: 2001:db8:1:💯 Address family for hostname not supported

Using ping6 when pinging IPv6 addresses.

Fixes: a062260a9d ("selftests: net: add UDP GRO forwarding self-tests")
Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-05 12:42:37 +01:00
Jianguo Wu
5943eb7bba selftests: net: Fix a typo in udpgro_fwd.sh
[ Upstream commit add25d6d6c85f7b6d00a055ee0a4169acf845681 ]

$rvs -> $rcv

Fixes: a062260a9d ("selftests: net: add UDP GRO forwarding self-tests")
Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
Link: https://lore.kernel.org/r/d247d7c8-a03a-0abf-3c71-4006a051d133@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-05 12:42:37 +01:00
wujianguo
676345fa9c selftests/net: udpgso_bench_tx: fix dst ip argument
[ Upstream commit 9c1952aeaa98b3cfc49e2a79cb2c7d6a674213e9 ]

udpgso_bench_tx call setup_sockaddr() for dest address before
parsing all arguments, if we specify "-p ${dst_port}" after "-D ${dst_ip}",
then ${dst_port} will be ignored, and using default cfg_port 8000.

This will cause test case "multiple GRO socks" failed in udpgro.sh.

Setup sockaddr after parsing all arguments.

Fixes: 3a687bef14 ("selftests: udp gso benchmark")
Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/ff620d9f-5b52-06ab-5286-44b945453002@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-05 12:42:37 +01:00
Coco Li
df06c8dd7a selftests: Calculate udpgso segment count without header adjustment
[ Upstream commit 5471d5226c3b39b3d2f7011c082d5715795bd65c ]

The below referenced commit correctly updated the computation of number
of segments (gso_size) by using only the gso payload size and
removing the header lengths.

With this change the regression test started failing. Update
the tests to match this new behavior.

Both IPv4 and IPv6 tests are updated, as a separate patch in this series
will update udp_v6_send_skb to match this change in udp_send_skb.

Fixes: 158390e45612 ("udp: using datalen to cap max gso segments")
Signed-off-by: Coco Li <lixiaoyan@google.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20211223222441.2975883-2-lixiaoyan@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-05 12:42:35 +01:00
Greg Kroah-Hartman
37039d2a38 Merge 5.15.12 into android13-5.15
Changes in 5.15.12
	arm64: vdso32: require CROSS_COMPILE_COMPAT for gcc+bfd
	net: usb: lan78xx: add Allied Telesis AT29M2-AF
	ext4: prevent partial update of the extent blocks
	ext4: check for out-of-order index extents in ext4_valid_extent_entries()
	ext4: check for inconsistent extents between index and leaf block
	selftests: KVM: Fix non-x86 compiling
	HID: holtek: fix mouse probing
	HID: potential dereference of null pointer
	NFSD: Fix READDIR buffer overflow
	PM: sleep: Fix error handling in dpm_prepare()
	arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode
	bus: sunxi-rsb: Fix shutdown
	spi: change clk_disable_unprepare to clk_unprepare
	ucounts: Fix rlimit max values check
	drm/mediatek: hdmi: Perform NULL pointer check for mtk_hdmi_conf
	ASoC: meson: aiu: fifo: Add missing dma_coerce_mask_and_coherent()
	RDMA/hns: Fix RNR retransmission issue for HIP08
	IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
	RDMA/hns: Replace kfree() with kvfree()
	netfilter: nf_tables: fix use-after-free in nft_set_catchall_destroy()
	netfilter: fix regression in looped (broad|multi)cast's MAC handling
	ARM: dts: imx6qdl-wandboard: Fix Ethernet support
	ice: Use xdp_buf instead of rx_buf for xsk zero-copy
	ice: xsk: return xsk buffers back to pool when cleaning the ring
	net: marvell: prestera: fix incorrect return of port_find
	net: marvell: prestera: fix incorrect structure access
	qlcnic: potential dereference null pointer of rx_queue->page_ring
	tcp: move inet->rx_dst_ifindex to sk->sk_rx_dst_ifindex
	ipv6: move inet6_sk(sk)->rx_dst_cookie to sk->sk_rx_dst_cookie
	inet: fully convert sk->sk_rx_dst to RCU rules
	net: accept UFOv6 packages in virtio_net_hdr_to_skb
	net: skip virtio_net_hdr_set_proto if protocol already set
	igb: fix deadlock caused by taking RTNL in RPM resume path
	ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module
	gpio: virtio: remove timeout
	bonding: fix ad_actor_system option setting to default
	fjes: Check for error irq
	drivers: net: smc911x: Check for error irq
	net: ks8851: Check for error irq
	sfc: Check null pointer of rx_queue->page_ring
	sfc: falcon: Check null pointer of rx_queue->page_ring
	asix: fix uninit-value in asix_mdio_read()
	asix: fix wrong return value in asix_check_host_enable()
	io_uring: zero iocb->ki_pos for stream file types
	veth: ensure skb entering GRO are not cloned.
	net: stmmac: ptp: fix potentially overflowing expression
	net: bridge: Use array_size() helper in copy_to_user()
	net: bridge: fix ioctl old_deviceless bridge argument
	r8152: fix the force speed doesn't work for RTL8156
	net: stmmac: dwmac-visconti: Fix value of ETHER_CLK_SEL_FREQ_SEL_2P5M
	Input: elantech - fix stack out of bound access in elantech_change_report_id()
	pinctrl: bcm2835: Change init order for gpio hogs
	hwmon: (lm90) Fix usage of CONFIG2 register in detect function
	hwmon: (lm90) Prevent integer overflow/underflow in hysteresis calculations
	hwmon: (lm90) Introduce flag indicating extended temperature support
	hwmon: (lm90) Add basic support for TI TMP461
	hwmon: (lm90) Drop critical attribute support for MAX6654
	ARM: 9160/1: NOMMU: Reload __secondary_data after PROCINFO_INITFUNC
	uapi: Fix undefined __always_inline on non-glibc systems
	compiler.h: Fix annotation macro misplacement with Clang
	platform/x86/intel: Remove X86_PLATFORM_DRIVERS_INTEL
	kernel/crash_core: suppress unknown crashkernel parameter warning
	Revert "x86/boot: Pull up cmdline preparation and early param parsing"
	x86/boot: Move EFI range reservation after cmdline parsing
	ALSA: jack: Check the return value of kstrdup()
	ALSA: drivers: opl3: Fix incorrect use of vp->state
	ALSA: rawmidi - fix the uninitalized user_pversion
	ALSA: hda/hdmi: Disable silent stream on GLK
	ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6
	ALSA: hda/realtek: Add new alc285-hp-amp-init model
	ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook
	ALSA: hda/realtek: Fix quirk for Clevo NJ51CU
	ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s
	ASoC: tegra: Add DAPM switches for headphones and mic jack
	ASoC: tegra: Restore headphones jack name on Nyan Big
	Input: atmel_mxt_ts - fix double free in mxt_read_info_block
	ipmi: bail out if init_srcu_struct fails
	ipmi: ssif: initialize ssif_info->client early
	ipmi: fix initialization when workqueue allocation fails
	parisc: Correct completer in lws start
	parisc: Fix mask used to select futex spinlock
	tee: handle lookup of shm with reference count 0
	x86/pkey: Fix undefined behaviour with PKRU_WD_BIT
	platform/x86: amd-pmc: only use callbacks for suspend
	platform/x86: intel_pmc_core: fix memleak on registration failure
	KVM: x86: Always set kvm_run->if_flag
	KVM: x86/mmu: Don't advance iterator after restart due to yielding
	KVM: nVMX: Synthesize TRIPLE_FAULT for L2 if emulation is required
	KVM: VMX: Always clear vmx->fail on emulation_required
	KVM: VMX: Wake vCPU when delivering posted IRQ even if vCPU == this vCPU
	pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines
	gpio: dln2: Fix interrupts when replugging the device
	mmc: sdhci-tegra: Fix switch to HS400ES mode
	mmc: meson-mx-sdhc: Set MANUAL_STOP for multi-block SDIO commands
	mmc: core: Disable card detect during shutdown
	mmc: mmci: stm32: clear DLYB_CR after sending tuning command
	ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
	ksmbd: fix error code in ndr_read_int32()
	ksmbd: fix uninitialized symbol 'pntsd_size'
	ksmbd: disable SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1
	mac80211: fix locking in ieee80211_start_ap error path
	mm: mempolicy: fix THP allocations escaping mempolicy restrictions
	mm, hwpoison: fix condition in free hugetlb page path
	mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page()
	mm/damon/dbgfs: protect targets destructions with kdamond_lock
	tee: optee: Fix incorrect page free bug
	f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
	netfs: fix parameter of cleanup()
	KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
	arm64: dts: lx2160a: fix scl-gpios property name
	kfence: fix memory leak when cat kfence objects
	Input: iqs626a - prohibit inlining of channel parsing functions
	Input: elants_i2c - do not check Remark ID on eKTH3900/eKTH5312
	Input: goodix - add id->model mapping for the "9111" model
	ASoC: tas2770: Fix setting of high sample rates
	ASoC: SOF: Intel: pci-tgl: add new ADL-P variant
	ASoC: SOF: Intel: pci-tgl: add ADL-N support
	ASoC: rt5682: fix the wrong jack type detected
	pinctrl: mediatek: fix global-out-of-bounds issue
	hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681
	hwmon: (lm90) Do not report 'busy' status bit as alarm
	r8152: sync ocp base
	ax25: NPD bug when detaching AX25 device
	hamradio: defer ax25 kfree after unregister_netdev
	hamradio: improve the incomplete fix to avoid NPD
	tun: avoid double free in tun_free_netdev
	phonet/pep: refuse to enable an unbound pipe
	Linux 5.15.12

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5e3abccc5e4dc038ebf84e8efee6083b2c7f39d5
2021-12-29 14:10:20 +01:00
Andrew Jones
a65ac9d232 selftests: KVM: Fix non-x86 compiling
commit 577e022b7b41854911dcfb03678d8d2b930e8a3f upstream.

Attempting to compile on a non-x86 architecture fails with

include/kvm_util.h: In function ‘vm_compute_max_gfn’:
include/kvm_util.h:79:21: error: dereferencing pointer to incomplete type ‘struct kvm_vm’
  return ((1ULL << vm->pa_bits) >> vm->page_shift) - 1;
                     ^~

This is because the declaration of struct kvm_vm is in
lib/kvm_util_internal.h as an effort to make it private to
the test lib code. We can still provide arch specific functions,
though, by making the generic function symbols weak. Do that to
fix the compile error.

Fixes: c8cc43c1eae2 ("selftests: KVM: avoid failures due to reserved HyperTransport region")
Cc: stable@vger.kernel.org
Signed-off-by: Andrew Jones <drjones@redhat.com>
Message-Id: <20211214151842.848314-1-drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-29 12:28:37 +01:00
Greg Kroah-Hartman
bbc1b6a8a4 Merge 5.15.11 into android13-5.15
Changes in 5.15.11
	reset: tegra-bpmp: Revert Handle errors in BPMP response
	KVM: VMX: clear vmx_x86_ops.sync_pir_to_irr if APICv is disabled
	KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE
	KVM: downgrade two BUG_ONs to WARN_ON_ONCE
	x86/kvm: remove unused ack_notifier callbacks
	KVM: X86: Fix tlb flush for tdp in kvm_invalidate_pcid()
	mac80211: fix rate control for retransmitted frames
	mac80211: fix regression in SSN handling of addba tx
	mac80211: mark TX-during-stop for TX in in_reconfig
	mac80211: send ADDBA requests using the tid/queue of the aggregation session
	mac80211: validate extended element ID is present
	firmware: arm_scpi: Fix string overflow in SCPI genpd driver
	bpf: Fix kernel address leakage in atomic fetch
	bpf, selftests: Add test case for atomic fetch on spilled pointer
	bpf: Fix signed bounds propagation after mov32
	bpf: Make 32->64 bounds propagation slightly more robust
	bpf, selftests: Add test case trying to taint map value pointer
	bpf: Fix kernel address leakage in atomic cmpxchg's r0 aux reg
	bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer
	vduse: fix memory corruption in vduse_dev_ioctl()
	vduse: check that offset is within bounds in get_config()
	virtio_ring: Fix querying of maximum DMA mapping size for virtio device
	vdpa: check that offsets are within bounds
	s390/entry: fix duplicate tracking of irq nesting level
	recordmcount.pl: look for jgnop instruction as well as bcrl on s390
	arm64: dts: ten64: remove redundant interrupt declaration for gpio-keys
	ceph: fix up non-directory creation in SGID directories
	dm btree remove: fix use after free in rebalance_children()
	audit: improve robustness of the audit queue handling
	btrfs: convert latest_bdev type to btrfs_device and rename
	btrfs: use latest_dev in btrfs_show_devname
	btrfs: update latest_dev when we create a sprout device
	btrfs: remove stale comment about the btrfs_show_devname
	scsi: ufs: core: Retry START_STOP on UNIT_ATTENTION
	drm/i915/hdmi: convert intel_hdmi_to_dev to intel_hdmi_to_i915
	drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown()
	pinctrl: amd: Fix wakeups when IRQ is shared with SCI
	arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-edge
	arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply
	arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply
	arm64: dts: rockchip: fix audio-supply for Rock Pi 4
	arm64: dts: rockchip: fix poweroff on helios64
	dmaengine: idxd: add halt interrupt support
	dmaengine: idxd: fix calling wq quiesce inside spinlock
	mac80211: track only QoS data frames for admission control
	tee: amdtee: fix an IS_ERR() vs NULL bug
	ceph: fix duplicate increment of opened_inodes metric
	ceph: initialize pathlen variable in reconnect_caps_cb
	ARM: socfpga: dts: fix qspi node compatible
	arm64: dts: imx8mq: remove interconnect property from lcdif
	clk: Don't parent clks until the parent is fully registered
	soc: imx: Register SoC device only on i.MX boards
	iwlwifi: mvm: don't crash on invalid rate w/o STA
	virtio: always enter drivers/virtio/
	virtio/vsock: fix the transport to work with VMADDR_CID_ANY
	vdpa: Consider device id larger than 31
	Revert "drm/fb-helper: improve DRM fbdev emulation device names"
	selftests: net: Correct ping6 expected rc from 2 to 1
	s390/kexec_file: fix error handling when applying relocations
	sch_cake: do not call cake_destroy() from cake_init()
	inet_diag: fix kernel-infoleak for UDP sockets
	netdevsim: don't overwrite read only ethtool parms
	selftests: icmp_redirect: pass xfail=0 to log_test()
	net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg
	net: hns3: fix race condition in debugfs
	selftests: Add duplicate config only for MD5 VRF tests
	selftests: Fix raw socket bind tests with VRF
	selftests: Fix IPv6 address bind tests
	dmaengine: idxd: fix missed completion on abort path
	dmaengine: st_fdma: fix MODULE_ALIAS
	drm: simpledrm: fix wrong unit with pixel clock
	net/sched: sch_ets: don't remove idle classes from the round-robin list
	selftests/net: toeplitz: fix udp option
	net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down()
	selftest/net/forwarding: declare NETIFS p9 p10
	mptcp: never allow the PM to close a listener subflow
	drm/ast: potential dereference of null pointer
	drm/i915/display: Fix an unsigned subtraction which can never be negative.
	mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock
	cfg80211: Acquire wiphy mutex on regulatory work
	mac80211: fix lookup when adding AddBA extension element
	net: stmmac: fix tc flower deletion for VLAN priority Rx steering
	flow_offload: return EOPNOTSUPP for the unsupported mpls action type
	rds: memory leak in __rds_conn_create()
	ice: Use div64_u64 instead of div_u64 in adjfine
	ice: Don't put stale timestamps in the skb
	drm/amd/display: Set exit_optimized_pwr_state for DCN31
	drm/amd/pm: fix a potential gpu_metrics_table memory leak
	mptcp: remove tcp ulp setsockopt support
	mptcp: clear 'kern' flag from fallback sockets
	mptcp: fix deadlock in __mptcp_push_pending()
	soc/tegra: fuse: Fix bitwise vs. logical OR warning
	igb: Fix removal of unicast MAC filters of VFs
	igbvf: fix double free in `igbvf_probe`
	igc: Fix typo in i225 LTR functions
	ixgbe: Document how to enable NBASE-T support
	ixgbe: set X550 MDIO speed before talking to PHY
	netdevsim: Zero-initialize memory for new map's value in function nsim_bpf_map_alloc
	net/packet: rx_owner_map depends on pg_vec
	net: stmmac: dwmac-rk: fix oob read in rk_gmac_setup
	sfc_ef100: potential dereference of null pointer
	dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED
	net: Fix double 0x prefix print in SKB dump
	net/smc: Prevent smc_release() from long blocking
	net: systemport: Add global locking for descriptor lifecycle
	sit: do not call ipip6_dev_free() from sit_init_net()
	afs: Fix mmap
	arm64: kexec: Fix missing error code 'ret' warning in load_other_segments()
	bpf: Fix extable fixup offset.
	bpf, selftests: Fix racing issue in btf_skc_cls_ingress test
	powerpc/85xx: Fix oops when CONFIG_FSL_PMC=n
	USB: gadget: bRequestType is a bitfield, not a enum
	Revert "usb: early: convert to readl_poll_timeout_atomic()"
	KVM: x86: Drop guest CPUID check for host initiated writes to MSR_IA32_PERF_CAPABILITIES
	tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous
	USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04)
	usb: dwc2: fix STM ID/VBUS detection startup delay in dwc2_driver_probe
	PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error
	PCI/MSI: Mask MSI-X vectors only on success
	usb: xhci-mtk: fix list_del warning when enable list debug
	usb: xhci: Extend support for runtime power management for AMD's Yellow carp.
	usb: cdnsp: Fix incorrect status for control request
	usb: cdnsp: Fix incorrect calling of cdnsp_died function
	usb: cdnsp: Fix issue in cdnsp_log_ep trace event
	usb: cdnsp: Fix lack of spin_lock_irqsave/spin_lock_restore
	usb: typec: tcpm: fix tcpm unregister port but leave a pending timer
	usb: gadget: u_ether: fix race in setting MAC address in setup phase
	USB: serial: cp210x: fix CP2105 GPIO registration
	USB: serial: option: add Telit FN990 compositions
	selinux: fix sleeping function called from invalid context
	btrfs: fix memory leak in __add_inode_ref()
	btrfs: fix double free of anon_dev after failure to create subvolume
	btrfs: check WRITE_ERR when trying to read an extent buffer
	btrfs: fix missing blkdev_put() call in btrfs_scan_one_device()
	zonefs: add MODULE_ALIAS_FS
	iocost: Fix divide-by-zero on donation from low hweight cgroup
	serial: 8250_fintek: Fix garbled text for console
	timekeeping: Really make sure wall_to_monotonic isn't positive
	cifs: sanitize multiple delimiters in prepath
	locking/rtmutex: Fix incorrect condition in rtmutex_spin_on_owner()
	riscv: dts: unleashed: Add gpio card detect to mmc-spi-slot
	riscv: dts: unmatched: Add gpio card detect to mmc-spi-slot
	perf inject: Fix segfault due to close without open
	perf inject: Fix segfault due to perf_data__fd() without open
	libata: if T_LENGTH is zero, dma direction should be DMA_NONE
	powerpc/module_64: Fix livepatching for RO modules
	drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE
	drm/amdgpu: don't override default ECO_BITs setting
	drm/amd/pm: fix reading SMU FW version from amdgpu_firmware_info on YC
	Revert "can: m_can: remove support for custom bit timing"
	can: m_can: make custom bittiming fields const
	can: m_can: pci: use custom bit timings for Elkhart Lake
	ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name
	xsk: Do not sleep in poll() when need_wakeup set
	mptcp: add missing documented NL params
	bpf, x64: Factor out emission of REX byte in more cases
	bpf: Fix extable address check.
	USB: core: Make do_proc_control() and do_proc_bulk() killable
	media: mxl111sf: change mutex_init() location
	fuse: annotate lock in fuse_reverse_inval_entry()
	ovl: fix warning in ovl_create_real()
	scsi: scsi_debug: Don't call kcalloc() if size arg is zero
	scsi: scsi_debug: Fix type in min_t to avoid stack OOB
	scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select()
	io-wq: remove spurious bit clear on task_work addition
	io-wq: check for wq exit after adding new worker task_work
	rcu: Mark accesses to rcu_state.n_force_qs
	io-wq: drop wqe lock before creating new worker
	bus: ti-sysc: Fix variable set but not used warning for reinit_modules
	selftests/damon: test debugfs file reads/writes with huge count
	Revert "xsk: Do not sleep in poll() when need_wakeup set"
	xen/blkfront: harden blkfront against event channel storms
	xen/netfront: harden netfront against event channel storms
	xen/console: harden hvc_xen against event channel storms
	xen/netback: fix rx queue stall detection
	xen/netback: don't queue unlimited number of packages
	Linux 5.15.11

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I20c400f64f45729c6f833c31ee18eb4b92f5ed89
2021-12-29 11:32:19 +01:00
SeongJae Park
581b097951 selftests/damon: test debugfs file reads/writes with huge count
commit b4a002889d24979295ed3c2bf1d5fcfb3901026a upstream.

DAMON debugfs interface users were able to trigger warning by writing
some files with arbitrarily large 'count' parameter.  The issue is fixed
with commit db7a347b26fe ("mm/damon/dbgfs: use '__GFP_NOWARN' for
user-specified size buffer allocation").  This commit adds a test case
for the issue in DAMON selftests to avoid future regressions.

Link: https://lkml.kernel.org/r/20211201150440.1088-11-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-22 09:32:51 +01:00
Martin KaFai Lau
c8e8e6f410 bpf, selftests: Fix racing issue in btf_skc_cls_ingress test
[ Upstream commit c2fcbf81c332b42382a0c439bfe2414a241e4f5b ]

The libbpf CI reported occasional failure in btf_skc_cls_ingress:

  test_syncookie:FAIL:Unexpected syncookie states gen_cookie:80326634 recv_cookie:0
  bpf prog error at line 97

"error at line 97" means the bpf prog cannot find the listening socket
when the final ack is received.  It then skipped processing
the syncookie in the final ack which then led to "recv_cookie:0".

The problem is the userspace program did not do accept() and went
ahead to close(listen_fd) before the kernel (and the bpf prog) had
a chance to process the final ack.

The fix is to add accept() call so that the userspace will wait for
the kernel to finish processing the final ack first before close()-ing
everything.

Fixes: 9a856cae22 ("bpf: selftest: Add test_btf_skc_cls_ingress")
Reported-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211216191630.466151-1-kafai@fb.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:45 +01:00
Hangbin Liu
1752132eba selftest/net/forwarding: declare NETIFS p9 p10
[ Upstream commit 71da1aec215290e249d09c44c768df859f3a3bba ]

The recent GRE selftests defined NUM_NETIFS=10. If the users copy
forwarding.config.sample to forwarding.config directly, they will get
error "Command line is not complete" when run the GRE tests, because
create_netif_veth() failed with no interface name defined.

Fix it by extending the NETIFS with p9 and p10.

Fixes: 2800f24854 ("selftests: forwarding: Test multipath hashing on inner IP pkts for GRE tunnel")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:41 +01:00
Willem de Bruijn
4985d3b53c selftests/net: toeplitz: fix udp option
[ Upstream commit a8d13611b4a7b1b20d17bf2b9a89a3efcabde56c ]

Tiny fix. Option -u ("use udp") does not take an argument.

It can cause the next argument to silently be ignored.

Fixes: 5ebfb4cc30 ("selftests/net: toeplitz test")
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:41 +01:00
David Ahern
088e4d7dba selftests: Fix IPv6 address bind tests
[ Upstream commit 28a2686c185e84b6aa6a4d9c9a972360eb7ca266 ]

IPv6 allows binding a socket to a device then binding to an address
not on the device (__inet6_bind -> ipv6_chk_addr with strict flag
not set). Update the bind tests to reflect legacy behavior.

Fixes: 34d0302ab8 ("selftests: Add ipv6 address bind tests to fcnal-test")
Reported-by: Li Zhijian <lizhijian@fujitsu.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:41 +01:00
David Ahern
28c73d856b selftests: Fix raw socket bind tests with VRF
[ Upstream commit 0f108ae4452025fef529671998f6c7f1c4526790 ]

Commit referenced below added negative socket bind tests for VRF. The
socket binds should fail since the address to bind to is in a VRF yet
the socket is not bound to the VRF or a device within it. Update the
expected return code to check for 1 (bind failure) so the test passes
when the bind fails as expected. Add a 'show_hint' comment to explain
why the bind is expected to fail.

Fixes: 75b2b2b3db ("selftests: Add ipv4 address bind tests to fcnal-test")
Reported-by: Li Zhijian <lizhijian@fujitsu.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:40 +01:00
David Ahern
013ed75339 selftests: Add duplicate config only for MD5 VRF tests
[ Upstream commit 7e0147592b5c4f9e2eb8c54a7857a56d4863f74e ]

Commit referenced below added configuration in the default VRF that
duplicates a VRF to check MD5 passwords are properly used and fail
when expected. That config should not be added all the time as it
can cause tests to pass that should not (by matching on default VRF
setup when it should not). Move the duplicate setup to a function
that is only called for the MD5 tests and add a cleanup function
to remove it after the MD5 tests.

Fixes: 5cad8bce26 ("fcnal-test: Add TCP MD5 tests for VRF")
Signed-off-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:40 +01:00
Po-Hsu Lin
a4377575d2 selftests: icmp_redirect: pass xfail=0 to log_test()
[ Upstream commit 3748939bce3fc7a15ef07161826507fbe410bb7a ]

If any sub-test in this icmp_redirect.sh is failing but not expected
to fail. The script will complain:
    ./icmp_redirect.sh: line 72: [: 1: unary operator expected

This is because when the sub-test is not expected to fail, we won't
pass any value for the xfail local variable in log_test() and thus
it's empty. Fix this by passing 0 as the 4th variable to log_test()
for non-xfail cases.

v2: added fixes tag

Fixes: 0a36a75c68 ("selftests: icmp_redirect: support expected failures")
Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:40 +01:00
Jie2x Zhou
b0eb9ac9dd selftests: net: Correct ping6 expected rc from 2 to 1
[ Upstream commit 92816e2629808726af015c7f5b14adc8e4f8b147 ]

./fcnal-test.sh -v -t ipv6_ping
TEST: ping out, VRF bind - ns-B IPv6 LLA                                      [FAIL]
TEST: ping out, VRF bind - multicast IP                                       [FAIL]

ping6 is failing as it should.
COMMAND: ip netns exec ns-A /bin/ping6 -c1 -w1 fe80::7c4c:bcff:fe66:a63a%red
strace of ping6 shows it is failing with '1',
so change the expected rc from 2 to 1.

Fixes: c0644e71df ("selftests: Add ipv6 ping tests to fcnal-test")
Reported-by: kernel test robot <lkp@intel.com>
Suggested-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Jie2x Zhou <jie2x.zhou@intel.com>
Link: https://lore.kernel.org/r/20211209020230.37270-1-jie2x.zhou@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:40 +01:00
Daniel Borkmann
2746d3face bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer
commit e523102cb719cbad1673b6aa2a4d5c1fa6f13799 upstream.

Fix up unprivileged test case results for 'Dest pointer in r0' verifier tests
given they now need to reject R0 containing a pointer value, and add a couple
of new related ones with 32bit cmpxchg as well.

  root@foo:~/bpf/tools/testing/selftests/bpf# ./test_verifier
  #0/u invalid and of negative number OK
  #0/p invalid and of negative number OK
  [...]
  #1268/p XDP pkt read, pkt_meta' <= pkt_data, bad access 1 OK
  #1269/p XDP pkt read, pkt_meta' <= pkt_data, bad access 2 OK
  #1270/p XDP pkt read, pkt_data <= pkt_meta', good access OK
  #1271/p XDP pkt read, pkt_data <= pkt_meta', bad access 1 OK
  #1272/p XDP pkt read, pkt_data <= pkt_meta', bad access 2 OK
  Summary: 1900 PASSED, 0 SKIPPED, 0 FAILED

Acked-by: Brendan Jackman <jackmanb@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-22 09:32:35 +01:00
Daniel Borkmann
d0d68083f2 bpf, selftests: Add test case trying to taint map value pointer
commit b1a7288dedc6caf9023f2676b4f5ed34cf0d4029 upstream.

Add a test case which tries to taint map value pointer arithmetic into a
unknown scalar with subsequent export through the map.

Before fix:

  # ./test_verifier 1186
  #1186/u map access: trying to leak tained dst reg FAIL
  Unexpected success to load!
  verification time 24 usec
  stack depth 8
  processed 15 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1
  #1186/p map access: trying to leak tained dst reg FAIL
  Unexpected success to load!
  verification time 8 usec
  stack depth 8
  processed 15 insns (limit 1000000) max_states_per_insn 0 total_states 1 peak_states 1 mark_read 1
  Summary: 0 PASSED, 0 SKIPPED, 2 FAILED

After fix:

  # ./test_verifier 1186
  #1186/u map access: trying to leak tained dst reg OK
  #1186/p map access: trying to leak tained dst reg OK
  Summary: 2 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-22 09:32:35 +01:00
Daniel Borkmann
efcad725fe bpf, selftests: Add test case for atomic fetch on spilled pointer
commit 180486b430f4e22cc00a478163d942804baae4b5 upstream.

Test whether unprivileged would be able to leak the spilled pointer either
by exporting the returned value from the atomic{32,64} operation or by reading
and exporting the value from the stack after the atomic operation took place.

Note that for unprivileged, the below atomic cmpxchg test case named "Dest
pointer in r0 - succeed" is failing. The reason is that in the dst memory
location (r10 -8) there is the spilled register r10:

  0: R1=ctx(id=0,off=0,imm=0) R10=fp0
  0: (bf) r0 = r10
  1: R0_w=fp0 R1=ctx(id=0,off=0,imm=0) R10=fp0
  1: (7b) *(u64 *)(r10 -8) = r0
  2: R0_w=fp0 R1=ctx(id=0,off=0,imm=0) R10=fp0 fp-8_w=fp
  2: (b7) r1 = 0
  3: R0_w=fp0 R1_w=invP0 R10=fp0 fp-8_w=fp
  3: (db) r0 = atomic64_cmpxchg((u64 *)(r10 -8), r0, r1)
  4: R0_w=fp0 R1_w=invP0 R10=fp0 fp-8_w=mmmmmmmm
  4: (79) r1 = *(u64 *)(r0 -8)
  5: R0_w=fp0 R1_w=invP(id=0) R10=fp0 fp-8_w=mmmmmmmm
  5: (b7) r0 = 0
  6: R0_w=invP0 R1_w=invP(id=0) R10=fp0 fp-8_w=mmmmmmmm
  6: (95) exit

However, allowing this case for unprivileged is a bit useless given an
update with a new pointer will fail anyway:

  0: R1=ctx(id=0,off=0,imm=0) R10=fp0
  0: (bf) r0 = r10
  1: R0_w=fp0 R1=ctx(id=0,off=0,imm=0) R10=fp0
  1: (7b) *(u64 *)(r10 -8) = r0
  2: R0_w=fp0 R1=ctx(id=0,off=0,imm=0) R10=fp0 fp-8_w=fp
  2: (db) r0 = atomic64_cmpxchg((u64 *)(r10 -8), r0, r10)
  R10 leaks addr into mem

Acked-by: Brendan Jackman <jackmanb@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
[only backport one test for 5.15.y - gregkh]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-22 09:32:35 +01:00
Vitaly Kuznetsov
4b65555a50 KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE
[ Upstream commit 908fa88e420f30dde6d80f092795a18ec72ca6d3 ]

With the elevated 'KVM_CAP_MAX_VCPUS' value kvm_create_max_vcpus test
may hit RLIMIT_NOFILE limits:

 # ./kvm_create_max_vcpus
 KVM_CAP_MAX_VCPU_ID: 4096
 KVM_CAP_MAX_VCPUS: 1024
 Testing creating 1024 vCPUs, with IDs 0...1023.
 /dev/kvm not available (errno: 24), skipping test

Adjust RLIMIT_NOFILE limits to make sure KVM_CAP_MAX_VCPUS fds can be
opened. Note, raising hard limit ('rlim_max') requires CAP_SYS_RESOURCE
capability which is generally not needed to run kvm selftests (but without
raising the limit the test is doomed to fail anyway).

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20211123135953.667434-1-vkuznets@redhat.com>
[Skip the test if the hard limit can be raised. - Paolo]
Reviewed-by: Sean Christopherson <seanjc@google.com>
Tested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-22 09:32:34 +01:00
Greg Kroah-Hartman
427449e7c7 Merge 5.15.9 into android13-5.15
Changes in 5.15.9
	netfilter: selftest: conntrack_vrf.sh: fix file permission
	Linux 5.15.9

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ia248681a71667aa39c36482d2807ac19a4637aec
2021-12-16 15:40:58 +01:00
Greg Kroah-Hartman
3be0c72f51 netfilter: selftest: conntrack_vrf.sh: fix file permission
When backporting 33b8aad21ac1 ("selftests: netfilter: add a
vrf+conntrack testcase") to this stable branch, the executable bits were
not properly set on the
tools/testing/selftests/netfilter/conntrack_vrf.sh file due to quilt not
honoring them.

Fix this up manually by setting the correct mode.

Reported-by: "Rantala, Tommi T. (Nokia - FI/Espoo)" <tommi.t.rantala@nokia.com>
Link: https://lore.kernel.org/r/234d7a6a81664610fdf21ac72730f8bd10d3f46f.camel@nokia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-16 15:15:31 +01:00
Greg Kroah-Hartman
1dcc7190fe Merge 5.15.8 into android13-5.15
Changes in 5.15.8
	usb: gadget: uvc: fix multiple opens
	HID: quirks: Add quirk for the Microsoft Surface 3 type-cover
	HID: google: add eel USB id
	HID: intel-ish-hid: ipc: only enable IRQ wakeup when requested
	HID: add hid_is_usb() function to make it simpler for USB detection
	HID: add USB_HID dependancy to hid-prodikeys
	HID: add USB_HID dependancy to hid-chicony
	HID: add USB_HID dependancy on some USB HID drivers
	HID: bigbenff: prevent null pointer dereference
	HID: wacom: fix problems when device is not a valid USB device
	HID: check for valid USB device for many HID drivers
	mtd: dataflash: Add device-tree SPI IDs
	mmc: spi: Add device-tree SPI IDs
	HID: sony: fix error path in probe
	HID: Ignore battery for Elan touchscreen on Asus UX550VE
	platform/x86/intel: hid: add quirk to support Surface Go 3
	nft_set_pipapo: Fix bucket load in AVX2 lookup routine for six 8-bit groups
	IB/hfi1: Insure use of smp_processor_id() is preempt disabled
	IB/hfi1: Fix early init panic
	IB/hfi1: Fix leak of rcvhdrtail_dummy_kvaddr
	can: kvaser_usb: get CAN clock frequency from device
	can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct stats->{rx,tx}_errors counter
	can: sja1000: fix use after free in ems_pcmcia_add_card()
	can: pch_can: pch_can_rx_normal: fix use after free
	can: m_can: m_can_read_fifo: fix memory leak in error branch
	can: m_can: pci: fix incorrect reference clock rate
	can: m_can: pci: fix iomap_read_fifo() and iomap_write_fifo()
	can: m_can: Disable and ignore ELO interrupt
	net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's"
	net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports
	x86/sme: Explicitly map new EFI memmap table as encrypted
	platform/x86: amd-pmc: Fix s2idle failures on certain AMD laptops
	nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done
	selftests: netfilter: add a vrf+conntrack testcase
	vrf: don't run conntrack on vrf with !dflt qdisc
	bpf, x86: Fix "no previous prototype" warning
	bpf, sockmap: Attach map progs to psock early for feature probes
	bpf: Make sure bpf_disable_instrumentation() is safe vs preemption.
	bpf: Fix the off-by-two error in range markings
	ice: ignore dropped packets during init
	ethtool: do not perform operations on net devices being unregistered
	bonding: make tx_rebalance_counter an atomic
	nfp: Fix memory leak in nfp_cpp_area_cache_add()
	seg6: fix the iif in the IPv6 socket control block
	udp: using datalen to cap max gso segments
	netfilter: nft_exthdr: break evaluation if setting TCP option fails
	netfilter: conntrack: annotate data-races around ct->timeout
	iavf: restore MSI state on reset
	iavf: Fix reporting when setting descriptor count
	IB/hfi1: Correct guard on eager buffer deallocation
	devlink: fix netns refcount leak in devlink_nl_cmd_reload()
	net: bcm4908: Handle dma_set_coherent_mask error codes
	net: dsa: mv88e6xxx: error handling for serdes_power functions
	net: dsa: felix: Fix memory leak in felix_setup_mmio_filtering
	net/sched: fq_pie: prevent dismantle issue
	net: mvpp2: fix XDP rx queues registering
	KVM: x86: Don't WARN if userspace mucks with RCX during string I/O exit
	KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
	KVM: x86: Wait for IPIs to be delivered when handling Hyper-V TLB flush hypercall
	timers: implement usleep_idle_range()
	mm/damon/core: fix fake load reports due to uninterruptible sleeps
	mm/slub: fix endianness bug for alloc/free_traces attributes
	mm: bdi: initialize bdi_min_ratio when bdi is unregistered
	ALSA: ctl: Fix copy of updated id with element read/write
	ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform
	ALSA: hda/realtek: Fix quirk for TongFang PHxTxX1
	ALSA: pcm: oss: Fix negative period/buffer sizes
	ALSA: pcm: oss: Limit the period size to 16MB
	ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*()
	cifs: Fix crash on unload of cifs_arc4.ko
	scsi: qla2xxx: Format log strings only if needed
	btrfs: clear extent buffer uptodate when we fail to write it
	btrfs: fix re-dirty process of tree-log nodes
	btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling
	btrfs: free exchange changeset on failures
	perf intel-pt: Fix some PGE (packet generation enable/control flow packets) usage
	perf intel-pt: Fix sync state when a PSB (synchronization) packet is found
	perf intel-pt: Fix intel_pt_fup_event() assumptions about setting state type
	perf intel-pt: Fix state setting when receiving overflow (OVF) packet
	perf intel-pt: Fix next 'err' value, walking trace
	perf intel-pt: Fix missing 'instruction' events with 'q' option
	perf intel-pt: Fix error timestamp setting on the decoder error path
	md: fix update super 1.0 on rdev size change
	nfsd: fix use-after-free due to delegation race
	nfsd: Fix nsfd startup race (again)
	tracefs: Have new files inherit the ownership of their parent
	selftests: KVM: avoid failures due to reserved HyperTransport region
	hwmon: (pwm-fan) Ensure the fan going on in .probe()
	mmc: renesas_sdhi: initialize variable properly when tuning
	clk: qcom: regmap-mux: fix parent clock lookup
	thermal: int340x: Fix VCoRefLow MMIO bit offset for TGL
	drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.
	libata: add horkage for ASMedia 1092
	io_uring: ensure task_work gets run as part of cancelations
	wait: add wake_up_pollfree()
	binder: use wake_up_pollfree()
	signalfd: use wake_up_pollfree()
	aio: keep poll requests on waitqueue until completed
	aio: fix use-after-free due to missing POLLFREE handling
	tracefs: Set all files to the same group ownership as the mount option
	i2c: mpc: Use atomic read and fix break condition
	block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2)
	scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc()
	scsi: scsi_debug: Fix buffer size of REPORT ZONES command
	ALSA: usb-audio: Reorder snd_djm_devices[] entries
	qede: validate non LSO skb length
	PM: runtime: Fix pm_runtime_active() kerneldoc comment
	ASoC: rt5682: Fix crash due to out of scope stack vars
	ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer
	ASoC: codecs: wsa881x: fix return values from kcontrol put
	ASoC: codecs: wcd934x: handle channel mappping list correctly
	ASoC: codecs: wcd934x: return correct value from mixer put
	RDMA/hns: Do not halt commands during reset until later
	RDMA/hns: Do not destroy QP resources in the hw resetting phase
	hwmon: (dell-smm) Fix warning on /proc/i8k creation error
	clk: imx: use module_platform_driver
	clk: qcom: clk-alpha-pll: Don't reconfigure running Trion
	i40e: Fix failed opcode appearing if handling messages from VF
	i40e: Fix pre-set max number of queues for VF
	mtd: rawnand: fsmc: Take instruction delay into account
	mtd: rawnand: fsmc: Fix timing computation
	bpf, sockmap: Re-evaluate proto ops when psock is removed from sockmap
	i40e: Fix NULL pointer dereference in i40e_dbg_dump_desc
	Revert "PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge"
	drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
	perf tools: Fix SMT detection fast read path
	Documentation/locking/locktypes: Update migrate_disable() bits.
	dt-bindings: net: Reintroduce PHY no lane swap binding
	tools build: Remove needless libpython-version feature check that breaks test-all fast path
	net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero
	net: altera: set a couple error code in probe()
	net: fec: only clear interrupt of handling queue in fec_enet_rx_queue()
	net, neigh: clear whole pneigh_entry at alloc time
	net/qla3xxx: fix an error code in ql_adapter_up()
	selftests/fib_tests: Rework fib_rp_filter_test()
	USB: gadget: detect too-big endpoint 0 requests
	USB: gadget: zero allocate endpoint 0 buffers
	Revert "usb: dwc3: dwc3-qcom: Enable tx-fifo-resize property by default"
	usb: core: config: fix validation of wMaxPacketValue entries
	xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime suspending
	usb: core: config: using bit mask instead of individual bits
	xhci: avoid race between disable slot command and host runtime suspend
	iio: gyro: adxrs290: fix data signedness
	iio: trigger: Fix reference counting
	iio: trigger: stm32-timer: fix MODULE_ALIAS
	iio: stk3310: Don't return error code in interrupt handler
	iio: mma8452: Fix trigger reference couting
	iio: ltr501: Don't return error code in trigger handler
	iio: kxsd9: Don't return error code in trigger handler
	iio: itg3200: Call iio_trigger_notify_done() on error
	iio: dln2-adc: Fix lockdep complaint
	iio: dln2: Check return value of devm_iio_trigger_register()
	iio: at91-sama5d2: Fix incorrect sign extension
	iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda
	iio: adc: axp20x_adc: fix charging current reporting on AXP22x
	iio: ad7768-1: Call iio_trigger_notify_done() on error
	iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove
	misc: rtsx: Avoid mangling IRQ during runtime PM
	nvmem: eeprom: at25: fix FRAM byte_len
	bus: mhi: pci_generic: Fix device recovery failed issue
	bus: mhi: core: Add support for forced PM resume
	csky: fix typo of fpu config macro
	irqchip/aspeed-scu: Replace update_bits with write_bits.
	irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc()
	irqchip/armada-370-xp: Fix support for Multi-MSI interrupts
	aio: Fix incorrect usage of eventfd_signal_allowed()
	irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL
	irqchip: nvic: Fix offset for Interrupt Priority Offsets
	misc: fastrpc: fix improper packet size calculation
	clocksource/drivers/dw_apb_timer_of: Fix probe failure
	bpf: Add selftests to cover packet access corner cases
	Linux 5.15.8

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I4d543d6826c20e322ce477fe82c462791dc36ce4
2021-12-15 18:34:21 +01:00
Maxim Mikityanskiy
c2bd1add2c bpf: Add selftests to cover packet access corner cases
commit b560b21f71eb4ef9dfc7c8ec1d0e4d7f9aa54b51 upstream.

This commit adds BPF verifier selftests that cover all corner cases by
packet boundary checks. Specifically, 8-byte packet reads are tested at
the beginning of data and at the beginning of data_meta, using all kinds
of boundary checks (all comparison operators: <, >, <=, >=; both
permutations of operands: data + length compared to end, end compared to
data + length). For each case there are three tests:

1. Length is just enough for an 8-byte read. Length is either 7 or 8,
   depending on the comparison.

2. Length is increased by 1 - should still pass the verifier. These
   cases are useful, because they failed before commit 2fa7d94afc1a
   ("bpf: Fix the off-by-two error in range markings").

3. Length is decreased by 1 - should be rejected by the verifier.

Some existing tests are just renamed to avoid duplication.

Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211207081521.41923-1-maximmi@nvidia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 10:57:23 +01:00
Peilin Ye
ef472b023b selftests/fib_tests: Rework fib_rp_filter_test()
commit f6071e5e3961eeb5300bd0901c9e128598730ae3 upstream.

Currently rp_filter tests in fib_tests.sh:fib_rp_filter_test() are
failing.  ping sockets are bound to dummy1 using the "-I" option
(SO_BINDTODEVICE), but socket lookup is failing when receiving ping
replies, since the routing table thinks they belong to dummy0.

For example, suppose ping is using a SOCK_RAW socket for ICMP messages.
When receiving ping replies, in __raw_v4_lookup(), sk->sk_bound_dev_if
is 3 (dummy1), but dif (skb_rtable(skb)->rt_iif) says 2 (dummy0), so the
raw_sk_bound_dev_eq() check fails.  Similar things happen in
ping_lookup() for SOCK_DGRAM sockets.

These tests used to pass due to a bug [1] in iputils, where "ping -I"
actually did not bind ICMP message sockets to device.  The bug has been
fixed by iputils commit f455fee41c07 ("ping: also bind the ICMP socket
to the specific device") in 2016, which is why our rp_filter tests
started to fail.  See [2] .

Fixing the tests while keeping everything in one netns turns out to be
nontrivial.  Rework the tests and build the following topology:

 ┌─────────────────────────────┐    ┌─────────────────────────────┐
 │  network namespace 1 (ns1)  │    │  network namespace 2 (ns2)  │
 │                             │    │                             │
 │  ┌────┐     ┌─────┐         │    │  ┌─────┐            ┌────┐  │
 │  │ lo │<───>│veth1│<────────┼────┼─>│veth2│<──────────>│ lo │  │
 │  └────┘     ├─────┴──────┐  │    │  ├─────┴──────┐     └────┘  │
 │             │192.0.2.1/24│  │    │  │192.0.2.1/24│             │
 │             └────────────┘  │    │  └────────────┘             │
 └─────────────────────────────┘    └─────────────────────────────┘

Consider sending an ICMP_ECHO packet A in ns2.  Both source and
destination IP addresses are 192.0.2.1, and we use strict mode rp_filter
in both ns1 and ns2:

  1. A is routed to lo since its destination IP address is one of ns2's
     local addresses (veth2);
  2. A is redirected from lo's egress to veth2's egress using mirred;
  3. A arrives at veth1's ingress in ns1;
  4. A is redirected from veth1's ingress to lo's ingress, again, using
     mirred;
  5. In __fib_validate_source(), fib_info_nh_uses_dev() returns false,
     since A was received on lo, but reverse path lookup says veth1;
  6. However A is not dropped since we have relaxed this check for lo in
     commit 66f8209547 ("fib: relax source validation check for loopback
     packets");

Making sure A is not dropped here in this corner case is the whole point
of having this test.

  7. As A reaches the ICMP layer, an ICMP_ECHOREPLY packet, B, is
     generated;
  8. Similarly, B is redirected from lo's egress to veth1's egress (in
     ns1), then redirected once again from veth2's ingress to lo's
     ingress (in ns2), using mirred.

Also test "ping 127.0.0.1" from ns2.  It does not trigger the relaxed
check in __fib_validate_source(), but just to make sure the topology
works with loopback addresses.

Tested with ping from iputils 20210722-41-gf9fb573:

$ ./fib_tests.sh -t rp_filter

IPv4 rp_filter tests
    TEST: rp_filter passes local packets		[ OK ]
    TEST: rp_filter passes loopback packets		[ OK ]

[1] https://github.com/iputils/iputils/issues/55
[2] f455fee41c

Reported-by: Hangbin Liu <liuhangbin@gmail.com>
Fixes: adb701d6cf ("selftests: add a test case for rp_filter")
Reviewed-by: Cong Wang <cong.wang@bytedance.com>
Signed-off-by: Peilin Ye <peilin.ye@bytedance.com>
Acked-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20211201004720.6357-1-yepeilin.cs@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 10:57:19 +01:00
Paolo Bonzini
a85d27b2ef selftests: KVM: avoid failures due to reserved HyperTransport region
commit c8cc43c1eae2910ac96daa4216e0fb3391ad0504 upstream.

AMD proceessors define an address range that is reserved by HyperTransport
and causes a failure if used for guest physical addresses.  Avoid
selftests failures by reserving those guest physical addresses; the
rules are:

- On parts with <40 bits, its fully hidden from software.

- Before Fam17h, it was always 12G just below 1T, even if there was more
RAM above this location.  In this case we just not use any RAM above 1T.

- On Fam17h and later, it is variable based on SME, and is either just
below 2^48 (no encryption) or 2^43 (encryption).

Fixes: ef4c9f4f65 ("KVM: selftests: Fix 32-bit truncation of vm_get_max_gfn()")
Cc: stable@vger.kernel.org
Cc: David Matlack <dmatlack@google.com>
Reported-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210805105423.412878-1-pbonzini@redhat.com>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Tested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 10:57:14 +01:00
Maxim Mikityanskiy
b4fb67fd1a bpf: Fix the off-by-two error in range markings
commit 2fa7d94afc1afbb4d702760c058dc2d7ed30f226 upstream.

The first commit cited below attempts to fix the off-by-one error that
appeared in some comparisons with an open range. Due to this error,
arithmetically equivalent pieces of code could get different verdicts
from the verifier, for example (pseudocode):

  // 1. Passes the verifier:
  if (data + 8 > data_end)
      return early
  read *(u64 *)data, i.e. [data; data+7]

  // 2. Rejected by the verifier (should still pass):
  if (data + 7 >= data_end)
      return early
  read *(u64 *)data, i.e. [data; data+7]

The attempted fix, however, shifts the range by one in a wrong
direction, so the bug not only remains, but also such piece of code
starts failing in the verifier:

  // 3. Rejected by the verifier, but the check is stricter than in #1.
  if (data + 8 >= data_end)
      return early
  read *(u64 *)data, i.e. [data; data+7]

The change performed by that fix converted an off-by-one bug into
off-by-two. The second commit cited below added the BPF selftests
written to ensure than code chunks like #3 are rejected, however,
they should be accepted.

This commit fixes the off-by-two error by adjusting new_range in the
right direction and fixes the tests by changing the range into the
one that should actually fail.

Fixes: fb2a311a31 ("bpf: fix off by one for range markings with L{T, E} patterns")
Fixes: b37242c773 ("bpf: add test cases to bpf selftests to cover all access tests")
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211130181607.593149-1-maximmi@nvidia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 10:57:09 +01:00
Nicolas Dichtel
e8193cebf7 vrf: don't run conntrack on vrf with !dflt qdisc
commit d43b75fbc23f0ac1ef9c14a5a166d3ccb761a451 upstream.

After the below patch, the conntrack attached to skb is set to "notrack" in
the context of vrf device, for locally generated packets.
But this is true only when the default qdisc is set to the vrf device. When
changing the qdisc, notrack is not set anymore.
In fact, there is a shortcut in the vrf driver, when the default qdisc is
set, see commit dcdd43c41e ("net: vrf: performance improvements for
IPv4") for more details.

This patch ensures that the behavior is always the same, whatever the qdisc
is.

To demonstrate the difference, a new test is added in conntrack_vrf.sh.

Fixes: 8c9c296adfae ("vrf: run conntrack only in context of lower/physdev for locally generated packets")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Florian Westphal <fw@strlen.de>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 10:57:08 +01:00
Florian Westphal
cffab968e9 selftests: netfilter: add a vrf+conntrack testcase
commit 33b8aad21ac175eba9577a73eb62b0aa141c241c upstream.

Rework the reproducer for the vrf+conntrack regression reported
by Eugene into a selftest and also add a test for ip masquerading
that Lahav fixed recently.

With net or net-next tree, the first test fails and the latter
two pass.

With 09e856d54b ("vrf: Reset skb conntrack connection on VRF rcv")
reverted first test passes but the last two fail.

A proper fix needs more work, for time being a revert seems to be
the best choice, snat/masquerade did not work before the fix.

Link: https://lore.kernel.org/netdev/378ca299-4474-7e9a-3d36-2350c8c98995@gmail.com/T/#m95358a31810df7392f541f99d187227bc75c9963
Reported-by: Eugene Crosser <crosser@average.org>
Cc: Lahav Schlesinger <lschlesinger@drivenets.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 10:57:08 +01:00
Greg Kroah-Hartman
e5f6d1dffb Merge 5.15.7 into android13-5.15
Changes in 5.15.7
	ALSA: usb-audio: Restrict rates for the shared clocks
	ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
	ALSA: usb-audio: Disable low-latency playback for free-wheel mode
	ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
	ALSA: usb-audio: Check available frames for the next packet size
	ALSA: usb-audio: Add spinlock to stop_urbs()
	ALSA: usb-audio: Improved lowlatency playback support
	ALSA: usb-audio: Avoid killing in-flight URBs during draining
	ALSA: usb-audio: Fix packet size calculation regression
	ALSA: usb-audio: Less restriction for low-latency playback mode
	ALSA: usb-audio: Switch back to non-latency mode at a later point
	ALSA: usb-audio: Don't start stream for capture at prepare
	gfs2: release iopen glock early in evict
	gfs2: Fix length of holes reported at end-of-file
	powerpc/pseries/ddw: Revert "Extend upper limit for huge DMA window for persistent memory"
	powerpc/pseries/ddw: Do not try direct mapping with persistent memory and one window
	drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY
	mac80211: do not access the IV when it was stripped
	mac80211: fix throughput LED trigger
	x86/hyperv: Move required MSRs check to initial platform probing
	net/smc: Transfer remaining wait queue entries during fallback
	atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait
	net: return correct error code
	pinctrl: qcom: fix unmet dependencies on GPIOLIB for GPIOLIB_IRQCHIP
	platform/x86: dell-wmi-descriptor: disable by default
	platform/x86: thinkpad_acpi: Add support for dual fan control
	platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
	s390/setup: avoid using memblock_enforce_memory_limit
	btrfs: silence lockdep when reading chunk tree during mount
	btrfs: check-integrity: fix a warning on write caching disabled disk
	thermal: core: Reset previous low and high trip during thermal zone init
	scsi: iscsi: Unblock session then wake up error handler
	net: usb: r8152: Add MAC passthrough support for more Lenovo Docks
	drm/amd/pm: Remove artificial freq level on Navi1x
	drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again
	drm/amd/amdgpu: fix potential memleak
	ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
	ata: libahci: Adjust behavior when StorageD3Enable _DSD is set
	ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port()
	ipv6: check return value of ipv6_skip_exthdr
	net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound
	net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock()
	perf sort: Fix the 'weight' sort key behavior
	perf sort: Fix the 'ins_lat' sort key behavior
	perf sort: Fix the 'p_stage_cyc' sort key behavior
	perf inject: Fix ARM SPE handling
	perf hist: Fix memory leak of a perf_hpp_fmt
	perf report: Fix memory leaks around perf_tip()
	tracing: Don't use out-of-sync va_list in event printing
	net/smc: Avoid warning of possible recursive locking
	ACPI: Add stubs for wakeup handler functions
	net/tls: Fix authentication failure in CCM mode
	vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
	kprobes: Limit max data_size of the kretprobe instances
	ALSA: hda/cs8409: Set PMSG_ON earlier inside cs8409 driver
	rt2x00: do not mark device gone on EPROTO errors during start
	ipmi: Move remove_work to dedicated workqueue
	cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink()
	iwlwifi: mvm: retry init flow if failed
	dma-buf: system_heap: Use 'for_each_sgtable_sg' in pages free flow
	s390/pci: move pseudo-MMIO to prevent MIO overlap
	fget: check that the fd still exists after getting a ref to it
	sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
	sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
	scsi: lpfc: Fix non-recovery of remote ports following an unsolicited LOGO
	scsi: ufs: ufs-pci: Add support for Intel ADL
	ipv6: fix memory leak in fib6_rule_suppress
	drm/amd/display: Allow DSC on supported MST branch devices
	drm/i915/dp: Perform 30ms delay after source OUI write
	KVM: fix avic_set_running for preemptable kernels
	KVM: Disallow user memslot with size that exceeds "unsigned long"
	KVM: x86/mmu: Fix TLB flush range when handling disconnected pt
	KVM: Ensure local memslot copies operate on up-to-date arch-specific data
	KVM: x86: ignore APICv if LAPIC is not enabled
	KVM: nVMX: Emulate guest TLB flush on nested VM-Enter with new vpid12
	KVM: nVMX: Flush current VPID (L1 vs. L2) for KVM_REQ_TLB_FLUSH_GUEST
	KVM: nVMX: Abide to KVM_REQ_TLB_FLUSH_GUEST request on nested vmentry/vmexit
	KVM: VMX: prepare sync_pir_to_irr for running with APICv disabled
	KVM: x86: Use a stable condition around all VT-d PI paths
	KVM: MMU: shadow nested paging does not have PKU
	KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1
	KVM: X86: Use vcpu->arch.walk_mmu for kvm_mmu_invlpg()
	KVM: x86: check PIR even for vCPUs with disabled APICv
	tracing/histograms: String compares should not care about signed values
	net: dsa: mv88e6xxx: Fix application of erratum 4.8 for 88E6393X
	net: dsa: mv88e6xxx: Drop unnecessary check in mv88e6393x_serdes_erratum_4_6()
	net: dsa: mv88e6xxx: Save power by disabling SerDes trasmitter and receiver
	net: dsa: mv88e6xxx: Add fix for erratum 5.2 of 88E6393X family
	net: dsa: mv88e6xxx: Fix inband AN for 2500base-x on 88E6393X family
	net: dsa: mv88e6xxx: Link in pcs_get_state() if AN is bypassed
	wireguard: selftests: increase default dmesg log size
	wireguard: allowedips: add missing __rcu annotation to satisfy sparse
	wireguard: selftests: actually test for routing loops
	wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST
	wireguard: device: reset peer src endpoint when netns exits
	wireguard: receive: use ring buffer for incoming handshakes
	wireguard: receive: drop handshakes if queue lock is contended
	wireguard: ratelimiter: use kvcalloc() instead of kvzalloc()
	i2c: stm32f7: flush TX FIFO upon transfer errors
	i2c: stm32f7: recover the bus on access timeout
	i2c: stm32f7: stop dma transfer in case of NACK
	i2c: cbus-gpio: set atomic transfer callback
	natsemi: xtensa: fix section mismatch warnings
	tcp: fix page frag corruption on page fault
	net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings()
	net: mpls: Fix notifications when deleting a device
	siphash: use _unaligned version by default
	arm64: ftrace: add missing BTIs
	iwlwifi: fix warnings produced by kernel debug options
	net/mlx5e: IPsec: Fix Software parser inner l3 type setting in case of encapsulation
	net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
	selftests: net: Correct case name
	net: dsa: b53: Add SPI ID table
	mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode
	ASoC: tegra: Fix wrong value type in ADMAIF
	ASoC: tegra: Fix wrong value type in I2S
	ASoC: tegra: Fix wrong value type in DMIC
	ASoC: tegra: Fix wrong value type in DSPK
	ASoC: tegra: Fix kcontrol put callback in ADMAIF
	ASoC: tegra: Fix kcontrol put callback in I2S
	ASoC: tegra: Fix kcontrol put callback in DMIC
	ASoC: tegra: Fix kcontrol put callback in DSPK
	ASoC: tegra: Fix kcontrol put callback in AHUB
	rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle()
	rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
	ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
	net: stmmac: Avoid DMA_CHAN_CONTROL write if no Split Header support
	net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ is available
	net: marvell: mvpp2: Fix the computation of shared CPUs
	dpaa2-eth: destroy workqueue at the end of remove function
	octeontx2-af: Fix a memleak bug in rvu_mbox_init()
	net: annotate data-races on txq->xmit_lock_owner
	ipv4: convert fib_num_tclassid_users to atomic_t
	net/smc: fix wrong list_del in smc_lgr_cleanup_early
	net/rds: correct socket tunable error in rds_tcp_tune()
	net/smc: Keep smc_close_final rc during active close
	drm/msm/a6xx: Allocate enough space for GMU registers
	drm/msm: Do hw_init() before capturing GPU state
	drm/vc4: kms: Wait for the commit before increasing our clock rate
	drm/vc4: kms: Fix return code check
	drm/vc4: kms: Add missing drm_crtc_commit_put
	drm/vc4: kms: Clear the HVS FIFO commit pointer once done
	drm/vc4: kms: Don't duplicate pending commit
	drm/vc4: kms: Fix previous HVS commit wait
	atlantic: Increase delay for fw transactions
	atlatnic: enable Nbase-t speeds with base-t
	atlantic: Fix to display FW bundle version instead of FW mac version.
	atlantic: Add missing DIDs and fix 115c.
	Remove Half duplex mode speed capabilities.
	atlantic: Fix statistics logic for production hardware
	atlantic: Remove warn trace message.
	KVM: x86/mmu: Skip tlb flush if it has been done in zap_gfn_range()
	KVM: x86/mmu: Pass parameter flush as false in kvm_tdp_mmu_zap_collapsible_sptes()
	drm/msm/devfreq: Fix OPP refcnt leak
	drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP
	drm/msm: Fix wait_fence submitqueue leak
	drm/msm: Restore error return on invalid fence
	ASoC: rk817: Add module alias for rk817-codec
	iwlwifi: Fix memory leaks in error handling path
	KVM: X86: Fix when shadow_root_level=5 && guest root_level<4
	KVM: SEV: initialize regions_list of a mirror VM
	net/mlx5e: Fix missing IPsec statistics on uplink representor
	net/mlx5: Move MODIFY_RQT command to ignore list in internal error state
	net/mlx5: E-switch, Respect BW share of the new group
	net/mlx5: E-Switch, fix single FDB creation on BlueField
	net/mlx5: E-Switch, Check group pointer before reading bw_share value
	KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register
	KVM: VMX: Set failure code in prepare_vmcs02()
	mctp: Don't let RTM_DELROUTE delete local routes
	Revert "drm/i915: Implement Wa_1508744258"
	io-wq: don't retry task_work creation failure on fatal conditions
	x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword
	x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry()
	x86/entry: Use the correct fence macro after swapgs in kernel CR3
	x86/xen: Add xenpv_restore_regs_and_return_to_usermode()
	preempt/dynamic: Fix setup_preempt_mode() return value
	sched/uclamp: Fix rq->uclamp_max not set on first enqueue
	KVM: SEV: Return appropriate error codes if SEV-ES scratch setup fails
	KVM: x86/mmu: Rename slot_handle_leaf to slot_handle_level_4k
	KVM: x86/mmu: Remove spurious TLB flushes in TDP MMU zap collapsible path
	net/mlx5e: Rename lro_timeout to packet_merge_timeout
	net/mlx5e: Rename TIR lro functions to TIR packet merge functions
	net/mlx5e: Sync TIR params updates against concurrent create/modify
	serial: 8250_bcm7271: UART errors after resuming from S2
	parisc: Fix KBUILD_IMAGE for self-extracting kernel
	parisc: Fix "make install" on newer debian releases
	parisc: Mark cr16 CPU clocksource unstable on all SMP machines
	vgacon: Propagate console boot parameters before calling `vc_resize'
	xhci: Fix commad ring abort, write all 64 bits to CRCR register.
	USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
	usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
	usb: cdns3: gadget: fix new urb never complete if ep cancel previous requests
	usb: cdnsp: Fix a NULL pointer dereference in cdnsp_endpoint_init()
	x86/tsc: Add a timer to make sure TSC_adjust is always checked
	x86/tsc: Disable clocksource watchdog for TSC on qualified platorms
	x86/64/mm: Map all kernel memory into trampoline_pgd
	tty: serial: msm_serial: Deactivate RX DMA for polling support
	serial: pl011: Add ACPI SBSA UART match id
	serial: tegra: Change lower tolerance baud rate limit for tegra20 and tegra30
	serial: core: fix transmit-buffer reset and memleak
	serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array
	serial: 8250_pci: rewrite pericom_do_set_divisor()
	serial: 8250: Fix RTS modem control while in rs485 mode
	serial: liteuart: Fix NULL pointer dereference in ->remove()
	serial: liteuart: fix use-after-free and memleak on unbind
	serial: liteuart: fix minor-number leak on probe errors
	ipmi: msghandler: Make symbol 'remove_work_wq' static
	Linux 5.15.7

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9300a10911f6205d2fb76f18255b017d34d68d1d
2021-12-08 13:46:21 +01:00
Li Zhijian
ad7f90bb88 selftests: net: Correct case name
commit a05431b22be819d75db72ca3d44381d18a37b092 upstream.

ipv6_addr_bind/ipv4_addr_bind are function names. Previously, bind test
would not be run by default due to the wrong case names

Fixes: 34d0302ab8 ("selftests: Add ipv6 address bind tests to fcnal-test")
Fixes: 75b2b2b3db ("selftests: Add ipv4 address bind tests to fcnal-test")
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-08 09:04:47 +01:00
Jason A. Donenfeld
4db0d88a90 wireguard: device: reset peer src endpoint when netns exits
commit 20ae1d6aa159eb91a9bf09ff92ccaa94dbea92c2 upstream.

Each peer's endpoint contains a dst_cache entry that takes a reference
to another netdev. When the containing namespace exits, we take down the
socket and prevent future sockets from being created (by setting
creating_net to NULL), which removes that potential reference on the
netns. However, it doesn't release references to the netns that a netdev
cached in dst_cache might be taking, so the netns still might fail to
exit. Since the socket is gimped anyway, we can simply clear all the
dst_caches (by way of clearing the endpoint src), which will release all
references.

However, the current dst_cache_reset function only releases those
references lazily. But it turns out that all of our usages of
wg_socket_clear_peer_endpoint_src are called from contexts that are not
exactly high-speed or bottle-necked. For example, when there's
connection difficulty, or when userspace is reconfiguring the interface.
And in particular for this patch, when the netns is exiting. So for
those cases, it makes more sense to call dst_release immediately. For
that, we add a small helper function to dst_cache.

This patch also adds a test to netns.sh from Hangbin Liu to ensure this
doesn't regress.

Tested-by: Hangbin Liu <liuhangbin@gmail.com>
Reported-by: Xiumei Mu <xmu@redhat.com>
Cc: Toke Høiland-Jørgensen <toke@redhat.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Fixes: 900575aa33 ("wireguard: device: avoid circular netns references")
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-08 09:04:46 +01:00