Skip to content

Commit 15eb246

Browse files
effective-lightgregkh
authored andcommitted
hv_sock: fix ARM64 support
commit b316812 upstream. VMBUS ring buffers must be page aligned. Therefore, the current value of 24K presents a challenge on ARM64 kernels (with 64K pages). So, use VMBUS_RING_SIZE() to ensure they are always aligned and large enough to hold all of the relevant data. Cc: stable@vger.kernel.org Fixes: 77ffe33 ("hv_sock: use HV_HYP_PAGE_SIZE for Hyper-V communication") Tested-by: Dexuan Cui <decui@microsoft.com> Reviewed-by: Dexuan Cui <decui@microsoft.com> Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Link: https://patch.msgid.link/20260428125339.13963-1-hamzamahfooz@linux.microsoft.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 2a9090b commit 15eb246

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

net/vmw_vsock/hyperv_transport.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,10 +375,10 @@ static void hvs_open_connection(struct vmbus_channel *chan)
375375
} else {
376376
sndbuf = max_t(int, sk->sk_sndbuf, RINGBUFFER_HVS_SND_SIZE);
377377
sndbuf = min_t(int, sndbuf, RINGBUFFER_HVS_MAX_SIZE);
378-
sndbuf = ALIGN(sndbuf, HV_HYP_PAGE_SIZE);
378+
sndbuf = VMBUS_RING_SIZE(sndbuf);
379379
rcvbuf = max_t(int, sk->sk_rcvbuf, RINGBUFFER_HVS_RCV_SIZE);
380380
rcvbuf = min_t(int, rcvbuf, RINGBUFFER_HVS_MAX_SIZE);
381-
rcvbuf = ALIGN(rcvbuf, HV_HYP_PAGE_SIZE);
381+
rcvbuf = VMBUS_RING_SIZE(rcvbuf);
382382
}
383383

384384
chan->max_pkt_size = HVS_MAX_PKT_SIZE;

0 commit comments

Comments
 (0)