linux-stable/net/rxrpc
Yunsheng Lin 9f8eeea164 rxrpc: Fix using alignmask being zero for __page_frag_alloc_align()
rxrpc_alloc_data_txbuf() may be called with data_align being
zero in none_alloc_txbuf() and rxkad_alloc_txbuf(), data_align
is supposed to be an order-based alignment value, but zero is
not a valid order-based alignment value, and '~(data_align - 1)'
doesn't result in a valid mask-based alignment value for
__page_frag_alloc_align().

Fix it by passing a valid order-based alignment value in
none_alloc_txbuf() and rxkad_alloc_txbuf().

Also use page_frag_alloc_align() expecting an order-based
alignment value in rxrpc_alloc_data_txbuf() to avoid doing the
alignment converting operation and to catch possible invalid
alignment value in the future. Remove the 'if (data_align)'
checking too, as it is always true for a valid order-based
alignment value.

Fixes: 6b2536462f ("rxrpc: Fix use of changed alignment param to page_frag_alloc_align()")
Fixes: 49489bb03a ("rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags")
CC: Alexander Duyck <alexander.duyck@gmail.com>
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Acked-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/20240428111640.27306-1-linyunsheng@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-04-30 18:30:43 -07:00
..
af_rxrpc.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
ar-internal.h rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
call_accept.c rxrpc: Fix trace string 2023-01-30 14:13:29 +00:00
call_event.c rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
call_object.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
call_state.c rxrpc: Move client call connection to the I/O thread 2023-01-06 09:43:33 +00:00
conn_client.c rxrpc: Strip barriers and atomics off of timer tracking 2024-02-29 15:49:57 +00:00
conn_event.c rxrpc: Fix the names of the fields in the ACK trailer struct 2024-02-29 15:49:57 +00:00
conn_object.c rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags 2024-03-05 23:31:43 +00:00
conn_service.c rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock() 2023-12-24 15:22:49 +00:00
input.c rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
insecure.c rxrpc: Fix using alignmask being zero for __page_frag_alloc_align() 2024-04-30 18:30:43 -07:00
io_thread.c rxrpc: Extract useful fields from a received ACK to skb priv data 2024-03-05 23:35:26 +00:00
Kconfig rxrpc: Allow a delay to be injected into packet reception 2023-01-31 16:38:09 +00:00
key.c rxrpc: Fix error when reading rxrpc tokens 2023-04-23 13:38:28 +01:00
local_event.c rxrpc: Truncate UTS_RELEASE for rxrpc version 2023-05-30 10:01:06 +02:00
local_object.c rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags 2024-03-05 23:31:43 +00:00
Makefile rxrpc: Split out the call state changing functions into their own file 2023-01-06 09:43:32 +00:00
misc.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
net_ns.c rxrpc: Create a procfile to display outstanding client conn bundles 2023-12-24 15:22:56 +00:00
output.c rxrpc: Record probes after transmission and reduce number of time-gets 2024-03-05 23:35:25 +00:00
peer_event.c rxrpc: Fix locking issues in rxrpc_put_peer_locked() 2022-12-19 09:51:31 +00:00
peer_object.c rxrpc, afs: Allow afs to pin rxrpc_peer objects 2023-12-24 15:22:50 +00:00
proc.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
protocol.h rxrpc: Fix the names of the fields in the ACK trailer struct 2024-02-29 15:49:57 +00:00
recvmsg.c rxrpc: Fix overproduction of wakeups to recvmsg() 2023-02-20 08:33:25 +01:00
rtt.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
rxkad.c rxrpc: Fix using alignmask being zero for __page_frag_alloc_align() 2024-04-30 18:30:43 -07:00
rxperf.c rxrpc: Fix potential race in error handling in afs_make_call() 2023-04-22 15:16:39 +01:00
security.c rxrpc: Fix incoming call setup race 2023-01-07 09:30:26 +00:00
sendmsg.c rxrpc: Fix error check on ->alloc_txbuf() 2024-03-14 13:09:53 +01:00
server_key.c rxrpc: Implement an in-kernel rxperf server for testing purposes 2022-12-01 13:36:37 +00:00
skbuff.c rxrpc: Use consume_skb() rather than kfree_skb_reason() 2023-02-07 23:11:20 +00:00
sysctl.c rxrpc: Use ktimes for call timeout tracking and set the timer lazily 2024-03-05 23:35:25 +00:00
txbuf.c rxrpc: Fix using alignmask being zero for __page_frag_alloc_align() 2024-04-30 18:30:43 -07:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00